Blame include/nlm/sparc32-ext.h

Packit bbfece
/* SPARC NLM (NetWare Loadable Module) support for BFD.
Packit bbfece
   Copyright (C) 1993-2018 Free Software Foundation, Inc.
Packit bbfece
Packit bbfece
   This file is part of BFD, the Binary File Descriptor library.
Packit bbfece
Packit bbfece
   This program is free software; you can redistribute it and/or modify
Packit bbfece
   it under the terms of the GNU General Public License as published by
Packit bbfece
   the Free Software Foundation; either version 3 of the License, or
Packit bbfece
   (at your option) any later version.
Packit bbfece
Packit bbfece
   This program is distributed in the hope that it will be useful,
Packit bbfece
   but WITHOUT ANY WARRANTY; without even the implied warranty of
Packit bbfece
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
Packit bbfece
   GNU General Public License for more details.
Packit bbfece
Packit bbfece
   You should have received a copy of the GNU General Public License
Packit bbfece
   along with this program; if not, write to the Free Software
Packit bbfece
   Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
Packit bbfece
   MA 02110-1301, USA.  */
Packit bbfece
Packit bbfece
/* The external format of the fixed header.  */
Packit bbfece
Packit bbfece
typedef struct nlm32_sparc_external_fixed_header
Packit bbfece
{
Packit bbfece
Packit bbfece
  /* The signature field identifies the file as an NLM.  It must contain
Packit bbfece
     the signature string, which depends upon the NLM target. */
Packit bbfece
Packit bbfece
  unsigned char signature[24];
Packit bbfece
Packit bbfece
  /* The version of the header.  At this time, the highest version number
Packit bbfece
     is 4. */
Packit bbfece
Packit bbfece
  unsigned char version[4];
Packit bbfece
Packit bbfece
  /* The name of the module, which must be a DOS name (1-8 characters followed
Packit bbfece
     by a period and a 1-3 character extension).  The first byte is the byte
Packit bbfece
     length of the name and the last byte is a null terminator byte.  This
Packit bbfece
     field is fixed length, and any unused bytes should be null bytes.  The
Packit bbfece
     value is set by the OUTPUT keyword to NLMLINK. */
Packit bbfece
Packit bbfece
  unsigned char moduleName[14];
Packit bbfece
Packit bbfece
  /* Padding to make it come out correct. */
Packit bbfece
Packit bbfece
  unsigned char pad1[2];
Packit bbfece
Packit bbfece
  /* The byte offset of the code image from the start of the file. */
Packit bbfece
Packit bbfece
  unsigned char codeImageOffset[4];
Packit bbfece
Packit bbfece
  /* The size of the code image, in bytes. */
Packit bbfece
Packit bbfece
  unsigned char codeImageSize[4];
Packit bbfece
Packit bbfece
  /* The byte offset of the data image from the start of the file. */
Packit bbfece
Packit bbfece
  unsigned char dataImageOffset[4];
Packit bbfece
Packit bbfece
  /* The size of the data image, in bytes. */
Packit bbfece
Packit bbfece
  unsigned char dataImageSize[4];
Packit bbfece
Packit bbfece
  /* The size of the uninitialized data region that the loader is to be
Packit bbfece
     allocated at load time.  Uninitialized data follows the initialized
Packit bbfece
     data in the NLM address space. */
Packit bbfece
Packit bbfece
  unsigned char uninitializedDataSize[4];
Packit bbfece
Packit bbfece
  /* The byte offset of the custom data from the start of the file.  The
Packit bbfece
     custom data is set by the CUSTOM keyword to NLMLINK.  It is possible
Packit bbfece
     for this to be EOF if there is no custom data. */
Packit bbfece
Packit bbfece
  unsigned char customDataOffset[4];
Packit bbfece
Packit bbfece
  /* The size of the custom data, in bytes. */
Packit bbfece
Packit bbfece
  unsigned char customDataSize[4];
Packit bbfece
Packit bbfece
  /* The byte offset of the module dependencies from the start of the file.
Packit bbfece
     The module dependencies are determined by the MODULE keyword in
Packit bbfece
     NLMLINK. */
Packit bbfece
Packit bbfece
  unsigned char moduleDependencyOffset[4];
Packit bbfece
Packit bbfece
  /* The number of module dependencies at the moduleDependencyOffset. */
Packit bbfece
Packit bbfece
  unsigned char numberOfModuleDependencies[4];
Packit bbfece
Packit bbfece
  /* The byte offset of the relocation fixup data from the start of the file */
Packit bbfece
     
Packit bbfece
  unsigned char relocationFixupOffset[4];
Packit bbfece
Packit bbfece
  unsigned char numberOfRelocationFixups[4];
Packit bbfece
Packit bbfece
  unsigned char externalReferencesOffset[4];
Packit bbfece
Packit bbfece
  unsigned char numberOfExternalReferences[4];
Packit bbfece
Packit bbfece
  unsigned char publicsOffset[4];
Packit bbfece
Packit bbfece
  unsigned char numberOfPublics[4];
Packit bbfece
Packit bbfece
  /* The byte offset of the internal debug info from the start of the file.
Packit bbfece
     It is possible for this to be EOF if there is no debug info. */
Packit bbfece
Packit bbfece
  unsigned char debugInfoOffset[4];
Packit bbfece
Packit bbfece
  unsigned char numberOfDebugRecords[4];
Packit bbfece
Packit bbfece
  unsigned char codeStartOffset[4];
Packit bbfece
Packit bbfece
  unsigned char exitProcedureOffset[4];
Packit bbfece
Packit bbfece
  unsigned char checkUnloadProcedureOffset[4];
Packit bbfece
Packit bbfece
  unsigned char moduleType[4];
Packit bbfece
Packit bbfece
  unsigned char flags[4];
Packit bbfece
Packit bbfece
} Nlm32_sparc_External_Fixed_Header;