diff options
Diffstat (limited to 'bfd/aix5ppc-core.c')
-rw-r--r-- | bfd/aix5ppc-core.c | 132 |
1 files changed, 70 insertions, 62 deletions
diff --git a/bfd/aix5ppc-core.c b/bfd/aix5ppc-core.c index 9db4f5468c..b0a9c5e715 100644 --- a/bfd/aix5ppc-core.c +++ b/bfd/aix5ppc-core.c @@ -28,10 +28,14 @@ #include "sysdep.h" #include "libbfd.h" -const bfd_target * xcoff64_core_p PARAMS ((bfd *)); -boolean xcoff64_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); -char * xcoff64_core_file_failing_command PARAMS ((bfd *)); -int xcoff64_core_file_failing_signal PARAMS ((bfd *)); +const bfd_target *xcoff64_core_p + PARAMS ((bfd *)); +bfd_boolean xcoff64_core_file_matches_executable_p + PARAMS ((bfd *, bfd *)); +char *xcoff64_core_file_failing_command + PARAMS ((bfd *)); +int xcoff64_core_file_failing_signal + PARAMS ((bfd *)); /* Aix 5.1 system include file. */ @@ -62,11 +66,11 @@ xcoff64_core_p (abfd) if (bfd_seek (abfd, 0, SEEK_SET) != 0) goto xcoff64_core_p_error; - if (sizeof (struct core_dumpxx) + if (sizeof (struct core_dumpxx) != bfd_bread (&core, sizeof (struct core_dumpxx), abfd)) goto xcoff64_core_p_error; - if (bfd_stat (abfd, &statbuf) < 0) + if (bfd_stat (abfd, &statbuf) < 0) goto xcoff64_core_p_error; /* Sanity checks @@ -82,24 +86,24 @@ xcoff64_core_p (abfd) See rs6000-core.c for comment on size of core If there isn't enough of a real core file, bail. */ - if ((CORE_VERSION_1 != (core.c_flag & CORE_VERSION_1)) - || (0 != core.c_entries) - || (! (IS_PROC64 (&core.c_u.U_proc))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_fdsinfox))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_loader))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_loader + core.c_lsize))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_thr))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_segregion))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_stack))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_stack + core.c_size))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_data))) - || ((CHECK_FILE_OFFSET (statbuf, core.c_data + core.c_datasize))) - || (! (core.c_flag & UBLOCK_VALID)) - || (! (core.c_flag & LE_VALID))) + if ((CORE_VERSION_1 != (core.c_flag & CORE_VERSION_1)) + || (0 != core.c_entries) + || (! (IS_PROC64 (&core.c_u.U_proc))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_fdsinfox))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_loader))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_loader + core.c_lsize))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_thr))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_segregion))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_stack))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_stack + core.c_size))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_data))) + || ((CHECK_FILE_OFFSET (statbuf, core.c_data + core.c_datasize))) + || (! (core.c_flag & UBLOCK_VALID)) + || (! (core.c_flag & LE_VALID))) goto xcoff64_core_p_error; /* Check for trucated stack or general truncating. */ - if ((! (core.c_flag & USTACK_VALID)) + if ((! (core.c_flag & USTACK_VALID)) || (core.c_flag & CORE_TRUNC)) { bfd_set_error (bfd_error_file_truncated); @@ -109,7 +113,7 @@ xcoff64_core_p (abfd) new_core_hdr = (struct core_dumpxx *) bfd_zalloc (abfd, sizeof (struct core_dumpxx)); - if (NULL == new_core_hdr) + if (NULL == new_core_hdr) return return_value; memcpy (new_core_hdr, &core, sizeof (struct core_dumpxx)); @@ -117,7 +121,7 @@ xcoff64_core_p (abfd) /* .stack section. */ sec = bfd_make_section_anyway (abfd, ".stack"); - if (NULL == sec) + if (NULL == sec) return return_value; sec->flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS; @@ -127,7 +131,7 @@ xcoff64_core_p (abfd) /* .reg section for all registers. */ sec = bfd_make_section_anyway (abfd, ".reg"); - if (NULL == sec) + if (NULL == sec) return return_value; sec->flags = SEC_HAS_CONTENTS | SEC_IN_MEMORY; @@ -138,7 +142,7 @@ xcoff64_core_p (abfd) /* .ldinfo section. To actually find out how long this section is in this particular - core dump would require going down the whole list of struct + core dump would require going down the whole list of struct ld_info's. See if we can just fake it. */ sec = bfd_make_section_anyway (abfd, ".ldinfo"); if (NULL == sec) @@ -152,10 +156,10 @@ xcoff64_core_p (abfd) /* AIX 4 adds data sections from loaded objects to the core file, which can be found by examining ldinfo, and anonymously mmapped regions. */ - + /* .data section from executable. */ sec = bfd_make_section_anyway (abfd, ".data"); - if (NULL == sec) + if (NULL == sec) return return_value; sec->flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS; @@ -165,20 +169,20 @@ xcoff64_core_p (abfd) /* .data sections from loaded objects. */ ld_offset = core.c_loader; - - while (1) + + while (1) { - if (bfd_seek (abfd, ld_offset, SEEK_SET) != 0) + if (bfd_seek (abfd, ld_offset, SEEK_SET) != 0) return return_value; if (sizeof (struct __ld_info64) != - bfd_bread (&ldinfo, sizeof (struct __ld_info64), abfd)) + bfd_bread (&ldinfo, sizeof (struct __ld_info64), abfd)) return return_value; - if (ldinfo.ldinfo_core) + if (ldinfo.ldinfo_core) { sec = bfd_make_section_anyway (abfd, ".data"); - if (NULL == sec) + if (NULL == sec) return return_value; sec->flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS; @@ -193,20 +197,20 @@ xcoff64_core_p (abfd) } /* .vmdata sections from anonymously mmapped regions. */ - if (core.c_vmregions) + if (core.c_vmregions) { - if (bfd_seek (abfd, core.c_vmm, SEEK_SET) != 0) + if (bfd_seek (abfd, core.c_vmm, SEEK_SET) != 0) return return_value; - for (i = 0; i < core.c_vmregions; i++) + for (i = 0; i < core.c_vmregions; i++) if (sizeof (struct vm_infox) != - bfd_bread (&vminfo, sizeof (struct vm_infox), abfd)) + bfd_bread (&vminfo, sizeof (struct vm_infox), abfd)) return return_value; - if (vminfo.vminfo_offset) + if (vminfo.vminfo_offset) { sec = bfd_make_section_anyway (abfd, ".vmdata"); - if (NULL == sec) + if (NULL == sec) return return_value; sec->flags = SEC_ALLOC | SEC_LOAD | SEC_HAS_CONTENTS; @@ -217,17 +221,17 @@ xcoff64_core_p (abfd) } return_value = abfd->xvec; /* This is garbage for now. */ - + xcoff64_core_p_error: - if (bfd_get_error () != bfd_error_system_call) + if (bfd_get_error () != bfd_error_system_call) bfd_set_error (bfd_error_wrong_format); - + return return_value; } -/* Return `true' if given core is from the given executable. */ +/* Return `TRUE' if given core is from the given executable. */ -boolean +bfd_boolean xcoff64_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd; bfd *exec_bfd; @@ -236,22 +240,22 @@ xcoff64_core_file_matches_executable_p (core_bfd, exec_bfd) char *path, *s; size_t alloc; const char *str1, *str2; - boolean return_value = false; + bfd_boolean return_value = FALSE; /* Get the header. */ - if (bfd_seek (core_bfd, 0, SEEK_SET) != 0) + if (bfd_seek (core_bfd, 0, SEEK_SET) != 0) return return_value; - + if (sizeof (struct core_dumpxx) != - bfd_bread (&core, sizeof (struct core_dumpxx), core_bfd)) + bfd_bread (&core, sizeof (struct core_dumpxx), core_bfd)) return return_value; - if (bfd_seek (core_bfd, core.c_loader, SEEK_SET) != 0) + if (bfd_seek (core_bfd, core.c_loader, SEEK_SET) != 0) return return_value; alloc = 100; path = bfd_malloc (alloc); - if (path == NULL) + if (path == NULL) return return_value; s = path; @@ -264,13 +268,13 @@ xcoff64_core_file_matches_executable_p (core_bfd, exec_bfd) if (*s == '\0') break; ++s; - if (s == path + alloc) + if (s == path + alloc) { char *n; alloc *= 2; n = bfd_realloc (path, alloc); - if (n == NULL) + if (n == NULL) goto xcoff64_core_file_matches_executable_p_end_1; s = n + (path - s); @@ -285,8 +289,8 @@ xcoff64_core_file_matches_executable_p (core_bfd, exec_bfd) str1 = str1 != NULL ? str1 + 1 : path; str2 = str2 != NULL ? str2 + 1 : exec_bfd->filename; - if (strcmp (str1, str2) == 0) - return_value = true; + if (strcmp (str1, str2) == 0) + return_value = TRUE; xcoff64_core_file_matches_executable_p_end_1: free (path); @@ -300,7 +304,7 @@ xcoff64_core_file_failing_command (abfd) struct core_dumpxx *c = core_hdr (abfd); char *return_value = 0; - if (NULL != c) + if (NULL != c) return_value = c->c_u.U_proc.pi_comm; return return_value; @@ -313,7 +317,7 @@ xcoff64_core_file_failing_signal (abfd) struct core_dumpxx *c = core_hdr (abfd); int return_value = 0; - if (NULL != c) + if (NULL != c) return_value = c->c_signo; return return_value; @@ -321,10 +325,14 @@ xcoff64_core_file_failing_signal (abfd) #else /* AIX_5_CORE */ -const bfd_target * xcoff64_core_p PARAMS ((bfd *)); -boolean xcoff64_core_file_matches_executable_p PARAMS ((bfd *, bfd *)); -char * xcoff64_core_file_failing_command PARAMS ((bfd *)); -int xcoff64_core_file_failing_signal PARAMS ((bfd *)); +const bfd_target *xcoff64_core_p + PARAMS ((bfd *)); +bfd_boolean xcoff64_core_file_matches_executable_p + PARAMS ((bfd *, bfd *)); +char *xcoff64_core_file_failing_command + PARAMS ((bfd *)); +int xcoff64_core_file_failing_signal + PARAMS ((bfd *)); const bfd_target * xcoff64_core_p (abfd) @@ -334,12 +342,12 @@ xcoff64_core_p (abfd) return 0; } -boolean +bfd_boolean xcoff64_core_file_matches_executable_p (core_bfd, exec_bfd) bfd *core_bfd ATTRIBUTE_UNUSED; bfd *exec_bfd ATTRIBUTE_UNUSED; { - return false; + return FALSE; } char * |