From 3c7c38b2bb93b2faad372ff9a464dea00f0eb96e Mon Sep 17 00:00:00 2001 From: David 'Digit' Turner Date: Wed, 27 Oct 2010 16:28:43 -0700 Subject: [PATCH] NDK: Last cleanup of the platform headers - fix a declaration omission in 3/ - add missing 8/ - simplify 8/ - update 9/ headers to the latest Bionic versions - fix a typo in android_native_app_glue.h - use __BEGIN_DECLS .. __END_DECLS whenever possible. - remove C++-style comments from headers Change-Id: I58b98b3973cde494436206194ba33416a11ca8ee --- ndk/platforms/android-3/include/grp.h | 2 +- ndk/platforms/android-8/include/err.h | 90 ++++ ndk/platforms/android-8/include/stdio.h | 2 +- .../android-9/include/android/asset_manager.h | 13 +- .../include/android/asset_manager_jni.h | 10 +- .../android-9/include/android/bitmap.h | 11 +- .../android-9/include/android/configuration.h | 10 +- .../android-9/include/android/input.h | 10 +- .../android-9/include/android/keycodes.h | 11 +- .../android-9/include/android/looper.h | 12 +- .../include/android/native_activity.h | 34 +- .../android-9/include/android/native_window.h | 13 +- .../include/android/native_window_jni.h | 10 +- ndk/platforms/android-9/include/android/obb.h | 11 +- .../android-9/include/android/rect.h | 12 +- .../android-9/include/android/sensor.h | 12 +- .../include/android/storage_manager.h | 11 +- .../android-9/include/android/window.h | 12 +- ndk/platforms/android-9/include/arpa/telnet.h | 316 +++++++++++ ndk/platforms/android-9/include/pthread.h | 2 + ndk/platforms/android-9/include/sched.h | 78 +++ ndk/platforms/android-9/include/stdlib.h | 12 +- ndk/platforms/android-9/include/strings.h | 56 ++ .../android-9/include/sys/_sigdefs.h | 70 +++ ndk/platforms/android-9/include/sys/cdefs.h | 501 ++++++++++++++++++ .../android-9/include/sys/linux-syscalls.h | 292 ++++++++++ .../android-9/include/sys/linux-unistd.h | 212 ++++++++ ndk/platforms/android-9/include/sys/sysinfo.h | 40 ++ ndk/platforms/android-9/include/sys/wait.h | 63 +++ ndk/platforms/android-9/include/unistd.h | 211 ++++++++ ndk/platforms/android-9/include/wchar.h | 157 ++++++ .../native_app_glue/android_native_app_glue.h | 2 +- 32 files changed, 2173 insertions(+), 125 deletions(-) create mode 100644 ndk/platforms/android-8/include/err.h create mode 100644 ndk/platforms/android-9/include/arpa/telnet.h create mode 100644 ndk/platforms/android-9/include/sched.h create mode 100644 ndk/platforms/android-9/include/strings.h create mode 100644 ndk/platforms/android-9/include/sys/_sigdefs.h create mode 100644 ndk/platforms/android-9/include/sys/cdefs.h create mode 100644 ndk/platforms/android-9/include/sys/linux-syscalls.h create mode 100644 ndk/platforms/android-9/include/sys/linux-unistd.h create mode 100644 ndk/platforms/android-9/include/sys/sysinfo.h create mode 100644 ndk/platforms/android-9/include/sys/wait.h create mode 100644 ndk/platforms/android-9/include/unistd.h create mode 100644 ndk/platforms/android-9/include/wchar.h diff --git a/ndk/platforms/android-3/include/grp.h b/ndk/platforms/android-3/include/grp.h index 4442eb738..7ddb79144 100644 --- a/ndk/platforms/android-3/include/grp.h +++ b/ndk/platforms/android-3/include/grp.h @@ -56,9 +56,9 @@ struct group { __BEGIN_DECLS struct group *getgrgid(gid_t); +struct group *getgrnam(const char *); #if 0 /* MISSING FROM BIONIC */ -struct group *getgrnam(const char *); #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XPG_VISIBLE struct group *getgrent(void); void setgrent(void); diff --git a/ndk/platforms/android-8/include/err.h b/ndk/platforms/android-8/include/err.h new file mode 100644 index 000000000..1636efe92 --- /dev/null +++ b/ndk/platforms/android-8/include/err.h @@ -0,0 +1,90 @@ +/* $OpenBSD: err.h,v 1.10 2006/01/06 18:53:04 millert Exp $ */ +/* $NetBSD: err.h,v 1.11 1994/10/26 00:55:52 cgd Exp $ */ + +/*- + * Copyright (c) 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. + * + * @(#)err.h 8.1 (Berkeley) 6/2/93 + */ + +#ifndef _ERR_H_ +#define _ERR_H_ + +/* + * Don't use va_list in the err/warn prototypes. Va_list is typedef'd in two + * places ( and ), so if we include one + * of them here we may collide with the utility's includes. It's unreasonable + * for utilities to have to include one of them to include err.h, so we get + * __va_list from and use it. + */ +#include +#include + +__BEGIN_DECLS + +__noreturn void err(int, const char *, ...) + __attribute__((__format__ (printf, 2, 3))); +__noreturn void verr(int, const char *, __va_list) + __attribute__((__format__ (printf, 2, 0))); +__noreturn void errx(int, const char *, ...) + __attribute__((__format__ (printf, 2, 3))); +__noreturn void verrx(int, const char *, __va_list) + __attribute__((__format__ (printf, 2, 0))); +void warn(const char *, ...) + __attribute__((__format__ (printf, 1, 2))); +void vwarn(const char *, __va_list) + __attribute__((__format__ (printf, 1, 0))); +void warnx(const char *, ...) + __attribute__((__format__ (printf, 1, 2))); +void vwarnx(const char *, __va_list) + __attribute__((__format__ (printf, 1, 0))); + +/* + * The _* versions are for use in library functions so user-defined + * versions of err*,warn* do not get used. + */ +__noreturn void _err(int, const char *, ...) + __attribute__((__format__ (printf, 2, 3))); +__noreturn void _verr(int, const char *, __va_list) + __attribute__((__format__ (printf, 2, 0))); +__noreturn void _errx(int, const char *, ...) + __attribute__((__format__ (printf, 2, 3))); +__noreturn void _verrx(int, const char *, __va_list) + __attribute__((__format__ (printf, 2, 0))); +void _warn(const char *, ...) + __attribute__((__format__ (printf, 1, 2))); +void _vwarn(const char *, __va_list) + __attribute__((__format__ (printf, 1, 0))); +void _warnx(const char *, ...) + __attribute__((__format__ (printf, 1, 2))); +void _vwarnx(const char *, __va_list) + __attribute__((__format__ (printf, 1, 0))); + +__END_DECLS + +#endif /* !_ERR_H_ */ diff --git a/ndk/platforms/android-8/include/stdio.h b/ndk/platforms/android-8/include/stdio.h index ac475db81..c38ed5a51 100644 --- a/ndk/platforms/android-8/include/stdio.h +++ b/ndk/platforms/android-8/include/stdio.h @@ -307,7 +307,7 @@ char *cuserid(char *); FILE *fdopen(int, const char *); int fileno(FILE *); -#if (__POSIX_VISIBLE >= 199209) || 1 /* ANDROID: Bionic does include this */ +#if (__POSIX_VISIBLE >= 199209) int pclose(FILE *); FILE *popen(const char *, const char *); #endif diff --git a/ndk/platforms/android-9/include/android/asset_manager.h b/ndk/platforms/android-9/include/android/asset_manager.h index 4fa0ef3a3..3ad0f9920 100644 --- a/ndk/platforms/android-9/include/android/asset_manager.h +++ b/ndk/platforms/android-9/include/android/asset_manager.h @@ -18,9 +18,9 @@ #ifndef ANDROID_ASSET_MANAGER_H #define ANDROID_ASSET_MANAGER_H -#ifdef __cplusplus -extern "C" { -#endif +#include + +__BEGIN_DECLS struct AAssetManager; typedef struct AAssetManager AAssetManager; @@ -130,9 +130,6 @@ int AAsset_openFileDescriptor(AAsset* asset, off_t* outStart, off_t* outLength); int AAsset_isAllocated(AAsset* asset); +__END_DECLS -#ifdef __cplusplus -}; -#endif - -#endif // ANDROID_ASSET_MANAGER_H +#endif /* ANDROID_ASSET_MANAGER_H */ diff --git a/ndk/platforms/android-9/include/android/asset_manager_jni.h b/ndk/platforms/android-9/include/android/asset_manager_jni.h index aec2d3c97..073434b95 100644 --- a/ndk/platforms/android-9/include/android/asset_manager_jni.h +++ b/ndk/platforms/android-9/include/android/asset_manager_jni.h @@ -21,9 +21,7 @@ #include #include -#ifdef __cplusplus -extern "C" { -#endif +__BEGIN_DECLS /** * Given a Dalvik AssetManager object, obtain the corresponding native AAssetManager @@ -33,8 +31,6 @@ extern "C" { */ AAssetManager* AAssetManager_fromJava(JNIEnv* env, jobject assetManager); -#ifdef __cplusplus -}; -#endif +__END_DECLS -#endif // ANDROID_ASSET_MANAGER_JNI_H +#endif /* ANDROID_ASSET_MANAGER_JNI_H */ diff --git a/ndk/platforms/android-9/include/android/bitmap.h b/ndk/platforms/android-9/include/android/bitmap.h index 5078277b5..160e34ad9 100644 --- a/ndk/platforms/android-9/include/android/bitmap.h +++ b/ndk/platforms/android-9/include/android/bitmap.h @@ -17,12 +17,11 @@ #ifndef ANDROID_BITMAP_H #define ANDROID_BITMAP_H +#include #include #include -#ifdef __cplusplus -extern "C" { -#endif +__BEGIN_DECLS #define ANDROID_BITMAP_RESUT_SUCCESS 0 #define ANDROID_BITMAP_RESULT_BAD_PARAMETER -1 @@ -72,8 +71,6 @@ int AndroidBitmap_lockPixels(JNIEnv* env, jobject jbitmap, void** addrPtr); */ int AndroidBitmap_unlockPixels(JNIEnv* env, jobject jbitmap); -#ifdef __cplusplus -} -#endif +__END_DECLS -#endif +#endif /* ANDROID_BITMAP_H */ diff --git a/ndk/platforms/android-9/include/android/configuration.h b/ndk/platforms/android-9/include/android/configuration.h index 99e8f9711..4c85b1249 100644 --- a/ndk/platforms/android-9/include/android/configuration.h +++ b/ndk/platforms/android-9/include/android/configuration.h @@ -19,9 +19,7 @@ #include -#ifdef __cplusplus -extern "C" { -#endif +__BEGIN_DECLS struct AConfiguration; typedef struct AConfiguration AConfiguration; @@ -312,8 +310,6 @@ int32_t AConfiguration_match(AConfiguration* base, AConfiguration* requested); int32_t AConfiguration_isBetterThan(AConfiguration* base, AConfiguration* test, AConfiguration* requested); -#ifdef __cplusplus -}; -#endif +__END_DECLS -#endif // ANDROID_CONFIGURATION_H +#endif /* ANDROID_CONFIGURATION_H */ diff --git a/ndk/platforms/android-9/include/android/input.h b/ndk/platforms/android-9/include/android/input.h index 5580700db..ae96c501e 100644 --- a/ndk/platforms/android-9/include/android/input.h +++ b/ndk/platforms/android-9/include/android/input.h @@ -45,9 +45,7 @@ #include #include -#ifdef __cplusplus -extern "C" { -#endif +__BEGIN_DECLS /* * Key states (may be returned by queries about the current state of a @@ -677,8 +675,6 @@ int32_t AInputQueue_preDispatchEvent(AInputQueue* queue, AInputEvent* event); */ void AInputQueue_finishEvent(AInputQueue* queue, AInputEvent* event, int handled); -#ifdef __cplusplus -} -#endif +__END_DECLS -#endif // _ANDROID_INPUT_H +#endif /* _ANDROID_INPUT_H */ diff --git a/ndk/platforms/android-9/include/android/keycodes.h b/ndk/platforms/android-9/include/android/keycodes.h index 496eccc03..be0550a19 100644 --- a/ndk/platforms/android-9/include/android/keycodes.h +++ b/ndk/platforms/android-9/include/android/keycodes.h @@ -33,11 +33,10 @@ * - DO NOT CHANGE THE LAYOUT OR SIZE OF STRUCTURES */ +#include #include -#ifdef __cplusplus -extern "C" { -#endif +__BEGIN_DECLS /* * Key codes. @@ -159,8 +158,6 @@ enum { // Refer to frameworks/base/core/java/android/view/KeyEvent.java for the full list. }; -#ifdef __cplusplus -} -#endif +__END_DECLS -#endif // _ANDROID_KEYCODES_H +#endif /* _ANDROID_KEYCODES_H */ diff --git a/ndk/platforms/android-9/include/android/looper.h b/ndk/platforms/android-9/include/android/looper.h index a9d842690..9b7438b3e 100644 --- a/ndk/platforms/android-9/include/android/looper.h +++ b/ndk/platforms/android-9/include/android/looper.h @@ -18,9 +18,9 @@ #ifndef ANDROID_LOOPER_H #define ANDROID_LOOPER_H -#ifdef __cplusplus -extern "C" { -#endif +#include + +__BEGIN_DECLS /** * ALooper @@ -248,8 +248,6 @@ int ALooper_addFd(ALooper* looper, int fd, int ident, int events, */ int ALooper_removeFd(ALooper* looper, int fd); -#ifdef __cplusplus -}; -#endif +__END_DECLS -#endif // ANDROID_NATIVE_WINDOW_H +#endif /* ANDROID_NATIVE_WINDOW_H */ diff --git a/ndk/platforms/android-9/include/android/native_activity.h b/ndk/platforms/android-9/include/android/native_activity.h index d89bc8b9b..0bff86d10 100644 --- a/ndk/platforms/android-9/include/android/native_activity.h +++ b/ndk/platforms/android-9/include/android/native_activity.h @@ -19,6 +19,7 @@ #define ANDROID_NATIVE_ACTIVITY_H #include +#include #include #include @@ -27,9 +28,7 @@ #include #include -#ifdef __cplusplus -extern "C" { -#endif +__BEGIN_DECLS struct ANativeActivityCallbacks; @@ -68,17 +67,17 @@ typedef struct ANativeActivity { * Path to this application's internal data directory. */ const char* internalDataPath; - + /** * Path to this application's external (removable/mountable) data directory. */ const char* externalDataPath; - + /** * The platform's SDK version code. */ int32_t sdkVersion; - + /** * This is the native instance of the application. It is not used by * the framework, but can be set by the application to its own instance @@ -105,13 +104,13 @@ typedef struct ANativeActivityCallbacks { * for more information. */ void (*onStart)(ANativeActivity* activity); - + /** * NativeActivity has resumed. See Java documentation for Activity.onResume() * for more information. */ void (*onResume)(ANativeActivity* activity); - + /** * Framework is asking NativeActivity to save its current instance state. * See Java documentation for Activity.onSaveInstanceState() for more @@ -122,19 +121,19 @@ typedef struct ANativeActivityCallbacks { * entities (pointers to memory, file descriptors, etc). */ void* (*onSaveInstanceState)(ANativeActivity* activity, size_t* outSize); - + /** * NativeActivity has paused. See Java documentation for Activity.onPause() * for more information. */ void (*onPause)(ANativeActivity* activity); - + /** * NativeActivity has stopped. See Java documentation for Activity.onStop() * for more information. */ void (*onStop)(ANativeActivity* activity); - + /** * NativeActivity is being destroyed. See Java documentation for Activity.onDestroy() * for more information. @@ -146,7 +145,7 @@ typedef struct ANativeActivityCallbacks { * for example, to pause a game when it loses input focus. */ void (*onWindowFocusChanged)(ANativeActivity* activity, int hasFocus); - + /** * The drawing window for this native activity has been created. You * can use the given native window object to start drawing. @@ -177,13 +176,13 @@ typedef struct ANativeActivityCallbacks { * returning from here. */ void (*onNativeWindowDestroyed)(ANativeActivity* activity, ANativeWindow* window); - + /** * The input queue for this native activity's window has been created. * You can use the given input queue to start retrieving input events. */ void (*onInputQueueCreated)(ANativeActivity* activity, AInputQueue* queue); - + /** * The input queue for this native activity's window is being destroyed. * You should no longer try to reference this object upon returning from this @@ -288,9 +287,6 @@ enum { */ void ANativeActivity_hideSoftInput(ANativeActivity* activity, uint32_t flags); -#ifdef __cplusplus -}; -#endif - -#endif // ANDROID_NATIVE_ACTIVITY_H +__END_DECLS +#endif /* ANDROID_NATIVE_ACTIVITY_H */ diff --git a/ndk/platforms/android-9/include/android/native_window.h b/ndk/platforms/android-9/include/android/native_window.h index f3d75507c..75e68c194 100644 --- a/ndk/platforms/android-9/include/android/native_window.h +++ b/ndk/platforms/android-9/include/android/native_window.h @@ -17,11 +17,10 @@ #ifndef ANDROID_NATIVE_WINDOW_H #define ANDROID_NATIVE_WINDOW_H +#include #include -#ifdef __cplusplus -extern "C" { -#endif +__BEGIN_DECLS /* * Pixel formats that a window can use. @@ -51,7 +50,7 @@ typedef struct ANativeWindow_Buffer { // The actual bits. void* bits; - + // Do not touch. uint32_t reserved[6]; } ANativeWindow_Buffer; @@ -110,8 +109,6 @@ int32_t ANativeWindow_lock(ANativeWindow* window, ANativeWindow_Buffer* outBuffe */ int32_t ANativeWindow_unlockAndPost(ANativeWindow* window); -#ifdef __cplusplus -}; -#endif +__END_DECLS -#endif // ANDROID_NATIVE_WINDOW_H +#endif /* ANDROID_NATIVE_WINDOW_H */ diff --git a/ndk/platforms/android-9/include/android/native_window_jni.h b/ndk/platforms/android-9/include/android/native_window_jni.h index b9e72efb7..a44a5b1ba 100644 --- a/ndk/platforms/android-9/include/android/native_window_jni.h +++ b/ndk/platforms/android-9/include/android/native_window_jni.h @@ -21,9 +21,7 @@ #include -#ifdef __cplusplus -extern "C" { -#endif +__BEGIN_DECLS /** * Return the ANativeWindow associated with a Java Surface object, @@ -33,8 +31,6 @@ extern "C" { */ ANativeWindow* ANativeWindow_fromSurface(JNIEnv* env, jobject surface); -#ifdef __cplusplus -}; -#endif +__END_DECLS -#endif // ANDROID_NATIVE_WINDOW_H +#endif /* ANDROID_NATIVE_WINDOW_H */ diff --git a/ndk/platforms/android-9/include/android/obb.h b/ndk/platforms/android-9/include/android/obb.h index 65e9b2aa1..5670b1cd7 100644 --- a/ndk/platforms/android-9/include/android/obb.h +++ b/ndk/platforms/android-9/include/android/obb.h @@ -18,11 +18,10 @@ #ifndef ANDROID_OBB_H #define ANDROID_OBB_H +#include #include -#ifdef __cplusplus -extern "C" { -#endif +__BEGIN_DECLS struct AObbInfo; typedef struct AObbInfo AObbInfo; @@ -56,8 +55,6 @@ int32_t AObbInfo_getVersion(AObbInfo* obbInfo); */ int32_t AObbInfo_getFlags(AObbInfo* obbInfo); -#ifdef __cplusplus -}; -#endif +__END_DECLS -#endif // ANDROID_OBB_H +#endif /* ANDROID_OBB_H */ diff --git a/ndk/platforms/android-9/include/android/rect.h b/ndk/platforms/android-9/include/android/rect.h index 3e81f531d..161c2a737 100644 --- a/ndk/platforms/android-9/include/android/rect.h +++ b/ndk/platforms/android-9/include/android/rect.h @@ -18,9 +18,9 @@ #ifndef ANDROID_RECT_H #define ANDROID_RECT_H -#ifdef __cplusplus -extern "C" { -#endif +#include + +__BEGIN_DECLS typedef struct ARect { int32_t left; @@ -29,8 +29,6 @@ typedef struct ARect { int32_t bottom; } ARect; -#ifdef __cplusplus -}; -#endif +__END_DECLS -#endif // ANDROID_RECT_H +#endif /* ANDROID_RECT_H */ diff --git a/ndk/platforms/android-9/include/android/sensor.h b/ndk/platforms/android-9/include/android/sensor.h index f163f18ca..eb46ef0c1 100644 --- a/ndk/platforms/android-9/include/android/sensor.h +++ b/ndk/platforms/android-9/include/android/sensor.h @@ -39,14 +39,12 @@ * native code. * */ - +#include #include #include -#ifdef __cplusplus -extern "C" { -#endif +__BEGIN_DECLS /* @@ -249,8 +247,6 @@ float ASensor_getResolution(ASensor const* sensor); int ASensor_getMinDelay(ASensor const* sensor); -#ifdef __cplusplus -}; -#endif +__END_DECLS -#endif // ANDROID_SENSOR_H +#endif /* ANDROID_SENSOR_H */ diff --git a/ndk/platforms/android-9/include/android/storage_manager.h b/ndk/platforms/android-9/include/android/storage_manager.h index bad249133..f3b08dcfd 100644 --- a/ndk/platforms/android-9/include/android/storage_manager.h +++ b/ndk/platforms/android-9/include/android/storage_manager.h @@ -18,11 +18,10 @@ #ifndef ANDROID_STORAGE_MANAGER_H #define ANDROID_STORAGE_MANAGER_H +#include #include -#ifdef __cplusplus -extern "C" { -#endif +__BEGIN_DECLS struct AStorageManager; typedef struct AStorageManager AStorageManager; @@ -120,8 +119,6 @@ int AStorageManager_isObbMounted(AStorageManager* mgr, const char* filename); const char* AStorageManager_getMountedObbPath(AStorageManager* mgr, const char* filename); -#ifdef __cplusplus -}; -#endif +__END_DECLS -#endif // ANDROID_STORAGE_MANAGER_H +#endif /* ANDROID_STORAGE_MANAGER_H */ diff --git a/ndk/platforms/android-9/include/android/window.h b/ndk/platforms/android-9/include/android/window.h index 2ab192b74..0633f89e1 100644 --- a/ndk/platforms/android-9/include/android/window.h +++ b/ndk/platforms/android-9/include/android/window.h @@ -18,9 +18,9 @@ #ifndef ANDROID_WINDOW_H #define ANDROID_WINDOW_H -#ifdef __cplusplus -extern "C" { -#endif +#include + +__BEGIN_DECLS /** * Window flags, as per the Java API at android.view.WindowManager.LayoutParams. @@ -51,8 +51,6 @@ enum { AWINDOW_FLAG_DISMISS_KEYGUARD = 0x00400000, }; -#ifdef __cplusplus -}; -#endif +__END_DECLS -#endif // ANDROID_WINDOW_H +#endif /* ANDROID_WINDOW_H */ diff --git a/ndk/platforms/android-9/include/arpa/telnet.h b/ndk/platforms/android-9/include/arpa/telnet.h new file mode 100644 index 000000000..d318e0897 --- /dev/null +++ b/ndk/platforms/android-9/include/arpa/telnet.h @@ -0,0 +1,316 @@ +/* + * Copyright (c) 1983, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. + * + * @(#)telnet.h 8.2 (Berkeley) 12/15/93 + */ + +#ifndef _ARPA_TELNET_H +#define _ARPA_TELNET_H 1 + +/* + * Definitions for the TELNET protocol. + */ +#define IAC 255 /* interpret as command: */ +#define DONT 254 /* you are not to use option */ +#define DO 253 /* please, you use option */ +#define WONT 252 /* I won't use option */ +#define WILL 251 /* I will use option */ +#define SB 250 /* interpret as subnegotiation */ +#define GA 249 /* you may reverse the line */ +#define EL 248 /* erase the current line */ +#define EC 247 /* erase the current character */ +#define AYT 246 /* are you there */ +#define AO 245 /* abort output--but let prog finish */ +#define IP 244 /* interrupt process--permanently */ +#define BREAK 243 /* break */ +#define DM 242 /* data mark--for connect. cleaning */ +#define NOP 241 /* nop */ +#define SE 240 /* end sub negotiation */ +#define EOR 239 /* end of record (transparent mode) */ +#define ABORT 238 /* Abort process */ +#define SUSP 237 /* Suspend process */ +#define xEOF 236 /* End of file: EOF is already used... */ + +#define SYNCH 242 /* for telfunc calls */ + +#ifdef TELCMDS +char *telcmds[] = { + "EOF", "SUSP", "ABORT", "EOR", + "SE", "NOP", "DMARK", "BRK", "IP", "AO", "AYT", "EC", + "EL", "GA", "SB", "WILL", "WONT", "DO", "DONT", "IAC", 0, +}; +#else +extern char *telcmds[]; +#endif + +#define TELCMD_FIRST xEOF +#define TELCMD_LAST IAC +#define TELCMD_OK(x) ((unsigned int)(x) <= TELCMD_LAST && \ + (unsigned int)(x) >= TELCMD_FIRST) +#define TELCMD(x) telcmds[(x)-TELCMD_FIRST] + +/* telnet options */ +#define TELOPT_BINARY 0 /* 8-bit data path */ +#define TELOPT_ECHO 1 /* echo */ +#define TELOPT_RCP 2 /* prepare to reconnect */ +#define TELOPT_SGA 3 /* suppress go ahead */ +#define TELOPT_NAMS 4 /* approximate message size */ +#define TELOPT_STATUS 5 /* give status */ +#define TELOPT_TM 6 /* timing mark */ +#define TELOPT_RCTE 7 /* remote controlled transmission and echo */ +#define TELOPT_NAOL 8 /* negotiate about output line width */ +#define TELOPT_NAOP 9 /* negotiate about output page size */ +#define TELOPT_NAOCRD 10 /* negotiate about CR disposition */ +#define TELOPT_NAOHTS 11 /* negotiate about horizontal tabstops */ +#define TELOPT_NAOHTD 12 /* negotiate about horizontal tab disposition */ +#define TELOPT_NAOFFD 13 /* negotiate about formfeed disposition */ +#define TELOPT_NAOVTS 14 /* negotiate about vertical tab stops */ +#define TELOPT_NAOVTD 15 /* negotiate about vertical tab disposition */ +#define TELOPT_NAOLFD 16 /* negotiate about output LF disposition */ +#define TELOPT_XASCII 17 /* extended ascii character set */ +#define TELOPT_LOGOUT 18 /* force logout */ +#define TELOPT_BM 19 /* byte macro */ +#define TELOPT_DET 20 /* data entry terminal */ +#define TELOPT_SUPDUP 21 /* supdup protocol */ +#define TELOPT_SUPDUPOUTPUT 22 /* supdup output */ +#define TELOPT_SNDLOC 23 /* send location */ +#define TELOPT_TTYPE 24 /* terminal type */ +#define TELOPT_EOR 25 /* end or record */ +#define TELOPT_TUID 26 /* TACACS user identification */ +#define TELOPT_OUTMRK 27 /* output marking */ +#define TELOPT_TTYLOC 28 /* terminal location number */ +#define TELOPT_3270REGIME 29 /* 3270 regime */ +#define TELOPT_X3PAD 30 /* X.3 PAD */ +#define TELOPT_NAWS 31 /* window size */ +#define TELOPT_TSPEED 32 /* terminal speed */ +#define TELOPT_LFLOW 33 /* remote flow control */ +#define TELOPT_LINEMODE 34 /* Linemode option */ +#define TELOPT_XDISPLOC 35 /* X Display Location */ +#define TELOPT_OLD_ENVIRON 36 /* Old - Environment variables */ +#define TELOPT_AUTHENTICATION 37/* Authenticate */ +#define TELOPT_ENCRYPT 38 /* Encryption option */ +#define TELOPT_NEW_ENVIRON 39 /* New - Environment variables */ +#define TELOPT_EXOPL 255 /* extended-options-list */ + + +#define NTELOPTS (1+TELOPT_NEW_ENVIRON) +#ifdef TELOPTS +const char *telopts[NTELOPTS+1] = { + "BINARY", "ECHO", "RCP", "SUPPRESS GO AHEAD", "NAME", + "STATUS", "TIMING MARK", "RCTE", "NAOL", "NAOP", + "NAOCRD", "NAOHTS", "NAOHTD", "NAOFFD", "NAOVTS", + "NAOVTD", "NAOLFD", "EXTEND ASCII", "LOGOUT", "BYTE MACRO", + "DATA ENTRY TERMINAL", "SUPDUP", "SUPDUP OUTPUT", + "SEND LOCATION", "TERMINAL TYPE", "END OF RECORD", + "TACACS UID", "OUTPUT MARKING", "TTYLOC", + "3270 REGIME", "X.3 PAD", "NAWS", "TSPEED", "LFLOW", + "LINEMODE", "XDISPLOC", "OLD-ENVIRON", "AUTHENTICATION", + "ENCRYPT", "NEW-ENVIRON", + 0, +}; +#define TELOPT_FIRST TELOPT_BINARY +#define TELOPT_LAST TELOPT_NEW_ENVIRON +#define TELOPT_OK(x) ((unsigned int)(x) <= TELOPT_LAST) +#define TELOPT(x) telopts[(x)-TELOPT_FIRST] +#endif + +/* sub-option qualifiers */ +#define TELQUAL_IS 0 /* option is... */ +#define TELQUAL_SEND 1 /* send option */ +#define TELQUAL_INFO 2 /* ENVIRON: informational version of IS */ +#define TELQUAL_REPLY 2 /* AUTHENTICATION: client version of IS */ +#define TELQUAL_NAME 3 /* AUTHENTICATION: client version of IS */ + +#define LFLOW_OFF 0 /* Disable remote flow control */ +#define LFLOW_ON 1 /* Enable remote flow control */ +#define LFLOW_RESTART_ANY 2 /* Restart output on any char */ +#define LFLOW_RESTART_XON 3 /* Restart output only on XON */ + +/* + * LINEMODE suboptions + */ + +#define LM_MODE 1 +#define LM_FORWARDMASK 2 +#define LM_SLC 3 + +#define MODE_EDIT 0x01 +#define MODE_TRAPSIG 0x02 +#define MODE_ACK 0x04 +#define MODE_SOFT_TAB 0x08 +#define MODE_LIT_ECHO 0x10 + +#define MODE_MASK 0x1f + +/* Not part of protocol, but needed to simplify things... */ +#define MODE_FLOW 0x0100 +#define MODE_ECHO 0x0200 +#define MODE_INBIN 0x0400 +#define MODE_OUTBIN 0x0800 +#define MODE_FORCE 0x1000 + +#define SLC_SYNCH 1 +#define SLC_BRK 2 +#define SLC_IP 3 +#define SLC_AO 4 +#define SLC_AYT 5 +#define SLC_EOR 6 +#define SLC_ABORT 7 +#define SLC_EOF 8 +#define SLC_SUSP 9 +#define SLC_EC 10 +#define SLC_EL 11 +#define SLC_EW 12 +#define SLC_RP 13 +#define SLC_LNEXT 14 +#define SLC_XON 15 +#define SLC_XOFF 16 +#define SLC_FORW1 17 +#define SLC_FORW2 18 + +#define NSLC 18 + +/* + * For backwards compatibility, we define SLC_NAMES to be the + * list of names if SLC_NAMES is not defined. + */ +#define SLC_NAMELIST "0", "SYNCH", "BRK", "IP", "AO", "AYT", "EOR", \ + "ABORT", "EOF", "SUSP", "EC", "EL", "EW", "RP", \ + "LNEXT", "XON", "XOFF", "FORW1", "FORW2", 0, +#ifdef SLC_NAMES +const char *slc_names[] = { + SLC_NAMELIST +}; +#else +extern char *slc_names[]; +#define SLC_NAMES SLC_NAMELIST +#endif + +#define SLC_NAME_OK(x) ((unsigned int)(x) <= NSLC) +#define SLC_NAME(x) slc_names[x] + +#define SLC_NOSUPPORT 0 +#define SLC_CANTCHANGE 1 +#define SLC_VARIABLE 2 +#define SLC_DEFAULT 3 +#define SLC_LEVELBITS 0x03 + +#define SLC_FUNC 0 +#define SLC_FLAGS 1 +#define SLC_VALUE 2 + +#define SLC_ACK 0x80 +#define SLC_FLUSHIN 0x40 +#define SLC_FLUSHOUT 0x20 + +#define OLD_ENV_VAR 1 +#define OLD_ENV_VALUE 0 +#define NEW_ENV_VAR 0 +#define NEW_ENV_VALUE 1 +#define ENV_ESC 2 +#define ENV_USERVAR 3 + +/* + * AUTHENTICATION suboptions + */ + +/* + * Who is authenticating who ... + */ +#define AUTH_WHO_CLIENT 0 /* Client authenticating server */ +#define AUTH_WHO_SERVER 1 /* Server authenticating client */ +#define AUTH_WHO_MASK 1 + +/* + * amount of authentication done + */ +#define AUTH_HOW_ONE_WAY 0 +#define AUTH_HOW_MUTUAL 2 +#define AUTH_HOW_MASK 2 + +#define AUTHTYPE_NULL 0 +#define AUTHTYPE_KERBEROS_V4 1 +#define AUTHTYPE_KERBEROS_V5 2 +#define AUTHTYPE_SPX 3 +#define AUTHTYPE_MINK 4 +#define AUTHTYPE_CNT 5 + +#define AUTHTYPE_TEST 99 + +#ifdef AUTH_NAMES +const char *authtype_names[] = { + "NULL", "KERBEROS_V4", "KERBEROS_V5", "SPX", "MINK", 0, +}; +#else +extern char *authtype_names[]; +#endif + +#define AUTHTYPE_NAME_OK(x) ((unsigned int)(x) < AUTHTYPE_CNT) +#define AUTHTYPE_NAME(x) authtype_names[x] + +/* + * ENCRYPTion suboptions + */ +#define ENCRYPT_IS 0 /* I pick encryption type ... */ +#define ENCRYPT_SUPPORT 1 /* I support encryption types ... */ +#define ENCRYPT_REPLY 2 /* Initial setup response */ +#define ENCRYPT_START 3 /* Am starting to send encrypted */ +#define ENCRYPT_END 4 /* Am ending encrypted */ +#define ENCRYPT_REQSTART 5 /* Request you start encrypting */ +#define ENCRYPT_REQEND 6 /* Request you send encrypting */ +#define ENCRYPT_ENC_KEYID 7 +#define ENCRYPT_DEC_KEYID 8 +#define ENCRYPT_CNT 9 + +#define ENCTYPE_ANY 0 +#define ENCTYPE_DES_CFB64 1 +#define ENCTYPE_DES_OFB64 2 +#define ENCTYPE_CNT 3 + +#ifdef ENCRYPT_NAMES +const char *encrypt_names[] = { + "IS", "SUPPORT", "REPLY", "START", "END", + "REQUEST-START", "REQUEST-END", "ENC-KEYID", "DEC-KEYID", + 0, +}; +const char *enctype_names[] = { + "ANY", "DES_CFB64", "DES_OFB64", 0, +}; +#else +extern const char *encrypt_names[]; +extern const char *enctype_names[]; +#endif + + +#define ENCRYPT_NAME_OK(x) ((unsigned int)(x) < ENCRYPT_CNT) +#define ENCRYPT_NAME(x) encrypt_names[x] + +#define ENCTYPE_NAME_OK(x) ((unsigned int)(x) < ENCTYPE_CNT) +#define ENCTYPE_NAME(x) enctype_names[x] + +#endif /* arpa/telnet.h */ diff --git a/ndk/platforms/android-9/include/pthread.h b/ndk/platforms/android-9/include/pthread.h index 9773dcba2..1e80b120d 100644 --- a/ndk/platforms/android-9/include/pthread.h +++ b/ndk/platforms/android-9/include/pthread.h @@ -163,7 +163,9 @@ int pthread_mutex_destroy(pthread_mutex_t *mutex); int pthread_mutex_lock(pthread_mutex_t *mutex); int pthread_mutex_unlock(pthread_mutex_t *mutex); int pthread_mutex_trylock(pthread_mutex_t *mutex); +#if 0 /* MISSING FROM BIONIC */ int pthread_mutex_timedlock(pthread_mutex_t *mutex, struct timespec* ts); +#endif /* MISSING */ int pthread_condattr_init(pthread_condattr_t *attr); int pthread_condattr_getpshared(pthread_condattr_t *attr, int *pshared); diff --git a/ndk/platforms/android-9/include/sched.h b/ndk/platforms/android-9/include/sched.h new file mode 100644 index 000000000..e70247005 --- /dev/null +++ b/ndk/platforms/android-9/include/sched.h @@ -0,0 +1,78 @@ +/* + * Copyright (C) 2008 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 _SCHED_H_ +#define _SCHED_H_ + +#include +#include + +__BEGIN_DECLS + +#define SCHED_NORMAL 0 +#define SCHED_OTHER 0 +#define SCHED_FIFO 1 +#define SCHED_RR 2 + +struct sched_param { + int sched_priority; +}; + +extern int sched_setscheduler(pid_t, int, const struct sched_param *); +extern int sched_getscheduler(pid_t); +extern int sched_yield(void); +extern int sched_get_priority_max(int policy); +extern int sched_get_priority_min(int policy); +extern int sched_setparam(pid_t, const struct sched_param *); +extern int sched_getparam(pid_t, struct sched_param *); +extern int sched_rr_get_interval(pid_t pid, struct timespec *tp); + +#define CLONE_VM 0x00000100 +#define CLONE_FS 0x00000200 +#define CLONE_FILES 0x00000400 +#define CLONE_SIGHAND 0x00000800 +#define CLONE_PTRACE 0x00002000 +#define CLONE_VFORK 0x00004000 +#define CLONE_PARENT 0x00008000 +#define CLONE_THREAD 0x00010000 +#define CLONE_NEWNS 0x00020000 +#define CLONE_SYSVSEM 0x00040000 +#define CLONE_SETTLS 0x00080000 +#define CLONE_PARENT_SETTID 0x00100000 +#define CLONE_CHILD_CLEARTID 0x00200000 +#define CLONE_DETACHED 0x00400000 +#define CLONE_UNTRACED 0x00800000 +#define CLONE_CHILD_SETTID 0x01000000 +#define CLONE_STOPPED 0x02000000 + +#ifdef _GNU_SOURCE +extern int clone(int (*fn)(void *), void *child_stack, int flags, void* arg, ...); +#endif + +__END_DECLS + +#endif /* _SCHED_H_ */ diff --git a/ndk/platforms/android-9/include/stdlib.h b/ndk/platforms/android-9/include/stdlib.h index 41e8d26c4..97d8e4650 100644 --- a/ndk/platforms/android-9/include/stdlib.h +++ b/ndk/platforms/android-9/include/stdlib.h @@ -50,7 +50,6 @@ __BEGIN_DECLS extern __noreturn void exit(int); extern __noreturn void abort(void); extern int atexit(void (*)(void)); -extern int on_exit(void (*)(int, void *), void *); extern char *getenv(const char *); extern int putenv(const char *); @@ -107,6 +106,8 @@ extern long mrand48(void); extern long nrand48(unsigned short *); extern long lrand48(void); extern unsigned short *seed48(unsigned short*); +extern double erand48(unsigned short xsubi[3]); +extern double drand48(void); extern void srand48(long); extern unsigned int arc4random(void); extern void arc4random_stir(void); @@ -135,7 +136,7 @@ extern char* ptsname(int); extern int ptsname_r(int, char*, size_t); extern int getpt(void); -static __inline__ int grantpt(int __fd) +static __inline__ int grantpt(int __fd __attribute((unused))) { (void)__fd; return 0; /* devpts does this all for us! */ @@ -162,6 +163,7 @@ typedef struct { extern lldiv_t lldiv(long long, long long); +#if 1 /* MISSING FROM BIONIC - ENABLED FOR STLPort and libstdc++-v3 */ /* make STLPort happy */ extern int mblen(const char *, size_t); extern size_t mbstowcs(wchar_t *, const char *, size_t); @@ -170,8 +172,14 @@ extern int mbtowc(wchar_t *, const char *, size_t); /* Likewise, make libstdc++-v3 happy. */ extern int wctomb(char *, wchar_t); extern size_t wcstombs(char *, const wchar_t *, size_t); +#endif /* MISSING */ + #define MB_CUR_MAX 1 +#if 0 /* MISSING FROM BIONIC */ +extern int on_exit(void (*)(int, void *), void *); +#endif /* MISSING */ + __END_DECLS #endif /* _STDLIB_H_ */ diff --git a/ndk/platforms/android-9/include/strings.h b/ndk/platforms/android-9/include/strings.h new file mode 100644 index 000000000..fee7dc4f7 --- /dev/null +++ b/ndk/platforms/android-9/include/strings.h @@ -0,0 +1,56 @@ +/* $NetBSD: strings.h,v 1.10 2005/02/03 04:39:32 perry Exp $ */ + +/*- + * Copyright (c) 1998 The NetBSD Foundation, Inc. + * All rights reserved. + * + * This code is derived from software contributed to The NetBSD Foundation + * by Klaus Klein. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the NetBSD + * Foundation, Inc. and its contributors. + * 4. Neither the name of The NetBSD Foundation nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. 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 FOUNDATION 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 _STRINGS_H_ +#define _STRINGS_H_ + +#include +#include + +__BEGIN_DECLS +int bcmp(const void *, const void *, size_t); +void bcopy(const void *, void *, size_t); +void bzero(void *, size_t); +int ffs(int); +char *index(const char *, int); +char *rindex(const char *, int); +int strcasecmp(const char *, const char *); +int strncasecmp(const char *, const char *, size_t); +__END_DECLS + +#endif /* !defined(_STRINGS_H_) */ diff --git a/ndk/platforms/android-9/include/sys/_sigdefs.h b/ndk/platforms/android-9/include/sys/_sigdefs.h new file mode 100644 index 000000000..6822c2558 --- /dev/null +++ b/ndk/platforms/android-9/include/sys/_sigdefs.h @@ -0,0 +1,70 @@ +/* + * Copyright (C) 2008 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. + */ + +/* + * this header is used to define signal constants and names; + * it might be included several times + */ + +#ifndef __BIONIC_SIGDEF +#error __BIONIC_SIGDEF not defined +#endif + +__BIONIC_SIGDEF(HUP,1,"Hangup") +__BIONIC_SIGDEF(INT,2,"Interrupt") +__BIONIC_SIGDEF(QUIT,3,"Quit") +__BIONIC_SIGDEF(ILL,4,"Illegal instruction") +__BIONIC_SIGDEF(TRAP,5,"Trap") +__BIONIC_SIGDEF(ABRT,6,"Aborted") +__BIONIC_SIGDEF(BUS,7,"Bus error") +__BIONIC_SIGDEF(FPE,8,"Floating point exception") +__BIONIC_SIGDEF(KILL,9,"Killed") +__BIONIC_SIGDEF(USR1,10,"User signal 1") +__BIONIC_SIGDEF(SEGV,11,"Segmentation fault") +__BIONIC_SIGDEF(USR2,12,"User signal 2") +__BIONIC_SIGDEF(PIPE,13,"Broken pipe") +__BIONIC_SIGDEF(ALRM,14,"Alarm clock") +__BIONIC_SIGDEF(TERM,15,"Terminated") +__BIONIC_SIGDEF(STKFLT,16,"Stack fault") +__BIONIC_SIGDEF(CHLD,17,"Child exited") +__BIONIC_SIGDEF(CONT,18,"Continue") +__BIONIC_SIGDEF(STOP,19,"Stopped (signal)") +__BIONIC_SIGDEF(TSTP,20,"Stopped") +__BIONIC_SIGDEF(TTIN,21,"Stopped (tty input)") +__BIONIC_SIGDEF(TTOU,22,"Stopper (tty output)") +__BIONIC_SIGDEF(URG,23,"Urgent I/O condition") +__BIONIC_SIGDEF(XCPU,24,"CPU time limit exceeded") +__BIONIC_SIGDEF(XFSZ,25,"File size limit exceeded") +__BIONIC_SIGDEF(VTALRM,26,"Virtual timer expired") +__BIONIC_SIGDEF(PROF,27,"Profiling timer expired") +__BIONIC_SIGDEF(WINCH,28,"Window size changed") +__BIONIC_SIGDEF(IO,29,"I/O possible") +__BIONIC_SIGDEF(PWR,30,"Power failure") +__BIONIC_SIGDEF(SYS,31,"Bad system call") + +#undef __BIONIC_SIGDEF diff --git a/ndk/platforms/android-9/include/sys/cdefs.h b/ndk/platforms/android-9/include/sys/cdefs.h new file mode 100644 index 000000000..849e2b8c6 --- /dev/null +++ b/ndk/platforms/android-9/include/sys/cdefs.h @@ -0,0 +1,501 @@ +/* $NetBSD: cdefs.h,v 1.58 2004/12/11 05:59:00 christos Exp $ */ + +/* + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Berkeley Software Design, Inc. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. 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. + * 3. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS 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 REGENTS 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. + * + * @(#)cdefs.h 8.8 (Berkeley) 1/9/95 + */ + +#ifndef _SYS_CDEFS_H_ +#define _SYS_CDEFS_H_ + +/* + * Macro to test if we're using a GNU C compiler of a specific vintage + * or later, for e.g. features that appeared in a particular version + * of GNU C. Usage: + * + * #if __GNUC_PREREQ__(major, minor) + * ...cool feature... + * #else + * ...delete feature... + * #endif + */ +#ifdef __GNUC__ +#define __GNUC_PREREQ__(x, y) \ + ((__GNUC__ == (x) && __GNUC_MINOR__ >= (y)) || \ + (__GNUC__ > (x))) +#else +#define __GNUC_PREREQ__(x, y) 0 +#endif + +#include + +#if defined(__cplusplus) +#define __BEGIN_DECLS extern "C" { +#define __END_DECLS } +#define __static_cast(x,y) static_cast(y) +#else +#define __BEGIN_DECLS +#define __END_DECLS +#define __static_cast(x,y) (x)y +#endif + +/* + * The __CONCAT macro is used to concatenate parts of symbol names, e.g. + * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo. + * The __CONCAT macro is a bit tricky -- make sure you don't put spaces + * in between its arguments. __CONCAT can also concatenate double-quoted + * strings produced by the __STRING macro, but this only works with ANSI C. + */ + +#define ___STRING(x) __STRING(x) +#define ___CONCAT(x,y) __CONCAT(x,y) + +#if __STDC__ || defined(__cplusplus) +#define __P(protos) protos /* full-blown ANSI C */ +#define __CONCAT(x,y) x ## y +#define __STRING(x) #x + +#define __const const /* define reserved names to standard */ +#define __signed signed +#define __volatile volatile +#if defined(__cplusplus) +#define __inline inline /* convert to C++ keyword */ +#else +#if !defined(__GNUC__) && !defined(__lint__) +#define __inline /* delete GCC keyword */ +#endif /* !__GNUC__ && !__lint__ */ +#endif /* !__cplusplus */ + +#else /* !(__STDC__ || __cplusplus) */ +#define __P(protos) () /* traditional C preprocessor */ +#define __CONCAT(x,y) x/**/y +#define __STRING(x) "x" + +#ifndef __GNUC__ +#define __const /* delete pseudo-ANSI C keywords */ +#define __inline +#define __signed +#define __volatile +#endif /* !__GNUC__ */ + +/* + * In non-ANSI C environments, new programs will want ANSI-only C keywords + * deleted from the program and old programs will want them left alone. + * Programs using the ANSI C keywords const, inline etc. as normal + * identifiers should define -DNO_ANSI_KEYWORDS. + */ +#ifndef NO_ANSI_KEYWORDS +#define const __const /* convert ANSI C keywords */ +#define inline __inline +#define signed __signed +#define volatile __volatile +#endif /* !NO_ANSI_KEYWORDS */ +#endif /* !(__STDC__ || __cplusplus) */ + +/* + * Used for internal auditing of the NetBSD source tree. + */ +#ifdef __AUDIT__ +#define __aconst __const +#else +#define __aconst +#endif + +/* + * The following macro is used to remove const cast-away warnings + * from gcc -Wcast-qual; it should be used with caution because it + * can hide valid errors; in particular most valid uses are in + * situations where the API requires it, not to cast away string + * constants. We don't use *intptr_t on purpose here and we are + * explicit about unsigned long so that we don't have additional + * dependencies. + */ +#define __UNCONST(a) ((void *)(unsigned long)(const void *)(a)) + +/* + * GCC2 provides __extension__ to suppress warnings for various GNU C + * language extensions under "-ansi -pedantic". + */ +#if !__GNUC_PREREQ__(2, 0) +#define __extension__ /* delete __extension__ if non-gcc or gcc1 */ +#endif + +/* + * GCC1 and some versions of GCC2 declare dead (non-returning) and + * pure (no side effects) functions using "volatile" and "const"; + * unfortunately, these then cause warnings under "-ansi -pedantic". + * GCC2 uses a new, peculiar __attribute__((attrs)) style. All of + * these work for GNU C++ (modulo a slight glitch in the C++ grammar + * in the distribution version of 2.5.5). + */ +#if !__GNUC_PREREQ__(2, 5) +#define __attribute__(x) /* delete __attribute__ if non-gcc or gcc1 */ +#if defined(__GNUC__) && !defined(__STRICT_ANSI__) +#define __dead __volatile +#define __pure __const +#endif +#endif + +/* Delete pseudo-keywords wherever they are not available or needed. */ +#ifndef __dead +#define __dead +#define __pure +#endif + +#if __GNUC_PREREQ__(2, 7) +#define __unused __attribute__((__unused__)) +#else +#define __unused /* delete */ +#endif + +#if __GNUC_PREREQ__(3, 1) +#define __used __attribute__((__used__)) +#else +#define __used /* delete */ +#endif + +#if __GNUC_PREREQ__(2, 7) +#define __packed __attribute__((__packed__)) +#define __aligned(x) __attribute__((__aligned__(x))) +#define __section(x) __attribute__((__section__(x))) +#elif defined(__lint__) +#define __packed /* delete */ +#define __aligned(x) /* delete */ +#define __section(x) /* delete */ +#else +#define __packed error: no __packed for this compiler +#define __aligned(x) error: no __aligned for this compiler +#define __section(x) error: no __section for this compiler +#endif + +#if !__GNUC_PREREQ__(2, 8) +#define __extension__ +#endif + +#if __GNUC_PREREQ__(2, 8) +#define __statement(x) __extension__(x) +#elif defined(lint) +#define __statement(x) (0) +#else +#define __statement(x) (x) +#endif + +/* + * C99 defines the restrict type qualifier keyword, which was made available + * in GCC 2.92. + */ +#if __STDC_VERSION__ >= 199901L +#define __restrict restrict +#else +#if !__GNUC_PREREQ__(2, 92) +#define __restrict /* delete __restrict when not supported */ +#endif +#endif + +/* + * C99 defines __func__ predefined identifier, which was made available + * in GCC 2.95. + */ +#if !(__STDC_VERSION__ >= 199901L) +#if __GNUC_PREREQ__(2, 6) +#define __func__ __PRETTY_FUNCTION__ +#elif __GNUC_PREREQ__(2, 4) +#define __func__ __FUNCTION__ +#else +#define __func__ "" +#endif +#endif /* !(__STDC_VERSION__ >= 199901L) */ + +#if defined(_KERNEL) +#if defined(NO_KERNEL_RCSIDS) +#undef __KERNEL_RCSID +#define __KERNEL_RCSID(_n, _s) /* nothing */ +#endif /* NO_KERNEL_RCSIDS */ +#endif /* _KERNEL */ + +#if !defined(_STANDALONE) && !defined(_KERNEL) +#ifdef __GNUC__ +#define __RENAME(x) ___RENAME(x) +#else +#ifdef __lint__ +#define __RENAME(x) __symbolrename(x) +#else +#error "No function renaming possible" +#endif /* __lint__ */ +#endif /* __GNUC__ */ +#else /* _STANDALONE || _KERNEL */ +#define __RENAME(x) no renaming in kernel or standalone environment +#endif + +/* + * A barrier to stop the optimizer from moving code or assume live + * register values. This is gcc specific, the version is more or less + * arbitrary, might work with older compilers. + */ +#if __GNUC_PREREQ__(2, 95) +#define __insn_barrier() __asm __volatile("":::"memory") +#else +#define __insn_barrier() /* */ +#endif + +/* + * GNU C version 2.96 adds explicit branch prediction so that + * the CPU back-end can hint the processor and also so that + * code blocks can be reordered such that the predicted path + * sees a more linear flow, thus improving cache behavior, etc. + * + * The following two macros provide us with a way to use this + * compiler feature. Use __predict_true() if you expect the expression + * to evaluate to true, and __predict_false() if you expect the + * expression to evaluate to false. + * + * A few notes about usage: + * + * * Generally, __predict_false() error condition checks (unless + * you have some _strong_ reason to do otherwise, in which case + * document it), and/or __predict_true() `no-error' condition + * checks, assuming you want to optimize for the no-error case. + * + * * Other than that, if you don't know the likelihood of a test + * succeeding from empirical or other `hard' evidence, don't + * make predictions. + * + * * These are meant to be used in places that are run `a lot'. + * It is wasteful to make predictions in code that is run + * seldomly (e.g. at subsystem initialization time) as the + * basic block reordering that this affects can often generate + * larger code. + */ +#if __GNUC_PREREQ__(2, 96) +#define __predict_true(exp) __builtin_expect((exp) != 0, 1) +#define __predict_false(exp) __builtin_expect((exp) != 0, 0) +#else +#define __predict_true(exp) (exp) +#define __predict_false(exp) (exp) +#endif + +#if __GNUC_PREREQ__(2, 96) +#define __noreturn __attribute__((__noreturn__)) +#define __mallocfunc __attribute__((malloc)) +#else +#define __noreturn +#define __mallocfunc +#endif + +/* + * Macros for manipulating "link sets". Link sets are arrays of pointers + * to objects, which are gathered up by the linker. + * + * Object format-specific code has provided us with the following macros: + * + * __link_set_add_text(set, sym) + * Add a reference to the .text symbol `sym' to `set'. + * + * __link_set_add_rodata(set, sym) + * Add a reference to the .rodata symbol `sym' to `set'. + * + * __link_set_add_data(set, sym) + * Add a reference to the .data symbol `sym' to `set'. + * + * __link_set_add_bss(set, sym) + * Add a reference to the .bss symbol `sym' to `set'. + * + * __link_set_decl(set, ptype) + * Provide an extern declaration of the set `set', which + * contains an array of the pointer type `ptype'. This + * macro must be used by any code which wishes to reference + * the elements of a link set. + * + * __link_set_start(set) + * This points to the first slot in the link set. + * + * __link_set_end(set) + * This points to the (non-existent) slot after the last + * entry in the link set. + * + * __link_set_count(set) + * Count the number of entries in link set `set'. + * + * In addition, we provide the following macros for accessing link sets: + * + * __link_set_foreach(pvar, set) + * Iterate over the link set `set'. Because a link set is + * an array of pointers, pvar must be declared as "type **pvar", + * and the actual entry accessed as "*pvar". + * + * __link_set_entry(set, idx) + * Access the link set entry at index `idx' from set `set'. + */ +#define __link_set_foreach(pvar, set) \ + for (pvar = __link_set_start(set); pvar < __link_set_end(set); pvar++) + +#define __link_set_entry(set, idx) (__link_set_begin(set)[idx]) + +/* + * Some of the recend FreeBSD sources used in Bionic need this. + * Originally, this is used to embed the rcs versions of each source file + * in the generated binary. We certainly don't want this in Bionic. + */ +#define __FBSDID(s) struct __hack + +/*- + * The following definitions are an extension of the behavior originally + * implemented in , but with a different level of granularity. + * POSIX.1 requires that the macros we test be defined before any standard + * header file is included. + * + * Here's a quick run-down of the versions: + * defined(_POSIX_SOURCE) 1003.1-1988 + * _POSIX_C_SOURCE == 1 1003.1-1990 + * _POSIX_C_SOURCE == 2 1003.2-1992 C Language Binding Option + * _POSIX_C_SOURCE == 199309 1003.1b-1993 + * _POSIX_C_SOURCE == 199506 1003.1c-1995, 1003.1i-1995, + * and the omnibus ISO/IEC 9945-1: 1996 + * _POSIX_C_SOURCE == 200112 1003.1-2001 + * _POSIX_C_SOURCE == 200809 1003.1-2008 + * + * In addition, the X/Open Portability Guide, which is now the Single UNIX + * Specification, defines a feature-test macro which indicates the version of + * that specification, and which subsumes _POSIX_C_SOURCE. + * + * Our macros begin with two underscores to avoid namespace screwage. + */ + +/* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. */ +#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1 +#undef _POSIX_C_SOURCE /* Probably illegal, but beyond caring now. */ +#define _POSIX_C_SOURCE 199009 +#endif + +/* Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. */ +#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 2 +#undef _POSIX_C_SOURCE +#define _POSIX_C_SOURCE 199209 +#endif + +/* Deal with various X/Open Portability Guides and Single UNIX Spec. */ +#ifdef _XOPEN_SOURCE +#if _XOPEN_SOURCE - 0 >= 700 +#define __XSI_VISIBLE 700 +#undef _POSIX_C_SOURCE +#define _POSIX_C_SOURCE 200809 +#elif _XOPEN_SOURCE - 0 >= 600 +#define __XSI_VISIBLE 600 +#undef _POSIX_C_SOURCE +#define _POSIX_C_SOURCE 200112 +#elif _XOPEN_SOURCE - 0 >= 500 +#define __XSI_VISIBLE 500 +#undef _POSIX_C_SOURCE +#define _POSIX_C_SOURCE 199506 +#endif +#endif + +/* + * Deal with all versions of POSIX. The ordering relative to the tests above is + * important. + */ +#if defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE) +#define _POSIX_C_SOURCE 198808 +#endif +#ifdef _POSIX_C_SOURCE +#if _POSIX_C_SOURCE >= 200809 +#define __POSIX_VISIBLE 200809 +#define __ISO_C_VISIBLE 1999 +#elif _POSIX_C_SOURCE >= 200112 +#define __POSIX_VISIBLE 200112 +#define __ISO_C_VISIBLE 1999 +#elif _POSIX_C_SOURCE >= 199506 +#define __POSIX_VISIBLE 199506 +#define __ISO_C_VISIBLE 1990 +#elif _POSIX_C_SOURCE >= 199309 +#define __POSIX_VISIBLE 199309 +#define __ISO_C_VISIBLE 1990 +#elif _POSIX_C_SOURCE >= 199209 +#define __POSIX_VISIBLE 199209 +#define __ISO_C_VISIBLE 1990 +#elif _POSIX_C_SOURCE >= 199009 +#define __POSIX_VISIBLE 199009 +#define __ISO_C_VISIBLE 1990 +#else +#define __POSIX_VISIBLE 198808 +#define __ISO_C_VISIBLE 0 +#endif /* _POSIX_C_SOURCE */ +#else +/*- + * Deal with _ANSI_SOURCE: + * If it is defined, and no other compilation environment is explicitly + * requested, then define our internal feature-test macros to zero. This + * makes no difference to the preprocessor (undefined symbols in preprocessing + * expressions are defined to have value zero), but makes it more convenient for + * a test program to print out the values. + * + * If a program mistakenly defines _ANSI_SOURCE and some other macro such as + * _POSIX_C_SOURCE, we will assume that it wants the broader compilation + * environment (and in fact we will never get here). + */ +#if defined(_ANSI_SOURCE) /* Hide almost everything. */ +#define __POSIX_VISIBLE 0 +#define __XSI_VISIBLE 0 +#define __BSD_VISIBLE 0 +#define __ISO_C_VISIBLE 1990 +#elif defined(_C99_SOURCE) /* Localism to specify strict C99 env. */ +#define __POSIX_VISIBLE 0 +#define __XSI_VISIBLE 0 +#define __BSD_VISIBLE 0 +#define __ISO_C_VISIBLE 1999 +#else /* Default environment: show everything. */ +#define __POSIX_VISIBLE 200809 +#define __XSI_VISIBLE 700 +#define __BSD_VISIBLE 1 +#define __ISO_C_VISIBLE 1999 +#endif +#endif + +/* + * Default values. + */ +#ifndef __XPG_VISIBLE +# define __XPG_VISIBLE 700 +#endif +#ifndef __POSIX_VISIBLE +# define __POSIX_VISIBLE 200809 +#endif +#ifndef __ISO_C_VISIBLE +# define __ISO_C_VISIBLE 1999 +#endif +#ifndef __BSD_VISIBLE +# define __BSD_VISIBLE 1 +#endif + +#define __BIONIC__ 1 + +#endif /* !_SYS_CDEFS_H_ */ diff --git a/ndk/platforms/android-9/include/sys/linux-syscalls.h b/ndk/platforms/android-9/include/sys/linux-syscalls.h new file mode 100644 index 000000000..9702a7a73 --- /dev/null +++ b/ndk/platforms/android-9/include/sys/linux-syscalls.h @@ -0,0 +1,292 @@ +/* auto-generated by gensyscalls.py, do not touch */ +#ifndef _BIONIC_LINUX_SYSCALLS_H_ + +#if !defined __ASM_ARM_UNISTD_H && !defined __ASM_I386_UNISTD_H +#if defined __arm__ && !defined __ARM_EABI__ && !defined __thumb__ + # define __NR_SYSCALL_BASE 0x900000 + #else + # define __NR_SYSCALL_BASE 0 + #endif + +#define __NR_exit (__NR_SYSCALL_BASE + 1) +#define __NR_fork (__NR_SYSCALL_BASE + 2) +#define __NR_clone (__NR_SYSCALL_BASE + 120) +#define __NR_execve (__NR_SYSCALL_BASE + 11) +#define __NR_setuid32 (__NR_SYSCALL_BASE + 213) +#define __NR_getuid32 (__NR_SYSCALL_BASE + 199) +#define __NR_getgid32 (__NR_SYSCALL_BASE + 200) +#define __NR_geteuid32 (__NR_SYSCALL_BASE + 201) +#define __NR_getegid32 (__NR_SYSCALL_BASE + 202) +#define __NR_getresuid32 (__NR_SYSCALL_BASE + 209) +#define __NR_getresgid32 (__NR_SYSCALL_BASE + 211) +#define __NR_gettid (__NR_SYSCALL_BASE + 224) +#define __NR_getgroups32 (__NR_SYSCALL_BASE + 205) +#define __NR_getpgid (__NR_SYSCALL_BASE + 132) +#define __NR_getppid (__NR_SYSCALL_BASE + 64) +#define __NR_setsid (__NR_SYSCALL_BASE + 66) +#define __NR_setgid32 (__NR_SYSCALL_BASE + 214) +#define __NR_setreuid32 (__NR_SYSCALL_BASE + 203) +#define __NR_setresuid32 (__NR_SYSCALL_BASE + 208) +#define __NR_setresgid32 (__NR_SYSCALL_BASE + 210) +#define __NR_brk (__NR_SYSCALL_BASE + 45) +#define __NR_ptrace (__NR_SYSCALL_BASE + 26) +#define __NR_getpriority (__NR_SYSCALL_BASE + 96) +#define __NR_setpriority (__NR_SYSCALL_BASE + 97) +#define __NR_setrlimit (__NR_SYSCALL_BASE + 75) +#define __NR_ugetrlimit (__NR_SYSCALL_BASE + 191) +#define __NR_getrusage (__NR_SYSCALL_BASE + 77) +#define __NR_setgroups32 (__NR_SYSCALL_BASE + 206) +#define __NR_setpgid (__NR_SYSCALL_BASE + 57) +#define __NR_setregid32 (__NR_SYSCALL_BASE + 204) +#define __NR_chroot (__NR_SYSCALL_BASE + 61) +#define __NR_prctl (__NR_SYSCALL_BASE + 172) +#define __NR_capget (__NR_SYSCALL_BASE + 184) +#define __NR_capset (__NR_SYSCALL_BASE + 185) +#define __NR_sigaltstack (__NR_SYSCALL_BASE + 186) +#define __NR_acct (__NR_SYSCALL_BASE + 51) +#define __NR_read (__NR_SYSCALL_BASE + 3) +#define __NR_write (__NR_SYSCALL_BASE + 4) +#define __NR_pread64 (__NR_SYSCALL_BASE + 180) +#define __NR_pwrite64 (__NR_SYSCALL_BASE + 181) +#define __NR_open (__NR_SYSCALL_BASE + 5) +#define __NR_close (__NR_SYSCALL_BASE + 6) +#define __NR_lseek (__NR_SYSCALL_BASE + 19) +#define __NR__llseek (__NR_SYSCALL_BASE + 140) +#define __NR_getpid (__NR_SYSCALL_BASE + 20) +#define __NR_mmap2 (__NR_SYSCALL_BASE + 192) +#define __NR_munmap (__NR_SYSCALL_BASE + 91) +#define __NR_mremap (__NR_SYSCALL_BASE + 163) +#define __NR_msync (__NR_SYSCALL_BASE + 144) +#define __NR_mprotect (__NR_SYSCALL_BASE + 125) +#define __NR_mlock (__NR_SYSCALL_BASE + 150) +#define __NR_munlock (__NR_SYSCALL_BASE + 151) +#define __NR_ioctl (__NR_SYSCALL_BASE + 54) +#define __NR_readv (__NR_SYSCALL_BASE + 145) +#define __NR_writev (__NR_SYSCALL_BASE + 146) +#define __NR_fcntl (__NR_SYSCALL_BASE + 55) +#define __NR_flock (__NR_SYSCALL_BASE + 143) +#define __NR_fchmod (__NR_SYSCALL_BASE + 94) +#define __NR_dup (__NR_SYSCALL_BASE + 41) +#define __NR_pipe (__NR_SYSCALL_BASE + 42) +#define __NR_dup2 (__NR_SYSCALL_BASE + 63) +#define __NR__newselect (__NR_SYSCALL_BASE + 142) +#define __NR_ftruncate (__NR_SYSCALL_BASE + 93) +#define __NR_fsync (__NR_SYSCALL_BASE + 118) +#define __NR_fdatasync (__NR_SYSCALL_BASE + 148) +#define __NR_fchown32 (__NR_SYSCALL_BASE + 207) +#define __NR_sync (__NR_SYSCALL_BASE + 36) +#define __NR_fcntl64 (__NR_SYSCALL_BASE + 221) +#define __NR_sendfile (__NR_SYSCALL_BASE + 187) +#define __NR_link (__NR_SYSCALL_BASE + 9) +#define __NR_unlink (__NR_SYSCALL_BASE + 10) +#define __NR_chdir (__NR_SYSCALL_BASE + 12) +#define __NR_mknod (__NR_SYSCALL_BASE + 14) +#define __NR_chmod (__NR_SYSCALL_BASE + 15) +#define __NR_chown32 (__NR_SYSCALL_BASE + 212) +#define __NR_lchown32 (__NR_SYSCALL_BASE + 198) +#define __NR_mount (__NR_SYSCALL_BASE + 21) +#define __NR_umount2 (__NR_SYSCALL_BASE + 52) +#define __NR_fstat64 (__NR_SYSCALL_BASE + 197) +#define __NR_stat64 (__NR_SYSCALL_BASE + 195) +#define __NR_lstat64 (__NR_SYSCALL_BASE + 196) +#define __NR_mkdir (__NR_SYSCALL_BASE + 39) +#define __NR_readlink (__NR_SYSCALL_BASE + 85) +#define __NR_rmdir (__NR_SYSCALL_BASE + 40) +#define __NR_rename (__NR_SYSCALL_BASE + 38) +#define __NR_getcwd (__NR_SYSCALL_BASE + 183) +#define __NR_access (__NR_SYSCALL_BASE + 33) +#define __NR_symlink (__NR_SYSCALL_BASE + 83) +#define __NR_fchdir (__NR_SYSCALL_BASE + 133) +#define __NR_truncate (__NR_SYSCALL_BASE + 92) +#define __NR_pause (__NR_SYSCALL_BASE + 29) +#define __NR_gettimeofday (__NR_SYSCALL_BASE + 78) +#define __NR_settimeofday (__NR_SYSCALL_BASE + 79) +#define __NR_times (__NR_SYSCALL_BASE + 43) +#define __NR_nanosleep (__NR_SYSCALL_BASE + 162) +#define __NR_getitimer (__NR_SYSCALL_BASE + 105) +#define __NR_setitimer (__NR_SYSCALL_BASE + 104) +#define __NR_sigaction (__NR_SYSCALL_BASE + 67) +#define __NR_sigprocmask (__NR_SYSCALL_BASE + 126) +#define __NR_sigsuspend (__NR_SYSCALL_BASE + 72) +#define __NR_rt_sigaction (__NR_SYSCALL_BASE + 174) +#define __NR_rt_sigprocmask (__NR_SYSCALL_BASE + 175) +#define __NR_rt_sigtimedwait (__NR_SYSCALL_BASE + 177) +#define __NR_sigpending (__NR_SYSCALL_BASE + 73) +#define __NR_sched_setscheduler (__NR_SYSCALL_BASE + 156) +#define __NR_sched_getscheduler (__NR_SYSCALL_BASE + 157) +#define __NR_sched_yield (__NR_SYSCALL_BASE + 158) +#define __NR_sched_setparam (__NR_SYSCALL_BASE + 154) +#define __NR_sched_getparam (__NR_SYSCALL_BASE + 155) +#define __NR_sched_get_priority_max (__NR_SYSCALL_BASE + 159) +#define __NR_sched_get_priority_min (__NR_SYSCALL_BASE + 160) +#define __NR_sched_rr_get_interval (__NR_SYSCALL_BASE + 161) +#define __NR_uname (__NR_SYSCALL_BASE + 122) +#define __NR_wait4 (__NR_SYSCALL_BASE + 114) +#define __NR_umask (__NR_SYSCALL_BASE + 60) +#define __NR_reboot (__NR_SYSCALL_BASE + 88) +#define __NR_syslog (__NR_SYSCALL_BASE + 103) +#define __NR_init_module (__NR_SYSCALL_BASE + 128) +#define __NR_delete_module (__NR_SYSCALL_BASE + 129) +#define __NR_syslog (__NR_SYSCALL_BASE + 103) +#define __NR_sysinfo (__NR_SYSCALL_BASE + 116) +#define __NR_futex (__NR_SYSCALL_BASE + 240) +#define __NR_poll (__NR_SYSCALL_BASE + 168) + +#ifdef __arm__ +#define __NR_exit_group (__NR_SYSCALL_BASE + 248) +#define __NR_waitid (__NR_SYSCALL_BASE + 280) +#define __NR_vfork (__NR_SYSCALL_BASE + 190) +#define __NR_openat (__NR_SYSCALL_BASE + 322) +#define __NR_madvise (__NR_SYSCALL_BASE + 220) +#define __NR_mincore (__NR_SYSCALL_BASE + 219) +#define __NR_pipe2 (__NR_SYSCALL_BASE + 359) +#define __NR_getdents64 (__NR_SYSCALL_BASE + 217) +#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 267) +#define __NR_fstatat64 (__NR_SYSCALL_BASE + 327) +#define __NR_mkdirat (__NR_SYSCALL_BASE + 323) +#define __NR_fchownat (__NR_SYSCALL_BASE + 325) +#define __NR_fchmodat (__NR_SYSCALL_BASE + 333) +#define __NR_renameat (__NR_SYSCALL_BASE + 329) +#define __NR_unlinkat (__NR_SYSCALL_BASE + 328) +#define __NR_statfs64 (__NR_SYSCALL_BASE + 266) +#define __NR_clock_gettime (__NR_SYSCALL_BASE + 263) +#define __NR_clock_settime (__NR_SYSCALL_BASE + 262) +#define __NR_clock_getres (__NR_SYSCALL_BASE + 264) +#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 265) +#define __NR_timer_create (__NR_SYSCALL_BASE + 257) +#define __NR_timer_settime (__NR_SYSCALL_BASE + 258) +#define __NR_timer_gettime (__NR_SYSCALL_BASE + 259) +#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 260) +#define __NR_timer_delete (__NR_SYSCALL_BASE + 261) +#define __NR_utimes (__NR_SYSCALL_BASE + 269) +#define __NR_socket (__NR_SYSCALL_BASE + 281) +#define __NR_socketpair (__NR_SYSCALL_BASE + 288) +#define __NR_bind (__NR_SYSCALL_BASE + 282) +#define __NR_connect (__NR_SYSCALL_BASE + 283) +#define __NR_listen (__NR_SYSCALL_BASE + 284) +#define __NR_accept (__NR_SYSCALL_BASE + 285) +#define __NR_getsockname (__NR_SYSCALL_BASE + 286) +#define __NR_getpeername (__NR_SYSCALL_BASE + 287) +#define __NR_sendto (__NR_SYSCALL_BASE + 290) +#define __NR_recvfrom (__NR_SYSCALL_BASE + 292) +#define __NR_shutdown (__NR_SYSCALL_BASE + 293) +#define __NR_setsockopt (__NR_SYSCALL_BASE + 294) +#define __NR_getsockopt (__NR_SYSCALL_BASE + 295) +#define __NR_sendmsg (__NR_SYSCALL_BASE + 296) +#define __NR_recvmsg (__NR_SYSCALL_BASE + 297) +#define __NR_ioprio_set (__NR_SYSCALL_BASE + 314) +#define __NR_ioprio_get (__NR_SYSCALL_BASE + 315) +#define __NR_epoll_create (__NR_SYSCALL_BASE + 250) +#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 251) +#define __NR_epoll_wait (__NR_SYSCALL_BASE + 252) +#define __NR_inotify_init (__NR_SYSCALL_BASE + 316) +#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 317) +#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 318) +#define __NR_eventfd2 (__NR_SYSCALL_BASE + 356) +#define __NR_ARM_set_tls (__NR_SYSCALL_BASE + 983045) +#define __NR_ARM_cacheflush (__NR_SYSCALL_BASE + 983042) +#endif + +#ifdef __i386__ +#define __NR_exit_group (__NR_SYSCALL_BASE + 252) +#define __NR_waitpid (__NR_SYSCALL_BASE + 7) +#define __NR_waitid (__NR_SYSCALL_BASE + 284) +#define __NR_kill (__NR_SYSCALL_BASE + 37) +#define __NR_tkill (__NR_SYSCALL_BASE + 238) +#define __NR_set_thread_area (__NR_SYSCALL_BASE + 243) +#define __NR_openat (__NR_SYSCALL_BASE + 295) +#define __NR_madvise (__NR_SYSCALL_BASE + 219) +#define __NR_mincore (__NR_SYSCALL_BASE + 218) +#define __NR_pipe2 (__NR_SYSCALL_BASE + 331) +#define __NR_getdents64 (__NR_SYSCALL_BASE + 220) +#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 269) +#define __NR_fstatat64 (__NR_SYSCALL_BASE + 300) +#define __NR_mkdirat (__NR_SYSCALL_BASE + 296) +#define __NR_fchownat (__NR_SYSCALL_BASE + 298) +#define __NR_fchmodat (__NR_SYSCALL_BASE + 306) +#define __NR_renameat (__NR_SYSCALL_BASE + 302) +#define __NR_unlinkat (__NR_SYSCALL_BASE + 301) +#define __NR_statfs64 (__NR_SYSCALL_BASE + 268) +#define __NR_clock_gettime (__NR_SYSCALL_BASE + 265) +#define __NR_clock_settime (__NR_SYSCALL_BASE + 264) +#define __NR_clock_getres (__NR_SYSCALL_BASE + 266) +#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 267) +#define __NR_timer_create (__NR_SYSCALL_BASE + 259) +#define __NR_timer_settime (__NR_SYSCALL_BASE + 260) +#define __NR_timer_gettime (__NR_SYSCALL_BASE + 261) +#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 262) +#define __NR_timer_delete (__NR_SYSCALL_BASE + 263) +#define __NR_utimes (__NR_SYSCALL_BASE + 271) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_ioprio_set (__NR_SYSCALL_BASE + 289) +#define __NR_ioprio_get (__NR_SYSCALL_BASE + 290) +#define __NR_epoll_create (__NR_SYSCALL_BASE + 254) +#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 255) +#define __NR_epoll_wait (__NR_SYSCALL_BASE + 256) +#define __NR_inotify_init (__NR_SYSCALL_BASE + 291) +#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 292) +#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 293) +#define __NR_eventfd2 (__NR_SYSCALL_BASE + 328) +#endif + +#if defined(__SH3__) || defined(__SH4__) +#define __NR_exit_group (__NR_SYSCALL_BASE + 252) +#define __NR_waitpid (__NR_SYSCALL_BASE + 7) +#define __NR_waitid (__NR_SYSCALL_BASE + 284) +#define __NR_kill (__NR_SYSCALL_BASE + 37) +#define __NR_tkill (__NR_SYSCALL_BASE + 238) +#define __NR_set_thread_area (__NR_SYSCALL_BASE + 243) +#define __NR_vfork (__NR_SYSCALL_BASE + 190) +#define __NR_openat (__NR_SYSCALL_BASE + 295) +#define __NR_madvise (__NR_SYSCALL_BASE + 219) +#define __NR_mincore (__NR_SYSCALL_BASE + 218) +#define __NR_pipe2 (__NR_SYSCALL_BASE + 331) +#define __NR_getdents64 (__NR_SYSCALL_BASE + 220) +#define __NR_fstatfs64 (__NR_SYSCALL_BASE + 269) +#define __NR_fstatat64 (__NR_SYSCALL_BASE + 300) +#define __NR_mkdirat (__NR_SYSCALL_BASE + 296) +#define __NR_fchownat (__NR_SYSCALL_BASE + 298) +#define __NR_fchmodat (__NR_SYSCALL_BASE + 306) +#define __NR_renameat (__NR_SYSCALL_BASE + 302) +#define __NR_unlinkat (__NR_SYSCALL_BASE + 301) +#define __NR_statfs64 (__NR_SYSCALL_BASE + 268) +#define __NR_clock_gettime (__NR_SYSCALL_BASE + 265) +#define __NR_clock_settime (__NR_SYSCALL_BASE + 264) +#define __NR_clock_getres (__NR_SYSCALL_BASE + 266) +#define __NR_clock_nanosleep (__NR_SYSCALL_BASE + 267) +#define __NR_timer_create (__NR_SYSCALL_BASE + 259) +#define __NR_timer_settime (__NR_SYSCALL_BASE + 260) +#define __NR_timer_gettime (__NR_SYSCALL_BASE + 261) +#define __NR_timer_getoverrun (__NR_SYSCALL_BASE + 262) +#define __NR_timer_delete (__NR_SYSCALL_BASE + 263) +#define __NR_utimes (__NR_SYSCALL_BASE + 271) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_socketcall (__NR_SYSCALL_BASE + 102) +#define __NR___socketcall (__NR_SYSCALL_BASE + 102) +#define __NR_ioprio_set (__NR_SYSCALL_BASE + 288) +#define __NR_ioprio_get (__NR_SYSCALL_BASE + 289) +#define __NR_epoll_create (__NR_SYSCALL_BASE + 254) +#define __NR_epoll_ctl (__NR_SYSCALL_BASE + 255) +#define __NR_epoll_wait (__NR_SYSCALL_BASE + 256) +#define __NR_inotify_init (__NR_SYSCALL_BASE + 290) +#define __NR_inotify_add_watch (__NR_SYSCALL_BASE + 291) +#define __NR_inotify_rm_watch (__NR_SYSCALL_BASE + 292) +#define __NR_eventfd2 (__NR_SYSCALL_BASE + 328) +#endif + +#endif + +#endif /* _BIONIC_LINUX_SYSCALLS_H_ */ diff --git a/ndk/platforms/android-9/include/sys/linux-unistd.h b/ndk/platforms/android-9/include/sys/linux-unistd.h new file mode 100644 index 000000000..23853dac1 --- /dev/null +++ b/ndk/platforms/android-9/include/sys/linux-unistd.h @@ -0,0 +1,212 @@ +/* auto-generated by gensyscalls.py, do not touch */ +#ifndef _BIONIC_LINUX_UNISTD_H_ + +#ifdef __cplusplus +extern "C" { +#endif + +void _exit (int); +void _exit_thread (int); +pid_t __fork (void); +pid_t _waitpid (pid_t, int*, int, struct rusage*); +int __waitid (int, pid_t, struct siginfo_t*, int,void*); +pid_t __sys_clone (int, void*, int*, void*, int*); +int execve (const char*, char* const*, char* const*); +int __setuid (uid_t); +uid_t getuid (void); +gid_t getgid (void); +uid_t geteuid (void); +gid_t getegid (void); +uid_t getresuid (void); +gid_t getresgid (void); +pid_t gettid (void); +int getgroups (int, gid_t *); +pid_t getpgid (pid_t); +pid_t getppid (void); +pid_t setsid (void); +int setgid (gid_t); +int seteuid (uid_t); +int __setreuid (uid_t, uid_t); +int __setresuid (uid_t, uid_t, uid_t); +int setresgid (gid_t, gid_t, gid_t); +void* __brk (void*); +int kill (pid_t, int); +int tkill (pid_t tid, int sig); +int __ptrace (int request, int pid, void* addr, void* data); +int __set_thread_area (void* user_desc); +int __getpriority (int, int); +int setpriority (int, int, int); +int setrlimit (int resource, const struct rlimit *rlp); +int getrlimit (int resource, struct rlimit *rlp); +int getrusage (int who, struct rusage* r_usage); +int setgroups (int, const gid_t *); +pid_t getpgrp (void); +int setpgid (pid_t, pid_t); +pid_t vfork (void); +int setregid (gid_t, gid_t); +int chroot (const char *); +int prctl (int option, unsigned int arg2, unsigned int arg3, unsigned int arg4, unsigned int arg5); +int capget (cap_user_header_t header, cap_user_data_t data); +int capset (cap_user_header_t header, const cap_user_data_t data); +int sigaltstack (const stack_t*, stack_t*); +int acct (const char* filepath); +ssize_t read (int, void*, size_t); +ssize_t write (int, const void*, size_t); +ssize_t __pread64 (int, void *, size_t, off_t, off_t); +ssize_t __pwrite64 (int, void *, size_t, off_t, off_t); +int __open (const char*, int, mode_t); +int __openat (int, const char*, int, mode_t); +int close (int); +int creat (const char*, mode_t); +off_t lseek (int, off_t, int); +int __llseek (int, unsigned long, unsigned long, loff_t*, int); +pid_t getpid (void); +void * mmap (void *, size_t, int, int, int, long); +void * __mmap2 (void*, size_t, int, int, int, long); +int munmap (void *, size_t); +void * mremap (void *, size_t, size_t, unsigned long); +int msync (const void *, size_t, int); +int mprotect (const void *, size_t, int); +int madvise (const void *, size_t, int); +int mlock (const void *addr, size_t len); +int munlock (const void *addr, size_t len); +int mincore (void* start, size_t length, unsigned char* vec); +int __ioctl (int, int, void *); +int readv (int, const struct iovec *, int); +int writev (int, const struct iovec *, int); +int __fcntl (int, int, void*); +int flock (int, int); +int fchmod (int, mode_t); +int dup (int); +int pipe (int *); +int pipe2 (int *, int); +int dup2 (int, int); +int select (int, struct fd_set *, struct fd_set *, struct fd_set *, struct timeval *); +int ftruncate (int, off_t); +int getdents (unsigned int, struct dirent *, unsigned int); +int fsync (int); +int fdatasync (int); +int fchown (int, uid_t, gid_t); +void sync (void); +int __fcntl64 (int, int, void *); +int __fstatfs64 (int, size_t, struct statfs *); +ssize_t sendfile (int out_fd, int in_fd, off_t *offset, size_t count); +int fstatat (int dirfd, const char *path, struct stat *buf, int flags); +int mkdirat (int dirfd, const char *pathname, mode_t mode); +int fchownat (int dirfd, const char *path, uid_t owner, gid_t group, int flags); +int fchmodat (int dirfd, const char *path, mode_t mode, int flags); +int renameat (int olddirfd, const char *oldpath, int newdirfd, const char *newpath); +int link (const char*, const char*); +int unlink (const char*); +int unlinkat (int, const char *, int); +int chdir (const char*); +int mknod (const char*, mode_t, dev_t); +int chmod (const char*,mode_t); +int chown (const char *, uid_t, gid_t); +int lchown (const char*, uid_t, gid_t); +int mount (const char*, const char*, const char*, unsigned long, const void*); +int umount (const char*); +int umount2 (const char*, int); +int fstat (int, struct stat*); +int stat (const char *, struct stat *); +int lstat (const char *, struct stat *); +int mkdir (const char *, mode_t); +int readlink (const char *, char *, size_t); +int rmdir (const char *); +int rename (const char *, const char *); +int __getcwd (char * buf, size_t size); +int access (const char *, int); +int symlink (const char *, const char *); +int fchdir (int); +int truncate (const char*, off_t); +int __statfs64 (const char *, size_t, struct statfs *); +int pause (void); +int gettimeofday (struct timeval*, struct timezone*); +int settimeofday (const struct timeval*, const struct timezone*); +clock_t times (struct tms *); +int nanosleep (const struct timespec *, struct timespec *); +int clock_gettime (clockid_t clk_id, struct timespec *tp); +int clock_settime (clockid_t clk_id, const struct timespec *tp); +int clock_getres (clockid_t clk_id, struct timespec *res); +int clock_nanosleep (const struct timespec *req, struct timespec *rem); +int getitimer (int, const struct itimerval *); +int setitimer (int, const struct itimerval *, struct itimerval *); +int __timer_create (clockid_t clockid, struct sigevent *evp, timer_t *timerid); +int __timer_settime (timer_t, int, const struct itimerspec*, struct itimerspec*); +int __timer_gettime (timer_t, struct itimerspec*); +int __timer_getoverrun (timer_t); +int __timer_delete (timer_t); +int utimes (const char*, const struct timeval tvp[2]); +int sigaction (int, const struct sigaction *, struct sigaction *); +int sigprocmask (int, const sigset_t *, sigset_t *); +int __sigsuspend (int unused1, int unused2, unsigned mask); +int __rt_sigaction (int sig, const struct sigaction *act, struct sigaction *oact, size_t sigsetsize); +int __rt_sigprocmask (int how, const sigset_t *set, sigset_t *oset, size_t sigsetsize); +int __rt_sigtimedwait (const sigset_t *set, struct siginfo_t *info, struct timespec_t *timeout, size_t sigset_size); +int sigpending (sigset_t *); +int socket (int, int, int); +int socketpair (int, int, int, int*); +int bind (int, struct sockaddr *, int); +int connect (int, struct sockaddr *, socklen_t); +int listen (int, int); +int accept (int, struct sockaddr *, socklen_t *); +int getsockname (int, struct sockaddr *, socklen_t *); +int getpeername (int, struct sockaddr *, socklen_t *); +int sendto (int, const void *, size_t, int, const struct sockaddr *, socklen_t); +int recvfrom (int, void *, size_t, unsigned int, struct sockaddr *, socklen_t *); +int shutdown (int, int); +int setsockopt (int, int, int, const void *, socklen_t); +int getsockopt (int, int, int, void *, socklen_t *); +int sendmsg (int, const struct msghdr *, unsigned int); +int recvmsg (int, struct msghdr *, unsigned int); +int socket (int, int, int); +int bind (int, struct sockaddr *, int); +int connect (int, struct sockaddr *, socklen_t); +int listen (int, int); +int accept (int, struct sockaddr *, socklen_t *); +int getsockname (int, struct sockaddr *, socklen_t *); +int getpeername (int, struct sockaddr *, socklen_t *); +int socketpair (int, int, int, int*); +int sendto (int, const void *, size_t, int, const struct sockaddr *, socklen_t); +int recvfrom (int, void *, size_t, unsigned int, struct sockaddr *, socklen_t *); +int shutdown (int, int); +int setsockopt (int, int, int, const void *, socklen_t); +int getsockopt (int, int, int, void *, socklen_t *); +int sendmsg (int, const struct msghdr *, unsigned int); +int recvmsg (int, struct msghdr *, unsigned int); +int __socketcall (int, unsigned long*); +int sched_setscheduler (pid_t pid, int policy, const struct sched_param *param); +int sched_getscheduler (pid_t pid); +int sched_yield (void); +int sched_setparam (pid_t pid, const struct sched_param *param); +int sched_getparam (pid_t pid, struct sched_param *param); +int sched_get_priority_max (int policy); +int sched_get_priority_min (int policy); +int sched_rr_get_interval (pid_t pid, struct timespec *interval); +int ioprio_set (int which, int who, int ioprio); +int ioprio_get (int which, int who); +int uname (struct utsname *); +pid_t __wait4 (pid_t pid, int *status, int options, struct rusage *rusage); +mode_t umask (mode_t); +int __reboot (int, int, int, void *); +int __syslog (int, char *, int); +int init_module (void *, unsigned long, const char *); +int delete_module (const char*, unsigned int); +int klogctl (int, char *, int); +int sysinfo (struct sysinfo *); +int futex (void *, int, int, void *, void *, int); +int epoll_create (int size); +int epoll_ctl (int epfd, int op, int fd, struct epoll_event *event); +int epoll_wait (int epfd, struct epoll_event *events, int max, int timeout); +int inotify_init (void); +int inotify_add_watch (int, const char *, unsigned int); +int inotify_rm_watch (int, unsigned int); +int poll (struct pollfd *, unsigned int, long); +int eventfd (unsigned int, int); +int __set_tls (void*); +int cacheflush (long start, long end, long flags); +#ifdef __cplusplus +} +#endif + +#endif /* _BIONIC_LINUX_UNISTD_H_ */ diff --git a/ndk/platforms/android-9/include/sys/sysinfo.h b/ndk/platforms/android-9/include/sys/sysinfo.h new file mode 100644 index 000000000..c7e46e6bf --- /dev/null +++ b/ndk/platforms/android-9/include/sys/sysinfo.h @@ -0,0 +1,40 @@ +/* + * Copyright (C) 2008 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_SYSINFO_H_ +#define _SYS_SYSINFO_H_ + +#include +#include + +__BEGIN_DECLS + +extern int sysinfo (struct sysinfo *info); + +__END_DECLS + +#endif /* _SYS_SYSINFO_H_ */ diff --git a/ndk/platforms/android-9/include/sys/wait.h b/ndk/platforms/android-9/include/sys/wait.h new file mode 100644 index 000000000..b30b7ec9e --- /dev/null +++ b/ndk/platforms/android-9/include/sys/wait.h @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2008 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_WAIT_H_ +#define _SYS_WAIT_H_ + +#include +#include +#include +#include +#include + +__BEGIN_DECLS + +#define WEXITSTATUS(s) (((s) & 0xff00) >> 8) +#define WCOREDUMP(s) ((s) & 0x80) +#define WTERMSIG(s) ((s) & 0x7f) +#define WSTOPSIG(s) WEXITSTATUS(s) + +#define WIFEXITED(s) (WTERMSIG(s) == 0) +#define WIFSTOPPED(s) (WTERMSIG(s) == 0x7f) +#define WIFSIGNALED(s) (WTERMSIG((s)+1) >= 2) + +extern pid_t wait(int *); +extern pid_t waitpid(pid_t, int *, int); +extern pid_t wait3(int *, int, struct rusage *); +extern pid_t wait4(pid_t, int *, int, struct rusage *); + +/* Posix states that idtype_t should be an enumeration type, but + * the kernel headers define P_ALL, P_PID and P_PGID as constant macros + * instead. + */ +typedef int idtype_t; + +extern int waitid(idtype_t which, id_t id, siginfo_t *info, int options); + +__END_DECLS + +#endif /* _SYS_WAIT_H_ */ diff --git a/ndk/platforms/android-9/include/unistd.h b/ndk/platforms/android-9/include/unistd.h new file mode 100644 index 000000000..29154a213 --- /dev/null +++ b/ndk/platforms/android-9/include/unistd.h @@ -0,0 +1,211 @@ +/* + * Copyright (C) 2008 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 _UNISTD_H_ +#define _UNISTD_H_ + +#include +#include +#include +#include +#include +#include +#include + +__BEGIN_DECLS + +/* Standard file descriptor numbers. */ +#define STDIN_FILENO 0 +#define STDOUT_FILENO 1 +#define STDERR_FILENO 2 + +/* Values for whence in fseek and lseek */ +#define SEEK_SET 0 +#define SEEK_CUR 1 +#define SEEK_END 2 + +extern char **environ; +extern __noreturn void _exit(int); + +extern pid_t fork(void); +extern pid_t vfork(void); +extern pid_t getpid(void); +extern pid_t gettid(void); +extern pid_t getpgid(pid_t); +extern int setpgid(pid_t, pid_t); +extern pid_t getppid(void); +extern pid_t getpgrp(void); +extern int setpgrp(void); +extern pid_t setsid(void); + +extern int execv(const char *, char * const *); +extern int execvp(const char *, char * const *); +extern int execve(const char *, char * const *, char * const *); +extern int execl(const char *, const char *, ...); +extern int execlp(const char *, const char *, ...); +extern int execle(const char *, const char *, ...); +extern int capget(cap_user_header_t hdrp, cap_user_data_t datap); +extern int capset(cap_user_header_t hdrp, const cap_user_data_t datap); +extern int prctl(int option, unsigned long arg2, unsigned long arg3, + unsigned long arg4, unsigned long arg5); + +extern int nice(int); + +extern int setuid(uid_t); +extern uid_t getuid(void); +extern int seteuid(uid_t); +extern uid_t geteuid(void); +extern int setgid(gid_t); +extern gid_t getgid(void); +extern int setegid(gid_t); +extern gid_t getegid(void); +extern int getgroups(int, gid_t *); +extern int setgroups(size_t, const gid_t *); +extern int setreuid(uid_t, uid_t); +extern int setregid(gid_t, gid_t); +extern int setresuid(uid_t, uid_t, uid_t); +extern int setresgid(gid_t, gid_t, gid_t); +extern int getresuid(uid_t *ruid, uid_t *euid, uid_t *suid); +extern int getresgid(gid_t *rgid, gid_t *egid, gid_t *sgid); +extern int issetugid(void); +extern char* getlogin(void); +extern char* getusershell(void); +extern void setusershell(void); +extern void endusershell(void); + + + +/* Macros for access() */ +#define R_OK 4 /* Read */ +#define W_OK 2 /* Write */ +#define X_OK 1 /* Execute */ +#define F_OK 0 /* Existence */ + +extern int access(const char *, int); +extern int link(const char *, const char *); +extern int unlink(const char *); +extern int chdir(const char *); +extern int fchdir(int); +extern int rmdir(const char *); +extern int pipe(int *); +#ifdef _GNU_SOURCE /* GLibc compatibility */ +extern int pipe2(int *, int); +#endif +extern int chroot(const char *); +extern int symlink(const char *, const char *); +extern int readlink(const char *, char *, size_t); +extern int chown(const char *, uid_t, gid_t); +extern int fchown(int, uid_t, gid_t); +extern int lchown(const char *, uid_t, gid_t); +extern int truncate(const char *, off_t); +extern char *getcwd(char *, size_t); + +extern int sync(void); + +extern int close(int); +extern off_t lseek(int, off_t, int); +extern loff_t lseek64(int, loff_t, int); + +extern ssize_t read(int, void *, size_t); +extern ssize_t write(int, const void *, size_t); +extern ssize_t pread(int, void *, size_t, off_t); +extern ssize_t pwrite(int, void *, size_t, off_t); + +extern int dup(int); +extern int dup2(int, int); +extern int fcntl(int, int, ...); +extern int ioctl(int, int, ...); +extern int flock(int, int); +extern int fsync(int); +extern int fdatasync(int); +extern int ftruncate(int, off_t); + +extern int pause(void); +extern unsigned int alarm(unsigned int); +extern unsigned int sleep(unsigned int); +extern int usleep(unsigned long); + +extern int gethostname(char *, size_t); + +extern int getdtablesize(void); + +extern void *__brk(void *); +extern int brk(void *); +extern void *sbrk(ptrdiff_t); + +extern int getopt(int, char * const *, const char *); +extern char *optarg; +extern int optind, opterr, optopt; + +extern int isatty(int); +extern char* ttyname(int); +extern int ttyname_r(int, char*, size_t); + +extern int acct(const char* filepath); + +static __inline__ int getpagesize(void) { + extern unsigned int __page_size; + return __page_size; +} +static __inline__ int __getpageshift(void) { + extern unsigned int __page_shift; + return __page_shift; +} + +extern int sysconf(int name); + +extern int daemon(int, int); + +/* A special syscall that is only available on the ARM, not x86 function. */ +extern int cacheflush(long start, long end, long flags); + +extern pid_t tcgetpgrp(int fd); +extern int tcsetpgrp(int fd, pid_t _pid); + +#if 0 /* MISSING FROM BIONIC */ +extern pid_t getsid(pid_t); +extern int execvpe(const char *, char * const *, char * const *); +extern int execlpe(const char *, const char *, ...); +extern int getfsuid(uid_t); +extern int setfsuid(uid_t); +extern int getlogin_r(char* name, size_t namesize); +extern int sethostname(const char *, size_t); +extern int getdomainname(char *, size_t); +extern int setdomainname(const char *, size_t); +#endif /* MISSING */ + +/* Used to retry syscalls that can return EINTR. */ +#define TEMP_FAILURE_RETRY(exp) ({ \ + typeof (exp) _rc; \ + do { \ + _rc = (exp); \ + } while (_rc == -1 && errno == EINTR); \ + _rc; }) + +__END_DECLS + +#endif /* _UNISTD_H_ */ diff --git a/ndk/platforms/android-9/include/wchar.h b/ndk/platforms/android-9/include/wchar.h new file mode 100644 index 000000000..9b744a50c --- /dev/null +++ b/ndk/platforms/android-9/include/wchar.h @@ -0,0 +1,157 @@ +/* + * Copyright (C) 2008 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 _WCHAR_H_ +#define _WCHAR_H_ + +#include +#include + +/* wchar_t is required in stdlib.h according to POSIX */ +#define __need___wchar_t +#include + +#include +#include +#include + +#include + +/* IMPORTANT: Any code that relies on wide character support is essentially + * non-portable and/or broken. the only reason this header exist + * is because I'm really a nice guy. However, I'm not nice enough + * to provide you with a real implementation. instead wchar_t == char + * and all wc functions are stubs to their "normal" equivalent... + */ + +__BEGIN_DECLS + +typedef int wint_t; +typedef struct { int dummy; } mbstate_t; + +typedef enum { + WC_TYPE_INVALID = 0, + WC_TYPE_ALNUM, + WC_TYPE_ALPHA, + WC_TYPE_BLANK, + WC_TYPE_CNTRL, + WC_TYPE_DIGIT, + WC_TYPE_GRAPH, + WC_TYPE_LOWER, + WC_TYPE_PRINT, + WC_TYPE_PUNCT, + WC_TYPE_SPACE, + WC_TYPE_UPPER, + WC_TYPE_XDIGIT, + WC_TYPE_MAX +} wctype_t; + +#define WCHAR_MAX INT_MAX +#define WCHAR_MIN INT_MIN +#define WEOF ((wint_t)(-1)) + +extern wint_t btowc(int); +extern int fwprintf(FILE *, const wchar_t *, ...); +extern int fwscanf(FILE *, const wchar_t *, ...); +extern int iswalnum(wint_t); +extern int iswalpha(wint_t); +extern int iswcntrl(wint_t); +extern int iswdigit(wint_t); +extern int iswgraph(wint_t); +extern int iswlower(wint_t); +extern int iswprint(wint_t); +extern int iswpunct(wint_t); +extern int iswspace(wint_t); +extern int iswupper(wint_t); +extern int iswxdigit(wint_t); +extern int iswctype(wint_t, wctype_t); +extern wint_t fgetwc(FILE *); +extern wchar_t *fgetws(wchar_t *, int, FILE *); +extern wint_t fputwc(wchar_t, FILE *); +extern int fputws(const wchar_t *, FILE *); +extern int fwide(FILE *, int); +extern wint_t getwc(FILE *); +extern wint_t getwchar(void); +extern int mbsinit(const mbstate_t *); +extern size_t mbrlen(const char *, size_t, mbstate_t *); +extern size_t mbrtowc(wchar_t *, const char *, size_t, mbstate_t *); +extern size_t mbsrtowcs(wchar_t *, const char **, size_t, mbstate_t *); +extern size_t mbstowcs(wchar_t *, const char *, size_t); +extern wint_t putwc(wchar_t, FILE *); +extern wint_t putwchar(wchar_t); +extern int swprintf(wchar_t *, size_t, const wchar_t *, ...); +extern int swscanf(const wchar_t *, const wchar_t *, ...); +extern wint_t towlower(wint_t); +extern wint_t towupper(wint_t); +extern wint_t ungetwc(wint_t, FILE *); +extern int vfwprintf(FILE *, const wchar_t *, va_list); +extern int vwprintf(const wchar_t *, va_list); +extern int vswprintf(wchar_t *, size_t, const wchar_t *, va_list); +extern size_t wcrtomb(char *, wchar_t, mbstate_t *); +extern wchar_t *wcscat(wchar_t *, const wchar_t *); +extern wchar_t *wcschr(const wchar_t *, wchar_t); +extern int wcscmp(const wchar_t *, const wchar_t *); +extern int wcscoll(const wchar_t *, const wchar_t *); +extern wchar_t *wcscpy(wchar_t *, const wchar_t *); +extern size_t wcscspn(const wchar_t *, const wchar_t *); +extern size_t wcsftime(wchar_t *, size_t, const wchar_t *, const struct tm *); +extern size_t wcslen(const wchar_t *); +extern wchar_t *wcsncat(wchar_t *, const wchar_t *, size_t); +extern int wcsncmp(const wchar_t *, const wchar_t *, size_t); +extern wchar_t *wcsncpy(wchar_t *, const wchar_t *, size_t); +extern wchar_t *wcspbrk(const wchar_t *, const wchar_t *); +extern wchar_t *wcsrchr(const wchar_t *, wchar_t); +extern size_t wcsrtombs(char *, const wchar_t **, size_t, mbstate_t *); +extern size_t wcsspn(const wchar_t *, const wchar_t *); +extern wchar_t *wcsstr(const wchar_t *, const wchar_t *); +extern double wcstod(const wchar_t *, wchar_t **); +extern wchar_t *wcstok(wchar_t *, const wchar_t *, wchar_t **); +extern long int wcstol(const wchar_t *, wchar_t **, int); +extern size_t wcstombs(char *, const wchar_t *, size_t); +extern unsigned long int wcstoul(const wchar_t *, wchar_t **, int); +extern wchar_t *wcswcs(const wchar_t *, const wchar_t *); +extern int wcswidth(const wchar_t *, size_t); +extern size_t wcsxfrm(wchar_t *, const wchar_t *, size_t); +extern int wctob(wint_t); +extern wctype_t wctype(const char *); +extern int wcwidth(wchar_t); +extern wchar_t *wmemchr(const wchar_t *, wchar_t, size_t); +extern int wmemcmp(const wchar_t *, const wchar_t *, size_t); +extern wchar_t *wmemcpy(wchar_t *, const wchar_t *, size_t); +extern wchar_t *wmemmove(wchar_t *, const wchar_t *, size_t); +extern wchar_t *wmemset(wchar_t *, wchar_t, size_t); +extern int wprintf(const wchar_t *, ...); +extern int wscanf(const wchar_t *, ...); + +/* No really supported. These are just for making libstdc++-v3 happy. */ +typedef void *wctrans_t; +extern wint_t towctrans(wint_t, wctrans_t); +extern wctrans_t wctrans (const char *); + +__END_DECLS + +#endif /* _WCHAR_H_ */ diff --git a/ndk/sources/android/native_app_glue/android_native_app_glue.h b/ndk/sources/android/native_app_glue/android_native_app_glue.h index 321299cac..1b8c1f107 100644 --- a/ndk/sources/android/native_app_glue/android_native_app_glue.h +++ b/ndk/sources/android/native_app_glue/android_native_app_glue.h @@ -27,7 +27,7 @@ #include #ifdef __cplusplus -extern "C" +extern "C" { #endif /**