[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2] pickles: Fix recently-introduced `in' related type errors
From: |
Arsen Arsenović |
Subject: |
[PATCH v2] pickles: Fix recently-introduced `in' related type errors |
Date: |
Tue, 25 Oct 2022 02:17:31 +0200 |
---
OK, here's a little fixup. The changelog probably takes more attention to
check than the actual code, since I might've missed something, but I don't
think I did.
ChangeLog | 26 +++
pickles/asn1-ber.pk | 58 +++----
pickles/bmp.pk | 2 +-
pickles/bpf.pk | 14 +-
pickles/coff-i386.pk | 20 +--
pickles/ctf.pk | 30 ++--
pickles/dwarf-expr.pk | 364 ++++++++++++++++++++---------------------
pickles/dwarf-frame.pk | 66 ++++----
pickles/dwarf-info.pk | 2 +-
pickles/elf-64.pk | 6 +-
pickles/jffs2.pk | 38 ++---
pickles/pe.pk | 90 +++++-----
12 files changed, 377 insertions(+), 339 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 829a2b58..246682f7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,29 @@
+2022-10-25 Arsen Arsenović <arsen@aarsen.me>
+
+ * pickles/dwarf-frame.pk: Set CFA constants to `uint<6>'
+ explicitly, to avoid `in' type errors.
+ * pickles/pe.pk: Set PE_DEBUG_TYPE constants to uint<32>,
+ PE_SUBSYS uint<16>, and cast alignemnt_info to uint<32> explicitly
+ to avoid `in' type errors.
+ * pickles/jffs2.pk: Se various constants to their right type
+ explicitly, to avoid `in' type errors.
+ * pickles/asn1-ber.pk: Explicitly set BER tags as uint<5>, to
+ avoid `in' type errors.
+ * pickles/dwarf-expr.pk: Explicitly set `DW_OP' constants to
+ uint<8>, to avoid `in' type errors.
+ * pickles/ctf.pk: Explicitly set kinds to uint<6>, to avoid `in'
+ type errors.
+ * pickles/coff-i386.pk: Explicitly set i386 relocation types to
+ uint<16>, to avoid `in' type error.
+ * pickles/dwarf-info.pk: Explicitly specify type in version
+ `constraint', to avoid `in' type error.
+ * pickles/elf-64.pk: Cast d_tag to int<32>, to avoid `in' type
+ errors.
+ * pickles/bpf.pk: Explicitly make instruction classes three-bit
+ uints.
+ * pickles/bmp.pk: Use unsigned offsets explicitly, to match header
+ type.
+
2022-10-23 Arsen Arsenović <arsen@aarsen.me>
* doc/gen-pvm-insns.sh (SUBSECTIONS): Emit @pvindex calls for
diff --git a/pickles/asn1-ber.pk b/pickles/asn1-ber.pk
index b38d3472..b426b3ae 100644
--- a/pickles/asn1-ber.pk
+++ b/pickles/asn1-ber.pk
@@ -23,35 +23,35 @@
ASN-1 types. Note that I didn't find these in the standard, but in
https://www.obj-sys.com/asn1tutorial/node124.html */
-var BER_TAG_RESERVED = 0,
- BER_TAG_BOOLEAN = 1,
- BER_TAG_INTEGER = 2,
- BER_TAG_BIT_STRING = 3,
- BER_TAG_OCTET_STRING = 4,
- BER_TAG_NULL = 5,
- BER_TAG_OBJ_IDENTIFIER = 6,
- BER_TAG_OBJ_DESCRIPTOR = 7,
- BER_TAG_INSTANCE = 8,
- BER_TAG_REAL = 9,
- BER_TAG_ENUMERATED = 10,
- BER_TAG_EMBEDDED_PDV = 11,
- BER_TAG_UTF8_STRING = 12,
- BER_TAG_RELATIVE_OID = 13,
- BER_TAG_SEQUENCE = 16,
- BER_TAG_SET = 17,
- BER_TAG_NUMERIC_STRING = 18,
- BER_TAG_PRINTABLE_STRING = 19,
- BER_TAG_TELETEX_STRING = 20,
- BER_TAG_VIDEOTEX_STRING = 21,
- BER_TAG_IA5_STRING = 22,
- BER_TAG_UTC_TIME = 23,
- BER_TAG_GENERALIZED_TIME = 24,
- BER_TAG_GRAPHIC_STRING = 25,
- BER_TAG_VISIBLE_STRING = 26,
- BER_TAG_GENERAL_STRING = 27,
- BER_TAG_UNIVERSAL_STRING = 28,
- BER_TAG_CHARACTER_STRING = 29,
- BER_TAG_BMP_STRING = 30;
+var BER_TAG_RESERVED = 0 as uint<5>,
+ BER_TAG_BOOLEAN = 1 as uint<5>,
+ BER_TAG_INTEGER = 2 as uint<5>,
+ BER_TAG_BIT_STRING = 3 as uint<5>,
+ BER_TAG_OCTET_STRING = 4 as uint<5>,
+ BER_TAG_NULL = 5 as uint<5>,
+ BER_TAG_OBJ_IDENTIFIER = 6 as uint<5>,
+ BER_TAG_OBJ_DESCRIPTOR = 7 as uint<5>,
+ BER_TAG_INSTANCE = 8 as uint<5>,
+ BER_TAG_REAL = 9 as uint<5>,
+ BER_TAG_ENUMERATED = 10 as uint<5>,
+ BER_TAG_EMBEDDED_PDV = 11 as uint<5>,
+ BER_TAG_UTF8_STRING = 12 as uint<5>,
+ BER_TAG_RELATIVE_OID = 13 as uint<5>,
+ BER_TAG_SEQUENCE = 16 as uint<5>,
+ BER_TAG_SET = 17 as uint<5>,
+ BER_TAG_NUMERIC_STRING = 18 as uint<5>,
+ BER_TAG_PRINTABLE_STRING = 19 as uint<5>,
+ BER_TAG_TELETEX_STRING = 20 as uint<5>,
+ BER_TAG_VIDEOTEX_STRING = 21 as uint<5>,
+ BER_TAG_IA5_STRING = 22 as uint<5>,
+ BER_TAG_UTC_TIME = 23 as uint<5>,
+ BER_TAG_GENERALIZED_TIME = 24 as uint<5>,
+ BER_TAG_GRAPHIC_STRING = 25 as uint<5>,
+ BER_TAG_VISIBLE_STRING = 26 as uint<5>,
+ BER_TAG_GENERAL_STRING = 27 as uint<5>,
+ BER_TAG_UNIVERSAL_STRING = 28 as uint<5>,
+ BER_TAG_CHARACTER_STRING = 29 as uint<5>,
+ BER_TAG_BMP_STRING = 30 as uint<5>;
var ber_tag_name = [
"RESERVED", "boolean", "integer", "bit string", "octet string",
diff --git a/pickles/bmp.pk b/pickles/bmp.pk
index 5d940a8c..3945b8ca 100644
--- a/pickles/bmp.pk
+++ b/pickles/bmp.pk
@@ -24,7 +24,7 @@ var BI_RGB = 0, /* No compression. */
/* The size of the info header depends on the type of BMP file. */
-var IHS_BMP_V2 = 12#B, IHS_BMP_V3 = 40#B;
+var IHS_BMP_V2 = 12U#B, IHS_BMP_V3 = 40U#B;
type BMP_Header =
struct
diff --git a/pickles/bpf.pk b/pickles/bpf.pk
index 4b92d617..d8f6874e 100644
--- a/pickles/bpf.pk
+++ b/pickles/bpf.pk
@@ -23,13 +23,13 @@
type BPF_Insn_Class = uint<3>;
-var BPF_INSN_CLASS_LD = 0b000,
- BPF_INSN_CLASS_LDX = 0b001,
- BPF_INSN_CLASS_ST = 0b010,
- BPF_INSN_CLASS_STX = 0b011,
- BPF_INSN_CLASS_ALU = 0b100,
- BPF_INSN_CLASS_JMP = 0b101,
- BPF_INSN_CLASS_ALU64 = 0b111;
+var BPF_INSN_CLASS_LD = 0b000 as uint<3>,
+ BPF_INSN_CLASS_LDX = 0b001 as uint<3>,
+ BPF_INSN_CLASS_ST = 0b010 as uint<3>,
+ BPF_INSN_CLASS_STX = 0b011 as uint<3>,
+ BPF_INSN_CLASS_ALU = 0b100 as uint<3>,
+ BPF_INSN_CLASS_JMP = 0b101 as uint<3>,
+ BPF_INSN_CLASS_ALU64 = 0b111 as uint<3>;
fun bpf_class_is_alujmp = (uint<3> class) int:
{
diff --git a/pickles/coff-i386.pk b/pickles/coff-i386.pk
index db5243ac..75122ac2 100644
--- a/pickles/coff-i386.pk
+++ b/pickles/coff-i386.pk
@@ -42,16 +42,16 @@ coff_magic_numbers
/* i386 COFF relocations. */
-var COFF_I386_R_DIR32 = 6,
- COFF_I386_R_IMAGEBASE = 7,
- COFF_I386_R_SECTION = 10,
- COFF_I386_R_SECREL32 = 11,
- COFF_I386_R_RELBYTE = 15,
- COFF_I386_R_RELWORD = 16,
- COFF_I386_R_RELLONG = 17,
- COFF_I386_R_PCRBYTE = 18,
- COFF_I386_R_PCRWORD = 19,
- COFF_I386_R_PCRLONG = 20;
+var COFF_I386_R_DIR32 = 6UH,
+ COFF_I386_R_IMAGEBASE = 7UH,
+ COFF_I386_R_SECTION = 10UH,
+ COFF_I386_R_SECREL32 = 11UH,
+ COFF_I386_R_RELBYTE = 15UH,
+ COFF_I386_R_RELWORD = 16UH,
+ COFF_I386_R_RELLONG = 17UH,
+ COFF_I386_R_PCRBYTE = 18UH,
+ COFF_I386_R_PCRWORD = 19UH,
+ COFF_I386_R_PCRLONG = 20UH;
var coff_i386_relocs =
[ COFF_I386_R_DIR32, COFF_I386_R_IMAGEBASE,
diff --git a/pickles/ctf.pk b/pickles/ctf.pk
index 683a65cc..45f01c1f 100644
--- a/pickles/ctf.pk
+++ b/pickles/ctf.pk
@@ -48,21 +48,21 @@ var CTF_K_UNKNOWN = 0U,
var CTF_STRTAB_0 = 0; /* Name is in the in-CTF string table. */
var CTF_STRTAB_1 = 1; /* Name is in an ELF strtab. */
-var CTF_KIND_UNKNOWN = 0,
- CTF_KIND_INTEGER = 1,
- CTF_KIND_FLOAT = 2,
- CTF_KIND_POINTER = 3,
- CTF_KIND_ARRAY = 4,
- CTF_KIND_FUNCTION = 5,
- CTF_KIND_STRUCT = 6,
- CTF_KIND_UNION = 7,
- CTF_KIND_ENUM = 8,
- CTF_KIND_FORWARD = 9,
- CTF_KIND_TYPEDEF = 10,
- CTF_KIND_VOLATILE = 11,
- CTF_KIND_CONST = 12,
- CTF_KIND_RESTRICT = 13,
- CTF_KIND_SLICE = 14;
+var CTF_KIND_UNKNOWN = 0 as uint<6>,
+ CTF_KIND_INTEGER = 1 as uint<6>,
+ CTF_KIND_FLOAT = 2 as uint<6>,
+ CTF_KIND_POINTER = 3 as uint<6>,
+ CTF_KIND_ARRAY = 4 as uint<6>,
+ CTF_KIND_FUNCTION = 5 as uint<6>,
+ CTF_KIND_STRUCT = 6 as uint<6>,
+ CTF_KIND_UNION = 7 as uint<6>,
+ CTF_KIND_ENUM = 8 as uint<6>,
+ CTF_KIND_FORWARD = 9 as uint<6>,
+ CTF_KIND_TYPEDEF = 10 as uint<6>,
+ CTF_KIND_VOLATILE = 11 as uint<6>,
+ CTF_KIND_CONST = 12 as uint<6>,
+ CTF_KIND_RESTRICT = 13 as uint<6>,
+ CTF_KIND_SLICE = 14 as uint<6>;
var ctf_kind_str =
["unknown", "integer", "float", "pointer", "array",
diff --git a/pickles/dwarf-expr.pk b/pickles/dwarf-expr.pk
index d3627092..79baa95b 100644
--- a/pickles/dwarf-expr.pk
+++ b/pickles/dwarf-expr.pk
@@ -21,190 +21,190 @@ load leb128;
/* Opcodes. */
-var DW_OP_FIRST = 0x03,
- DW_OP_addr = 0x03,
- DW_OP_deref = 0x06,
- DW_OP_const1u = 0x08,
- DW_OP_const1s = 0x09,
- DW_OP_const2u = 0x0a,
- DW_OP_const2s = 0x0b,
- DW_OP_const4u = 0x0c,
- DW_OP_const4s = 0x0d,
- DW_OP_const8u = 0x0e,
- DW_OP_const8s = 0x0f,
- DW_OP_constu = 0x10,
- DW_OP_consts = 0x11,
- DW_OP_dup = 0x12,
- DW_OP_drop = 0x13,
- DW_OP_over = 0x14,
- DW_OP_pick = 0x15,
- DW_OP_swap = 0x16,
- DW_OP_rot = 0x17,
- DW_OP_xderef = 0x18,
- DW_OP_abs = 0x19,
- DW_OP_and = 0x1a,
- DW_OP_div = 0x1b,
- DW_OP_minus = 0x1c,
- DW_OP_mod = 0x1d,
- DW_OP_mul = 0x1e,
- DW_OP_neg = 0x1f,
- DW_OP_not = 0x20,
- DW_OP_or = 0x21,
- DW_OP_plus = 0x22,
- DW_OP_plus_uconst = 0x23,
- DW_OP_shl = 0x24,
- DW_OP_shr = 0x25,
- DW_OP_shra = 0x26,
- DW_OP_xor = 0x27,
- DW_OP_bra = 0x28,
- DW_OP_eq = 0x29,
- DW_OP_ge = 0x2a,
- DW_OP_gt = 0x2b,
- DW_OP_le = 0x2c,
- DW_OP_lt = 0x2d,
- DW_OP_ne = 0x2e,
- DW_OP_skip = 0x2f,
- DW_OP_lit0 = 0x30,
- DW_OP_lit1 = 0x31,
- DW_OP_lit2 = 0x32,
- DW_OP_lit3 = 0x33,
- DW_OP_lit4 = 0x34,
- DW_OP_lit5 = 0x35,
- DW_OP_lit6 = 0x36,
- DW_OP_lit7 = 0x37,
- DW_OP_lit8 = 0x38,
- DW_OP_lit9 = 0x39,
- DW_OP_lit10 = 0x3a,
- DW_OP_lit11 = 0x3b,
- DW_OP_lit12 = 0x3c,
- DW_OP_lit13 = 0x3d,
- DW_OP_lit14 = 0x3e,
- DW_OP_lit15 = 0x3f,
- DW_OP_lit16 = 0x40,
- DW_OP_lit17 = 0x41,
- DW_OP_lit18 = 0x42,
- DW_OP_lit19 = 0x43,
- DW_OP_lit20 = 0x44,
- DW_OP_lit21 = 0x45,
- DW_OP_lit22 = 0x46,
- DW_OP_lit23 = 0x47,
- DW_OP_lit24 = 0x48,
- DW_OP_lit25 = 0x49,
- DW_OP_lit26 = 0x4a,
- DW_OP_lit27 = 0x4b,
- DW_OP_lit28 = 0x4c,
- DW_OP_lit29 = 0x4d,
- DW_OP_lit30 = 0x4e,
- DW_OP_lit31 = 0x4f,
- DW_OP_reg0 = 0x50,
- DW_OP_reg1 = 0x51,
- DW_OP_reg2 = 0x52,
- DW_OP_reg3 = 0x53,
- DW_OP_reg4 = 0x54,
- DW_OP_reg5 = 0x55,
- DW_OP_reg6 = 0x56,
- DW_OP_reg7 = 0x57,
- DW_OP_reg8 = 0x58,
- DW_OP_reg9 = 0x59,
- DW_OP_reg10 = 0x5a,
- DW_OP_reg11 = 0x5b,
- DW_OP_reg12 = 0x5c,
- DW_OP_reg13 = 0x5d,
- DW_OP_reg14 = 0x5e,
- DW_OP_reg15 = 0x5f,
- DW_OP_reg16 = 0x60,
- DW_OP_reg17 = 0x61,
- DW_OP_reg18 = 0x62,
- DW_OP_reg19 = 0x63,
- DW_OP_reg20 = 0x64,
- DW_OP_reg21 = 0x65,
- DW_OP_reg22 = 0x66,
- DW_OP_reg23 = 0x67,
- DW_OP_reg24 = 0x68,
- DW_OP_reg25 = 0x69,
- DW_OP_reg26 = 0x6a,
- DW_OP_reg27 = 0x6b,
- DW_OP_reg28 = 0x6c,
- DW_OP_reg29 = 0x6d,
- DW_OP_reg30 = 0x6e,
- DW_OP_reg31 = 0x6f,
- DW_OP_breg0 = 0x70,
- DW_OP_breg1 = 0x71,
- DW_OP_breg2 = 0x72,
- DW_OP_breg3 = 0x73,
- DW_OP_breg4 = 0x74,
- DW_OP_breg5 = 0x75,
- DW_OP_breg6 = 0x76,
- DW_OP_breg7 = 0x77,
- DW_OP_breg8 = 0x78,
- DW_OP_breg9 = 0x79,
- DW_OP_breg10 = 0x7a,
- DW_OP_breg11 = 0x7b,
- DW_OP_breg12 = 0x7c,
- DW_OP_breg13 = 0x7d,
- DW_OP_breg14 = 0x7e,
- DW_OP_breg15 = 0x7f,
- DW_OP_breg16 = 0x80,
- DW_OP_breg17 = 0x81,
- DW_OP_breg18 = 0x82,
- DW_OP_breg19 = 0x83,
- DW_OP_breg20 = 0x84,
- DW_OP_breg21 = 0x85,
- DW_OP_breg22 = 0x86,
- DW_OP_breg23 = 0x87,
- DW_OP_breg24 = 0x88,
- DW_OP_breg25 = 0x89,
- DW_OP_breg26 = 0x8a,
- DW_OP_breg27 = 0x8b,
- DW_OP_breg28 = 0x8c,
- DW_OP_breg29 = 0x8d,
- DW_OP_breg30 = 0x8e,
- DW_OP_breg31 = 0x8f,
- DW_OP_regx = 0x90,
- DW_OP_fbreg = 0x91,
- DW_OP_bregx = 0x92,
- DW_OP_piece = 0x93,
- DW_OP_deref_size = 0x94,
- DW_OP_xderef_size = 0x95,
- DW_OP_nop = 0x96,
- DW_OP_push_object_address = 0x97,
- DW_OP_call2 = 0x98,
- DW_OP_call4 = 0x99,
- DW_OP_call_ref = 0x9a,
- DW_OP_form_tls_address = 0x9b,
- DW_OP_call_frame_cfa = 0x9c,
- DW_OP_bit_piece = 0x9d,
- DW_OP_implicit_value = 0x9e,
- DW_OP_stack_value = 0x9f,
- DW_OP_implicit_pointer = 0xa0,
- DW_OP_addrx = 0xa1,
- DW_OP_constx = 0xa2,
- DW_OP_entry_value = 0xa3,
- DW_OP_const_type = 0xa4,
- DW_OP_regval_type = 0xa5,
- DW_OP_deref_type = 0xa6,
- DW_OP_xderef_type = 0xa7,
- DW_OP_convert = 0xa8,
- DW_OP_reinterpret = 0xa9,
+var DW_OP_FIRST = 0x03 as uint<8>,
+ DW_OP_addr = 0x03 as uint<8>,
+ DW_OP_deref = 0x06 as uint<8>,
+ DW_OP_const1u = 0x08 as uint<8>,
+ DW_OP_const1s = 0x09 as uint<8>,
+ DW_OP_const2u = 0x0a as uint<8>,
+ DW_OP_const2s = 0x0b as uint<8>,
+ DW_OP_const4u = 0x0c as uint<8>,
+ DW_OP_const4s = 0x0d as uint<8>,
+ DW_OP_const8u = 0x0e as uint<8>,
+ DW_OP_const8s = 0x0f as uint<8>,
+ DW_OP_constu = 0x10 as uint<8>,
+ DW_OP_consts = 0x11 as uint<8>,
+ DW_OP_dup = 0x12 as uint<8>,
+ DW_OP_drop = 0x13 as uint<8>,
+ DW_OP_over = 0x14 as uint<8>,
+ DW_OP_pick = 0x15 as uint<8>,
+ DW_OP_swap = 0x16 as uint<8>,
+ DW_OP_rot = 0x17 as uint<8>,
+ DW_OP_xderef = 0x18 as uint<8>,
+ DW_OP_abs = 0x19 as uint<8>,
+ DW_OP_and = 0x1a as uint<8>,
+ DW_OP_div = 0x1b as uint<8>,
+ DW_OP_minus = 0x1c as uint<8>,
+ DW_OP_mod = 0x1d as uint<8>,
+ DW_OP_mul = 0x1e as uint<8>,
+ DW_OP_neg = 0x1f as uint<8>,
+ DW_OP_not = 0x20 as uint<8>,
+ DW_OP_or = 0x21 as uint<8>,
+ DW_OP_plus = 0x22 as uint<8>,
+ DW_OP_plus_uconst = 0x23 as uint<8>,
+ DW_OP_shl = 0x24 as uint<8>,
+ DW_OP_shr = 0x25 as uint<8>,
+ DW_OP_shra = 0x26 as uint<8>,
+ DW_OP_xor = 0x27 as uint<8>,
+ DW_OP_bra = 0x28 as uint<8>,
+ DW_OP_eq = 0x29 as uint<8>,
+ DW_OP_ge = 0x2a as uint<8>,
+ DW_OP_gt = 0x2b as uint<8>,
+ DW_OP_le = 0x2c as uint<8>,
+ DW_OP_lt = 0x2d as uint<8>,
+ DW_OP_ne = 0x2e as uint<8>,
+ DW_OP_skip = 0x2f as uint<8>,
+ DW_OP_lit0 = 0x30 as uint<8>,
+ DW_OP_lit1 = 0x31 as uint<8>,
+ DW_OP_lit2 = 0x32 as uint<8>,
+ DW_OP_lit3 = 0x33 as uint<8>,
+ DW_OP_lit4 = 0x34 as uint<8>,
+ DW_OP_lit5 = 0x35 as uint<8>,
+ DW_OP_lit6 = 0x36 as uint<8>,
+ DW_OP_lit7 = 0x37 as uint<8>,
+ DW_OP_lit8 = 0x38 as uint<8>,
+ DW_OP_lit9 = 0x39 as uint<8>,
+ DW_OP_lit10 = 0x3a as uint<8>,
+ DW_OP_lit11 = 0x3b as uint<8>,
+ DW_OP_lit12 = 0x3c as uint<8>,
+ DW_OP_lit13 = 0x3d as uint<8>,
+ DW_OP_lit14 = 0x3e as uint<8>,
+ DW_OP_lit15 = 0x3f as uint<8>,
+ DW_OP_lit16 = 0x40 as uint<8>,
+ DW_OP_lit17 = 0x41 as uint<8>,
+ DW_OP_lit18 = 0x42 as uint<8>,
+ DW_OP_lit19 = 0x43 as uint<8>,
+ DW_OP_lit20 = 0x44 as uint<8>,
+ DW_OP_lit21 = 0x45 as uint<8>,
+ DW_OP_lit22 = 0x46 as uint<8>,
+ DW_OP_lit23 = 0x47 as uint<8>,
+ DW_OP_lit24 = 0x48 as uint<8>,
+ DW_OP_lit25 = 0x49 as uint<8>,
+ DW_OP_lit26 = 0x4a as uint<8>,
+ DW_OP_lit27 = 0x4b as uint<8>,
+ DW_OP_lit28 = 0x4c as uint<8>,
+ DW_OP_lit29 = 0x4d as uint<8>,
+ DW_OP_lit30 = 0x4e as uint<8>,
+ DW_OP_lit31 = 0x4f as uint<8>,
+ DW_OP_reg0 = 0x50 as uint<8>,
+ DW_OP_reg1 = 0x51 as uint<8>,
+ DW_OP_reg2 = 0x52 as uint<8>,
+ DW_OP_reg3 = 0x53 as uint<8>,
+ DW_OP_reg4 = 0x54 as uint<8>,
+ DW_OP_reg5 = 0x55 as uint<8>,
+ DW_OP_reg6 = 0x56 as uint<8>,
+ DW_OP_reg7 = 0x57 as uint<8>,
+ DW_OP_reg8 = 0x58 as uint<8>,
+ DW_OP_reg9 = 0x59 as uint<8>,
+ DW_OP_reg10 = 0x5a as uint<8>,
+ DW_OP_reg11 = 0x5b as uint<8>,
+ DW_OP_reg12 = 0x5c as uint<8>,
+ DW_OP_reg13 = 0x5d as uint<8>,
+ DW_OP_reg14 = 0x5e as uint<8>,
+ DW_OP_reg15 = 0x5f as uint<8>,
+ DW_OP_reg16 = 0x60 as uint<8>,
+ DW_OP_reg17 = 0x61 as uint<8>,
+ DW_OP_reg18 = 0x62 as uint<8>,
+ DW_OP_reg19 = 0x63 as uint<8>,
+ DW_OP_reg20 = 0x64 as uint<8>,
+ DW_OP_reg21 = 0x65 as uint<8>,
+ DW_OP_reg22 = 0x66 as uint<8>,
+ DW_OP_reg23 = 0x67 as uint<8>,
+ DW_OP_reg24 = 0x68 as uint<8>,
+ DW_OP_reg25 = 0x69 as uint<8>,
+ DW_OP_reg26 = 0x6a as uint<8>,
+ DW_OP_reg27 = 0x6b as uint<8>,
+ DW_OP_reg28 = 0x6c as uint<8>,
+ DW_OP_reg29 = 0x6d as uint<8>,
+ DW_OP_reg30 = 0x6e as uint<8>,
+ DW_OP_reg31 = 0x6f as uint<8>,
+ DW_OP_breg0 = 0x70 as uint<8>,
+ DW_OP_breg1 = 0x71 as uint<8>,
+ DW_OP_breg2 = 0x72 as uint<8>,
+ DW_OP_breg3 = 0x73 as uint<8>,
+ DW_OP_breg4 = 0x74 as uint<8>,
+ DW_OP_breg5 = 0x75 as uint<8>,
+ DW_OP_breg6 = 0x76 as uint<8>,
+ DW_OP_breg7 = 0x77 as uint<8>,
+ DW_OP_breg8 = 0x78 as uint<8>,
+ DW_OP_breg9 = 0x79 as uint<8>,
+ DW_OP_breg10 = 0x7a as uint<8>,
+ DW_OP_breg11 = 0x7b as uint<8>,
+ DW_OP_breg12 = 0x7c as uint<8>,
+ DW_OP_breg13 = 0x7d as uint<8>,
+ DW_OP_breg14 = 0x7e as uint<8>,
+ DW_OP_breg15 = 0x7f as uint<8>,
+ DW_OP_breg16 = 0x80 as uint<8>,
+ DW_OP_breg17 = 0x81 as uint<8>,
+ DW_OP_breg18 = 0x82 as uint<8>,
+ DW_OP_breg19 = 0x83 as uint<8>,
+ DW_OP_breg20 = 0x84 as uint<8>,
+ DW_OP_breg21 = 0x85 as uint<8>,
+ DW_OP_breg22 = 0x86 as uint<8>,
+ DW_OP_breg23 = 0x87 as uint<8>,
+ DW_OP_breg24 = 0x88 as uint<8>,
+ DW_OP_breg25 = 0x89 as uint<8>,
+ DW_OP_breg26 = 0x8a as uint<8>,
+ DW_OP_breg27 = 0x8b as uint<8>,
+ DW_OP_breg28 = 0x8c as uint<8>,
+ DW_OP_breg29 = 0x8d as uint<8>,
+ DW_OP_breg30 = 0x8e as uint<8>,
+ DW_OP_breg31 = 0x8f as uint<8>,
+ DW_OP_regx = 0x90 as uint<8>,
+ DW_OP_fbreg = 0x91 as uint<8>,
+ DW_OP_bregx = 0x92 as uint<8>,
+ DW_OP_piece = 0x93 as uint<8>,
+ DW_OP_deref_size = 0x94 as uint<8>,
+ DW_OP_xderef_size = 0x95 as uint<8>,
+ DW_OP_nop = 0x96 as uint<8>,
+ DW_OP_push_object_address = 0x97 as uint<8>,
+ DW_OP_call2 = 0x98 as uint<8>,
+ DW_OP_call4 = 0x99 as uint<8>,
+ DW_OP_call_ref = 0x9a as uint<8>,
+ DW_OP_form_tls_address = 0x9b as uint<8>,
+ DW_OP_call_frame_cfa = 0x9c as uint<8>,
+ DW_OP_bit_piece = 0x9d as uint<8>,
+ DW_OP_implicit_value = 0x9e as uint<8>,
+ DW_OP_stack_value = 0x9f as uint<8>,
+ DW_OP_implicit_pointer = 0xa0 as uint<8>,
+ DW_OP_addrx = 0xa1 as uint<8>,
+ DW_OP_constx = 0xa2 as uint<8>,
+ DW_OP_entry_value = 0xa3 as uint<8>,
+ DW_OP_const_type = 0xa4 as uint<8>,
+ DW_OP_regval_type = 0xa5 as uint<8>,
+ DW_OP_deref_type = 0xa6 as uint<8>,
+ DW_OP_xderef_type = 0xa7 as uint<8>,
+ DW_OP_convert = 0xa8 as uint<8>,
+ DW_OP_reinterpret = 0xa9 as uint<8>,
/* GNU extensions. */
- DW_OP_GNU_push_tls_address = 0xe0,
- DW_OP_GNU_uninit = 0xf0,
- DW_OP_GNU_encoded_addr = 0xf1,
- DW_OP_GNU_implicit_pointer = 0xf2,
- DW_OP_GNU_entry_value = 0xf3,
- DW_OP_GNU_const_type = 0xf4,
- DW_OP_GNU_regval_type = 0xf5,
- DW_OP_GNU_deref_type = 0xf6,
- DW_OP_GNU_convert = 0xf7,
- DW_OP_GNU_reinterpret = 0xf9,
- DW_OP_GNU_parameter_ref = 0xfa,
+ DW_OP_GNU_push_tls_address = 0xe0 as uint<8>,
+ DW_OP_GNU_uninit = 0xf0 as uint<8>,
+ DW_OP_GNU_encoded_addr = 0xf1 as uint<8>,
+ DW_OP_GNU_implicit_pointer = 0xf2 as uint<8>,
+ DW_OP_GNU_entry_value = 0xf3 as uint<8>,
+ DW_OP_GNU_const_type = 0xf4 as uint<8>,
+ DW_OP_GNU_regval_type = 0xf5 as uint<8>,
+ DW_OP_GNU_deref_type = 0xf6 as uint<8>,
+ DW_OP_GNU_convert = 0xf7 as uint<8>,
+ DW_OP_GNU_reinterpret = 0xf9 as uint<8>,
+ DW_OP_GNU_parameter_ref = 0xfa as uint<8>,
/* GNU Debug Fission extensions. */
- DW_OP_GNU_addr_index = 0xfb,
- DW_OP_GNU_const_index = 0xfc,
- DW_OP_GNU_variable_value = 0xfd,
- DW_OP_lo_user = 0xe0,
- DW_OP_hi_user = 0xff,
- DW_OP_LAST = DW_OP_hi_user;
+ DW_OP_GNU_addr_index = 0xfb as uint<8>,
+ DW_OP_GNU_const_index = 0xfc as uint<8>,
+ DW_OP_GNU_variable_value = 0xfd as uint<8>,
+ DW_OP_lo_user = 0xe0 as uint<8>,
+ DW_OP_hi_user = 0xff as uint<8>,
+ DW_OP_LAST = DW_OP_hi_user;
/* Each DWARF operation contains a 1-byte opcode that identifies the
operation; followed by a variable number of arguments. */
diff --git a/pickles/dwarf-frame.pk b/pickles/dwarf-frame.pk
index e429c5a0..41618f3f 100644
--- a/pickles/dwarf-frame.pk
+++ b/pickles/dwarf-frame.pk
@@ -23,39 +23,39 @@ load "dwarf-expr.pk"; /* For Dwarf_Op */
/* Call Frame Instructions. */
-var DW_CFA_advance_loc = 0x40,
- DW_CFA_offset = 0x80,
- DW_CFA_restore = 0xc0,
- DW_CFA_extended = 0,
- DW_CFA_nop = 0x00,
- DW_CFA_set_loc = 0x01,
- DW_CFA_advance_loc1 = 0x02,
- DW_CFA_advance_loc2 = 0x03,
- DW_CFA_advance_loc4 = 0x04,
- DW_CFA_offset_extended = 0x05,
- DW_CFA_restore_extended = 0x06,
- DW_CFA_undefined = 0x07,
- DW_CFA_same_value = 0x08,
- DW_CFA_register = 0x09,
- DW_CFA_remember_state = 0x0a,
- DW_CFA_restore_state = 0x0b,
- DW_CFA_def_cfa = 0x0c,
- DW_CFA_def_cfa_register = 0x0d,
- DW_CFA_def_cfa_offset = 0x0e,
- DW_CFA_def_cfa_expression = 0x0f,
- DW_CFA_expression = 0x10,
- DW_CFA_offset_extended_sf = 0x11,
- DW_CFA_def_cfa_sf = 0x12,
- DW_CFA_def_cfa_offset_sf = 0x13,
- DW_CFA_val_offset = 0x14,
- DW_CFA_val_offset_sf = 0x15,
- DW_CFA_val_expression = 0x16,
- DW_CFA_low_user = 0x1c,
- DW_CFA_MIPS_advance_loc8 = 0x1d,
- DW_CFA_GNU_window_save = 0x2d,
- DW_CFA_GNU_args_size = 0x2e,
- DW_CFA_GNU_negative_offset_extended = 0x2f,
- DW_CFA_high_user = 0x3f;
+var DW_CFA_advance_loc = 0x40 as uint<6>,
+ DW_CFA_offset = 0x80 as uint<6>,
+ DW_CFA_restore = 0xc0 as uint<6>,
+ DW_CFA_extended = 0x00 as uint<6>,
+ DW_CFA_nop = 0x00 as uint<6>,
+ DW_CFA_set_loc = 0x01 as uint<6>,
+ DW_CFA_advance_loc1 = 0x02 as uint<6>,
+ DW_CFA_advance_loc2 = 0x03 as uint<6>,
+ DW_CFA_advance_loc4 = 0x04 as uint<6>,
+ DW_CFA_offset_extended = 0x05 as uint<6>,
+ DW_CFA_restore_extended = 0x06 as uint<6>,
+ DW_CFA_undefined = 0x07 as uint<6>,
+ DW_CFA_same_value = 0x08 as uint<6>,
+ DW_CFA_register = 0x09 as uint<6>,
+ DW_CFA_remember_state = 0x0a as uint<6>,
+ DW_CFA_restore_state = 0x0b as uint<6>,
+ DW_CFA_def_cfa = 0x0c as uint<6>,
+ DW_CFA_def_cfa_register = 0x0d as uint<6>,
+ DW_CFA_def_cfa_offset = 0x0e as uint<6>,
+ DW_CFA_def_cfa_expression = 0x0f as uint<6>,
+ DW_CFA_expression = 0x10 as uint<6>,
+ DW_CFA_offset_extended_sf = 0x11 as uint<6>,
+ DW_CFA_def_cfa_sf = 0x12 as uint<6>,
+ DW_CFA_def_cfa_offset_sf = 0x13 as uint<6>,
+ DW_CFA_val_offset = 0x14 as uint<6>,
+ DW_CFA_val_offset_sf = 0x15 as uint<6>,
+ DW_CFA_val_expression = 0x16 as uint<6>,
+ DW_CFA_low_user = 0x1c as uint<6>,
+ DW_CFA_MIPS_advance_loc8 = 0x1d as uint<6>,
+ DW_CFA_GNU_window_save = 0x2d as uint<6>,
+ DW_CFA_GNU_args_size = 0x2e as uint<6>,
+ DW_CFA_GNU_negative_offset_extended = 0x2f as uint<6>,
+ DW_CFA_high_user = 0x3f as uint<6>;
type Dwarf_CFI =
struct
diff --git a/pickles/dwarf-info.pk b/pickles/dwarf-info.pk
index 3b6899a3..4cb0d039 100644
--- a/pickles/dwarf-info.pk
+++ b/pickles/dwarf-info.pk
@@ -374,7 +374,7 @@ type Dwarf_CU_Header =
Dwarf_Initial_Length unit_length;
/* Version of the DWARF information for the compilation unit. */
- uint<16> version : (version in [2, 3, 4, 5]
+ uint<16> version : (version in [2UH, 3UH, 4UH, 5UH]
&& dwarf_set_version (version));
/* Offset into the .debug_abbrev section that associates the
diff --git a/pickles/elf-64.pk b/pickles/elf-64.pk
index 0f0bfadf..bf534f23 100644
--- a/pickles/elf-64.pk
+++ b/pickles/elf-64.pk
@@ -107,9 +107,9 @@ type Elf64_Dyn =
data: even entries use d_ptr while odd entries use d_val. */
Elf64_Addr d_ptr
- : (d_tag in [DT_PLTGOT, DT_HASH, DT_STRTAB, DT_SYMTAB, DT_RELA,
- DT_SYMENT, DT_INIT, DT_FINI, DT_REL, DT_JMPREL,
- DT_INIT_ARRAY, DT_FINI_ARRAY]
+ : (d_tag as int<32> in [DT_PLTGOT, DT_HASH, DT_STRTAB, DT_SYMTAB,
+ DT_RELA, DT_SYMENT, DT_INIT, DT_FINI, DT_REL,
+ DT_JMPREL, DT_INIT_ARRAY, DT_FINI_ARRAY]
|| (d_tag >= DT_ENCODING && d_tag %2 != 0));
Elf64_Xword d_val;
diff --git a/pickles/jffs2.pk b/pickles/jffs2.pk
index 76df020c..891f6bf3 100644
--- a/pickles/jffs2.pk
+++ b/pickles/jffs2.pk
@@ -24,8 +24,8 @@
* Note: This was tested with file systems created by mkfs.jffs2 and sumtool
*/
-var JFFS2_MAGIC = 0x1985;
-var JFFS2_MAGIC_OLD = 0x1984;
+var JFFS2_MAGIC = 0x1985UH;
+var JFFS2_MAGIC_OLD = 0x1984UH;
var JFFS2_NODE_ACCURATE = 0x2000;
@@ -61,14 +61,14 @@ var jffs2_nodetypes = [
];
// inode compression types
-var JFFS2_COMPR_NONE = 0x00;
-var JFFS2_COMPR_ZERO = 0x01;
-var JFFS2_COMPR_RTIME = 0x02;
-var JFFS2_COMPR_RUBINMIPS = 0x03;
-var JFFS2_COMPR_COPY = 0x04;
-var JFFS2_COMPR_DYNRUBIN = 0x05;
-var JFFS2_COMPR_ZLIB = 0x06;
-var JFFS2_COMPR_LZO = 0x07;
+var JFFS2_COMPR_NONE = 0x00UB;
+var JFFS2_COMPR_ZERO = 0x01UB;
+var JFFS2_COMPR_RTIME = 0x02UB;
+var JFFS2_COMPR_RUBINMIPS = 0x03UB;
+var JFFS2_COMPR_COPY = 0x04UB;
+var JFFS2_COMPR_DYNRUBIN = 0x05UB;
+var JFFS2_COMPR_ZLIB = 0x06UB;
+var JFFS2_COMPR_LZO = 0x07UB;
var jffs2_inode_comp_types = [
JFFS2_COMPR_NONE,
@@ -84,15 +84,15 @@ var jffs2_inode_comp_types = [
// dirent types
// These are the same as the linux dirent values and could
// probably be moved to a dirent pickle someday
-var JFFS2_DT_UNKNOWN = 0x0;
-var JFFS2_DT_FIFO = 0x1;
-var JFFS2_DT_CHR = 0x2;
-var JFFS2_DT_DIR = 0x4;
-var JFFS2_DT_BLK = 0x6;
-var JFFS2_DT_REG = 0x8;
-var JFFS2_DT_LNK = 0xa;
-var JFFS2_DT_SOCK = 0xc;
-var JFFS2_DT_WHT = 0xe;
+var JFFS2_DT_UNKNOWN = 0x0UB;
+var JFFS2_DT_FIFO = 0x1UB;
+var JFFS2_DT_CHR = 0x2UB;
+var JFFS2_DT_DIR = 0x4UB;
+var JFFS2_DT_BLK = 0x6UB;
+var JFFS2_DT_REG = 0x8UB;
+var JFFS2_DT_LNK = 0xaUB;
+var JFFS2_DT_SOCK = 0xcUB;
+var JFFS2_DT_WHT = 0xeUB;
var jffs2_dirent_types = [
JFFS2_DT_UNKNOWN,
diff --git a/pickles/pe.pk b/pickles/pe.pk
index ad9fef55..e4e41253 100644
--- a/pickles/pe.pk
+++ b/pickles/pe.pk
@@ -176,17 +176,17 @@ var PE_IMAGE_FILE_MACHINE_UNKNOWN = 0x0000UH,
/* Subsystem types. */
-var PE_SUBSYS_UNKNOWN = 0,
- PE_SUBSYS_NATIVE = 1,
- PE_SUBSYS_WINDOWS_GUI = 2,
- PE_SUBSYS_WINDOWS_CUI = 3,
- PE_SUBSYS_POSIX_CUI = 7,
- PE_SUBSYS_WINDOWS_CE_GUI = 9,
- PE_SUBSYS_EFI_APPLICATION = 10,
- PE_SUBSYS_EFI_BOOT_SERVICE_DRIVER = 11,
- PE_SUBSYS_EFI_RUNTIME_DRIVER = 12,
- PE_SUBSYS_SAL_RUNTIME_DRIVER = 13,
- PE_SUBSYS_XBOX = 14;
+var PE_SUBSYS_UNKNOWN = 0UH,
+ PE_SUBSYS_NATIVE = 1UH,
+ PE_SUBSYS_WINDOWS_GUI = 2UH,
+ PE_SUBSYS_WINDOWS_CUI = 3UH,
+ PE_SUBSYS_POSIX_CUI = 7UH,
+ PE_SUBSYS_WINDOWS_CE_GUI = 9UH,
+ PE_SUBSYS_EFI_APPLICATION = 10UH,
+ PE_SUBSYS_EFI_BOOT_SERVICE_DRIVER = 11UH,
+ PE_SUBSYS_EFI_RUNTIME_DRIVER = 12UH,
+ PE_SUBSYS_SAL_RUNTIME_DRIVER = 13UH,
+ PE_SUBSYS_XBOX = 14UH;
var pe_subsystems =
[ PE_SUBSYS_UNKNOWN, PE_SUBSYS_NATIVE, PE_SUBSYS_WINDOWS_GUI,
@@ -547,20 +547,20 @@ type PE_Delay_Import =
Each entry in the debug directory describes a form of debug
information present in the PE file. */
-var PE_DEBUG_TYPE_UNKNOWN = 0,
- PE_DEBUG_TYPE_COFF = 1,
- PE_DEBUG_TYPE_CODEVIEW = 2,
- PE_DEBUG_TYPE_FPO = 3,
- PE_DEBUG_TYPE_MISC = 4,
- PE_DEBUG_TYPE_EXCEPTION = 5,
- PE_DEBUG_TYPE_FIXUP = 6,
- PE_DEBUG_TYPE_OMAP_TO_SRC = 7,
- PE_DEBUG_TYPE_OMAP_FROM_SRC = 8,
- PE_DEBUG_TYPE_BORLAND = 9,
- PE_DEBUG_TYPE_RESERVED10 = 10,
- PE_DEBUG_TYPE_CLSID = 11,
- PE_DEBUG_TYPE_REPRO = 16,
- PE_DEBUG_TYPE_EX_DLLCHARACTERISTICS = 20;
+var PE_DEBUG_TYPE_UNKNOWN = 0U,
+ PE_DEBUG_TYPE_COFF = 1U,
+ PE_DEBUG_TYPE_CODEVIEW = 2U,
+ PE_DEBUG_TYPE_FPO = 3U,
+ PE_DEBUG_TYPE_MISC = 4U,
+ PE_DEBUG_TYPE_EXCEPTION = 5U,
+ PE_DEBUG_TYPE_FIXUP = 6U,
+ PE_DEBUG_TYPE_OMAP_TO_SRC = 7U,
+ PE_DEBUG_TYPE_OMAP_FROM_SRC = 8U,
+ PE_DEBUG_TYPE_BORLAND = 9U,
+ PE_DEBUG_TYPE_RESERVED10 = 10U,
+ PE_DEBUG_TYPE_CLSID = 11U,
+ PE_DEBUG_TYPE_REPRO = 16U,
+ PE_DEBUG_TYPE_EX_DLLCHARACTERISTICS = 20U;
type PE_Debug_Directory_Entry =
struct
@@ -842,13 +842,19 @@ type PE_TLS_Directory =
{
uint<9>;
uint<4> alignment_info
- : alignment_info in [ PE_SEC_F_ALIGN_1BYTES, PE_SEC_F_ALIGN_2BYTES,
- PE_SEC_F_ALIGN_4BYTES, PE_SEC_F_ALIGN_8BYTES,
- PE_SEC_F_ALIGN_16BYTES, PE_SEC_F_ALIGN_32BYTES,
- PE_SEC_F_ALIGN_64BYTES, PE_SEC_F_ALIGN_128BYTES,
- PE_SEC_F_ALIGN_512BYTES,
PE_SEC_F_ALIGN_1024BYTES,
- PE_SEC_F_ALIGN_2048BYTES,
PE_SEC_F_ALIGN_4096BYTES,
- PE_SEC_F_ALIGN_8192BYTES ];
+ : alignment_info as uint<32> in [ PE_SEC_F_ALIGN_1BYTES,
+ PE_SEC_F_ALIGN_2BYTES,
+ PE_SEC_F_ALIGN_4BYTES,
+ PE_SEC_F_ALIGN_8BYTES,
+ PE_SEC_F_ALIGN_16BYTES,
+ PE_SEC_F_ALIGN_32BYTES,
+ PE_SEC_F_ALIGN_64BYTES,
+ PE_SEC_F_ALIGN_128BYTES,
+ PE_SEC_F_ALIGN_512BYTES,
+ PE_SEC_F_ALIGN_1024BYTES,
+ PE_SEC_F_ALIGN_2048BYTES,
+ PE_SEC_F_ALIGN_4096BYTES,
+ PE_SEC_F_ALIGN_8192BYTES ];
uint<19>;
} flags;
};
@@ -865,13 +871,19 @@ type PE_TLS_Directory_64 =
{
uint<9>;
uint<4> alignment_info
- : alignment_info in [ PE_SEC_F_ALIGN_1BYTES, PE_SEC_F_ALIGN_2BYTES,
- PE_SEC_F_ALIGN_4BYTES, PE_SEC_F_ALIGN_8BYTES,
- PE_SEC_F_ALIGN_16BYTES, PE_SEC_F_ALIGN_32BYTES,
- PE_SEC_F_ALIGN_64BYTES, PE_SEC_F_ALIGN_128BYTES,
- PE_SEC_F_ALIGN_512BYTES,
PE_SEC_F_ALIGN_1024BYTES,
- PE_SEC_F_ALIGN_2048BYTES,
PE_SEC_F_ALIGN_4096BYTES,
- PE_SEC_F_ALIGN_8192BYTES ];
+ : alignment_info as uint<32> in [ PE_SEC_F_ALIGN_1BYTES,
+ PE_SEC_F_ALIGN_2BYTES,
+ PE_SEC_F_ALIGN_4BYTES,
+ PE_SEC_F_ALIGN_8BYTES,
+ PE_SEC_F_ALIGN_16BYTES,
+ PE_SEC_F_ALIGN_32BYTES,
+ PE_SEC_F_ALIGN_64BYTES,
+ PE_SEC_F_ALIGN_128BYTES,
+ PE_SEC_F_ALIGN_512BYTES,
+ PE_SEC_F_ALIGN_1024BYTES,
+ PE_SEC_F_ALIGN_2048BYTES,
+ PE_SEC_F_ALIGN_4096BYTES,
+ PE_SEC_F_ALIGN_8192BYTES ];
uint<19>;
} flags;
};
--
2.38.1