xref: /netbsd-src/external/bsd/nsd/dist/compat/memcmp.c (revision d83a80ee7fb31190352cf1f781441e06ca6a86db)
1*d83a80eeSchristos /*
2*d83a80eeSchristos  *	memcmp.c: memcmp compat implementation.
3*d83a80eeSchristos  *
4*d83a80eeSchristos  *	Copyright (c) 2010, NLnet Labs. All rights reserved.
5*d83a80eeSchristos  *
6*d83a80eeSchristos  * See LICENSE for the license.
7*d83a80eeSchristos  */
8*d83a80eeSchristos 
9*d83a80eeSchristos #include <config.h>
10*d83a80eeSchristos 
11*d83a80eeSchristos int memcmp(const void *x, const void *y, size_t n);
12*d83a80eeSchristos 
memcmp(const void * x,const void * y,size_t n)13*d83a80eeSchristos int memcmp(const void *x, const void *y, size_t n)
14*d83a80eeSchristos {
15*d83a80eeSchristos 	const uint8_t* x8 = (const uint8_t*)x;
16*d83a80eeSchristos 	const uint8_t* y8 = (const uint8_t*)y;
17*d83a80eeSchristos 	size_t i;
18*d83a80eeSchristos 	for(i=0; i<n; i++) {
19*d83a80eeSchristos 		if(x8[i] < y8[i])
20*d83a80eeSchristos 			return -1;
21*d83a80eeSchristos 		else if(x8[i] > y8[i])
22*d83a80eeSchristos 			return 1;
23*d83a80eeSchristos 	}
24*d83a80eeSchristos 	return 0;
25*d83a80eeSchristos }
26