    /*====================================================================*
     *
     *   void memswap (void * memory1,  void * memory2, size_t extent);
     *
     *   memory.h
     *
     *   exchange the contents of one memory region with that of another;
     *   return no value;
     *
     *   one application for this function is to exchange the source and
     *   destination addresses in an Ethernet frame to form a response
     *   message;
     *
     *   Motley Tools by Charles Maier <cmaier@cmassoc.net>;
     *   Copyright (c) 2001-2006 by Charles Maier Associates;
     *   Licensed under the Internet Software Consortium License;
     *
     *--------------------------------------------------------------------*/

    #ifndef MEMSWAP_SOURCE
    #define MEMSWAP_SOURCE

    #include "../tools/memory.h"

    void memswap (void * memory1, void * memory2, size_t extent)

    {
    	register byte * byte1 = (byte *)(memory1);
    	register byte * byte2 = (byte *)(memory2);
    	if (memory1 != memory2) while (extent--)
    	{
    		byte byte = *byte1;
    		*byte1++ = *byte2;
    		*byte2++ = byte;
    	}
    	return;
    }

    #endif

[PREV] [HOME] [NEXT]