42 .cr3 =
_u(cr3_target),
44#elif defined(__x86_64__)
67 .cr3 =
_u(cr3_target),
80static void remap_user(
unsigned int start_gfn,
unsigned int end_gfn)
82 while ( start_gfn < end_gfn )
128 extern const char __start_user_text[], __end_user_text[];
129 extern const char __start_user_data[], __end_user_data[];
130 extern const char __start_user_bss[], __end_user_bss[];
static void lidt(const desc_ptr *idtr)
static void ltr(unsigned int sel)
uint8_t boot_stack[3 *PAGE_SIZE]
x86 segment descriptor infrastructure.
static void pack_tss_desc(user_desc *d, const env_tss *t)
user_desc gdt[NR_GDT_ENTRIES]
static void remap_user(unsigned int start_gfn, unsigned int end_gfn)
void entry_ret_to_kernel(void)
void arch_init_traps(void)
void arch_crash_hard(void)
int xtf_set_idte(unsigned int vector, const struct xtf_idte *idte)
Set up an IDT Entry, in a guest agnostic way.
xen_pvh_start_info_t * pvh_start_info
x86 IDT vector infrastructure.
#define X86_VEC_RET2KERN
Return to kernel mode.
#define IS_DEFINED(x)
Evalute whether the CONFIG_ token x is defined.
static unsigned long virt_to_gfn(const void *va)
#define _u(v)
Express an arbitrary value v as unsigned long.
static const struct xtf_idte idte
A guest agnostic represention of IDT information.
static void pack_task_gate(env_gate *g, unsigned int selector)
static void pack_intr_gate(env_gate *g, unsigned int sel, unsigned long offset, unsigned int dpl, unsigned int other)
#define X86_TSS_INVALID_IO_BITMAP