diff options
Diffstat (limited to 'libc/include/sys')
-rw-r--r-- | libc/include/sys/atomics.h | 45 | ||||
-rw-r--r-- | libc/include/sys/cdefs.h | 6 | ||||
-rw-r--r-- | libc/include/sys/stat.h | 6 |
3 files changed, 56 insertions, 1 deletions
diff --git a/libc/include/sys/atomics.h b/libc/include/sys/atomics.h new file mode 100644 index 0000000..38ab366 --- /dev/null +++ b/libc/include/sys/atomics.h @@ -0,0 +1,45 @@ +/* + * Copyright (C) 2015 The Android Open Source Project + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS + * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, + * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, + * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS + * OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED + * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, + * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT + * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef _SYS_ATOMICS_H_ +#define _SYS_ATOMICS_H_ + +/* + * These got proper out of line definitions in L. Putting the inline definitions + * back for old targets brings us closer to being able to use one set of headers + * for all API levels. + * + * The other inlines we put back went in to their appropriate headers, but the + * sys/atomics.h header was removed, so we'll just add these somewhere we can be + * sure they will be included. + */ +#if __ANDROID_API__ < 21 +#include <android/legacy_sys_atomics_inlines.h> +#endif + +#endif /* _SYS_ATOMICS_H_ */ diff --git a/libc/include/sys/cdefs.h b/libc/include/sys/cdefs.h index 21d59fa..48763d7 100644 --- a/libc/include/sys/cdefs.h +++ b/libc/include/sys/cdefs.h @@ -556,4 +556,10 @@ /* Used to rename functions so that the compiler emits a call to 'x' rather than the function this was applied to. */ #define __RENAME(x) __asm__(#x) +#if __ANDROID_API__ >= 21 +#define _BIONIC_NOT_BEFORE_21(x) x +#else +#define _BIONIC_NOT_BEFORE_21(x) +#endif /* __ANDROID_API__ >= 21 */ + #endif /* !_SYS_CDEFS_H_ */ diff --git a/libc/include/sys/stat.h b/libc/include/sys/stat.h index eb9bf2e..c22516f 100644 --- a/libc/include/sys/stat.h +++ b/libc/include/sys/stat.h @@ -171,7 +171,7 @@ mode_t umask(mode_t mode) { } #endif /* defined(__BIONIC_FORTIFY) */ -extern int mkfifo(const char*, mode_t); +_BIONIC_NOT_BEFORE_21(extern int mkfifo(const char*, mode_t);) extern int mkfifoat(int, const char*, mode_t); extern int fchmodat(int, const char*, mode_t, int); @@ -183,6 +183,10 @@ extern int mknodat(int, const char*, mode_t, dev_t); extern int utimensat(int fd, const char *path, const struct timespec times[2], int flags); extern int futimens(int fd, const struct timespec times[2]); +#if __ANDROID_API__ < 21 +#include <android/legacy_sys_stat_inlines.h> +#endif + __END_DECLS #endif /* _SYS_STAT_H_ */ |