binutils-2.22.tar.bz2


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

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)