GATE_INTERRUPT = 0xE,
GATE_TRAP = 0xF,
GATE_CALL = 0xC,
+ GATE_TASK = 0x5,
};
// 16byte gate
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_TASK = 0x85, /* present, system, DPL-0, task gate */
- DESCTYPE_INT = 0x8e, /* present, system, DPL-0, interrupt gate */
- DESCTYPE_TRAP = 0x8f, /* present, system, DPL-0, trap gate */
- DESCTYPE_DPL3 = 0x60, /* DPL-3 */
DESCTYPE_S = 0x10, /* !system */
};