x86: Introducing asm/syscalls.h
Declaring arch-dependent syscalls for x86 architecture Signed-off-by: Jaswinder Singh <jaswinder@infradead.org>
This commit is contained in:
Родитель
93ded9b8fd
Коммит
bbc1f698a5
|
@ -14,6 +14,7 @@
|
|||
#include <linux/slab.h>
|
||||
#include <linux/thread_info.h>
|
||||
#include <linux/syscalls.h>
|
||||
#include <asm/syscalls.h>
|
||||
|
||||
/* Set EXTENT bits starting at BASE in BITMAP to value TURN_ON. */
|
||||
static void set_bitmap(unsigned long *bitmap, unsigned int base,
|
||||
|
|
|
@ -18,6 +18,7 @@
|
|||
#include <asm/ldt.h>
|
||||
#include <asm/desc.h>
|
||||
#include <asm/mmu_context.h>
|
||||
#include <asm/syscalls.h>
|
||||
|
||||
#ifdef CONFIG_SMP
|
||||
static void flush_ldt(void *current_mm)
|
||||
|
|
|
@ -55,6 +55,7 @@
|
|||
#include <asm/tlbflush.h>
|
||||
#include <asm/cpu.h>
|
||||
#include <asm/kdebug.h>
|
||||
#include <asm/syscalls.h>
|
||||
|
||||
asmlinkage void ret_from_fork(void) __asm__("ret_from_fork");
|
||||
|
||||
|
|
|
@ -51,6 +51,7 @@
|
|||
#include <asm/proto.h>
|
||||
#include <asm/ia32.h>
|
||||
#include <asm/idle.h>
|
||||
#include <asm/syscalls.h>
|
||||
|
||||
asmlinkage extern void ret_from_fork(void);
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <asm/uaccess.h>
|
||||
#include <asm/i387.h>
|
||||
#include <asm/vdso.h>
|
||||
#include <asm/syscalls.h>
|
||||
|
||||
#include "sigframe.h"
|
||||
|
||||
|
|
|
@ -26,6 +26,7 @@
|
|||
#include <asm/proto.h>
|
||||
#include <asm/ia32_unistd.h>
|
||||
#include <asm/mce.h>
|
||||
#include <asm/syscalls.h>
|
||||
#include "sigframe.h"
|
||||
|
||||
#define _BLOCKABLE (~(sigmask(SIGKILL) | sigmask(SIGSTOP)))
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
#include <linux/uaccess.h>
|
||||
#include <linux/unistd.h>
|
||||
|
||||
#include <asm/syscalls.h>
|
||||
|
||||
asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
|
||||
unsigned long prot, unsigned long flags,
|
||||
unsigned long fd, unsigned long pgoff)
|
||||
|
|
|
@ -16,6 +16,7 @@
|
|||
|
||||
#include <asm/uaccess.h>
|
||||
#include <asm/ia32.h>
|
||||
#include <asm/syscalls.h>
|
||||
|
||||
asmlinkage long sys_mmap(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags,
|
||||
unsigned long fd, unsigned long off)
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
#include <asm/ldt.h>
|
||||
#include <asm/processor.h>
|
||||
#include <asm/proto.h>
|
||||
#include <asm/syscalls.h>
|
||||
|
||||
#include "tls.h"
|
||||
|
||||
|
|
|
@ -46,6 +46,7 @@
|
|||
#include <asm/io.h>
|
||||
#include <asm/tlbflush.h>
|
||||
#include <asm/irq.h>
|
||||
#include <asm/syscalls.h>
|
||||
|
||||
/*
|
||||
* Known problems:
|
||||
|
|
|
@ -0,0 +1,90 @@
|
|||
/*
|
||||
* syscalls.h - Linux syscall interfaces (arch-specific)
|
||||
*
|
||||
* Copyright (c) 2008 Jaswinder Singh
|
||||
*
|
||||
* This file is released under the GPLv2.
|
||||
* See the file COPYING for more details.
|
||||
*
|
||||
* Please do not call me directly, include linux/syscalls.h
|
||||
*/
|
||||
|
||||
#ifndef _ASM_X86_SYSCALLS_H
|
||||
#define _ASM_X86_SYSCALLS_H
|
||||
|
||||
#include <linux/compiler.h>
|
||||
#include <linux/linkage.h>
|
||||
#include <linux/types.h>
|
||||
#include <linux/signal.h>
|
||||
|
||||
/* Common in X86_32 and X86_64 */
|
||||
/* kernel/ioport.c */
|
||||
asmlinkage long sys_ioperm(unsigned long, unsigned long, int);
|
||||
|
||||
/* X86_32 only */
|
||||
#ifdef CONFIG_X86_32
|
||||
/* kernel/process_32.c */
|
||||
asmlinkage int sys_fork(struct pt_regs);
|
||||
asmlinkage int sys_clone(struct pt_regs);
|
||||
asmlinkage int sys_vfork(struct pt_regs);
|
||||
asmlinkage int sys_execve(struct pt_regs);
|
||||
|
||||
/* kernel/signal_32.c */
|
||||
asmlinkage int sys_sigsuspend(int, int, old_sigset_t);
|
||||
asmlinkage int sys_sigaction(int, const struct old_sigaction __user *,
|
||||
struct old_sigaction __user *);
|
||||
asmlinkage int sys_sigaltstack(unsigned long);
|
||||
asmlinkage unsigned long sys_sigreturn(unsigned long);
|
||||
asmlinkage int sys_rt_sigreturn(unsigned long);
|
||||
|
||||
/* kernel/ioport.c */
|
||||
asmlinkage long sys_iopl(unsigned long);
|
||||
|
||||
/* kernel/ldt.c */
|
||||
asmlinkage int sys_modify_ldt(int, void __user *, unsigned long);
|
||||
|
||||
/* kernel/sys_i386_32.c */
|
||||
asmlinkage long sys_mmap2(unsigned long, unsigned long, unsigned long,
|
||||
unsigned long, unsigned long, unsigned long);
|
||||
struct mmap_arg_struct;
|
||||
asmlinkage int old_mmap(struct mmap_arg_struct __user *);
|
||||
struct sel_arg_struct;
|
||||
asmlinkage int old_select(struct sel_arg_struct __user *);
|
||||
asmlinkage int sys_ipc(uint, int, int, int, void __user *, long);
|
||||
struct old_utsname;
|
||||
asmlinkage int sys_uname(struct old_utsname __user *);
|
||||
struct oldold_utsname;
|
||||
asmlinkage int sys_olduname(struct oldold_utsname __user *);
|
||||
|
||||
/* kernel/tls.c */
|
||||
asmlinkage int sys_set_thread_area(struct user_desc __user *);
|
||||
asmlinkage int sys_get_thread_area(struct user_desc __user *);
|
||||
|
||||
#else /* CONFIG_X86_32 */
|
||||
|
||||
/* X86_64 only */
|
||||
/* kernel/process_64.c */
|
||||
asmlinkage long sys_fork(struct pt_regs *);
|
||||
asmlinkage long sys_clone(unsigned long, unsigned long,
|
||||
void __user *, void __user *,
|
||||
struct pt_regs *);
|
||||
asmlinkage long sys_vfork(struct pt_regs *);
|
||||
asmlinkage long sys_execve(char __user *, char __user * __user *,
|
||||
char __user * __user *,
|
||||
struct pt_regs *);
|
||||
|
||||
/* kernel/ioport.c */
|
||||
asmlinkage long sys_iopl(unsigned int, struct pt_regs *);
|
||||
|
||||
/* kernel/signal_64.c */
|
||||
asmlinkage long sys_sigaltstack(const stack_t __user *, stack_t __user *,
|
||||
struct pt_regs *);
|
||||
asmlinkage long sys_rt_sigreturn(struct pt_regs *);
|
||||
|
||||
/* kernel/sys_x86_64.c */
|
||||
asmlinkage long sys_mmap(unsigned long, unsigned long, unsigned long,
|
||||
unsigned long, unsigned long, unsigned long);
|
||||
asmlinkage long sys_uname(struct new_utsname __user *);
|
||||
|
||||
#endif /* CONFIG_X86_32 */
|
||||
#endif /* _ASM_X86_SYSCALLS_H */
|
Загрузка…
Ссылка в новой задаче