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