include: reduce default stack size
[minix.git] / include / arch / i386 / include / archtypes.h
blob22a2ed2bc9c275a2676d4eb4cd458e9b8b8c61b2
2 #ifndef _I386_TYPES_H
3 #define _I386_TYPES_H
5 #include <minix/sys_config.h>
6 #include <machine/stackframe.h>
7 #include <machine/fpu.h>
8 #include <sys/cdefs.h>
10 struct segdesc_s { /* segment descriptor for protected mode */
11 u16_t limit_low;
12 u16_t base_low;
13 u8_t base_middle;
14 u8_t access; /* |P|DL|1|X|E|R|A| */
15 u8_t granularity; /* |G|X|0|A|LIMT| */
16 u8_t base_high;
17 } __attribute__((packed));
19 struct gatedesc_s {
20 u16_t offset_low;
21 u16_t selector;
22 u8_t pad; /* |000|XXXXX| ig & trpg, |XXXXXXXX| task g */
23 u8_t p_dpl_type; /* |P|DL|0|TYPE| */
24 u16_t offset_high;
25 } __attribute__((packed));
27 struct desctableptr_s {
28 u16_t limit;
29 u32_t base;
30 } __attribute__((packed));
32 typedef struct segframe {
33 reg_t p_cr3; /* page table root */
34 u32_t *p_cr3_v;
35 char *fpu_state;
36 int p_kern_trap_style;
37 } segframe_t;
39 struct cpu_info {
40 u8_t vendor;
41 u8_t family;
42 u8_t model;
43 u8_t stepping;
44 u32_t freq; /* in MHz */
45 u32_t flags[2];
48 typedef u32_t atomic_t; /* access to an aligned 32bit value is atomic on i386 */
50 #endif /* #ifndef _I386_TYPES_H */