(root)/
binutils-2.41/
libctf/
elf.h
       1  /* This file defines standard ELF types, structures, and macros.
       2     Copyright (C) 1995-2023 Free Software Foundation, Inc.
       3  
       4     This file is part of libctf.
       5  
       6     libctf is free software; you can redistribute it and/or modify it under
       7     the terms of the GNU General Public License as published by the Free
       8     Software Foundation; either version 3, or (at your option) any later
       9     version.
      10  
      11     This program is distributed in the hope that it will be useful, but
      12     WITHOUT ANY WARRANTY; without even the implied warranty of
      13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
      14     See the GNU General Public License for more details.
      15  
      16     You should have received a copy of the GNU General Public License
      17     along with this program; see the file COPYING.  If not see
      18     <http://www.gnu.org/licenses/>.  */
      19  
      20  #ifndef _CTF_ELF_H
      21  #define _CTF_ELF_H
      22  
      23  #include "config.h"
      24  #include "ansidecl.h"
      25  #include <stdint.h>
      26  #include "elf/common.h"
      27  #include "elf/external.h"
      28  
      29  typedef uint32_t Elf32_Word;
      30  typedef uint32_t Elf64_Word;
      31  typedef uint32_t Elf32_Addr;
      32  typedef uint64_t Elf64_Addr;
      33  typedef uint64_t Elf64_Xword;
      34  typedef uint16_t Elf32_Section;
      35  typedef uint16_t Elf64_Section;
      36  
      37  #define SHN_EXTABS	0xFFF1		/* Associated symbol is absolute */
      38  
      39  /* Symbol table entry.  */
      40  
      41  typedef struct
      42  {
      43    Elf32_Word	st_name;		/* Symbol name (string tbl index) */
      44    Elf32_Addr	st_value;		/* Symbol value */
      45    Elf32_Word	st_size;		/* Symbol size */
      46    unsigned char	st_info;		/* Symbol type and binding */
      47    unsigned char	st_other;		/* Symbol visibility */
      48    Elf32_Section	st_shndx;		/* Section index */
      49  } Elf32_Sym;
      50  
      51  typedef struct
      52  {
      53    Elf64_Word	st_name;		/* Symbol name (string tbl index) */
      54    unsigned char	st_info;		/* Symbol type and binding */
      55    unsigned char st_other;		/* Symbol visibility */
      56    Elf64_Section	st_shndx;		/* Section index */
      57    Elf64_Addr	st_value;		/* Symbol value */
      58    Elf64_Xword	st_size;		/* Symbol size */
      59  } Elf64_Sym;
      60  
      61  #endif	/* _CTF_ELF_H */