elf64.h revision 4fd606d1f5abe38e1f42c38de1d2e895166bd0f4
/** @file
Ported ELF include files from FreeBSD
Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>
This program and the accompanying materials
are licensed and made available under the terms and conditions of the BSD License
which accompanies this distribution. The full text of the license may be found at
THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
**/
/*-
* Copyright (c) 1996-1998 John D. Polstra.
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
*
* THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
* ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
*/
#ifndef _SYS_ELF64_H_
#define _SYS_ELF64_H_ 1
/*
* ELF definitions common to all 64-bit architectures.
*/
typedef UINT64 Elf64_Addr;
typedef UINT16 Elf64_Half;
typedef INT32 Elf64_Sword;
typedef INT64 Elf64_Sxword;
typedef UINT32 Elf64_Word;
typedef UINT64 Elf64_Lword;
typedef UINT64 Elf64_Xword;
/*
* Types of dynamic symbol hash table bucket and chain elements.
*
* This is inconsistent among 64 bit architectures, so a machine dependent
* typedef is required.
*/
typedef Elf64_Word Elf64_Hashelt;
/* Non-standard class-dependent datatype used for abstraction. */
typedef Elf64_Xword Elf64_Size;
typedef Elf64_Sxword Elf64_Ssize;
/*
* ELF header.
*/
typedef struct {
} Elf64_Ehdr;
/*
* Section header.
*/
typedef struct {
section header string table). */
} Elf64_Shdr;
/*
* Program header.
*/
typedef struct {
} Elf64_Phdr;
/*
* Dynamic structure. The ".dynamic" section contains an array of them.
*/
typedef struct {
union {
} d_un;
} Elf64_Dyn;
/*
* Relocation entries.
*/
/* Relocations that don't need an addend field. */
typedef struct {
} Elf64_Rel;
/* Relocations that need an addend field. */
typedef struct {
} Elf64_Rela;
/* Macros for accessing the fields of r_info. */
/* Macro for constructing r_info from field values. */
/*
* Note entry header
*/
typedef Elf_Note Elf64_Nhdr;
/*
* Move entry
*/
typedef struct {
} Elf64_Move;
/*
*/
typedef struct {
union {
} c_un;
} Elf64_Cap;
/*
* Symbol table entries.
*/
typedef struct {
unsigned char st_info; /* Type and binding information. */
unsigned char st_other; /* Reserved (not used). */
} Elf64_Sym;
/* Macros for accessing the fields of st_info. */
/* Macro for constructing st_info from field values. */
/* Macro for accessing the fields of st_other. */
/* Structures used by Sun & GNU-style symbol versioning. */
typedef struct {
} Elf64_Verdef;
typedef struct {
typedef struct {
typedef struct {
typedef Elf64_Half Elf64_Versym;
typedef struct {
#endif /* !_SYS_ELF64_H_ */