blob: 621f56d731212748902e2ba2f3436d84985395e2 [file] [log] [blame]
H. Peter Anvin1965aae2008-10-22 22:26:29 -07001#ifndef _ASM_X86_PROTO_H
2#define _ASM_X86_PROTO_H
Linus Torvalds1da177e2005-04-16 15:20:36 -07003
4#include <asm/ldt.h>
5
6/* misc architecture specific prototypes */
7
Linus Torvalds1da177e2005-04-16 15:20:36 -07008extern void early_idt_handler(void);
9
Thomas Gleixner84c873e2008-01-30 13:30:19 +010010extern void system_call(void);
Linus Torvalds1da177e2005-04-16 15:20:36 -070011extern void syscall_init(void);
12
13extern void ia32_syscall(void);
Thomas Gleixner84c873e2008-01-30 13:30:19 +010014extern void ia32_cstar_target(void);
15extern void ia32_sysenter_target(void);
Linus Torvalds1da177e2005-04-16 15:20:36 -070016
Linus Torvalds1da177e2005-04-16 15:20:36 -070017extern void syscall32_cpu_init(void);
18
Linus Torvalds1da177e2005-04-16 15:20:36 -070019extern void check_efer(void);
20
Linus Torvalds1da177e2005-04-16 15:20:36 -070021extern int reboot_force;
Linus Torvalds1da177e2005-04-16 15:20:36 -070022
Linus Torvalds1da177e2005-04-16 15:20:36 -070023long do_arch_prctl(struct task_struct *task, int code, unsigned long addr);
24
Linus Torvalds43644672009-07-02 12:05:10 -070025/*
26 * This looks more complex than it should be. But we need to
27 * get the type for the ~ right in round_down (it needs to be
28 * as wide as the result!), and we want to evaluate the macro
29 * arguments just once each.
30 */
31#define __round_mask(x,y) ((__typeof__(x))((y)-1))
32#define round_up(x,y) ((((x)-1) | __round_mask(x,y))+1)
33#define round_down(x,y) ((x) & ~__round_mask(x,y))
Linus Torvalds1da177e2005-04-16 15:20:36 -070034
H. Peter Anvin1965aae2008-10-22 22:26:29 -070035#endif /* _ASM_X86_PROTO_H */