/** @file
 *
 * gcc sometimes likes to insert implicit calls to memcpy() and
 * memset().  Unfortunately, there doesn't seem to be any way to
 * prevent it from doing this, or to force it to use the optimised
 * versions as seen by C code; it insists on inserting symbol
 * references to "memcpy" and "memset".  We therefore include wrapper
 * functions just to keep gcc happy.
 *
 */

FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL );
FILE_SECBOOT ( PERMITTED );

#include <string.h>

void * gcc_implicit_memcpy ( void *dest, const void *src,
			     size_t len ) asm ( "memcpy" );

void * gcc_implicit_memcpy ( void *dest, const void *src, size_t len ) {
	return memcpy ( dest, src, len );
}

void * gcc_implicit_memset ( void *dest, int character,
			     size_t len ) asm ( "memset" );

void * gcc_implicit_memset ( void *dest, int character, size_t len ) {
	return memset ( dest, character, len );
}
