xref: /inferno-os/libkern/memcmp.c (revision 37da2899f40661e3e9631e497da8dc59b971cbd0)
1*37da2899SCharles.Forsyth #include	<lib9.h>
2*37da2899SCharles.Forsyth 
3*37da2899SCharles.Forsyth int
memcmp(void * a1,void * a2,ulong n)4*37da2899SCharles.Forsyth memcmp(void *a1, void *a2, ulong n)
5*37da2899SCharles.Forsyth {
6*37da2899SCharles.Forsyth 	uchar *s1, *s2;
7*37da2899SCharles.Forsyth 	uint c1, c2;
8*37da2899SCharles.Forsyth 
9*37da2899SCharles.Forsyth 	s1 = a1;
10*37da2899SCharles.Forsyth 	s2 = a2;
11*37da2899SCharles.Forsyth 	while(n > 0) {
12*37da2899SCharles.Forsyth 		c1 = *s1++;
13*37da2899SCharles.Forsyth 		c2 = *s2++;
14*37da2899SCharles.Forsyth 		if(c1 != c2) {
15*37da2899SCharles.Forsyth 			if(c1 > c2)
16*37da2899SCharles.Forsyth 				return 1;
17*37da2899SCharles.Forsyth 			return -1;
18*37da2899SCharles.Forsyth 		}
19*37da2899SCharles.Forsyth 		n--;
20*37da2899SCharles.Forsyth 	}
21*37da2899SCharles.Forsyth 	return 0;
22*37da2899SCharles.Forsyth }
23