/** @file
Ported ELF include files from FreeBSD

Copyright (c) 2009 - 2010, Apple Inc. All rights reserved.<BR>
SPDX-License-Identifier: BSD-2-Clause-Patent


**/
/*-
 * 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
 *    documentation and/or other materials provided with the distribution.
 *
 * 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.
 *
 * $FreeBSD: src/sys/sys/elf32.h,v 1.8.14.2 2007/12/03 21:30:36 marius Exp $
 */

#ifndef _SYS_ELF32_H_
#define _SYS_ELF32_H_  1

/*
 * ELF definitions common to all 32-bit architectures.
 */

typedef UINT32  Elf32_Addr;
typedef UINT16  Elf32_Half;
typedef UINT32  Elf32_Off;
typedef INT32   Elf32_Sword;
typedef UINT32  Elf32_Word;
typedef UINT64  Elf32_Lword;

typedef Elf32_Word Elf32_Hashelt;

/* Non-standard class-dependent datatype used for abstraction. */
typedef Elf32_Word  Elf32_Size;
typedef Elf32_Sword Elf32_Ssize;

/*
 * ELF header.
 */

typedef struct {
  unsigned char    e_ident[EI_NIDENT]; /* File identification. */
  Elf32_Half       e_type;             /* File type. */
  Elf32_Half       e_machine;          /* Machine architecture. */
  Elf32_Word       e_version;          /* ELF format version. */
  Elf32_Addr       e_entry;            /* Entry point. */
  Elf32_Off        e_phoff;            /* Program header file offset. */
  Elf32_Off        e_shoff;            /* Section header file offset. */
  Elf32_Word       e_flags;            /* Architecture-specific flags. */
  Elf32_Half       e_ehsize;           /* Size of ELF header in bytes. */
  Elf32_Half       e_phentsize;        /* Size of program header entry. */
  Elf32_Half       e_phnum;            /* Number of program header entries. */
  Elf32_Half       e_shentsize;        /* Size of section header entry. */
  Elf32_Half       e_shnum;            /* Number of section header entries. */
  Elf32_Half       e_shstrndx;         /* Section name strings section. */
} Elf32_Ehdr;

/*
 * Section header.
 */

typedef struct {
  Elf32_Word    sh_name;      /* Section name (index into the
             section header string table). */
  Elf32_Word    sh_type;      /* Section type. */
  Elf32_Word    sh_flags;     /* Section flags. */
  Elf32_Addr    sh_addr;      /* Address in memory image. */
  Elf32_Off     sh_offset;    /* Offset in file. */
  Elf32_Word    sh_size;      /* Size in bytes. */
  Elf32_Word    sh_link;      /* Index of a related section. */
  Elf32_Word    sh_info;      /* Depends on section type. */
  Elf32_Word    sh_addralign; /* Alignment in bytes. */
  Elf32_Word    sh_entsize;   /* Size of each entry in section. */
} Elf32_Shdr;

/*
 * Program header.
 */

typedef struct {
  Elf32_Word    p_type;   /* Entry type. */
  Elf32_Off     p_offset; /* File offset of contents. */
  Elf32_Addr    p_vaddr;  /* Virtual address in memory image. */
  Elf32_Addr    p_paddr;  /* Physical address (not used). */
  Elf32_Word    p_filesz; /* Size of contents in file. */
  Elf32_Word    p_memsz;  /* Size of contents in memory. */
  Elf32_Word    p_flags;  /* Access permission flags. */
  Elf32_Word    p_align;  /* Alignment in memory and file. */
} Elf32_Phdr;

/*
 * Dynamic structure.  The ".dynamic" section contains an array of them.
 */

typedef struct {
  Elf32_Sword    d_tag;  /* Entry type. */
  union {
    Elf32_Word    d_val; /* Integer value. */
    Elf32_Addr    d_ptr; /* Address value. */
  } d_un;
} Elf32_Dyn;

/*
 * Relocation entries.
 */

/* Relocations that don't need an addend field. */
typedef struct {
  Elf32_Addr    r_offset; /* Location to be relocated. */
  Elf32_Word    r_info;   /* Relocation type and symbol index. */
} Elf32_Rel;

/* Relocations that need an addend field. */
typedef struct {
  Elf32_Addr     r_offset; /* Location to be relocated. */
  Elf32_Word     r_info;   /* Relocation type and symbol index. */
  Elf32_Sword    r_addend; /* Addend. */
} Elf32_Rela;

/* Macros for accessing the fields of r_info. */
#define ELF32_R_SYM(info)   ((info) >> 8)
#define ELF32_R_TYPE(info)  ((unsigned char)(info))

/* Macro for constructing r_info from field values. */
#define ELF32_R_INFO(sym, type)  (((sym) << 8) + (unsigned char)(type))

/*
 *  Note entry header
 */
typedef Elf_Note Elf32_Nhdr;

/*
 *  Move entry
 */
typedef struct {
  Elf32_Lword    m_value;   /* symbol value */
  Elf32_Word     m_info;    /* size + index */
  Elf32_Word     m_poffset; /* symbol offset */
  Elf32_Half     m_repeat;  /* repeat count */
  Elf32_Half     m_stride;  /* stride info */
} Elf32_Move;

/*
 *  The macros compose and decompose values for Move.r_info
 *
 *  sym = ELF32_M_SYM(M.m_info)
 *  size = ELF32_M_SIZE(M.m_info)
 *  M.m_info = ELF32_M_INFO(sym, size)
 */
#define  ELF32_M_SYM(info)        ((info)>>8)
#define  ELF32_M_SIZE(info)       ((unsigned char)(info))
#define  ELF32_M_INFO(sym, size)  (((sym)<<8)+(unsigned char)(size))

/*
 *  Hardware/Software capabilities entry
 */
typedef struct {
  Elf32_Word    c_tag;  /* how to interpret value */
  union {
    Elf32_Word    c_val;
    Elf32_Addr    c_ptr;
  } c_un;
} Elf32_Cap;

/*
 * Symbol table entries.
 */

typedef struct {
  Elf32_Word       st_name;  /* String table index of name. */
  Elf32_Addr       st_value; /* Symbol value. */
  Elf32_Word       st_size;  /* Size of associated object. */
  unsigned char    st_info;  /* Type and binding information. */
  unsigned char    st_other; /* Reserved (not used). */
  Elf32_Half       st_shndx; /* Section index of symbol. */
} Elf32_Sym;

/* Macros for accessing the fields of st_info. */
#define ELF32_ST_BIND(info)  ((info) >> 4)
#define ELF32_ST_TYPE(info)  ((info) & 0xf)

/* Macro for constructing st_info from field values. */
#define ELF32_ST_INFO(bind, type)  (((bind) << 4) + ((type) & 0xf))

/* Macro for accessing the fields of st_other. */
#define ELF32_ST_VISIBILITY(oth)  ((oth) & 0x3)

/* Structures used by Sun & GNU symbol versioning. */
typedef struct {
  Elf32_Half    vd_version;
  Elf32_Half    vd_flags;
  Elf32_Half    vd_ndx;
  Elf32_Half    vd_cnt;
  Elf32_Word    vd_hash;
  Elf32_Word    vd_aux;
  Elf32_Word    vd_next;
} Elf32_Verdef;

typedef struct {
  Elf32_Word    vda_name;
  Elf32_Word    vda_next;
} Elf32_Verdaux;

typedef struct {
  Elf32_Half    vn_version;
  Elf32_Half    vn_cnt;
  Elf32_Word    vn_file;
  Elf32_Word    vn_aux;
  Elf32_Word    vn_next;
} Elf32_Verneed;

typedef struct {
  Elf32_Word    vna_hash;
  Elf32_Half    vna_flags;
  Elf32_Half    vna_other;
  Elf32_Word    vna_name;
  Elf32_Word    vna_next;
} Elf32_Vernaux;

typedef Elf32_Half Elf32_Versym;

typedef struct {
  Elf32_Half    si_boundto; /* direct bindings - symbol bound to */
  Elf32_Half    si_flags;   /* per symbol flags */
} Elf32_Syminfo;

#endif /* !_SYS_ELF32_H_ */
