gem5  v19.0.0.0
process.cc
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2015 Ruslan Bukin <br@bsdpad.com>
3  * All rights reserved.
4  *
5  * This software was developed by the University of Cambridge Computer
6  * Laboratory as part of the CTSRD Project, with support from the UK Higher
7  * Education Innovation Fund (HEIF).
8  *
9  * Redistribution and use in source and binary forms, with or without
10  * modification, are permitted provided that the following conditions are
11  * met: redistributions of source code must retain the above copyright
12  * notice, this list of conditions and the following disclaimer;
13  * redistributions in binary form must reproduce the above copyright
14  * notice, this list of conditions and the following disclaimer in the
15  * documentation and/or other materials provided with the distribution;
16  * neither the name of the copyright holders nor the names of its
17  * contributors may be used to endorse or promote products derived from
18  * this software without specific prior written permission.
19  *
20  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
21  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
22  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
23  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
24  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
25  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
26  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
27  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
28  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
29  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
30  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
31  */
32 
34 
35 #include <sys/mman.h>
36 #include <sys/param.h>
37 #include <sys/syscall.h>
38 #if !defined ( __GNU_LIBRARY__ )
39 #include <sys/sysctl.h>
40 #endif
41 #include <sys/types.h>
42 #include <utime.h>
43 
45 #include "arch/arm/isa_traits.hh"
47 #include "base/trace.hh"
48 #include "cpu/thread_context.hh"
49 #include "kern/freebsd/freebsd.hh"
50 #include "sim/process.hh"
51 #include "sim/syscall_desc.hh"
52 #include "sim/syscall_emul.hh"
53 #include "sim/system.hh"
54 
55 using namespace std;
56 using namespace ArmISA;
57 
58 namespace
59 {
60 
61 class ArmFreebsdObjectFileLoader : public Process::Loader
62 {
63  public:
64  Process *
65  load(ProcessParams *params, ObjectFile *obj_file) override
66  {
67  auto arch = obj_file->getArch();
68  auto opsys = obj_file->getOpSys();
69 
70  if (arch != ObjectFile::Arm && arch != ObjectFile::Thumb &&
71  arch != ObjectFile::Arm64) {
72  return nullptr;
73  }
74 
75  if (opsys != ObjectFile::FreeBSD)
76  return nullptr;
77 
78  if (arch == ObjectFile::Arm64)
79  return new ArmFreebsdProcess64(params, obj_file, arch);
80  else
81  return new ArmFreebsdProcess32(params, obj_file, arch);
82  }
83 };
84 
85 ArmFreebsdObjectFileLoader loader;
86 
87 } // anonymous namespace
88 
89 static SyscallReturn
90 issetugidFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
91 {
92  return 0;
93 }
94 
95 #if !defined ( __GNU_LIBRARY__ )
96 static SyscallReturn
97 sysctlFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
98 {
99  int index = 0;
100  uint64_t ret;
101 
102  auto process = tc->getProcessPtr();
103  Addr namep = process->getSyscallArg(tc, index);
104  size_t namelen = process->getSyscallArg(tc, index);
105  Addr oldp = process->getSyscallArg(tc, index);
106  Addr oldlenp = process->getSyscallArg(tc, index);
107  Addr newp = process->getSyscallArg(tc, index);
108  size_t newlen = process->getSyscallArg(tc, index);
109 
110  BufferArg buf(namep, sizeof(size_t));
111  BufferArg buf2(oldp, sizeof(size_t));
112  BufferArg buf3(oldlenp, sizeof(size_t));
113  BufferArg buf4(newp, sizeof(size_t));
114 
115  buf.copyIn(tc->getVirtProxy());
116  buf2.copyIn(tc->getVirtProxy());
117  buf3.copyIn(tc->getVirtProxy());
118 
119  void *hnewp = NULL;
120  if (newp) {
121  buf4.copyIn(tc->getVirtProxy());
122  hnewp = (void *)buf4.bufferPtr();
123  }
124 
125  uint32_t *hnamep = (uint32_t *)buf.bufferPtr();
126  void *holdp = (void *)buf2.bufferPtr();
127  size_t *holdlenp = (size_t *)buf3.bufferPtr();
128 
129  ret = sysctl((int *)hnamep, namelen, holdp, holdlenp, hnewp, newlen);
130 
131  buf.copyOut(tc->getVirtProxy());
132  buf2.copyOut(tc->getVirtProxy());
133  buf3.copyOut(tc->getVirtProxy());
134  if (newp)
135  buf4.copyOut(tc->getVirtProxy());
136 
137  return (ret);
138 }
139 #endif
140 
142  /* 0 */ { "unused#000" },
143  /* 1 */ { "unused#001" },
144  /* 2 */ { "unused#002" },
145  /* 3 */ { "unused#003" },
146  /* 4 */ { "unused#004" },
147  /* 5 */ { "unused#005" },
148  /* 6 */ { "unused#006" },
149  /* 7 */ { "unused#007" },
150  /* 8 */ { "unused#008" },
151  /* 9 */ { "unused#009" },
152  /* 10 */ { "unused#010" },
153  /* 11 */ { "unused#011" },
154  /* 12 */ { "unused#012" },
155  /* 13 */ { "unused#013" },
156  /* 14 */ { "unused#014" },
157  /* 15 */ { "unused#015" },
158  /* 16 */ { "unused#016" },
159  /* 17 */ { "unused#017" },
160  /* 18 */ { "unused#018" },
161  /* 19 */ { "unused#019" },
162  /* 20 */ { "unused#020" },
163  /* 21 */ { "unused#021" },
164  /* 22 */ { "unused#022" },
165  /* 23 */ { "unused#023" },
166  /* 24 */ { "unused#024" },
167  /* 25 */ { "unused#025" },
168  /* 26 */ { "unused#026" },
169  /* 27 */ { "unused#027" },
170  /* 28 */ { "unused#028" },
171  /* 29 */ { "unused#029" },
172  /* 30 */ { "unused#030" },
173  /* 31 */ { "unused#031" },
174  /* 32 */ { "unused#032" },
175  /* 33 */ { "unused#033" },
176  /* 34 */ { "unused#034" },
177  /* 35 */ { "unused#035" },
178  /* 36 */ { "unused#036" },
179  /* 37 */ { "unused#037" },
180  /* 38 */ { "unused#038" },
181  /* 39 */ { "unused#039" },
182  /* 40 */ { "unused#040" },
183  /* 41 */ { "unused#041" },
184  /* 42 */ { "unused#042" },
185  /* 43 */ { "unused#043" },
186  /* 44 */ { "unused#044" },
187  /* 45 */ { "unused#045" },
188  /* 46 */ { "unused#046" },
189  /* 47 */ { "unused#047" },
190  /* 48 */ { "unused#048" },
191  /* 49 */ { "unused#049" },
192  /* 50 */ { "unused#050" },
193  /* 51 */ { "unused#051" },
194  /* 52 */ { "unused#052" },
195  /* 53 */ { "unused#053" },
196  /* 54 */ { "unused#054" },
197  /* 55 */ { "unused#055" },
198  /* 56 */ { "unused#056" },
199  /* 57 */ { "unused#057" },
200  /* 58 */ { "unused#058" },
201  /* 59 */ { "unused#059" },
202  /* 60 */ { "unused#060" },
203  /* 61 */ { "unused#061" },
204  /* 62 */ { "unused#062" },
205  /* 63 */ { "unused#063" },
206  /* 64 */ { "unused#064" },
207  /* 65 */ { "unused#065" },
208  /* 66 */ { "unused#066" },
209  /* 67 */ { "unused#067" },
210  /* 68 */ { "unused#068" },
211  /* 69 */ { "unused#069" },
212  /* 70 */ { "unused#070" },
213  /* 71 */ { "unused#071" },
214  /* 72 */ { "unused#072" },
215  /* 73 */ { "unused#073" },
216  /* 74 */ { "unused#074" },
217  /* 75 */ { "unused#075" },
218  /* 76 */ { "unused#076" },
219  /* 77 */ { "unused#077" },
220  /* 78 */ { "unused#078" },
221  /* 79 */ { "unused#079" },
222  /* 80 */ { "unused#080" },
223  /* 81 */ { "unused#081" },
224  /* 82 */ { "unused#082" },
225  /* 83 */ { "unused#083" },
226  /* 84 */ { "unused#084" },
227  /* 85 */ { "unused#085" },
228  /* 86 */ { "unused#086" },
229  /* 87 */ { "unused#087" },
230  /* 88 */ { "unused#088" },
231  /* 89 */ { "unused#089" },
232  /* 90 */ { "unused#090" },
233  /* 91 */ { "unused#091" },
234  /* 92 */ { "unused#092" },
235  /* 93 */ { "unused#093" },
236  /* 94 */ { "unused#094" },
237  /* 95 */ { "unused#095" },
238  /* 96 */ { "unused#096" },
239  /* 97 */ { "unused#097" },
240  /* 98 */ { "unused#098" },
241  /* 99 */ { "unused#099" },
242  /* 100 */ { "unused#100" },
243  /* 101 */ { "unused#101" },
244  /* 102 */ { "unused#102" },
245  /* 103 */ { "unused#103" },
246  /* 104 */ { "unused#104" },
247  /* 105 */ { "unused#105" },
248  /* 106 */ { "unused#106" },
249  /* 107 */ { "unused#107" },
250  /* 108 */ { "unused#108" },
251  /* 109 */ { "unused#109" },
252  /* 110 */ { "unused#110" },
253  /* 111 */ { "unused#111" },
254  /* 112 */ { "unused#112" },
255  /* 113 */ { "unused#113" },
256  /* 114 */ { "unused#114" },
257  /* 115 */ { "unused#115" },
258  /* 116 */ { "unused#116" },
259  /* 117 */ { "unused#117" },
260  /* 118 */ { "unused#118" },
261  /* 119 */ { "unused#119" },
262  /* 120 */ { "unused#120" },
263  /* 121 */ { "unused#121" },
264  /* 122 */ { "unused#122" },
265  /* 123 */ { "unused#123" },
266  /* 124 */ { "unused#124" },
267  /* 125 */ { "unused#125" },
268  /* 126 */ { "unused#126" },
269  /* 127 */ { "unused#127" },
270  /* 128 */ { "unused#128" },
271  /* 129 */ { "unused#129" },
272  /* 130 */ { "unused#130" },
273  /* 131 */ { "unused#131" },
274  /* 132 */ { "unused#132" },
275  /* 133 */ { "unused#133" },
276  /* 134 */ { "unused#134" },
277  /* 135 */ { "unused#135" },
278  /* 136 */ { "unused#136" },
279  /* 137 */ { "unused#137" },
280  /* 138 */ { "unused#138" },
281  /* 139 */ { "unused#139" },
282  /* 140 */ { "unused#140" },
283  /* 141 */ { "unused#141" },
284  /* 142 */ { "unused#142" },
285  /* 143 */ { "unused#143" },
286  /* 144 */ { "unused#144" },
287  /* 145 */ { "unused#145" },
288  /* 146 */ { "unused#146" },
289  /* 147 */ { "unused#147" },
290  /* 148 */ { "unused#148" },
291  /* 149 */ { "unused#149" },
292  /* 150 */ { "unused#150" },
293  /* 151 */ { "unused#151" },
294  /* 152 */ { "unused#152" },
295  /* 153 */ { "unused#153" },
296  /* 154 */ { "unused#154" },
297  /* 155 */ { "unused#155" },
298  /* 156 */ { "unused#156" },
299  /* 157 */ { "unused#157" },
300  /* 158 */ { "unused#158" },
301  /* 159 */ { "unused#159" },
302  /* 160 */ { "unused#160" },
303  /* 161 */ { "unused#161" },
304  /* 162 */ { "unused#162" },
305  /* 163 */ { "unused#163" },
306  /* 164 */ { "unused#164" },
307  /* 165 */ { "unused#165" },
308  /* 166 */ { "unused#166" },
309  /* 167 */ { "unused#167" },
310  /* 168 */ { "unused#168" },
311  /* 169 */ { "unused#169" },
312  /* 170 */ { "unused#170" },
313  /* 171 */ { "unused#171" },
314  /* 172 */ { "unused#172" },
315  /* 173 */ { "unused#173" },
316  /* 174 */ { "unused#174" },
317  /* 175 */ { "unused#175" },
318  /* 176 */ { "unused#176" },
319  /* 177 */ { "unused#177" },
320  /* 178 */ { "unused#178" },
321  /* 179 */ { "unused#179" },
322  /* 180 */ { "unused#180" },
323  /* 181 */ { "unused#181" },
324  /* 182 */ { "unused#182" },
325  /* 183 */ { "unused#183" },
326  /* 184 */ { "unused#184" },
327  /* 185 */ { "unused#185" },
328  /* 186 */ { "unused#186" },
329  /* 187 */ { "unused#187" },
330  /* 188 */ { "unused#188" },
331  /* 189 */ { "unused#189" },
332  /* 190 */ { "unused#190" },
333  /* 191 */ { "unused#191" },
334  /* 192 */ { "unused#192" },
335  /* 193 */ { "unused#193" },
336  /* 194 */ { "unused#194" },
337  /* 195 */ { "unused#195" },
338  /* 196 */ { "unused#196" },
339  /* 197 */ { "unused#197" },
340  /* 198 */ { "unused#198" },
341  /* 199 */ { "unused#199" },
342  /* 200 */ { "unused#200" },
343  /* 201 */ { "unused#201" },
344  /* 202 */ { "unused#202" },
345  /* 203 */ { "unused#203" },
346  /* 204 */ { "unused#204" },
347  /* 205 */ { "unused#205" },
348  /* 206 */ { "unused#206" },
349  /* 207 */ { "unused#207" },
350  /* 208 */ { "unused#208" },
351  /* 209 */ { "unused#209" },
352  /* 210 */ { "unused#210" },
353  /* 211 */ { "unused#211" },
354  /* 212 */ { "unused#212" },
355  /* 213 */ { "unused#213" },
356  /* 214 */ { "unused#214" },
357  /* 215 */ { "unused#215" },
358  /* 216 */ { "unused#216" },
359  /* 217 */ { "unused#217" },
360  /* 218 */ { "unused#218" },
361  /* 219 */ { "unused#219" },
362  /* 220 */ { "unused#220" },
363  /* 221 */ { "unused#221" },
364  /* 222 */ { "unused#222" },
365  /* 223 */ { "unused#223" },
366  /* 224 */ { "unused#224" },
367  /* 225 */ { "unused#225" },
368  /* 226 */ { "unused#226" },
369  /* 227 */ { "unused#227" },
370  /* 228 */ { "unused#228" },
371  /* 229 */ { "unused#229" },
372  /* 230 */ { "unused#230" },
373  /* 231 */ { "unused#231" },
374  /* 232 */ { "unused#232" },
375  /* 233 */ { "unused#233" },
376  /* 234 */ { "unused#234" },
377  /* 235 */ { "unused#235" },
378  /* 236 */ { "unused#236" },
379  /* 237 */ { "unused#237" },
380  /* 238 */ { "unused#238" },
381  /* 239 */ { "unused#239" },
382  /* 240 */ { "unused#240" },
383  /* 241 */ { "unused#241" },
384  /* 242 */ { "unused#242" },
385  /* 243 */ { "unused#243" },
386  /* 244 */ { "unused#244" },
387  /* 245 */ { "unused#245" },
388  /* 246 */ { "unused#246" },
389  /* 247 */ { "unused#247" },
390  /* 248 */ { "unused#248" },
391  /* 249 */ { "unused#249" },
392  /* 250 */ { "unused#250" },
393  /* 251 */ { "unused#251" },
394  /* 252 */ { "unused#252" },
395  /* 253 */ { "unused#253" },
396  /* 254 */ { "unused#254" },
397  /* 255 */ { "unused#255" },
398  /* 256 */ { "unused#256" },
399  /* 257 */ { "unused#257" },
400  /* 258 */ { "unused#258" },
401  /* 259 */ { "unused#259" },
402  /* 260 */ { "unused#260" },
403  /* 261 */ { "unused#261" },
404  /* 262 */ { "unused#262" },
405  /* 263 */ { "unused#263" },
406  /* 264 */ { "unused#264" },
407  /* 265 */ { "unused#265" },
408  /* 266 */ { "unused#266" },
409  /* 267 */ { "unused#267" },
410  /* 268 */ { "unused#268" },
411  /* 269 */ { "unused#269" },
412  /* 270 */ { "unused#270" },
413  /* 271 */ { "unused#271" },
414  /* 272 */ { "unused#272" },
415  /* 273 */ { "unused#273" },
416  /* 274 */ { "unused#274" },
417  /* 275 */ { "unused#275" },
418  /* 276 */ { "unused#276" },
419  /* 277 */ { "unused#277" },
420  /* 278 */ { "unused#278" },
421  /* 279 */ { "unused#279" },
422  /* 280 */ { "unused#280" },
423  /* 281 */ { "unused#281" },
424  /* 282 */ { "unused#282" },
425  /* 283 */ { "unused#283" },
426  /* 284 */ { "unused#284" },
427  /* 285 */ { "unused#285" },
428  /* 286 */ { "unused#286" },
429  /* 287 */ { "unused#287" },
430  /* 288 */ { "unused#288" },
431  /* 289 */ { "unused#289" },
432  /* 290 */ { "unused#290" },
433  /* 291 */ { "unused#291" },
434  /* 292 */ { "unused#292" },
435  /* 293 */ { "unused#293" },
436  /* 294 */ { "unused#294" },
437  /* 295 */ { "unused#295" },
438  /* 296 */ { "unused#296" },
439  /* 297 */ { "unused#297" },
440  /* 298 */ { "unused#298" },
441  /* 299 */ { "unused#299" },
442  /* 300 */ { "unused#300" },
443  /* 301 */ { "unused#301" },
444  /* 302 */ { "unused#302" },
445  /* 303 */ { "unused#303" },
446  /* 304 */ { "unused#304" },
447  /* 305 */ { "unused#305" },
448  /* 306 */ { "unused#306" },
449  /* 307 */ { "unused#307" },
450  /* 308 */ { "unused#308" },
451  /* 309 */ { "unused#309" },
452  /* 310 */ { "unused#310" },
453  /* 311 */ { "unused#311" },
454  /* 312 */ { "unused#312" },
455  /* 313 */ { "unused#313" },
456  /* 314 */ { "unused#314" },
457  /* 315 */ { "unused#315" },
458  /* 316 */ { "unused#316" },
459  /* 317 */ { "unused#317" },
460  /* 318 */ { "unused#318" },
461  /* 319 */ { "unused#319" },
462  /* 320 */ { "unused#320" },
463  /* 321 */ { "unused#321" },
464  /* 322 */ { "unused#322" },
465  /* 323 */ { "unused#323" },
466  /* 324 */ { "unused#324" },
467  /* 325 */ { "unused#325" },
468  /* 326 */ { "unused#326" },
469  /* 327 */ { "unused#327" },
470  /* 328 */ { "unused#328" },
471  /* 329 */ { "unused#329" },
472  /* 330 */ { "unused#330" },
473  /* 331 */ { "unused#331" },
474  /* 332 */ { "unused#332" },
475  /* 333 */ { "unused#333" },
476  /* 334 */ { "unused#334" },
477  /* 335 */ { "unused#335" },
478  /* 336 */ { "unused#336" },
479  /* 337 */ { "unused#337" },
480  /* 338 */ { "unused#338" },
481  /* 339 */ { "unused#339" },
482  /* 340 */ { "unused#340" },
483  /* 341 */ { "unused#341" },
484  /* 342 */ { "unused#342" },
485  /* 343 */ { "unused#343" },
486  /* 344 */ { "unused#344" },
487  /* 345 */ { "unused#345" },
488  /* 346 */ { "unused#346" },
489  /* 347 */ { "unused#347" },
490  /* 348 */ { "unused#348" },
491  /* 349 */ { "unused#349" },
492  /* 350 */ { "unused#350" },
493  /* 351 */ { "unused#351" },
494  /* 352 */ { "unused#352" },
495  /* 353 */ { "unused#353" },
496  /* 354 */ { "unused#354" },
497  /* 355 */ { "unused#355" },
498  /* 356 */ { "unused#356" },
499  /* 357 */ { "unused#357" },
500  /* 358 */ { "unused#358" },
501  /* 359 */ { "unused#359" },
502  /* 360 */ { "unused#360" },
503  /* 361 */ { "unused#361" },
504  /* 362 */ { "unused#362" },
505  /* 363 */ { "unused#363" },
506  /* 364 */ { "unused#364" },
507  /* 365 */ { "unused#365" },
508  /* 366 */ { "unused#366" },
509  /* 367 */ { "unused#367" },
510  /* 368 */ { "unused#368" },
511  /* 369 */ { "unused#369" },
512  /* 370 */ { "unused#370" },
513  /* 371 */ { "unused#371" },
514  /* 372 */ { "unused#372" },
515  /* 373 */ { "unused#373" },
516  /* 374 */ { "unused#374" },
517  /* 375 */ { "unused#375" },
518  /* 376 */ { "unused#376" },
519  /* 377 */ { "unused#377" },
520  /* 378 */ { "unused#378" },
521  /* 379 */ { "unused#379" },
522  /* 380 */ { "unused#380" },
523  /* 381 */ { "unused#381" },
524  /* 382 */ { "unused#382" },
525  /* 383 */ { "unused#383" },
526  /* 384 */ { "unused#384" },
527  /* 385 */ { "unused#385" },
528  /* 386 */ { "unused#386" },
529  /* 387 */ { "unused#387" },
530  /* 388 */ { "unused#388" },
531  /* 389 */ { "unused#389" },
532  /* 390 */ { "unused#390" },
533  /* 391 */ { "unused#391" },
534  /* 392 */ { "unused#392" },
535  /* 393 */ { "unused#393" },
536  /* 394 */ { "unused#394" },
537  /* 395 */ { "unused#395" },
538  /* 396 */ { "unused#396" },
539  /* 397 */ { "unused#397" },
540  /* 398 */ { "unused#398" },
541  /* 399 */ { "unused#399" },
542  /* 400 */ { "unused#400" },
543  /* 401 */ { "unused#401" },
544  /* 402 */ { "unused#402" },
545  /* 403 */ { "unused#403" },
546  /* 404 */ { "unused#404" },
547  /* 405 */ { "unused#405" },
548  /* 406 */ { "unused#406" },
549  /* 407 */ { "unused#407" },
550  /* 408 */ { "unused#408" },
551  /* 409 */ { "unused#409" },
552  /* 410 */ { "unused#410" },
553  /* 411 */ { "unused#411" },
554  /* 412 */ { "unused#412" },
555  /* 413 */ { "unused#413" },
556  /* 414 */ { "unused#414" },
557  /* 415 */ { "unused#415" },
558  /* 416 */ { "unused#416" },
559  /* 417 */ { "unused#417" },
560  /* 418 */ { "unused#418" },
561  /* 419 */ { "unused#419" },
562  /* 420 */ { "unused#420" },
563  /* 421 */ { "unused#421" },
564  /* 422 */ { "unused#422" },
565  /* 423 */ { "unused#423" },
566  /* 424 */ { "unused#424" },
567  /* 425 */ { "unused#425" },
568  /* 426 */ { "unused#426" },
569  /* 427 */ { "unused#427" },
570  /* 428 */ { "unused#428" },
571  /* 429 */ { "unused#429" },
572  /* 430 */ { "unused#430" },
573  /* 431 */ { "unused#431" },
574  /* 432 */ { "unused#432" },
575  /* 433 */ { "unused#433" },
576  /* 434 */ { "unused#434" },
577  /* 435 */ { "unused#435" },
578  /* 436 */ { "unused#436" },
579  /* 437 */ { "unused#437" },
580  /* 438 */ { "unused#438" },
581  /* 439 */ { "unused#439" },
582  /* 440 */ { "unused#440" },
583  /* 441 */ { "unused#441" },
584  /* 442 */ { "unused#442" },
585  /* 443 */ { "unused#443" },
586  /* 444 */ { "unused#444" },
587  /* 445 */ { "unused#445" },
588  /* 446 */ { "unused#446" },
589  /* 447 */ { "unused#447" },
590  /* 448 */ { "unused#448" },
591  /* 449 */ { "unused#449" },
592  /* 450 */ { "unused#450" },
593  /* 451 */ { "unused#451" },
594  /* 452 */ { "unused#452" },
595  /* 453 */ { "unused#453" },
596  /* 454 */ { "unused#454" },
597  /* 455 */ { "unused#455" },
598  /* 456 */ { "unused#456" },
599  /* 457 */ { "unused#457" },
600  /* 458 */ { "unused#458" },
601  /* 459 */ { "unused#459" },
602  /* 460 */ { "unused#460" },
603  /* 461 */ { "unused#461" },
604  /* 462 */ { "unused#462" },
605  /* 463 */ { "unused#463" },
606  /* 464 */ { "unused#464" },
607  /* 465 */ { "unused#465" },
608  /* 466 */ { "unused#466" },
609  /* 467 */ { "unused#467" },
610  /* 468 */ { "unused#468" },
611  /* 469 */ { "unused#469" },
612  /* 470 */ { "unused#470" },
613  /* 471 */ { "unused#471" },
614  /* 472 */ { "unused#472" },
615  /* 473 */ { "unused#473" },
616  /* 474 */ { "unused#474" },
617  /* 475 */ { "unused#475" },
618  /* 476 */ { "unused#476" },
619  /* 477 */ { "unused#477" },
620  /* 478 */ { "unused#478" },
621  /* 479 */ { "unused#479" },
622  /* 480 */ { "unused#480" },
623  /* 481 */ { "unused#481" },
624  /* 482 */ { "unused#482" },
625  /* 483 */ { "unused#483" },
626  /* 484 */ { "unused#484" },
627  /* 485 */ { "unused#485" },
628  /* 486 */ { "unused#486" },
629  /* 487 */ { "unused#487" },
630  /* 488 */ { "unused#488" },
631  /* 489 */ { "unused#489" },
632  /* 490 */ { "unused#490" },
633  /* 491 */ { "unused#491" },
634  /* 492 */ { "unused#492" },
635  /* 493 */ { "unused#493" },
636  /* 494 */ { "unused#494" },
637  /* 495 */ { "unused#495" },
638  /* 496 */ { "unused#496" },
639  /* 497 */ { "unused#497" },
640  /* 498 */ { "unused#498" },
641  /* 499 */ { "unused#499" },
642  /* 500 */ { "unused#500" },
643  /* 501 */ { "unused#501" },
644  /* 502 */ { "unused#502" },
645  /* 503 */ { "unused#503" },
646  /* 504 */ { "unused#504" },
647  /* 505 */ { "unused#505" },
648  /* 506 */ { "unused#506" },
649  /* 507 */ { "unused#507" },
650  /* 508 */ { "unused#508" },
651  /* 509 */ { "unused#509" },
652  /* 510 */ { "unused#510" },
653  /* 511 */ { "unused#511" },
654  /* 512 */ { "unused#512" },
655  /* 513 */ { "unused#513" },
656  /* 514 */ { "unused#514" },
657  /* 515 */ { "unused#515" },
658  /* 516 */ { "unused#516" },
659  /* 517 */ { "unused#517" },
660  /* 518 */ { "unused#518" },
661  /* 519 */ { "unused#519" },
662  /* 520 */ { "unused#520" },
663  /* 521 */ { "unused#521" },
664  /* 522 */ { "unused#522" },
665  /* 523 */ { "unused#523" },
666  /* 524 */ { "unused#524" },
667  /* 525 */ { "unused#525" },
668  /* 526 */ { "unused#526" },
669  /* 527 */ { "unused#527" },
670  /* 528 */ { "unused#528" },
671  /* 529 */ { "unused#529" },
672  /* 530 */ { "unused#530" },
673  /* 531 */ { "unused#531" },
674  /* 532 */ { "unused#532" },
675  /* 533 */ { "unused#533" },
676  /* 534 */ { "unused#534" },
677  /* 535 */ { "unused#535" },
678  /* 536 */ { "unused#536" },
679  /* 537 */ { "unused#537" },
680  /* 538 */ { "unused#538" },
681  /* 539 */ { "unused#539" },
682  /* 540 */ { "unused#540" },
683  /* 541 */ { "unused#541" },
684  /* 542 */ { "unused#542" },
685  /* 543 */ { "unused#543" },
686  /* 544 */ { "unused#544" },
687  /* 545 */ { "unused#545" },
688  /* 546 */ { "unused#546" },
689  /* 547 */ { "unused#547" },
690 };
691 
693  /* 0 */ { "unused#000" },
694  /* 1 */ { "exit", exitFunc },
695  /* 2 */ { "unused#002" },
696  /* 3 */ { "read", readFunc<ArmFreebsd64> },
697  /* 4 */ { "write", writeFunc<ArmFreebsd64> },
698  /* 5 */ { "unused#005" },
699  /* 6 */ { "unused#006" },
700  /* 7 */ { "unused#007" },
701  /* 8 */ { "unused#008" },
702  /* 9 */ { "unused#009" },
703  /* 10 */ { "unused#010" },
704  /* 11 */ { "unused#011" },
705  /* 12 */ { "unused#012" },
706  /* 13 */ { "unused#013" },
707  /* 14 */ { "unused#014" },
708  /* 15 */ { "unused#015" },
709  /* 16 */ { "unused#016" },
710  /* 17 */ { "obreak", brkFunc },
711  /* 18 */ { "unused#018" },
712  /* 19 */ { "unused#019" },
713  /* 20 */ { "unused#020" },
714  /* 21 */ { "unused#021" },
715  /* 22 */ { "unused#022" },
716  /* 23 */ { "unused#023" },
717  /* 24 */ { "unused#024" },
718  /* 25 */ { "unused#025" },
719  /* 26 */ { "unused#026" },
720  /* 27 */ { "unused#027" },
721  /* 28 */ { "unused#028" },
722  /* 29 */ { "unused#029" },
723  /* 30 */ { "unused#030" },
724  /* 31 */ { "unused#031" },
725  /* 32 */ { "unused#032" },
726  /* 33 */ { "unused#033" },
727  /* 34 */ { "unused#034" },
728  /* 35 */ { "unused#035" },
729  /* 36 */ { "unused#036" },
730  /* 37 */ { "unused#037" },
731  /* 38 */ { "unused#038" },
732  /* 39 */ { "unused#039" },
733  /* 40 */ { "unused#040" },
734  /* 41 */ { "unused#041" },
735  /* 42 */ { "unused#042" },
736  /* 43 */ { "unused#043" },
737  /* 44 */ { "unused#044" },
738  /* 45 */ { "unused#045" },
739  /* 46 */ { "unused#046" },
740  /* 47 */ { "unused#047" },
741  /* 48 */ { "unused#048" },
742  /* 49 */ { "unused#049" },
743  /* 50 */ { "unused#050" },
744  /* 51 */ { "unused#051" },
745  /* 52 */ { "unused#052" },
746  /* 53 */ { "unused#053" },
747  /* 54 */ { "ioctl", ioctlFunc<ArmFreebsd64> },
748  /* 55 */ { "unused#055" },
749  /* 56 */ { "unused#056" },
750  /* 57 */ { "unused#057" },
751  /* 58 */ { "readlink", readlinkFunc },
752  /* 59 */ { "unused#059" },
753  /* 60 */ { "unused#060" },
754  /* 61 */ { "unused#061" },
755  /* 62 */ { "unused#062" },
756  /* 63 */ { "unused#063" },
757  /* 64 */ { "unused#064" },
758  /* 65 */ { "unused#065" },
759  /* 66 */ { "unused#066" },
760  /* 67 */ { "unused#067" },
761  /* 68 */ { "unused#068" },
762  /* 69 */ { "unused#069" },
763  /* 70 */ { "unused#070" },
764  /* 71 */ { "unused#071" },
765  /* 72 */ { "unused#072" },
766  /* 73 */ { "unused#073" },
767  /* 74 */ { "unused#074" },
768  /* 75 */ { "unused#075" },
769  /* 76 */ { "unused#076" },
770  /* 77 */ { "unused#077" },
771  /* 78 */ { "unused#078" },
772  /* 79 */ { "unused#079" },
773  /* 80 */ { "unused#080" },
774  /* 81 */ { "unused#081" },
775  /* 82 */ { "unused#082" },
776  /* 83 */ { "unused#083" },
777  /* 84 */ { "unused#084" },
778  /* 85 */ { "unused#085" },
779  /* 86 */ { "unused#086" },
780  /* 87 */ { "unused#087" },
781  /* 88 */ { "unused#088" },
782  /* 89 */ { "unused#089" },
783  /* 90 */ { "unused#090" },
784  /* 91 */ { "unused#091" },
785  /* 92 */ { "unused#092" },
786  /* 93 */ { "unused#093" },
787  /* 94 */ { "unused#094" },
788  /* 95 */ { "unused#095" },
789  /* 96 */ { "unused#096" },
790  /* 97 */ { "unused#097" },
791  /* 98 */ { "unused#098" },
792  /* 99 */ { "unused#099" },
793  /* 100 */ { "unused#100" },
794  /* 101 */ { "unused#101" },
795  /* 102 */ { "unused#102" },
796  /* 103 */ { "unused#103" },
797  /* 104 */ { "unused#104" },
798  /* 105 */ { "unused#105" },
799  /* 106 */ { "unused#106" },
800  /* 107 */ { "unused#107" },
801  /* 108 */ { "unused#108" },
802  /* 109 */ { "unused#109" },
803  /* 110 */ { "unused#110" },
804  /* 111 */ { "unused#111" },
805  /* 112 */ { "unused#112" },
806  /* 113 */ { "unused#113" },
807  /* 114 */ { "unused#114" },
808  /* 115 */ { "unused#115" },
809  /* 116 */ { "unused#116" },
810  /* 117 */ { "getrusage", getrusageFunc<ArmFreebsd64> },
811  /* 118 */ { "unused#118" },
812  /* 119 */ { "unused#119" },
813  /* 120 */ { "unused#120" },
814  /* 121 */ { "unused#121" },
815  /* 122 */ { "unused#122" },
816  /* 123 */ { "unused#123" },
817  /* 124 */ { "unused#124" },
818  /* 125 */ { "unused#125" },
819  /* 126 */ { "unused#126" },
820  /* 127 */ { "unused#127" },
821  /* 128 */ { "unused#128" },
822  /* 129 */ { "unused#129" },
823  /* 130 */ { "unused#130" },
824  /* 131 */ { "unused#131" },
825  /* 132 */ { "unused#132" },
826  /* 133 */ { "unused#133" },
827  /* 134 */ { "unused#134" },
828  /* 135 */ { "unused#135" },
829  /* 136 */ { "unused#136" },
830  /* 137 */ { "unused#137" },
831  /* 138 */ { "unused#138" },
832  /* 139 */ { "unused#139" },
833  /* 140 */ { "unused#140" },
834  /* 141 */ { "unused#141" },
835  /* 142 */ { "unused#142" },
836  /* 143 */ { "unused#143" },
837  /* 144 */ { "unused#144" },
838  /* 145 */ { "unused#145" },
839  /* 146 */ { "unused#146" },
840  /* 147 */ { "unused#147" },
841  /* 148 */ { "unused#148" },
842  /* 149 */ { "unused#149" },
843  /* 150 */ { "unused#150" },
844  /* 151 */ { "unused#151" },
845  /* 152 */ { "unused#152" },
846  /* 153 */ { "unused#153" },
847  /* 154 */ { "unused#154" },
848  /* 155 */ { "unused#155" },
849  /* 156 */ { "unused#156" },
850  /* 157 */ { "unused#157" },
851  /* 158 */ { "unused#158" },
852  /* 159 */ { "unused#159" },
853  /* 160 */ { "unused#160" },
854  /* 161 */ { "unused#161" },
855  /* 162 */ { "unused#162" },
856  /* 163 */ { "unused#163" },
857  /* 164 */ { "unused#164" },
858  /* 165 */ { "unused#165" },
859  /* 166 */ { "unused#166" },
860  /* 167 */ { "unused#167" },
861  /* 168 */ { "unused#168" },
862  /* 169 */ { "unused#169" },
863  /* 170 */ { "unused#170" },
864  /* 171 */ { "unused#171" },
865  /* 172 */ { "unused#172" },
866  /* 173 */ { "unused#173" },
867  /* 174 */ { "unused#174" },
868  /* 175 */ { "unused#175" },
869  /* 176 */ { "unused#176" },
870  /* 177 */ { "unused#177" },
871  /* 178 */ { "unused#178" },
872  /* 179 */ { "unused#179" },
873  /* 180 */ { "unused#180" },
874  /* 181 */ { "unused#181" },
875  /* 182 */ { "unused#182" },
876  /* 183 */ { "unused#183" },
877  /* 184 */ { "unused#184" },
878  /* 185 */ { "unused#185" },
879  /* 186 */ { "unused#186" },
880  /* 187 */ { "unused#187" },
881  /* 188 */ { "unused#188" },
882  /* 189 */ { "fstat", fstatFunc<ArmFreebsd64> },
883  /* 190 */ { "unused#190" },
884  /* 191 */ { "unused#191" },
885  /* 192 */ { "unused#192" },
886  /* 193 */ { "unused#193" },
887  /* 194 */ { "unused#194" },
888  /* 195 */ { "unused#195" },
889  /* 196 */ { "unused#196" },
890  /* 197 */ { "unused#197" },
891  /* 198 */ { "unused#198" },
892  /* 199 */ { "unused#199" },
893  /* 200 */ { "unused#200" },
894  /* 201 */ { "unused#201" },
895 #if !defined ( __GNU_LIBRARY__ )
896  /* 202 */ { "sysctl", sysctlFunc },
897 #else
898  /* 202 */ { "sysctl" },
899 #endif
900  /* 203 */ { "unused#203" },
901  /* 204 */ { "unused#204" },
902  /* 205 */ { "unused#205" },
903  /* 206 */ { "unused#206" },
904  /* 207 */ { "unused#207" },
905  /* 208 */ { "unused#208" },
906  /* 209 */ { "unused#209" },
907  /* 210 */ { "unused#210" },
908  /* 211 */ { "unused#211" },
909  /* 212 */ { "unused#212" },
910  /* 213 */ { "unused#213" },
911  /* 214 */ { "unused#214" },
912  /* 215 */ { "unused#215" },
913  /* 216 */ { "unused#216" },
914  /* 217 */ { "unused#217" },
915  /* 218 */ { "unused#218" },
916  /* 219 */ { "unused#219" },
917  /* 220 */ { "unused#220" },
918  /* 221 */ { "unused#221" },
919  /* 222 */ { "unused#222" },
920  /* 223 */ { "unused#223" },
921  /* 224 */ { "unused#224" },
922  /* 225 */ { "unused#225" },
923  /* 226 */ { "unused#226" },
924  /* 227 */ { "unused#227" },
925  /* 228 */ { "unused#228" },
926  /* 229 */ { "unused#229" },
927  /* 230 */ { "unused#230" },
928  /* 231 */ { "unused#231" },
929  /* 232 */ { "unused#232" },
930  /* 233 */ { "unused#233" },
931  /* 234 */ { "unused#234" },
932  /* 235 */ { "unused#235" },
933  /* 236 */ { "unused#236" },
934  /* 237 */ { "unused#237" },
935  /* 238 */ { "unused#238" },
936  /* 239 */ { "unused#239" },
937  /* 240 */ { "unused#240" },
938  /* 241 */ { "unused#241" },
939  /* 242 */ { "unused#242" },
940  /* 243 */ { "unused#243" },
941  /* 244 */ { "unused#244" },
942  /* 245 */ { "unused#245" },
943  /* 246 */ { "unused#246" },
944  /* 247 */ { "unused#247" },
945  /* 248 */ { "unused#248" },
946  /* 249 */ { "unused#249" },
947  /* 250 */ { "unused#250" },
948  /* 251 */ { "unused#251" },
949  /* 252 */ { "unused#252" },
950  /* 253 */ { "issetugid", issetugidFunc },
951  /* 254 */ { "unused#254" },
952  /* 255 */ { "unused#255" },
953  /* 256 */ { "unused#256" },
954  /* 257 */ { "unused#257" },
955  /* 258 */ { "unused#258" },
956  /* 259 */ { "unused#259" },
957  /* 260 */ { "unused#260" },
958  /* 261 */ { "unused#261" },
959  /* 262 */ { "unused#262" },
960  /* 263 */ { "unused#263" },
961  /* 264 */ { "unused#264" },
962  /* 265 */ { "unused#265" },
963  /* 266 */ { "unused#266" },
964  /* 267 */ { "unused#267" },
965  /* 268 */ { "unused#268" },
966  /* 269 */ { "unused#269" },
967  /* 270 */ { "unused#270" },
968  /* 271 */ { "unused#271" },
969  /* 272 */ { "unused#272" },
970  /* 273 */ { "unused#273" },
971  /* 274 */ { "unused#274" },
972  /* 275 */ { "unused#275" },
973  /* 276 */ { "unused#276" },
974  /* 277 */ { "unused#277" },
975  /* 278 */ { "unused#278" },
976  /* 279 */ { "unused#279" },
977  /* 280 */ { "unused#280" },
978  /* 281 */ { "unused#281" },
979  /* 282 */ { "unused#282" },
980  /* 283 */ { "unused#283" },
981  /* 284 */ { "unused#284" },
982  /* 285 */ { "unused#285" },
983  /* 286 */ { "unused#286" },
984  /* 287 */ { "unused#287" },
985  /* 288 */ { "unused#288" },
986  /* 289 */ { "unused#289" },
987  /* 290 */ { "unused#290" },
988  /* 291 */ { "unused#291" },
989  /* 292 */ { "unused#292" },
990  /* 293 */ { "unused#293" },
991  /* 294 */ { "unused#294" },
992  /* 295 */ { "unused#295" },
993  /* 296 */ { "unused#296" },
994  /* 297 */ { "unused#297" },
995  /* 298 */ { "unused#298" },
996  /* 299 */ { "unused#299" },
997  /* 300 */ { "unused#300" },
998  /* 301 */ { "unused#301" },
999  /* 302 */ { "unused#302" },
1000  /* 303 */ { "unused#303" },
1001  /* 304 */ { "unused#304" },
1002  /* 305 */ { "unused#305" },
1003  /* 306 */ { "unused#306" },
1004  /* 307 */ { "unused#307" },
1005  /* 308 */ { "unused#308" },
1006  /* 309 */ { "unused#309" },
1007  /* 310 */ { "unused#310" },
1008  /* 311 */ { "unused#311" },
1009  /* 312 */ { "unused#312" },
1010  /* 313 */ { "unused#313" },
1011  /* 314 */ { "unused#314" },
1012  /* 315 */ { "unused#315" },
1013  /* 316 */ { "unused#316" },
1014  /* 317 */ { "unused#317" },
1015  /* 318 */ { "unused#318" },
1016  /* 319 */ { "unused#319" },
1017  /* 320 */ { "unused#320" },
1018  /* 321 */ { "unused#321" },
1019  /* 322 */ { "unused#322" },
1020  /* 323 */ { "unused#323" },
1021  /* 324 */ { "unused#324" },
1022  /* 325 */ { "unused#325" },
1023  /* 326 */ { "unused#326" },
1024  /* 327 */ { "unused#327" },
1025  /* 328 */ { "unused#328" },
1026  /* 329 */ { "unused#329" },
1027  /* 330 */ { "unused#330" },
1028  /* 331 */ { "unused#331" },
1029  /* 332 */ { "unused#332" },
1030  /* 333 */ { "unused#333" },
1031  /* 334 */ { "unused#334" },
1032  /* 335 */ { "unused#335" },
1033  /* 336 */ { "unused#336" },
1034  /* 337 */ { "unused#337" },
1035  /* 338 */ { "unused#338" },
1036  /* 339 */ { "unused#339" },
1037  /* 340 */ { "unused#340" },
1038  /* 341 */ { "unused#341" },
1039  /* 342 */ { "unused#342" },
1040  /* 343 */ { "unused#343" },
1041  /* 344 */ { "unused#344" },
1042  /* 345 */ { "unused#345" },
1043  /* 346 */ { "unused#346" },
1044  /* 347 */ { "unused#347" },
1045  /* 348 */ { "unused#348" },
1046  /* 349 */ { "unused#349" },
1047  /* 350 */ { "unused#350" },
1048  /* 351 */ { "unused#351" },
1049  /* 352 */ { "unused#352" },
1050  /* 353 */ { "unused#353" },
1051  /* 354 */ { "unused#354" },
1052  /* 355 */ { "unused#355" },
1053  /* 356 */ { "unused#356" },
1054  /* 357 */ { "unused#357" },
1055  /* 358 */ { "unused#358" },
1056  /* 359 */ { "unused#359" },
1057  /* 360 */ { "unused#360" },
1058  /* 361 */ { "unused#361" },
1059  /* 362 */ { "unused#362" },
1060  /* 363 */ { "unused#363" },
1061  /* 364 */ { "unused#364" },
1062  /* 365 */ { "unused#365" },
1063  /* 366 */ { "unused#366" },
1064  /* 367 */ { "unused#367" },
1065  /* 368 */ { "unused#368" },
1066  /* 369 */ { "unused#369" },
1067  /* 370 */ { "unused#370" },
1068  /* 371 */ { "unused#371" },
1069  /* 372 */ { "unused#372" },
1070  /* 373 */ { "unused#373" },
1071  /* 374 */ { "unused#374" },
1072  /* 375 */ { "unused#375" },
1073  /* 376 */ { "unused#376" },
1074  /* 377 */ { "unused#377" },
1075  /* 378 */ { "unused#378" },
1076  /* 379 */ { "unused#379" },
1077  /* 380 */ { "unused#380" },
1078  /* 381 */ { "unused#381" },
1079  /* 382 */ { "unused#382" },
1080  /* 383 */ { "unused#383" },
1081  /* 384 */ { "unused#384" },
1082  /* 385 */ { "unused#385" },
1083  /* 386 */ { "unused#386" },
1084  /* 387 */ { "unused#387" },
1085  /* 388 */ { "unused#388" },
1086  /* 389 */ { "unused#389" },
1087  /* 390 */ { "unused#390" },
1088  /* 391 */ { "unused#391" },
1089  /* 392 */ { "unused#392" },
1090  /* 393 */ { "unused#393" },
1091  /* 394 */ { "unused#394" },
1092  /* 395 */ { "unused#395" },
1093  /* 396 */ { "unused#396" },
1094  /* 397 */ { "unused#397" },
1095  /* 398 */ { "unused#398" },
1096  /* 399 */ { "unused#399" },
1097  /* 400 */ { "unused#400" },
1098  /* 401 */ { "unused#401" },
1099  /* 402 */ { "unused#402" },
1100  /* 403 */ { "unused#403" },
1101  /* 404 */ { "unused#404" },
1102  /* 405 */ { "unused#405" },
1103  /* 406 */ { "unused#406" },
1104  /* 407 */ { "unused#407" },
1105  /* 408 */ { "unused#408" },
1106  /* 409 */ { "unused#409" },
1107  /* 410 */ { "unused#410" },
1108  /* 411 */ { "unused#411" },
1109  /* 412 */ { "unused#412" },
1110  /* 413 */ { "unused#413" },
1111  /* 414 */ { "unused#414" },
1112  /* 415 */ { "unused#415" },
1113  /* 416 */ { "unused#416" },
1114  /* 417 */ { "unused#417" },
1115  /* 418 */ { "unused#418" },
1116  /* 419 */ { "unused#419" },
1117  /* 420 */ { "unused#420" },
1118  /* 421 */ { "unused#421" },
1119  /* 422 */ { "unused#422" },
1120  /* 423 */ { "unused#423" },
1121  /* 424 */ { "unused#424" },
1122  /* 425 */ { "unused#425" },
1123  /* 426 */ { "unused#426" },
1124  /* 427 */ { "unused#427" },
1125  /* 428 */ { "unused#428" },
1126  /* 429 */ { "unused#429" },
1127  /* 430 */ { "unused#430" },
1128  /* 431 */ { "unused#431" },
1129  /* 432 */ { "unused#432" },
1130  /* 433 */ { "unused#433" },
1131  /* 434 */ { "unused#434" },
1132  /* 435 */ { "unused#435" },
1133  /* 436 */ { "unused#436" },
1134  /* 437 */ { "unused#437" },
1135  /* 438 */ { "unused#438" },
1136  /* 439 */ { "unused#439" },
1137  /* 440 */ { "unused#440" },
1138  /* 441 */ { "unused#441" },
1139  /* 442 */ { "unused#442" },
1140  /* 443 */ { "unused#443" },
1141  /* 444 */ { "unused#444" },
1142  /* 445 */ { "unused#445" },
1143  /* 446 */ { "unused#446" },
1144  /* 447 */ { "unused#447" },
1145  /* 448 */ { "unused#448" },
1146  /* 449 */ { "unused#449" },
1147  /* 450 */ { "unused#450" },
1148  /* 451 */ { "unused#451" },
1149  /* 452 */ { "unused#452" },
1150  /* 453 */ { "unused#453" },
1151  /* 454 */ { "unused#454" },
1152  /* 455 */ { "unused#455" },
1153  /* 456 */ { "unused#456" },
1154  /* 457 */ { "unused#457" },
1155  /* 458 */ { "unused#458" },
1156  /* 459 */ { "unused#459" },
1157  /* 460 */ { "unused#460" },
1158  /* 461 */ { "unused#461" },
1159  /* 462 */ { "unused#462" },
1160  /* 463 */ { "unused#463" },
1161  /* 464 */ { "unused#464" },
1162  /* 465 */ { "unused#465" },
1163  /* 466 */ { "unused#466" },
1164  /* 467 */ { "unused#467" },
1165  /* 468 */ { "unused#468" },
1166  /* 469 */ { "unused#469" },
1167  /* 470 */ { "unused#470" },
1168  /* 471 */ { "unused#471" },
1169  /* 472 */ { "unused#472" },
1170  /* 473 */ { "unused#473" },
1171  /* 474 */ { "unused#474" },
1172  /* 475 */ { "unused#475" },
1173  /* 476 */ { "unused#476" },
1174  /* 477 */ { "mmap", mmapFunc<ArmFreebsd64> },
1175  /* 478 */ { "unused#478" },
1176  /* 479 */ { "unused#479" },
1177  /* 480 */ { "unused#480" },
1178  /* 481 */ { "unused#481" },
1179  /* 482 */ { "unused#482" },
1180  /* 483 */ { "unused#483" },
1181  /* 484 */ { "unused#484" },
1182  /* 485 */ { "unused#485" },
1183  /* 486 */ { "unused#486" },
1184  /* 487 */ { "unused#487" },
1185  /* 488 */ { "unused#488" },
1186  /* 489 */ { "unused#489" },
1187  /* 490 */ { "unused#490" },
1188  /* 491 */ { "unused#491" },
1189  /* 492 */ { "unused#492" },
1190  /* 493 */ { "unused#493" },
1191  /* 494 */ { "unused#494" },
1192  /* 495 */ { "unused#495" },
1193  /* 496 */ { "unused#496" },
1194  /* 497 */ { "unused#497" },
1195  /* 498 */ { "unused#498" },
1196  /* 499 */ { "unused#499" },
1197  /* 500 */ { "unused#500" },
1198  /* 501 */ { "unused#501" },
1199  /* 502 */ { "unused#502" },
1200  /* 503 */ { "unused#503" },
1201  /* 504 */ { "unused#504" },
1202  /* 505 */ { "unused#505" },
1203  /* 506 */ { "unused#506" },
1204  /* 507 */ { "unused#507" },
1205  /* 508 */ { "unused#508" },
1206  /* 509 */ { "unused#509" },
1207  /* 510 */ { "unused#510" },
1208  /* 511 */ { "unused#511" },
1209  /* 512 */ { "unused#512" },
1210  /* 513 */ { "unused#513" },
1211  /* 514 */ { "unused#514" },
1212  /* 515 */ { "unused#515" },
1213  /* 516 */ { "unused#516" },
1214  /* 517 */ { "unused#517" },
1215  /* 518 */ { "unused#518" },
1216  /* 519 */ { "unused#519" },
1217  /* 520 */ { "unused#520" },
1218  /* 521 */ { "unused#521" },
1219  /* 522 */ { "unused#522" },
1220  /* 523 */ { "unused#523" },
1221  /* 524 */ { "unused#524" },
1222  /* 525 */ { "unused#525" },
1223  /* 526 */ { "unused#526" },
1224  /* 527 */ { "unused#527" },
1225  /* 528 */ { "unused#528" },
1226  /* 529 */ { "unused#529" },
1227  /* 530 */ { "unused#530" },
1228  /* 531 */ { "unused#531" },
1229  /* 532 */ { "unused#532" },
1230  /* 533 */ { "unused#533" },
1231  /* 534 */ { "unused#534" },
1232  /* 535 */ { "unused#535" },
1233  /* 536 */ { "unused#536" },
1234  /* 537 */ { "unused#537" },
1235  /* 538 */ { "unused#538" },
1236  /* 539 */ { "unused#539" },
1237  /* 540 */ { "unused#540" },
1238  /* 541 */ { "unused#541" },
1239  /* 542 */ { "unused#542" },
1240  /* 543 */ { "unused#543" },
1241  /* 544 */ { "unused#544" },
1242  /* 545 */ { "unused#545" },
1243  /* 546 */ { "unused#546" },
1244  /* 547 */ { "unused#547" },
1245 };
1246 
1248  ObjectFile *objFile, ObjectFile::Arch _arch)
1249  : ArmProcess32(params, objFile, _arch)
1250 {
1251  SyscallTable table;
1252 
1253  table.descs = syscallDescs32;
1254  table.size = sizeof(syscallDescs32) / sizeof(SyscallDesc);
1255  table.base = 0;
1256  syscallTables.push_back(table);
1257 }
1258 
1261  : ArmProcess64(params, objFile, _arch)
1262 {
1263  SyscallTable table;
1264 
1265  table.descs = syscallDescs64;
1266  table.size = sizeof(syscallDescs64) / sizeof(SyscallDesc);
1267  table.base = 0;
1268  syscallTables.push_back(table);
1269 }
1270 
1271 SyscallDesc*
1273 {
1274 
1275  for (unsigned i = 0; i < syscallTables.size(); i++) {
1276  SyscallDesc *desc = syscallTables[i].getDesc(callnum);
1277  if (desc)
1278  return desc;
1279  }
1280  return NULL;
1281 }
1282 
1283 SyscallDesc *
1285 {
1286 
1287  int offset = callnum - base;
1288  if (offset < 0 || offset >= size)
1289  return NULL;
1290  return &descs[offset];
1291 }
1292 
1293 SyscallDesc*
1295 {
1296 
1297  return getFreebsdDesc(callnum);
1298 }
1299 
1300 SyscallDesc*
1302 {
1303 
1304  return getFreebsdDesc(callnum);
1305 }
1306 
1307 void
1309 {
1311  // The 32 bit equivalent of the comm page would be set up here.
1312 }
1313 
1314 void
1316 {
1318  // The 64 bit equivalent of the comm page would be set up here.
1319 }
1320 
1321 void
1323 {
1324  doSyscall(tc->readIntReg(INTREG_R7), tc, fault);
1325 }
1326 
1327 void
1329 {
1330  doSyscall(tc->readIntReg(INTREG_X8), tc, fault);
1331 }
void syscall(ThreadContext *tc, Fault *fault) override
Definition: process.cc:1328
ObjectFile * objFile
Definition: process.hh:217
Bitfield< 30, 0 > index
Arch getArch() const
Definition: object_file.hh:124
Bitfield< 7 > i
virtual RegVal readIntReg(RegIndex reg_idx) const =0
void initState() override
initState() is called on each SimObject when not restoring from a checkpoint.
Definition: process.cc:103
bool copyIn(PortProxy &memproxy)
copy data into simulator space (read from target memory)
virtual PortProxy & getVirtProxy()=0
void initState() override
initState() is called on each SimObject when not restoring from a checkpoint.
Definition: process.cc:122
virtual Process * getProcessPtr()=0
static SyscallDescABI< DefaultSyscallABI > syscallDescs32[]
Definition: process.cc:141
A process with emulated Arm/Freebsd syscalls.
Definition: process.hh:58
Bitfield< 23, 0 > offset
Definition: types.hh:154
Overload hash function for BasicBlockRange type.
Definition: vec_reg.hh:586
Definition: ccregs.hh:42
void doSyscall(int64_t callnum, ThreadContext *tc, Fault *fault)
Definition: process.cc:430
ThreadContext is the external interface to all thread state for anything outside of the CPU...
static SyscallDescABI< DefaultSyscallABI > syscallDescs64[]
Definition: process.cc:692
void syscall(ThreadContext *tc, Fault *fault) override
Definition: process.cc:1322
static SyscallReturn issetugidFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
Definition: process.cc:90
SyscallDesc * getDesc(int callnum) override
Definition: process.cc:1301
std::vector< SyscallTable > syscallTables
Definition: process.hh:54
void initState() override
initState() is called on each SimObject when not restoring from a checkpoint.
Definition: process.cc:1315
Bitfield< 51, 12 > base
Definition: pagetable.hh:142
SyscallReturn readlinkFunc(SyscallDesc *desc, int num, ThreadContext *tc, Addr pathname, Addr buf_ptr, size_t bufsiz)
Target readlink() handler.
virtual RegVal getSyscallArg(ThreadContext *tc, int &i)=0
void * bufferPtr()
Return a pointer to the internal simulator-space buffer.
SyscallReturn brkFunc(SyscallDesc *desc, int num, ThreadContext *tc, Addr new_brk)
Target brk() handler: set brk address.
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:142
This class provides the wrapper interface for the system call implementations which are defined in th...
Definition: syscall_desc.hh:69
This file defines objects used to emulate syscalls from the target application on the host machine...
A process with emulated Arm/Freebsd syscalls.
Definition: process.hh:78
ArmFreebsdProcess64(ProcessParams *params, ObjectFile *objFile, ObjectFile::Arch _arch)
Definition: process.cc:1259
bool copyOut(PortProxy &memproxy)
copy data out of simulator space (write to target memory)
OpSys getOpSys() const
Definition: object_file.hh:125
void initState() override
initState() is called on each SimObject when not restoring from a checkpoint.
Definition: process.cc:1308
SyscallDesc * getFreebsdDesc(int callnum)
Definition: process.cc:1272
BufferArg represents an untyped buffer in target user space that is passed by reference to an (emulat...
SyscallDesc * getDesc(int callnum) override
Definition: process.cc:1294
This class represents the return value from an emulated system call, including any errno setting...
Each instance of a Loader subclass will have a chance to try to load an object file when tryLoaders i...
Definition: process.hh:191
std::shared_ptr< FaultBase > Fault
Definition: types.hh:240
ArmFreebsdProcess32(ProcessParams *params, ObjectFile *objFile, ObjectFile::Arch _arch)
Definition: process.cc:1247
SyscallDesc * getDesc(int offset) const
Definition: process.cc:1284
static SyscallReturn sysctlFunc(SyscallDesc *desc, int callnum, ThreadContext *tc)
Definition: process.cc:97
SyscallReturn exitFunc(SyscallDesc *desc, int callnum, ThreadContext *tc, int status)
Target exit() handler: terminate current context.

Generated on Fri Feb 28 2020 16:26:56 for gem5 by doxygen 1.8.13