#ifndef _ASM_IA64_IA32_H
#define _ASM_IA64_IA32_H

#include <linux/config.h>

#include <asm/ptrace.h>
#include <asm/signal.h>

#define IA32_NR_syscalls		285	/* length of syscall table */
#define IA32_PAGE_SHIFT			12	/* 4KB pages */

#ifndef __ASSEMBLY__

# ifdef CONFIG_IA32_SUPPORT

extern void ia32_cpu_init (void);
extern void ia32_mem_init (void);
extern void ia32_gdt_init (void);
extern int ia32_exception (struct pt_regs *regs, unsigned long isr);
extern int ia32_intercept (struct pt_regs *regs, unsigned long isr);
extern int ia32_clone_tls (struct task_struct *child, struct pt_regs *childregs);

# endif /* !CONFIG_IA32_SUPPORT */

/* Declare this unconditionally, so we don't get warnings for unreachable code.  */
extern int ia32_setup_frame1 (int sig, struct k_sigaction *ka, siginfo_t *info,
			      sigset_t *set, struct pt_regs *regs);
#if PAGE_SHIFT > IA32_PAGE_SHIFT
extern int ia32_copy_partial_page_list (struct task_struct *, unsigned long);
extern void ia32_drop_partial_page_list (struct task_struct *);
#else
# define ia32_copy_partial_page_list(a1, a2)	0
# define ia32_drop_partial_page_list(a1)	do { ; } while (0)
#endif

#endif /* !__ASSEMBLY__ */

#endif /* _ASM_IA64_IA32_H */
