| /* |
| * Copyright (c) 2015 Ruslan Bukin <br@bsdpad.com> |
| * All rights reserved. |
| * |
| * This software was developed by the University of Cambridge Computer |
| * Laboratory as part of the CTSRD Project, with support from the UK Higher |
| * Education Innovation Fund (HEIF). |
| * |
| * Redistribution and use in source and binary forms, with or without |
| * modification, are permitted provided that the following conditions are |
| * met: redistributions of source code must retain the above copyright |
| * notice, this list of conditions and the following disclaimer; |
| * redistributions in binary form must reproduce the above copyright |
| * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution; |
| * neither the name of the copyright holders nor the names of its |
| * contributors may be used to endorse or promote products derived from |
| * this software without specific prior written permission. |
| * |
| * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS |
| * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT |
| * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR |
| * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT |
| * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, |
| * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT |
| * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE |
| * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| */ |
| |
| #include "arch/arm/freebsd/process.hh" |
| |
| #include <sys/mman.h> |
| #include <sys/param.h> |
| #include <sys/syscall.h> |
| #if !defined ( __GNU_LIBRARY__ ) |
| #include <sys/sysctl.h> |
| #endif |
| #include <sys/types.h> |
| #include <utime.h> |
| |
| #include "arch/arm/freebsd/freebsd.hh" |
| #include "arch/arm/isa_traits.hh" |
| #include "base/loader/object_file.hh" |
| #include "base/trace.hh" |
| #include "cpu/thread_context.hh" |
| #include "kern/freebsd/freebsd.hh" |
| #include "sim/process.hh" |
| #include "sim/syscall_desc.hh" |
| #include "sim/syscall_emul.hh" |
| #include "sim/system.hh" |
| |
| using namespace std; |
| using namespace ArmISA; |
| |
| namespace |
| { |
| |
| class ArmFreebsdObjectFileLoader : public Process::Loader |
| { |
| public: |
| Process * |
| load(ProcessParams *params, ObjectFile *obj_file) override |
| { |
| auto arch = obj_file->getArch(); |
| auto opsys = obj_file->getOpSys(); |
| |
| if (arch != ObjectFile::Arm && arch != ObjectFile::Thumb && |
| arch != ObjectFile::Arm64) { |
| return nullptr; |
| } |
| |
| if (opsys != ObjectFile::FreeBSD) |
| return nullptr; |
| |
| if (arch == ObjectFile::Arm64) |
| return new ArmFreebsdProcess64(params, obj_file, arch); |
| else |
| return new ArmFreebsdProcess32(params, obj_file, arch); |
| } |
| }; |
| |
| ArmFreebsdObjectFileLoader loader; |
| |
| } // anonymous namespace |
| |
| static SyscallReturn |
| issetugidFunc(SyscallDesc *desc, int callnum, ThreadContext *tc) |
| { |
| return 0; |
| } |
| |
| #if !defined ( __GNU_LIBRARY__ ) |
| static SyscallReturn |
| sysctlFunc(SyscallDesc *desc, int callnum, ThreadContext *tc) |
| { |
| int index = 0; |
| uint64_t ret; |
| |
| auto process = tc->getProcessPtr(); |
| Addr namep = process->getSyscallArg(tc, index); |
| size_t namelen = process->getSyscallArg(tc, index); |
| Addr oldp = process->getSyscallArg(tc, index); |
| Addr oldlenp = process->getSyscallArg(tc, index); |
| Addr newp = process->getSyscallArg(tc, index); |
| size_t newlen = process->getSyscallArg(tc, index); |
| |
| BufferArg buf(namep, sizeof(size_t)); |
| BufferArg buf2(oldp, sizeof(size_t)); |
| BufferArg buf3(oldlenp, sizeof(size_t)); |
| BufferArg buf4(newp, sizeof(size_t)); |
| |
| buf.copyIn(tc->getVirtProxy()); |
| buf2.copyIn(tc->getVirtProxy()); |
| buf3.copyIn(tc->getVirtProxy()); |
| |
| void *hnewp = NULL; |
| if (newp) { |
| buf4.copyIn(tc->getVirtProxy()); |
| hnewp = (void *)buf4.bufferPtr(); |
| } |
| |
| uint32_t *hnamep = (uint32_t *)buf.bufferPtr(); |
| void *holdp = (void *)buf2.bufferPtr(); |
| size_t *holdlenp = (size_t *)buf3.bufferPtr(); |
| |
| ret = sysctl((int *)hnamep, namelen, holdp, holdlenp, hnewp, newlen); |
| |
| buf.copyOut(tc->getVirtProxy()); |
| buf2.copyOut(tc->getVirtProxy()); |
| buf3.copyOut(tc->getVirtProxy()); |
| if (newp) |
| buf4.copyOut(tc->getVirtProxy()); |
| |
| return (ret); |
| } |
| #endif |
| |
| static SyscallDescABI<DefaultSyscallABI> syscallDescs32[] = { |
| /* 0 */ { "unused#000" }, |
| /* 1 */ { "unused#001" }, |
| /* 2 */ { "unused#002" }, |
| /* 3 */ { "unused#003" }, |
| /* 4 */ { "unused#004" }, |
| /* 5 */ { "unused#005" }, |
| /* 6 */ { "unused#006" }, |
| /* 7 */ { "unused#007" }, |
| /* 8 */ { "unused#008" }, |
| /* 9 */ { "unused#009" }, |
| /* 10 */ { "unused#010" }, |
| /* 11 */ { "unused#011" }, |
| /* 12 */ { "unused#012" }, |
| /* 13 */ { "unused#013" }, |
| /* 14 */ { "unused#014" }, |
| /* 15 */ { "unused#015" }, |
| /* 16 */ { "unused#016" }, |
| /* 17 */ { "unused#017" }, |
| /* 18 */ { "unused#018" }, |
| /* 19 */ { "unused#019" }, |
| /* 20 */ { "unused#020" }, |
| /* 21 */ { "unused#021" }, |
| /* 22 */ { "unused#022" }, |
| /* 23 */ { "unused#023" }, |
| /* 24 */ { "unused#024" }, |
| /* 25 */ { "unused#025" }, |
| /* 26 */ { "unused#026" }, |
| /* 27 */ { "unused#027" }, |
| /* 28 */ { "unused#028" }, |
| /* 29 */ { "unused#029" }, |
| /* 30 */ { "unused#030" }, |
| /* 31 */ { "unused#031" }, |
| /* 32 */ { "unused#032" }, |
| /* 33 */ { "unused#033" }, |
| /* 34 */ { "unused#034" }, |
| /* 35 */ { "unused#035" }, |
| /* 36 */ { "unused#036" }, |
| /* 37 */ { "unused#037" }, |
| /* 38 */ { "unused#038" }, |
| /* 39 */ { "unused#039" }, |
| /* 40 */ { "unused#040" }, |
| /* 41 */ { "unused#041" }, |
| /* 42 */ { "unused#042" }, |
| /* 43 */ { "unused#043" }, |
| /* 44 */ { "unused#044" }, |
| /* 45 */ { "unused#045" }, |
| /* 46 */ { "unused#046" }, |
| /* 47 */ { "unused#047" }, |
| /* 48 */ { "unused#048" }, |
| /* 49 */ { "unused#049" }, |
| /* 50 */ { "unused#050" }, |
| /* 51 */ { "unused#051" }, |
| /* 52 */ { "unused#052" }, |
| /* 53 */ { "unused#053" }, |
| /* 54 */ { "unused#054" }, |
| /* 55 */ { "unused#055" }, |
| /* 56 */ { "unused#056" }, |
| /* 57 */ { "unused#057" }, |
| /* 58 */ { "unused#058" }, |
| /* 59 */ { "unused#059" }, |
| /* 60 */ { "unused#060" }, |
| /* 61 */ { "unused#061" }, |
| /* 62 */ { "unused#062" }, |
| /* 63 */ { "unused#063" }, |
| /* 64 */ { "unused#064" }, |
| /* 65 */ { "unused#065" }, |
| /* 66 */ { "unused#066" }, |
| /* 67 */ { "unused#067" }, |
| /* 68 */ { "unused#068" }, |
| /* 69 */ { "unused#069" }, |
| /* 70 */ { "unused#070" }, |
| /* 71 */ { "unused#071" }, |
| /* 72 */ { "unused#072" }, |
| /* 73 */ { "unused#073" }, |
| /* 74 */ { "unused#074" }, |
| /* 75 */ { "unused#075" }, |
| /* 76 */ { "unused#076" }, |
| /* 77 */ { "unused#077" }, |
| /* 78 */ { "unused#078" }, |
| /* 79 */ { "unused#079" }, |
| /* 80 */ { "unused#080" }, |
| /* 81 */ { "unused#081" }, |
| /* 82 */ { "unused#082" }, |
| /* 83 */ { "unused#083" }, |
| /* 84 */ { "unused#084" }, |
| /* 85 */ { "unused#085" }, |
| /* 86 */ { "unused#086" }, |
| /* 87 */ { "unused#087" }, |
| /* 88 */ { "unused#088" }, |
| /* 89 */ { "unused#089" }, |
| /* 90 */ { "unused#090" }, |
| /* 91 */ { "unused#091" }, |
| /* 92 */ { "unused#092" }, |
| /* 93 */ { "unused#093" }, |
| /* 94 */ { "unused#094" }, |
| /* 95 */ { "unused#095" }, |
| /* 96 */ { "unused#096" }, |
| /* 97 */ { "unused#097" }, |
| /* 98 */ { "unused#098" }, |
| /* 99 */ { "unused#099" }, |
| /* 100 */ { "unused#100" }, |
| /* 101 */ { "unused#101" }, |
| /* 102 */ { "unused#102" }, |
| /* 103 */ { "unused#103" }, |
| /* 104 */ { "unused#104" }, |
| /* 105 */ { "unused#105" }, |
| /* 106 */ { "unused#106" }, |
| /* 107 */ { "unused#107" }, |
| /* 108 */ { "unused#108" }, |
| /* 109 */ { "unused#109" }, |
| /* 110 */ { "unused#110" }, |
| /* 111 */ { "unused#111" }, |
| /* 112 */ { "unused#112" }, |
| /* 113 */ { "unused#113" }, |
| /* 114 */ { "unused#114" }, |
| /* 115 */ { "unused#115" }, |
| /* 116 */ { "unused#116" }, |
| /* 117 */ { "unused#117" }, |
| /* 118 */ { "unused#118" }, |
| /* 119 */ { "unused#119" }, |
| /* 120 */ { "unused#120" }, |
| /* 121 */ { "unused#121" }, |
| /* 122 */ { "unused#122" }, |
| /* 123 */ { "unused#123" }, |
| /* 124 */ { "unused#124" }, |
| /* 125 */ { "unused#125" }, |
| /* 126 */ { "unused#126" }, |
| /* 127 */ { "unused#127" }, |
| /* 128 */ { "unused#128" }, |
| /* 129 */ { "unused#129" }, |
| /* 130 */ { "unused#130" }, |
| /* 131 */ { "unused#131" }, |
| /* 132 */ { "unused#132" }, |
| /* 133 */ { "unused#133" }, |
| /* 134 */ { "unused#134" }, |
| /* 135 */ { "unused#135" }, |
| /* 136 */ { "unused#136" }, |
| /* 137 */ { "unused#137" }, |
| /* 138 */ { "unused#138" }, |
| /* 139 */ { "unused#139" }, |
| /* 140 */ { "unused#140" }, |
| /* 141 */ { "unused#141" }, |
| /* 142 */ { "unused#142" }, |
| /* 143 */ { "unused#143" }, |
| /* 144 */ { "unused#144" }, |
| /* 145 */ { "unused#145" }, |
| /* 146 */ { "unused#146" }, |
| /* 147 */ { "unused#147" }, |
| /* 148 */ { "unused#148" }, |
| /* 149 */ { "unused#149" }, |
| /* 150 */ { "unused#150" }, |
| /* 151 */ { "unused#151" }, |
| /* 152 */ { "unused#152" }, |
| /* 153 */ { "unused#153" }, |
| /* 154 */ { "unused#154" }, |
| /* 155 */ { "unused#155" }, |
| /* 156 */ { "unused#156" }, |
| /* 157 */ { "unused#157" }, |
| /* 158 */ { "unused#158" }, |
| /* 159 */ { "unused#159" }, |
| /* 160 */ { "unused#160" }, |
| /* 161 */ { "unused#161" }, |
| /* 162 */ { "unused#162" }, |
| /* 163 */ { "unused#163" }, |
| /* 164 */ { "unused#164" }, |
| /* 165 */ { "unused#165" }, |
| /* 166 */ { "unused#166" }, |
| /* 167 */ { "unused#167" }, |
| /* 168 */ { "unused#168" }, |
| /* 169 */ { "unused#169" }, |
| /* 170 */ { "unused#170" }, |
| /* 171 */ { "unused#171" }, |
| /* 172 */ { "unused#172" }, |
| /* 173 */ { "unused#173" }, |
| /* 174 */ { "unused#174" }, |
| /* 175 */ { "unused#175" }, |
| /* 176 */ { "unused#176" }, |
| /* 177 */ { "unused#177" }, |
| /* 178 */ { "unused#178" }, |
| /* 179 */ { "unused#179" }, |
| /* 180 */ { "unused#180" }, |
| /* 181 */ { "unused#181" }, |
| /* 182 */ { "unused#182" }, |
| /* 183 */ { "unused#183" }, |
| /* 184 */ { "unused#184" }, |
| /* 185 */ { "unused#185" }, |
| /* 186 */ { "unused#186" }, |
| /* 187 */ { "unused#187" }, |
| /* 188 */ { "unused#188" }, |
| /* 189 */ { "unused#189" }, |
| /* 190 */ { "unused#190" }, |
| /* 191 */ { "unused#191" }, |
| /* 192 */ { "unused#192" }, |
| /* 193 */ { "unused#193" }, |
| /* 194 */ { "unused#194" }, |
| /* 195 */ { "unused#195" }, |
| /* 196 */ { "unused#196" }, |
| /* 197 */ { "unused#197" }, |
| /* 198 */ { "unused#198" }, |
| /* 199 */ { "unused#199" }, |
| /* 200 */ { "unused#200" }, |
| /* 201 */ { "unused#201" }, |
| /* 202 */ { "unused#202" }, |
| /* 203 */ { "unused#203" }, |
| /* 204 */ { "unused#204" }, |
| /* 205 */ { "unused#205" }, |
| /* 206 */ { "unused#206" }, |
| /* 207 */ { "unused#207" }, |
| /* 208 */ { "unused#208" }, |
| /* 209 */ { "unused#209" }, |
| /* 210 */ { "unused#210" }, |
| /* 211 */ { "unused#211" }, |
| /* 212 */ { "unused#212" }, |
| /* 213 */ { "unused#213" }, |
| /* 214 */ { "unused#214" }, |
| /* 215 */ { "unused#215" }, |
| /* 216 */ { "unused#216" }, |
| /* 217 */ { "unused#217" }, |
| /* 218 */ { "unused#218" }, |
| /* 219 */ { "unused#219" }, |
| /* 220 */ { "unused#220" }, |
| /* 221 */ { "unused#221" }, |
| /* 222 */ { "unused#222" }, |
| /* 223 */ { "unused#223" }, |
| /* 224 */ { "unused#224" }, |
| /* 225 */ { "unused#225" }, |
| /* 226 */ { "unused#226" }, |
| /* 227 */ { "unused#227" }, |
| /* 228 */ { "unused#228" }, |
| /* 229 */ { "unused#229" }, |
| /* 230 */ { "unused#230" }, |
| /* 231 */ { "unused#231" }, |
| /* 232 */ { "unused#232" }, |
| /* 233 */ { "unused#233" }, |
| /* 234 */ { "unused#234" }, |
| /* 235 */ { "unused#235" }, |
| /* 236 */ { "unused#236" }, |
| /* 237 */ { "unused#237" }, |
| /* 238 */ { "unused#238" }, |
| /* 239 */ { "unused#239" }, |
| /* 240 */ { "unused#240" }, |
| /* 241 */ { "unused#241" }, |
| /* 242 */ { "unused#242" }, |
| /* 243 */ { "unused#243" }, |
| /* 244 */ { "unused#244" }, |
| /* 245 */ { "unused#245" }, |
| /* 246 */ { "unused#246" }, |
| /* 247 */ { "unused#247" }, |
| /* 248 */ { "unused#248" }, |
| /* 249 */ { "unused#249" }, |
| /* 250 */ { "unused#250" }, |
| /* 251 */ { "unused#251" }, |
| /* 252 */ { "unused#252" }, |
| /* 253 */ { "unused#253" }, |
| /* 254 */ { "unused#254" }, |
| /* 255 */ { "unused#255" }, |
| /* 256 */ { "unused#256" }, |
| /* 257 */ { "unused#257" }, |
| /* 258 */ { "unused#258" }, |
| /* 259 */ { "unused#259" }, |
| /* 260 */ { "unused#260" }, |
| /* 261 */ { "unused#261" }, |
| /* 262 */ { "unused#262" }, |
| /* 263 */ { "unused#263" }, |
| /* 264 */ { "unused#264" }, |
| /* 265 */ { "unused#265" }, |
| /* 266 */ { "unused#266" }, |
| /* 267 */ { "unused#267" }, |
| /* 268 */ { "unused#268" }, |
| /* 269 */ { "unused#269" }, |
| /* 270 */ { "unused#270" }, |
| /* 271 */ { "unused#271" }, |
| /* 272 */ { "unused#272" }, |
| /* 273 */ { "unused#273" }, |
| /* 274 */ { "unused#274" }, |
| /* 275 */ { "unused#275" }, |
| /* 276 */ { "unused#276" }, |
| /* 277 */ { "unused#277" }, |
| /* 278 */ { "unused#278" }, |
| /* 279 */ { "unused#279" }, |
| /* 280 */ { "unused#280" }, |
| /* 281 */ { "unused#281" }, |
| /* 282 */ { "unused#282" }, |
| /* 283 */ { "unused#283" }, |
| /* 284 */ { "unused#284" }, |
| /* 285 */ { "unused#285" }, |
| /* 286 */ { "unused#286" }, |
| /* 287 */ { "unused#287" }, |
| /* 288 */ { "unused#288" }, |
| /* 289 */ { "unused#289" }, |
| /* 290 */ { "unused#290" }, |
| /* 291 */ { "unused#291" }, |
| /* 292 */ { "unused#292" }, |
| /* 293 */ { "unused#293" }, |
| /* 294 */ { "unused#294" }, |
| /* 295 */ { "unused#295" }, |
| /* 296 */ { "unused#296" }, |
| /* 297 */ { "unused#297" }, |
| /* 298 */ { "unused#298" }, |
| /* 299 */ { "unused#299" }, |
| /* 300 */ { "unused#300" }, |
| /* 301 */ { "unused#301" }, |
| /* 302 */ { "unused#302" }, |
| /* 303 */ { "unused#303" }, |
| /* 304 */ { "unused#304" }, |
| /* 305 */ { "unused#305" }, |
| /* 306 */ { "unused#306" }, |
| /* 307 */ { "unused#307" }, |
| /* 308 */ { "unused#308" }, |
| /* 309 */ { "unused#309" }, |
| /* 310 */ { "unused#310" }, |
| /* 311 */ { "unused#311" }, |
| /* 312 */ { "unused#312" }, |
| /* 313 */ { "unused#313" }, |
| /* 314 */ { "unused#314" }, |
| /* 315 */ { "unused#315" }, |
| /* 316 */ { "unused#316" }, |
| /* 317 */ { "unused#317" }, |
| /* 318 */ { "unused#318" }, |
| /* 319 */ { "unused#319" }, |
| /* 320 */ { "unused#320" }, |
| /* 321 */ { "unused#321" }, |
| /* 322 */ { "unused#322" }, |
| /* 323 */ { "unused#323" }, |
| /* 324 */ { "unused#324" }, |
| /* 325 */ { "unused#325" }, |
| /* 326 */ { "unused#326" }, |
| /* 327 */ { "unused#327" }, |
| /* 328 */ { "unused#328" }, |
| /* 329 */ { "unused#329" }, |
| /* 330 */ { "unused#330" }, |
| /* 331 */ { "unused#331" }, |
| /* 332 */ { "unused#332" }, |
| /* 333 */ { "unused#333" }, |
| /* 334 */ { "unused#334" }, |
| /* 335 */ { "unused#335" }, |
| /* 336 */ { "unused#336" }, |
| /* 337 */ { "unused#337" }, |
| /* 338 */ { "unused#338" }, |
| /* 339 */ { "unused#339" }, |
| /* 340 */ { "unused#340" }, |
| /* 341 */ { "unused#341" }, |
| /* 342 */ { "unused#342" }, |
| /* 343 */ { "unused#343" }, |
| /* 344 */ { "unused#344" }, |
| /* 345 */ { "unused#345" }, |
| /* 346 */ { "unused#346" }, |
| /* 347 */ { "unused#347" }, |
| /* 348 */ { "unused#348" }, |
| /* 349 */ { "unused#349" }, |
| /* 350 */ { "unused#350" }, |
| /* 351 */ { "unused#351" }, |
| /* 352 */ { "unused#352" }, |
| /* 353 */ { "unused#353" }, |
| /* 354 */ { "unused#354" }, |
| /* 355 */ { "unused#355" }, |
| /* 356 */ { "unused#356" }, |
| /* 357 */ { "unused#357" }, |
| /* 358 */ { "unused#358" }, |
| /* 359 */ { "unused#359" }, |
| /* 360 */ { "unused#360" }, |
| /* 361 */ { "unused#361" }, |
| /* 362 */ { "unused#362" }, |
| /* 363 */ { "unused#363" }, |
| /* 364 */ { "unused#364" }, |
| /* 365 */ { "unused#365" }, |
| /* 366 */ { "unused#366" }, |
| /* 367 */ { "unused#367" }, |
| /* 368 */ { "unused#368" }, |
| /* 369 */ { "unused#369" }, |
| /* 370 */ { "unused#370" }, |
| /* 371 */ { "unused#371" }, |
| /* 372 */ { "unused#372" }, |
| /* 373 */ { "unused#373" }, |
| /* 374 */ { "unused#374" }, |
| /* 375 */ { "unused#375" }, |
| /* 376 */ { "unused#376" }, |
| /* 377 */ { "unused#377" }, |
| /* 378 */ { "unused#378" }, |
| /* 379 */ { "unused#379" }, |
| /* 380 */ { "unused#380" }, |
| /* 381 */ { "unused#381" }, |
| /* 382 */ { "unused#382" }, |
| /* 383 */ { "unused#383" }, |
| /* 384 */ { "unused#384" }, |
| /* 385 */ { "unused#385" }, |
| /* 386 */ { "unused#386" }, |
| /* 387 */ { "unused#387" }, |
| /* 388 */ { "unused#388" }, |
| /* 389 */ { "unused#389" }, |
| /* 390 */ { "unused#390" }, |
| /* 391 */ { "unused#391" }, |
| /* 392 */ { "unused#392" }, |
| /* 393 */ { "unused#393" }, |
| /* 394 */ { "unused#394" }, |
| /* 395 */ { "unused#395" }, |
| /* 396 */ { "unused#396" }, |
| /* 397 */ { "unused#397" }, |
| /* 398 */ { "unused#398" }, |
| /* 399 */ { "unused#399" }, |
| /* 400 */ { "unused#400" }, |
| /* 401 */ { "unused#401" }, |
| /* 402 */ { "unused#402" }, |
| /* 403 */ { "unused#403" }, |
| /* 404 */ { "unused#404" }, |
| /* 405 */ { "unused#405" }, |
| /* 406 */ { "unused#406" }, |
| /* 407 */ { "unused#407" }, |
| /* 408 */ { "unused#408" }, |
| /* 409 */ { "unused#409" }, |
| /* 410 */ { "unused#410" }, |
| /* 411 */ { "unused#411" }, |
| /* 412 */ { "unused#412" }, |
| /* 413 */ { "unused#413" }, |
| /* 414 */ { "unused#414" }, |
| /* 415 */ { "unused#415" }, |
| /* 416 */ { "unused#416" }, |
| /* 417 */ { "unused#417" }, |
| /* 418 */ { "unused#418" }, |
| /* 419 */ { "unused#419" }, |
| /* 420 */ { "unused#420" }, |
| /* 421 */ { "unused#421" }, |
| /* 422 */ { "unused#422" }, |
| /* 423 */ { "unused#423" }, |
| /* 424 */ { "unused#424" }, |
| /* 425 */ { "unused#425" }, |
| /* 426 */ { "unused#426" }, |
| /* 427 */ { "unused#427" }, |
| /* 428 */ { "unused#428" }, |
| /* 429 */ { "unused#429" }, |
| /* 430 */ { "unused#430" }, |
| /* 431 */ { "unused#431" }, |
| /* 432 */ { "unused#432" }, |
| /* 433 */ { "unused#433" }, |
| /* 434 */ { "unused#434" }, |
| /* 435 */ { "unused#435" }, |
| /* 436 */ { "unused#436" }, |
| /* 437 */ { "unused#437" }, |
| /* 438 */ { "unused#438" }, |
| /* 439 */ { "unused#439" }, |
| /* 440 */ { "unused#440" }, |
| /* 441 */ { "unused#441" }, |
| /* 442 */ { "unused#442" }, |
| /* 443 */ { "unused#443" }, |
| /* 444 */ { "unused#444" }, |
| /* 445 */ { "unused#445" }, |
| /* 446 */ { "unused#446" }, |
| /* 447 */ { "unused#447" }, |
| /* 448 */ { "unused#448" }, |
| /* 449 */ { "unused#449" }, |
| /* 450 */ { "unused#450" }, |
| /* 451 */ { "unused#451" }, |
| /* 452 */ { "unused#452" }, |
| /* 453 */ { "unused#453" }, |
| /* 454 */ { "unused#454" }, |
| /* 455 */ { "unused#455" }, |
| /* 456 */ { "unused#456" }, |
| /* 457 */ { "unused#457" }, |
| /* 458 */ { "unused#458" }, |
| /* 459 */ { "unused#459" }, |
| /* 460 */ { "unused#460" }, |
| /* 461 */ { "unused#461" }, |
| /* 462 */ { "unused#462" }, |
| /* 463 */ { "unused#463" }, |
| /* 464 */ { "unused#464" }, |
| /* 465 */ { "unused#465" }, |
| /* 466 */ { "unused#466" }, |
| /* 467 */ { "unused#467" }, |
| /* 468 */ { "unused#468" }, |
| /* 469 */ { "unused#469" }, |
| /* 470 */ { "unused#470" }, |
| /* 471 */ { "unused#471" }, |
| /* 472 */ { "unused#472" }, |
| /* 473 */ { "unused#473" }, |
| /* 474 */ { "unused#474" }, |
| /* 475 */ { "unused#475" }, |
| /* 476 */ { "unused#476" }, |
| /* 477 */ { "unused#477" }, |
| /* 478 */ { "unused#478" }, |
| /* 479 */ { "unused#479" }, |
| /* 480 */ { "unused#480" }, |
| /* 481 */ { "unused#481" }, |
| /* 482 */ { "unused#482" }, |
| /* 483 */ { "unused#483" }, |
| /* 484 */ { "unused#484" }, |
| /* 485 */ { "unused#485" }, |
| /* 486 */ { "unused#486" }, |
| /* 487 */ { "unused#487" }, |
| /* 488 */ { "unused#488" }, |
| /* 489 */ { "unused#489" }, |
| /* 490 */ { "unused#490" }, |
| /* 491 */ { "unused#491" }, |
| /* 492 */ { "unused#492" }, |
| /* 493 */ { "unused#493" }, |
| /* 494 */ { "unused#494" }, |
| /* 495 */ { "unused#495" }, |
| /* 496 */ { "unused#496" }, |
| /* 497 */ { "unused#497" }, |
| /* 498 */ { "unused#498" }, |
| /* 499 */ { "unused#499" }, |
| /* 500 */ { "unused#500" }, |
| /* 501 */ { "unused#501" }, |
| /* 502 */ { "unused#502" }, |
| /* 503 */ { "unused#503" }, |
| /* 504 */ { "unused#504" }, |
| /* 505 */ { "unused#505" }, |
| /* 506 */ { "unused#506" }, |
| /* 507 */ { "unused#507" }, |
| /* 508 */ { "unused#508" }, |
| /* 509 */ { "unused#509" }, |
| /* 510 */ { "unused#510" }, |
| /* 511 */ { "unused#511" }, |
| /* 512 */ { "unused#512" }, |
| /* 513 */ { "unused#513" }, |
| /* 514 */ { "unused#514" }, |
| /* 515 */ { "unused#515" }, |
| /* 516 */ { "unused#516" }, |
| /* 517 */ { "unused#517" }, |
| /* 518 */ { "unused#518" }, |
| /* 519 */ { "unused#519" }, |
| /* 520 */ { "unused#520" }, |
| /* 521 */ { "unused#521" }, |
| /* 522 */ { "unused#522" }, |
| /* 523 */ { "unused#523" }, |
| /* 524 */ { "unused#524" }, |
| /* 525 */ { "unused#525" }, |
| /* 526 */ { "unused#526" }, |
| /* 527 */ { "unused#527" }, |
| /* 528 */ { "unused#528" }, |
| /* 529 */ { "unused#529" }, |
| /* 530 */ { "unused#530" }, |
| /* 531 */ { "unused#531" }, |
| /* 532 */ { "unused#532" }, |
| /* 533 */ { "unused#533" }, |
| /* 534 */ { "unused#534" }, |
| /* 535 */ { "unused#535" }, |
| /* 536 */ { "unused#536" }, |
| /* 537 */ { "unused#537" }, |
| /* 538 */ { "unused#538" }, |
| /* 539 */ { "unused#539" }, |
| /* 540 */ { "unused#540" }, |
| /* 541 */ { "unused#541" }, |
| /* 542 */ { "unused#542" }, |
| /* 543 */ { "unused#543" }, |
| /* 544 */ { "unused#544" }, |
| /* 545 */ { "unused#545" }, |
| /* 546 */ { "unused#546" }, |
| /* 547 */ { "unused#547" }, |
| }; |
| |
| static SyscallDescABI<DefaultSyscallABI> syscallDescs64[] = { |
| /* 0 */ { "unused#000" }, |
| /* 1 */ { "exit", exitFunc }, |
| /* 2 */ { "unused#002" }, |
| /* 3 */ { "read", readFunc<ArmFreebsd64> }, |
| /* 4 */ { "write", writeFunc<ArmFreebsd64> }, |
| /* 5 */ { "unused#005" }, |
| /* 6 */ { "unused#006" }, |
| /* 7 */ { "unused#007" }, |
| /* 8 */ { "unused#008" }, |
| /* 9 */ { "unused#009" }, |
| /* 10 */ { "unused#010" }, |
| /* 11 */ { "unused#011" }, |
| /* 12 */ { "unused#012" }, |
| /* 13 */ { "unused#013" }, |
| /* 14 */ { "unused#014" }, |
| /* 15 */ { "unused#015" }, |
| /* 16 */ { "unused#016" }, |
| /* 17 */ { "obreak", brkFunc }, |
| /* 18 */ { "unused#018" }, |
| /* 19 */ { "unused#019" }, |
| /* 20 */ { "unused#020" }, |
| /* 21 */ { "unused#021" }, |
| /* 22 */ { "unused#022" }, |
| /* 23 */ { "unused#023" }, |
| /* 24 */ { "unused#024" }, |
| /* 25 */ { "unused#025" }, |
| /* 26 */ { "unused#026" }, |
| /* 27 */ { "unused#027" }, |
| /* 28 */ { "unused#028" }, |
| /* 29 */ { "unused#029" }, |
| /* 30 */ { "unused#030" }, |
| /* 31 */ { "unused#031" }, |
| /* 32 */ { "unused#032" }, |
| /* 33 */ { "unused#033" }, |
| /* 34 */ { "unused#034" }, |
| /* 35 */ { "unused#035" }, |
| /* 36 */ { "unused#036" }, |
| /* 37 */ { "unused#037" }, |
| /* 38 */ { "unused#038" }, |
| /* 39 */ { "unused#039" }, |
| /* 40 */ { "unused#040" }, |
| /* 41 */ { "unused#041" }, |
| /* 42 */ { "unused#042" }, |
| /* 43 */ { "unused#043" }, |
| /* 44 */ { "unused#044" }, |
| /* 45 */ { "unused#045" }, |
| /* 46 */ { "unused#046" }, |
| /* 47 */ { "unused#047" }, |
| /* 48 */ { "unused#048" }, |
| /* 49 */ { "unused#049" }, |
| /* 50 */ { "unused#050" }, |
| /* 51 */ { "unused#051" }, |
| /* 52 */ { "unused#052" }, |
| /* 53 */ { "unused#053" }, |
| /* 54 */ { "ioctl", ioctlFunc<ArmFreebsd64> }, |
| /* 55 */ { "unused#055" }, |
| /* 56 */ { "unused#056" }, |
| /* 57 */ { "unused#057" }, |
| /* 58 */ { "readlink", readlinkFunc }, |
| /* 59 */ { "unused#059" }, |
| /* 60 */ { "unused#060" }, |
| /* 61 */ { "unused#061" }, |
| /* 62 */ { "unused#062" }, |
| /* 63 */ { "unused#063" }, |
| /* 64 */ { "unused#064" }, |
| /* 65 */ { "unused#065" }, |
| /* 66 */ { "unused#066" }, |
| /* 67 */ { "unused#067" }, |
| /* 68 */ { "unused#068" }, |
| /* 69 */ { "unused#069" }, |
| /* 70 */ { "unused#070" }, |
| /* 71 */ { "unused#071" }, |
| /* 72 */ { "unused#072" }, |
| /* 73 */ { "unused#073" }, |
| /* 74 */ { "unused#074" }, |
| /* 75 */ { "unused#075" }, |
| /* 76 */ { "unused#076" }, |
| /* 77 */ { "unused#077" }, |
| /* 78 */ { "unused#078" }, |
| /* 79 */ { "unused#079" }, |
| /* 80 */ { "unused#080" }, |
| /* 81 */ { "unused#081" }, |
| /* 82 */ { "unused#082" }, |
| /* 83 */ { "unused#083" }, |
| /* 84 */ { "unused#084" }, |
| /* 85 */ { "unused#085" }, |
| /* 86 */ { "unused#086" }, |
| /* 87 */ { "unused#087" }, |
| /* 88 */ { "unused#088" }, |
| /* 89 */ { "unused#089" }, |
| /* 90 */ { "unused#090" }, |
| /* 91 */ { "unused#091" }, |
| /* 92 */ { "unused#092" }, |
| /* 93 */ { "unused#093" }, |
| /* 94 */ { "unused#094" }, |
| /* 95 */ { "unused#095" }, |
| /* 96 */ { "unused#096" }, |
| /* 97 */ { "unused#097" }, |
| /* 98 */ { "unused#098" }, |
| /* 99 */ { "unused#099" }, |
| /* 100 */ { "unused#100" }, |
| /* 101 */ { "unused#101" }, |
| /* 102 */ { "unused#102" }, |
| /* 103 */ { "unused#103" }, |
| /* 104 */ { "unused#104" }, |
| /* 105 */ { "unused#105" }, |
| /* 106 */ { "unused#106" }, |
| /* 107 */ { "unused#107" }, |
| /* 108 */ { "unused#108" }, |
| /* 109 */ { "unused#109" }, |
| /* 110 */ { "unused#110" }, |
| /* 111 */ { "unused#111" }, |
| /* 112 */ { "unused#112" }, |
| /* 113 */ { "unused#113" }, |
| /* 114 */ { "unused#114" }, |
| /* 115 */ { "unused#115" }, |
| /* 116 */ { "unused#116" }, |
| /* 117 */ { "getrusage", getrusageFunc<ArmFreebsd64> }, |
| /* 118 */ { "unused#118" }, |
| /* 119 */ { "unused#119" }, |
| /* 120 */ { "unused#120" }, |
| /* 121 */ { "unused#121" }, |
| /* 122 */ { "unused#122" }, |
| /* 123 */ { "unused#123" }, |
| /* 124 */ { "unused#124" }, |
| /* 125 */ { "unused#125" }, |
| /* 126 */ { "unused#126" }, |
| /* 127 */ { "unused#127" }, |
| /* 128 */ { "unused#128" }, |
| /* 129 */ { "unused#129" }, |
| /* 130 */ { "unused#130" }, |
| /* 131 */ { "unused#131" }, |
| /* 132 */ { "unused#132" }, |
| /* 133 */ { "unused#133" }, |
| /* 134 */ { "unused#134" }, |
| /* 135 */ { "unused#135" }, |
| /* 136 */ { "unused#136" }, |
| /* 137 */ { "unused#137" }, |
| /* 138 */ { "unused#138" }, |
| /* 139 */ { "unused#139" }, |
| /* 140 */ { "unused#140" }, |
| /* 141 */ { "unused#141" }, |
| /* 142 */ { "unused#142" }, |
| /* 143 */ { "unused#143" }, |
| /* 144 */ { "unused#144" }, |
| /* 145 */ { "unused#145" }, |
| /* 146 */ { "unused#146" }, |
| /* 147 */ { "unused#147" }, |
| /* 148 */ { "unused#148" }, |
| /* 149 */ { "unused#149" }, |
| /* 150 */ { "unused#150" }, |
| /* 151 */ { "unused#151" }, |
| /* 152 */ { "unused#152" }, |
| /* 153 */ { "unused#153" }, |
| /* 154 */ { "unused#154" }, |
| /* 155 */ { "unused#155" }, |
| /* 156 */ { "unused#156" }, |
| /* 157 */ { "unused#157" }, |
| /* 158 */ { "unused#158" }, |
| /* 159 */ { "unused#159" }, |
| /* 160 */ { "unused#160" }, |
| /* 161 */ { "unused#161" }, |
| /* 162 */ { "unused#162" }, |
| /* 163 */ { "unused#163" }, |
| /* 164 */ { "unused#164" }, |
| /* 165 */ { "unused#165" }, |
| /* 166 */ { "unused#166" }, |
| /* 167 */ { "unused#167" }, |
| /* 168 */ { "unused#168" }, |
| /* 169 */ { "unused#169" }, |
| /* 170 */ { "unused#170" }, |
| /* 171 */ { "unused#171" }, |
| /* 172 */ { "unused#172" }, |
| /* 173 */ { "unused#173" }, |
| /* 174 */ { "unused#174" }, |
| /* 175 */ { "unused#175" }, |
| /* 176 */ { "unused#176" }, |
| /* 177 */ { "unused#177" }, |
| /* 178 */ { "unused#178" }, |
| /* 179 */ { "unused#179" }, |
| /* 180 */ { "unused#180" }, |
| /* 181 */ { "unused#181" }, |
| /* 182 */ { "unused#182" }, |
| /* 183 */ { "unused#183" }, |
| /* 184 */ { "unused#184" }, |
| /* 185 */ { "unused#185" }, |
| /* 186 */ { "unused#186" }, |
| /* 187 */ { "unused#187" }, |
| /* 188 */ { "unused#188" }, |
| /* 189 */ { "fstat", fstatFunc<ArmFreebsd64> }, |
| /* 190 */ { "unused#190" }, |
| /* 191 */ { "unused#191" }, |
| /* 192 */ { "unused#192" }, |
| /* 193 */ { "unused#193" }, |
| /* 194 */ { "unused#194" }, |
| /* 195 */ { "unused#195" }, |
| /* 196 */ { "unused#196" }, |
| /* 197 */ { "unused#197" }, |
| /* 198 */ { "unused#198" }, |
| /* 199 */ { "unused#199" }, |
| /* 200 */ { "unused#200" }, |
| /* 201 */ { "unused#201" }, |
| #if !defined ( __GNU_LIBRARY__ ) |
| /* 202 */ { "sysctl", sysctlFunc }, |
| #else |
| /* 202 */ { "sysctl" }, |
| #endif |
| /* 203 */ { "unused#203" }, |
| /* 204 */ { "unused#204" }, |
| /* 205 */ { "unused#205" }, |
| /* 206 */ { "unused#206" }, |
| /* 207 */ { "unused#207" }, |
| /* 208 */ { "unused#208" }, |
| /* 209 */ { "unused#209" }, |
| /* 210 */ { "unused#210" }, |
| /* 211 */ { "unused#211" }, |
| /* 212 */ { "unused#212" }, |
| /* 213 */ { "unused#213" }, |
| /* 214 */ { "unused#214" }, |
| /* 215 */ { "unused#215" }, |
| /* 216 */ { "unused#216" }, |
| /* 217 */ { "unused#217" }, |
| /* 218 */ { "unused#218" }, |
| /* 219 */ { "unused#219" }, |
| /* 220 */ { "unused#220" }, |
| /* 221 */ { "unused#221" }, |
| /* 222 */ { "unused#222" }, |
| /* 223 */ { "unused#223" }, |
| /* 224 */ { "unused#224" }, |
| /* 225 */ { "unused#225" }, |
| /* 226 */ { "unused#226" }, |
| /* 227 */ { "unused#227" }, |
| /* 228 */ { "unused#228" }, |
| /* 229 */ { "unused#229" }, |
| /* 230 */ { "unused#230" }, |
| /* 231 */ { "unused#231" }, |
| /* 232 */ { "unused#232" }, |
| /* 233 */ { "unused#233" }, |
| /* 234 */ { "unused#234" }, |
| /* 235 */ { "unused#235" }, |
| /* 236 */ { "unused#236" }, |
| /* 237 */ { "unused#237" }, |
| /* 238 */ { "unused#238" }, |
| /* 239 */ { "unused#239" }, |
| /* 240 */ { "unused#240" }, |
| /* 241 */ { "unused#241" }, |
| /* 242 */ { "unused#242" }, |
| /* 243 */ { "unused#243" }, |
| /* 244 */ { "unused#244" }, |
| /* 245 */ { "unused#245" }, |
| /* 246 */ { "unused#246" }, |
| /* 247 */ { "unused#247" }, |
| /* 248 */ { "unused#248" }, |
| /* 249 */ { "unused#249" }, |
| /* 250 */ { "unused#250" }, |
| /* 251 */ { "unused#251" }, |
| /* 252 */ { "unused#252" }, |
| /* 253 */ { "issetugid", issetugidFunc }, |
| /* 254 */ { "unused#254" }, |
| /* 255 */ { "unused#255" }, |
| /* 256 */ { "unused#256" }, |
| /* 257 */ { "unused#257" }, |
| /* 258 */ { "unused#258" }, |
| /* 259 */ { "unused#259" }, |
| /* 260 */ { "unused#260" }, |
| /* 261 */ { "unused#261" }, |
| /* 262 */ { "unused#262" }, |
| /* 263 */ { "unused#263" }, |
| /* 264 */ { "unused#264" }, |
| /* 265 */ { "unused#265" }, |
| /* 266 */ { "unused#266" }, |
| /* 267 */ { "unused#267" }, |
| /* 268 */ { "unused#268" }, |
| /* 269 */ { "unused#269" }, |
| /* 270 */ { "unused#270" }, |
| /* 271 */ { "unused#271" }, |
| /* 272 */ { "unused#272" }, |
| /* 273 */ { "unused#273" }, |
| /* 274 */ { "unused#274" }, |
| /* 275 */ { "unused#275" }, |
| /* 276 */ { "unused#276" }, |
| /* 277 */ { "unused#277" }, |
| /* 278 */ { "unused#278" }, |
| /* 279 */ { "unused#279" }, |
| /* 280 */ { "unused#280" }, |
| /* 281 */ { "unused#281" }, |
| /* 282 */ { "unused#282" }, |
| /* 283 */ { "unused#283" }, |
| /* 284 */ { "unused#284" }, |
| /* 285 */ { "unused#285" }, |
| /* 286 */ { "unused#286" }, |
| /* 287 */ { "unused#287" }, |
| /* 288 */ { "unused#288" }, |
| /* 289 */ { "unused#289" }, |
| /* 290 */ { "unused#290" }, |
| /* 291 */ { "unused#291" }, |
| /* 292 */ { "unused#292" }, |
| /* 293 */ { "unused#293" }, |
| /* 294 */ { "unused#294" }, |
| /* 295 */ { "unused#295" }, |
| /* 296 */ { "unused#296" }, |
| /* 297 */ { "unused#297" }, |
| /* 298 */ { "unused#298" }, |
| /* 299 */ { "unused#299" }, |
| /* 300 */ { "unused#300" }, |
| /* 301 */ { "unused#301" }, |
| /* 302 */ { "unused#302" }, |
| /* 303 */ { "unused#303" }, |
| /* 304 */ { "unused#304" }, |
| /* 305 */ { "unused#305" }, |
| /* 306 */ { "unused#306" }, |
| /* 307 */ { "unused#307" }, |
| /* 308 */ { "unused#308" }, |
| /* 309 */ { "unused#309" }, |
| /* 310 */ { "unused#310" }, |
| /* 311 */ { "unused#311" }, |
| /* 312 */ { "unused#312" }, |
| /* 313 */ { "unused#313" }, |
| /* 314 */ { "unused#314" }, |
| /* 315 */ { "unused#315" }, |
| /* 316 */ { "unused#316" }, |
| /* 317 */ { "unused#317" }, |
| /* 318 */ { "unused#318" }, |
| /* 319 */ { "unused#319" }, |
| /* 320 */ { "unused#320" }, |
| /* 321 */ { "unused#321" }, |
| /* 322 */ { "unused#322" }, |
| /* 323 */ { "unused#323" }, |
| /* 324 */ { "unused#324" }, |
| /* 325 */ { "unused#325" }, |
| /* 326 */ { "unused#326" }, |
| /* 327 */ { "unused#327" }, |
| /* 328 */ { "unused#328" }, |
| /* 329 */ { "unused#329" }, |
| /* 330 */ { "unused#330" }, |
| /* 331 */ { "unused#331" }, |
| /* 332 */ { "unused#332" }, |
| /* 333 */ { "unused#333" }, |
| /* 334 */ { "unused#334" }, |
| /* 335 */ { "unused#335" }, |
| /* 336 */ { "unused#336" }, |
| /* 337 */ { "unused#337" }, |
| /* 338 */ { "unused#338" }, |
| /* 339 */ { "unused#339" }, |
| /* 340 */ { "unused#340" }, |
| /* 341 */ { "unused#341" }, |
| /* 342 */ { "unused#342" }, |
| /* 343 */ { "unused#343" }, |
| /* 344 */ { "unused#344" }, |
| /* 345 */ { "unused#345" }, |
| /* 346 */ { "unused#346" }, |
| /* 347 */ { "unused#347" }, |
| /* 348 */ { "unused#348" }, |
| /* 349 */ { "unused#349" }, |
| /* 350 */ { "unused#350" }, |
| /* 351 */ { "unused#351" }, |
| /* 352 */ { "unused#352" }, |
| /* 353 */ { "unused#353" }, |
| /* 354 */ { "unused#354" }, |
| /* 355 */ { "unused#355" }, |
| /* 356 */ { "unused#356" }, |
| /* 357 */ { "unused#357" }, |
| /* 358 */ { "unused#358" }, |
| /* 359 */ { "unused#359" }, |
| /* 360 */ { "unused#360" }, |
| /* 361 */ { "unused#361" }, |
| /* 362 */ { "unused#362" }, |
| /* 363 */ { "unused#363" }, |
| /* 364 */ { "unused#364" }, |
| /* 365 */ { "unused#365" }, |
| /* 366 */ { "unused#366" }, |
| /* 367 */ { "unused#367" }, |
| /* 368 */ { "unused#368" }, |
| /* 369 */ { "unused#369" }, |
| /* 370 */ { "unused#370" }, |
| /* 371 */ { "unused#371" }, |
| /* 372 */ { "unused#372" }, |
| /* 373 */ { "unused#373" }, |
| /* 374 */ { "unused#374" }, |
| /* 375 */ { "unused#375" }, |
| /* 376 */ { "unused#376" }, |
| /* 377 */ { "unused#377" }, |
| /* 378 */ { "unused#378" }, |
| /* 379 */ { "unused#379" }, |
| /* 380 */ { "unused#380" }, |
| /* 381 */ { "unused#381" }, |
| /* 382 */ { "unused#382" }, |
| /* 383 */ { "unused#383" }, |
| /* 384 */ { "unused#384" }, |
| /* 385 */ { "unused#385" }, |
| /* 386 */ { "unused#386" }, |
| /* 387 */ { "unused#387" }, |
| /* 388 */ { "unused#388" }, |
| /* 389 */ { "unused#389" }, |
| /* 390 */ { "unused#390" }, |
| /* 391 */ { "unused#391" }, |
| /* 392 */ { "unused#392" }, |
| /* 393 */ { "unused#393" }, |
| /* 394 */ { "unused#394" }, |
| /* 395 */ { "unused#395" }, |
| /* 396 */ { "unused#396" }, |
| /* 397 */ { "unused#397" }, |
| /* 398 */ { "unused#398" }, |
| /* 399 */ { "unused#399" }, |
| /* 400 */ { "unused#400" }, |
| /* 401 */ { "unused#401" }, |
| /* 402 */ { "unused#402" }, |
| /* 403 */ { "unused#403" }, |
| /* 404 */ { "unused#404" }, |
| /* 405 */ { "unused#405" }, |
| /* 406 */ { "unused#406" }, |
| /* 407 */ { "unused#407" }, |
| /* 408 */ { "unused#408" }, |
| /* 409 */ { "unused#409" }, |
| /* 410 */ { "unused#410" }, |
| /* 411 */ { "unused#411" }, |
| /* 412 */ { "unused#412" }, |
| /* 413 */ { "unused#413" }, |
| /* 414 */ { "unused#414" }, |
| /* 415 */ { "unused#415" }, |
| /* 416 */ { "unused#416" }, |
| /* 417 */ { "unused#417" }, |
| /* 418 */ { "unused#418" }, |
| /* 419 */ { "unused#419" }, |
| /* 420 */ { "unused#420" }, |
| /* 421 */ { "unused#421" }, |
| /* 422 */ { "unused#422" }, |
| /* 423 */ { "unused#423" }, |
| /* 424 */ { "unused#424" }, |
| /* 425 */ { "unused#425" }, |
| /* 426 */ { "unused#426" }, |
| /* 427 */ { "unused#427" }, |
| /* 428 */ { "unused#428" }, |
| /* 429 */ { "unused#429" }, |
| /* 430 */ { "unused#430" }, |
| /* 431 */ { "unused#431" }, |
| /* 432 */ { "unused#432" }, |
| /* 433 */ { "unused#433" }, |
| /* 434 */ { "unused#434" }, |
| /* 435 */ { "unused#435" }, |
| /* 436 */ { "unused#436" }, |
| /* 437 */ { "unused#437" }, |
| /* 438 */ { "unused#438" }, |
| /* 439 */ { "unused#439" }, |
| /* 440 */ { "unused#440" }, |
| /* 441 */ { "unused#441" }, |
| /* 442 */ { "unused#442" }, |
| /* 443 */ { "unused#443" }, |
| /* 444 */ { "unused#444" }, |
| /* 445 */ { "unused#445" }, |
| /* 446 */ { "unused#446" }, |
| /* 447 */ { "unused#447" }, |
| /* 448 */ { "unused#448" }, |
| /* 449 */ { "unused#449" }, |
| /* 450 */ { "unused#450" }, |
| /* 451 */ { "unused#451" }, |
| /* 452 */ { "unused#452" }, |
| /* 453 */ { "unused#453" }, |
| /* 454 */ { "unused#454" }, |
| /* 455 */ { "unused#455" }, |
| /* 456 */ { "unused#456" }, |
| /* 457 */ { "unused#457" }, |
| /* 458 */ { "unused#458" }, |
| /* 459 */ { "unused#459" }, |
| /* 460 */ { "unused#460" }, |
| /* 461 */ { "unused#461" }, |
| /* 462 */ { "unused#462" }, |
| /* 463 */ { "unused#463" }, |
| /* 464 */ { "unused#464" }, |
| /* 465 */ { "unused#465" }, |
| /* 466 */ { "unused#466" }, |
| /* 467 */ { "unused#467" }, |
| /* 468 */ { "unused#468" }, |
| /* 469 */ { "unused#469" }, |
| /* 470 */ { "unused#470" }, |
| /* 471 */ { "unused#471" }, |
| /* 472 */ { "unused#472" }, |
| /* 473 */ { "unused#473" }, |
| /* 474 */ { "unused#474" }, |
| /* 475 */ { "unused#475" }, |
| /* 476 */ { "unused#476" }, |
| /* 477 */ { "mmap", mmapFunc<ArmFreebsd64> }, |
| /* 478 */ { "unused#478" }, |
| /* 479 */ { "unused#479" }, |
| /* 480 */ { "unused#480" }, |
| /* 481 */ { "unused#481" }, |
| /* 482 */ { "unused#482" }, |
| /* 483 */ { "unused#483" }, |
| /* 484 */ { "unused#484" }, |
| /* 485 */ { "unused#485" }, |
| /* 486 */ { "unused#486" }, |
| /* 487 */ { "unused#487" }, |
| /* 488 */ { "unused#488" }, |
| /* 489 */ { "unused#489" }, |
| /* 490 */ { "unused#490" }, |
| /* 491 */ { "unused#491" }, |
| /* 492 */ { "unused#492" }, |
| /* 493 */ { "unused#493" }, |
| /* 494 */ { "unused#494" }, |
| /* 495 */ { "unused#495" }, |
| /* 496 */ { "unused#496" }, |
| /* 497 */ { "unused#497" }, |
| /* 498 */ { "unused#498" }, |
| /* 499 */ { "unused#499" }, |
| /* 500 */ { "unused#500" }, |
| /* 501 */ { "unused#501" }, |
| /* 502 */ { "unused#502" }, |
| /* 503 */ { "unused#503" }, |
| /* 504 */ { "unused#504" }, |
| /* 505 */ { "unused#505" }, |
| /* 506 */ { "unused#506" }, |
| /* 507 */ { "unused#507" }, |
| /* 508 */ { "unused#508" }, |
| /* 509 */ { "unused#509" }, |
| /* 510 */ { "unused#510" }, |
| /* 511 */ { "unused#511" }, |
| /* 512 */ { "unused#512" }, |
| /* 513 */ { "unused#513" }, |
| /* 514 */ { "unused#514" }, |
| /* 515 */ { "unused#515" }, |
| /* 516 */ { "unused#516" }, |
| /* 517 */ { "unused#517" }, |
| /* 518 */ { "unused#518" }, |
| /* 519 */ { "unused#519" }, |
| /* 520 */ { "unused#520" }, |
| /* 521 */ { "unused#521" }, |
| /* 522 */ { "unused#522" }, |
| /* 523 */ { "unused#523" }, |
| /* 524 */ { "unused#524" }, |
| /* 525 */ { "unused#525" }, |
| /* 526 */ { "unused#526" }, |
| /* 527 */ { "unused#527" }, |
| /* 528 */ { "unused#528" }, |
| /* 529 */ { "unused#529" }, |
| /* 530 */ { "unused#530" }, |
| /* 531 */ { "unused#531" }, |
| /* 532 */ { "unused#532" }, |
| /* 533 */ { "unused#533" }, |
| /* 534 */ { "unused#534" }, |
| /* 535 */ { "unused#535" }, |
| /* 536 */ { "unused#536" }, |
| /* 537 */ { "unused#537" }, |
| /* 538 */ { "unused#538" }, |
| /* 539 */ { "unused#539" }, |
| /* 540 */ { "unused#540" }, |
| /* 541 */ { "unused#541" }, |
| /* 542 */ { "unused#542" }, |
| /* 543 */ { "unused#543" }, |
| /* 544 */ { "unused#544" }, |
| /* 545 */ { "unused#545" }, |
| /* 546 */ { "unused#546" }, |
| /* 547 */ { "unused#547" }, |
| }; |
| |
| ArmFreebsdProcess32::ArmFreebsdProcess32(ProcessParams * params, |
| ObjectFile *objFile, ObjectFile::Arch _arch) |
| : ArmProcess32(params, objFile, _arch) |
| { |
| SyscallTable table; |
| |
| table.descs = syscallDescs32; |
| table.size = sizeof(syscallDescs32) / sizeof(SyscallDesc); |
| table.base = 0; |
| syscallTables.push_back(table); |
| } |
| |
| ArmFreebsdProcess64::ArmFreebsdProcess64(ProcessParams * params, |
| ObjectFile *objFile, ObjectFile::Arch _arch) |
| : ArmProcess64(params, objFile, _arch) |
| { |
| SyscallTable table; |
| |
| table.descs = syscallDescs64; |
| table.size = sizeof(syscallDescs64) / sizeof(SyscallDesc); |
| table.base = 0; |
| syscallTables.push_back(table); |
| } |
| |
| SyscallDesc* |
| ArmFreebsdProcessBits::getFreebsdDesc(int callnum) |
| { |
| |
| for (unsigned i = 0; i < syscallTables.size(); i++) { |
| SyscallDesc *desc = syscallTables[i].getDesc(callnum); |
| if (desc) |
| return desc; |
| } |
| return NULL; |
| } |
| |
| SyscallDesc * |
| ArmFreebsdProcessBits::SyscallTable::getDesc(int callnum) const |
| { |
| |
| int offset = callnum - base; |
| if (offset < 0 || offset >= size) |
| return NULL; |
| return &descs[offset]; |
| } |
| |
| SyscallDesc* |
| ArmFreebsdProcess32::getDesc(int callnum) |
| { |
| |
| return getFreebsdDesc(callnum); |
| } |
| |
| SyscallDesc* |
| ArmFreebsdProcess64::getDesc(int callnum) |
| { |
| |
| return getFreebsdDesc(callnum); |
| } |
| |
| void |
| ArmFreebsdProcess32::initState() |
| { |
| ArmProcess32::initState(); |
| // The 32 bit equivalent of the comm page would be set up here. |
| } |
| |
| void |
| ArmFreebsdProcess64::initState() |
| { |
| ArmProcess64::initState(); |
| // The 64 bit equivalent of the comm page would be set up here. |
| } |
| |
| void |
| ArmFreebsdProcess32::syscall(ThreadContext *tc, Fault *fault) |
| { |
| doSyscall(tc->readIntReg(INTREG_R7), tc, fault); |
| } |
| |
| void |
| ArmFreebsdProcess64::syscall(ThreadContext *tc, Fault *fault) |
| { |
| doSyscall(tc->readIntReg(INTREG_X8), tc, fault); |
| } |