Build Permutations with ftd2xx and libftdi addressed. Also added a new se of regressi...
[openocd.git] / testing / build.test1 / mingw32_help / include / sys / elf64.h
1 /*-
2 * Copyright (c) 1996-1998 John D. Polstra.
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 * 2. Redistributions in binary form must reproduce the above copyright
11 * notice, this list of conditions and the following disclaimer in the
12 * documentation and/or other materials provided with the distribution.
13 *
14 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24 * SUCH DAMAGE.
25 *
26 * $FreeBSD: src/sys/sys/elf64.h,v 1.10 2002/05/30 08:32:18 dfr Exp $
27 */
28
29 #ifndef _SYS_ELF64_H_
30 #define _SYS_ELF64_H_ 1
31
32 #include <sys/elf_common.h>
33
34 /*
35 * ELF definitions common to all 64-bit architectures.
36 */
37
38 typedef uint64_t Elf64_Addr;
39 typedef uint16_t Elf64_Half;
40 typedef uint32_t Elf64_Word;
41 typedef int32_t Elf64_Sword;
42 typedef uint64_t Elf64_Xword;
43 typedef int64_t Elf64_Sxword;
44 typedef uint64_t Elf64_Off;
45 typedef uint16_t Elf64_Section;
46 typedef Elf64_Half Elf64_Versym;
47 typedef uint16_t Elf64_Quarter;
48
49 /*
50 * Types of dynamic symbol hash table bucket and chain elements.
51 *
52 * This is inconsistent among 64 bit architectures, so a machine dependent
53 * typedef is required.
54 */
55
56 #ifdef __alpha__
57 typedef Elf64_Off Elf64_Hashelt;
58 #else
59 typedef Elf64_Half Elf64_Hashelt;
60 #endif
61
62 /*
63 * ELF header.
64 */
65
66 typedef struct {
67 unsigned char e_ident[EI_NIDENT]; /* File identification. */
68 Elf64_Half e_type; /* File type. */
69 Elf64_Half e_machine; /* Machine architecture. */
70 Elf64_Word e_version; /* ELF format version. */
71 Elf64_Addr e_entry; /* Entry point. */
72 Elf64_Off e_phoff; /* Program header file offset. */
73 Elf64_Off e_shoff; /* Section header file offset. */
74 Elf64_Word e_flags; /* Architecture-specific flags. */
75 Elf64_Half e_ehsize; /* Size of ELF header in bytes. */
76 Elf64_Half e_phentsize; /* Size of program header entry. */
77 Elf64_Half e_phnum; /* Number of program header entries. */
78 Elf64_Half e_shentsize; /* Size of section header entry. */
79 Elf64_Half e_shnum; /* Number of section header entries. */
80 Elf64_Half e_shstrndx; /* Section name strings section. */
81 } Elf64_Ehdr;
82
83 /*
84 * Section header.
85 */
86
87 typedef struct {
88 Elf64_Word sh_name; /* Section name (index into the
89 section header string table). */
90 Elf64_Word sh_type; /* Section type. */
91 Elf64_Xword sh_flags; /* Section flags. */
92 Elf64_Addr sh_addr; /* Address in memory image. */
93 Elf64_Off sh_offset; /* Offset in file. */
94 Elf64_Xword sh_size; /* Size in bytes. */
95 Elf64_Word sh_link; /* Index of a related section. */
96 Elf64_Word sh_info; /* Depends on section type. */
97 Elf64_Xword sh_addralign; /* Alignment in bytes. */
98 Elf64_Xword sh_entsize; /* Size of each entry in section. */
99 } Elf64_Shdr;
100
101 /*
102 * Program header.
103 */
104
105 typedef struct {
106 Elf64_Word p_type; /* Entry type. */
107 Elf64_Word p_flags; /* Access permission flags. */
108 Elf64_Off p_offset; /* File offset of contents. */
109 Elf64_Addr p_vaddr; /* Virtual address in memory image. */
110 Elf64_Addr p_paddr; /* Physical address (not used). */
111 Elf64_Xword p_filesz; /* Size of contents in file. */
112 Elf64_Xword p_memsz; /* Size of contents in memory. */
113 Elf64_Xword p_align; /* Alignment in memory and file. */
114 } Elf64_Phdr;
115
116 /*
117 * Dynamic structure. The ".dynamic" section contains an array of them.
118 */
119
120 typedef struct {
121 Elf64_Sxword d_tag; /* Entry type. */
122 union {
123 Elf64_Xword d_val; /* Integer value. */
124 Elf64_Addr d_ptr; /* Address value. */
125 } d_un;
126 } Elf64_Dyn;
127
128 /*
129 * Relocation entries.
130 */
131
132 /* Relocations that don't need an addend field. */
133 typedef struct {
134 Elf64_Addr r_offset; /* Location to be relocated. */
135 Elf64_Xword r_info; /* Relocation type and symbol index. */
136 } Elf64_Rel;
137
138 /* Relocations that need an addend field. */
139 typedef struct {
140 Elf64_Addr r_offset; /* Location to be relocated. */
141 Elf64_Xword r_info; /* Relocation type and symbol index. */
142 Elf64_Sxword r_addend; /* Addend. */
143 } Elf64_Rela;
144
145 /* Macros for accessing the fields of r_info. */
146 #define ELF64_R_SYM(info) ((info) >> 32)
147 #define ELF64_R_TYPE(info) ((unsigned char)(info))
148
149 /* Macro for constructing r_info from field values. */
150 #define ELF64_R_INFO(sym, type) (((sym) << 32) + (unsigned char)(type))
151
152 /*
153 * Symbol table entries.
154 */
155
156 typedef struct {
157 Elf64_Word st_name; /* String table index of name. */
158 unsigned char st_info; /* Type and binding information. */
159 unsigned char st_other; /* Reserved (not used). */
160 Elf64_Section st_shndx; /* Section index of symbol. */
161 Elf64_Addr st_value; /* Symbol value. */
162 Elf64_Xword st_size; /* Size of associated object. */
163 } Elf64_Sym;
164
165 /* Macros for accessing the fields of st_info. */
166 #define ELF64_ST_BIND(info) ((info) >> 4)
167 #define ELF64_ST_TYPE(info) ((info) & 0xf)
168
169 /* Macro for constructing st_info from field values. */
170 #define ELF64_ST_INFO(bind, type) (((bind) << 4) + ((type) & 0xf))
171
172 #endif /* !_SYS_ELF64_H_ */

Linking to existing account procedure

If you already have an account and want to add another login method you MUST first sign in with your existing account and then change URL to read https://review.openocd.org/login/?link to get to this page again but this time it'll work for linking. Thank you.

SSH host keys fingerprints

1024 SHA256:YKx8b7u5ZWdcbp7/4AeXNaqElP49m6QrwfXaqQGJAOk gerrit-code-review@openocd.zylin.com (DSA)
384 SHA256:jHIbSQa4REvwCFG4cq5LBlBLxmxSqelQPem/EXIrxjk gerrit-code-review@openocd.org (ECDSA)
521 SHA256:UAOPYkU9Fjtcao0Ul/Rrlnj/OsQvt+pgdYSZ4jOYdgs gerrit-code-review@openocd.org (ECDSA)
256 SHA256:A13M5QlnozFOvTllybRZH6vm7iSt0XLxbA48yfc2yfY gerrit-code-review@openocd.org (ECDSA)
256 SHA256:spYMBqEYoAOtK7yZBrcwE8ZpYt6b68Cfh9yEVetvbXg gerrit-code-review@openocd.org (ED25519)
+--[ED25519 256]--+
|=..              |
|+o..   .         |
|*.o   . .        |
|+B . . .         |
|Bo. = o S        |
|Oo.+ + =         |
|oB=.* = . o      |
| =+=.+   + E     |
|. .=o   . o      |
+----[SHA256]-----+
2048 SHA256:0Onrb7/PHjpo6iVZ7xQX2riKN83FJ3KGU0TvI0TaFG4 gerrit-code-review@openocd.zylin.com (RSA)