Used words

invalid arch-dependent ELF magic reloc offset is out of the segment relocation out of range % relocation 0x%s is not implemented yet #include /* Check if EHDR is a valid ELF header. */ grub_err_t grub_arch_dl_check_header (void *ehdr) { Elf64_Ehdr *e = ehdr the magic numbers. (e->e_identEI_CLASS != ELFCLASS64 || e->e_identEI_DATA ELFDATA2LSB e->e_machine EM_X86_64) return grub_error (GRUB_ERR_BAD_OS N_()) GRUB_ERR_NONE } Relocate symbols. grub_arch_dl_relocate_symbols (grub_dl_t mod void *ehdr Elf_Shdr *s grub_dl_segment_t seg) Elf64_Rela *rel *max for (rel (Elf64_Rela *) ((char ehdr + s->sh_offset) max rel s->sh_size) < max s->sh_entsize)) Elf64_Word *addr32 Elf64_Xword *addr64 Elf64_Sym *sym (seg->size rel->r_offset) return (GRUB_ERR_BAD_MODULE ) addr32 (Elf64_Word seg->addr rel->r_offset) addr64 (Elf64_Xword addr32 sym (Elf64_Sym mod->symtab mod->symsize * ELF_R_SYM (rel->r_info)) switch (ELF_R_TYPE (rel->r_info)) { case R_X86_64_64: *addr64 += rel->r_addend sym->st_value break R_X86_64_PC32: R_X86_64_PLT32: grub_int64_t value value ((grub_int32_t) *addr32) sym->st_value - (Elf64_Xword) (grub_addr_t) rel->r_offset (value (grub_int32_t) value) *addr32 R_X86_64_PC64: R_X86_64_32: grub_uint64_t (grub_uint32_t) R_X86_64_32S: default: char rel_info17 log16(2^64) 16 plus NUL. grub_snprintf (rel_info sizeof (rel_info) 1 PRIxGRUB_UINT64_T ELF_R_TYPE (GRUB_ERR_NOT_IMPLEMENTED_YET N_() rel_info) }
Create your own
... AND SHOP IT!

Hey, your artwork is awesome!

Did you know that you can easily buy one of these cool products?

Share your Artwork