/*====================================================================* * * void memout (void const * memory, size_t extent, char const * format, unsigned group, char c, char e, FILE * fp) * * memory.h * * print memory as a series of octets formatted by format string fmt, * seperated by character c every mod prints; * * for example, memout (memory, IPv4_LEN, "%d", 1, '.', stdout) would print: * * 192.168.1.1 * * another example, memout (memory, IPv6_LEN, "%02x", 2, ':', stdout) would print: * * 0032:0045:0000:0000:0000:0000:1123:4456 * * Motley Tools by Charles Maier <cmaier@cmassoc.net>; * Copyright (c) 2001-2006 by Charles Maier Associates; * Licensed under the Internet Software Consortium License; * * Contributor(s): * Nathaniel Houghton <nhoughto@qca.qualcomm.com> * *--------------------------------------------------------------------*/ #ifndef MEMOUT_SOURCE #define MEMOUT_SOURCE #include <stdio.h> #include <stddef.h> #include "../tools/memory.h" void memout (void const * memory, size_t extent, char const * format, unsigned group, char c, char e, FILE * fp) { byte * origin = (byte *) (memory); byte * offset = (byte *) (memory); while (extent--) { ptrdiff_t count = (offset - origin) + 1; fprintf (fp, format, * offset); if ((count % group) == 0 && extent) { putc (c, fp); } offset++; } if (e) { putc (c, fp); } return; } #endif