diff --git a/crates/examples/src/readobj/elf.rs b/crates/examples/src/readobj/elf.rs index 34e53a4b..1bec17ac 100644 --- a/crates/examples/src/readobj/elf.rs +++ b/crates/examples/src/readobj/elf.rs @@ -558,15 +558,15 @@ fn print_notes( p.group("Note", |p| { let name = note.name(); p.field_string_option("Name", note.n_namesz(endian), Some(name)); - let flags = if name == ELF_NOTE_CORE || name == ELF_NOTE_LINUX { - FLAGS_NT_CORE - } else if name == ELF_NOTE_SOLARIS { - FLAGS_NT_SOLARIS - } else if name == ELF_NOTE_GNU { - FLAGS_NT_GNU - } else { - // TODO: NT_VERSION - &[] + let flags = match name { + ELF_NOTE_CORE | ELF_NOTE_LINUX => FLAGS_NT_CORE, + ELF_NOTE_SOLARIS => FLAGS_NT_SOLARIS, + ELF_NOTE_GNU => FLAGS_NT_GNU, + ELF_NOTE_GO => FLAGS_NT_GO, + _ => { + // TODO: NT_VERSION + &[] + } }; p.field_enum("Type", note.n_type(endian), flags); if let Some(mut properties) = note.gnu_properties(endian) { @@ -889,10 +889,10 @@ fn print_version( p.flags(version_index.0, 0, FLAGS_VERSYM); } -static FLAGS_EI_CLASS: &[Flag] = &flags!(ELFCLASSNONE, ELFCLASS32, ELFCLASS64); -static FLAGS_EI_DATA: &[Flag] = &flags!(ELFDATANONE, ELFDATA2LSB, ELFDATA2MSB); -static FLAGS_EV: &[Flag] = &flags!(EV_NONE, EV_CURRENT); -static FLAGS_EI_OSABI: &[Flag] = &flags!( +const FLAGS_EI_CLASS: &[Flag] = &flags!(ELFCLASSNONE, ELFCLASS32, ELFCLASS64); +const FLAGS_EI_DATA: &[Flag] = &flags!(ELFDATANONE, ELFDATA2LSB, ELFDATA2MSB); +const FLAGS_EV: &[Flag] = &flags!(EV_NONE, EV_CURRENT); +const FLAGS_EI_OSABI: &[Flag] = &flags!( ELFOSABI_SYSV, ELFOSABI_HPUX, ELFOSABI_NETBSD, @@ -914,8 +914,8 @@ static FLAGS_EI_OSABI: &[Flag] = &flags!( ELFOSABI_ARM, ELFOSABI_STANDALONE, ); -static FLAGS_ET: &[Flag] = &flags!(ET_NONE, ET_REL, ET_EXEC, ET_DYN, ET_CORE); -static FLAGS_EM: &[Flag] = &flags!( +const FLAGS_ET: &[Flag] = &flags!(ET_NONE, ET_REL, ET_EXEC, ET_DYN, ET_CORE); +const FLAGS_EM: &[Flag] = &flags!( EM_NONE, EM_M32, EM_SPARC, @@ -1099,7 +1099,7 @@ static FLAGS_EM: &[Flag] = &flags!( EM_ALPHA, EM_LOONGARCH, ); -static FLAGS_EF_SPARC: &[Flag] = &flags!( +const FLAGS_EF_SPARC: &[Flag] = &flags!( EF_SPARC_LEDATA, EF_SPARC_EXT_MASK, EF_SPARC_32PLUS, @@ -1107,13 +1107,13 @@ static FLAGS_EF_SPARC: &[Flag] = &flags!( EF_SPARC_HAL_R1, EF_SPARC_SUN_US3, ); -static FLAGS_EF_SPARCV9: &[Flag] = &flags!( +const FLAGS_EF_SPARCV9: &[Flag] = &flags!( EF_SPARCV9_MM, EF_SPARCV9_TSO, EF_SPARCV9_PSO, EF_SPARCV9_RMO, ); -static FLAGS_EF_MIPS: &[Flag] = &flags!( +const FLAGS_EF_MIPS: &[Flag] = &flags!( EF_MIPS_NOREORDER, EF_MIPS_PIC, EF_MIPS_CPIC, @@ -1124,7 +1124,7 @@ static FLAGS_EF_MIPS: &[Flag] = &flags!( EF_MIPS_FP64, EF_MIPS_NAN2008, ); -static FLAGS_EF_MIPS_ARCH: &[Flag] = &flags!( +const FLAGS_EF_MIPS_ARCH: &[Flag] = &flags!( EF_MIPS_ARCH_1, EF_MIPS_ARCH_2, EF_MIPS_ARCH_3, @@ -1135,13 +1135,13 @@ static FLAGS_EF_MIPS_ARCH: &[Flag] = &flags!( EF_MIPS_ARCH_32R2, EF_MIPS_ARCH_64R2, ); -static FLAGS_EF_MIPS_ABI: &[Flag] = &flags!( +const FLAGS_EF_MIPS_ABI: &[Flag] = &flags!( EF_MIPS_ABI_O32, EF_MIPS_ABI_O64, EF_MIPS_ABI_EABI32, EF_MIPS_ABI_EABI64, ); -static FLAGS_EF_PARISC: &[Flag] = &flags!( +const FLAGS_EF_PARISC: &[Flag] = &flags!( EF_PARISC_TRAPNIL, EF_PARISC_EXT, EF_PARISC_LSB, @@ -1149,11 +1149,11 @@ static FLAGS_EF_PARISC: &[Flag] = &flags!( EF_PARISC_NO_KABP, EF_PARISC_LAZYSWAP, ); -static FLAGS_EF_PARISC_ARCH: &[Flag] = &flags!(EFA_PARISC_1_0, EFA_PARISC_1_1, EFA_PARISC_2_0); -static FLAGS_EF_ALPHA: &[Flag] = &flags!(EF_ALPHA_32BIT, EF_ALPHA_CANRELAX); -static FLAGS_EF_PPC: &[Flag] = &flags!(EF_PPC_EMB, EF_PPC_RELOCATABLE, EF_PPC_RELOCATABLE_LIB); -static FLAGS_EF_PPC64: &[Flag] = &flags!(EF_PPC64_ABI); -static FLAGS_EF_ARM: &[Flag] = &flags!( +const FLAGS_EF_PARISC_ARCH: &[Flag] = &flags!(EFA_PARISC_1_0, EFA_PARISC_1_1, EFA_PARISC_2_0); +const FLAGS_EF_ALPHA: &[Flag] = &flags!(EF_ALPHA_32BIT, EF_ALPHA_CANRELAX); +const FLAGS_EF_PPC: &[Flag] = &flags!(EF_PPC_EMB, EF_PPC_RELOCATABLE, EF_PPC_RELOCATABLE_LIB); +const FLAGS_EF_PPC64: &[Flag] = &flags!(EF_PPC64_ABI); +const FLAGS_EF_ARM: &[Flag] = &flags!( EF_ARM_RELEXEC, EF_ARM_HASENTRY, EF_ARM_INTERWORK, @@ -1169,7 +1169,7 @@ static FLAGS_EF_ARM: &[Flag] = &flags!( EF_ARM_BE8, EF_ARM_LE8, ); -static FLAGS_EF_ARM_EABI: &[Flag] = &flags!( +const FLAGS_EF_ARM_EABI: &[Flag] = &flags!( EF_ARM_EABI_UNKNOWN, EF_ARM_EABI_VER1, EF_ARM_EABI_VER2, @@ -1177,9 +1177,9 @@ static FLAGS_EF_ARM_EABI: &[Flag] = &flags!( EF_ARM_EABI_VER4, EF_ARM_EABI_VER5, ); -static FLAGS_EF_CSKY_ABI: &[Flag] = &flags!(EF_CSKY_ABIV1, EF_CSKY_ABIV2); -static FLAGS_EF_IA_64: &[Flag] = &flags!(EF_IA_64_ABI64); -static FLAGS_EF_SH_MACH: &[Flag] = &flags!( +const FLAGS_EF_CSKY_ABI: &[Flag] = &flags!(EF_CSKY_ABIV1, EF_CSKY_ABIV2); +const FLAGS_EF_IA_64: &[Flag] = &flags!(EF_IA_64_ABI64); +const FLAGS_EF_SH_MACH: &[Flag] = &flags!( EF_SH_UNKNOWN, EF_SH1, EF_SH2, @@ -1202,21 +1202,21 @@ static FLAGS_EF_SH_MACH: &[Flag] = &flags!( EF_SH2A_SH4, EF_SH2A_SH3E, ); -static FLAGS_EF_S390: &[Flag] = &flags!(EF_S390_HIGH_GPRS); -static FLAGS_EF_RISCV: &[Flag] = &flags!(EF_RISCV_RVC, EF_RISCV_RVE, EF_RISCV_TSO); -static FLAGS_EF_RISCV_FLOAT_ABI: &[Flag] = &flags!( +const FLAGS_EF_S390: &[Flag] = &flags!(EF_S390_HIGH_GPRS); +const FLAGS_EF_RISCV: &[Flag] = &flags!(EF_RISCV_RVC, EF_RISCV_RVE, EF_RISCV_TSO); +const FLAGS_EF_RISCV_FLOAT_ABI: &[Flag] = &flags!( EF_RISCV_FLOAT_ABI_SOFT, EF_RISCV_FLOAT_ABI_SINGLE, EF_RISCV_FLOAT_ABI_DOUBLE, EF_RISCV_FLOAT_ABI_QUAD, ); -static FLAGS_EF_LARCH_ABI_MODIFIER: &[Flag] = &flags!( +const FLAGS_EF_LARCH_ABI_MODIFIER: &[Flag] = &flags!( EF_LARCH_ABI_SOFT_FLOAT, EF_LARCH_ABI_SINGLE_FLOAT, EF_LARCH_ABI_DOUBLE_FLOAT, ); -static FLAGS_EF_LARCH_OBJABI: &[Flag] = &flags!(EF_LARCH_OBJABI_V1,); -static FLAGS_PT: &[Flag] = &flags!( +const FLAGS_EF_LARCH_OBJABI: &[Flag] = &flags!(EF_LARCH_OBJABI_V1,); +const FLAGS_PT: &[Flag] = &flags!( PT_NULL, PT_LOAD, PT_DYNAMIC, @@ -1231,7 +1231,7 @@ static FLAGS_PT: &[Flag] = &flags!( PT_GNU_RELRO, PT_GNU_PROPERTY, ); -static FLAGS_PT_HP: &[Flag] = &flags!( +const FLAGS_PT_HP: &[Flag] = &flags!( PT_HP_TLS, PT_HP_CORE_NONE, PT_HP_CORE_VERSION, @@ -1248,17 +1248,17 @@ static FLAGS_PT_HP: &[Flag] = &flags!( PT_HP_HSL_ANNOT, PT_HP_STACK, ); -static FLAGS_PT_MIPS: &[Flag] = &flags!( +const FLAGS_PT_MIPS: &[Flag] = &flags!( PT_MIPS_REGINFO, PT_MIPS_RTPROC, PT_MIPS_OPTIONS, PT_MIPS_ABIFLAGS, ); -static FLAGS_PT_PARISC: &[Flag] = &flags!(PT_PARISC_ARCHEXT, PT_PARISC_UNWIND); -static FLAGS_PT_ARM: &[Flag] = &flags!(PT_ARM_EXIDX); -static FLAGS_PT_IA_64: &[Flag] = &flags!(PT_IA_64_ARCHEXT, PT_IA_64_UNWIND); -static FLAGS_PF: &[Flag] = &flags!(PF_X, PF_W, PF_R); -static FLAGS_PF_HP: &[Flag] = &flags!( +const FLAGS_PT_PARISC: &[Flag] = &flags!(PT_PARISC_ARCHEXT, PT_PARISC_UNWIND); +const FLAGS_PT_ARM: &[Flag] = &flags!(PT_ARM_EXIDX); +const FLAGS_PT_IA_64: &[Flag] = &flags!(PT_IA_64_ARCHEXT, PT_IA_64_UNWIND); +const FLAGS_PF: &[Flag] = &flags!(PF_X, PF_W, PF_R); +const FLAGS_PF_HP: &[Flag] = &flags!( PF_HP_PAGE_SIZE, PF_HP_FAR_SHARED, PF_HP_NEAR_SHARED, @@ -1267,11 +1267,11 @@ static FLAGS_PF_HP: &[Flag] = &flags!( PF_HP_LAZYSWAP, PF_HP_SBP, ); -static FLAGS_PF_MIPS: &[Flag] = &flags!(PF_MIPS_LOCAL); -static FLAGS_PF_PARISC: &[Flag] = &flags!(PF_PARISC_SBP); -static FLAGS_PF_ARM: &[Flag] = &flags!(PF_ARM_SB, PF_ARM_PI, PF_ARM_ABS); -static FLAGS_PF_IA_64: &[Flag] = &flags!(PF_IA_64_NORECOV); -static FLAGS_SHT: &[Flag] = &flags!( +const FLAGS_PF_MIPS: &[Flag] = &flags!(PF_MIPS_LOCAL); +const FLAGS_PF_PARISC: &[Flag] = &flags!(PF_PARISC_SBP); +const FLAGS_PF_ARM: &[Flag] = &flags!(PF_ARM_SB, PF_ARM_PI, PF_ARM_ABS); +const FLAGS_PF_IA_64: &[Flag] = &flags!(PF_IA_64_NORECOV); +const FLAGS_SHT: &[Flag] = &flags!( SHT_NULL, SHT_PROGBITS, SHT_SYMTAB, @@ -1300,7 +1300,7 @@ static FLAGS_SHT: &[Flag] = &flags!( SHT_GNU_VERNEED, SHT_GNU_VERSYM, ); -static FLAGS_SHT_MIPS: &[Flag] = &flags!( +const FLAGS_SHT_MIPS: &[Flag] = &flags!( SHT_MIPS_LIBLIST, SHT_MIPS_MSYM, SHT_MIPS_CONFLICT, @@ -1341,13 +1341,13 @@ static FLAGS_SHT_MIPS: &[Flag] = &flags!( SHT_MIPS_XLATE_OLD, SHT_MIPS_PDR_EXCEPTION, ); -static FLAGS_SHT_PARISC: &[Flag] = &flags!(SHT_PARISC_EXT, SHT_PARISC_UNWIND, SHT_PARISC_DOC); -static FLAGS_SHT_ALPHA: &[Flag] = &flags!(SHT_ALPHA_DEBUG, SHT_ALPHA_REGINFO); -static FLAGS_SHT_ARM: &[Flag] = &flags!(SHT_ARM_EXIDX, SHT_ARM_PREEMPTMAP, SHT_ARM_ATTRIBUTES); -static FLAGS_SHT_CSKY: &[Flag] = &flags!(SHT_CSKY_ATTRIBUTES); -static FLAGS_SHT_IA_64: &[Flag] = &flags!(SHT_IA_64_EXT, SHT_IA_64_UNWIND); -static FLAGS_SHT_X86_64: &[Flag] = &flags!(SHT_X86_64_UNWIND); -static FLAGS_SHF: &[Flag] = &flags!( +const FLAGS_SHT_PARISC: &[Flag] = &flags!(SHT_PARISC_EXT, SHT_PARISC_UNWIND, SHT_PARISC_DOC); +const FLAGS_SHT_ALPHA: &[Flag] = &flags!(SHT_ALPHA_DEBUG, SHT_ALPHA_REGINFO); +const FLAGS_SHT_ARM: &[Flag] = &flags!(SHT_ARM_EXIDX, SHT_ARM_PREEMPTMAP, SHT_ARM_ATTRIBUTES); +const FLAGS_SHT_CSKY: &[Flag] = &flags!(SHT_CSKY_ATTRIBUTES); +const FLAGS_SHT_IA_64: &[Flag] = &flags!(SHT_IA_64_EXT, SHT_IA_64_UNWIND); +const FLAGS_SHT_X86_64: &[Flag] = &flags!(SHT_X86_64_UNWIND); +const FLAGS_SHF: &[Flag] = &flags!( SHF_WRITE, SHF_ALLOC, SHF_EXECINSTR, @@ -1360,7 +1360,7 @@ static FLAGS_SHF: &[Flag] = &flags!( SHF_TLS, SHF_COMPRESSED, ); -static FLAGS_SHF_MIPS: &[Flag] = &flags!( +const FLAGS_SHF_MIPS: &[Flag] = &flags!( SHF_MIPS_GPREL, SHF_MIPS_MERGE, SHF_MIPS_ADDR, @@ -1370,12 +1370,12 @@ static FLAGS_SHF_MIPS: &[Flag] = &flags!( SHF_MIPS_NAMES, SHF_MIPS_NODUPE, ); -static FLAGS_SHF_PARISC: &[Flag] = &flags!(SHF_PARISC_SHORT, SHF_PARISC_HUGE, SHF_PARISC_SBP); -static FLAGS_SHF_ALPHA: &[Flag] = &flags!(SHF_ALPHA_GPREL); -static FLAGS_SHF_ARM: &[Flag] = &flags!(SHF_ARM_ENTRYSECT, SHF_ARM_COMDEF); -static FLAGS_SHF_IA_64: &[Flag] = &flags!(SHF_IA_64_SHORT, SHF_IA_64_NORECOV); -static FLAGS_ELFCOMPRESS: &[Flag] = &flags!(ELFCOMPRESS_ZLIB, ELFCOMPRESS_ZSTD); -static FLAGS_STT: &[Flag] = &flags!( +const FLAGS_SHF_PARISC: &[Flag] = &flags!(SHF_PARISC_SHORT, SHF_PARISC_HUGE, SHF_PARISC_SBP); +const FLAGS_SHF_ALPHA: &[Flag] = &flags!(SHF_ALPHA_GPREL); +const FLAGS_SHF_ARM: &[Flag] = &flags!(SHF_ARM_ENTRYSECT, SHF_ARM_COMDEF); +const FLAGS_SHF_IA_64: &[Flag] = &flags!(SHF_IA_64_SHORT, SHF_IA_64_NORECOV); +const FLAGS_ELFCOMPRESS: &[Flag] = &flags!(ELFCOMPRESS_ZLIB, ELFCOMPRESS_ZSTD); +const FLAGS_STT: &[Flag] = &flags!( STT_NOTYPE, STT_OBJECT, STT_FUNC, @@ -1384,27 +1384,27 @@ static FLAGS_STT: &[Flag] = &flags!( STT_COMMON, STT_TLS, ); -static FLAGS_STT_GNU: &[Flag] = &flags!(STT_GNU_IFUNC); -static FLAGS_STT_HP: &[Flag] = &flags!(STT_HP_OPAQUE, STT_HP_STUB); -static FLAGS_STT_SPARC: &[Flag] = &flags!(STT_SPARC_REGISTER); -static FLAGS_STT_PARISC: &[Flag] = &flags!(STT_PARISC_MILLICODE); -static FLAGS_STT_ARM: &[Flag] = &flags!(STT_ARM_TFUNC, STT_ARM_16BIT); -static FLAGS_STB: &[Flag] = &flags!(STB_LOCAL, STB_GLOBAL, STB_WEAK); -static FLAGS_STB_GNU: &[Flag] = &flags!(STB_GNU_UNIQUE); -static FLAGS_STB_MIPS: &[Flag] = &flags!(STB_MIPS_SPLIT_COMMON); -static FLAGS_STV: &[Flag] = &flags!(STV_DEFAULT, STV_INTERNAL, STV_HIDDEN, STV_PROTECTED); -static FLAGS_STO_MIPS: &[Flag] = &flags!(STO_MIPS_PLT); -static FLAGS_STO_ALPHA: &[Flag] = &flags!(STO_ALPHA_NOPV, STO_ALPHA_STD_GPLOAD); -static FLAGS_SHN: &[Flag] = &flags!(SHN_UNDEF, SHN_ABS, SHN_COMMON, SHN_XINDEX); -static FLAGS_SHN_MIPS: &[Flag] = &flags!( +const FLAGS_STT_GNU: &[Flag] = &flags!(STT_GNU_IFUNC); +const FLAGS_STT_HP: &[Flag] = &flags!(STT_HP_OPAQUE, STT_HP_STUB); +const FLAGS_STT_SPARC: &[Flag] = &flags!(STT_SPARC_REGISTER); +const FLAGS_STT_PARISC: &[Flag] = &flags!(STT_PARISC_MILLICODE); +const FLAGS_STT_ARM: &[Flag] = &flags!(STT_ARM_TFUNC, STT_ARM_16BIT); +const FLAGS_STB: &[Flag] = &flags!(STB_LOCAL, STB_GLOBAL, STB_WEAK); +const FLAGS_STB_GNU: &[Flag] = &flags!(STB_GNU_UNIQUE); +const FLAGS_STB_MIPS: &[Flag] = &flags!(STB_MIPS_SPLIT_COMMON); +const FLAGS_STV: &[Flag] = &flags!(STV_DEFAULT, STV_INTERNAL, STV_HIDDEN, STV_PROTECTED); +const FLAGS_STO_MIPS: &[Flag] = &flags!(STO_MIPS_PLT); +const FLAGS_STO_ALPHA: &[Flag] = &flags!(STO_ALPHA_NOPV, STO_ALPHA_STD_GPLOAD); +const FLAGS_SHN: &[Flag] = &flags!(SHN_UNDEF, SHN_ABS, SHN_COMMON, SHN_XINDEX); +const FLAGS_SHN_MIPS: &[Flag] = &flags!( SHN_MIPS_ACOMMON, SHN_MIPS_TEXT, SHN_MIPS_DATA, SHN_MIPS_SCOMMON, SHN_MIPS_SUNDEFINED, ); -static FLAGS_SHN_PARISC: &[Flag] = &flags!(SHN_PARISC_ANSI_COMMON, SHN_PARISC_HUGE_COMMON); -static FLAGS_R_68K: &[Flag] = &flags!( +const FLAGS_SHN_PARISC: &[Flag] = &flags!(SHN_PARISC_ANSI_COMMON, SHN_PARISC_HUGE_COMMON); +const FLAGS_R_68K: &[Flag] = &flags!( R_68K_NONE, R_68K_32, R_68K_16, @@ -1447,7 +1447,7 @@ static FLAGS_R_68K: &[Flag] = &flags!( R_68K_TLS_DTPREL32, R_68K_TLS_TPREL32, ); -static FLAGS_R_386: &[Flag] = &flags!( +const FLAGS_R_386: &[Flag] = &flags!( R_386_NONE, R_386_32, R_386_PC32, @@ -1491,7 +1491,7 @@ static FLAGS_R_386: &[Flag] = &flags!( R_386_IRELATIVE, R_386_GOT32X, ); -static FLAGS_R_SPARC: &[Flag] = &flags!( +const FLAGS_R_SPARC: &[Flag] = &flags!( R_SPARC_NONE, R_SPARC_8, R_SPARC_16, @@ -1587,7 +1587,7 @@ static FLAGS_R_SPARC: &[Flag] = &flags!( R_SPARC_GNU_VTENTRY, R_SPARC_REV32, ); -static FLAGS_R_MIPS: &[Flag] = &flags!( +const FLAGS_R_MIPS: &[Flag] = &flags!( R_MIPS_NONE, R_MIPS_16, R_MIPS_32, @@ -1640,7 +1640,7 @@ static FLAGS_R_MIPS: &[Flag] = &flags!( R_MIPS_COPY, R_MIPS_JUMP_SLOT, ); -static FLAGS_R_PARISC: &[Flag] = &flags!( +const FLAGS_R_PARISC: &[Flag] = &flags!( R_PARISC_NONE, R_PARISC_DIR32, R_PARISC_DIR21L, @@ -1750,7 +1750,7 @@ static FLAGS_R_PARISC: &[Flag] = &flags!( R_PARISC_TLS_TPREL32, R_PARISC_TLS_TPREL64, ); -static FLAGS_R_ALPHA: &[Flag] = &flags!( +const FLAGS_R_ALPHA: &[Flag] = &flags!( R_ALPHA_NONE, R_ALPHA_REFLONG, R_ALPHA_REFQUAD, @@ -1785,7 +1785,7 @@ static FLAGS_R_ALPHA: &[Flag] = &flags!( R_ALPHA_TPRELLO, R_ALPHA_TPREL16, ); -static FLAGS_R_PPC: &[Flag] = &flags!( +const FLAGS_R_PPC: &[Flag] = &flags!( R_PPC_NONE, R_PPC_ADDR32, R_PPC_ADDR24, @@ -1882,7 +1882,7 @@ static FLAGS_R_PPC: &[Flag] = &flags!( R_PPC_REL16_HA, R_PPC_TOC16, ); -static FLAGS_R_PPC64: &[Flag] = &flags!( +const FLAGS_R_PPC64: &[Flag] = &flags!( R_PPC64_NONE, R_PPC64_ADDR32, R_PPC64_ADDR24, @@ -2003,7 +2003,7 @@ static FLAGS_R_PPC64: &[Flag] = &flags!( R_PPC64_REL16_HI, R_PPC64_REL16_HA, ); -static FLAGS_R_AARCH64: &[Flag] = &flags!( +const FLAGS_R_AARCH64: &[Flag] = &flags!( R_AARCH64_NONE, R_AARCH64_P32_ABS32, R_AARCH64_P32_COPY, @@ -2138,7 +2138,7 @@ static FLAGS_R_AARCH64: &[Flag] = &flags!( R_AARCH64_TLSDESC, R_AARCH64_IRELATIVE, ); -static FLAGS_R_ARM: &[Flag] = &flags!( +const FLAGS_R_ARM: &[Flag] = &flags!( R_ARM_NONE, R_ARM_PC24, R_ARM_ABS32, @@ -2266,7 +2266,7 @@ static FLAGS_R_ARM: &[Flag] = &flags!( R_ARM_RPC24, R_ARM_RBASE, ); -static FLAGS_R_CKCORE: &[Flag] = &flags!( +const FLAGS_R_CKCORE: &[Flag] = &flags!( R_CKCORE_NONE, R_CKCORE_ADDR32, R_CKCORE_PCRELIMM8BY4, @@ -2323,7 +2323,7 @@ static FLAGS_R_CKCORE: &[Flag] = &flags!( R_CKCORE_TLS_DTPOFF32, R_CKCORE_TLS_TPOFF32, ); -static FLAGS_R_IA64: &[Flag] = &flags!( +const FLAGS_R_IA64: &[Flag] = &flags!( R_IA64_NONE, R_IA64_IMM14, R_IA64_IMM22, @@ -2406,7 +2406,7 @@ static FLAGS_R_IA64: &[Flag] = &flags!( R_IA64_DTPREL64LSB, R_IA64_LTOFF_DTPREL22, ); -static FLAGS_R_SH: &[Flag] = &flags!( +const FLAGS_R_SH: &[Flag] = &flags!( R_SH_NONE, R_SH_DIR32, R_SH_REL32, @@ -2445,7 +2445,7 @@ static FLAGS_R_SH: &[Flag] = &flags!( R_SH_GOTOFF, R_SH_GOTPC, ); -static FLAGS_R_390: &[Flag] = &flags!( +const FLAGS_R_390: &[Flag] = &flags!( R_390_NONE, R_390_8, R_390_12, @@ -2509,7 +2509,7 @@ static FLAGS_R_390: &[Flag] = &flags!( R_390_TLS_GOTIE20, R_390_IRELATIVE, ); -static FLAGS_R_CRIS: &[Flag] = &flags!( +const FLAGS_R_CRIS: &[Flag] = &flags!( R_CRIS_NONE, R_CRIS_8, R_CRIS_16, @@ -2531,7 +2531,7 @@ static FLAGS_R_CRIS: &[Flag] = &flags!( R_CRIS_32_PLT_GOTREL, R_CRIS_32_PLT_PCREL, ); -static FLAGS_R_X86_64: &[Flag] = &flags!( +const FLAGS_R_X86_64: &[Flag] = &flags!( R_X86_64_NONE, R_X86_64_64, R_X86_64_PC32, @@ -2574,7 +2574,7 @@ static FLAGS_R_X86_64: &[Flag] = &flags!( R_X86_64_GOTPCRELX, R_X86_64_REX_GOTPCRELX, ); -static FLAGS_R_MN10300: &[Flag] = &flags!( +const FLAGS_R_MN10300: &[Flag] = &flags!( R_MN10300_NONE, R_MN10300_32, R_MN10300_16, @@ -2611,7 +2611,7 @@ static FLAGS_R_MN10300: &[Flag] = &flags!( R_MN10300_SYM_DIFF, R_MN10300_ALIGN, ); -static FLAGS_R_M32R: &[Flag] = &flags!( +const FLAGS_R_M32R: &[Flag] = &flags!( R_M32R_NONE, R_M32R_16, R_M32R_32, @@ -2657,7 +2657,7 @@ static FLAGS_R_M32R: &[Flag] = &flags!( R_M32R_GOTOFF_LO, R_M32R_NUM, ); -static FLAGS_R_MICROBLAZE: &[Flag] = &flags!( +const FLAGS_R_MICROBLAZE: &[Flag] = &flags!( R_MICROBLAZE_NONE, R_MICROBLAZE_32, R_MICROBLAZE_32_PCREL, @@ -2689,7 +2689,7 @@ static FLAGS_R_MICROBLAZE: &[Flag] = &flags!( R_MICROBLAZE_TLSGOTTPREL32, R_MICROBLAZE_TLSTPREL32, ); -static FLAGS_R_NIOS2: &[Flag] = &flags!( +const FLAGS_R_NIOS2: &[Flag] = &flags!( R_NIOS2_NONE, R_NIOS2_S16, R_NIOS2_U16, @@ -2737,7 +2737,7 @@ static FLAGS_R_NIOS2: &[Flag] = &flags!( R_NIOS2_CALL_LO, R_NIOS2_CALL_HA, ); -static FLAGS_R_TILEPRO: &[Flag] = &flags!( +const FLAGS_R_TILEPRO: &[Flag] = &flags!( R_TILEPRO_NONE, R_TILEPRO_32, R_TILEPRO_16, @@ -2830,7 +2830,7 @@ static FLAGS_R_TILEPRO: &[Flag] = &flags!( R_TILEPRO_GNU_VTINHERIT, R_TILEPRO_GNU_VTENTRY, ); -static FLAGS_R_TILEGX: &[Flag] = &flags!( +const FLAGS_R_TILEGX: &[Flag] = &flags!( R_TILEGX_NONE, R_TILEGX_64, R_TILEGX_32, @@ -2952,7 +2952,7 @@ static FLAGS_R_TILEGX: &[Flag] = &flags!( R_TILEGX_GNU_VTINHERIT, R_TILEGX_GNU_VTENTRY, ); -static FLAGS_R_RISCV: &[Flag] = &flags!( +const FLAGS_R_RISCV: &[Flag] = &flags!( R_RISCV_NONE, R_RISCV_32, R_RISCV_64, @@ -3008,9 +3008,9 @@ static FLAGS_R_RISCV: &[Flag] = &flags!( R_RISCV_SET32, R_RISCV_32_PCREL, ); -static FLAGS_R_BPF: &[Flag] = &flags!(R_BPF_NONE, R_BPF_64_64, R_BPF_64_32); -static FLAGS_R_SBF: &[Flag] = &flags!(R_SBF_NONE, R_SBF_64_64, R_SBF_64_32); -static FLAGS_R_METAG: &[Flag] = &flags!( +const FLAGS_R_BPF: &[Flag] = &flags!(R_BPF_NONE, R_BPF_64_64, R_BPF_64_32); +const FLAGS_R_SBF: &[Flag] = &flags!(R_SBF_NONE, R_SBF_64_64, R_SBF_64_32); +const FLAGS_R_METAG: &[Flag] = &flags!( R_METAG_HIADDR16, R_METAG_LOADDR16, R_METAG_ADDR32, @@ -3061,7 +3061,7 @@ static FLAGS_R_METAG: &[Flag] = &flags!( R_METAG_TLS_LE_HI16, R_METAG_TLS_LE_LO16, ); -static FLAGS_R_NDS32: &[Flag] = &flags!( +const FLAGS_R_NDS32: &[Flag] = &flags!( R_NDS32_NONE, R_NDS32_32_RELA, R_NDS32_COPY, @@ -3071,7 +3071,7 @@ static FLAGS_R_NDS32: &[Flag] = &flags!( R_NDS32_TLS_TPOFF, R_NDS32_TLS_DESC, ); -static FLAGS_R_LOONGARCH: &[Flag] = &flags!( +const FLAGS_R_LOONGARCH: &[Flag] = &flags!( R_LARCH_NONE, R_LARCH_32, R_LARCH_64, @@ -3162,7 +3162,7 @@ static FLAGS_R_LOONGARCH: &[Flag] = &flags!( R_LARCH_32_PCREL, R_LARCH_RELAX, ); -static FLAGS_NT_CORE: &[Flag] = &flags!( +const FLAGS_NT_CORE: &[Flag] = &flags!( NT_PRSTATUS, NT_PRFPREG, NT_FPREGSET, @@ -3227,43 +3227,44 @@ static FLAGS_NT_CORE: &[Flag] = &flags!( NT_MIPS_DSP, NT_MIPS_FP_MODE, ); -static FLAGS_NT_SOLARIS: &[Flag] = &flags!(NT_SOLARIS_PAGESIZE_HINT); -static FLAGS_NT_GNU: &[Flag] = &flags!( +const FLAGS_NT_SOLARIS: &[Flag] = &flags!(NT_SOLARIS_PAGESIZE_HINT); +const FLAGS_NT_GNU: &[Flag] = &flags!( NT_GNU_ABI_TAG, NT_GNU_HWCAP, NT_GNU_BUILD_ID, NT_GNU_GOLD_VERSION, NT_GNU_PROPERTY_TYPE_0, ); -static FLAGS_GNU_PROPERTY: &[Flag] = &flags!( +const FLAGS_NT_GO: &[Flag] = &flags!(NT_GO_BUILD_ID); +const FLAGS_GNU_PROPERTY: &[Flag] = &flags!( GNU_PROPERTY_STACK_SIZE, GNU_PROPERTY_NO_COPY_ON_PROTECTED, GNU_PROPERTY_1_NEEDED, ); -static FLAGS_GNU_PROPERTY_1_NEEDED: &[Flag] = +const FLAGS_GNU_PROPERTY_1_NEEDED: &[Flag] = &flags!(GNU_PROPERTY_1_NEEDED_INDIRECT_EXTERN_ACCESS); -static FLAGS_GNU_PROPERTY_AARCH64: &[Flag] = &flags!(GNU_PROPERTY_AARCH64_FEATURE_1_AND); -static FLAGS_GNU_PROPERTY_AARCH64_FEATURE_1: &[Flag] = &flags!( +const FLAGS_GNU_PROPERTY_AARCH64: &[Flag] = &flags!(GNU_PROPERTY_AARCH64_FEATURE_1_AND); +const FLAGS_GNU_PROPERTY_AARCH64_FEATURE_1: &[Flag] = &flags!( GNU_PROPERTY_AARCH64_FEATURE_1_BTI, GNU_PROPERTY_AARCH64_FEATURE_1_PAC, ); -static FLAGS_GNU_PROPERTY_X86: &[Flag] = &flags!( +const FLAGS_GNU_PROPERTY_X86: &[Flag] = &flags!( GNU_PROPERTY_X86_ISA_1_USED, GNU_PROPERTY_X86_ISA_1_NEEDED, GNU_PROPERTY_X86_FEATURE_1_AND, ); -static FLAGS_GNU_PROPERTY_X86_ISA_1: &[Flag] = &flags!( +const FLAGS_GNU_PROPERTY_X86_ISA_1: &[Flag] = &flags!( GNU_PROPERTY_X86_ISA_1_BASELINE, GNU_PROPERTY_X86_ISA_1_V2, GNU_PROPERTY_X86_ISA_1_V3, GNU_PROPERTY_X86_ISA_1_V4, ); -static FLAGS_GNU_PROPERTY_X86_FEATURE_1: &[Flag] = &flags!( +const FLAGS_GNU_PROPERTY_X86_FEATURE_1: &[Flag] = &flags!( GNU_PROPERTY_X86_FEATURE_1_IBT, GNU_PROPERTY_X86_FEATURE_1_SHSTK, ); -static FLAGS_GRP: &[Flag] = &flags!(GRP_COMDAT); -static FLAGS_DT: &[Flag] = &flags!( +const FLAGS_GRP: &[Flag] = &flags!(GRP_COMDAT); +const FLAGS_DT: &[Flag] = &flags!( DT_NULL, DT_NEEDED, DT_PLTRELSZ, @@ -3331,8 +3332,8 @@ static FLAGS_DT: &[Flag] = &flags!( DT_AUXILIARY, DT_FILTER, ); -static FLAGS_DT_SPARC: &[Flag] = &flags!(DT_SPARC_REGISTER); -static FLAGS_DT_MIPS: &[Flag] = &flags!( +const FLAGS_DT_SPARC: &[Flag] = &flags!(DT_SPARC_REGISTER); +const FLAGS_DT_MIPS: &[Flag] = &flags!( DT_MIPS_RLD_VERSION, DT_MIPS_TIME_STAMP, DT_MIPS_ICHECKSUM, @@ -3380,20 +3381,20 @@ static FLAGS_DT_MIPS: &[Flag] = &flags!( DT_MIPS_RWPLT, DT_MIPS_RLD_MAP_REL, ); -static FLAGS_DT_ALPHA: &[Flag] = &flags!(DT_ALPHA_PLTRO); -static FLAGS_DT_PPC: &[Flag] = &flags!(DT_PPC_GOT, DT_PPC_OPT); -static FLAGS_DT_PPC64: &[Flag] = +const FLAGS_DT_ALPHA: &[Flag] = &flags!(DT_ALPHA_PLTRO); +const FLAGS_DT_PPC: &[Flag] = &flags!(DT_PPC_GOT, DT_PPC_OPT); +const FLAGS_DT_PPC64: &[Flag] = &flags!(DT_PPC64_GLINK, DT_PPC64_OPD, DT_PPC64_OPDSZ, DT_PPC64_OPT); -static FLAGS_DT_IA_64: &[Flag] = &flags!(DT_IA_64_PLT_RESERVE); -static FLAGS_DT_NIOS2: &[Flag] = &flags!(DT_NIOS2_GP); -static FLAGS_DF: &[Flag] = &flags!( +const FLAGS_DT_IA_64: &[Flag] = &flags!(DT_IA_64_PLT_RESERVE); +const FLAGS_DT_NIOS2: &[Flag] = &flags!(DT_NIOS2_GP); +const FLAGS_DF: &[Flag] = &flags!( DF_ORIGIN, DF_SYMBOLIC, DF_TEXTREL, DF_BIND_NOW, DF_STATIC_TLS, ); -static FLAGS_DF_1: &[Flag] = &flags!( +const FLAGS_DF_1: &[Flag] = &flags!( DF_1_NOW, DF_1_GLOBAL, DF_1_GROUP, @@ -3423,7 +3424,7 @@ static FLAGS_DF_1: &[Flag] = &flags!( DF_1_STUB, DF_1_PIE, ); -static FLAGS_VER_FLG: &[Flag] = &flags!(VER_FLG_BASE, VER_FLG_WEAK); -static FLAGS_VER_NDX: &[Flag] = &flags!(VER_NDX_LOCAL, VER_NDX_GLOBAL); -static FLAGS_VERSYM: &[Flag] = &flags!(VERSYM_HIDDEN); -static FLAGS_TAG: &[Flag] = &flags!(Tag_File, Tag_Section, Tag_Symbol); +const FLAGS_VER_FLG: &[Flag] = &flags!(VER_FLG_BASE, VER_FLG_WEAK); +const FLAGS_VER_NDX: &[Flag] = &flags!(VER_NDX_LOCAL, VER_NDX_GLOBAL); +const FLAGS_VERSYM: &[Flag] = &flags!(VERSYM_HIDDEN); +const FLAGS_TAG: &[Flag] = &flags!(Tag_File, Tag_Section, Tag_Symbol); diff --git a/crates/examples/src/readobj/macho.rs b/crates/examples/src/readobj/macho.rs index b8a4c586..05c64357 100644 --- a/crates/examples/src/readobj/macho.rs +++ b/crates/examples/src/readobj/macho.rs @@ -694,7 +694,7 @@ fn print_cputype(p: &mut Printer<'_>, cputype: u32, cpusubtype: u32) { p.flags(cpusubtype, 0, FLAGS_CPU_SUBTYPE); } -static FLAGS_CPU_TYPE: &[Flag] = &flags!( +const FLAGS_CPU_TYPE: &[Flag] = &flags!( CPU_TYPE_ANY, CPU_TYPE_VAX, CPU_TYPE_MC680X0, @@ -713,13 +713,13 @@ static FLAGS_CPU_TYPE: &[Flag] = &flags!( CPU_TYPE_POWERPC, CPU_TYPE_POWERPC64, ); -static FLAGS_CPU_SUBTYPE: &[Flag] = &flags!(CPU_SUBTYPE_LIB64); -static FLAGS_CPU_SUBTYPE_ANY: &[Flag] = &flags!( +const FLAGS_CPU_SUBTYPE: &[Flag] = &flags!(CPU_SUBTYPE_LIB64); +const FLAGS_CPU_SUBTYPE_ANY: &[Flag] = &flags!( CPU_SUBTYPE_MULTIPLE, CPU_SUBTYPE_LITTLE_ENDIAN, CPU_SUBTYPE_BIG_ENDIAN, ); -static FLAGS_CPU_SUBTYPE_VAX: &[Flag] = &flags!( +const FLAGS_CPU_SUBTYPE_VAX: &[Flag] = &flags!( CPU_SUBTYPE_VAX_ALL, CPU_SUBTYPE_VAX780, CPU_SUBTYPE_VAX785, @@ -734,12 +734,12 @@ static FLAGS_CPU_SUBTYPE_VAX: &[Flag] = &flags!( CPU_SUBTYPE_VAX8800, CPU_SUBTYPE_UVAXIII, ); -static FLAGS_CPU_SUBTYPE_MC680X0: &[Flag] = &flags!( +const FLAGS_CPU_SUBTYPE_MC680X0: &[Flag] = &flags!( CPU_SUBTYPE_MC680X0_ALL, CPU_SUBTYPE_MC68040, CPU_SUBTYPE_MC68030_ONLY, ); -static FLAGS_CPU_SUBTYPE_X86: &[Flag] = &flags!( +const FLAGS_CPU_SUBTYPE_X86: &[Flag] = &flags!( CPU_SUBTYPE_I386_ALL, CPU_SUBTYPE_386, CPU_SUBTYPE_486, @@ -762,12 +762,12 @@ static FLAGS_CPU_SUBTYPE_X86: &[Flag] = &flags!( CPU_SUBTYPE_XEON, CPU_SUBTYPE_XEON_MP, ); -static FLAGS_CPU_SUBTYPE_X86_64: &[Flag] = &flags!( +const FLAGS_CPU_SUBTYPE_X86_64: &[Flag] = &flags!( CPU_SUBTYPE_X86_64_ALL, CPU_SUBTYPE_X86_ARCH1, CPU_SUBTYPE_X86_64_H, ); -static FLAGS_CPU_SUBTYPE_MIPS: &[Flag] = &flags!( +const FLAGS_CPU_SUBTYPE_MIPS: &[Flag] = &flags!( CPU_SUBTYPE_MIPS_ALL, CPU_SUBTYPE_MIPS_R2300, CPU_SUBTYPE_MIPS_R2600, @@ -777,18 +777,17 @@ static FLAGS_CPU_SUBTYPE_MIPS: &[Flag] = &flags!( CPU_SUBTYPE_MIPS_R3000A, CPU_SUBTYPE_MIPS_R3000, ); -static FLAGS_CPU_SUBTYPE_MC98000: &[Flag] = +const FLAGS_CPU_SUBTYPE_MC98000: &[Flag] = &flags!(CPU_SUBTYPE_MC98000_ALL, CPU_SUBTYPE_MC98601); -static FLAGS_CPU_SUBTYPE_HPPA: &[Flag] = - &flags!(CPU_SUBTYPE_HPPA_ALL, CPU_SUBTYPE_HPPA_7100LC); -static FLAGS_CPU_SUBTYPE_MC88000: &[Flag] = &flags!( +const FLAGS_CPU_SUBTYPE_HPPA: &[Flag] = &flags!(CPU_SUBTYPE_HPPA_ALL, CPU_SUBTYPE_HPPA_7100LC); +const FLAGS_CPU_SUBTYPE_MC88000: &[Flag] = &flags!( CPU_SUBTYPE_MC88000_ALL, CPU_SUBTYPE_MC88100, CPU_SUBTYPE_MC88110, ); -static FLAGS_CPU_SUBTYPE_SPARC: &[Flag] = &flags!(CPU_SUBTYPE_SPARC_ALL); -static FLAGS_CPU_SUBTYPE_I860: &[Flag] = &flags!(CPU_SUBTYPE_I860_ALL, CPU_SUBTYPE_I860_860); -static FLAGS_CPU_SUBTYPE_POWERPC: &[Flag] = &flags!( +const FLAGS_CPU_SUBTYPE_SPARC: &[Flag] = &flags!(CPU_SUBTYPE_SPARC_ALL); +const FLAGS_CPU_SUBTYPE_I860: &[Flag] = &flags!(CPU_SUBTYPE_I860_ALL, CPU_SUBTYPE_I860_860); +const FLAGS_CPU_SUBTYPE_POWERPC: &[Flag] = &flags!( CPU_SUBTYPE_POWERPC_ALL, CPU_SUBTYPE_POWERPC_601, CPU_SUBTYPE_POWERPC_602, @@ -803,7 +802,7 @@ static FLAGS_CPU_SUBTYPE_POWERPC: &[Flag] = &flags!( CPU_SUBTYPE_POWERPC_7450, CPU_SUBTYPE_POWERPC_970, ); -static FLAGS_CPU_SUBTYPE_ARM: &[Flag] = &flags!( +const FLAGS_CPU_SUBTYPE_ARM: &[Flag] = &flags!( CPU_SUBTYPE_ARM_ALL, CPU_SUBTYPE_ARM_V4T, CPU_SUBTYPE_ARM_V6, @@ -819,14 +818,14 @@ static FLAGS_CPU_SUBTYPE_ARM: &[Flag] = &flags!( CPU_SUBTYPE_ARM_V7EM, CPU_SUBTYPE_ARM_V8M, ); -static FLAGS_CPU_SUBTYPE_ARM64: &[Flag] = &flags!( +const FLAGS_CPU_SUBTYPE_ARM64: &[Flag] = &flags!( CPU_SUBTYPE_ARM64_ALL, CPU_SUBTYPE_ARM64_V8, CPU_SUBTYPE_ARM64E, ); -static FLAGS_CPU_SUBTYPE_ARM64_32: &[Flag] = +const FLAGS_CPU_SUBTYPE_ARM64_32: &[Flag] = &flags!(CPU_SUBTYPE_ARM64_32_ALL, CPU_SUBTYPE_ARM64_32_V8); -static FLAGS_MH_FILETYPE: &[Flag] = &flags!( +const FLAGS_MH_FILETYPE: &[Flag] = &flags!( MH_OBJECT, MH_EXECUTE, MH_FVMLIB, @@ -840,7 +839,7 @@ static FLAGS_MH_FILETYPE: &[Flag] = &flags!( MH_KEXT_BUNDLE, MH_FILESET, ); -static FLAGS_MH: &[Flag] = &flags!( +const FLAGS_MH: &[Flag] = &flags!( MH_NOUNDEFS, MH_INCRLINK, MH_DYLDLINK, @@ -871,7 +870,7 @@ static FLAGS_MH: &[Flag] = &flags!( MH_SIM_SUPPORT, MH_DYLIB_IN_CACHE, ); -static FLAGS_LC: &[Flag] = &flags!( +const FLAGS_LC: &[Flag] = &flags!( LC_SEGMENT, LC_SYMTAB, LC_SYMSEG, @@ -927,15 +926,15 @@ static FLAGS_LC: &[Flag] = &flags!( LC_DYLD_CHAINED_FIXUPS, LC_FILESET_ENTRY, ); -static FLAGS_VM: &[Flag] = &flags!(VM_PROT_READ, VM_PROT_WRITE, VM_PROT_EXECUTE); -static FLAGS_SG: &[Flag] = &flags!( +const FLAGS_VM: &[Flag] = &flags!(VM_PROT_READ, VM_PROT_WRITE, VM_PROT_EXECUTE); +const FLAGS_SG: &[Flag] = &flags!( SG_HIGHVM, SG_FVMLIB, SG_NORELOC, SG_PROTECTED_VERSION_1, SG_READ_ONLY, ); -static FLAGS_S_TYPE: &[Flag] = &flags!( +const FLAGS_S_TYPE: &[Flag] = &flags!( S_REGULAR, S_ZEROFILL, S_CSTRING_LITERALS, @@ -960,7 +959,7 @@ static FLAGS_S_TYPE: &[Flag] = &flags!( S_THREAD_LOCAL_INIT_FUNCTION_POINTERS, S_INIT_FUNC_OFFSETS, ); -static FLAGS_S_ATTR: &[Flag] = &flags!( +const FLAGS_S_ATTR: &[Flag] = &flags!( S_ATTR_PURE_INSTRUCTIONS, S_ATTR_NO_TOC, S_ATTR_STRIP_STATIC_SYMS, @@ -972,7 +971,7 @@ static FLAGS_S_ATTR: &[Flag] = &flags!( S_ATTR_EXT_RELOC, S_ATTR_LOC_RELOC, ); -static FLAGS_PLATFORM: &[Flag] = &flags!( +const FLAGS_PLATFORM: &[Flag] = &flags!( PLATFORM_MACOS, PLATFORM_IOS, PLATFORM_TVOS, @@ -984,14 +983,14 @@ static FLAGS_PLATFORM: &[Flag] = &flags!( PLATFORM_WATCHOSSIMULATOR, PLATFORM_DRIVERKIT, ); -static FLAGS_N_EXT: &[Flag] = &flags!(N_PEXT, N_EXT); -static FLAGS_N_TYPE: &[Flag] = &flags!(N_UNDF, N_ABS, N_SECT, N_PBUD, N_INDR); -static FLAGS_N_STAB: &[Flag] = &flags!( +const FLAGS_N_EXT: &[Flag] = &flags!(N_PEXT, N_EXT); +const FLAGS_N_TYPE: &[Flag] = &flags!(N_UNDF, N_ABS, N_SECT, N_PBUD, N_INDR); +const FLAGS_N_STAB: &[Flag] = &flags!( N_GSYM, N_FNAME, N_FUN, N_STSYM, N_LCSYM, N_BNSYM, N_AST, N_OPT, N_RSYM, N_SLINE, N_ENSYM, N_SSYM, N_SO, N_OSO, N_LSYM, N_BINCL, N_SOL, N_PARAMS, N_VERSION, N_OLEVEL, N_PSYM, N_EINCL, N_ENTRY, N_LBRAC, N_EXCL, N_RBRAC, N_BCOMM, N_ECOMM, N_ECOML, N_LENG, N_PC, ); -static FLAGS_REFERENCE: &[Flag] = &flags!( +const FLAGS_REFERENCE: &[Flag] = &flags!( REFERENCE_FLAG_UNDEFINED_NON_LAZY, REFERENCE_FLAG_UNDEFINED_LAZY, REFERENCE_FLAG_DEFINED, @@ -999,7 +998,7 @@ static FLAGS_REFERENCE: &[Flag] = &flags!( REFERENCE_FLAG_PRIVATE_UNDEFINED_NON_LAZY, REFERENCE_FLAG_PRIVATE_UNDEFINED_LAZY, ); -static FLAGS_N_DESC: &[Flag] = &flags!( +const FLAGS_N_DESC: &[Flag] = &flags!( REFERENCED_DYNAMICALLY, N_NO_DEAD_STRIP, N_DESC_DISCARDED, @@ -1010,7 +1009,7 @@ static FLAGS_N_DESC: &[Flag] = &flags!( N_SYMBOL_RESOLVER, N_ALT_ENTRY, ); -static FLAGS_GENERIC_RELOC: &[Flag] = &flags!( +const FLAGS_GENERIC_RELOC: &[Flag] = &flags!( GENERIC_RELOC_VANILLA, GENERIC_RELOC_PAIR, GENERIC_RELOC_SECTDIFF, @@ -1018,7 +1017,7 @@ static FLAGS_GENERIC_RELOC: &[Flag] = &flags!( GENERIC_RELOC_LOCAL_SECTDIFF, GENERIC_RELOC_TLV, ); -static FLAGS_ARM_RELOC: &[Flag] = &flags!( +const FLAGS_ARM_RELOC: &[Flag] = &flags!( ARM_RELOC_VANILLA, ARM_RELOC_PAIR, ARM_RELOC_SECTDIFF, @@ -1030,7 +1029,7 @@ static FLAGS_ARM_RELOC: &[Flag] = &flags!( ARM_RELOC_HALF, ARM_RELOC_HALF_SECTDIFF, ); -static FLAGS_ARM64_RELOC: &[Flag] = &flags!( +const FLAGS_ARM64_RELOC: &[Flag] = &flags!( ARM64_RELOC_UNSIGNED, ARM64_RELOC_SUBTRACTOR, ARM64_RELOC_BRANCH26, @@ -1044,7 +1043,7 @@ static FLAGS_ARM64_RELOC: &[Flag] = &flags!( ARM64_RELOC_ADDEND, ARM64_RELOC_AUTHENTICATED_POINTER, ); -static FLAGS_PPC_RELOC: &[Flag] = &flags!( +const FLAGS_PPC_RELOC: &[Flag] = &flags!( PPC_RELOC_VANILLA, PPC_RELOC_PAIR, PPC_RELOC_BR14, @@ -1062,7 +1061,7 @@ static FLAGS_PPC_RELOC: &[Flag] = &flags!( PPC_RELOC_LO14_SECTDIFF, PPC_RELOC_LOCAL_SECTDIFF, ); -static FLAGS_X86_64_RELOC: &[Flag] = &flags!( +const FLAGS_X86_64_RELOC: &[Flag] = &flags!( X86_64_RELOC_UNSIGNED, X86_64_RELOC_SIGNED, X86_64_RELOC_BRANCH, diff --git a/crates/examples/src/readobj/pe.rs b/crates/examples/src/readobj/pe.rs index 0bf67440..ac3fa0e5 100644 --- a/crates/examples/src/readobj/pe.rs +++ b/crates/examples/src/readobj/pe.rs @@ -721,7 +721,7 @@ fn print_reloc_dir( Some(()) } -static FLAGS_IMAGE_FILE: &[Flag] = &flags!( +const FLAGS_IMAGE_FILE: &[Flag] = &flags!( IMAGE_FILE_RELOCS_STRIPPED, IMAGE_FILE_EXECUTABLE_IMAGE, IMAGE_FILE_LINE_NUMS_STRIPPED, @@ -738,7 +738,7 @@ static FLAGS_IMAGE_FILE: &[Flag] = &flags!( IMAGE_FILE_UP_SYSTEM_ONLY, IMAGE_FILE_BYTES_REVERSED_HI, ); -static FLAGS_IMAGE_FILE_MACHINE: &[Flag] = &flags!( +const FLAGS_IMAGE_FILE_MACHINE: &[Flag] = &flags!( IMAGE_FILE_MACHINE_UNKNOWN, IMAGE_FILE_MACHINE_TARGET_HOST, IMAGE_FILE_MACHINE_I386, @@ -775,7 +775,7 @@ static FLAGS_IMAGE_FILE_MACHINE: &[Flag] = &flags!( IMAGE_FILE_MACHINE_RISCV64, IMAGE_FILE_MACHINE_RISCV128, ); -static FLAGS_IMAGE_SCN: &[Flag] = &flags!( +const FLAGS_IMAGE_SCN: &[Flag] = &flags!( IMAGE_SCN_TYPE_NO_PAD, IMAGE_SCN_CNT_CODE, IMAGE_SCN_CNT_INITIALIZED_DATA, @@ -800,7 +800,7 @@ static FLAGS_IMAGE_SCN: &[Flag] = &flags!( IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE, ); -static FLAGS_IMAGE_SCN_ALIGN: &[Flag] = &flags!( +const FLAGS_IMAGE_SCN_ALIGN: &[Flag] = &flags!( IMAGE_SCN_ALIGN_1BYTES, IMAGE_SCN_ALIGN_2BYTES, IMAGE_SCN_ALIGN_4BYTES, @@ -816,7 +816,7 @@ static FLAGS_IMAGE_SCN_ALIGN: &[Flag] = &flags!( IMAGE_SCN_ALIGN_4096BYTES, IMAGE_SCN_ALIGN_8192BYTES, ); -static FLAGS_IMAGE_REL_I386: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_I386: &[Flag] = &flags!( IMAGE_REL_I386_ABSOLUTE, IMAGE_REL_I386_DIR16, IMAGE_REL_I386_REL16, @@ -829,7 +829,7 @@ static FLAGS_IMAGE_REL_I386: &[Flag] = &flags!( IMAGE_REL_I386_SECREL7, IMAGE_REL_I386_REL32, ); -static FLAGS_IMAGE_REL_MIPS: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_MIPS: &[Flag] = &flags!( IMAGE_REL_MIPS_ABSOLUTE, IMAGE_REL_MIPS_REFHALF, IMAGE_REL_MIPS_REFWORD, @@ -847,7 +847,7 @@ static FLAGS_IMAGE_REL_MIPS: &[Flag] = &flags!( IMAGE_REL_MIPS_REFWORDNB, IMAGE_REL_MIPS_PAIR, ); -static FLAGS_IMAGE_REL_ALPHA: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_ALPHA: &[Flag] = &flags!( IMAGE_REL_ALPHA_ABSOLUTE, IMAGE_REL_ALPHA_REFLONG, IMAGE_REL_ALPHA_REFQUAD, @@ -873,7 +873,7 @@ static FLAGS_IMAGE_REL_ALPHA: &[Flag] = &flags!( IMAGE_REL_ALPHA_GPRELLO, IMAGE_REL_ALPHA_GPRELHI, ); -static FLAGS_IMAGE_REL_PPC: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_PPC: &[Flag] = &flags!( IMAGE_REL_PPC_ABSOLUTE, IMAGE_REL_PPC_ADDR64, IMAGE_REL_PPC_ADDR32, @@ -898,13 +898,13 @@ static FLAGS_IMAGE_REL_PPC: &[Flag] = &flags!( IMAGE_REL_PPC_GPREL, IMAGE_REL_PPC_TOKEN, ); -static FLAGS_IMAGE_REL_PPC_BITS: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_PPC_BITS: &[Flag] = &flags!( IMAGE_REL_PPC_NEG, IMAGE_REL_PPC_BRTAKEN, IMAGE_REL_PPC_BRNTAKEN, IMAGE_REL_PPC_TOCDEFN, ); -static FLAGS_IMAGE_REL_SH: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_SH: &[Flag] = &flags!( IMAGE_REL_SH3_ABSOLUTE, IMAGE_REL_SH3_DIRECT16, IMAGE_REL_SH3_DIRECT32, @@ -931,8 +931,8 @@ static FLAGS_IMAGE_REL_SH: &[Flag] = &flags!( IMAGE_REL_SHM_RELHALF, IMAGE_REL_SHM_PAIR, ); -static FLAGS_IMAGE_REL_SH_BITS: &[Flag] = &flags!(IMAGE_REL_SH_NOMODE,); -static FLAGS_IMAGE_REL_ARM: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_SH_BITS: &[Flag] = &flags!(IMAGE_REL_SH_NOMODE,); +const FLAGS_IMAGE_REL_ARM: &[Flag] = &flags!( IMAGE_REL_ARM_ABSOLUTE, IMAGE_REL_ARM_ADDR32, IMAGE_REL_ARM_ADDR32NB, @@ -951,7 +951,7 @@ static FLAGS_IMAGE_REL_ARM: &[Flag] = &flags!( IMAGE_REL_ARM_BRANCH24T, IMAGE_REL_ARM_BLX23T, ); -static FLAGS_IMAGE_REL_AM: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_AM: &[Flag] = &flags!( IMAGE_REL_AM_ABSOLUTE, IMAGE_REL_AM_ADDR32, IMAGE_REL_AM_ADDR32NB, @@ -963,7 +963,7 @@ static FLAGS_IMAGE_REL_AM: &[Flag] = &flags!( IMAGE_REL_AM_SECTION, IMAGE_REL_AM_TOKEN, ); -static FLAGS_IMAGE_REL_ARM64: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_ARM64: &[Flag] = &flags!( IMAGE_REL_ARM64_ABSOLUTE, IMAGE_REL_ARM64_ADDR32, IMAGE_REL_ARM64_ADDR32NB, @@ -981,7 +981,7 @@ static FLAGS_IMAGE_REL_ARM64: &[Flag] = &flags!( IMAGE_REL_ARM64_ADDR64, IMAGE_REL_ARM64_BRANCH19, ); -static FLAGS_IMAGE_REL_AMD64: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_AMD64: &[Flag] = &flags!( IMAGE_REL_AMD64_ABSOLUTE, IMAGE_REL_AMD64_ADDR64, IMAGE_REL_AMD64_ADDR32, @@ -1011,7 +1011,7 @@ static FLAGS_IMAGE_REL_AMD64: &[Flag] = &flags!( IMAGE_REL_AMD64_INDIR_BR_SWITCHTABLE_FIRST, IMAGE_REL_AMD64_INDIR_BR_SWITCHTABLE_LAST, ); -static FLAGS_IMAGE_REL_IA64: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_IA64: &[Flag] = &flags!( IMAGE_REL_IA64_ABSOLUTE, IMAGE_REL_IA64_IMM14, IMAGE_REL_IA64_IMM22, @@ -1042,7 +1042,7 @@ static FLAGS_IMAGE_REL_IA64: &[Flag] = &flags!( IMAGE_REL_IA64_GPREL32, IMAGE_REL_IA64_ADDEND, ); -static FLAGS_IMAGE_REL_CEF: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_CEF: &[Flag] = &flags!( IMAGE_REL_CEF_ABSOLUTE, IMAGE_REL_CEF_ADDR32, IMAGE_REL_CEF_ADDR64, @@ -1051,7 +1051,7 @@ static FLAGS_IMAGE_REL_CEF: &[Flag] = &flags!( IMAGE_REL_CEF_SECREL, IMAGE_REL_CEF_TOKEN, ); -static FLAGS_IMAGE_REL_CEE: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_CEE: &[Flag] = &flags!( IMAGE_REL_CEE_ABSOLUTE, IMAGE_REL_CEE_ADDR32, IMAGE_REL_CEE_ADDR64, @@ -1060,7 +1060,7 @@ static FLAGS_IMAGE_REL_CEE: &[Flag] = &flags!( IMAGE_REL_CEE_SECREL, IMAGE_REL_CEE_TOKEN, ); -static FLAGS_IMAGE_REL_M32R: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_M32R: &[Flag] = &flags!( IMAGE_REL_M32R_ABSOLUTE, IMAGE_REL_M32R_ADDR32, IMAGE_REL_M32R_ADDR32NB, @@ -1077,16 +1077,16 @@ static FLAGS_IMAGE_REL_M32R: &[Flag] = &flags!( IMAGE_REL_M32R_SECREL32, IMAGE_REL_M32R_TOKEN, ); -static FLAGS_IMAGE_REL_EBC: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_EBC: &[Flag] = &flags!( IMAGE_REL_EBC_ABSOLUTE, IMAGE_REL_EBC_ADDR32NB, IMAGE_REL_EBC_REL32, IMAGE_REL_EBC_SECTION, IMAGE_REL_EBC_SECREL, ); -static FLAGS_IMAGE_SYM: &[Flag] = +const FLAGS_IMAGE_SYM: &[Flag] = &flags!(IMAGE_SYM_UNDEFINED, IMAGE_SYM_ABSOLUTE, IMAGE_SYM_DEBUG,); -static FLAGS_IMAGE_SYM_TYPE: &[Flag] = &flags!( +const FLAGS_IMAGE_SYM_TYPE: &[Flag] = &flags!( IMAGE_SYM_TYPE_NULL, IMAGE_SYM_TYPE_VOID, IMAGE_SYM_TYPE_CHAR, @@ -1105,13 +1105,13 @@ static FLAGS_IMAGE_SYM_TYPE: &[Flag] = &flags!( IMAGE_SYM_TYPE_DWORD, IMAGE_SYM_TYPE_PCODE, ); -static FLAGS_IMAGE_SYM_DTYPE: &[Flag] = &flags!( +const FLAGS_IMAGE_SYM_DTYPE: &[Flag] = &flags!( IMAGE_SYM_DTYPE_NULL, IMAGE_SYM_DTYPE_POINTER, IMAGE_SYM_DTYPE_FUNCTION, IMAGE_SYM_DTYPE_ARRAY, ); -static FLAGS_IMAGE_SYM_CLASS: &[Flag] = &flags!( +const FLAGS_IMAGE_SYM_CLASS: &[Flag] = &flags!( IMAGE_SYM_CLASS_END_OF_FUNCTION, IMAGE_SYM_CLASS_NULL, IMAGE_SYM_CLASS_AUTOMATIC, @@ -1141,7 +1141,7 @@ static FLAGS_IMAGE_SYM_CLASS: &[Flag] = &flags!( IMAGE_SYM_CLASS_WEAK_EXTERNAL, IMAGE_SYM_CLASS_CLR_TOKEN, ); -static FLAGS_IMAGE_COMDAT_SELECT: &[Flag] = &flags!( +const FLAGS_IMAGE_COMDAT_SELECT: &[Flag] = &flags!( IMAGE_COMDAT_SELECT_NODUPLICATES, IMAGE_COMDAT_SELECT_ANY, IMAGE_COMDAT_SELECT_SAME_SIZE, @@ -1150,7 +1150,7 @@ static FLAGS_IMAGE_COMDAT_SELECT: &[Flag] = &flags!( IMAGE_COMDAT_SELECT_LARGEST, IMAGE_COMDAT_SELECT_NEWEST, ); -static FLAGS_IMAGE_SUBSYSTEM: &[Flag] = &flags!( +const FLAGS_IMAGE_SUBSYSTEM: &[Flag] = &flags!( IMAGE_SUBSYSTEM_UNKNOWN, IMAGE_SUBSYSTEM_NATIVE, IMAGE_SUBSYSTEM_WINDOWS_GUI, @@ -1167,7 +1167,7 @@ static FLAGS_IMAGE_SUBSYSTEM: &[Flag] = &flags!( IMAGE_SUBSYSTEM_WINDOWS_BOOT_APPLICATION, IMAGE_SUBSYSTEM_XBOX_CODE_CATALOG, ); -static FLAGS_IMAGE_DLLCHARACTERISTICS: &[Flag] = &flags!( +const FLAGS_IMAGE_DLLCHARACTERISTICS: &[Flag] = &flags!( IMAGE_DLLCHARACTERISTICS_HIGH_ENTROPY_VA, IMAGE_DLLCHARACTERISTICS_DYNAMIC_BASE, IMAGE_DLLCHARACTERISTICS_FORCE_INTEGRITY, @@ -1180,7 +1180,7 @@ static FLAGS_IMAGE_DLLCHARACTERISTICS: &[Flag] = &flags!( IMAGE_DLLCHARACTERISTICS_GUARD_CF, IMAGE_DLLCHARACTERISTICS_TERMINAL_SERVER_AWARE, ); -static FLAGS_IMAGE_DIRECTORY_ENTRY: &[Flag] = &flags!( +const FLAGS_IMAGE_DIRECTORY_ENTRY: &[Flag] = &flags!( IMAGE_DIRECTORY_ENTRY_EXPORT, IMAGE_DIRECTORY_ENTRY_IMPORT, IMAGE_DIRECTORY_ENTRY_RESOURCE, @@ -1197,7 +1197,7 @@ static FLAGS_IMAGE_DIRECTORY_ENTRY: &[Flag] = &flags!( IMAGE_DIRECTORY_ENTRY_DELAY_IMPORT, IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR, ); -static FLAGS_IMAGE_REL_BASED: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_BASED: &[Flag] = &flags!( IMAGE_REL_BASED_ABSOLUTE, IMAGE_REL_BASED_HIGH, IMAGE_REL_BASED_LOW, @@ -1210,17 +1210,17 @@ static FLAGS_IMAGE_REL_BASED: &[Flag] = &flags!( IMAGE_REL_BASED_MACHINE_SPECIFIC_9, IMAGE_REL_BASED_DIR64, ); -static FLAGS_IMAGE_REL_IA64_BASED: &[Flag] = &flags!(IMAGE_REL_BASED_IA64_IMM64,); -static FLAGS_IMAGE_REL_MIPS_BASED: &[Flag] = +const FLAGS_IMAGE_REL_IA64_BASED: &[Flag] = &flags!(IMAGE_REL_BASED_IA64_IMM64,); +const FLAGS_IMAGE_REL_MIPS_BASED: &[Flag] = &flags!(IMAGE_REL_BASED_MIPS_JMPADDR, IMAGE_REL_BASED_MIPS_JMPADDR16,); -static FLAGS_IMAGE_REL_ARM_BASED: &[Flag] = +const FLAGS_IMAGE_REL_ARM_BASED: &[Flag] = &flags!(IMAGE_REL_BASED_ARM_MOV32, IMAGE_REL_BASED_THUMB_MOV32,); -static FLAGS_IMAGE_REL_RISCV_BASED: &[Flag] = &flags!( +const FLAGS_IMAGE_REL_RISCV_BASED: &[Flag] = &flags!( IMAGE_REL_BASED_RISCV_HIGH20, IMAGE_REL_BASED_RISCV_LOW12I, IMAGE_REL_BASED_RISCV_LOW12S, ); -static FLAGS_RT: &[Flag] = &flags!( +const FLAGS_RT: &[Flag] = &flags!( RT_CURSOR, RT_BITMAP, RT_ICON, diff --git a/src/elf.rs b/src/elf.rs index 202b3a2c..da68ec2d 100644 --- a/src/elf.rs +++ b/src/elf.rs @@ -1308,11 +1308,11 @@ pub const PF_MASKOS: u32 = 0x0ff0_0000; pub const PF_MASKPROC: u32 = 0xf000_0000; /// Note name for core files. -pub static ELF_NOTE_CORE: &[u8] = b"CORE"; +pub const ELF_NOTE_CORE: &[u8] = b"CORE"; /// Note name for linux core files. /// /// Notes in linux core files may also use `ELF_NOTE_CORE`. -pub static ELF_NOTE_LINUX: &[u8] = b"LINUX"; +pub const ELF_NOTE_LINUX: &[u8] = b"LINUX"; // Values for `NoteHeader*::n_type` in core files. // @@ -1826,14 +1826,18 @@ pub struct NoteHeader64 { } /// Solaris entries in the note section have this name. -pub static ELF_NOTE_SOLARIS: &[u8] = b"SUNW Solaris"; +pub const ELF_NOTE_SOLARIS: &[u8] = b"SUNW Solaris"; // Values for `n_type` when the name is `ELF_NOTE_SOLARIS`. /// Desired pagesize for the binary. pub const NT_SOLARIS_PAGESIZE_HINT: u32 = 1; /// GNU entries in the note section have this name. -pub static ELF_NOTE_GNU: &[u8] = b"GNU"; +pub const ELF_NOTE_GNU: &[u8] = b"GNU"; + +/// Go entries in the note section have this name. +// See https://go-review.googlesource.com/9520 and https://go-review.googlesource.com/10704. +pub const ELF_NOTE_GO: &[u8] = b"Go"; // Note types for `ELF_NOTE_GNU`. @@ -1870,6 +1874,12 @@ pub const NT_GNU_HWCAP: u32 = 2; /// The descriptor consists of any nonzero number of bytes. pub const NT_GNU_BUILD_ID: u32 = 3; +/// Build ID bits as generated by Go's gc compiler. +/// +/// The descriptor consists of any nonzero number of bytes. +// See https://go-review.googlesource.com/10707. +pub const NT_GO_BUILD_ID: u32 = 4; + /// Version note generated by GNU gold containing a version string. pub const NT_GNU_GOLD_VERSION: u32 = 4; diff --git a/src/read/elf/note.rs b/src/read/elf/note.rs index fc5aa775..84d4179d 100644 --- a/src/read/elf/note.rs +++ b/src/read/elf/note.rs @@ -113,21 +113,24 @@ impl<'data, Elf: FileHeader> Note<'data, Elf> { self.header.n_descsz(endian) } - /// Return the bytes for the name field following the `NoteHeader`, - /// excluding any null terminator. + /// Return the bytes for the name field following the `NoteHeader`. /// - /// This field is usually a string including a null terminator + /// This field is usually a string including one or more trailing null bytes /// (but it is not required to be). /// - /// The length of this field (including any null terminator) is given by - /// `n_namesz`. + /// The length of this field is given by `n_namesz`. + pub fn name_bytes(&self) -> &'data [u8] { + self.name + } + + /// Return the bytes for the name field following the `NoteHeader`, + /// excluding all trailing null bytes. pub fn name(&self) -> &'data [u8] { - if let Some((last, name)) = self.name.split_last() { - if *last == 0 { - return name; - } + let mut name = self.name; + while let [rest @ .., 0] = name { + name = rest; } - self.name + name } /// Return the bytes for the desc field following the `NoteHeader`.