From: Jack Lange Date: Fri, 4 Apr 2008 03:34:35 +0000 (+0000) Subject: update X-Git-Tag: working-cdboot-physical-but-not-qemu~43 X-Git-Url: http://v3vee.org/palacios/gitweb/gitweb.cgi?p=palacios.git;a=commitdiff_plain;h=4c17fb67c38120c141fa36bca9d7faa418b3c8e5 update --- diff --git a/palacios/include/geekos/vmm_emulate.h b/palacios/include/geekos/vmm_emulate.h index 5c0c9c5..5157214 100644 --- a/palacios/include/geekos/vmm_emulate.h +++ b/palacios/include/geekos/vmm_emulate.h @@ -107,6 +107,23 @@ MAKE_INSTR(LMSW, 3, 0x0f, 0x01, 0x00); MAKE_INSTR(SMSW, 3, 0x0f, 0x01, 0x00); +static const uchar_t PREFIX_LOCK = 0xF0; +static const uchar_t PREFIX_REPNE = 0xF2; +static const uchar_t PREFIX_REPNZ = 0xF2; +static const uchar_t PREFIX_REP = 0xF3; +static const uchar_t PREFIX_REPE = 0xF3; +static const uchar_t PREFIX_REPZ = 0xF3; +static const uchar_t PREFIX_CS_OVERRIDE = 0x2E; +static const uchar_t PREFIX_SS_OVERRIDE = 0x36; +static const uchar_t PREFIX_DS_OVERRIDE = 0x3E; +static const uchar_t PREFIX_ES_OVERRIDE = 0x26; +static const uchar_t PREFIX_FS_OVERRIDE = 0x64; +static const uchar_t PREFIX_GS_OVERRIDE = 0x65; +static const uchar_t PREFIX_BR_NOT_TAKEN = 0x2E; +static const uchar_t PREFIX_BR_TAKEN = 0x3E; +static const uchar_t PREFIX_OP_SIZE = 0x66; +static const uchar_t PREFIX_ADDR_SIZE = 0x67; + static inline int is_prefix_byte(char byte) { switch (byte) { @@ -131,6 +148,8 @@ static inline int is_prefix_byte(char byte) { } } + + typedef enum {INVALID_ADDR_TYPE, REG, DISP0, DISP8, DISP16, DISP32} modrm_mode_t; typedef enum {INVALID_REG_SIZE, REG64, REG32, REG16, REG8} reg_size_t; typedef enum {INVALID_OPERAND, REG_OPERAND, MEM_OPERAND} operand_type_t;