50 return "Signed Integral";
52 return "Unsigned Integral";
69 if (!strcmp(typeclass,
"Integral")) {
71 }
else if (!strcmp(typeclass,
"Signed Integral")) {
73 }
else if (!strcmp(typeclass,
"Unsigned Integral")) {
75 }
else if (!strcmp(typeclass,
"Floating")) {
77 }
else if (!strcmp(typeclass,
"Address")) {
79 }
else if (!strcmp(typeclass,
"Num")) {
129 return tclass == typeclass;
138 return tclass == typeclass;
374 if (!l || rz_list_empty(l)) {
RZ_API RZ_BORROW RzBaseType * rz_type_db_get_base_type(const RzTypeDB *typedb, RZ_NONNULL const char *name)
Searches for the RzBaseType in the types database given the name.
RZ_API RZ_OWN void * rz_list_pop(RZ_NONNULL RzList *list)
Removes and returns the last element of the list.
RZ_API RZ_OWN RzList * rz_list_new(void)
Returns a new initialized RzList pointer (free method is not initialized)
RZ_API RZ_BORROW RzListIter * rz_list_append(RZ_NONNULL RzList *list, void *data)
Appends at the end of the list a new element.
RZ_API void rz_list_free(RZ_NONNULL RzList *list)
Empties the list and frees the list pointer.
insn_type_descr_t types[]
#define rz_warn_if_reached()
#define rz_return_val_if_fail(expr, val)
#define RZ_STR_ISNOTEMPTY(x)
@ RZ_BASE_TYPE_KIND_TYPEDEF
@ RZ_TYPE_ATTRIBUTE_TYPECLASS_MASK
@ RZ_TYPE_TYPECLASS_FLOATING
@ RZ_TYPE_TYPECLASS_INVALID
@ RZ_TYPE_TYPECLASS_ADDRESS
@ RZ_TYPE_TYPECLASS_INTEGRAL
@ RZ_TYPE_TYPECLASS_INTEGRAL_SIGNED
@ RZ_TYPE_TYPECLASS_INTEGRAL_UNSIGNED
@ RZ_TYPE_KIND_IDENTIFIER
RzTypeTypeclass typeclass
RzTypeTypeclass typeclass
RZ_API RZ_BORROW const char * rz_type_identifier(RZ_NONNULL const RzType *type)
Returns the type C identifier.
RZ_API bool rz_type_is_num(const RzTypeDB *typedb, RZ_NONNULL const RzType *type)
Checks if the RzType is Num typeclass.
static bool typeclass_is_integal(RzTypeTypeclass t)
RZ_API bool rz_base_type_is_integral(const RzTypeDB *typedb, RZ_NONNULL const RzBaseType *type)
Checks if the RzBaseType is Integral typeclass.
static bool get_base_type_typeclass(const RzTypeDB *typedb, RZ_NONNULL const RzBaseType *type, RZ_NONNULL RzTypeTypeclass *typeclass)
RZ_API bool rz_base_type_is_floating(const RzTypeDB *typedb, RZ_NONNULL const RzBaseType *type)
Checks if the RzBaseType is Floating typeclass.
RZ_API bool rz_base_type_is_integral_signed(const RzTypeDB *typedb, RZ_NONNULL const RzBaseType *type)
Checks if the RzBaseType is Integral and Signed typeclass.
static bool typeclass_is_num(RzTypeTypeclass t)
RZ_API bool rz_type_is_integral_unsigned(const RzTypeDB *typedb, RZ_NONNULL const RzType *type)
Checks if the RzType is Integral and Unsigned typeclass.
RZ_API bool rz_type_is_integral(const RzTypeDB *typedb, RZ_NONNULL const RzType *type)
Checks if the RzType is Integral typeclass.
RZ_API bool rz_base_type_is_num(const RzTypeDB *typedb, RZ_NONNULL const RzBaseType *type)
Checks if the RzBaseType is Num typeclass.
RZ_API RZ_BORROW const char * rz_type_typeclass_as_string(RzTypeTypeclass typeclass)
Returns the string representation of a typeclass.
RZ_API RzTypeTypeclass rz_type_typeclass(const RzTypeDB *typedb, RZ_NONNULL const RzType *type)
Gets the type class.
RZ_API RZ_OWN RzList * rz_type_typeclass_get_all_sized(const RzTypeDB *typedb, RzTypeTypeclass typeclass, size_t size)
Returns the list of all base types given the typeclass and size.
static bool base_type_typeclass_sized_collect_cb(void *user, const void *k, const void *v)
static bool check_type_typeclass(const RzTypeDB *typedb, RZ_NONNULL const RzType *type, RzTypeTypeclass typeclass)
RZ_API bool rz_base_type_is_integral_unsigned(const RzTypeDB *typedb, RZ_NONNULL const RzBaseType *type)
Checks if the RzBaseType is Integral and Unsigned typeclass.
RZ_API RzTypeTypeclass rz_type_typeclass_from_string(RZ_NONNULL const char *typeclass)
Returns the typeclass from the string name of it.
RZ_API bool rz_type_is_integral_signed(const RzTypeDB *typedb, RZ_NONNULL const RzType *type)
Checks if the RzType is Integral and Signed typeclass.
RZ_API RZ_OWN RzBaseType * rz_type_typeclass_get_default_sized(const RzTypeDB *typedb, RzTypeTypeclass typeclass, size_t size)
Returns the default base type given the typeclass and size.
static bool get_type_typeclass(const RzTypeDB *typedb, RZ_NONNULL const RzType *type, RzTypeTypeclass *typeclass)
RZ_API RZ_OWN RzList * rz_type_typeclass_get_all(const RzTypeDB *typedb, RzTypeTypeclass typeclass)
Returns the list of all base types given the typeclass.
RZ_API bool rz_type_is_floating(const RzTypeDB *typedb, RZ_NONNULL const RzType *type)
Checks if the RzType is Floating typeclass.
static bool check_base_type_typeclass(const RzTypeDB *typedb, RZ_NONNULL const RzBaseType *type, RzTypeTypeclass typeclass)
static bool base_type_typeclass_collect_cb(void *user, const void *k, const void *v)
RZ_API RzTypeTypeclass rz_base_type_typeclass(const RzTypeDB *typedb, RZ_NONNULL const RzBaseType *type)
Gets the base type class.