This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision Next revision | Previous revision | ||
|
modifying_the_linux_kernel [2020/09/07 15:39] misterjei [Adding a System Call] |
modifying_the_linux_kernel [2021/09/17 11:36] (current) misterjei [Adding a System Call] |
||
|---|---|---|---|
| Line 11: | Line 11: | ||
| Every system call must have an associated system call number which corresponds to its position in the system call table. This table is transformed / imported into the source as part of the build process. The correct table varies by architecture, | Every system call must have an associated system call number which corresponds to its position in the system call table. This table is transformed / imported into the source as part of the build process. The correct table varies by architecture, | ||
| - | ''/ | + | '' |
| For example, in the x64 version of Linux, **//< | For example, in the x64 version of Linux, **//< | ||
| Line 27: | Line 27: | ||
| === 2. Prototype of the System Call === | === 2. Prototype of the System Call === | ||
| - | The kernel has no " | + | The kernel has no " |
| < | < | ||
| Line 34: | Line 34: | ||
| Finally, we need to add the system call definition. Thise will need to be compiled into the kernel as well. The kernel has lots of examples along these lines, which is for a system call with one parameter ('' | Finally, we need to add the system call definition. Thise will need to be compiled into the kernel as well. The kernel has lots of examples along these lines, which is for a system call with one parameter ('' | ||
| - | < | + | < |
| { | { | ||
| return sample_param + 1; // Adds 1 to the parameter and returns it | return sample_param + 1; // Adds 1 to the parameter and returns it | ||