xref: /openbmc/linux/arch/x86/include/asm/proto.h (revision 5bd085b5fbd8b0b8685a2173cb9263798fc2a44e)
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