r6rs-elf 0.1.0

ELF reader and parser in R6RS Scheme

$ akku update
$ akku install r6rs-elf
$ .akku/env
Authors

Nikolaos Chatzikonstantinou

Homepage

Information missing.

License

GPL-3.0-or-later

Dependencies

No dependencies.

Source code

https://codeberg.org/annoyingusername/r6rs-elf.git git
ef853e33f3243ead681c0a24f480750ac7b21a391c5eb39089285b9d48e2aecd

Package contents

  • (parser elf bstree) R6
    • → <bstree> make-bstree bstree? bstree-value bstree-left bstree-right vector->bstree
    • ← (rnrs base) R6
    • ← (rnrs records syntactic) R6
  • (parser elf cstrings) R6
    • → parse-ascii-string parse-cstrings parse-cstring-bstree search-cstring-bstree
    • ← (rnrs base) R6
    • ← (rnrs bytevectors) R6
    • ← (rnrs control) R6
    • ← (rnrs io ports) R6
    • ← (rnrs mutable-pairs) R6
    • ← (parser elf bstree)
  • (parser elf enums) R6
    • → elf-identifier? EI_MAG0 EI_MAG1 EI_MAG2 EI_MAG3 EI_CLASS EI_DATA EI_VERSION EI_OSABI EI_ABIVERSION EI_PAD EI_NIDENT elf-magic? ELFMAG0 ELFMAG1 ELFMAG2 ELFMAG3 elf-class? ELFCLASSNONE ELFCLASS32 ELFCLASS64 elf-data? ELFDATANONE ELFDATA2LSB ELFDATA2MSB elf-version? EV_NONE EV_CURRENT elf-osabi? ELFOSABI_NONE ELFOSABI_SYSV ELFOSABI_HPUX ELFOSABI_NETBSD ELFOSABI_GNU ELFOSABI_SOLARIS ELFOSABI_AIX ELFOSABI_IRIX ELFOSABI_FREEBSD ELFOSABI_TRU64 ELFOSABI_MODESTO ELFOSABI_OPENBSD ELFOSABI_ARM ELFOSABI_ARM ELFOSABI_STANDALONE elf-abiversion? elf-pad? elf-type? ET_NONE ET_REL ET_EXEC ET_DYN ET_CORE elf-machine? EM_NONE EM_M32 EM_SPARC EM_386 EM_68K EM_88K EM_IAMCU EM_860 EM_MIPS EM_S370 EM_MIPS_RS3_LE EM_PARISC EM_VPP500 EM_SPARC32PLUS EM_960 EM_PPC EM_PPC64 EM_S390 EM_SPU EM_V800 EM_FR20 EM_RH32 EM_RCE EM_ARM EM_FAKE_ALPHA EM_SH EM_SPARCV9 EM_TRICORE EM_ARC EM_H8_300 EM_H8_300H EM_H8S EM_H8_500 EM_IA_64 EM_MIPS_X EM_COLDFIRE EM_68HC12 EM_MMA EM_PCP EM_NCPU EM_NDR1 EM_STARCORE EM_ME16 EM_ST100 EM_TINYJ EM_X86_64 EM_PDSP EM_PDP10 EM_PDP11 EM_FX66 EM_ST9PLUS EM_ST7 EM_68HC16 EM_68HC11 EM_68HC08 EM_68HC05 EM_SVX EM_ST19 EM_VAX EM_CRIS EM_JAVELIN EM_FIREPATH EM_ZSP EM_MMIX EM_HUANY EM_PRISM EM_AVR EM_FR30 EM_D10V EM_D30V EM_V850 EM_M32R EM_MN10300 EM_MN10200 EM_PJ EM_OPENRISC EM_ARC_COMPACT EM_XTENSA EM_VIDEOCORE EM_TMM_GPP EM_NS32K EM_TPC EM_SNP1K EM_ST200 EM_IP2K EM_MAX EM_CR EM_F2MC16 EM_MSP430 EM_BLACKFIN EM_SE_C33 EM_SEP EM_ARCA EM_UNICORE EM_EXCESS EM_DXP EM_ALTERA_NIOS2 EM_CRX EM_XGATE EM_C166 EM_M16C EM_DSPIC30F EM_CE EM_M32C EM_TSK3000 EM_RS08 EM_SHARC EM_ECOG2 EM_SCORE7 EM_DSP24 EM_VIDEOCORE3 EM_LATTICEMICO32 EM_SE_C17 EM_TI_C6000 EM_TI_C2000 EM_TI_C5500 EM_TI_ARP32 EM_TI_PRU EM_MMDSP_PLUS EM_CYPRESS_M8C EM_R32C EM_TRIMEDIA EM_QDSP6 EM_8051 EM_STXP7X EM_NDS32 EM_ECOG1X EM_MAXQ30 EM_XIMO16 EM_MANIK EM_CRAYNV2 EM_RX EM_METAG EM_MCST_ELBRUS EM_ECOG16 EM_CR16 EM_ETPU EM_SLE9X EM_L10M EM_K10M EM_AARCH64 EM_AVR32 EM_STM8 EM_TILE64 EM_TILEPRO EM_MICROBLAZE EM_CUDA EM_TILEGX EM_CLOUDSHIELD EM_COREA_1ST EM_COREA_2ND EM_ARCV2 EM_OPEN8 EM_RL78 EM_VIDEOCORE5 EM_78KOR EM_56800EX EM_BA1 EM_BA2 EM_XCORE EM_MCHP_PIC EM_INTELGT EM_KM32 EM_KMX32 EM_EMX16 EM_EMX8 EM_KVARC EM_CDP EM_COGE EM_COOL EM_NORC EM_CSR_KALIMBA EM_Z80 EM_VISIUM EM_FT32 EM_MOXIE EM_AMDGPU EM_RISCV EM_BPF EM_CSKY EM_LOONGARCH segment-type? PT_NULL PT_LOAD PT_DYNAMIC PT_INTERP PT_NOTE PT_SHLIB PT_PHDR PT_TLS PT_NUM PT_LOOS PT_GNU_EH_FRAME PT_GNU_STACK PT_GNU_RELRO PT_GNU_PROPERTY PT_LOSUNW PT_SUNWBSS PT_SUNWSTACK PT_HISUNW PT_HIOS PT_LOPROC PT_HIPROC segment-flags? PF_X PF_W PF_R section-type? SHT_NULL SHT_PROGBITS SHT_SYMTAB SHT_STRTAB SHT_RELA SHT_HASH SHT_DYNAMIC SHT_NOTE SHT_NOBITS SHT_REL SHT_SHLIB SHT_DYNSYM SHT_INIT_ARRAY SHT_FINI_ARRAY SHT_PREINIT_ARRAY SHT_GROUP SHT_SYMTAB_SHNDX SHT_NUM SHT_LOOS SHT_HIOS SHT_LOPROC SHT_HIPROC SHT_LOUSER SHT_HIUSER section-flag? SHF_WRITE SHF_ALLOC SHF_EXECINSTR SHF_MERGE SHF_STRINGS SHF_INFO_LINK SHF_LINK_ORDER SHF_OS_NONCONFORMING SHF_GROUP SHF_TLS dynamic-tag? DT_NULL DT_NEEDED DT_PLTRELSZ DT_PLTGOT DT_HASH DT_STRTAB DT_SYMTAB DT_RELA DT_RELASZ DT_RELAENT DT_STRSZ DT_SYMENT DT_INIT DT_FINI DT_SONAME DT_RPATH DT_SYMBOLIC DT_REL DT_RELSZ DT_RELENT DT_PLTREL DT_DEBUG DT_TEXTREL DT_JMPREL DT_BIND_NOW DT_INIT_ARRAY DT_FINI_ARRAY DT_INIT_ARRAYSZ DT_FINI_ARRAYSZ DT_RUNPATH DT_FLAGS DT_ENCODING DT_PREINIT_ARRAY DT_PREINIT_ARRAYSZ DT_NUM DT_LOOS DT_HIOS DT_LOPROC DT_HIPROC dynamic-guile-tag? DT_LOGUILE DT_GUILE_GC_ROOT DT_GUILE_GC_ROOT_SZ DT_GUILE_ENTRY DT_GUILE_VM_VERSION DT_GUILE_FRAME_MAPS DT_HIGUILE STB_LOCAL STB_GLOBAL STB_WEAK STB_NUM STB_LOOS STB_GNU_UNIQUE STB_HIOS STB_LOPROC STB_HIPROC STT_NOTYPE STT_OBJECT STT_FUNC STT_SECTION STT_FILE STT_COMMON STT_TLS STT_NUM STT_LOOS STT_GNU_IFUNC STT_HIOS STT_LOPROC STT_HIPROC STV_DEFAULT STV_INTERNAL STV_HIDDEN STV_PROTECTED NT_PRSTATUS NT_PRFPREG NT_FPREGSET NT_PRPSINFO NT_PRXREG NT_TASKSTRUCT NT_PLATFORM NT_AUXV NT_GWINDOWS NT_ASRS NT_PSTATUS NT_PSINFO NT_PRCRED NT_UTSNAME NT_LWPSTATUS NT_LWPSINFO NT_PRFPXREG NT_SIGINFO NT_FILE NT_PRXFPREG NT_PPC_VMX NT_PPC_SPE NT_PPC_VSX NT_PPC_TAR NT_PPC_PPR NT_PPC_DSCR NT_PPC_EBB NT_PPC_PMU NT_PPC_TM_CGPR NT_PPC_TM_CFPR NT_PPC_TM_CVMX NT_PPC_TM_CVSX NT_PPC_TM_SPR NT_PPC_TM_CTAR NT_PPC_TM_CPPR NT_PPC_TM_CDSCR NT_PPC_PKEY NT_386_TLS NT_386_IOPERM NT_X86_XSTATE NT_S390_HIGH_GPRS NT_S390_TIMER NT_S390_TODCMP NT_S390_TODPREG NT_S390_CTRS NT_S390_PREFIX NT_S390_LAST_BREAK NT_S390_SYSTEM_CALL NT_S390_TDB NT_S390_VXRS_LOW NT_S390_VXRS_HIGH NT_S390_GS_CB NT_S390_GS_BC NT_S390_RI_CB NT_ARM_VFP NT_ARM_TLS NT_ARM_HW_BREAK NT_ARM_HW_WATCH NT_ARM_SYSTEM_CALL NT_ARM_SVE NT_ARM_PAC_MASK NT_ARM_PACA_KEYS NT_ARM_PACG_KEYS NT_ARM_TAGGED_ADDR_CTRL NT_ARM_PAC_ENABLED_KEYS NT_VMCOREDD NT_MIPS_DSP NT_MIPS_FP_MODE NT_MIPS_MSA NT_VERSION PN_XNUM SHN_UNDEF SHN_LORESERVE SHN_LOPROC SHN_HIPROC SHN_ABS SHN_COMMON SHN_HIRESERVE SHN_XINDEX
    • ← (rnrs arithmetic bitwise) R6
    • ← (rnrs base) R6
    • ← (rnrs bytevectors) R6
    • ← (rnrs lists) R6
  • (parser elf) R6
    • → <elf-ident> make-elf-ident elf-ident? elf-ident-magic elf-ident-class elf-ident data elf-ident-version elf-ident-osabi elf-ident-abiversion elf-ident-pad <elf-header> make-elf-header elf-header? elf-header-ident elf-header-type elf-header-machine elf-header-entry elf-header-phoff elf-header-shoff elf-header-flags elf-header-ehsize elf-header-phentsize elf-header-phnum elf-header-shentsize elf-header-shnum elf-header-shstrndx <elf-region-header> make-elf-region-header elf-region-header? elf-region-header-offset elf-region-header-size <elf-program-header> make-elf-program-header elf-program-header? elf-program-header-type elf-program-header-offset elf-program-header-vaddr elf-program-header-paddr elf-program-header-filesz elf-program-header-memsz elf-program-header-flags elf-program-header-align make-elf32-program-header make-elf64-program-header <elf-section-header> make-elf-section-header elf-section-header? elf-section-header-name elf-section-header-type elf-section-header-flags elf-section-header-addr elf-section-header-offset elf-section-header-size elf-section-header-link elf-section-header-info elf-section-header-addralign elf-section-header-entsize <elf-sym> make-elf-sym elf-sym? elf-sym-name elf-sym-value elf-sym-size elf-sym-info elf-sym-other elf-sym-shndx make-elf32-symbol make-elf64-symbol <elf-rel> make-elf-rel elf-rel? elf-rel-info elf-rel-offset <elf-rela> make-elf-rela elf-rela? elf-rela-info elf-rela-offset elf-rela-addend <elf-dyn> make-elf-dyn elf-dyn? elf-dyn-tag elf-dyn-val <elf-nhdr> make-elf-nhdr elf-nhdr? elf-nhdr-namesz elf-nhdr-descsz elf-nhdr-type <elf-note> make-elf-note elf-note? elf-note-name elf-note-desc valid-elf-ident? valid-elf-header? read-elf-ident read-elf-header read-elf-program-header read-elf-segment for-each-program-header read-elf-section-header read-elf-section for-each-section-header read-elf-sym for-each-sym read-elf-rel for-each-rel read-elf-rela for-each-rela read-elf-dyn for-each-dyn read-elf-nhdr read-elf-note for-each-note seek-to-program-header! seek-to-section-header! read-elf-ident-bytes! read-elf-header-bytes! read-elf-program-header-bytes! read-elf-segment-bytes! read-elf-section-header-bytes! read-elf-section-bytes! read-elf-sym-bytes! read-elf-rel-bytes! read-elf-rela-bytes! read-elf-dyn-bytes! read-elf-nhdr-bytes! read-elf-note-bytes! parse-elf-ident parse-elf-ident-len parse-elf-header parse-elf-header-len parse-elf-program-header parse-elf-program-header-len parse-elf-section-header parse-elf-section-header-len parse-elf-sym parse-elf-sym-len parse-elf-rel parse-elf-rel-len parse-elf-rela parse-elf-rela-len parse-elf-dyn parse-elf-dyn-len parse-elf-nhdr parse-elf-nhdr-len parse-elf-note
    • ← (rnrs base) R6
    • ← (rnrs arithmetic bitwise) R6
    • ← (rnrs bytevectors) R6
    • ← (rnrs control) R6
    • ← (rnrs io ports) R6
    • ← (rnrs records syntactic) R6
    • ← (rnrs records procedural) R6
    • ← (rnrs records inspection) R6
    • ← (rnrs syntax-case) R6
    • ← (parser elf cstrings)
    • ← (parser elf enums)

Version history

  • 2025-11-08 ~ 0.1.0