summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/asm-x86_64/hw_irq.h32
-rw-r--r--include/asm-x86_64/ia32.h5
-rw-r--r--include/asm-x86_64/ide.h2
-rw-r--r--include/asm-x86_64/io_apic.h9
-rw-r--r--include/asm-x86_64/ioctl32.h1
-rw-r--r--include/asm-x86_64/ipc.h4
-rw-r--r--include/asm-x86_64/ipcbuf.h8
-rw-r--r--include/asm-x86_64/namei.h6
-rw-r--r--include/asm-x86_64/nmi.h49
-rw-r--r--include/asm-x86_64/param.h2
-rw-r--r--include/asm-x86_64/proto.h1
-rw-r--r--include/asm-x86_64/softirq.h2
-rw-r--r--include/asm-x86_64/unistd.h5
-rw-r--r--include/linux/ioctl32.h23
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