Rev 1816 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1816 | Rev 1829 | ||
---|---|---|---|
Line 90... | Line 90... | ||
90 | unsigned granularity : 1; |
90 | unsigned granularity : 1; |
91 | unsigned base_24_31: 8; |
91 | unsigned base_24_31: 8; |
92 | } __attribute__ ((packed)); |
92 | } __attribute__ ((packed)); |
93 | typedef struct descriptor descriptor_t; |
93 | typedef struct descriptor descriptor_t; |
94 | 94 | ||
95 | struct idescriptor { |
- | |
96 | unsigned offset_0_15: 16; |
- | |
97 | unsigned selector: 16; |
- | |
98 | unsigned unused: 8; |
- | |
99 | unsigned access: 8; |
- | |
100 | unsigned offset_16_31: 16; |
- | |
101 | } __attribute__ ((packed)); |
- | |
102 | typedef struct idescriptor idescriptor_t; |
- | |
103 | - | ||
104 | struct tss { |
95 | struct tss { |
105 | uint16_t link; |
96 | uint16_t link; |
106 | unsigned : 16; |
97 | unsigned : 16; |
107 | uint32_t esp0; |
98 | uint32_t esp0; |
108 | uint16_t ss0; |
99 | uint16_t ss0; |
Line 154... | Line 145... | ||
154 | extern void pm_init(void); |
145 | extern void pm_init(void); |
155 | 146 | ||
156 | extern void gdt_setbase(descriptor_t *d, uintptr_t base); |
147 | extern void gdt_setbase(descriptor_t *d, uintptr_t base); |
157 | extern void gdt_setlimit(descriptor_t *d, uint32_t limit); |
148 | extern void gdt_setlimit(descriptor_t *d, uint32_t limit); |
158 | 149 | ||
159 | extern void idt_init(void); |
150 | extern void traps_init(void); |
160 | extern void idt_setoffset(idescriptor_t *d, uintptr_t offset); |
- | |
161 | 151 | ||
162 | extern void tss_initialize(tss_t *t); |
152 | extern void tss_initialize(tss_t *t); |
163 | extern void set_tls_desc(uintptr_t tls); |
153 | extern void set_tls_desc(uintptr_t tls); |
164 | 154 | ||
165 | #endif /* __ASM__ */ |
155 | #endif /* __ASM__ */ |