Create Documentation On Generating Syscalls

This commit is contained in:
CuriousTommy 2021-12-26 16:44:48 -08:00 committed by GitHub
parent d7b7d1d460
commit 3f618d23af
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -0,0 +1,18 @@
# Generating Syscalls
While not common, there are situations where you might need to regenerate syscalls. Fortunately, Apple provides a convenient perl script called `create-syscalls.pl`. The script is located in `[XNU]/libsyscall/xcodescripts/`.
## Understanding `create-syscalls.pl`'s Arugments
When you try to run the command, without any additional arguments, you will get the following prompt:
```
Usage: create-syscalls.pl syscalls.master custom-directory platforms-directory platform-name out-directory
```
Unfortunately, the prompt does not give a lot of helpful information. Below is a breakdown of what the script is requesting.
* `syscalls.master` - Point to the syscalls.master file. ex: `[XNU]/bsd/kern/syscalls.master`
* `custom-directory` - Point to a directory that contains a `SYS.h`, `custom.s`, and a list of `__` files. These files can be found in a folder called custom. ex:`[XNU]/libsyscall/custom/`
* `platforms-directory`- Point to a directory that contains the `syscall.map` files. Ex:`[XNU]/libsyscall/Platforms/`
* `platform-name` - One of the platform names that are in the platform directory. ex: `MacOSX`