static bfd_boolean elf32_sparc_grok_psinfo (bfd *abfd, Elf_Internal_Note *note) { switch (note->descsz) { default: return FALSE; case 260: /* Solaris prpsinfo_t. */ elf_tdata (abfd)->core_program = _bfd_elfcore_strndup (abfd, note->descdata + 84, 16); elf_tdata (abfd)->core_command = _bfd_elfcore_strndup (abfd, note->descdata + 100, 80); break; case 336: /* Solaris psinfo_t. */ elf_tdata (abfd)->core_program = _bfd_elfcore_strndup (abfd, note->descdata + 88, 16); elf_tdata (abfd)->core_command = _bfd_elfcore_strndup (abfd, note->descdata + 104, 80); break; } return TRUE; }
static bfd_boolean tilegx_elf_grok_psinfo (bfd *abfd, Elf_Internal_Note *note) { if (note->descsz != TILEGX_PRPSINFO_SIZEOF) return FALSE; elf_tdata (abfd)->core->program = _bfd_elfcore_strndup (abfd, note->descdata + TILEGX_PRPSINFO_OFFSET_PR_FNAME, 16); elf_tdata (abfd)->core->command = _bfd_elfcore_strndup (abfd, note->descdata + TILEGX_PRPSINFO_OFFSET_PR_PSARGS, ELF_PR_PSARGS_SIZE); /* Note that for some reason, a spurious space is tacked onto the end of the args in some (at least one anyway) implementations, so strip it off if it exists. */ { char *command = elf_tdata (abfd)->core->command; int n = strlen (command); if (0 < n && command[n - 1] == ' ') command[n - 1] = '\0'; } return TRUE; }
static bfd_boolean elf32_am33lin_grok_psinfo (bfd *abfd, Elf_Internal_Note *note) { switch (note->descsz) { default: return FALSE; case 124: /* Linux/am33 elf_prpsinfo */ elf_tdata (abfd)->core->program = _bfd_elfcore_strndup (abfd, note->descdata + 28, 16); elf_tdata (abfd)->core->command = _bfd_elfcore_strndup (abfd, note->descdata + 44, 80); } /* Note that for some reason, a spurious space is tacked onto the end of the args in some (at least one anyway) implementations, so strip it off if it exists. */ { char *command = elf_tdata (abfd)->core->command; int n = strlen (command); if (0 < n && command[n - 1] == ' ') command[n - 1] = '\0'; } return TRUE; }