/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
#ifndef _UAPI_LINUX_ELF_H
#define _UAPI_LINUX_ELF_H

#include <linux/types.h>
#include <linux/elf-em.h>

/* 32-bit ELF base types. */
typedef __u32	Elf32_Addr;
typedef __u16	Elf32_Half;
typedef __u32	Elf32_Off;
typedef __s32	Elf32_Sword;
typedef __u32	Elf32_Word;
typedef __u16	Elf32_Versym;

/* 64-bit ELF base types. */
typedef __u64	Elf64_Addr;
typedef __u16	Elf64_Half;
typedef __s16	Elf64_SHalf;
typedef __u64	Elf64_Off;
typedef __s32	Elf64_Sword;
typedef __u32	Elf64_Word;
typedef __u64	Elf64_Xword;
typedef __s64	Elf64_Sxword;
typedef __u16	Elf64_Versym;

/* These constants are for the segment types stored in the image headers */
#define PT_NULL    0
#define PT_LOAD    1
#define PT_DYNAMIC 2
#define PT_INTERP  3
#define PT_NOTE    4
#define PT_SHLIB   5
#define PT_PHDR    6
#define PT_TLS     7               /* Thread local storage segment */
#define PT_LOOS    0x60000000      /* OS-specific */
#define PT_HIOS    0x6fffffff      /* OS-specific */
#define PT_LOPROC  0x70000000
#define PT_HIPROC  0x7fffffff
#define PT_GNU_EH_FRAME	(PT_LOOS + 0x474e550)
#define PT_GNU_STACK	(PT_LOOS + 0x474e551)
#define PT_GNU_RELRO	(PT_LOOS + 0x474e552)
#define PT_GNU_PROPERTY	(PT_LOOS + 0x474e553)


/* ARM MTE memory tag segment type */
#define PT_AARCH64_MEMTAG_MTE	(PT_LOPROC + 0x2)

/*
 * Extended Numbering
 *
 * If the real number of program header table entries is larger than
 * or equal to PN_XNUM(0xffff), it is set to sh_info field of the
 * section header at index 0, and PN_XNUM is set to e_phnum
 * field. Otherwise, the section header at index 0 is zero
 * initialized, if it exists.
 *
 * Specifications are available in:
 *
 * - Oracle: Linker and Libraries.
 *   Part No: 817–1984–19, August 2011.
 *   https://docs.oracle.com/cd/E18752_01/pdf/817-1984.pdf
 *
 * - System V ABI AMD64 Architecture Processor Supplement
 *   Draft Version 0.99.4,
 *   January 13, 2010.
 *   http://www.cs.washington.edu/education/courses/cse351/12wi/supp-docs/abi.pdf
 */
#define PN_XNUM 0xffff

/* These constants define the different elf file types */
#define ET_NONE   0
#define ET_REL    1
#define ET_EXEC   2
#define ET_DYN    3
#define ET_CORE   4
#define ET_LOPROC 0xff00
#define ET_HIPROC 0xffff

/* This is the info that is needed to parse the dynamic section of the file */
#define DT_NULL		0
#define DT_NEEDED	1
#define DT_PLTRELSZ	2
#define DT_PLTGOT	3
#define DT_HASH		4
#define DT_STRTAB	5
#define DT_SYMTAB	6
#define DT_RELA		7
#define DT_RELASZ	8
#define DT_RELAENT	9
#define DT_STRSZ	10
#define DT_SYMENT	11
#define DT_INIT		12
#define DT_FINI		13
#define DT_SONAME	14
#define DT_RPATH	15
#define DT_SYMBOLIC	16
#define DT_REL	        17
#define DT_RELSZ	18
#define DT_RELENT	19
#define DT_PLTREL	20
#define DT_DEBUG	21
#define DT_TEXTREL	22
#define DT_JMPREL	23
#define DT_ENCODING	32
#define OLD_DT_LOOS	0x60000000
#define DT_LOOS		0x6000000d
#define DT_HIOS		0x6ffff000
#define DT_VALRNGLO	0x6ffffd00
#define DT_VALRNGHI	0x6ffffdff
#define DT_ADDRRNGLO	0x6ffffe00
#define DT_GNU_HASH	0x6ffffef5
#define DT_ADDRRNGHI	0x6ffffeff
#define DT_VERSYM	0x6ffffff0
#define DT_RELACOUNT	0x6ffffff9
#define DT_RELCOUNT	0x6ffffffa
#define DT_FLAGS_1	0x6ffffffb
#define DT_VERDEF	0x6ffffffc
#define	DT_VERDEFNUM	0x6ffffffd
#define DT_VERNEED	0x6ffffffe
#define	DT_VERNEEDNUM	0x6fffffff
#define OLD_DT_HIOS     0x6fffffff
#define DT_LOPROC	0x70000000
#define DT_HIPROC	0x7fffffff

/* This info is needed when parsing the symbol table */
#define STB_LOCAL  0
#define STB_GLOBAL 1
#define STB_WEAK   2

#define STN_UNDEF 0

#define STT_NOTYPE  0
#define STT_OBJECT  1
#define STT_FUNC    2
#define STT_SECTION 3
#define STT_FILE    4
#define STT_COMMON  5
#define STT_TLS     6

#define VER_FLG_BASE 0x1
#define VER_FLG_WEAK 0x2

#define ELF_ST_BIND(x)		((x) >> 4)
#define ELF_ST_TYPE(x)		((x) & 0xf)
#define ELF32_ST_BIND(x)	ELF_ST_BIND(x)
#define ELF32_ST_TYPE(x)	ELF_ST_TYPE(x)
#define ELF64_ST_BIND(x)	ELF_ST_BIND(x)
#define ELF64_ST_TYPE(x)	ELF_ST_TYPE(x)

typedef struct {
  Elf32_Sword d_tag;
  union {
    Elf32_Sword	d_val;
    Elf32_Addr	d_ptr;
  } d_un;
} Elf32_Dyn;

typedef struct {
  Elf64_Sxword d_tag;		/* entry tag value */
  union {
    Elf64_Xword d_val;
    Elf64_Addr d_ptr;
  } d_un;
} Elf64_Dyn;

/* The following are used with relocations */
#define ELF32_R_SYM(x) ((x) >> 8)
#define ELF32_R_TYPE(x) ((x) & 0xff)

#define ELF64_R_SYM(i)			((i) >> 32)
#define ELF64_R_TYPE(i)			((i) & 0xffffffff)

typedef struct elf32_rel {
  Elf32_Addr	r_offset;
  Elf32_Word	r_info;
} Elf32_Rel;

typedef struct elf64_rel {
  Elf64_Addr r_offset;	/* Location at which to apply the action */
  Elf64_Xword r_info;	/* index and type of relocation */
} Elf64_Rel;

typedef struct elf32_rela {
  Elf32_Addr	r_offset;
  Elf32_Word	r_info;
  Elf32_Sword	r_addend;
} Elf32_Rela;

typedef struct elf64_rela {
  Elf64_Addr r_offset;	/* Location at which to apply the action */
  Elf64_Xword r_info;	/* index and type of relocation */
  Elf64_Sxword r_addend;	/* Constant addend used to compute value */
} Elf64_Rela;

typedef struct elf32_sym {
  Elf32_Word	st_name;
  Elf32_Addr	st_value;
  Elf32_Word	st_size;
  unsigned char	st_info;
  unsigned char	st_other;
  Elf32_Half	st_shndx;
} Elf32_Sym;

typedef struct elf64_sym {
  Elf64_Word st_name;		/* Symbol name, index in string tbl */
  unsigned char	st_info;	/* Type and binding attributes */
  unsigned char	st_other;	/* No defined meaning, 0 */
  Elf64_Half st_shndx;		/* Associated section index */
  Elf64_Addr st_value;		/* Value of the symbol */
  Elf64_Xword st_size;		/* Associated symbol size */
} Elf64_Sym;


#define EI_NIDENT	16

typedef struct elf32_hdr {
  unsigned char	e_ident[EI_NIDENT];
  Elf32_Half	e_type;
  Elf32_Half	e_machine;
  Elf32_Word	e_version;
  Elf32_Addr	e_entry;  /* Entry point */
  Elf32_Off	e_phoff;
  Elf32_Off	e_shoff;
  Elf32_Word	e_flags;
  Elf32_Half	e_ehsize;
  Elf32_Half	e_phentsize;
  Elf32_Half	e_phnum;
  Elf32_Half	e_shentsize;
  Elf32_Half	e_shnum;
  Elf32_Half	e_shstrndx;
} Elf32_Ehdr;

typedef struct elf64_hdr {
  unsigned char	e_ident[EI_NIDENT];	/* ELF "magic number" */
  Elf64_Half e_type;
  Elf64_Half e_machine;
  Elf64_Word e_version;
  Elf64_Addr e_entry;		/* Entry point virtual address */
  Elf64_Off e_phoff;		/* Program header table file offset */
  Elf64_Off e_shoff;		/* Section header table file offset */
  Elf64_Word e_flags;
  Elf64_Half e_ehsize;
  Elf64_Half e_phentsize;
  Elf64_Half e_phnum;
  Elf64_Half e_shentsize;
  Elf64_Half e_shnum;
  Elf64_Half e_shstrndx;
} Elf64_Ehdr;

/* These constants define the permissions on sections in the program
   header, p_flags. */
#define PF_R		0x4
#define PF_W		0x2
#define PF_X		0x1

typedef struct elf32_phdr {
  Elf32_Word	p_type;
  Elf32_Off	p_offset;
  Elf32_Addr	p_vaddr;
  Elf32_Addr	p_paddr;
  Elf32_Word	p_filesz;
  Elf32_Word	p_memsz;
  Elf32_Word	p_flags;
  Elf32_Word	p_align;
} Elf32_Phdr;

typedef struct elf64_phdr {
  Elf64_Word p_type;
  Elf64_Word p_flags;
  Elf64_Off p_offset;		/* Segment file offset */
  Elf64_Addr p_vaddr;		/* Segment virtual address */
  Elf64_Addr p_paddr;		/* Segment physical address */
  Elf64_Xword p_filesz;		/* Segment size in file */
  Elf64_Xword p_memsz;		/* Segment size in memory */
  Elf64_Xword p_align;		/* Segment alignment, file & memory */
} Elf64_Phdr;

/* sh_type */
#define SHT_NULL	0
#define SHT_PROGBITS	1
#define SHT_SYMTAB	2
#define SHT_STRTAB	3
#define SHT_RELA	4
#define SHT_HASH	5
#define SHT_DYNAMIC	6
#define SHT_NOTE	7
#define SHT_NOBITS	8
#define SHT_REL		9
#define SHT_SHLIB	10
#define SHT_DYNSYM	11
#define SHT_NUM		12
#define SHT_LOPROC	0x70000000
#define SHT_HIPROC	0x7fffffff
#define SHT_LOUSER	0x80000000
#define SHT_HIUSER	0xffffffff

/* sh_flags */
#define SHF_WRITE		0x1
#define SHF_ALLOC		0x2
#define SHF_EXECINSTR		0x4
#define SHF_MERGE		0x10
#define SHF_STRINGS		0x20
#define SHF_INFO_LINK		0x40
#define SHF_LINK_ORDER		0x80
#define SHF_OS_NONCONFORMING	0x100
#define SHF_GROUP		0x200
#define SHF_TLS			0x400
#define SHF_RELA_LIVEPATCH	0x00100000
#define SHF_RO_AFTER_INIT	0x00200000
#define SHF_ORDERED		0x04000000
#define SHF_EXCLUDE		0x08000000
#define SHF_MASKOS		0x0ff00000
#define SHF_MASKPROC		0xf0000000

/* special section indexes */
#define SHN_UNDEF	0
#define SHN_LORESERVE	0xff00
#define SHN_LOPROC	0xff00
#define SHN_HIPROC	0xff1f
#define SHN_LIVEPATCH	0xff20
#define SHN_ABS		0xfff1
#define SHN_COMMON	0xfff2
#define SHN_HIRESERVE	0xffff
 
typedef struct elf32_shdr {
  Elf32_Word	sh_name;
  Elf32_Word	sh_type;
  Elf32_Word	sh_flags;
  Elf32_Addr	sh_addr;
  Elf32_Off	sh_offset;
  Elf32_Word	sh_size;
  Elf32_Word	sh_link;
  Elf32_Word	sh_info;
  Elf32_Word	sh_addralign;
  Elf32_Word	sh_entsize;
} Elf32_Shdr;

typedef struct elf64_shdr {
  Elf64_Word sh_name;		/* Section name, index in string tbl */
  Elf64_Word sh_type;		/* Type of section */
  Elf64_Xword sh_flags;		/* Miscellaneous section attributes */
  Elf64_Addr sh_addr;		/* Section virtual addr at execution */
  Elf64_Off sh_offset;		/* Section file offset */
  Elf64_Xword sh_size;		/* Size of section in bytes */
  Elf64_Word sh_link;		/* Index of another section */
  Elf64_Word sh_info;		/* Additional section information */
  Elf64_Xword sh_addralign;	/* Section alignment */
  Elf64_Xword sh_entsize;	/* Entry size if section holds table */
} Elf64_Shdr;

#define	EI_MAG0		0		/* e_ident[] indexes */
#define	EI_MAG1		1
#define	EI_MAG2		2
#define	EI_MAG3		3
#define	EI_CLASS	4
#define	EI_DATA		5
#define	EI_VERSION	6
#define	EI_OSABI	7
#define	EI_PAD		8

#define	ELFMAG0		0x7f		/* EI_MAG */
#define	ELFMAG1		'E'
#define	ELFMAG2		'L'
#define	ELFMAG3		'F'
#define	ELFMAG		"\177ELF"
#define	SELFMAG		4

#define	ELFCLASSNONE	0		/* EI_CLASS */
#define	ELFCLASS32	1
#define	ELFCLASS64	2
#define	ELFCLASSNUM	3

#define ELFDATANONE	0		/* e_ident[EI_DATA] */
#define ELFDATA2LSB	1
#define ELFDATA2MSB	2

#define EV_NONE		0		/* e_version, EI_VERSION */
#define EV_CURRENT	1
#define EV_NUM		2

#define ELFOSABI_NONE	0
#define ELFOSABI_LINUX	3

#ifndef ELF_OSABI
#define ELF_OSABI ELFOSABI_NONE
#endif

/* Note definitions: NN_ defines names. NT_ defines types. */

#define NN_GNU_PROPERTY_TYPE_0	"GNU"
#define NT_GNU_PROPERTY_TYPE_0	5

/*
 * Notes used in ET_CORE. Architectures export some of the arch register sets
 * using the corresponding note types via the PTRACE_GETREGSET and
 * PTRACE_SETREGSET requests.
 */
#define NN_PRSTATUS	"CORE"
#define NT_PRSTATUS	1
#define NN_PRFPREG	"CORE"
#define NT_PRFPREG	2
#define NN_PRPSINFO	"CORE"
#define NT_PRPSINFO	3
#define NN_TASKSTRUCT	"CORE"
#define NT_TASKSTRUCT	4
#define NN_AUXV		"CORE"
#define NT_AUXV		6
/*
 * Note to userspace developers: size of NT_SIGINFO note may increase
 * in the future to accomodate more fields, don't assume it is fixed!
 */
#define NN_SIGINFO      "CORE"
#define NT_SIGINFO      0x53494749
#define NN_FILE         "CORE"
#define NT_FILE         0x46494c45
#define NN_PRXFPREG     "LINUX"
#define NT_PRXFPREG     0x46e62b7f      /* copied from gdb5.1/include/elf/common.h */
#define NN_PPC_VMX	"LINUX"
#define NT_PPC_VMX	0x100		/* PowerPC Altivec/VMX registers */
#define NN_PPC_SPE	"LINUX"
#define NT_PPC_SPE	0x101		/* PowerPC SPE/EVR registers */
#define NN_PPC_VSX	"LINUX"
#define NT_PPC_VSX	0x102		/* PowerPC VSX registers */
#define NN_PPC_TAR	"LINUX"
#define NT_PPC_TAR	0x103		/* Target Address Register */
#define NN_PPC_PPR	"LINUX"
#define NT_PPC_PPR	0x104		/* Program Priority Register */
#define NN_PPC_DSCR	"LINUX"
#define NT_PPC_DSCR	0x105		/* Data Stream Control Register */
#define NN_PPC_EBB	"LINUX"
#define NT_PPC_EBB	0x106		/* Event Based Branch Registers */
#define NN_PPC_PMU	"LINUX"
#define NT_PPC_PMU	0x107		/* Performance Monitor Registers */
#define NN_PPC_TM_CGPR	"LINUX"
#define NT_PPC_TM_CGPR	0x108		/* TM checkpointed GPR Registers */
#define NN_PPC_TM_CFPR	"LINUX"
#define NT_PPC_TM_CFPR	0x109		/* TM checkpointed FPR Registers */
#define NN_PPC_TM_CVMX	"LINUX"
#define NT_PPC_TM_CVMX	0x10a		/* TM checkpointed VMX Registers */
#define NN_PPC_TM_CVSX	"LINUX"
#define NT_PPC_TM_CVSX	0x10b		/* TM checkpointed VSX Registers */
#define NN_PPC_TM_SPR	"LINUX"
#define NT_PPC_TM_SPR	0x10c		/* TM Special Purpose Registers */
#define NN_PPC_TM_CTAR	"LINUX"
#define NT_PPC_TM_CTAR	0x10d		/* TM checkpointed Target Address Register */
#define NN_PPC_TM_CPPR	"LINUX"
#define NT_PPC_TM_CPPR	0x10e		/* TM checkpointed Program Priority Register */
#define NN_PPC_TM_CDSCR	"LINUX"
#define NT_PPC_TM_CDSCR	0x10f		/* TM checkpointed Data Stream Control Register */
#define NN_PPC_PKEY	"LINUX"
#define NT_PPC_PKEY	0x110		/* Memory Protection Keys registers */
#define NN_PPC_DEXCR	"LINUX"
#define NT_PPC_DEXCR	0x111		/* PowerPC DEXCR registers */
#define NN_PPC_HASHKEYR	"LINUX"
#define NT_PPC_HASHKEYR	0x112		/* PowerPC HASHKEYR register */
#define NN_386_TLS	"LINUX"
#define NT_386_TLS	0x200		/* i386 TLS slots (struct user_desc) */
#define NN_386_IOPERM	"LINUX"
#define NT_386_IOPERM	0x201		/* x86 io permission bitmap (1=deny) */
#define NN_X86_XSTATE	"LINUX"
#define NT_X86_XSTATE	0x202		/* x86 extended state using xsave */
/* Old binutils treats 0x203 as a CET state */
#define NN_X86_SHSTK	"LINUX"
#define NT_X86_SHSTK	0x204		/* x86 SHSTK state */
#define NN_X86_XSAVE_LAYOUT	"LINUX"
#define NT_X86_XSAVE_LAYOUT	0x205	/* XSAVE layout description */
#define NN_S390_HIGH_GPRS	"LINUX"
#define NT_S390_HIGH_GPRS	0x300	/* s390 upper register halves */
#define NN_S390_TIMER	"LINUX"
#define NT_S390_TIMER	0x301		/* s390 timer register */
#define NN_S390_TODCMP	"LINUX"
#define NT_S390_TODCMP	0x302		/* s390 TOD clock comparator register */
#define NN_S390_TODPREG	"LINUX"
#define NT_S390_TODPREG	0x303		/* s390 TOD programmable register */
#define NN_S390_CTRS	"LINUX"
#define NT_S390_CTRS	0x304		/* s390 control registers */
#define NN_S390_PREFIX	"LINUX"
#define NT_S390_PREFIX	0x305		/* s390 prefix register */
#define NN_S390_LAST_BREAK	"LINUX"
#define NT_S390_LAST_BREAK	0x306	/* s390 breaking event address */
#define NN_S390_SYSTEM_CALL	"LINUX"
#define NT_S390_SYSTEM_CALL	0x307	/* s390 system call restart data */
#define NN_S390_TDB	"LINUX"
#define NT_S390_TDB	0x308		/* s390 transaction diagnostic block */
#define NN_S390_VXRS_LOW	"LINUX"
#define NT_S390_VXRS_LOW	0x309	/* s390 vector registers 0-15 upper half */
#define NN_S390_VXRS_HIGH	"LINUX"
#define NT_S390_VXRS_HIGH	0x30a	/* s390 vector registers 16-31 */
#define NN_S390_GS_CB	"LINUX"
#define NT_S390_GS_CB	0x30b		/* s390 guarded storage registers */
#define NN_S390_GS_BC	"LINUX"
#define NT_S390_GS_BC	0x30c		/* s390 guarded storage broadcast control block */
#define NN_S390_RI_CB	"LINUX"
#define NT_S390_RI_CB	0x30d		/* s390 runtime instrumentation */
#define NN_S390_PV_CPU_DATA	"LINUX"
#define NT_S390_PV_CPU_DATA	0x30e	/* s390 protvirt cpu dump data */
#define NN_ARM_VFP	"LINUX"
#define NT_ARM_VFP	0x400		/* ARM VFP/NEON registers */
#define NN_ARM_TLS	"LINUX"
#define NT_ARM_TLS	0x401		/* ARM TLS register */
#define NN_ARM_HW_BREAK	"LINUX"
#define NT_ARM_HW_BREAK	0x402		/* ARM hardware breakpoint registers */
#define NN_ARM_HW_WATCH	"LINUX"
#define NT_ARM_HW_WATCH	0x403		/* ARM hardware watchpoint registers */
#define NN_ARM_SYSTEM_CALL	"LINUX"
#define NT_ARM_SYSTEM_CALL	0x404	/* ARM system call number */
#define NN_ARM_SVE	"LINUX"
#define NT_ARM_SVE	0x405		/* ARM Scalable Vector Extension registers */
#define NN_ARM_PAC_MASK		"LINUX"
#define NT_ARM_PAC_MASK		0x406	/* ARM pointer authentication code masks */
#define NN_ARM_PACA_KEYS	"LINUX"
#define NT_ARM_PACA_KEYS	0x407	/* ARM pointer authentication address keys */
#define NN_ARM_PACG_KEYS	"LINUX"
#define NT_ARM_PACG_KEYS	0x408	/* ARM pointer authentication generic key */
#define NN_ARM_TAGGED_ADDR_CTRL	"LINUX"
#define NT_ARM_TAGGED_ADDR_CTRL	0x409	/* arm64 tagged address control (prctl()) */
#define NN_ARM_PAC_ENABLED_KEYS	"LINUX"
#define NT_ARM_PAC_ENABLED_KEYS	0x40a	/* arm64 ptr auth enabled keys (prctl()) */
#define NN_ARM_SSVE	"LINUX"
#define NT_ARM_SSVE	0x40b		/* ARM Streaming SVE registers */
#define NN_ARM_ZA	"LINUX"
#define NT_ARM_ZA	0x40c		/* ARM SME ZA registers */
#define NN_ARM_ZT	"LINUX"
#define NT_ARM_ZT	0x40d		/* ARM SME ZT registers */
#define NN_ARM_FPMR	"LINUX"
#define NT_ARM_FPMR	0x40e		/* ARM floating point mode register */
#define NN_ARM_POE	"LINUX"
#define NT_ARM_POE	0x40f		/* ARM POE registers */
#define NN_ARM_GCS	"LINUX"
#define NT_ARM_GCS	0x410		/* ARM GCS state */
#define NN_ARC_V2	"LINUX"
#define NT_ARC_V2	0x600		/* ARCv2 accumulator/extra registers */
#define NN_VMCOREDD	"LINUX"
#define NT_VMCOREDD	0x700		/* Vmcore Device Dump Note */
#define NN_MIPS_DSP	"LINUX"
#define NT_MIPS_DSP	0x800		/* MIPS DSP ASE registers */
#define NN_MIPS_FP_MODE	"LINUX"
#define NT_MIPS_FP_MODE	0x801		/* MIPS floating-point mode */
#define NN_MIPS_MSA	"LINUX"
#define NT_MIPS_MSA	0x802		/* MIPS SIMD registers */
#define NN_RISCV_CSR	"LINUX"
#define NT_RISCV_CSR	0x900		/* RISC-V Control and Status Registers */
#define NN_RISCV_VECTOR	"LINUX"
#define NT_RISCV_VECTOR	0x901		/* RISC-V vector registers */
#define NN_RISCV_TAGGED_ADDR_CTRL "LINUX"
#define NT_RISCV_TAGGED_ADDR_CTRL 0x902	/* RISC-V tagged address control (prctl()) */
#define NN_LOONGARCH_CPUCFG	"LINUX"
#define NT_LOONGARCH_CPUCFG	0xa00	/* LoongArch CPU config registers */
#define NN_LOONGARCH_CSR	"LINUX"
#define NT_LOONGARCH_CSR	0xa01	/* LoongArch control and status registers */
#define NN_LOONGARCH_LSX	"LINUX"
#define NT_LOONGARCH_LSX	0xa02	/* LoongArch Loongson SIMD Extension registers */
#define NN_LOONGARCH_LASX	"LINUX"
#define NT_LOONGARCH_LASX	0xa03	/* LoongArch Loongson Advanced SIMD Extension registers */
#define NN_LOONGARCH_LBT	"LINUX"
#define NT_LOONGARCH_LBT	0xa04	/* LoongArch Loongson Binary Translation registers */
#define NN_LOONGARCH_HW_BREAK	"LINUX"
#define NT_LOONGARCH_HW_BREAK	0xa05   /* LoongArch hardware breakpoint registers */
#define NN_LOONGARCH_HW_WATCH	"LINUX"
#define NT_LOONGARCH_HW_WATCH	0xa06   /* LoongArch hardware watchpoint registers */

/* Note header in a PT_NOTE section */
typedef struct elf32_note {
  Elf32_Word	n_namesz;	/* Name size */
  Elf32_Word	n_descsz;	/* Content size */
  Elf32_Word	n_type;		/* Content type */
} Elf32_Nhdr;

/* Note header in a PT_NOTE section */
typedef struct elf64_note {
  Elf64_Word n_namesz;	/* Name size */
  Elf64_Word n_descsz;	/* Content size */
  Elf64_Word n_type;	/* Content type */
} Elf64_Nhdr;

/* .note.gnu.property types for EM_AARCH64: */
#define GNU_PROPERTY_AARCH64_FEATURE_1_AND	0xc0000000

/* Bits for GNU_PROPERTY_AARCH64_FEATURE_1_BTI */
#define GNU_PROPERTY_AARCH64_FEATURE_1_BTI	(1U << 0)

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 {
  Elf64_Half	vd_version;
  Elf64_Half	vd_flags;
  Elf64_Half	vd_ndx;
  Elf64_Half	vd_cnt;
  Elf64_Word	vd_hash;
  Elf64_Word	vd_aux;
  Elf64_Word	vd_next;
} Elf64_Verdef;

typedef struct {
  Elf32_Word    vda_name;
  Elf32_Word    vda_next;
} Elf32_Verdaux;

typedef struct {
  Elf64_Word    vda_name;
  Elf64_Word    vda_next;
} Elf64_Verdaux;

#endif /* _UAPI_LINUX_ELF_H */
