+/**
+ * A "kind" of integer value.
+ * The enumeration is used as a bit field, with two fields.
+ * The first, four bits wide, is the "sizeof" in bytes.
+ * The second is a flag that is true if the value is unsigned.
+ */
+typedef enum {
+ MONO_INTEGER_VALUE_SIZE_1 = 1,
+ MONO_INTEGER_VALUE_SIZE_2 = 2,
+ MONO_INTEGER_VALUE_SIZE_4 = 4,
+ MONO_INTEGER_VALUE_SIZE_8 = 8,
+ MONO_INTEGER_VALUE_SIZE_BITMASK = 15,
+ MONO_UNSIGNED_VALUE_FLAG = 16,
+ MONO_UNSIGNED_INTEGER_VALUE_SIZE_1 = MONO_UNSIGNED_VALUE_FLAG|MONO_INTEGER_VALUE_SIZE_1,
+ MONO_UNSIGNED_INTEGER_VALUE_SIZE_2 = MONO_UNSIGNED_VALUE_FLAG|MONO_INTEGER_VALUE_SIZE_2,
+ MONO_UNSIGNED_INTEGER_VALUE_SIZE_4 = MONO_UNSIGNED_VALUE_FLAG|MONO_INTEGER_VALUE_SIZE_4,
+ MONO_UNSIGNED_INTEGER_VALUE_SIZE_8 = MONO_UNSIGNED_VALUE_FLAG|MONO_INTEGER_VALUE_SIZE_8,
+ MONO_UNKNOWN_INTEGER_VALUE = 0
+} MonoIntegerValueKind;
+