35 # define _XED_FLAGS_H_
157 #define XED_MAX_FLAG_ACTIONS (XED_MAX_ACTIONS_PER_SIMPLE_FLAG)
xed_uint32_t iopl
A 2-bit field, bits 12-13.
xed_uint32_t fc2
x87 flag FC2 (not really part of rflags)
XED_DLL_EXPORT xed_bool_t xed_flag_action_write_action(xed_flag_action_enum_t a)
test to see if a specific action is a write
xed_uint32_t must_be_0d
bits 22-23
A collection of xed_flag_action_t's and unions of read and written flags.
XED_DLL_EXPORT xed_flag_action_enum_t xed_flag_action_get_action(const xed_flag_action_t *p, unsigned int i)
return the action
XED_DLL_EXPORT int xed_flag_set_print(const xed_flag_set_t *p, char *buf, int buflen)
print the flag set in the supplied buffer
xed_uint32_t fc1
x87 flag FC1 (not really part of rflags)
XED_DLL_EXPORT xed_bool_t xed_flag_action_writes_flag(const xed_flag_action_t *p)
returns true if either action is a write
XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_may_write(const xed_simple_flag_t *p)
Indicates the flags are only conditionally written.
xed_flag_set_t undefined
union of undefined flags;
XED_DLL_EXPORT xed_bool_t xed_simple_flag_reads_flags(const xed_simple_flag_t *p)
boolean test to see if flags are read, scans the flags
XED_DLL_EXPORT int xed_simple_flag_print(const xed_simple_flag_t *p, char *buf, int buflen)
print the flags
XED_DLL_EXPORT const xed_flag_set_t * xed_simple_flag_get_written_flag_set(const xed_simple_flag_t *p)
return union of bits for written flags
XED_DLL_EXPORT xed_bool_t xed_simple_flag_get_must_write(const xed_simple_flag_t *p)
the flags always written
XED_DLL_EXPORT xed_bool_t xed_flag_set_is_subset_of(const xed_flag_set_t *p, const xed_flag_set_t *other)
returns true if this object has a subset of the flags of the "other" object.
xed_uint32_t must_be_0e
bits 24-27
xed_flag_action_enum_t action
XED_DLL_EXPORT int xed_flag_action_print(const xed_flag_action_t *p, char *buf, int buflen)
print the flag & actions
xed_flag_set_t written
union of written flags (includes undefined flags);
struct xed_flag_set_s::@5 s
XED_DLL_EXPORT const xed_flag_action_t * xed_simple_flag_get_flag_action(const xed_simple_flag_t *p, unsigned int i)
return the specific flag-action.
xed_uint32_t _if
underscore to avoid token clash
xed_uint32_t fc0
x87 flag FC0 (not really part of rflags)
struct xed_flag_enum_s xed_flag_action_t
Associated with each flag field there can be one action.
XED_DLL_EXPORT xed_bool_t xed_flag_action_read_action(xed_flag_action_enum_t a)
test to see if the specific action is a read
XED_DLL_EXPORT const xed_flag_set_t * xed_simple_flag_get_read_flag_set(const xed_simple_flag_t *p)
return union of bits for read flags
xed_uint32_t fc3
x87 flag FC3 (not really part of rflags)
XED_DLL_EXPORT unsigned int xed_simple_flag_get_nflags(const xed_simple_flag_t *p)
returns the number of flag-actions
XED_DLL_EXPORT xed_flag_enum_t xed_flag_action_get_flag_name(const xed_flag_action_t *p)
get the name of the flag
XED_DLL_EXPORT xed_bool_t xed_flag_action_action_invalid(const xed_flag_action_enum_t a)
returns true if the specified action is invalid.
struct xed_simple_flag_s xed_simple_flag_t
A collection of xed_flag_action_t's and unions of read and written flags.
XED_DLL_EXPORT const xed_flag_set_t * xed_simple_flag_get_undefined_flag_set(const xed_simple_flag_t *p)
return union of bits for undefined flags
static XED_INLINE int xed_flag_set_mask(const xed_flag_set_t *p)
Return the flags as a mask.
xed_flag_set_t read
union of read flags
XED_DLL_EXPORT xed_bool_t xed_flag_action_read_flag(const xed_flag_action_t *p)
returns true if either action is a read
Associated with each flag field there can be one action.
XED_DLL_EXPORT xed_bool_t xed_simple_flag_writes_flags(const xed_simple_flag_t *p)
boolean test to see if flags are written, scans the flags