/*
 * 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 SyscallDesc 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 SyscallDesc 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);
}
