/src/elfutils/backends/linux-core-note.c
Line | Count | Source |
1 | | /* Common core note type descriptions for Linux. |
2 | | Copyright (C) 2007-2010 Red Hat, Inc. |
3 | | Copyright (C) H.J. Lu <hjl.tools@gmail.com>, 2015. |
4 | | This file is part of elfutils. |
5 | | |
6 | | This file is free software; you can redistribute it and/or modify |
7 | | it under the terms of either |
8 | | |
9 | | * the GNU Lesser General Public License as published by the Free |
10 | | Software Foundation; either version 3 of the License, or (at |
11 | | your option) any later version |
12 | | |
13 | | or |
14 | | |
15 | | * the GNU General Public License as published by the Free |
16 | | Software Foundation; either version 2 of the License, or (at |
17 | | your option) any later version |
18 | | |
19 | | or both in parallel, as here. |
20 | | |
21 | | elfutils is distributed in the hope that it will be useful, but |
22 | | WITHOUT ANY WARRANTY; without even the implied warranty of |
23 | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
24 | | General Public License for more details. |
25 | | |
26 | | You should have received copies of the GNU General Public License and |
27 | | the GNU Lesser General Public License along with this program. If |
28 | | not, see <http://www.gnu.org/licenses/>. */ |
29 | | |
30 | | #include <string.h> |
31 | | |
32 | | /* The including CPU_corenote.c file provides prstatus_regs and |
33 | | defines macros ULONG, [PUG]ID_T, and ALIGN_*, TYPE_*. |
34 | | |
35 | | Here we describe the common layout used in <linux/elfcore.h>. */ |
36 | | |
37 | | #define CHAR int8_t |
38 | | #define ALIGN_CHAR 1 |
39 | | #define TYPE_CHAR ELF_T_BYTE |
40 | | #define SHORT uint16_t |
41 | | #define ALIGN_SHORT 2 |
42 | | #define TYPE_SHORT ELF_T_HALF |
43 | | #define INT int32_t |
44 | | #ifndef ALIGN_INT |
45 | | # define ALIGN_INT 4 |
46 | | #endif |
47 | | #define TYPE_INT ELF_T_SWORD |
48 | | #ifndef PR_REG |
49 | | # define PR_REG ULONG |
50 | | #endif |
51 | | #ifndef ALIGN_PR_REG |
52 | | # define ALIGN_PR_REG ALIGN_ULONG |
53 | | #endif |
54 | | #ifndef PRPSINFO_UID_T |
55 | | # define PRPSINFO_UID_T UID_T |
56 | | # define ALIGN_PRPSINFO_UID_T ALIGN_UID_T |
57 | | # define TYPE_PRPSINFO_UID_T TYPE_UID_T |
58 | | #endif |
59 | | #ifndef PRPSINFO_GID_T |
60 | | # define PRPSINFO_GID_T GID_T |
61 | | # define ALIGN_PRPSINFO_GID_T ALIGN_GID_T |
62 | | # define TYPE_PRPSINFO_GID_T TYPE_GID_T |
63 | | #endif |
64 | | |
65 | | #define FIELD(type, name) type name __attribute__ ((aligned (ALIGN_##type))) |
66 | | |
67 | | struct EBLHOOK(siginfo) |
68 | | { |
69 | | FIELD (INT, si_signo); |
70 | | FIELD (INT, si_code); |
71 | | FIELD (INT, si_errno); |
72 | | }; |
73 | | |
74 | | struct EBLHOOK(timeval) |
75 | | { |
76 | | FIELD (ULONG, tv_sec); |
77 | | FIELD (ULONG, tv_usec); |
78 | | }; |
79 | | |
80 | | /* On sparc64, tv_usec (suseconds_t) is actually 32 bits with 32 bits padding. |
81 | | The 'T'|0x80 value for .format indicates this as a special kludge. */ |
82 | | #if SUSECONDS_HALF |
83 | | # define TIMEVAL_FIELD(name) FIELD (time, ULONG, name, 'T'|0x80, .count = 2) |
84 | | #else |
85 | | # define TIMEVAL_FIELD(name) FIELD (time, ULONG, name, 'T', .count = 2) |
86 | | #endif |
87 | | |
88 | | |
89 | | struct EBLHOOK(prstatus) |
90 | | { |
91 | | struct EBLHOOK(siginfo) pr_info; |
92 | | FIELD (SHORT, pr_cursig); |
93 | | FIELD (ULONG, pr_sigpend); |
94 | | FIELD (ULONG, pr_sighold); |
95 | | FIELD (PID_T, pr_pid); |
96 | | FIELD (PID_T, pr_ppid); |
97 | | FIELD (PID_T, pr_pgrp); |
98 | | FIELD (PID_T, pr_sid); |
99 | | struct EBLHOOK(timeval) pr_utime; |
100 | | struct EBLHOOK(timeval) pr_stime; |
101 | | struct EBLHOOK(timeval) pr_cutime; |
102 | | struct EBLHOOK(timeval) pr_cstime; |
103 | | struct |
104 | | { |
105 | | FIELD (PR_REG, pr_reg[PRSTATUS_REGS_SIZE / sizeof (PR_REG)]); |
106 | | } |
107 | | #ifdef ALIGN_PR_REG |
108 | | __attribute__ ((aligned (ALIGN_PR_REG))) |
109 | | #endif |
110 | | ; |
111 | | FIELD (INT, pr_fpvalid); |
112 | | } |
113 | | #ifdef ALIGN_PRSTATUS |
114 | | attribute_packed __attribute__ ((aligned (ALIGN_PRSTATUS))) |
115 | | #endif |
116 | | ; |
117 | | |
118 | | #define FNAMESZ 16 |
119 | | #define PRARGSZ 80 |
120 | | |
121 | | struct EBLHOOK(prpsinfo) |
122 | | { |
123 | | FIELD (CHAR, pr_state); |
124 | | FIELD (CHAR, pr_sname); |
125 | | FIELD (CHAR, pr_zomb); |
126 | | FIELD (CHAR, pr_nice); |
127 | | FIELD (ULONG, pr_flag); |
128 | | FIELD (PRPSINFO_UID_T, pr_uid); |
129 | | FIELD (PRPSINFO_GID_T, pr_gid); |
130 | | FIELD (PID_T, pr_pid); |
131 | | FIELD (PID_T, pr_ppid); |
132 | | FIELD (PID_T, pr_pgrp); |
133 | | FIELD (PID_T, pr_sid); |
134 | | FIELD (CHAR, pr_fname[FNAMESZ]); |
135 | | FIELD (CHAR, pr_psargs[PRARGSZ]); |
136 | | }; |
137 | | |
138 | | #undef FIELD |
139 | | |
140 | | #define FIELD(igroup, itype, item, fmt, ...) \ |
141 | | { \ |
142 | | .name = #item, \ |
143 | | .group = #igroup, \ |
144 | | .offset = offsetof (struct EBLHOOK(prstatus), pr_##item), \ |
145 | | .type = TYPE_##itype, \ |
146 | | .format = fmt, \ |
147 | | __VA_ARGS__ \ |
148 | | } |
149 | | |
150 | | static const Ebl_Core_Item prstatus_items[] = |
151 | | { |
152 | | FIELD (signal, INT, info.si_signo, 'd'), |
153 | | FIELD (signal, INT, info.si_code, 'd'), |
154 | | FIELD (signal, INT, info.si_errno, 'd'), |
155 | | FIELD (signal, SHORT, cursig, 'd'), |
156 | | |
157 | | /* Use different group name for a newline delimiter. */ |
158 | | FIELD (signal2, ULONG, sigpend, 'B'), |
159 | | FIELD (signal3, ULONG, sighold, 'B'), |
160 | | FIELD (identity, PID_T, pid, 'd', .thread_identifier = true), |
161 | | FIELD (identity, PID_T, ppid, 'd'), |
162 | | FIELD (identity, PID_T, pgrp, 'd'), |
163 | | FIELD (identity, PID_T, sid, 'd'), |
164 | | TIMEVAL_FIELD (utime), |
165 | | TIMEVAL_FIELD (stime), |
166 | | TIMEVAL_FIELD (cutime), |
167 | | TIMEVAL_FIELD (cstime), |
168 | | #ifdef PRSTATUS_REGSET_ITEMS |
169 | | PRSTATUS_REGSET_ITEMS, |
170 | | #endif |
171 | | FIELD (register, INT, fpvalid, 'd'), |
172 | | }; |
173 | | |
174 | | #undef FIELD |
175 | | |
176 | | #define FIELD(igroup, itype, item, fmt, ...) \ |
177 | | { \ |
178 | | .name = #item, \ |
179 | | .group = #igroup, \ |
180 | | .offset = offsetof (struct EBLHOOK(prpsinfo), pr_##item), \ |
181 | | .type = TYPE_##itype, \ |
182 | | .format = fmt, \ |
183 | | __VA_ARGS__ \ |
184 | | } |
185 | | |
186 | | static const Ebl_Core_Item prpsinfo_items[] = |
187 | | { |
188 | | FIELD (state, CHAR, state, 'd'), |
189 | | FIELD (state, CHAR, sname, 'c'), |
190 | | FIELD (state, CHAR, zomb, 'd'), |
191 | | FIELD (state, CHAR, nice, 'd'), |
192 | | FIELD (state, ULONG, flag, 'x'), |
193 | | FIELD (identity, PRPSINFO_UID_T, uid, 'd'), |
194 | | FIELD (identity, PRPSINFO_GID_T, gid, 'd'), |
195 | | FIELD (identity, PID_T, pid, 'd'), |
196 | | FIELD (identity, PID_T, ppid, 'd'), |
197 | | FIELD (identity, PID_T, pgrp, 'd'), |
198 | | FIELD (identity, PID_T, sid, 'd'), |
199 | | FIELD (command, CHAR, fname, 's', .count = FNAMESZ), |
200 | | FIELD (command, CHAR, psargs, 's', .count = PRARGSZ), |
201 | | }; |
202 | | |
203 | | static const Ebl_Core_Item vmcoreinfo_items[] = |
204 | | { |
205 | | { |
206 | | .type = ELF_T_BYTE, .format = '\n' |
207 | | } |
208 | | }; |
209 | | |
210 | | #undef FIELD |
211 | | |
212 | | int |
213 | | EBLHOOK(core_note) (const GElf_Nhdr *nhdr, const char *name, |
214 | | GElf_Word *regs_offset, size_t *nregloc, |
215 | | const Ebl_Register_Location **reglocs, |
216 | | size_t *nitems, const Ebl_Core_Item **items) |
217 | 117k | { |
218 | 117k | switch (nhdr->n_namesz) |
219 | 117k | { |
220 | 50.4k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ |
221 | 50.4k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) |
222 | 13.8k | break; |
223 | 36.5k | return 0; |
224 | | |
225 | 23.2k | case sizeof "CORE": |
226 | 23.2k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) |
227 | 6.62k | break; |
228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ |
229 | 16.6k | FALLTHROUGH; |
230 | | |
231 | 22.0k | case sizeof "LINUX": |
232 | 22.0k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) |
233 | 8.49k | break; |
234 | 13.5k | return 0; |
235 | | |
236 | 9.04k | case sizeof "VMCOREINFO": |
237 | 9.04k | if (nhdr->n_type != 0 |
238 | 6.83k | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) |
239 | 7.88k | return 0; |
240 | 1.16k | *regs_offset = 0; |
241 | 1.16k | *nregloc = 0; |
242 | 1.16k | *reglocs = NULL; |
243 | 1.16k | *nitems = 1; |
244 | 1.16k | *items = vmcoreinfo_items; |
245 | 1.16k | return 1; |
246 | | |
247 | 29.0k | default: |
248 | 29.0k | return 0; |
249 | 117k | } |
250 | | |
251 | 28.9k | switch (nhdr->n_type) |
252 | 28.9k | { |
253 | 5.62k | case NT_PRSTATUS: |
254 | 5.62k | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) |
255 | 5.43k | return 0; |
256 | 189 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); |
257 | 189 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; |
258 | 189 | *reglocs = prstatus_regs; |
259 | 189 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; |
260 | 189 | *items = prstatus_items; |
261 | 189 | return 1; |
262 | | |
263 | 2.13k | case NT_PRPSINFO: |
264 | 2.13k | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) |
265 | 2.09k | return 0; |
266 | 41 | *regs_offset = 0; |
267 | 41 | *nregloc = 0; |
268 | 41 | *reglocs = NULL; |
269 | 41 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; |
270 | 41 | *items = prpsinfo_items; |
271 | 41 | return 1; |
272 | | |
273 | 0 | #define EXTRA_REGSET(type, size, table) \ |
274 | 315 | case type: \ |
275 | 5.32k | if (nhdr->n_descsz != size) \ |
276 | 5.00k | return 0; \ |
277 | 315 | *regs_offset = 0; \ |
278 | 315 | *nregloc = sizeof table / sizeof table[0]; \ |
279 | 315 | *reglocs = table; \ |
280 | 315 | *nitems = 0; \ |
281 | 315 | *items = NULL; \ |
282 | 315 | return 1; |
283 | | |
284 | 0 | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ |
285 | 32 | case type: \ |
286 | 1.58k | if (nhdr->n_descsz != size) \ |
287 | 1.55k | return 0; \ |
288 | 32 | *regs_offset = 0; \ |
289 | 32 | *nregloc = sizeof table / sizeof table[0]; \ |
290 | 32 | *reglocs = table; \ |
291 | 32 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ |
292 | 32 | *items = extra_items; \ |
293 | 32 | return 1; |
294 | | |
295 | 0 | #define EXTRA_ITEMS(type, size, extra_items) \ |
296 | 269 | case type: \ |
297 | 631 | if (nhdr->n_descsz != size) \ |
298 | 362 | return 0; \ |
299 | 269 | *regs_offset = 0; \ |
300 | 269 | *nregloc = 0; \ |
301 | 269 | *reglocs = NULL; \ |
302 | 269 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ |
303 | 269 | *items = extra_items; \ |
304 | 269 | return 1; |
305 | | |
306 | | #ifdef FPREGSET_SIZE |
307 | 4.70k | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) |
308 | 0 | #endif |
309 | | |
310 | | #ifdef EXTRA_NOTES |
311 | 287 | EXTRA_NOTES |
312 | | #endif |
313 | 28.9k | } |
314 | | |
315 | 13.2k | return 0; |
316 | 28.9k | } Line | Count | Source | 217 | 9.02k | { | 218 | 9.02k | switch (nhdr->n_namesz) | 219 | 9.02k | { | 220 | 4.01k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 4.01k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 1.25k | break; | 223 | 2.76k | return 0; | 224 | | | 225 | 1.61k | case sizeof "CORE": | 226 | 1.61k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 406 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 1.20k | FALLTHROUGH; | 230 | | | 231 | 1.58k | case sizeof "LINUX": | 232 | 1.58k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 670 | break; | 234 | 912 | return 0; | 235 | | | 236 | 594 | case sizeof "VMCOREINFO": | 237 | 594 | if (nhdr->n_type != 0 | 238 | 446 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 518 | return 0; | 240 | 76 | *regs_offset = 0; | 241 | 76 | *nregloc = 0; | 242 | 76 | *reglocs = NULL; | 243 | 76 | *nitems = 1; | 244 | 76 | *items = vmcoreinfo_items; | 245 | 76 | return 1; | 246 | | | 247 | 2.43k | default: | 248 | 2.43k | return 0; | 249 | 9.02k | } | 250 | | | 251 | 2.32k | switch (nhdr->n_type) | 252 | 2.32k | { | 253 | 342 | case NT_PRSTATUS: | 254 | 342 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 332 | return 0; | 256 | 10 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 10 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 10 | *reglocs = prstatus_regs; | 259 | 10 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 10 | *items = prstatus_items; | 261 | 10 | return 1; | 262 | | | 263 | 122 | case NT_PRPSINFO: | 264 | 122 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 121 | return 0; | 266 | 1 | *regs_offset = 0; | 267 | 1 | *nregloc = 0; | 268 | 1 | *reglocs = NULL; | 269 | 1 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 1 | *items = prpsinfo_items; | 271 | 1 | return 1; | 272 | | | 273 | 0 | #define EXTRA_REGSET(type, size, table) \ | 274 | 0 | case type: \ | 275 | 0 | if (nhdr->n_descsz != size) \ | 276 | 0 | return 0; \ | 277 | 0 | *regs_offset = 0; \ | 278 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 0 | *reglocs = table; \ | 280 | 0 | *nitems = 0; \ | 281 | 0 | *items = NULL; \ | 282 | 0 | return 1; | 283 | | | 284 | 0 | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 0 | case type: \ | 286 | 0 | if (nhdr->n_descsz != size) \ | 287 | 0 | return 0; \ | 288 | 0 | *regs_offset = 0; \ | 289 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 0 | *reglocs = table; \ | 291 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 0 | *items = extra_items; \ | 293 | 0 | return 1; | 294 | | | 295 | 0 | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 0 | case type: \ | 297 | 0 | if (nhdr->n_descsz != size) \ | 298 | 0 | return 0; \ | 299 | 0 | *regs_offset = 0; \ | 300 | 0 | *nregloc = 0; \ | 301 | 0 | *reglocs = NULL; \ | 302 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 0 | *items = extra_items; \ | 304 | 0 | return 1; | 305 | | | 306 | 0 | #ifdef FPREGSET_SIZE | 307 | 665 | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 0 | #endif | 309 | | | 310 | 0 | #ifdef EXTRA_NOTES | 311 | 2.32k | EXTRA_NOTES | 312 | 2.32k | #endif | 313 | 2.32k | } | 314 | | | 315 | 962 | return 0; | 316 | 2.32k | } |
Unexecuted instantiation: sh_core_note Line | Count | Source | 217 | 6.88k | { | 218 | 6.88k | switch (nhdr->n_namesz) | 219 | 6.88k | { | 220 | 2.93k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 2.93k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 841 | break; | 223 | 2.09k | return 0; | 224 | | | 225 | 1.42k | case sizeof "CORE": | 226 | 1.42k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 403 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 1.02k | FALLTHROUGH; | 230 | | | 231 | 1.30k | case sizeof "LINUX": | 232 | 1.30k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 482 | break; | 234 | 825 | return 0; | 235 | | | 236 | 375 | case sizeof "VMCOREINFO": | 237 | 375 | if (nhdr->n_type != 0 | 238 | 264 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 307 | return 0; | 240 | 68 | *regs_offset = 0; | 241 | 68 | *nregloc = 0; | 242 | 68 | *reglocs = NULL; | 243 | 68 | *nitems = 1; | 244 | 68 | *items = vmcoreinfo_items; | 245 | 68 | return 1; | 246 | | | 247 | 1.86k | default: | 248 | 1.86k | return 0; | 249 | 6.88k | } | 250 | | | 251 | 1.72k | switch (nhdr->n_type) | 252 | 1.72k | { | 253 | 332 | case NT_PRSTATUS: | 254 | 332 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 315 | return 0; | 256 | 17 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 17 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 17 | *reglocs = prstatus_regs; | 259 | 17 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 17 | *items = prstatus_items; | 261 | 17 | return 1; | 262 | | | 263 | 115 | case NT_PRPSINFO: | 264 | 115 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 110 | return 0; | 266 | 5 | *regs_offset = 0; | 267 | 5 | *nregloc = 0; | 268 | 5 | *reglocs = NULL; | 269 | 5 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 5 | *items = prpsinfo_items; | 271 | 5 | return 1; | 272 | | | 273 | 0 | #define EXTRA_REGSET(type, size, table) \ | 274 | 0 | case type: \ | 275 | 0 | if (nhdr->n_descsz != size) \ | 276 | 0 | return 0; \ | 277 | 0 | *regs_offset = 0; \ | 278 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 0 | *reglocs = table; \ | 280 | 0 | *nitems = 0; \ | 281 | 0 | *items = NULL; \ | 282 | 0 | return 1; | 283 | | | 284 | 0 | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 0 | case type: \ | 286 | 0 | if (nhdr->n_descsz != size) \ | 287 | 0 | return 0; \ | 288 | 0 | *regs_offset = 0; \ | 289 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 0 | *reglocs = table; \ | 291 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 0 | *items = extra_items; \ | 293 | 0 | return 1; | 294 | | | 295 | 0 | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 0 | case type: \ | 297 | 0 | if (nhdr->n_descsz != size) \ | 298 | 0 | return 0; \ | 299 | 0 | *regs_offset = 0; \ | 300 | 0 | *nregloc = 0; \ | 301 | 0 | *reglocs = NULL; \ | 302 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 0 | *items = extra_items; \ | 304 | 0 | return 1; | 305 | | | 306 | 0 | #ifdef FPREGSET_SIZE | 307 | 468 | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 0 | #endif | 309 | | | 310 | 0 | #ifdef EXTRA_NOTES | 311 | 1.72k | EXTRA_NOTES | 312 | 1.72k | #endif | 313 | 1.72k | } | 314 | | | 315 | 743 | return 0; | 316 | 1.72k | } |
Line | Count | Source | 217 | 7.82k | { | 218 | 7.82k | switch (nhdr->n_namesz) | 219 | 7.82k | { | 220 | 3.34k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.34k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 930 | break; | 223 | 2.41k | return 0; | 224 | | | 225 | 1.33k | case sizeof "CORE": | 226 | 1.33k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 305 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 1.02k | FALLTHROUGH; | 230 | | | 231 | 1.37k | case sizeof "LINUX": | 232 | 1.37k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 573 | break; | 234 | 798 | return 0; | 235 | | | 236 | 510 | case sizeof "VMCOREINFO": | 237 | 510 | if (nhdr->n_type != 0 | 238 | 378 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 444 | return 0; | 240 | 66 | *regs_offset = 0; | 241 | 66 | *nregloc = 0; | 242 | 66 | *reglocs = NULL; | 243 | 66 | *nitems = 1; | 244 | 66 | *items = vmcoreinfo_items; | 245 | 66 | return 1; | 246 | | | 247 | 2.29k | default: | 248 | 2.29k | return 0; | 249 | 7.82k | } | 250 | | | 251 | 1.80k | switch (nhdr->n_type) | 252 | 1.80k | { | 253 | 269 | case NT_PRSTATUS: | 254 | 269 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 263 | return 0; | 256 | 6 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 6 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 6 | *reglocs = prstatus_regs; | 259 | 6 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 6 | *items = prstatus_items; | 261 | 6 | return 1; | 262 | | | 263 | 196 | case NT_PRPSINFO: | 264 | 196 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 195 | return 0; | 266 | 1 | *regs_offset = 0; | 267 | 1 | *nregloc = 0; | 268 | 1 | *reglocs = NULL; | 269 | 1 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 1 | *items = prpsinfo_items; | 271 | 1 | return 1; | 272 | | | 273 | 0 | #define EXTRA_REGSET(type, size, table) \ | 274 | 0 | case type: \ | 275 | 0 | if (nhdr->n_descsz != size) \ | 276 | 0 | return 0; \ | 277 | 0 | *regs_offset = 0; \ | 278 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 0 | *reglocs = table; \ | 280 | 0 | *nitems = 0; \ | 281 | 0 | *items = NULL; \ | 282 | 0 | return 1; | 283 | | | 284 | 0 | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 0 | case type: \ | 286 | 0 | if (nhdr->n_descsz != size) \ | 287 | 0 | return 0; \ | 288 | 0 | *regs_offset = 0; \ | 289 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 0 | *reglocs = table; \ | 291 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 0 | *items = extra_items; \ | 293 | 0 | return 1; | 294 | | | 295 | 0 | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 0 | case type: \ | 297 | 0 | if (nhdr->n_descsz != size) \ | 298 | 0 | return 0; \ | 299 | 0 | *regs_offset = 0; \ | 300 | 0 | *nregloc = 0; \ | 301 | 0 | *reglocs = NULL; \ | 302 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 0 | *items = extra_items; \ | 304 | 0 | return 1; | 305 | | | 306 | 0 | #ifdef FPREGSET_SIZE | 307 | 371 | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 0 | #endif | 309 | | | 310 | 0 | #ifdef EXTRA_NOTES | 311 | 1.80k | EXTRA_NOTES | 312 | 1.80k | #endif | 313 | 1.80k | } | 314 | | | 315 | 820 | return 0; | 316 | 1.80k | } |
Unexecuted instantiation: alpha_core_note Line | Count | Source | 217 | 7.46k | { | 218 | 7.46k | switch (nhdr->n_namesz) | 219 | 7.46k | { | 220 | 3.43k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.43k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 895 | break; | 223 | 2.54k | return 0; | 224 | | | 225 | 1.39k | case sizeof "CORE": | 226 | 1.39k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 435 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 955 | FALLTHROUGH; | 230 | | | 231 | 1.30k | case sizeof "LINUX": | 232 | 1.30k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 555 | break; | 234 | 748 | return 0; | 235 | | | 236 | 613 | case sizeof "VMCOREINFO": | 237 | 613 | if (nhdr->n_type != 0 | 238 | 499 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 543 | return 0; | 240 | 70 | *regs_offset = 0; | 241 | 70 | *nregloc = 0; | 242 | 70 | *reglocs = NULL; | 243 | 70 | *nitems = 1; | 244 | 70 | *items = vmcoreinfo_items; | 245 | 70 | return 1; | 246 | | | 247 | 1.67k | default: | 248 | 1.67k | return 0; | 249 | 7.46k | } | 250 | | | 251 | 1.88k | switch (nhdr->n_type) | 252 | 1.88k | { | 253 | 411 | case NT_PRSTATUS: | 254 | 411 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 401 | return 0; | 256 | 10 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 10 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 10 | *reglocs = prstatus_regs; | 259 | 10 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 10 | *items = prstatus_items; | 261 | 10 | return 1; | 262 | | | 263 | 112 | case NT_PRPSINFO: | 264 | 112 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 111 | return 0; | 266 | 1 | *regs_offset = 0; | 267 | 1 | *nregloc = 0; | 268 | 1 | *reglocs = NULL; | 269 | 1 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 1 | *items = prpsinfo_items; | 271 | 1 | return 1; | 272 | | | 273 | 0 | #define EXTRA_REGSET(type, size, table) \ | 274 | 0 | case type: \ | 275 | 0 | if (nhdr->n_descsz != size) \ | 276 | 0 | return 0; \ | 277 | 0 | *regs_offset = 0; \ | 278 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 0 | *reglocs = table; \ | 280 | 0 | *nitems = 0; \ | 281 | 0 | *items = NULL; \ | 282 | 0 | return 1; | 283 | | | 284 | 0 | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 0 | case type: \ | 286 | 0 | if (nhdr->n_descsz != size) \ | 287 | 0 | return 0; \ | 288 | 0 | *regs_offset = 0; \ | 289 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 0 | *reglocs = table; \ | 291 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 0 | *items = extra_items; \ | 293 | 0 | return 1; | 294 | | | 295 | 0 | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 0 | case type: \ | 297 | 0 | if (nhdr->n_descsz != size) \ | 298 | 0 | return 0; \ | 299 | 0 | *regs_offset = 0; \ | 300 | 0 | *nregloc = 0; \ | 301 | 0 | *reglocs = NULL; \ | 302 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 0 | *items = extra_items; \ | 304 | 0 | return 1; | 305 | | | 306 | 0 | #ifdef FPREGSET_SIZE | 307 | 537 | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 0 | #endif | 309 | | | 310 | 0 | #ifdef EXTRA_NOTES | 311 | 1.88k | EXTRA_NOTES | 312 | 1.88k | #endif | 313 | 1.88k | } | 314 | | | 315 | 790 | return 0; | 316 | 1.88k | } |
Line | Count | Source | 217 | 6.86k | { | 218 | 6.86k | switch (nhdr->n_namesz) | 219 | 6.86k | { | 220 | 3.20k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.20k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 1.02k | break; | 223 | 2.17k | return 0; | 224 | | | 225 | 1.25k | case sizeof "CORE": | 226 | 1.25k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 384 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 870 | FALLTHROUGH; | 230 | | | 231 | 1.22k | case sizeof "LINUX": | 232 | 1.22k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 539 | break; | 234 | 682 | return 0; | 235 | | | 236 | 492 | case sizeof "VMCOREINFO": | 237 | 492 | if (nhdr->n_type != 0 | 238 | 383 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 425 | return 0; | 240 | 67 | *regs_offset = 0; | 241 | 67 | *nregloc = 0; | 242 | 67 | *reglocs = NULL; | 243 | 67 | *nitems = 1; | 244 | 67 | *items = vmcoreinfo_items; | 245 | 67 | return 1; | 246 | | | 247 | 1.56k | default: | 248 | 1.56k | return 0; | 249 | 6.86k | } | 250 | | | 251 | 1.94k | switch (nhdr->n_type) | 252 | 1.94k | { | 253 | 329 | case NT_PRSTATUS: | 254 | 329 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 318 | return 0; | 256 | 11 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 11 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 11 | *reglocs = prstatus_regs; | 259 | 11 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 11 | *items = prstatus_items; | 261 | 11 | return 1; | 262 | | | 263 | 152 | case NT_PRPSINFO: | 264 | 152 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 151 | return 0; | 266 | 1 | *regs_offset = 0; | 267 | 1 | *nregloc = 0; | 268 | 1 | *reglocs = NULL; | 269 | 1 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 1 | *items = prpsinfo_items; | 271 | 1 | return 1; | 272 | | | 273 | 0 | #define EXTRA_REGSET(type, size, table) \ | 274 | 0 | case type: \ | 275 | 0 | if (nhdr->n_descsz != size) \ | 276 | 0 | return 0; \ | 277 | 0 | *regs_offset = 0; \ | 278 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 0 | *reglocs = table; \ | 280 | 0 | *nitems = 0; \ | 281 | 0 | *items = NULL; \ | 282 | 0 | return 1; | 283 | | | 284 | 0 | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 0 | case type: \ | 286 | 0 | if (nhdr->n_descsz != size) \ | 287 | 0 | return 0; \ | 288 | 0 | *regs_offset = 0; \ | 289 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 0 | *reglocs = table; \ | 291 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 0 | *items = extra_items; \ | 293 | 0 | return 1; | 294 | | | 295 | 0 | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 0 | case type: \ | 297 | 0 | if (nhdr->n_descsz != size) \ | 298 | 0 | return 0; \ | 299 | 0 | *regs_offset = 0; \ | 300 | 0 | *nregloc = 0; \ | 301 | 0 | *reglocs = NULL; \ | 302 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 0 | *items = extra_items; \ | 304 | 0 | return 1; | 305 | | | 306 | | #ifdef FPREGSET_SIZE | 307 | | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | | #endif | 309 | | | 310 | 0 | #ifdef EXTRA_NOTES | 311 | 1.94k | EXTRA_NOTES | 312 | 1.94k | #endif | 313 | 1.94k | } | 314 | | | 315 | 679 | return 0; | 316 | 1.94k | } |
Line | Count | Source | 217 | 7.93k | { | 218 | 7.93k | switch (nhdr->n_namesz) | 219 | 7.93k | { | 220 | 3.54k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.54k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 891 | break; | 223 | 2.65k | return 0; | 224 | | | 225 | 1.50k | case sizeof "CORE": | 226 | 1.50k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 422 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 1.08k | FALLTHROUGH; | 230 | | | 231 | 1.40k | case sizeof "LINUX": | 232 | 1.40k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 535 | break; | 234 | 870 | return 0; | 235 | | | 236 | 608 | case sizeof "VMCOREINFO": | 237 | 608 | if (nhdr->n_type != 0 | 238 | 476 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 527 | return 0; | 240 | 81 | *regs_offset = 0; | 241 | 81 | *nregloc = 0; | 242 | 81 | *reglocs = NULL; | 243 | 81 | *nitems = 1; | 244 | 81 | *items = vmcoreinfo_items; | 245 | 81 | return 1; | 246 | | | 247 | 1.95k | default: | 248 | 1.95k | return 0; | 249 | 7.93k | } | 250 | | | 251 | 1.84k | switch (nhdr->n_type) | 252 | 1.84k | { | 253 | 369 | case NT_PRSTATUS: | 254 | 369 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 363 | return 0; | 256 | 6 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 6 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 6 | *reglocs = prstatus_regs; | 259 | 6 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 6 | *items = prstatus_items; | 261 | 6 | return 1; | 262 | | | 263 | 118 | case NT_PRPSINFO: | 264 | 118 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 117 | return 0; | 266 | 1 | *regs_offset = 0; | 267 | 1 | *nregloc = 0; | 268 | 1 | *reglocs = NULL; | 269 | 1 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 1 | *items = prpsinfo_items; | 271 | 1 | return 1; | 272 | | | 273 | 0 | #define EXTRA_REGSET(type, size, table) \ | 274 | 0 | case type: \ | 275 | 0 | if (nhdr->n_descsz != size) \ | 276 | 0 | return 0; \ | 277 | 0 | *regs_offset = 0; \ | 278 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 0 | *reglocs = table; \ | 280 | 0 | *nitems = 0; \ | 281 | 0 | *items = NULL; \ | 282 | 0 | return 1; | 283 | | | 284 | 0 | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 0 | case type: \ | 286 | 0 | if (nhdr->n_descsz != size) \ | 287 | 0 | return 0; \ | 288 | 0 | *regs_offset = 0; \ | 289 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 0 | *reglocs = table; \ | 291 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 0 | *items = extra_items; \ | 293 | 0 | return 1; | 294 | | | 295 | 0 | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 0 | case type: \ | 297 | 0 | if (nhdr->n_descsz != size) \ | 298 | 0 | return 0; \ | 299 | 0 | *regs_offset = 0; \ | 300 | 0 | *nregloc = 0; \ | 301 | 0 | *reglocs = NULL; \ | 302 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 0 | *items = extra_items; \ | 304 | 0 | return 1; | 305 | | | 306 | 0 | #ifdef FPREGSET_SIZE | 307 | 1.84k | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 1.84k | #endif | 309 | | | 310 | | #ifdef EXTRA_NOTES | 311 | | EXTRA_NOTES | 312 | | #endif | 313 | 1.84k | } | 314 | | | 315 | 808 | return 0; | 316 | 1.84k | } |
Line | Count | Source | 217 | 7.42k | { | 218 | 7.42k | switch (nhdr->n_namesz) | 219 | 7.42k | { | 220 | 3.08k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.08k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 760 | break; | 223 | 2.32k | return 0; | 224 | | | 225 | 1.64k | case sizeof "CORE": | 226 | 1.64k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 527 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 1.12k | FALLTHROUGH; | 230 | | | 231 | 1.43k | case sizeof "LINUX": | 232 | 1.43k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 559 | break; | 234 | 872 | return 0; | 235 | | | 236 | 524 | case sizeof "VMCOREINFO": | 237 | 524 | if (nhdr->n_type != 0 | 238 | 393 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 458 | return 0; | 240 | 66 | *regs_offset = 0; | 241 | 66 | *nregloc = 0; | 242 | 66 | *reglocs = NULL; | 243 | 66 | *nitems = 1; | 244 | 66 | *items = vmcoreinfo_items; | 245 | 66 | return 1; | 246 | | | 247 | 1.86k | default: | 248 | 1.86k | return 0; | 249 | 7.42k | } | 250 | | | 251 | 1.84k | switch (nhdr->n_type) | 252 | 1.84k | { | 253 | 490 | case NT_PRSTATUS: | 254 | 490 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 471 | return 0; | 256 | 19 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 19 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 19 | *reglocs = prstatus_regs; | 259 | 19 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 19 | *items = prstatus_items; | 261 | 19 | return 1; | 262 | | | 263 | 101 | case NT_PRPSINFO: | 264 | 101 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 100 | return 0; | 266 | 1 | *regs_offset = 0; | 267 | 1 | *nregloc = 0; | 268 | 1 | *reglocs = NULL; | 269 | 1 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 1 | *items = prpsinfo_items; | 271 | 1 | return 1; | 272 | | | 273 | 0 | #define EXTRA_REGSET(type, size, table) \ | 274 | 0 | case type: \ | 275 | 0 | if (nhdr->n_descsz != size) \ | 276 | 0 | return 0; \ | 277 | 0 | *regs_offset = 0; \ | 278 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 0 | *reglocs = table; \ | 280 | 0 | *nitems = 0; \ | 281 | 0 | *items = NULL; \ | 282 | 0 | return 1; | 283 | | | 284 | 0 | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 0 | case type: \ | 286 | 0 | if (nhdr->n_descsz != size) \ | 287 | 0 | return 0; \ | 288 | 0 | *regs_offset = 0; \ | 289 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 0 | *reglocs = table; \ | 291 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 0 | *items = extra_items; \ | 293 | 0 | return 1; | 294 | | | 295 | 0 | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 0 | case type: \ | 297 | 0 | if (nhdr->n_descsz != size) \ | 298 | 0 | return 0; \ | 299 | 0 | *regs_offset = 0; \ | 300 | 0 | *nregloc = 0; \ | 301 | 0 | *reglocs = NULL; \ | 302 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 0 | *items = extra_items; \ | 304 | 0 | return 1; | 305 | | | 306 | 0 | #ifdef FPREGSET_SIZE | 307 | 1.84k | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 1.84k | #endif | 309 | | | 310 | | #ifdef EXTRA_NOTES | 311 | | EXTRA_NOTES | 312 | | #endif | 313 | 1.84k | } | 314 | | | 315 | 674 | return 0; | 316 | 1.84k | } |
Line | Count | Source | 217 | 7.08k | { | 218 | 7.08k | switch (nhdr->n_namesz) | 219 | 7.08k | { | 220 | 3.18k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.18k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 986 | break; | 223 | 2.19k | return 0; | 224 | | | 225 | 1.35k | case sizeof "CORE": | 226 | 1.35k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 379 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 978 | FALLTHROUGH; | 230 | | | 231 | 1.30k | case sizeof "LINUX": | 232 | 1.30k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 417 | break; | 234 | 883 | return 0; | 235 | | | 236 | 522 | case sizeof "VMCOREINFO": | 237 | 522 | if (nhdr->n_type != 0 | 238 | 375 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 455 | return 0; | 240 | 67 | *regs_offset = 0; | 241 | 67 | *nregloc = 0; | 242 | 67 | *reglocs = NULL; | 243 | 67 | *nitems = 1; | 244 | 67 | *items = vmcoreinfo_items; | 245 | 67 | return 1; | 246 | | | 247 | 1.70k | default: | 248 | 1.70k | return 0; | 249 | 7.08k | } | 250 | | | 251 | 1.78k | switch (nhdr->n_type) | 252 | 1.78k | { | 253 | 264 | case NT_PRSTATUS: | 254 | 264 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 261 | return 0; | 256 | 3 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 3 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 3 | *reglocs = prstatus_regs; | 259 | 3 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 3 | *items = prstatus_items; | 261 | 3 | return 1; | 262 | | | 263 | 102 | case NT_PRPSINFO: | 264 | 102 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 101 | return 0; | 266 | 1 | *regs_offset = 0; | 267 | 1 | *nregloc = 0; | 268 | 1 | *reglocs = NULL; | 269 | 1 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 1 | *items = prpsinfo_items; | 271 | 1 | return 1; | 272 | | | 273 | 0 | #define EXTRA_REGSET(type, size, table) \ | 274 | 0 | case type: \ | 275 | 0 | if (nhdr->n_descsz != size) \ | 276 | 0 | return 0; \ | 277 | 0 | *regs_offset = 0; \ | 278 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 0 | *reglocs = table; \ | 280 | 0 | *nitems = 0; \ | 281 | 0 | *items = NULL; \ | 282 | 0 | return 1; | 283 | | | 284 | 0 | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 0 | case type: \ | 286 | 0 | if (nhdr->n_descsz != size) \ | 287 | 0 | return 0; \ | 288 | 0 | *regs_offset = 0; \ | 289 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 0 | *reglocs = table; \ | 291 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 0 | *items = extra_items; \ | 293 | 0 | return 1; | 294 | | | 295 | 0 | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 0 | case type: \ | 297 | 0 | if (nhdr->n_descsz != size) \ | 298 | 0 | return 0; \ | 299 | 0 | *regs_offset = 0; \ | 300 | 0 | *nregloc = 0; \ | 301 | 0 | *reglocs = NULL; \ | 302 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 0 | *items = extra_items; \ | 304 | 0 | return 1; | 305 | | | 306 | 0 | #ifdef FPREGSET_SIZE | 307 | 438 | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 0 | #endif | 309 | | | 310 | 0 | #ifdef EXTRA_NOTES | 311 | 1.78k | EXTRA_NOTES | 312 | 1.78k | #endif | 313 | 1.78k | } | 314 | | | 315 | 685 | return 0; | 316 | 1.78k | } |
Line | Count | Source | 217 | 8.55k | { | 218 | 8.55k | switch (nhdr->n_namesz) | 219 | 8.55k | { | 220 | 3.80k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.80k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 989 | break; | 223 | 2.82k | return 0; | 224 | | | 225 | 1.82k | case sizeof "CORE": | 226 | 1.82k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 669 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 1.15k | FALLTHROUGH; | 230 | | | 231 | 1.45k | case sizeof "LINUX": | 232 | 1.45k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 605 | break; | 234 | 845 | return 0; | 235 | | | 236 | 623 | case sizeof "VMCOREINFO": | 237 | 623 | if (nhdr->n_type != 0 | 238 | 459 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 556 | return 0; | 240 | 67 | *regs_offset = 0; | 241 | 67 | *nregloc = 0; | 242 | 67 | *reglocs = NULL; | 243 | 67 | *nitems = 1; | 244 | 67 | *items = vmcoreinfo_items; | 245 | 67 | return 1; | 246 | | | 247 | 2.00k | default: | 248 | 2.00k | return 0; | 249 | 8.55k | } | 250 | | | 251 | 2.26k | switch (nhdr->n_type) | 252 | 2.26k | { | 253 | 506 | case NT_PRSTATUS: | 254 | 506 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 488 | return 0; | 256 | 18 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 18 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 18 | *reglocs = prstatus_regs; | 259 | 18 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 18 | *items = prstatus_items; | 261 | 18 | return 1; | 262 | | | 263 | 139 | case NT_PRPSINFO: | 264 | 139 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 120 | return 0; | 266 | 19 | *regs_offset = 0; | 267 | 19 | *nregloc = 0; | 268 | 19 | *reglocs = NULL; | 269 | 19 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 19 | *items = prpsinfo_items; | 271 | 19 | return 1; | 272 | | | 273 | 0 | #define EXTRA_REGSET(type, size, table) \ | 274 | 0 | case type: \ | 275 | 0 | if (nhdr->n_descsz != size) \ | 276 | 0 | return 0; \ | 277 | 0 | *regs_offset = 0; \ | 278 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 0 | *reglocs = table; \ | 280 | 0 | *nitems = 0; \ | 281 | 0 | *items = NULL; \ | 282 | 0 | return 1; | 283 | | | 284 | 0 | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 0 | case type: \ | 286 | 0 | if (nhdr->n_descsz != size) \ | 287 | 0 | return 0; \ | 288 | 0 | *regs_offset = 0; \ | 289 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 0 | *reglocs = table; \ | 291 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 0 | *items = extra_items; \ | 293 | 0 | return 1; | 294 | | | 295 | 0 | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 0 | case type: \ | 297 | 0 | if (nhdr->n_descsz != size) \ | 298 | 0 | return 0; \ | 299 | 0 | *regs_offset = 0; \ | 300 | 0 | *nregloc = 0; \ | 301 | 0 | *reglocs = NULL; \ | 302 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 0 | *items = extra_items; \ | 304 | 0 | return 1; | 305 | | | 306 | 0 | #ifdef FPREGSET_SIZE | 307 | 579 | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 0 | #endif | 309 | | | 310 | 0 | #ifdef EXTRA_NOTES | 311 | 2.26k | EXTRA_NOTES | 312 | 2.26k | #endif | 313 | 2.26k | } | 314 | | | 315 | 741 | return 0; | 316 | 2.26k | } |
Line | Count | Source | 217 | 6.72k | { | 218 | 6.72k | switch (nhdr->n_namesz) | 219 | 6.72k | { | 220 | 3.07k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.07k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 796 | break; | 223 | 2.27k | return 0; | 224 | | | 225 | 1.31k | case sizeof "CORE": | 226 | 1.31k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 378 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 936 | FALLTHROUGH; | 230 | | | 231 | 1.25k | case sizeof "LINUX": | 232 | 1.25k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 565 | break; | 234 | 691 | return 0; | 235 | | | 236 | 554 | case sizeof "VMCOREINFO": | 237 | 554 | if (nhdr->n_type != 0 | 238 | 433 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 486 | return 0; | 240 | 68 | *regs_offset = 0; | 241 | 68 | *nregloc = 0; | 242 | 68 | *reglocs = NULL; | 243 | 68 | *nitems = 1; | 244 | 68 | *items = vmcoreinfo_items; | 245 | 68 | return 1; | 246 | | | 247 | 1.47k | default: | 248 | 1.47k | return 0; | 249 | 6.72k | } | 250 | | | 251 | 1.73k | switch (nhdr->n_type) | 252 | 1.73k | { | 253 | 287 | case NT_PRSTATUS: | 254 | 287 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 269 | return 0; | 256 | 18 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 18 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 18 | *reglocs = prstatus_regs; | 259 | 18 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 18 | *items = prstatus_items; | 261 | 18 | return 1; | 262 | | | 263 | 180 | case NT_PRPSINFO: | 264 | 180 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 179 | return 0; | 266 | 1 | *regs_offset = 0; | 267 | 1 | *nregloc = 0; | 268 | 1 | *reglocs = NULL; | 269 | 1 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 1 | *items = prpsinfo_items; | 271 | 1 | return 1; | 272 | | | 273 | 0 | #define EXTRA_REGSET(type, size, table) \ | 274 | 0 | case type: \ | 275 | 0 | if (nhdr->n_descsz != size) \ | 276 | 0 | return 0; \ | 277 | 0 | *regs_offset = 0; \ | 278 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 0 | *reglocs = table; \ | 280 | 0 | *nitems = 0; \ | 281 | 0 | *items = NULL; \ | 282 | 0 | return 1; | 283 | | | 284 | 0 | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 0 | case type: \ | 286 | 0 | if (nhdr->n_descsz != size) \ | 287 | 0 | return 0; \ | 288 | 0 | *regs_offset = 0; \ | 289 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 0 | *reglocs = table; \ | 291 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 0 | *items = extra_items; \ | 293 | 0 | return 1; | 294 | | | 295 | 0 | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 0 | case type: \ | 297 | 0 | if (nhdr->n_descsz != size) \ | 298 | 0 | return 0; \ | 299 | 0 | *regs_offset = 0; \ | 300 | 0 | *nregloc = 0; \ | 301 | 0 | *reglocs = NULL; \ | 302 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 0 | *items = extra_items; \ | 304 | 0 | return 1; | 305 | | | 306 | | #ifdef FPREGSET_SIZE | 307 | | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | | #endif | 309 | | | 310 | 0 | #ifdef EXTRA_NOTES | 311 | 1.73k | EXTRA_NOTES | 312 | 1.73k | #endif | 313 | 1.73k | } | 314 | | | 315 | 656 | return 0; | 316 | 1.73k | } |
Line | Count | Source | 217 | 8.16k | { | 218 | 8.16k | switch (nhdr->n_namesz) | 219 | 8.16k | { | 220 | 3.12k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.12k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 778 | break; | 223 | 2.35k | return 0; | 224 | | | 225 | 1.79k | case sizeof "CORE": | 226 | 1.79k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 626 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 1.16k | FALLTHROUGH; | 230 | | | 231 | 1.59k | case sizeof "LINUX": | 232 | 1.59k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 562 | break; | 234 | 1.03k | return 0; | 235 | | | 236 | 651 | case sizeof "VMCOREINFO": | 237 | 651 | if (nhdr->n_type != 0 | 238 | 558 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 585 | return 0; | 240 | 66 | *regs_offset = 0; | 241 | 66 | *nregloc = 0; | 242 | 66 | *reglocs = NULL; | 243 | 66 | *nitems = 1; | 244 | 66 | *items = vmcoreinfo_items; | 245 | 66 | return 1; | 246 | | | 247 | 2.16k | default: | 248 | 2.16k | return 0; | 249 | 8.16k | } | 250 | | | 251 | 1.96k | switch (nhdr->n_type) | 252 | 1.96k | { | 253 | 479 | case NT_PRSTATUS: | 254 | 479 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 469 | return 0; | 256 | 10 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 10 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 10 | *reglocs = prstatus_regs; | 259 | 10 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 10 | *items = prstatus_items; | 261 | 10 | return 1; | 262 | | | 263 | 99 | case NT_PRPSINFO: | 264 | 99 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 98 | return 0; | 266 | 1 | *regs_offset = 0; | 267 | 1 | *nregloc = 0; | 268 | 1 | *reglocs = NULL; | 269 | 1 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 1 | *items = prpsinfo_items; | 271 | 1 | return 1; | 272 | | | 273 | 0 | #define EXTRA_REGSET(type, size, table) \ | 274 | 0 | case type: \ | 275 | 0 | if (nhdr->n_descsz != size) \ | 276 | 0 | return 0; \ | 277 | 0 | *regs_offset = 0; \ | 278 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 0 | *reglocs = table; \ | 280 | 0 | *nitems = 0; \ | 281 | 0 | *items = NULL; \ | 282 | 0 | return 1; | 283 | | | 284 | 0 | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 0 | case type: \ | 286 | 0 | if (nhdr->n_descsz != size) \ | 287 | 0 | return 0; \ | 288 | 0 | *regs_offset = 0; \ | 289 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 0 | *reglocs = table; \ | 291 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 0 | *items = extra_items; \ | 293 | 0 | return 1; | 294 | | | 295 | 0 | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 0 | case type: \ | 297 | 0 | if (nhdr->n_descsz != size) \ | 298 | 0 | return 0; \ | 299 | 0 | *regs_offset = 0; \ | 300 | 0 | *nregloc = 0; \ | 301 | 0 | *reglocs = NULL; \ | 302 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 0 | *items = extra_items; \ | 304 | 0 | return 1; | 305 | | | 306 | | #ifdef FPREGSET_SIZE | 307 | | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | | #endif | 309 | | | 310 | 0 | #ifdef EXTRA_NOTES | 311 | 1.96k | EXTRA_NOTES | 312 | 1.96k | #endif | 313 | 1.96k | } | 314 | | | 315 | 608 | return 0; | 316 | 1.96k | } |
Line | Count | Source | 217 | 5.99k | { | 218 | 5.99k | switch (nhdr->n_namesz) | 219 | 5.99k | { | 220 | 2.31k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 2.31k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 690 | break; | 223 | 1.62k | return 0; | 224 | | | 225 | 1.36k | case sizeof "CORE": | 226 | 1.36k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 288 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 1.07k | FALLTHROUGH; | 230 | | | 231 | 1.43k | case sizeof "LINUX": | 232 | 1.43k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 493 | break; | 234 | 937 | return 0; | 235 | | | 236 | 479 | case sizeof "VMCOREINFO": | 237 | 479 | if (nhdr->n_type != 0 | 238 | 343 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 413 | return 0; | 240 | 66 | *regs_offset = 0; | 241 | 66 | *nregloc = 0; | 242 | 66 | *reglocs = NULL; | 243 | 66 | *nitems = 1; | 244 | 66 | *items = vmcoreinfo_items; | 245 | 66 | return 1; | 246 | | | 247 | 1.48k | default: | 248 | 1.48k | return 0; | 249 | 5.99k | } | 250 | | | 251 | 1.47k | switch (nhdr->n_type) | 252 | 1.47k | { | 253 | 245 | case NT_PRSTATUS: | 254 | 245 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 235 | return 0; | 256 | 10 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 10 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 10 | *reglocs = prstatus_regs; | 259 | 10 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 10 | *items = prstatus_items; | 261 | 10 | return 1; | 262 | | | 263 | 109 | case NT_PRPSINFO: | 264 | 109 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 108 | return 0; | 266 | 1 | *regs_offset = 0; | 267 | 1 | *nregloc = 0; | 268 | 1 | *reglocs = NULL; | 269 | 1 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 1 | *items = prpsinfo_items; | 271 | 1 | return 1; | 272 | | | 273 | 0 | #define EXTRA_REGSET(type, size, table) \ | 274 | 0 | case type: \ | 275 | 0 | if (nhdr->n_descsz != size) \ | 276 | 0 | return 0; \ | 277 | 0 | *regs_offset = 0; \ | 278 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 0 | *reglocs = table; \ | 280 | 0 | *nitems = 0; \ | 281 | 0 | *items = NULL; \ | 282 | 0 | return 1; | 283 | | | 284 | 0 | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 0 | case type: \ | 286 | 0 | if (nhdr->n_descsz != size) \ | 287 | 0 | return 0; \ | 288 | 0 | *regs_offset = 0; \ | 289 | 0 | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 0 | *reglocs = table; \ | 291 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 0 | *items = extra_items; \ | 293 | 0 | return 1; | 294 | | | 295 | 0 | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 0 | case type: \ | 297 | 0 | if (nhdr->n_descsz != size) \ | 298 | 0 | return 0; \ | 299 | 0 | *regs_offset = 0; \ | 300 | 0 | *nregloc = 0; \ | 301 | 0 | *reglocs = NULL; \ | 302 | 0 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 0 | *items = extra_items; \ | 304 | 0 | return 1; | 305 | | | 306 | 0 | #ifdef FPREGSET_SIZE | 307 | 1.47k | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 1.47k | #endif | 309 | | | 310 | | #ifdef EXTRA_NOTES | 311 | | EXTRA_NOTES | 312 | | #endif | 313 | 1.47k | } | 314 | | | 315 | 602 | return 0; | 316 | 1.47k | } |
Line | Count | Source | 217 | 5.88k | { | 218 | 5.88k | switch (nhdr->n_namesz) | 219 | 5.88k | { | 220 | 2.51k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 2.51k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 610 | break; | 223 | 1.90k | return 0; | 224 | | | 225 | 1.09k | case sizeof "CORE": | 226 | 1.09k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 239 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 860 | FALLTHROUGH; | 230 | | | 231 | 1.14k | case sizeof "LINUX": | 232 | 1.14k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 476 | break; | 234 | 667 | return 0; | 235 | | | 236 | 541 | case sizeof "VMCOREINFO": | 237 | 541 | if (nhdr->n_type != 0 | 238 | 391 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 474 | return 0; | 240 | 67 | *regs_offset = 0; | 241 | 67 | *nregloc = 0; | 242 | 67 | *reglocs = NULL; | 243 | 67 | *nitems = 1; | 244 | 67 | *items = vmcoreinfo_items; | 245 | 67 | return 1; | 246 | | | 247 | 1.44k | default: | 248 | 1.44k | return 0; | 249 | 5.88k | } | 250 | | | 251 | 1.32k | switch (nhdr->n_type) | 252 | 1.32k | { | 253 | 275 | case NT_PRSTATUS: | 254 | 275 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 265 | return 0; | 256 | 10 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 10 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 10 | *reglocs = prstatus_regs; | 259 | 10 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 10 | *items = prstatus_items; | 261 | 10 | return 1; | 262 | | | 263 | 157 | case NT_PRPSINFO: | 264 | 157 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 156 | return 0; | 266 | 1 | *regs_offset = 0; | 267 | 1 | *nregloc = 0; | 268 | 1 | *reglocs = NULL; | 269 | 1 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 1 | *items = prpsinfo_items; | 271 | 1 | return 1; | 272 | | | 273 | 1.32k | #define EXTRA_REGSET(type, size, table) \ | 274 | 1.32k | case type: \ | 275 | 1.32k | if (nhdr->n_descsz != size) \ | 276 | 1.32k | return 0; \ | 277 | 1.32k | *regs_offset = 0; \ | 278 | 1.32k | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 1.32k | *reglocs = table; \ | 280 | 1.32k | *nitems = 0; \ | 281 | 1.32k | *items = NULL; \ | 282 | 1.32k | return 1; | 283 | | | 284 | 1.32k | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 1.32k | case type: \ | 286 | 1.32k | if (nhdr->n_descsz != size) \ | 287 | 1.32k | return 0; \ | 288 | 1.32k | *regs_offset = 0; \ | 289 | 1.32k | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 1.32k | *reglocs = table; \ | 291 | 1.32k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 1.32k | *items = extra_items; \ | 293 | 1.32k | return 1; | 294 | | | 295 | 1.32k | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 1.32k | case type: \ | 297 | 1.32k | if (nhdr->n_descsz != size) \ | 298 | 1.32k | return 0; \ | 299 | 1.32k | *regs_offset = 0; \ | 300 | 1.32k | *nregloc = 0; \ | 301 | 1.32k | *reglocs = NULL; \ | 302 | 1.32k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 1.32k | *items = extra_items; \ | 304 | 1.32k | return 1; | 305 | | | 306 | | #ifdef FPREGSET_SIZE | 307 | | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | | #endif | 309 | | | 310 | | #ifdef EXTRA_NOTES | 311 | | EXTRA_NOTES | 312 | | #endif | 313 | 1.32k | } | 314 | | | 315 | 893 | return 0; | 316 | 1.32k | } |
Line | Count | Source | 217 | 4.56k | { | 218 | 4.56k | switch (nhdr->n_namesz) | 219 | 4.56k | { | 220 | 1.83k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 1.83k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 474 | break; | 223 | 1.35k | return 0; | 224 | | | 225 | 916 | case sizeof "CORE": | 226 | 916 | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 293 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 623 | FALLTHROUGH; | 230 | | | 231 | 948 | case sizeof "LINUX": | 232 | 948 | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 368 | break; | 234 | 580 | return 0; | 235 | | | 236 | 340 | case sizeof "VMCOREINFO": | 237 | 340 | if (nhdr->n_type != 0 | 238 | 209 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 274 | return 0; | 240 | 66 | *regs_offset = 0; | 241 | 66 | *nregloc = 0; | 242 | 66 | *reglocs = NULL; | 243 | 66 | *nitems = 1; | 244 | 66 | *items = vmcoreinfo_items; | 245 | 66 | return 1; | 246 | | | 247 | 1.15k | default: | 248 | 1.15k | return 0; | 249 | 4.56k | } | 250 | | | 251 | 1.13k | switch (nhdr->n_type) | 252 | 1.13k | { | 253 | 271 | case NT_PRSTATUS: | 254 | 271 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 261 | return 0; | 256 | 10 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 10 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 10 | *reglocs = prstatus_regs; | 259 | 10 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 10 | *items = prstatus_items; | 261 | 10 | return 1; | 262 | | | 263 | 107 | case NT_PRPSINFO: | 264 | 107 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 104 | return 0; | 266 | 3 | *regs_offset = 0; | 267 | 3 | *nregloc = 0; | 268 | 3 | *reglocs = NULL; | 269 | 3 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 3 | *items = prpsinfo_items; | 271 | 3 | return 1; | 272 | | | 273 | 1.13k | #define EXTRA_REGSET(type, size, table) \ | 274 | 1.13k | case type: \ | 275 | 1.13k | if (nhdr->n_descsz != size) \ | 276 | 1.13k | return 0; \ | 277 | 1.13k | *regs_offset = 0; \ | 278 | 1.13k | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 1.13k | *reglocs = table; \ | 280 | 1.13k | *nitems = 0; \ | 281 | 1.13k | *items = NULL; \ | 282 | 1.13k | return 1; | 283 | | | 284 | 1.13k | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 1.13k | case type: \ | 286 | 1.13k | if (nhdr->n_descsz != size) \ | 287 | 1.13k | return 0; \ | 288 | 1.13k | *regs_offset = 0; \ | 289 | 1.13k | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 1.13k | *reglocs = table; \ | 291 | 1.13k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 1.13k | *items = extra_items; \ | 293 | 1.13k | return 1; | 294 | | | 295 | 1.13k | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 1.13k | case type: \ | 297 | 1.13k | if (nhdr->n_descsz != size) \ | 298 | 1.13k | return 0; \ | 299 | 1.13k | *regs_offset = 0; \ | 300 | 1.13k | *nregloc = 0; \ | 301 | 1.13k | *reglocs = NULL; \ | 302 | 1.13k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 1.13k | *items = extra_items; \ | 304 | 1.13k | return 1; | 305 | | | 306 | | #ifdef FPREGSET_SIZE | 307 | | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | | #endif | 309 | | | 310 | | #ifdef EXTRA_NOTES | 311 | | EXTRA_NOTES | 312 | | #endif | 313 | 1.13k | } | 314 | | | 315 | 757 | return 0; | 316 | 1.13k | } |
Line | Count | Source | 217 | 5.85k | { | 218 | 5.85k | switch (nhdr->n_namesz) | 219 | 5.85k | { | 220 | 2.47k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 2.47k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 722 | break; | 223 | 1.75k | return 0; | 224 | | | 225 | 1.21k | case sizeof "CORE": | 226 | 1.21k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 264 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 947 | FALLTHROUGH; | 230 | | | 231 | 1.17k | case sizeof "LINUX": | 232 | 1.17k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 419 | break; | 234 | 760 | return 0; | 235 | | | 236 | 509 | case sizeof "VMCOREINFO": | 237 | 509 | if (nhdr->n_type != 0 | 238 | 373 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 443 | return 0; | 240 | 66 | *regs_offset = 0; | 241 | 66 | *nregloc = 0; | 242 | 66 | *reglocs = NULL; | 243 | 66 | *nitems = 1; | 244 | 66 | *items = vmcoreinfo_items; | 245 | 66 | return 1; | 246 | | | 247 | 1.42k | default: | 248 | 1.42k | return 0; | 249 | 5.85k | } | 250 | | | 251 | 1.40k | switch (nhdr->n_type) | 252 | 1.40k | { | 253 | 230 | case NT_PRSTATUS: | 254 | 230 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 220 | return 0; | 256 | 10 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 10 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 10 | *reglocs = prstatus_regs; | 259 | 10 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 10 | *items = prstatus_items; | 261 | 10 | return 1; | 262 | | | 263 | 100 | case NT_PRPSINFO: | 264 | 100 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 99 | return 0; | 266 | 1 | *regs_offset = 0; | 267 | 1 | *nregloc = 0; | 268 | 1 | *reglocs = NULL; | 269 | 1 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 1 | *items = prpsinfo_items; | 271 | 1 | return 1; | 272 | | | 273 | 1.40k | #define EXTRA_REGSET(type, size, table) \ | 274 | 1.40k | case type: \ | 275 | 1.40k | if (nhdr->n_descsz != size) \ | 276 | 1.40k | return 0; \ | 277 | 1.40k | *regs_offset = 0; \ | 278 | 1.40k | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 1.40k | *reglocs = table; \ | 280 | 1.40k | *nitems = 0; \ | 281 | 1.40k | *items = NULL; \ | 282 | 1.40k | return 1; | 283 | | | 284 | 1.40k | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 1.40k | case type: \ | 286 | 1.40k | if (nhdr->n_descsz != size) \ | 287 | 1.40k | return 0; \ | 288 | 1.40k | *regs_offset = 0; \ | 289 | 1.40k | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 1.40k | *reglocs = table; \ | 291 | 1.40k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 1.40k | *items = extra_items; \ | 293 | 1.40k | return 1; | 294 | | | 295 | 1.40k | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 1.40k | case type: \ | 297 | 1.40k | if (nhdr->n_descsz != size) \ | 298 | 1.40k | return 0; \ | 299 | 1.40k | *regs_offset = 0; \ | 300 | 1.40k | *nregloc = 0; \ | 301 | 1.40k | *reglocs = NULL; \ | 302 | 1.40k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 1.40k | *items = extra_items; \ | 304 | 1.40k | return 1; | 305 | | | 306 | | #ifdef FPREGSET_SIZE | 307 | | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | | #endif | 309 | | | 310 | | #ifdef EXTRA_NOTES | 311 | | EXTRA_NOTES | 312 | | #endif | 313 | 1.40k | } | 314 | | | 315 | 1.07k | return 0; | 316 | 1.40k | } |
Line | Count | Source | 217 | 5.35k | { | 218 | 5.35k | switch (nhdr->n_namesz) | 219 | 5.35k | { | 220 | 2.19k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 2.19k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 587 | break; | 223 | 1.60k | return 0; | 224 | | | 225 | 1.06k | case sizeof "CORE": | 226 | 1.06k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 298 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 767 | FALLTHROUGH; | 230 | | | 231 | 1.00k | case sizeof "LINUX": | 232 | 1.00k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 308 | break; | 234 | 701 | return 0; | 235 | | | 236 | 568 | case sizeof "VMCOREINFO": | 237 | 568 | if (nhdr->n_type != 0 | 238 | 436 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 502 | return 0; | 240 | 66 | *regs_offset = 0; | 241 | 66 | *nregloc = 0; | 242 | 66 | *reglocs = NULL; | 243 | 66 | *nitems = 1; | 244 | 66 | *items = vmcoreinfo_items; | 245 | 66 | return 1; | 246 | | | 247 | 1.29k | default: | 248 | 1.29k | return 0; | 249 | 5.35k | } | 250 | | | 251 | 1.19k | switch (nhdr->n_type) | 252 | 1.19k | { | 253 | 245 | case NT_PRSTATUS: | 254 | 245 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 235 | return 0; | 256 | 10 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 10 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 10 | *reglocs = prstatus_regs; | 259 | 10 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 10 | *items = prstatus_items; | 261 | 10 | return 1; | 262 | | | 263 | 124 | case NT_PRPSINFO: | 264 | 124 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 123 | return 0; | 266 | 1 | *regs_offset = 0; | 267 | 1 | *nregloc = 0; | 268 | 1 | *reglocs = NULL; | 269 | 1 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 1 | *items = prpsinfo_items; | 271 | 1 | return 1; | 272 | | | 273 | 1.19k | #define EXTRA_REGSET(type, size, table) \ | 274 | 1.19k | case type: \ | 275 | 1.19k | if (nhdr->n_descsz != size) \ | 276 | 1.19k | return 0; \ | 277 | 1.19k | *regs_offset = 0; \ | 278 | 1.19k | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 1.19k | *reglocs = table; \ | 280 | 1.19k | *nitems = 0; \ | 281 | 1.19k | *items = NULL; \ | 282 | 1.19k | return 1; | 283 | | | 284 | 1.19k | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 1.19k | case type: \ | 286 | 1.19k | if (nhdr->n_descsz != size) \ | 287 | 1.19k | return 0; \ | 288 | 1.19k | *regs_offset = 0; \ | 289 | 1.19k | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 1.19k | *reglocs = table; \ | 291 | 1.19k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 1.19k | *items = extra_items; \ | 293 | 1.19k | return 1; | 294 | | | 295 | 1.19k | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 1.19k | case type: \ | 297 | 1.19k | if (nhdr->n_descsz != size) \ | 298 | 1.19k | return 0; \ | 299 | 1.19k | *regs_offset = 0; \ | 300 | 1.19k | *nregloc = 0; \ | 301 | 1.19k | *reglocs = NULL; \ | 302 | 1.19k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 1.19k | *items = extra_items; \ | 304 | 1.19k | return 1; | 305 | | | 306 | | #ifdef FPREGSET_SIZE | 307 | | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | | #endif | 309 | | | 310 | | #ifdef EXTRA_NOTES | 311 | | EXTRA_NOTES | 312 | | #endif | 313 | 1.19k | } | 314 | | | 315 | 824 | return 0; | 316 | 1.19k | } |
Line | Count | Source | 217 | 5.63k | { | 218 | 5.63k | switch (nhdr->n_namesz) | 219 | 5.63k | { | 220 | 2.40k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 2.40k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 656 | break; | 223 | 1.74k | return 0; | 224 | | | 225 | 1.13k | case sizeof "CORE": | 226 | 1.13k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 308 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 823 | FALLTHROUGH; | 230 | | | 231 | 1.07k | case sizeof "LINUX": | 232 | 1.07k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 365 | break; | 234 | 707 | return 0; | 235 | | | 236 | 546 | case sizeof "VMCOREINFO": | 237 | 546 | if (nhdr->n_type != 0 | 238 | 415 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 479 | return 0; | 240 | 67 | *regs_offset = 0; | 241 | 67 | *nregloc = 0; | 242 | 67 | *reglocs = NULL; | 243 | 67 | *nitems = 1; | 244 | 67 | *items = vmcoreinfo_items; | 245 | 67 | return 1; | 246 | | | 247 | 1.30k | default: | 248 | 1.30k | return 0; | 249 | 5.63k | } | 250 | | | 251 | 1.32k | switch (nhdr->n_type) | 252 | 1.32k | { | 253 | 284 | case NT_PRSTATUS: | 254 | 284 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 273 | return 0; | 256 | 11 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 11 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 11 | *reglocs = prstatus_regs; | 259 | 11 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 11 | *items = prstatus_items; | 261 | 11 | return 1; | 262 | | | 263 | 103 | case NT_PRPSINFO: | 264 | 103 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 102 | return 0; | 266 | 1 | *regs_offset = 0; | 267 | 1 | *nregloc = 0; | 268 | 1 | *reglocs = NULL; | 269 | 1 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 1 | *items = prpsinfo_items; | 271 | 1 | return 1; | 272 | | | 273 | 1.32k | #define EXTRA_REGSET(type, size, table) \ | 274 | 1.32k | case type: \ | 275 | 1.32k | if (nhdr->n_descsz != size) \ | 276 | 1.32k | return 0; \ | 277 | 1.32k | *regs_offset = 0; \ | 278 | 1.32k | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 1.32k | *reglocs = table; \ | 280 | 1.32k | *nitems = 0; \ | 281 | 1.32k | *items = NULL; \ | 282 | 1.32k | return 1; | 283 | | | 284 | 1.32k | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 1.32k | case type: \ | 286 | 1.32k | if (nhdr->n_descsz != size) \ | 287 | 1.32k | return 0; \ | 288 | 1.32k | *regs_offset = 0; \ | 289 | 1.32k | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 1.32k | *reglocs = table; \ | 291 | 1.32k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 1.32k | *items = extra_items; \ | 293 | 1.32k | return 1; | 294 | | | 295 | 1.32k | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 1.32k | case type: \ | 297 | 1.32k | if (nhdr->n_descsz != size) \ | 298 | 1.32k | return 0; \ | 299 | 1.32k | *regs_offset = 0; \ | 300 | 1.32k | *nregloc = 0; \ | 301 | 1.32k | *reglocs = NULL; \ | 302 | 1.32k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 1.32k | *items = extra_items; \ | 304 | 1.32k | return 1; | 305 | | | 306 | | #ifdef FPREGSET_SIZE | 307 | | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | | #endif | 309 | | | 310 | | #ifdef EXTRA_NOTES | 311 | | EXTRA_NOTES | 312 | | #endif | 313 | 1.32k | } | 314 | | | 315 | 942 | return 0; | 316 | 1.32k | } |
|