/src/elfutils/backends/linux-core-note.c
Line | Count | Source (jump to first uncovered line) |
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 | 132k | { |
218 | 132k | switch (nhdr->n_namesz) |
219 | 132k | { |
220 | 58.1k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ |
221 | 58.1k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) |
222 | 11.4k | break; |
223 | 46.7k | return 0; |
224 | | |
225 | 24.2k | case sizeof "CORE": |
226 | 24.2k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) |
227 | 10.4k | break; |
228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ |
229 | 13.8k | FALLTHROUGH; |
230 | | |
231 | 16.9k | case sizeof "LINUX": |
232 | 16.9k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) |
233 | 8.04k | break; |
234 | 8.87k | return 0; |
235 | | |
236 | 4.89k | case sizeof "VMCOREINFO": |
237 | 4.89k | if (nhdr->n_type != 0 |
238 | 4.89k | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) |
239 | 3.70k | return 0; |
240 | 1.18k | *regs_offset = 0; |
241 | 1.18k | *nregloc = 0; |
242 | 1.18k | *reglocs = NULL; |
243 | 1.18k | *nitems = 1; |
244 | 1.18k | *items = vmcoreinfo_items; |
245 | 1.18k | return 1; |
246 | | |
247 | 41.9k | default: |
248 | 41.9k | return 0; |
249 | 132k | } |
250 | | |
251 | 29.8k | switch (nhdr->n_type) |
252 | 29.8k | { |
253 | 8.09k | case NT_PRSTATUS: |
254 | 8.09k | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) |
255 | 7.91k | return 0; |
256 | 180 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); |
257 | 180 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; |
258 | 180 | *reglocs = prstatus_regs; |
259 | 180 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; |
260 | 180 | *items = prstatus_items; |
261 | 180 | return 1; |
262 | | |
263 | 3.73k | case NT_PRPSINFO: |
264 | 3.73k | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) |
265 | 3.65k | return 0; |
266 | 81 | *regs_offset = 0; |
267 | 81 | *nregloc = 0; |
268 | 81 | *reglocs = NULL; |
269 | 81 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; |
270 | 81 | *items = prpsinfo_items; |
271 | 81 | return 1; |
272 | | |
273 | 0 | #define EXTRA_REGSET(type, size, table) \ |
274 | 274 | case type: \ |
275 | 1.86k | if (nhdr->n_descsz != size) \ |
276 | 1.59k | return 0; \ |
277 | 274 | *regs_offset = 0; \ |
278 | 274 | *nregloc = sizeof table / sizeof table[0]; \ |
279 | 274 | *reglocs = table; \ |
280 | 274 | *nitems = 0; \ |
281 | 274 | *items = NULL; \ |
282 | 274 | return 1; |
283 | | |
284 | 0 | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ |
285 | 36 | case type: \ |
286 | 429 | if (nhdr->n_descsz != size) \ |
287 | 393 | return 0; \ |
288 | 36 | *regs_offset = 0; \ |
289 | 36 | *nregloc = sizeof table / sizeof table[0]; \ |
290 | 36 | *reglocs = table; \ |
291 | 36 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ |
292 | 36 | *items = extra_items; \ |
293 | 36 | return 1; |
294 | | |
295 | 0 | #define EXTRA_ITEMS(type, size, extra_items) \ |
296 | 231 | case type: \ |
297 | 537 | if (nhdr->n_descsz != size) \ |
298 | 306 | return 0; \ |
299 | 231 | *regs_offset = 0; \ |
300 | 231 | *nregloc = 0; \ |
301 | 231 | *reglocs = NULL; \ |
302 | 231 | *nitems = sizeof extra_items / sizeof extra_items[0]; \ |
303 | 231 | *items = extra_items; \ |
304 | 231 | return 1; |
305 | | |
306 | | #ifdef FPREGSET_SIZE |
307 | 1.15k | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) |
308 | 0 | #endif |
309 | | |
310 | | #ifdef EXTRA_NOTES |
311 | 215 | EXTRA_NOTES |
312 | | #endif |
313 | 29.8k | } |
314 | | |
315 | 14.9k | return 0; |
316 | 29.8k | } Line | Count | Source | 217 | 9.18k | { | 218 | 9.18k | switch (nhdr->n_namesz) | 219 | 9.18k | { | 220 | 3.50k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.50k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 940 | break; | 223 | 2.56k | return 0; | 224 | | | 225 | 1.57k | case sizeof "CORE": | 226 | 1.57k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 680 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 895 | FALLTHROUGH; | 230 | | | 231 | 1.19k | case sizeof "LINUX": | 232 | 1.19k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 385 | break; | 234 | 805 | return 0; | 235 | | | 236 | 298 | case sizeof "VMCOREINFO": | 237 | 298 | if (nhdr->n_type != 0 | 238 | 298 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 227 | return 0; | 240 | 71 | *regs_offset = 0; | 241 | 71 | *nregloc = 0; | 242 | 71 | *reglocs = NULL; | 243 | 71 | *nitems = 1; | 244 | 71 | *items = vmcoreinfo_items; | 245 | 71 | return 1; | 246 | | | 247 | 3.51k | default: | 248 | 3.51k | return 0; | 249 | 9.18k | } | 250 | | | 251 | 2.00k | switch (nhdr->n_type) | 252 | 2.00k | { | 253 | 529 | case NT_PRSTATUS: | 254 | 529 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 518 | 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 | 161 | case NT_PRPSINFO: | 264 | 161 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 154 | return 0; | 266 | 7 | *regs_offset = 0; | 267 | 7 | *nregloc = 0; | 268 | 7 | *reglocs = NULL; | 269 | 7 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 7 | *items = prpsinfo_items; | 271 | 7 | 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 | 110 | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 0 | #endif | 309 | | | 310 | 0 | #ifdef EXTRA_NOTES | 311 | 2.00k | EXTRA_NOTES | 312 | 2.00k | #endif | 313 | 2.00k | } | 314 | | | 315 | 1.02k | return 0; | 316 | 2.00k | } |
Unexecuted instantiation: sh_core_note Line | Count | Source | 217 | 8.47k | { | 218 | 8.47k | switch (nhdr->n_namesz) | 219 | 8.47k | { | 220 | 3.52k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.52k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 582 | break; | 223 | 2.94k | return 0; | 224 | | | 225 | 1.66k | case sizeof "CORE": | 226 | 1.66k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 780 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 881 | FALLTHROUGH; | 230 | | | 231 | 1.03k | case sizeof "LINUX": | 232 | 1.03k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 491 | break; | 234 | 541 | return 0; | 235 | | | 236 | 259 | case sizeof "VMCOREINFO": | 237 | 259 | if (nhdr->n_type != 0 | 238 | 259 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 191 | 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 | 2.87k | default: | 248 | 2.87k | return 0; | 249 | 8.47k | } | 250 | | | 251 | 1.85k | switch (nhdr->n_type) | 252 | 1.85k | { | 253 | 583 | case NT_PRSTATUS: | 254 | 583 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 562 | return 0; | 256 | 21 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 21 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 21 | *reglocs = prstatus_regs; | 259 | 21 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 21 | *items = prstatus_items; | 261 | 21 | return 1; | 262 | | | 263 | 201 | case NT_PRPSINFO: | 264 | 201 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 191 | return 0; | 266 | 10 | *regs_offset = 0; | 267 | 10 | *nregloc = 0; | 268 | 10 | *reglocs = NULL; | 269 | 10 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 10 | *items = prpsinfo_items; | 271 | 10 | 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 | 194 | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 0 | #endif | 309 | | | 310 | 0 | #ifdef EXTRA_NOTES | 311 | 1.85k | EXTRA_NOTES | 312 | 1.85k | #endif | 313 | 1.85k | } | 314 | | | 315 | 812 | return 0; | 316 | 1.85k | } |
Line | Count | Source | 217 | 9.48k | { | 218 | 9.48k | switch (nhdr->n_namesz) | 219 | 9.48k | { | 220 | 4.23k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 4.23k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 767 | break; | 223 | 3.46k | return 0; | 224 | | | 225 | 1.48k | case sizeof "CORE": | 226 | 1.48k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 464 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 1.02k | FALLTHROUGH; | 230 | | | 231 | 1.26k | case sizeof "LINUX": | 232 | 1.26k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 672 | break; | 234 | 593 | return 0; | 235 | | | 236 | 298 | case sizeof "VMCOREINFO": | 237 | 298 | if (nhdr->n_type != 0 | 238 | 298 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 231 | 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 | 3.22k | default: | 248 | 3.22k | return 0; | 249 | 9.48k | } | 250 | | | 251 | 1.90k | switch (nhdr->n_type) | 252 | 1.90k | { | 253 | 458 | case NT_PRSTATUS: | 254 | 458 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 447 | 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 | 309 | case NT_PRPSINFO: | 264 | 309 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 306 | 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 | 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 | 117 | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 0 | #endif | 309 | | | 310 | 0 | #ifdef EXTRA_NOTES | 311 | 1.90k | EXTRA_NOTES | 312 | 1.90k | #endif | 313 | 1.90k | } | 314 | | | 315 | 912 | return 0; | 316 | 1.90k | } |
Unexecuted instantiation: alpha_core_note Line | Count | Source | 217 | 6.56k | { | 218 | 6.56k | switch (nhdr->n_namesz) | 219 | 6.56k | { | 220 | 2.93k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 2.93k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 636 | break; | 223 | 2.29k | return 0; | 224 | | | 225 | 1.23k | case sizeof "CORE": | 226 | 1.23k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 542 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 691 | FALLTHROUGH; | 230 | | | 231 | 919 | case sizeof "LINUX": | 232 | 919 | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 408 | break; | 234 | 511 | return 0; | 235 | | | 236 | 241 | case sizeof "VMCOREINFO": | 237 | 241 | if (nhdr->n_type != 0 | 238 | 241 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 175 | 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.93k | default: | 248 | 1.93k | return 0; | 249 | 6.56k | } | 250 | | | 251 | 1.58k | switch (nhdr->n_type) | 252 | 1.58k | { | 253 | 484 | case NT_PRSTATUS: | 254 | 484 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 474 | 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 | 180 | case NT_PRPSINFO: | 264 | 180 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 177 | 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 | 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 | 84 | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 0 | #endif | 309 | | | 310 | 0 | #ifdef EXTRA_NOTES | 311 | 1.58k | EXTRA_NOTES | 312 | 1.58k | #endif | 313 | 1.58k | } | 314 | | | 315 | 805 | return 0; | 316 | 1.58k | } |
Line | Count | Source | 217 | 7.49k | { | 218 | 7.49k | switch (nhdr->n_namesz) | 219 | 7.49k | { | 220 | 3.16k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.16k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 854 | break; | 223 | 2.31k | return 0; | 224 | | | 225 | 1.50k | case sizeof "CORE": | 226 | 1.50k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 630 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 873 | FALLTHROUGH; | 230 | | | 231 | 1.07k | case sizeof "LINUX": | 232 | 1.07k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 538 | break; | 234 | 538 | return 0; | 235 | | | 236 | 297 | case sizeof "VMCOREINFO": | 237 | 297 | if (nhdr->n_type != 0 | 238 | 297 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 223 | return 0; | 240 | 74 | *regs_offset = 0; | 241 | 74 | *nregloc = 0; | 242 | 74 | *reglocs = NULL; | 243 | 74 | *nitems = 1; | 244 | 74 | *items = vmcoreinfo_items; | 245 | 74 | return 1; | 246 | | | 247 | 2.31k | default: | 248 | 2.31k | return 0; | 249 | 7.49k | } | 250 | | | 251 | 2.02k | switch (nhdr->n_type) | 252 | 2.02k | { | 253 | 593 | case NT_PRSTATUS: | 254 | 593 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 583 | 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 | 169 | case NT_PRPSINFO: | 264 | 169 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 168 | 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 | 2.02k | EXTRA_NOTES | 312 | 2.02k | #endif | 313 | 2.02k | } | 314 | | | 315 | 884 | return 0; | 316 | 2.02k | } |
Line | Count | Source | 217 | 7.07k | { | 218 | 7.07k | switch (nhdr->n_namesz) | 219 | 7.07k | { | 220 | 3.18k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.18k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 502 | break; | 223 | 2.67k | return 0; | 224 | | | 225 | 1.27k | case sizeof "CORE": | 226 | 1.27k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 457 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 818 | FALLTHROUGH; | 230 | | | 231 | 1.01k | case sizeof "LINUX": | 232 | 1.01k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 544 | break; | 234 | 470 | return 0; | 235 | | | 236 | 284 | case sizeof "VMCOREINFO": | 237 | 284 | if (nhdr->n_type != 0 | 238 | 284 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 217 | 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.13k | default: | 248 | 2.13k | return 0; | 249 | 7.07k | } | 250 | | | 251 | 1.50k | switch (nhdr->n_type) | 252 | 1.50k | { | 253 | 347 | case NT_PRSTATUS: | 254 | 347 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 337 | 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 | 247 | case NT_PRPSINFO: | 264 | 247 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 245 | return 0; | 266 | 2 | *regs_offset = 0; | 267 | 2 | *nregloc = 0; | 268 | 2 | *reglocs = NULL; | 269 | 2 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 2 | *items = prpsinfo_items; | 271 | 2 | 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.50k | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 1.50k | #endif | 309 | | | 310 | | #ifdef EXTRA_NOTES | 311 | | EXTRA_NOTES | 312 | | #endif | 313 | 1.50k | } | 314 | | | 315 | 810 | return 0; | 316 | 1.50k | } |
Line | Count | Source | 217 | 6.58k | { | 218 | 6.58k | switch (nhdr->n_namesz) | 219 | 6.58k | { | 220 | 2.70k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 2.70k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 483 | break; | 223 | 2.22k | return 0; | 224 | | | 225 | 1.36k | case sizeof "CORE": | 226 | 1.36k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 614 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 754 | FALLTHROUGH; | 230 | | | 231 | 916 | case sizeof "LINUX": | 232 | 916 | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 418 | break; | 234 | 498 | return 0; | 235 | | | 236 | 278 | case sizeof "VMCOREINFO": | 237 | 278 | if (nhdr->n_type != 0 | 238 | 278 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 209 | return 0; | 240 | 69 | *regs_offset = 0; | 241 | 69 | *nregloc = 0; | 242 | 69 | *reglocs = NULL; | 243 | 69 | *nitems = 1; | 244 | 69 | *items = vmcoreinfo_items; | 245 | 69 | return 1; | 246 | | | 247 | 2.07k | default: | 248 | 2.07k | return 0; | 249 | 6.58k | } | 250 | | | 251 | 1.51k | switch (nhdr->n_type) | 252 | 1.51k | { | 253 | 440 | case NT_PRSTATUS: | 254 | 440 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 437 | 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 | 188 | case NT_PRPSINFO: | 264 | 188 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 187 | 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.51k | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 1.51k | #endif | 309 | | | 310 | | #ifdef EXTRA_NOTES | 311 | | EXTRA_NOTES | 312 | | #endif | 313 | 1.51k | } | 314 | | | 315 | 673 | return 0; | 316 | 1.51k | } |
Line | Count | Source | 217 | 8.57k | { | 218 | 8.57k | switch (nhdr->n_namesz) | 219 | 8.57k | { | 220 | 3.87k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.87k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 960 | break; | 223 | 2.91k | return 0; | 224 | | | 225 | 1.51k | case sizeof "CORE": | 226 | 1.51k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 787 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 724 | FALLTHROUGH; | 230 | | | 231 | 918 | case sizeof "LINUX": | 232 | 918 | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 368 | break; | 234 | 550 | return 0; | 235 | | | 236 | 291 | case sizeof "VMCOREINFO": | 237 | 291 | if (nhdr->n_type != 0 | 238 | 291 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 223 | 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 | 2.70k | default: | 248 | 2.70k | return 0; | 249 | 8.57k | } | 250 | | | 251 | 2.11k | switch (nhdr->n_type) | 252 | 2.11k | { | 253 | 514 | case NT_PRSTATUS: | 254 | 514 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 504 | 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 | 197 | case NT_PRPSINFO: | 264 | 197 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 195 | return 0; | 266 | 2 | *regs_offset = 0; | 267 | 2 | *nregloc = 0; | 268 | 2 | *reglocs = NULL; | 269 | 2 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 2 | *items = prpsinfo_items; | 271 | 2 | 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 | 114 | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 0 | #endif | 309 | | | 310 | 0 | #ifdef EXTRA_NOTES | 311 | 2.11k | EXTRA_NOTES | 312 | 2.11k | #endif | 313 | 2.11k | } | 314 | | | 315 | 974 | return 0; | 316 | 2.11k | } |
Line | Count | Source | 217 | 7.36k | { | 218 | 7.36k | switch (nhdr->n_namesz) | 219 | 7.36k | { | 220 | 3.21k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.21k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 897 | break; | 223 | 2.31k | return 0; | 224 | | | 225 | 1.21k | case sizeof "CORE": | 226 | 1.21k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 592 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 623 | FALLTHROUGH; | 230 | | | 231 | 903 | case sizeof "LINUX": | 232 | 903 | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 389 | break; | 234 | 514 | return 0; | 235 | | | 236 | 300 | case sizeof "VMCOREINFO": | 237 | 300 | if (nhdr->n_type != 0 | 238 | 300 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 234 | 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.36k | default: | 248 | 2.36k | return 0; | 249 | 7.36k | } | 250 | | | 251 | 1.87k | switch (nhdr->n_type) | 252 | 1.87k | { | 253 | 484 | case NT_PRSTATUS: | 254 | 484 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 474 | 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 | 172 | case NT_PRPSINFO: | 264 | 172 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 160 | return 0; | 266 | 12 | *regs_offset = 0; | 267 | 12 | *nregloc = 0; | 268 | 12 | *reglocs = NULL; | 269 | 12 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 12 | *items = prpsinfo_items; | 271 | 12 | 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 | 105 | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 0 | #endif | 309 | | | 310 | 0 | #ifdef EXTRA_NOTES | 311 | 1.87k | EXTRA_NOTES | 312 | 1.87k | #endif | 313 | 1.87k | } | 314 | | | 315 | 751 | return 0; | 316 | 1.87k | } |
Line | Count | Source | 217 | 7.99k | { | 218 | 7.99k | switch (nhdr->n_namesz) | 219 | 7.99k | { | 220 | 3.76k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.76k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 727 | break; | 223 | 3.04k | return 0; | 224 | | | 225 | 1.43k | case sizeof "CORE": | 226 | 1.43k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 608 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 830 | FALLTHROUGH; | 230 | | | 231 | 1.01k | case sizeof "LINUX": | 232 | 1.01k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 539 | break; | 234 | 476 | return 0; | 235 | | | 236 | 279 | case sizeof "VMCOREINFO": | 237 | 279 | if (nhdr->n_type != 0 | 238 | 279 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 212 | 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.31k | default: | 248 | 2.31k | return 0; | 249 | 7.99k | } | 250 | | | 251 | 1.87k | switch (nhdr->n_type) | 252 | 1.87k | { | 253 | 445 | case NT_PRSTATUS: | 254 | 445 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 427 | 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 | 241 | case NT_PRPSINFO: | 264 | 241 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 240 | 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.87k | EXTRA_NOTES | 312 | 1.87k | #endif | 313 | 1.87k | } | 314 | | | 315 | 904 | return 0; | 316 | 1.87k | } |
Line | Count | Source | 217 | 7.31k | { | 218 | 7.31k | switch (nhdr->n_namesz) | 219 | 7.31k | { | 220 | 2.86k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 2.86k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 540 | break; | 223 | 2.32k | return 0; | 224 | | | 225 | 1.54k | case sizeof "CORE": | 226 | 1.54k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 761 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 782 | FALLTHROUGH; | 230 | | | 231 | 916 | case sizeof "LINUX": | 232 | 916 | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 454 | break; | 234 | 462 | return 0; | 235 | | | 236 | 328 | case sizeof "VMCOREINFO": | 237 | 328 | if (nhdr->n_type != 0 | 238 | 328 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 251 | return 0; | 240 | 77 | *regs_offset = 0; | 241 | 77 | *nregloc = 0; | 242 | 77 | *reglocs = NULL; | 243 | 77 | *nitems = 1; | 244 | 77 | *items = vmcoreinfo_items; | 245 | 77 | return 1; | 246 | | | 247 | 2.44k | default: | 248 | 2.44k | return 0; | 249 | 7.31k | } | 250 | | | 251 | 1.75k | switch (nhdr->n_type) | 252 | 1.75k | { | 253 | 492 | case NT_PRSTATUS: | 254 | 492 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 482 | 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 | 191 | case NT_PRPSINFO: | 264 | 191 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 190 | 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.75k | EXTRA_NOTES | 312 | 1.75k | #endif | 313 | 1.75k | } | 314 | | | 315 | 799 | return 0; | 316 | 1.75k | } |
Line | Count | Source | 217 | 7.81k | { | 218 | 7.81k | switch (nhdr->n_namesz) | 219 | 7.81k | { | 220 | 3.51k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.51k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 679 | break; | 223 | 2.83k | return 0; | 224 | | | 225 | 1.42k | case sizeof "CORE": | 226 | 1.42k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 730 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 691 | FALLTHROUGH; | 230 | | | 231 | 928 | case sizeof "LINUX": | 232 | 928 | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 428 | break; | 234 | 500 | return 0; | 235 | | | 236 | 293 | case sizeof "VMCOREINFO": | 237 | 293 | if (nhdr->n_type != 0 | 238 | 293 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 227 | 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.35k | default: | 248 | 2.35k | return 0; | 249 | 7.81k | } | 250 | | | 251 | 1.83k | switch (nhdr->n_type) | 252 | 1.83k | { | 253 | 567 | case NT_PRSTATUS: | 254 | 567 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 557 | 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 | 215 | case NT_PRPSINFO: | 264 | 215 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 186 | return 0; | 266 | 29 | *regs_offset = 0; | 267 | 29 | *nregloc = 0; | 268 | 29 | *reglocs = NULL; | 269 | 29 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 29 | *items = prpsinfo_items; | 271 | 29 | 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.83k | EXTRA_REGSET (NT_FPREGSET, FPREGSET_SIZE, fpregset_regs) | 308 | 1.83k | #endif | 309 | | | 310 | | #ifdef EXTRA_NOTES | 311 | | EXTRA_NOTES | 312 | | #endif | 313 | 1.83k | } | 314 | | | 315 | 942 | return 0; | 316 | 1.83k | } |
Line | Count | Source | 217 | 8.73k | { | 218 | 8.73k | switch (nhdr->n_namesz) | 219 | 8.73k | { | 220 | 4.23k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 4.23k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 638 | break; | 223 | 3.59k | return 0; | 224 | | | 225 | 1.60k | case sizeof "CORE": | 226 | 1.60k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 545 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 1.05k | FALLTHROUGH; | 230 | | | 231 | 1.13k | case sizeof "LINUX": | 232 | 1.13k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 635 | break; | 234 | 498 | return 0; | 235 | | | 236 | 323 | case sizeof "VMCOREINFO": | 237 | 323 | if (nhdr->n_type != 0 | 238 | 323 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 250 | return 0; | 240 | 73 | *regs_offset = 0; | 241 | 73 | *nregloc = 0; | 242 | 73 | *reglocs = NULL; | 243 | 73 | *nitems = 1; | 244 | 73 | *items = vmcoreinfo_items; | 245 | 73 | return 1; | 246 | | | 247 | 2.50k | default: | 248 | 2.50k | return 0; | 249 | 8.73k | } | 250 | | | 251 | 1.81k | switch (nhdr->n_type) | 252 | 1.81k | { | 253 | 435 | case NT_PRSTATUS: | 254 | 435 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 425 | 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 | 323 | case NT_PRPSINFO: | 264 | 323 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 321 | return 0; | 266 | 2 | *regs_offset = 0; | 267 | 2 | *nregloc = 0; | 268 | 2 | *reglocs = NULL; | 269 | 2 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 2 | *items = prpsinfo_items; | 271 | 2 | return 1; | 272 | | | 273 | 1.81k | #define EXTRA_REGSET(type, size, table) \ | 274 | 1.81k | case type: \ | 275 | 1.81k | if (nhdr->n_descsz != size) \ | 276 | 1.81k | return 0; \ | 277 | 1.81k | *regs_offset = 0; \ | 278 | 1.81k | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 1.81k | *reglocs = table; \ | 280 | 1.81k | *nitems = 0; \ | 281 | 1.81k | *items = NULL; \ | 282 | 1.81k | return 1; | 283 | | | 284 | 1.81k | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 1.81k | case type: \ | 286 | 1.81k | if (nhdr->n_descsz != size) \ | 287 | 1.81k | return 0; \ | 288 | 1.81k | *regs_offset = 0; \ | 289 | 1.81k | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 1.81k | *reglocs = table; \ | 291 | 1.81k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 1.81k | *items = extra_items; \ | 293 | 1.81k | return 1; | 294 | | | 295 | 1.81k | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 1.81k | case type: \ | 297 | 1.81k | if (nhdr->n_descsz != size) \ | 298 | 1.81k | return 0; \ | 299 | 1.81k | *regs_offset = 0; \ | 300 | 1.81k | *nregloc = 0; \ | 301 | 1.81k | *reglocs = NULL; \ | 302 | 1.81k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 1.81k | *items = extra_items; \ | 304 | 1.81k | 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.81k | } | 314 | | | 315 | 1.06k | return 0; | 316 | 1.81k | } |
Line | Count | Source | 217 | 6.69k | { | 218 | 6.69k | switch (nhdr->n_namesz) | 219 | 6.69k | { | 220 | 2.84k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 2.84k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 465 | break; | 223 | 2.37k | return 0; | 224 | | | 225 | 1.27k | case sizeof "CORE": | 226 | 1.27k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 607 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 671 | FALLTHROUGH; | 230 | | | 231 | 753 | case sizeof "LINUX": | 232 | 753 | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 334 | break; | 234 | 419 | return 0; | 235 | | | 236 | 267 | case sizeof "VMCOREINFO": | 237 | 267 | if (nhdr->n_type != 0 | 238 | 267 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 189 | return 0; | 240 | 78 | *regs_offset = 0; | 241 | 78 | *nregloc = 0; | 242 | 78 | *reglocs = NULL; | 243 | 78 | *nitems = 1; | 244 | 78 | *items = vmcoreinfo_items; | 245 | 78 | return 1; | 246 | | | 247 | 2.22k | default: | 248 | 2.22k | return 0; | 249 | 6.69k | } | 250 | | | 251 | 1.40k | switch (nhdr->n_type) | 252 | 1.40k | { | 253 | 436 | case NT_PRSTATUS: | 254 | 436 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 426 | 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 | 171 | case NT_PRPSINFO: | 264 | 171 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 168 | 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.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 | 799 | return 0; | 316 | 1.40k | } |
Line | Count | Source | 217 | 7.33k | { | 218 | 7.33k | switch (nhdr->n_namesz) | 219 | 7.33k | { | 220 | 3.26k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.26k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 584 | break; | 223 | 2.68k | return 0; | 224 | | | 225 | 1.29k | case sizeof "CORE": | 226 | 1.29k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 553 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 745 | FALLTHROUGH; | 230 | | | 231 | 926 | case sizeof "LINUX": | 232 | 926 | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 395 | break; | 234 | 531 | return 0; | 235 | | | 236 | 293 | case sizeof "VMCOREINFO": | 237 | 293 | if (nhdr->n_type != 0 | 238 | 293 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 219 | return 0; | 240 | 74 | *regs_offset = 0; | 241 | 74 | *nregloc = 0; | 242 | 74 | *reglocs = NULL; | 243 | 74 | *nitems = 1; | 244 | 74 | *items = vmcoreinfo_items; | 245 | 74 | return 1; | 246 | | | 247 | 2.29k | default: | 248 | 2.29k | return 0; | 249 | 7.33k | } | 250 | | | 251 | 1.53k | switch (nhdr->n_type) | 252 | 1.53k | { | 253 | 437 | case NT_PRSTATUS: | 254 | 437 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 424 | return 0; | 256 | 13 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 13 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 13 | *reglocs = prstatus_regs; | 259 | 13 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 13 | *items = prstatus_items; | 261 | 13 | return 1; | 262 | | | 263 | 238 | case NT_PRPSINFO: | 264 | 238 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 236 | return 0; | 266 | 2 | *regs_offset = 0; | 267 | 2 | *nregloc = 0; | 268 | 2 | *reglocs = NULL; | 269 | 2 | *nitems = sizeof prpsinfo_items / sizeof prpsinfo_items[0]; | 270 | 2 | *items = prpsinfo_items; | 271 | 2 | return 1; | 272 | | | 273 | 1.53k | #define EXTRA_REGSET(type, size, table) \ | 274 | 1.53k | case type: \ | 275 | 1.53k | if (nhdr->n_descsz != size) \ | 276 | 1.53k | return 0; \ | 277 | 1.53k | *regs_offset = 0; \ | 278 | 1.53k | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 1.53k | *reglocs = table; \ | 280 | 1.53k | *nitems = 0; \ | 281 | 1.53k | *items = NULL; \ | 282 | 1.53k | return 1; | 283 | | | 284 | 1.53k | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 1.53k | case type: \ | 286 | 1.53k | if (nhdr->n_descsz != size) \ | 287 | 1.53k | return 0; \ | 288 | 1.53k | *regs_offset = 0; \ | 289 | 1.53k | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 1.53k | *reglocs = table; \ | 291 | 1.53k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 1.53k | *items = extra_items; \ | 293 | 1.53k | return 1; | 294 | | | 295 | 1.53k | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 1.53k | case type: \ | 297 | 1.53k | if (nhdr->n_descsz != size) \ | 298 | 1.53k | return 0; \ | 299 | 1.53k | *regs_offset = 0; \ | 300 | 1.53k | *nregloc = 0; \ | 301 | 1.53k | *reglocs = NULL; \ | 302 | 1.53k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 1.53k | *items = extra_items; \ | 304 | 1.53k | 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.53k | } | 314 | | | 315 | 857 | return 0; | 316 | 1.53k | } |
Line | Count | Source | 217 | 8.71k | { | 218 | 8.71k | switch (nhdr->n_namesz) | 219 | 8.71k | { | 220 | 4.20k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 4.20k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 615 | break; | 223 | 3.58k | return 0; | 224 | | | 225 | 1.53k | case sizeof "CORE": | 226 | 1.53k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 520 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 1.01k | FALLTHROUGH; | 230 | | | 231 | 1.15k | case sizeof "LINUX": | 232 | 1.15k | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 640 | break; | 234 | 517 | return 0; | 235 | | | 236 | 293 | case sizeof "VMCOREINFO": | 237 | 293 | if (nhdr->n_type != 0 | 238 | 293 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 225 | 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 | 2.54k | default: | 248 | 2.54k | return 0; | 249 | 8.71k | } | 250 | | | 251 | 1.77k | switch (nhdr->n_type) | 252 | 1.77k | { | 253 | 388 | case NT_PRSTATUS: | 254 | 388 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 381 | return 0; | 256 | 7 | *regs_offset = offsetof (struct EBLHOOK(prstatus), pr_reg); | 257 | 7 | *nregloc = sizeof prstatus_regs / sizeof prstatus_regs[0]; | 258 | 7 | *reglocs = prstatus_regs; | 259 | 7 | *nitems = sizeof prstatus_items / sizeof prstatus_items[0]; | 260 | 7 | *items = prstatus_items; | 261 | 7 | return 1; | 262 | | | 263 | 293 | case NT_PRPSINFO: | 264 | 293 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 292 | 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.77k | #define EXTRA_REGSET(type, size, table) \ | 274 | 1.77k | case type: \ | 275 | 1.77k | if (nhdr->n_descsz != size) \ | 276 | 1.77k | return 0; \ | 277 | 1.77k | *regs_offset = 0; \ | 278 | 1.77k | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 1.77k | *reglocs = table; \ | 280 | 1.77k | *nitems = 0; \ | 281 | 1.77k | *items = NULL; \ | 282 | 1.77k | return 1; | 283 | | | 284 | 1.77k | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 1.77k | case type: \ | 286 | 1.77k | if (nhdr->n_descsz != size) \ | 287 | 1.77k | return 0; \ | 288 | 1.77k | *regs_offset = 0; \ | 289 | 1.77k | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 1.77k | *reglocs = table; \ | 291 | 1.77k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 1.77k | *items = extra_items; \ | 293 | 1.77k | return 1; | 294 | | | 295 | 1.77k | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 1.77k | case type: \ | 297 | 1.77k | if (nhdr->n_descsz != size) \ | 298 | 1.77k | return 0; \ | 299 | 1.77k | *regs_offset = 0; \ | 300 | 1.77k | *nregloc = 0; \ | 301 | 1.77k | *reglocs = NULL; \ | 302 | 1.77k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 1.77k | *items = extra_items; \ | 304 | 1.77k | 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.77k | } | 314 | | | 315 | 1.09k | return 0; | 316 | 1.77k | } |
Line | Count | Source | 217 | 6.91k | { | 218 | 6.91k | switch (nhdr->n_namesz) | 219 | 6.91k | { | 220 | 3.13k | case sizeof "CORE" - 1: /* Buggy old Linux kernels. */ | 221 | 3.13k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 222 | 543 | break; | 223 | 2.58k | return 0; | 224 | | | 225 | 1.31k | case sizeof "CORE": | 226 | 1.31k | if (memcmp (name, "CORE", nhdr->n_namesz) == 0) | 227 | 561 | break; | 228 | | /* Buggy old Linux kernels didn't terminate "LINUX". */ | 229 | 757 | FALLTHROUGH; | 230 | | | 231 | 860 | case sizeof "LINUX": | 232 | 860 | if (memcmp (name, "LINUX", nhdr->n_namesz) == 0) | 233 | 406 | break; | 234 | 454 | return 0; | 235 | | | 236 | 269 | case sizeof "VMCOREINFO": | 237 | 269 | if (nhdr->n_type != 0 | 238 | 269 | || memcmp (name, "VMCOREINFO", sizeof "VMCOREINFO") != 0) | 239 | 202 | 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.09k | default: | 248 | 2.09k | return 0; | 249 | 6.91k | } | 250 | | | 251 | 1.51k | switch (nhdr->n_type) | 252 | 1.51k | { | 253 | 462 | case NT_PRSTATUS: | 254 | 462 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prstatus))) | 255 | 456 | 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 | 241 | case NT_PRPSINFO: | 264 | 241 | if (nhdr->n_descsz != sizeof (struct EBLHOOK(prpsinfo))) | 265 | 240 | 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.51k | #define EXTRA_REGSET(type, size, table) \ | 274 | 1.51k | case type: \ | 275 | 1.51k | if (nhdr->n_descsz != size) \ | 276 | 1.51k | return 0; \ | 277 | 1.51k | *regs_offset = 0; \ | 278 | 1.51k | *nregloc = sizeof table / sizeof table[0]; \ | 279 | 1.51k | *reglocs = table; \ | 280 | 1.51k | *nitems = 0; \ | 281 | 1.51k | *items = NULL; \ | 282 | 1.51k | return 1; | 283 | | | 284 | 1.51k | #define EXTRA_REGSET_ITEMS(type, size, table, extra_items) \ | 285 | 1.51k | case type: \ | 286 | 1.51k | if (nhdr->n_descsz != size) \ | 287 | 1.51k | return 0; \ | 288 | 1.51k | *regs_offset = 0; \ | 289 | 1.51k | *nregloc = sizeof table / sizeof table[0]; \ | 290 | 1.51k | *reglocs = table; \ | 291 | 1.51k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 292 | 1.51k | *items = extra_items; \ | 293 | 1.51k | return 1; | 294 | | | 295 | 1.51k | #define EXTRA_ITEMS(type, size, extra_items) \ | 296 | 1.51k | case type: \ | 297 | 1.51k | if (nhdr->n_descsz != size) \ | 298 | 1.51k | return 0; \ | 299 | 1.51k | *regs_offset = 0; \ | 300 | 1.51k | *nregloc = 0; \ | 301 | 1.51k | *reglocs = NULL; \ | 302 | 1.51k | *nitems = sizeof extra_items / sizeof extra_items[0]; \ | 303 | 1.51k | *items = extra_items; \ | 304 | 1.51k | 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.51k | } | 314 | | | 315 | 807 | return 0; | 316 | 1.51k | } |
|