+static int check_simple_cast(const char *cast, int *bits, int *is_signed)
+{
+ if (IS_START(cast, "(s8)") || IS_START(cast, "(u8)"))
+ *bits = 8;
+ else if (IS_START(cast, "(s16)") || IS_START(cast, "(u16)"))
+ *bits = 16;
+ else if (IS_START(cast, "(s32)") || IS_START(cast, "(u32)"))
+ *bits = 32;
+ else if (IS_START(cast, "(s64)") || IS_START(cast, "(u64)"))
+ *bits = 64;
+ else
+ return -1;
+
+ *is_signed = cast[1] == 's' ? 1 : 0;
+ return 0;
+}
+
+static int check_deref_cast(const char *cast, int *bits)
+{
+ if (IS_START(cast, "*(u8 *)"))
+ *bits = 8;
+ else if (IS_START(cast, "*(u16 *)"))
+ *bits = 16;
+ else if (IS_START(cast, "*(u32 *)"))
+ *bits = 32;
+ else if (IS_START(cast, "*(u64 *)"))
+ *bits = 64;
+ else
+ return -1;
+
+ return 0;
+}
+