diff options
Diffstat (limited to 'include')
| -rw-r--r-- | include/asm-x86_64/hw_irq.h | 32 | ||||
| -rw-r--r-- | include/asm-x86_64/ia32.h | 5 | ||||
| -rw-r--r-- | include/asm-x86_64/ide.h | 2 | ||||
| -rw-r--r-- | include/asm-x86_64/io_apic.h | 9 | ||||
| -rw-r--r-- | include/asm-x86_64/ioctl32.h | 1 | ||||
| -rw-r--r-- | include/asm-x86_64/ipc.h | 4 | ||||
| -rw-r--r-- | include/asm-x86_64/ipcbuf.h | 8 | ||||
| -rw-r--r-- | include/asm-x86_64/namei.h | 6 | ||||
| -rw-r--r-- | include/asm-x86_64/nmi.h | 49 | ||||
| -rw-r--r-- | include/asm-x86_64/param.h | 2 | ||||
| -rw-r--r-- | include/asm-x86_64/proto.h | 1 | ||||
| -rw-r--r-- | include/asm-x86_64/softirq.h | 2 | ||||
| -rw-r--r-- | include/asm-x86_64/unistd.h | 5 | ||||
| -rw-r--r-- | include/linux/ioctl32.h | 23 |
14 files changed, 118 insertions, 31 deletions
diff --git a/include/asm-x86_64/hw_irq.h b/include/asm-x86_64/hw_irq.h index 811c69f8743d..9d7d039d5222 100644 --- a/include/asm-x86_64/hw_irq.h +++ b/include/asm-x86_64/hw_irq.h @@ -20,6 +20,10 @@ #include <linux/config.h> #include <asm/atomic.h> #include <asm/irq.h> +#include <linux/profile.h> +#include <linux/smp.h> + +struct hw_interrupt_type; #endif /* @@ -126,20 +130,23 @@ __asm__( \ "push $" #nr "-256 ; " \ "jmp common_interrupt"); -extern unsigned long prof_cpu_mask; -extern unsigned int * prof_buffer; -extern unsigned long prof_len; -extern unsigned long prof_shift; - -/* - * x86 profiling function, SMP safe. We might want to do this in - * assembly totally? - */ -static inline void x86_do_profile (unsigned long rip) +static inline void x86_do_profile (struct pt_regs *regs) { + unsigned long rip; + extern unsigned long prof_cpu_mask; + extern char _stext; +#ifdef CONFIG_PROFILING + extern void x86_profile_hook(struct pt_regs *); + + x86_profile_hook(regs); +#endif + if (user_mode(regs)) + return; if (!prof_buffer) return; + rip = regs->rip; + /* * Only measure the CPUs specified by /proc/irq/prof_cpu_mask. * (default is all CPUs.) @@ -159,6 +166,11 @@ static inline void x86_do_profile (unsigned long rip) atomic_inc((atomic_t *)&prof_buffer[rip]); } +struct notifier_block; + +int register_profile_notifier(struct notifier_block * nb); +int unregister_profile_notifier(struct notifier_block * nb); + #ifdef CONFIG_SMP /*more of this file should probably be ifdefed SMP */ static inline void hw_resend_irq(struct hw_interrupt_type *h, unsigned int i) { if (IO_APIC_IRQ(i)) diff --git a/include/asm-x86_64/ia32.h b/include/asm-x86_64/ia32.h index 7830bf40cfd4..23be4a85e415 100644 --- a/include/asm-x86_64/ia32.h +++ b/include/asm-x86_64/ia32.h @@ -235,11 +235,6 @@ struct iovec32 { }; -#ifdef __KERNEL__ -struct iovec *get_iovec32(struct iovec32 *iov32, struct iovec *iov_buf, u32 count, int type); -#endif - - #endif /* !CONFIG_IA32_SUPPORT */ #endif diff --git a/include/asm-x86_64/ide.h b/include/asm-x86_64/ide.h index 8e0ad03131b3..ac0d00e0d535 100644 --- a/include/asm-x86_64/ide.h +++ b/include/asm-x86_64/ide.h @@ -5,7 +5,7 @@ */ /* - * This file contains the i386 architecture specific IDE code. + * This file contains the x86_64 architecture specific IDE code. */ #ifndef __ASMx86_64_IDE_H diff --git a/include/asm-x86_64/io_apic.h b/include/asm-x86_64/io_apic.h index 6a460b5f5340..8cee542f40f4 100644 --- a/include/asm-x86_64/io_apic.h +++ b/include/asm-x86_64/io_apic.h @@ -148,9 +148,18 @@ extern int io_apic_get_redir_entries (int ioapic); extern int io_apic_set_pci_routing (int ioapic, int pin, int irq); #endif +#ifdef CONFIG_ACPI_BOOT +extern int io_apic_get_unique_id (int ioapic, int apic_id); +extern int io_apic_get_version (int ioapic); +extern int io_apic_get_redir_entries (int ioapic); +extern int io_apic_set_pci_routing (int ioapic, int pin, int irq); +#endif + #else /* !CONFIG_X86_IO_APIC */ #define io_apic_assign_pci_irqs 0 #endif +void enable_NMI_through_LVT0 (void * dummy); + #endif diff --git a/include/asm-x86_64/ioctl32.h b/include/asm-x86_64/ioctl32.h new file mode 100644 index 000000000000..d0d227f45e05 --- /dev/null +++ b/include/asm-x86_64/ioctl32.h @@ -0,0 +1 @@ +#include <linux/ioctl32.h> diff --git a/include/asm-x86_64/ipc.h b/include/asm-x86_64/ipc.h index c6f281e673ff..8736ba68c118 100644 --- a/include/asm-x86_64/ipc.h +++ b/include/asm-x86_64/ipc.h @@ -1,5 +1,5 @@ -#ifndef __x86_64_IPC_H__ -#define __x86_64_IPC_H__ +#ifndef __x8664_IPC_H__ +#define __x8664_IPC_H__ /* dummy */ diff --git a/include/asm-x86_64/ipcbuf.h b/include/asm-x86_64/ipcbuf.h index 0dcad4f84c2a..470cf85e3ba8 100644 --- a/include/asm-x86_64/ipcbuf.h +++ b/include/asm-x86_64/ipcbuf.h @@ -1,8 +1,8 @@ -#ifndef __i386_IPCBUF_H__ -#define __i386_IPCBUF_H__ +#ifndef __x86_64_IPCBUF_H__ +#define __x86_64_IPCBUF_H__ /* - * The ipc64_perm structure for i386 architecture. + * The ipc64_perm structure for x86_64 architecture. * Note extra padding because this structure is passed back and forth * between kernel and user space. * @@ -26,4 +26,4 @@ struct ipc64_perm unsigned long __unused2; }; -#endif /* __i386_IPCBUF_H__ */ +#endif /* __x86_64_IPCBUF_H__ */ diff --git a/include/asm-x86_64/namei.h b/include/asm-x86_64/namei.h index c6f90b5cf0af..bef239f5318f 100644 --- a/include/asm-x86_64/namei.h +++ b/include/asm-x86_64/namei.h @@ -1,9 +1,3 @@ -/* $Id: namei.h,v 1.2 2001/07/04 09:08:13 ak Exp $ - * linux/include/asm-i386/namei.h - * - * Included from linux/fs/namei.c - */ - #ifndef __X8664_NAMEI_H #define __X8664_NAMEI_H diff --git a/include/asm-x86_64/nmi.h b/include/asm-x86_64/nmi.h new file mode 100644 index 000000000000..d20f0fb9ad2b --- /dev/null +++ b/include/asm-x86_64/nmi.h @@ -0,0 +1,49 @@ +/* + * linux/include/asm-i386/nmi.h + */ +#ifndef ASM_NMI_H +#define ASM_NMI_H + +#include <linux/pm.h> + +struct pt_regs; + +typedef int (*nmi_callback_t)(struct pt_regs * regs, int cpu); + +/** + * set_nmi_callback + * + * Set a handler for an NMI. Only one handler may be + * set. Return 1 if the NMI was handled. + */ +void set_nmi_callback(nmi_callback_t callback); + +/** + * unset_nmi_callback + * + * Remove the handler previously set. + */ +void unset_nmi_callback(void); + +#ifdef CONFIG_PM + +/** Replace the PM callback routine for NMI. */ +struct pm_dev * set_nmi_pm_callback(pm_callback callback); + +/** Unset the PM callback routine back to the default. */ +void unset_nmi_pm_callback(struct pm_dev * dev); + +#else + +static inline struct pm_dev * set_nmi_pm_callback(pm_callback callback) +{ + return 0; +} + +static inline void unset_nmi_pm_callback(struct pm_dev * dev) +{ +} + +#endif /* CONFIG_PM */ + +#endif /* ASM_NMI_H */ diff --git a/include/asm-x86_64/param.h b/include/asm-x86_64/param.h index 3921e50c76b2..ef316e2cb5e2 100644 --- a/include/asm-x86_64/param.h +++ b/include/asm-x86_64/param.h @@ -2,7 +2,7 @@ #define _ASMx86_64_PARAM_H #ifdef __KERNEL__ -# define HZ 100 /* Internal kernel timer frequency */ +# define HZ 1000 /* Internal kernel timer frequency */ # define USER_HZ 100 /* .. some user interfaces are in "ticks */ #define CLOCKS_PER_SEC (USER_HZ) /* like times() */ #endif diff --git a/include/asm-x86_64/proto.h b/include/asm-x86_64/proto.h index b580f59b7649..aee29a94ba84 100644 --- a/include/asm-x86_64/proto.h +++ b/include/asm-x86_64/proto.h @@ -42,6 +42,7 @@ extern void exception_table_check(void); extern void acpi_boot_init(char *); +int iommu_setup(char *opt); #define round_up(x,y) (((x) + (y) - 1) & ~((y)-1)) #define round_down(x,y) ((x) & ~((y)-1)) diff --git a/include/asm-x86_64/softirq.h b/include/asm-x86_64/softirq.h index 23fa952e98e4..436bdc869980 100644 --- a/include/asm-x86_64/softirq.h +++ b/include/asm-x86_64/softirq.h @@ -9,6 +9,8 @@ #define __local_bh_enable() \ do { barrier(); preempt_count() -= SOFTIRQ_OFFSET; } while (0) +void do_softirq(void); + #define local_bh_enable() \ do { \ __local_bh_enable(); \ diff --git a/include/asm-x86_64/unistd.h b/include/asm-x86_64/unistd.h index 3faf01e59d61..50fa45bc8d9c 100644 --- a/include/asm-x86_64/unistd.h +++ b/include/asm-x86_64/unistd.h @@ -482,8 +482,10 @@ __SYSCALL(__NR_io_submit, sys_io_submit) __SYSCALL(__NR_io_cancel, sys_io_cancel) #define __NR_get_thread_area 211 __SYSCALL(__NR_get_thread_area, sys_get_thread_area) +#define __NR_lookup_dcookie 212 +__SYSCALL(__NR_lookup_dcookie, sys_lookup_dcookie) -#define __NR_syscall_max __NR_get_thread_area +#define __NR_syscall_max __NR_lookup_dcookie #ifndef __NO_STUBS /* user-visible error numbers are in the range -1 - -4095 */ @@ -503,7 +505,6 @@ do { \ #define __syscall "syscall" -/* XXX - _foo needs to be __foo, while __NR_bar could be _NR_bar. */ #define _syscall0(type,name) \ type name(void) \ { \ diff --git a/include/linux/ioctl32.h b/include/linux/ioctl32.h new file mode 100644 index 000000000000..b7abfe6eae10 --- /dev/null +++ b/include/linux/ioctl32.h @@ -0,0 +1,23 @@ +#ifndef IOCTL32_H +#define IOCTL32_H 1 + +struct file; + +int sys_ioctl(unsigned int, unsigned int, unsigned long); + +/* + * Register an 32bit ioctl translation handler for ioctl cmd. + * + * handler == NULL: use 64bit ioctl handler. + * arguments to handler: fd: file descriptor + * cmd: ioctl command. + * arg: ioctl argument + * struct file *file: file descriptor pointer. + */ + +extern int register_ioctl32_conversion(unsigned int cmd, int (*handler)(unsigned int, unsigned int, unsigned long, struct file *)); + +extern int unregister_ioctl32_conversion(unsigned int cmd); + + +#endif |
