Changeset 39cea6a in mainline for arch/amd64/include/pm.h
- Timestamp:
- 2006-04-13T17:38:03Z (19 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- e185136
- Parents:
- 897ad60
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
arch/amd64/include/pm.h
r897ad60 r39cea6a 67 67 #define DPL_USER (PL_USER<<5) 68 68 69 #define IO_MAP_BASE (104)69 #define TSS_BASIC_SIZE 104 70 70 71 71 #ifndef __ASM__ … … 83 83 unsigned base_24_31: 8; 84 84 } __attribute__ ((packed)); 85 typedef struct descriptor descriptor_t; 85 86 86 87 struct tss_descriptor { … … 89 90 unsigned base_16_23: 8; 90 91 unsigned type: 4; 91 unsigned 92 unsigned : 1; 92 93 unsigned dpl : 2; 93 94 unsigned present : 1; … … 100 101 unsigned : 32; 101 102 } __attribute__ ((packed)); 103 typedef struct tss_descriptor tss_descriptor_t; 102 104 103 105 struct idescriptor { … … 113 115 unsigned : 32; 114 116 } __attribute__ ((packed)); 117 typedef struct idescriptor idescriptor_t; 115 118 116 119 struct ptr_16_64 { … … 118 121 __u64 base; 119 122 } __attribute__ ((packed)); 123 typedef struct ptr_16_64 ptr_16_64_t; 120 124 121 125 struct ptr_16_32 { … … 123 127 __u32 base; 124 128 } __attribute__ ((packed)); 129 typedef struct ptr_16_32 ptr_16_32_t; 125 130 126 131 struct tss { … … 142 147 __u8 iomap[0x10000 + 1]; /* 64K + 1 terminating byte */ 143 148 } __attribute__ ((packed)); 149 typedef struct tss tss_t; 144 150 145 extern struct tss*tss_p;151 extern tss_t *tss_p; 146 152 147 extern struct descriptorgdt[];148 extern struct idescriptoridt[];153 extern descriptor_t gdt[]; 154 extern idescriptor_t idt[]; 149 155 150 extern struct ptr_16_64gdtr;151 extern struct ptr_16_32bootstrap_gdtr;152 extern struct ptr_16_32protected_ap_gdtr;156 extern ptr_16_64_t gdtr; 157 extern ptr_16_32_t bootstrap_gdtr; 158 extern ptr_16_32_t protected_ap_gdtr; 153 159 154 160 extern void pm_init(void); 155 161 156 extern void gdt_tss_setbase( struct descriptor*d, __address base);157 extern void gdt_tss_setlimit( struct descriptor*d, __u32 limit);162 extern void gdt_tss_setbase(descriptor_t *d, __address base); 163 extern void gdt_tss_setlimit(descriptor_t *d, __u32 limit); 158 164 159 165 extern void idt_init(void); 160 extern void idt_setoffset( struct idescriptor*d, __address offset);166 extern void idt_setoffset(idescriptor_t *d, __address offset); 161 167 162 extern void tss_initialize( struct tss*t);168 extern void tss_initialize(tss_t *t); 163 169 164 170 #endif /* __ASM__ */
Note:
See TracChangeset
for help on using the changeset viewer.