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