search for: vmi_selector

Displaying 6 results from an estimated 6 matches for "vmi_selector".

2007 Apr 18
3
[RFC, PATCH 10/24] i386 Vmi descriptor changes
...OBBER_EXTENDED(ZERO_RETURNS, "memory")); +} + +static inline void load_idt(VMI_DTR *const dtr) +{ + vmi_wrap_call( + SetIDT, "lidt (%0)", + VMI_NO_OUTPUT, + 1, VMI_IREG1 (dtr), + VMI_CLOBBER_EXTENDED(ZERO_RETURNS, "memory")); +} + +static inline void load_ldt(const VMI_SELECTOR sel) +{ + vmi_wrap_call( + SetLDT, "lldt %w0", + VMI_NO_OUTPUT, + 1, VMI_IREG1 (sel), + VMI_CLOBBER_EXTENDED(ZERO_RETURNS, "memory")); +} + +static inline void load_tr(const VMI_SELECTOR sel) +{ + vmi_wrap_call( + SetTR, "ltr %w0", + VMI_NO_OUTPUT, + 1, VMI_IREG...
2007 Apr 18
3
[RFC, PATCH 10/24] i386 Vmi descriptor changes
...OBBER_EXTENDED(ZERO_RETURNS, "memory")); +} + +static inline void load_idt(VMI_DTR *const dtr) +{ + vmi_wrap_call( + SetIDT, "lidt (%0)", + VMI_NO_OUTPUT, + 1, VMI_IREG1 (dtr), + VMI_CLOBBER_EXTENDED(ZERO_RETURNS, "memory")); +} + +static inline void load_ldt(const VMI_SELECTOR sel) +{ + vmi_wrap_call( + SetLDT, "lldt %w0", + VMI_NO_OUTPUT, + 1, VMI_IREG1 (sel), + VMI_CLOBBER_EXTENDED(ZERO_RETURNS, "memory")); +} + +static inline void load_tr(const VMI_SELECTOR sel) +{ + vmi_wrap_call( + SetTR, "ltr %w0", + VMI_NO_OUTPUT, + 1, VMI_IREG...
2007 Apr 18
4
[RFC, PATCH 1/24] i386 Vmi documentation
...sor, which may include adjusting + the DPL and RPL of descriptors in the guest IDT. + + Inputs: EAX = pointer to descriptor limit / base + Outputs: None + Clobbers: Standard, Memory + Segments: Standard + + VMI_SetLDT + + VMICALL void VMI_SetLDT(VMI_SELECTOR ldtSel); + + Load the local descriptor table. This has the additional side effect + of of reloading all segment registers. See VMI_SetGDT for an + explanation of why this is required. A load of the LDT may cause the + guest visible memory image of the LDT to be changed, j...
2007 Apr 18
4
[RFC, PATCH 1/24] i386 Vmi documentation
...sor, which may include adjusting + the DPL and RPL of descriptors in the guest IDT. + + Inputs: EAX = pointer to descriptor limit / base + Outputs: None + Clobbers: Standard, Memory + Segments: Standard + + VMI_SetLDT + + VMICALL void VMI_SetLDT(VMI_SELECTOR ldtSel); + + Load the local descriptor table. This has the additional side effect + of of reloading all segment registers. See VMI_SetGDT for an + explanation of why this is required. A load of the LDT may cause the + guest visible memory image of the LDT to be changed, j...
2007 Apr 18
3
[RFC, PATCH 4/24] i386 Vmi inline implementation
...+/* Linux type system definitions */ +#include <linux/types.h> +struct tss_struct; +struct Xgt_desc_struct; +typedef struct tss_struct VMI_TASK; +typedef struct Xgt_desc_struct VMI_DTR; +typedef uint64_t VMI_UINT64; +typedef uint32_t VMI_UINT32; +typedef uint16_t VMI_UINT16; +typedef uint16_t VMI_SELECTOR; +typedef uint8_t VMI_UINT8; +typedef int8_t VMI_INT8; +typedef uint8_t VMI_BOOL; +typedef uint64_t VMI_CYCLES; + +#include <paravirtualInterface.h> +#include <mach_asm.h> + +#if defined(CONFIG_VMI_C_CONVENTION) +#define VMI_CLOBBER_ZERO_RETURNS "cc", "eax", "ed...
2007 Apr 18
3
[RFC, PATCH 4/24] i386 Vmi inline implementation
...+/* Linux type system definitions */ +#include <linux/types.h> +struct tss_struct; +struct Xgt_desc_struct; +typedef struct tss_struct VMI_TASK; +typedef struct Xgt_desc_struct VMI_DTR; +typedef uint64_t VMI_UINT64; +typedef uint32_t VMI_UINT32; +typedef uint16_t VMI_UINT16; +typedef uint16_t VMI_SELECTOR; +typedef uint8_t VMI_UINT8; +typedef int8_t VMI_INT8; +typedef uint8_t VMI_BOOL; +typedef uint64_t VMI_CYCLES; + +#include <paravirtualInterface.h> +#include <mach_asm.h> + +#if defined(CONFIG_VMI_C_CONVENTION) +#define VMI_CLOBBER_ZERO_RETURNS "cc", "eax", "ed...