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