Linux ARM : Add syscalls definition from arch/arm/kernel/calls.S (linux sources)
Details
Diff Detail
- Repository
- rS FreeBSD src repository - subversion
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
sys/arm/linux/syscalls.master | ||
---|---|---|
677 ↗ | (On Diff #20532) | This is the only unimplemented one that I'm at all worried about.... Have you encountered any programs that use it? |
sys/arm/linux/syscalls.master | ||
---|---|---|
49–50 ↗ | (On Diff #20532) | This doesn't exist in Linux 2.6.32. |
66–67 ↗ | (On Diff #20532) | Also missing in 2.6.32 |
80–81 ↗ | (On Diff #20532) | Also missing in 2.6.32 |
102–103 ↗ | (On Diff #20532) | Also missing in 2.6.32 |
116 ↗ | (On Diff #20532) | Also missing in 2.6.32 |
128–129 ↗ | (On Diff #20532) | Also missing in 2.6.32 |
159 ↗ | (On Diff #20532) | Also missing in 2.6.32 |
202 ↗ | (On Diff #20532) | Also missing in 2.6.32 |
230 ↗ | (On Diff #20532) | Also missing in 2.6.32 |
233 ↗ | (On Diff #20532) | Also missing in 2.6.32 |
295–296 ↗ | (On Diff #20532) | Also missing in 2.6.32 |
677 ↗ | (On Diff #20532) | This range is also invalid, the syscalls start at 0x0f0000 and not 400 |
sys/arm/linux/syscalls.master | ||
---|---|---|
49–50 ↗ | (On Diff #20532) | It all has been extracted and checked from Linux 4.7. |
677 ↗ | (On Diff #20532) | Not for now. Maybe some glibc flush functions could use it, but I'm not sure. |
677 ↗ | (On Diff #20532) | This is handled in linux_fetch_syscall_args() to avoid breaking syscall numbering. |
sys/arm/linux/syscalls.master | ||
---|---|---|
49–50 ↗ | (On Diff #20532) | They are marked as "sys_ni_syscall", but I decied to use the old value if it exists (for old kernel ABI) |
There are also a few syscalls that were removed when they changed to EABI. I don't see a need for us to support the syscalls userspace will never call.
sys/arm/linux/syscalls.master | ||
---|---|---|
206 ↗ | (On Diff #20851) | This is wrong, on arm this is the syscall syscall (although it's removed from EABI). |
49–50 ↗ | (On Diff #20532) | Linux hasn't supported them in a non-development kernel since 2.6. This was released in late 2003. |
Syscalls 13 (time), 22 (umount), 25 (stime), 27 (alarm), 30 (utime), 76 (getrlimir), 82 (select), 89 (readdir), 90 (mmap), 102 (socketcall), 113 (syscall), and 117 (ipc) dont seem to be exported to userspace. I would expect the only things that try calling these with the EABI are malicious.
sys/arm/linux/syscalls.master | ||
---|---|---|
289 ↗ | (On Diff #21013) | vm86 should be removed. |
293 ↗ | (On Diff #21013) | Why was? It seems to be implemented in Linux. |
sys/arm/linux/syscalls.master | ||
---|---|---|
289 ↗ | (On Diff #21013) | I forgot it ! |
293 ↗ | (On Diff #21013) | I use this file https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/kernel/calls.S as base, and it's currently not implemented |
sys/arm/linux/syscalls.master | ||
---|---|---|
293 ↗ | (On Diff #21013) | What about OBSOLETE syscalls ? Keep them or remove them ? |
sys/arm/linux/syscalls.master | ||
---|---|---|
293 ↗ | (On Diff #21013) | I've been looking through https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/include/uapi/asm/unistd.h to find the syscalls. The OBSOLETE syscalls are marked as not implemented by https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/arch/arm/kernel/entry-common.S#n294 |
sys/arm/linux/syscalls.master | ||
---|---|---|
293 ↗ | (On Diff #21013) | OK. I think the same thing, but I wanted to be sure before commit another patch. |
Since this is a new file, you might want to consider formatting it in the new, more readable style used in sys/kern/syscalls.master.
Reformat arm linux syscalls.master per current style
Equivalent to rS339958 for sys/kern/syscalls.master.
Sponsored by: The FreeBSD Foundation