diff options
Diffstat (limited to 'libc/README')
-rw-r--r-- | libc/README | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/libc/README b/libc/README new file mode 100644 index 0000000..4e29f12 --- /dev/null +++ b/libc/README @@ -0,0 +1,53 @@ +Welcome to Bionic, Android small and custom C library for the Android platform + +Bionic is mainly a port of the BSD C library to our Linux kernel with the +following additions/changes: + +- no support for locales +- no support for wide chars (i.e. multi-byte characters) +- its own smallish implementation of pthreads based on Linux futexes +- support for x86, ARM and ARM thumb CPU instruction sets and kernel interfaces + +Bionic is released under the standard 3-clause BSD License + +Bionic doesn't want to implement all features of a traditional C library, we only +add features to it as we need them, and we try to keep things as simple and small +as possible. Our goal is not to support scaling to thousands of concurrent threads +on multi-processors machines; we're running this on cell-phones, damnit !! + +Note that Bionic doesn't provide a libthread_db or a libm implementation. + + +Adding new syscalls: +==================== + +Bionic provides the gensyscalls.py Python script to automatically generate syscall +stubs from the list defined in the file SYSCALLS.TXT. You can thus add a new syscall +by doing the following: + +- edit SYSCALLS.TXT +- add a new line describing your syscall, it should look like: + + return_type syscall_name(parameters) syscall_number + +- in the event where you want to differentiate the syscall function from its entry name, + use the alternate: + + return_type funcname:syscall_name(parameters) syscall_number + +- additionally, if the syscall number is different between ARM and x86, use: + + return_type funcname[:syscall_name](parameters) arm_number,x86_number + +- a syscall number can be -1 to indicate that the syscall is not implemented on + a given platform, for example: + + void __set_tls(void*) arm_number,-1 + + +the comments in SYSCALLS.TXT contain more information about the line format + +You can also use the 'checksyscalls.py' script to check that all the syscall +numbers you entered are correct. It does so by looking at the values defined in +your Linux kernel headers. The script indicates where the values are incorrect +and what is expected instead. |