fedora core 6 1.2949 + vserver 2.2.0
[linux-2.6.git] / include / asm-i386 / vm86.h
index 40ec82c..a5edf51 100644 (file)
 #define IF_MASK                0x00000200
 #define IOPL_MASK      0x00003000
 #define NT_MASK                0x00004000
+#ifdef CONFIG_VM86
 #define VM_MASK                0x00020000
+#else
+#define VM_MASK                0 /* ignored */
+#endif
 #define AC_MASK                0x00040000
 #define VIF_MASK       0x00080000      /* virtual interrupt flag */
 #define VIP_MASK       0x00100000      /* virtual interrupt pending */
@@ -141,26 +145,13 @@ struct vm86plus_struct {
  * at the end of the structure. Look at ptrace.h to see the "normal"
  * setup. For user space layout see 'struct vm86_regs' above.
  */
+#include <asm/ptrace.h>
 
 struct kernel_vm86_regs {
 /*
  * normal regs, with special meaning for the segment descriptors..
  */
-       long ebx;
-       long ecx;
-       long edx;
-       long esi;
-       long edi;
-       long ebp;
-       long eax;
-       long __null_ds;
-       long __null_es;
-       long orig_eax;
-       long eip;
-       unsigned short cs, __csh;
-       long eflags;
-       long esp;
-       unsigned short ss, __ssh;
+       struct pt_regs pt;
 /*
  * these are specific to v86 mode:
  */
@@ -200,9 +191,25 @@ struct kernel_vm86_struct {
  */
 };
 
+#ifdef CONFIG_VM86
+
 void handle_vm86_fault(struct kernel_vm86_regs *, long);
 int handle_vm86_trap(struct kernel_vm86_regs *, long, int);
 
+struct task_struct;
+void release_vm86_irqs(struct task_struct *);
+
+#else
+
+#define handle_vm86_fault(a, b)
+#define release_vm86_irqs(a)
+
+static inline int handle_vm86_trap(struct kernel_vm86_regs *a, long b, int c) {
+       return 0;
+}
+
+#endif /* CONFIG_VM86 */
+
 #endif /* __KERNEL__ */
 
 #endif