Automatic date update in version.in
[binutils-gdb.git] / libctf / elf.h
blobd6420328011d4e4be3fcc8b2d91063e76c719258
1 /* This file defines standard ELF types, structures, and macros.
2 Copyright (C) 1995-2022 Free Software Foundation, Inc.
4 This file is part of libctf.
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.
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.
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/>. */
20 #ifndef _CTF_ELF_H
21 #define _CTF_ELF_H
23 #include "config.h"
24 #include "ansidecl.h"
25 #include <stdint.h>
26 #include "elf/common.h"
27 #include "elf/external.h"
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;
37 #define SHN_EXTABS 0xFFF1 /* Associated symbol is absolute */
39 /* Symbol table entry. */
41 typedef struct
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;
51 typedef struct
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;
61 #endif /* _CTF_ELF_H */