global_pointers.rs 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #![allow(non_upper_case_globals)]
  2. use cpu::cpu::reg128;
  3. pub const reg8: *mut u8 = 64 as *mut u8;
  4. pub const reg16: *mut u16 = 64 as *mut u16;
  5. pub const reg32: *mut i32 = 64 as *mut i32;
  6. pub const last_op1: *mut i32 = 96 as *mut i32;
  7. pub const last_op_size: *mut i32 = 104 as *mut i32;
  8. pub const last_result: *mut i32 = 112 as *mut i32;
  9. pub const flags_changed: *mut i32 = 116 as *mut i32;
  10. pub const flags: *mut i32 = 120 as *mut i32;
  11. pub const page_fault: *mut bool = 540 as *mut bool;
  12. pub const page_fault_error_code: *mut i32 = 544 as *mut i32;
  13. pub const instruction_pointer: *mut i32 = 556 as *mut i32;
  14. pub const previous_ip: *mut i32 = 560 as *mut i32;
  15. pub const idtr_size: *mut i32 = 564 as *mut i32;
  16. pub const idtr_offset: *mut i32 = 568 as *mut i32;
  17. pub const gdtr_size: *mut i32 = 572 as *mut i32;
  18. pub const gdtr_offset: *mut i32 = 576 as *mut i32;
  19. pub const cr: *mut i32 = 580 as *mut i32;
  20. pub const cpl: *mut u8 = 612 as *mut u8;
  21. pub const in_hlt: *mut bool = 616 as *mut bool;
  22. pub const last_virt_eip: *mut i32 = 620 as *mut i32;
  23. pub const eip_phys: *mut i32 = 624 as *mut i32;
  24. pub const sysenter_cs: *mut i32 = 636 as *mut i32;
  25. pub const sysenter_esp: *mut i32 = 640 as *mut i32;
  26. pub const sysenter_eip: *mut i32 = 644 as *mut i32;
  27. pub const prefixes: *mut u8 = 648 as *mut u8;
  28. pub const timestamp_counter: *mut u32 = 664 as *mut u32;
  29. pub const sreg: *mut u16 = 668 as *mut u16;
  30. pub const dreg: *mut i32 = 684 as *mut i32;
  31. pub const segment_is_null: *mut bool = 724 as *mut bool;
  32. pub const segment_offsets: *mut i32 = 736 as *mut i32;
  33. pub const segment_limits: *mut u32 = 768 as *mut u32;
  34. pub const protected_mode: *mut bool = 800 as *mut bool;
  35. pub const is_32: *mut bool = 804 as *mut bool;
  36. pub const stack_size_32: *mut bool = 808 as *mut bool;
  37. pub const memory_size: *mut u32 = 812 as *mut u32;
  38. pub const fpu_stack_empty: *mut i32 = 816 as *mut i32;
  39. pub const mxcsr: *mut i32 = 824 as *mut i32;
  40. // gap
  41. pub const reg_xmm: *mut reg128 = 832 as *mut reg128;
  42. pub const current_tsc: *mut u64 = 960 as *mut u64;
  43. pub const fpu_st: *mut f64 = 968 as *mut f64;
  44. pub const fpu_st8: *mut u8 = 968 as *mut u8;
  45. pub const fpu_st32: *mut i32 = 968 as *mut i32;
  46. pub const fpu_stack_ptr: *mut u32 = 1032 as *mut u32;
  47. pub const fpu_control_word: *mut i32 = 1036 as *mut i32;
  48. pub const fpu_status_word: *mut i32 = 1040 as *mut i32;
  49. pub const fpu_opcode: *mut i32 = 1044 as *mut i32;
  50. pub const fpu_ip: *mut i32 = 1048 as *mut i32;
  51. pub const fpu_ip_selector: *mut i32 = 1052 as *mut i32;
  52. pub const fpu_dp: *mut i32 = 1056 as *mut i32;
  53. pub const fpu_dp_selector: *mut i32 = 1060 as *mut i32;
  54. pub const reg_mmx: *mut u64 = 1064 as *mut u64;
  55. pub const tss_size_32: *mut bool = 1128 as *mut bool;
  56. pub const fxsave_store_fpu_mask: *mut u8 = 1132 as *mut u8;
  57. pub const opstats_buffer: *mut u32 = 0x08000 as *mut u32;
  58. pub const opstats_compiled_buffer: *mut u32 = 0x10000 as *mut u32;
  59. pub const opstats_jit_exit_buffer: *mut u32 = 0x18000 as *mut u32;
  60. pub const opstats_unguarded_register_buffer: *mut u32 = 0x20000 as *mut u32;
  61. pub const opstats_wasm_size: *mut u32 = 0x28000 as *mut u32;
  62. pub const tlb_data: *mut i32 = 0x400000 as *mut i32;