• 大小: 19.05MB
    文件类型: .bz2
    金币: 1
    下载: 0 次
    发布日期: 2023-07-26
  • 语言: 其他
  • 标签: qca9531  

资源简介

binutils-2.22.tar.bz2 qca9531

资源截图

代码片段和文件信息

/* BFD back-end for AIX on PS/2 core files.
   This was based on trad-core.c which was written by John Gilmore of
        Cygnus Support.
   Copyright 1988 1989 1991 1992 1993 1994 1996 1998 1999 2000
   2001 2002 2004 2005 2006 2007 2010 2011
   Free Software Foundation Inc.
   Written by Minh Tran-Le .
   Converted to back end form by Ian Lance Taylor .

   This file is part of BFD the Binary File Descriptor library.

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 3 of the License or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not write to the Free Software
   Foundation Inc. 51 Franklin Street - Fifth Floor Boston
   MA 02110-1301 USA.  */

#include “sysdep.h“
#include “bfd.h“
#include “libbfd.h“
#include “coff/i386.h“
#include “coff/internal.h“
#include “libcoff.h“

#include 

#if defined (_AIX) && defined (_I386)
#define NOCHECKS /* This is for coredump.h.  */
#define _h_USER /* Avoid including user.h from coredump.h.  */
#include 
#include 
#endif /* _AIX && _I386 */

/* Maybe this could work on some other i386 but I have not tried it
 * mtranle@paris - Tue Sep 24 12:49:35 1991
 */

#ifndef COR_MAGIC
# define COR_MAGIC “core“
#endif

/* Need this cast because ptr is really void *.  */
#define core_hdr(bfd) \
    (((bfd->tdata.trad_core_data))->hdr)
#define core_section(bfdn) \
    (((bfd)->tdata.trad_core_data)->sections[n])
#define core_regsec(bfd) \
    (((bfd)->tdata.trad_core_data)->reg_section)
#define core_reg2sec(bfd) \
    (((bfd)->tdata.trad_core_data)->reg2_section)

/* These are stored in the bfd‘s tdata.  */
struct trad_core_struct {
  struct corehdr *hdr; /* core file header */
  asection *reg_section;
  asection *reg2_section;
  asection *sections[MAX_CORE_SEGS];
};

static void swap_abort PARAMS ((void));

static const bfd_target *
aix386_core_file_p (abfd)
     bfd *abfd;
{
  int i n;
  unsigned char longbuf[4]; /* Raw bytes of various header fields */
  bfd_size_type core_size = sizeof (struct corehdr);
  bfd_size_type amt;
  struct corehdr *core;
  struct mergem {
    struct trad_core_struct coredata;
    struct corehdr internal_core;
  } *mergem;
  flagword flags;

  amt = sizeof (longbuf);
  if (bfd_bread ((PTR) longbuf amt abfd) != amt)
    {
      if (bfd_get_error () != bfd_error_system_call)
bfd_set_error (bfd_error_wrong_format);
      return 0;
    }

  if (strncmp (longbuf COR_MAGIC 4))
    return 0;

  if (bfd_seek (ab

评论

共有 条评论