tss.h 622 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859
  1. #ifndef __TSS_SEGMENT_H
  2. #define __TSS_SEGMENT_H
  3. struct tss_segment_32 {
  4. u32 prev_task_link;
  5. u32 esp0;
  6. u32 ss0;
  7. u32 esp1;
  8. u32 ss1;
  9. u32 esp2;
  10. u32 ss2;
  11. u32 cr3;
  12. u32 eip;
  13. u32 eflags;
  14. u32 eax;
  15. u32 ecx;
  16. u32 edx;
  17. u32 ebx;
  18. u32 esp;
  19. u32 ebp;
  20. u32 esi;
  21. u32 edi;
  22. u32 es;
  23. u32 cs;
  24. u32 ss;
  25. u32 ds;
  26. u32 fs;
  27. u32 gs;
  28. u32 ldt_selector;
  29. u16 t;
  30. u16 io_map;
  31. };
  32. struct tss_segment_16 {
  33. u16 prev_task_link;
  34. u16 sp0;
  35. u16 ss0;
  36. u16 sp1;
  37. u16 ss1;
  38. u16 sp2;
  39. u16 ss2;
  40. u16 ip;
  41. u16 flag;
  42. u16 ax;
  43. u16 cx;
  44. u16 dx;
  45. u16 bx;
  46. u16 sp;
  47. u16 bp;
  48. u16 si;
  49. u16 di;
  50. u16 es;
  51. u16 cs;
  52. u16 ss;
  53. u16 ds;
  54. u16 ldt;
  55. };
  56. #endif