11965aae3SH. Peter Anvin #ifndef _ASM_X86_PROTO_H 21965aae3SH. Peter Anvin #define _ASM_X86_PROTO_H 3bb898558SAl Viro 4bb898558SAl Viro #include <asm/ldt.h> 5bb898558SAl Viro 6bb898558SAl Viro /* misc architecture specific prototypes */ 7bb898558SAl Viro 8*5bd085b5SH. Peter Anvin void early_idt_handler(void); 9bb898558SAl Viro 10*5bd085b5SH. Peter Anvin void system_call(void); 11*5bd085b5SH. Peter Anvin void syscall_init(void); 12bb898558SAl Viro 13*5bd085b5SH. Peter Anvin void ia32_syscall(void); 14*5bd085b5SH. Peter Anvin void ia32_cstar_target(void); 15*5bd085b5SH. Peter Anvin void ia32_sysenter_target(void); 16bb898558SAl Viro 17*5bd085b5SH. Peter Anvin void syscall32_cpu_init(void); 18bb898558SAl Viro 19*5bd085b5SH. Peter Anvin void x86_configure_nx(void); 20*5bd085b5SH. Peter Anvin void x86_report_nx(void); 21bb898558SAl Viro 22bb898558SAl Viro extern int reboot_force; 23bb898558SAl Viro 24bb898558SAl Viro long do_arch_prctl(struct task_struct *task, int code, unsigned long addr); 25bb898558SAl Viro 2643644679SLinus Torvalds /* 2743644679SLinus Torvalds * This looks more complex than it should be. But we need to 2843644679SLinus Torvalds * get the type for the ~ right in round_down (it needs to be 2943644679SLinus Torvalds * as wide as the result!), and we want to evaluate the macro 3043644679SLinus Torvalds * arguments just once each. 3143644679SLinus Torvalds */ 3243644679SLinus Torvalds #define __round_mask(x,y) ((__typeof__(x))((y)-1)) 3343644679SLinus Torvalds #define round_up(x,y) ((((x)-1) | __round_mask(x,y))+1) 3443644679SLinus Torvalds #define round_down(x,y) ((x) & ~__round_mask(x,y)) 35bb898558SAl Viro 361965aae3SH. Peter Anvin #endif /* _ASM_X86_PROTO_H */ 37