Messages in this thread | ![/](/images/icornerl.gif) | | From | Muni Sekhar <> | Date | Sun, 12 Dec 2021 12:34:54 +0530 | Subject | X86 : system call |
| |
Hi all,
32-bit system call numbers and entry vectors are defined in the format "<number> <abi> <name> <entry point> <compat entry point>". What is the difference between <entry point> and <compat entry point>?
The abi is always "i386" for arch/x86/entry/syscalls/syscall_32.tbl, whereas for 64-bit(arch/x86/entry/syscalls/syscall_64.tbl) it is used as "common" and "64", "x32". What is the difference between "common" and "64", "x32"?
While adding a new system call(for example: mlock) to kernel, /kernel/sys_ni.c file modified as mentioned below: +cond_syscall(sys_mlock2);
Why do we pass <entry point> to cond_syscall()?
Also, could someone please point me to a document which explains about "how to add a new system call" and the "system call flow from user space to kernel space" in X86 ARCHITECTURE (32-BIT AND 64-BIT).
-- Thanks, Sekhar
| ![\](/images/icornerr.gif) |