60 lines
		
	
	
	
		
			622 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
		
		
			
		
	
	
			60 lines
		
	
	
	
		
			622 B
			
		
	
	
	
		
			C
		
	
	
	
	
	
|   | #ifndef __TSS_SEGMENT_H
 | ||
|  | #define __TSS_SEGMENT_H
 | ||
|  | 
 | ||
|  | struct tss_segment_32 { | ||
|  | 	u32 prev_task_link; | ||
|  | 	u32 esp0; | ||
|  | 	u32 ss0; | ||
|  | 	u32 esp1; | ||
|  | 	u32 ss1; | ||
|  | 	u32 esp2; | ||
|  | 	u32 ss2; | ||
|  | 	u32 cr3; | ||
|  | 	u32 eip; | ||
|  | 	u32 eflags; | ||
|  | 	u32 eax; | ||
|  | 	u32 ecx; | ||
|  | 	u32 edx; | ||
|  | 	u32 ebx; | ||
|  | 	u32 esp; | ||
|  | 	u32 ebp; | ||
|  | 	u32 esi; | ||
|  | 	u32 edi; | ||
|  | 	u32 es; | ||
|  | 	u32 cs; | ||
|  | 	u32 ss; | ||
|  | 	u32 ds; | ||
|  | 	u32 fs; | ||
|  | 	u32 gs; | ||
|  | 	u32 ldt_selector; | ||
|  | 	u16 t; | ||
|  | 	u16 io_map; | ||
|  | }; | ||
|  | 
 | ||
|  | struct tss_segment_16 { | ||
|  | 	u16 prev_task_link; | ||
|  | 	u16 sp0; | ||
|  | 	u16 ss0; | ||
|  | 	u16 sp1; | ||
|  | 	u16 ss1; | ||
|  | 	u16 sp2; | ||
|  | 	u16 ss2; | ||
|  | 	u16 ip; | ||
|  | 	u16 flag; | ||
|  | 	u16 ax; | ||
|  | 	u16 cx; | ||
|  | 	u16 dx; | ||
|  | 	u16 bx; | ||
|  | 	u16 sp; | ||
|  | 	u16 bp; | ||
|  | 	u16 si; | ||
|  | 	u16 di; | ||
|  | 	u16 es; | ||
|  | 	u16 cs; | ||
|  | 	u16 ss; | ||
|  | 	u16 ds; | ||
|  | 	u16 ldt; | ||
|  | }; | ||
|  | 
 | ||
|  | #endif
 |