xref: /aosp_15_r20/external/erofs-utils/lib/liberofs_private.h (revision 33b1fccf6a0fada2c2875d400ed01119b7676ee5)
1*33b1fccfSAndroid Build Coastguard Worker /* SPDX-License-Identifier: GPL-2.0-only OR Apache-2.0 */
2*33b1fccfSAndroid Build Coastguard Worker 
3*33b1fccfSAndroid Build Coastguard Worker #ifdef HAVE_LIBSELINUX
4*33b1fccfSAndroid Build Coastguard Worker #include <selinux/selinux.h>
5*33b1fccfSAndroid Build Coastguard Worker #include <selinux/label.h>
6*33b1fccfSAndroid Build Coastguard Worker #endif
7*33b1fccfSAndroid Build Coastguard Worker 
8*33b1fccfSAndroid Build Coastguard Worker #ifdef WITH_ANDROID
9*33b1fccfSAndroid Build Coastguard Worker #include <selinux/android.h>
10*33b1fccfSAndroid Build Coastguard Worker #include <private/android_filesystem_config.h>
11*33b1fccfSAndroid Build Coastguard Worker #include <private/canned_fs_config.h>
12*33b1fccfSAndroid Build Coastguard Worker #include <private/fs_config.h>
13*33b1fccfSAndroid Build Coastguard Worker #endif
14*33b1fccfSAndroid Build Coastguard Worker 
15*33b1fccfSAndroid Build Coastguard Worker #ifndef HAVE_MEMRCHR
memrchr(const void * s,int c,size_t n)16*33b1fccfSAndroid Build Coastguard Worker static inline void *memrchr(const void *s, int c, size_t n)
17*33b1fccfSAndroid Build Coastguard Worker {
18*33b1fccfSAndroid Build Coastguard Worker 	const unsigned char *p = (const unsigned char *)s;
19*33b1fccfSAndroid Build Coastguard Worker 
20*33b1fccfSAndroid Build Coastguard Worker 	for (p += n; n > 0; n--)
21*33b1fccfSAndroid Build Coastguard Worker 		if (*--p == c)
22*33b1fccfSAndroid Build Coastguard Worker 			return (void*)p;
23*33b1fccfSAndroid Build Coastguard Worker 	return NULL;
24*33b1fccfSAndroid Build Coastguard Worker }
25*33b1fccfSAndroid Build Coastguard Worker #endif
26