2019-04-24 04:45:30 +08:00
|
|
|
/* This file defines standard ELF types, structures, and macros.
|
2021-01-01 06:58:58 +08:00
|
|
|
Copyright (C) 1995-2021 Free Software Foundation, Inc.
|
2019-04-24 04:45:30 +08:00
|
|
|
|
|
|
|
This file is part of libctf.
|
|
|
|
|
|
|
|
libctf 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, 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; see the file COPYING. If not see
|
|
|
|
<http://www.gnu.org/licenses/>. */
|
|
|
|
|
|
|
|
#ifndef _CTF_ELF_H
|
|
|
|
#define _CTF_ELF_H
|
|
|
|
|
|
|
|
#include "config.h"
|
|
|
|
#include "ansidecl.h"
|
|
|
|
#include <stdint.h>
|
|
|
|
#include "elf/common.h"
|
|
|
|
#include "elf/external.h"
|
|
|
|
|
|
|
|
typedef uint32_t Elf32_Word;
|
|
|
|
typedef uint32_t Elf64_Word;
|
|
|
|
typedef uint32_t Elf32_Addr;
|
|
|
|
typedef uint64_t Elf64_Addr;
|
|
|
|
typedef uint64_t Elf64_Xword;
|
|
|
|
typedef uint16_t Elf32_Section;
|
|
|
|
typedef uint16_t Elf64_Section;
|
|
|
|
|
|
|
|
#define SHN_EXTABS 0xFFF1 /* Associated symbol is absolute */
|
|
|
|
|
|
|
|
/* Symbol table entry. */
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
Elf32_Word st_name; /* Symbol name (string tbl index) */
|
|
|
|
Elf32_Addr st_value; /* Symbol value */
|
|
|
|
Elf32_Word st_size; /* Symbol size */
|
|
|
|
unsigned char st_info; /* Symbol type and binding */
|
|
|
|
unsigned char st_other; /* Symbol visibility */
|
|
|
|
Elf32_Section st_shndx; /* Section index */
|
|
|
|
} Elf32_Sym;
|
|
|
|
|
|
|
|
typedef struct
|
|
|
|
{
|
|
|
|
Elf64_Word st_name; /* Symbol name (string tbl index) */
|
|
|
|
unsigned char st_info; /* Symbol type and binding */
|
|
|
|
unsigned char st_other; /* Symbol visibility */
|
|
|
|
Elf64_Section st_shndx; /* Section index */
|
|
|
|
Elf64_Addr st_value; /* Symbol value */
|
|
|
|
Elf64_Xword st_size; /* Symbol size */
|
|
|
|
} Elf64_Sym;
|
|
|
|
|
|
|
|
#endif /* _CTF_ELF_H */
|