1*54fd6939SJiyong Park /* 2*54fd6939SJiyong Park * Copyright (c) 2019, Arm Limited. All rights reserved. 3*54fd6939SJiyong Park * 4*54fd6939SJiyong Park * SPDX-License-Identifier: BSD-3-Clause 5*54fd6939SJiyong Park */ 6*54fd6939SJiyong Park 7*54fd6939SJiyong Park #include <string.h> 8*54fd6939SJiyong Park 9*54fd6939SJiyong Park #undef memrchr 10*54fd6939SJiyong Park memrchr(const void * src,int c,size_t len)11*54fd6939SJiyong Parkvoid *memrchr(const void *src, int c, size_t len) 12*54fd6939SJiyong Park { 13*54fd6939SJiyong Park const unsigned char *s = src + (len - 1); 14*54fd6939SJiyong Park 15*54fd6939SJiyong Park while (len--) { 16*54fd6939SJiyong Park if (*s == (unsigned char)c) { 17*54fd6939SJiyong Park return (void*) s; 18*54fd6939SJiyong Park } 19*54fd6939SJiyong Park 20*54fd6939SJiyong Park s--; 21*54fd6939SJiyong Park } 22*54fd6939SJiyong Park 23*54fd6939SJiyong Park return NULL; 24*54fd6939SJiyong Park } 25