xref: /rk3399_ARM-atf/lib/libc/memcmp.c (revision 4661abc7c44926ac34ce96deb9e332a6804a2520)
1*4661abc7SAntonio Nino Diaz /*
2*4661abc7SAntonio Nino Diaz  * Copyright (c) 2013-2018, ARM Limited and Contributors. All rights reserved.
3*4661abc7SAntonio Nino Diaz  *
4*4661abc7SAntonio Nino Diaz  * SPDX-License-Identifier: BSD-3-Clause
5*4661abc7SAntonio Nino Diaz  */
6*4661abc7SAntonio Nino Diaz 
7*4661abc7SAntonio Nino Diaz #include <stddef.h>
8*4661abc7SAntonio Nino Diaz 
9*4661abc7SAntonio Nino Diaz int memcmp(const void *s1, const void *s2, size_t len)
10*4661abc7SAntonio Nino Diaz {
11*4661abc7SAntonio Nino Diaz 	const unsigned char *s = s1;
12*4661abc7SAntonio Nino Diaz 	const unsigned char *d = s2;
13*4661abc7SAntonio Nino Diaz 	unsigned char sc;
14*4661abc7SAntonio Nino Diaz 	unsigned char dc;
15*4661abc7SAntonio Nino Diaz 
16*4661abc7SAntonio Nino Diaz 	while (len--) {
17*4661abc7SAntonio Nino Diaz 		sc = *s++;
18*4661abc7SAntonio Nino Diaz 		dc = *d++;
19*4661abc7SAntonio Nino Diaz 		if (sc - dc)
20*4661abc7SAntonio Nino Diaz 			return (sc - dc);
21*4661abc7SAntonio Nino Diaz 	}
22*4661abc7SAntonio Nino Diaz 
23*4661abc7SAntonio Nino Diaz 	return 0;
24*4661abc7SAntonio Nino Diaz }
25