Move kernel README files to Markdown.

Test: N/A
Change-Id: If987d8a24baf87adba20914896d29c94fc01cbfd
This commit is contained in:
Elliott Hughes 2019-04-11 13:38:25 -07:00
parent d1ff49c24a
commit adcb515bfc
2 changed files with 23 additions and 20 deletions

View File

@ -1,11 +1,10 @@
Bionic Kernel Header Files # Bionic Kernel Header Files
==========================
Bionic comes with a processed set of all of the uapi Linux kernel headers that Bionic comes with a processed set of all of the uapi Linux kernel headers that
can safely be included by userland applications and libraries. can safely be included by userland applications and libraries.
These clean headers are automatically generated by several scripts located These clean headers are automatically generated by several scripts located
in the 'bionic/kernel/tools' directory. The tools process the original in the `tools/` directory. The tools process the original
unmodified kernel headers in order to get rid of many annoying unmodified kernel headers in order to get rid of many annoying
declarations and constructs that usually result in compilation failure. declarations and constructs that usually result in compilation failure.
@ -18,36 +17,35 @@ They can be also included before or after any Bionic C library header.
Description of the directories involved in generating the parsed kernel headers: Description of the directories involved in generating the parsed kernel headers:
* 'external/kernel-headers/original/' * `external/kernel-headers/original/`
Contains the uapi kernel headers found in the android kernel. Note this Contains the uapi kernel headers found in the android kernel. Note this
also includes the header files that are generated by building the kernel also includes the header files that are generated by building the kernel
sources. sources.
* 'bionic/libc/kernel/uapi' * `bionic/libc/kernel/uapi/`
Contains the cleaned kernel headers and mirrors the directory structure Contains the cleaned kernel headers and mirrors the directory structure
in 'external/kernel-headers/original/uapi/'. in `external/kernel-headers/original/uapi/`.
* 'bionic/libc/kernel/tools' * `bionic/libc/kernel/tools/`
Contains various Python and shell scripts used to get and re-generate Contains various Python and shell scripts used to get and re-generate
the headers. the headers.
The tools to get/parse the headers: The tools to get/parse the headers:
* tools/generate_uapi_headers.sh * `tools/generate_uapi_headers.sh`
Checks out the android kernel and generates all uapi header files. Checks out the android kernel and generates all uapi header files.
copies all the changed files into external/kernel-headers. copies all the changed files into external/kernel-headers.
* tools/clean_header.py * `tools/clean_header.py`
Prints the clean version of a given kernel header. With the -u option, Prints the clean version of a given kernel header. With the -u option,
this will also update the corresponding clean header file if its this will also update the corresponding clean header file if its
content has changed. You can also process more than one file with -u. content has changed. You can also process more than one file with -u.
* tools/update_all.py * `tools/update_all.py`
Automatically update all clean headers from the content of Automatically update all clean headers from the content of
'external/kernel-headers/original'. `external/kernel-headers/original/`.
How To Update The Headers ## How To Update The Headers
=========================
IMPORTANT IMPORTANT: IMPORTANT IMPORTANT:
@ -56,15 +54,17 @@ NOT BREAK THE KERNEL <-> USER ABI, FOR EXAMPLE BY CHANGING THE SIZE
OF A GIVEN TYPE. THIS TASK CANNOT BE EASILY AUTOMATED AT THE MOMENT. OF A GIVEN TYPE. THIS TASK CANNOT BE EASILY AUTOMATED AT THE MOMENT.
Download the Linux kernel source code: Download the Linux kernel source code:
```
> mkdir kernel_src > mkdir kernel_src
> cd kernel_src > cd kernel_src
kernel_src> git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git kernel_src> git clone git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-stable.git
```
Then checkout the stable tag for the new kernel headers to import: Then checkout the stable tag for the new kernel headers to import:
```
kernel_src> cd linux-stable kernel_src> cd linux-stable
kernel_src/linux-stable> git checkout tags/vXXX kernel_src/linux-stable> git checkout tags/vXXX
```
Before running the command to import the headers, make sure that you have Before running the command to import the headers, make sure that you have
done a lunch TARGET. The script uses a variable set by the lunch command done a lunch TARGET. The script uses a variable set by the lunch command
@ -72,16 +72,19 @@ to determine which directory to use as the destination directory.
After running lunch, run this command to import the headers into the android After running lunch, run this command to import the headers into the android
source tree: source tree:
```
bionic/libc/kernel/tools/generate_uapi_headers.sh --use-kernel-dir kernel_src bionic/libc/kernel/tools/generate_uapi_headers.sh --use-kernel-dir kernel_src
```
Next, run this command to copy the parsed files to bionic/libc/kernel/uapi: Next, run this command to copy the parsed files to bionic/libc/kernel/uapi:
```
bionic/libc/kernel/tools/update_all.py bionic/libc/kernel/tools/update_all.py
```
Finally, run this command to regenerate the syscalls list: Finally, run this command to regenerate the syscalls list:
```
bionic/libc/tools/gensyscalls.py bionic/libc/tools/gensyscalls.py
```
After this, you will need to build/test the tree to make sure that these After this, you will need to build/test the tree to make sure that these
changes do not introduce any errors. changes do not introduce any errors.

View File

@ -2,7 +2,7 @@ The files under the uapi directory are android kernel uapi header files that
exist in android kernels, but have not been upstreamed into the regular exist in android kernels, but have not been upstreamed into the regular
kernel. kernel.
None of these files will get updated automatically, and are frozen at their None of these files are updated automatically, and are frozen at their
current value. current value.
The files under the scsi directory are frozen copies of kernel scsi headers. The files under the scsi directory are frozen copies of kernel scsi headers.
@ -12,6 +12,6 @@ maintainers manually copy-and-pasted these definitions into their own
scsi headers and haven't substantially updated them in 15 years. The scsi headers and haven't substantially updated them in 15 years. The
musl libc project has a similar set of definitions in its scsi headers. musl libc project has a similar set of definitions in its scsi headers.
These files are actually maintained in external/kernel-headers/modified/scsi. These files are actually maintained in `external/kernel-headers/modified/scsi/`.
Any modification should first be made there then copied into the scsi Any modification should first be made there then copied into the scsi
directory. directory.