31 #include "prot-domains.h"
35 #include "interrupt.h"
41 static dom_kern_data_t
__attribute__((section(
".kern_prot_dom_bss")))
42 ATTR_KERN_ADDR_SPACE PROT_DOMAINS_PDCS_NM(kern_dcd);
43 PROT_DOMAINS_ALLOC_IMPL(kern_dcd);
45 static dom_kern_data_t
__attribute__((section(".app_prot_dom_bss")))
46 ATTR_KERN_ADDR_SPACE PROT_DOMAINS_PDCS_NM(app_dcd);
47 PROT_DOMAINS_ALLOC_IMPL(app_dcd);
52 prot_domains_init(
void)
56 gdt_lookup(GDT_IDX_CODE_EXC, &desc);
57 #if X86_CONF_PROT_DOMAINS == X86_CONF_PROT_DOMAINS__SWSEG
62 SEG_SET_FLAG(desc, TYPE, SEG_TYPE_CODE_EX);
65 SEG_SET_FLAG(desc, DPL, PRIV_LVL_INT);
66 gdt_insert(GDT_IDX_CODE_INT, desc);
68 SEG_SET_FLAG(desc, DPL, PRIV_LVL_USER);
69 gdt_insert(GDT_IDX_CODE, desc);
71 PROT_DOMAINS_INIT_ID(kern_dcd);
72 prot_domains_reg(&kern_dcd, 0, 0, 0, 0,
true);
73 PROT_DOMAINS_INIT_ID(app_dcd);
74 prot_domains_reg(&app_dcd, 0, 0, 0, 0,
false);
76 prot_domains_impl_init();
#define __attribute__(nothing)
Define attribute to nothing since it isn't handled by IAR.
Data associated with each protection domain that is owned by clients of that domain and used to ident...