Subversion Repositories HelenOS-historic

Rev

Rev 1702 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1702 Rev 1780
Line 138... Line 138...
138
    unsigned  : 32;
138
    unsigned  : 32;
139
} __attribute__ ((packed));
139
} __attribute__ ((packed));
140
typedef struct idescriptor idescriptor_t;
140
typedef struct idescriptor idescriptor_t;
141
 
141
 
142
struct ptr_16_64 {
142
struct ptr_16_64 {
143
    __u16 limit;
143
    uint16_t limit;
144
    __u64 base;
144
    uint64_t base;
145
} __attribute__ ((packed));
145
} __attribute__ ((packed));
146
typedef struct ptr_16_64 ptr_16_64_t;
146
typedef struct ptr_16_64 ptr_16_64_t;
147
 
147
 
148
struct ptr_16_32 {
148
struct ptr_16_32 {
149
    __u16 limit;
149
    uint16_t limit;
150
    __u32 base;
150
    uint32_t base;
151
} __attribute__ ((packed));
151
} __attribute__ ((packed));
152
typedef struct ptr_16_32 ptr_16_32_t;
152
typedef struct ptr_16_32 ptr_16_32_t;
153
 
153
 
154
struct tss {
154
struct tss {
155
    __u32 reserve1;
155
    uint32_t reserve1;
156
    __u64 rsp0;
156
    uint64_t rsp0;
157
    __u64 rsp1;
157
    uint64_t rsp1;
158
    __u64 rsp2;
158
    uint64_t rsp2;
159
    __u64 reserve2;
159
    uint64_t reserve2;
160
    __u64 ist1;
160
    uint64_t ist1;
161
    __u64 ist2;
161
    uint64_t ist2;
162
    __u64 ist3;
162
    uint64_t ist3;
163
    __u64 ist4;
163
    uint64_t ist4;
164
    __u64 ist5;
164
    uint64_t ist5;
165
    __u64 ist6;
165
    uint64_t ist6;
166
    __u64 ist7;
166
    uint64_t ist7;
167
    __u64 reserve3;
167
    uint64_t reserve3;
168
    __u16 reserve4;
168
    uint16_t reserve4;
169
    __u16 iomap_base;
169
    uint16_t iomap_base;
170
    __u8 iomap[TSS_IOMAP_SIZE];
170
    uint8_t iomap[TSS_IOMAP_SIZE];
171
} __attribute__ ((packed));
171
} __attribute__ ((packed));
172
typedef struct tss tss_t;
172
typedef struct tss tss_t;
173
 
173
 
174
extern tss_t *tss_p;
174
extern tss_t *tss_p;
175
 
175
 
Line 180... Line 180...
180
extern ptr_16_32_t bootstrap_gdtr;
180
extern ptr_16_32_t bootstrap_gdtr;
181
extern ptr_16_32_t protected_ap_gdtr;
181
extern ptr_16_32_t protected_ap_gdtr;
182
 
182
 
183
extern void pm_init(void);
183
extern void pm_init(void);
184
 
184
 
185
extern void gdt_tss_setbase(descriptor_t *d, __address base);
185
extern void gdt_tss_setbase(descriptor_t *d, uintptr_t base);
186
extern void gdt_tss_setlimit(descriptor_t *d, __u32 limit);
186
extern void gdt_tss_setlimit(descriptor_t *d, uint32_t limit);
187
 
187
 
188
extern void idt_init(void);
188
extern void idt_init(void);
189
extern void idt_setoffset(idescriptor_t *d, __address offset);
189
extern void idt_setoffset(idescriptor_t *d, uintptr_t offset);
190
 
190
 
191
extern void tss_initialize(tss_t *t);
191
extern void tss_initialize(tss_t *t);
192
 
192
 
193
#endif /* __ASM__ */
193
#endif /* __ASM__ */
194
 
194