static bfd_boolean tilegx_elf_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) { int offset; size_t size; if (note->descsz != TILEGX_PRSTATUS_SIZEOF) return FALSE; /* pr_cursig */ elf_tdata (abfd)->core->signal = bfd_get_16 (abfd, note->descdata + TILEGX_PRSTATUS_OFFSET_PR_CURSIG); /* pr_pid */ elf_tdata (abfd)->core->pid = bfd_get_32 (abfd, note->descdata + TILEGX_PRSTATUS_OFFSET_PR_PID); /* pr_reg */ offset = TILEGX_PRSTATUS_OFFSET_PR_REG; size = TILEGX_GREGSET_T_SIZE; /* Make a ".reg/999" section. */ return _bfd_elfcore_make_pseudosection (abfd, ".reg", size, note->descpos + offset); }
/* Support for core dump NOTE sections. */ static bfd_boolean elf32_am33lin_grok_prstatus (bfd *abfd, Elf_Internal_Note *note) { int offset; unsigned int size; switch (note->descsz) { default: return FALSE; case 184: case 188: /* Linux/am33 */ /* pr_cursig */ elf_tdata (abfd)->core->signal = bfd_get_16 (abfd, note->descdata + 12); /* pr_pid */ elf_tdata (abfd)->core->lwpid = bfd_get_32 (abfd, note->descdata + 24); /* pr_reg */ offset = 72; size = 112; break; } /* Make a ".reg/999" section. */ return _bfd_elfcore_make_pseudosection (abfd, ".reg", size, note->descpos + offset); }