typedef struct fasttrap_machtp {
uint8_t ftmt_instr[FASTTRAP_MAX_INSTR_SIZE]; /* orig. instr. */
uint8_t ftmt_size; /* instruction size */
-#if __sol64 || defined(__APPLE__)
uint8_t ftmt_ripmode; /* %rip-relative handling mode */
uint8_t ftmt_modrm; /* saved modrm byte */
-#endif
uint8_t ftmt_type; /* emulation type */
uint8_t ftmt_code; /* branch condition */
uint8_t ftmt_base; /* branch base */
uint8_t ftmt_scale; /* branch scale */
uint8_t ftmt_segment; /* segment for memory accesses */
user_addr_t ftmt_dest; /* destination of control flow */
+ uint8_t ftmt_installed:1;
+ uint8_t ftmt_retired:1;
} fasttrap_machtp_t;
#define ftt_instr ftt_mtp.ftmt_instr
-#if __sol64 || defined(__APPLE__)
#define ftt_ripmode ftt_mtp.ftmt_ripmode
#define ftt_modrm ftt_mtp.ftmt_modrm
-#endif
#define ftt_size ftt_mtp.ftmt_size
#define ftt_type ftt_mtp.ftmt_type
#define ftt_code ftt_mtp.ftmt_code
#define ftt_scale ftt_mtp.ftmt_scale
#define ftt_segment ftt_mtp.ftmt_segment
#define ftt_dest ftt_mtp.ftmt_dest
+#define ftt_installed ftt_mtp.ftmt_installed
+#define ftt_retired ftt_mtp.ftmt_retired
+
#define FASTTRAP_T_COMMON 0x00 /* common case -- no emulation */
#define FASTTRAP_T_JCC 0x01 /* near and far conditional jumps */