...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 package sym
32
33 import "cmd/internal/objabi"
34
35
36 type SymKind uint8
37
38
39
40
41
42
43 const (
44 Sxxx SymKind = iota
45 STEXT
46 STEXTFIPSSTART
47 STEXTFIPS
48 STEXTFIPSEND
49 STEXTEND
50 SELFRXSECT
51 SMACHOPLT
52
53
54 STYPE
55 SSTRING
56 SGOSTRING
57 SGOFUNC
58 SGCBITS
59 SRODATA
60 SRODATAFIPSSTART
61 SRODATAFIPS
62 SRODATAFIPSEND
63 SRODATAEND
64 SFUNCTAB
65
66 SELFROSECT
67
68
69
70
71
72
73
74
75
76
77
78
79
80 STYPERELRO
81 SSTRINGRELRO
82 SGOSTRINGRELRO
83 SGOFUNCRELRO
84 SGCBITSRELRO
85 SRODATARELRO
86 SFUNCTABRELRO
87 SELFRELROSECT
88 SMACHORELROSECT
89
90
91 STYPELINK
92 SITABLINK
93 SSYMTAB
94 SPCLNTAB
95
96
97 SFirstWritable
98 SBUILDINFO
99 SFIPSINFO
100 SELFSECT
101 SMACHO
102 SMACHOGOT
103 SWINDOWS
104 SELFGOT
105 SNOPTRDATA
106 SNOPTRDATAFIPSSTART
107 SNOPTRDATAFIPS
108 SNOPTRDATAFIPSEND
109 SNOPTRDATAEND
110 SINITARR
111 SDATA
112 SDATAFIPSSTART
113 SDATAFIPS
114 SDATAFIPSEND
115 SDATAEND
116 SXCOFFTOC
117 SBSS
118 SNOPTRBSS
119 SLIBFUZZER_8BIT_COUNTER
120 SCOVERAGE_COUNTER
121 SCOVERAGE_AUXVAR
122 STLSBSS
123 SXREF
124 SMACHOSYMSTR
125 SMACHOSYMTAB
126 SMACHOINDIRECTPLT
127 SMACHOINDIRECTGOT
128 SFILEPATH
129 SDYNIMPORT
130 SHOSTOBJ
131 SUNDEFEXT
132
133
134 SDWARFSECT
135
136 SDWARFCUINFO
137 SDWARFCONST
138 SDWARFFCN
139 SDWARFABSFCN
140 SDWARFTYPE
141 SDWARFVAR
142 SDWARFRANGE
143 SDWARFLOC
144 SDWARFLINES
145 SDWARFADDR
146
147
148 SSEHUNWINDINFO
149 SSEHSECT
150 )
151
152
153
154 var AbiSymKindToSymKind = [...]SymKind{
155 objabi.Sxxx: Sxxx,
156 objabi.STEXT: STEXT,
157 objabi.STEXTFIPS: STEXTFIPS,
158 objabi.SRODATA: SRODATA,
159 objabi.SRODATAFIPS: SRODATAFIPS,
160 objabi.SNOPTRDATA: SNOPTRDATA,
161 objabi.SNOPTRDATAFIPS: SNOPTRDATAFIPS,
162 objabi.SDATA: SDATA,
163 objabi.SDATAFIPS: SDATAFIPS,
164 objabi.SBSS: SBSS,
165 objabi.SNOPTRBSS: SNOPTRBSS,
166 objabi.STLSBSS: STLSBSS,
167 objabi.SDWARFCUINFO: SDWARFCUINFO,
168 objabi.SDWARFCONST: SDWARFCONST,
169 objabi.SDWARFFCN: SDWARFFCN,
170 objabi.SDWARFABSFCN: SDWARFABSFCN,
171 objabi.SDWARFTYPE: SDWARFTYPE,
172 objabi.SDWARFVAR: SDWARFVAR,
173 objabi.SDWARFRANGE: SDWARFRANGE,
174 objabi.SDWARFLOC: SDWARFLOC,
175 objabi.SDWARFLINES: SDWARFLINES,
176 objabi.SDWARFADDR: SDWARFADDR,
177 objabi.SLIBFUZZER_8BIT_COUNTER: SLIBFUZZER_8BIT_COUNTER,
178 objabi.SCOVERAGE_COUNTER: SCOVERAGE_COUNTER,
179 objabi.SCOVERAGE_AUXVAR: SCOVERAGE_AUXVAR,
180 objabi.SSEHUNWINDINFO: SSEHUNWINDINFO,
181 }
182
183
184
185
186 var ReadOnly = []SymKind{
187 STYPE,
188 SSTRING,
189 SGOSTRING,
190 SGOFUNC,
191 SGCBITS,
192 SRODATA,
193 SRODATAFIPSSTART,
194 SRODATAFIPS,
195 SRODATAFIPSEND,
196 SRODATAEND,
197 SFUNCTAB,
198 }
199
200
201
202 var RelROMap = map[SymKind]SymKind{
203 STYPE: STYPERELRO,
204 SSTRING: SSTRINGRELRO,
205 SGOSTRING: SGOSTRINGRELRO,
206 SGOFUNC: SGOFUNCRELRO,
207 SGCBITS: SGCBITSRELRO,
208 SRODATA: SRODATARELRO,
209 SFUNCTAB: SFUNCTABRELRO,
210 }
211
212
213 func (t SymKind) IsText() bool {
214 return STEXT <= t && t <= STEXTEND
215 }
216
217
218 func (t SymKind) IsData() bool {
219 return SNOPTRDATA <= t && t <= SNOPTRBSS
220 }
221
222
223 func (t SymKind) IsDATA() bool {
224 return SDATA <= t && t <= SDATAEND
225 }
226
227
228 func (t SymKind) IsRODATA() bool {
229 return SRODATA <= t && t <= SRODATAEND
230 }
231
232
233 func (t SymKind) IsNOPTRDATA() bool {
234 return SNOPTRDATA <= t && t <= SNOPTRDATAEND
235 }
236
237 func (t SymKind) IsDWARF() bool {
238 return SDWARFSECT <= t && t <= SDWARFADDR
239 }
240
View as plain text