]>
Commit | Line | Data |
---|---|---|
b08d5a8f | 1 | /* Return note type name. |
b43bcfe4 | 2 | Copyright (C) 2002, 2007, 2008, 2012, 2013 Red Hat, Inc. |
de2ed97f | 3 | This file is part of elfutils. |
b08d5a8f UD |
4 | Written by Ulrich Drepper <drepper@redhat.com>, 2002. |
5 | ||
de2ed97f MW |
6 | This file is free software; you can redistribute it and/or modify |
7 | it under the terms of either | |
b08d5a8f | 8 | |
de2ed97f MW |
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 | |
361df7da UD |
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 | ||
de2ed97f MW |
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/>. */ | |
b08d5a8f UD |
29 | |
30 | #ifdef HAVE_CONFIG_H | |
31 | # include <config.h> | |
32 | #endif | |
33 | ||
34 | #include <inttypes.h> | |
35 | #include <stdio.h> | |
36 | #include <libeblP.h> | |
37 | ||
b08d5a8f | 38 | const char * |
1ccdfb68 | 39 | ebl_core_note_type_name (Ebl *ebl, uint32_t type, char *buf, size_t len) |
b08d5a8f UD |
40 | { |
41 | const char *res = ebl->core_note_type_name (type, buf, len); | |
42 | ||
43 | if (res == NULL) | |
44 | { | |
45 | static const char *knowntypes[] = | |
46 | { | |
47 | #define KNOWNSTYPE(name) [NT_##name] = #name | |
48 | KNOWNSTYPE (PRSTATUS), | |
49 | KNOWNSTYPE (FPREGSET), | |
50 | KNOWNSTYPE (PRPSINFO), | |
51 | KNOWNSTYPE (TASKSTRUCT), | |
52 | KNOWNSTYPE (PLATFORM), | |
53 | KNOWNSTYPE (AUXV), | |
54 | KNOWNSTYPE (GWINDOWS), | |
55 | KNOWNSTYPE (ASRS), | |
56 | KNOWNSTYPE (PSTATUS), | |
57 | KNOWNSTYPE (PSINFO), | |
58 | KNOWNSTYPE (PRCRED), | |
59 | KNOWNSTYPE (UTSNAME), | |
60 | KNOWNSTYPE (LWPSTATUS), | |
61 | KNOWNSTYPE (LWPSINFO), | |
62 | KNOWNSTYPE (PRFPXREG) | |
e4c22ea0 | 63 | #undef KNOWNSTYPE |
b08d5a8f UD |
64 | }; |
65 | ||
66 | /* Handle standard names. */ | |
67 | if (type < sizeof (knowntypes) / sizeof (knowntypes[0]) | |
68 | && knowntypes[type] != NULL) | |
69 | res = knowntypes[type]; | |
70 | else | |
e4c22ea0 RM |
71 | switch (type) |
72 | { | |
73 | #define KNOWNSTYPE(name) case NT_##name: res = #name; break | |
74 | KNOWNSTYPE (PRXFPREG); | |
75 | KNOWNSTYPE (PPC_VMX); | |
059c83e5 | 76 | KNOWNSTYPE (PPC_SPE); |
96896017 | 77 | KNOWNSTYPE (PPC_VSX); |
55a471f5 | 78 | KNOWNSTYPE (PPC_TM_SPR); |
059c83e5 | 79 | KNOWNSTYPE (386_TLS); |
a845f68b | 80 | KNOWNSTYPE (386_IOPERM); |
96896017 PM |
81 | KNOWNSTYPE (X86_XSTATE); |
82 | KNOWNSTYPE (S390_HIGH_GPRS); | |
83 | KNOWNSTYPE (S390_TIMER); | |
84 | KNOWNSTYPE (S390_TODCMP); | |
85 | KNOWNSTYPE (S390_TODPREG); | |
86 | KNOWNSTYPE (S390_CTRS); | |
87 | KNOWNSTYPE (S390_PREFIX); | |
88 | KNOWNSTYPE (S390_LAST_BREAK); | |
89 | KNOWNSTYPE (S390_SYSTEM_CALL); | |
90 | KNOWNSTYPE (ARM_VFP); | |
b43bcfe4 PM |
91 | KNOWNSTYPE (ARM_TLS); |
92 | KNOWNSTYPE (ARM_HW_BREAK); | |
93 | KNOWNSTYPE (ARM_HW_WATCH); | |
1899704b | 94 | KNOWNSTYPE (ARM_SYSTEM_CALL); |
b43bcfe4 PM |
95 | KNOWNSTYPE (SIGINFO); |
96 | KNOWNSTYPE (FILE); | |
e4c22ea0 RM |
97 | #undef KNOWNSTYPE |
98 | ||
99 | default: | |
2e0ae048 | 100 | snprintf (buf, len, "%s: %" PRIu32, _("<unknown>"), type); |
b08d5a8f | 101 | |
e4c22ea0 RM |
102 | res = buf; |
103 | } | |
b08d5a8f UD |
104 | } |
105 | ||
106 | return res; | |
107 | } |