]> err.no Git - linux-2.6/blobdiff - include/asm-x86/desc_defs.h
Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
[linux-2.6] / include / asm-x86 / desc_defs.h
index 09ea05243497d9bba4e1f567f3dec2ada1c8e3f3..e33f078b3e54201d4b4b801e0519b4995a2dac5a 100644 (file)
@@ -36,6 +36,7 @@ enum {
        GATE_INTERRUPT = 0xE,
        GATE_TRAP = 0xF,
        GATE_CALL = 0xC,
+       GATE_TASK = 0x5,
 };
 
 // 16byte gate
@@ -48,13 +49,14 @@ struct gate_struct64 {
        u32 zero1;
 } __attribute__((packed));
 
-#define PTR_LOW(x) ((unsigned long)(x) & 0xFFFF)
-#define PTR_MIDDLE(x) (((unsigned long)(x) >> 16) & 0xFFFF)
-#define PTR_HIGH(x) ((unsigned long)(x) >> 32)
+#define PTR_LOW(x) ((unsigned long long)(x) & 0xFFFF)
+#define PTR_MIDDLE(x) (((unsigned long long)(x) >> 16) & 0xFFFF)
+#define PTR_HIGH(x) ((unsigned long long)(x) >> 32)
 
 enum {
        DESC_TSS = 0x9,
        DESC_LDT = 0x2,
+       DESCTYPE_S =    0x10,   /* !system */
 };
 
 // LDT or TSS descriptor in the GDT. 16 bytes.
@@ -70,9 +72,11 @@ struct ldttss_desc64 {
 #ifdef CONFIG_X86_64
 typedef struct gate_struct64 gate_desc;
 typedef struct ldttss_desc64 ldt_desc;
+typedef struct ldttss_desc64 tss_desc;
 #else
 typedef struct desc_struct gate_desc;
 typedef struct desc_struct ldt_desc;
+typedef struct desc_struct tss_desc;
 #endif
 
 struct desc_ptr {