xref: /linux/arch/x86/um/sys_call_table_32.c (revision d48ca5b98fa5d21444e04bb17373d339200b679a)
1b2441318SGreg Kroah-Hartman // SPDX-License-Identifier: GPL-2.0
245db1c61SH. Peter Anvin /*
345db1c61SH. Peter Anvin  * System call table for UML/i386, copied from arch/x86/kernel/syscall_*.c
445db1c61SH. Peter Anvin  * with some changes for UML.
545db1c61SH. Peter Anvin  */
645db1c61SH. Peter Anvin 
745db1c61SH. Peter Anvin #include <linux/linkage.h>
845db1c61SH. Peter Anvin #include <linux/sys.h>
945db1c61SH. Peter Anvin #include <linux/cache.h>
10034042ccSAndy Lutomirski #include <asm/syscall.h>
1145db1c61SH. Peter Anvin 
1245db1c61SH. Peter Anvin #define __NO_STUBS
1345db1c61SH. Peter Anvin 
1445db1c61SH. Peter Anvin /*
1545db1c61SH. Peter Anvin  * Below you can see, in terms of #define's, the differences between the x86-64
1645db1c61SH. Peter Anvin  * and the UML syscall table.
1745db1c61SH. Peter Anvin  */
1845db1c61SH. Peter Anvin 
1945db1c61SH. Peter Anvin /* Not going to be implemented by UML, since we have no hardware. */
2047db9e7cSH. Peter Anvin #define sys_iopl sys_ni_syscall
2145db1c61SH. Peter Anvin #define sys_ioperm sys_ni_syscall
2245db1c61SH. Peter Anvin 
2345db1c61SH. Peter Anvin #define sys_vm86old sys_ni_syscall
2445db1c61SH. Peter Anvin #define sys_vm86 sys_ni_syscall
2545db1c61SH. Peter Anvin 
2645db1c61SH. Peter Anvin #define old_mmap sys_old_mmap
2745db1c61SH. Peter Anvin 
286218d0f6SMasahiro Yamada #define __SYSCALL_WITH_COMPAT(nr, native, compat)	__SYSCALL(nr, native)
296218d0f6SMasahiro Yamada 
306218d0f6SMasahiro Yamada #define __SYSCALL(nr, sym) extern asmlinkage long sym(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long);
3145db1c61SH. Peter Anvin #include <asm/syscalls_32.h>
3245db1c61SH. Peter Anvin 
336218d0f6SMasahiro Yamada #undef __SYSCALL
34*d48ca5b9SBrian Gerst #define __SYSCALL(nr, sym) sym,
3545db1c61SH. Peter Anvin 
36eb974c62SAndy Lutomirski extern asmlinkage long sys_ni_syscall(unsigned long, unsigned long, unsigned long, unsigned long, unsigned long, unsigned long);
3745db1c61SH. Peter Anvin 
38b485342bSDaniel Borkmann const sys_call_ptr_t sys_call_table[] ____cacheline_aligned = {
3945db1c61SH. Peter Anvin #include <asm/syscalls_32.h>
4045db1c61SH. Peter Anvin };
4145db1c61SH. Peter Anvin 
4245db1c61SH. Peter Anvin int syscall_table_size = sizeof(sys_call_table);
43