gem5
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
process.cc
Go to the documentation of this file.
1 /*
2  * Copyright (c) 2010-2013, 2015 ARM Limited
3  * All rights reserved
4  *
5  * The license below extends only to copyright in the software and shall
6  * not be construed as granting a license to any other intellectual
7  * property including but not limited to intellectual property relating
8  * to a hardware implementation of the functionality of the software
9  * licensed hereunder. You may use the software subject to the license
10  * terms below provided that you ensure that this notice is replicated
11  * unmodified and in its entirety in all distributions of the software,
12  * modified or unmodified, in source code or in binary form.
13  *
14  * Copyright (c) 2003-2005 The Regents of The University of Michigan
15  * Copyright (c) 2007-2008 The Florida State University
16  * All rights reserved.
17  *
18  * Redistribution and use in source and binary forms, with or without
19  * modification, are permitted provided that the following conditions are
20  * met: redistributions of source code must retain the above copyright
21  * notice, this list of conditions and the following disclaimer;
22  * redistributions in binary form must reproduce the above copyright
23  * notice, this list of conditions and the following disclaimer in the
24  * documentation and/or other materials provided with the distribution;
25  * neither the name of the copyright holders nor the names of its
26  * contributors may be used to endorse or promote products derived from
27  * this software without specific prior written permission.
28  *
29  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
30  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
31  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
32  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
33  * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
34  * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
35  * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
36  * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
37  * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
38  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
39  * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
40  *
41  * Authors: Korey Sewell
42  * Stephen Hines
43  * Ali Saidi
44  * Giacomo Gabrielli
45  */
46 
48 
49 #include "arch/arm/isa_traits.hh"
50 #include "arch/arm/linux/linux.hh"
51 #include "base/trace.hh"
52 #include "cpu/thread_context.hh"
53 #include "kern/linux/linux.hh"
54 #include "sim/process.hh"
55 #include "sim/syscall_desc.hh"
56 #include "sim/syscall_emul.hh"
57 #include "sim/system.hh"
58 
59 using namespace std;
60 using namespace ArmISA;
61 
63 static SyscallReturn
64 unameFunc32(SyscallDesc *desc, int callnum, Process *process,
65  ThreadContext *tc)
66 {
67  int index = 0;
69 
70  strcpy(name->sysname, "Linux");
71  strcpy(name->nodename, "m5.eecs.umich.edu");
72  strcpy(name->release, "3.0.0");
73  strcpy(name->version, "#1 Mon Aug 18 11:32:15 EDT 2003");
74  strcpy(name->machine, "armv7l");
75 
76  name.copyOut(tc->getMemProxy());
77  return 0;
78 }
79 
81 static SyscallReturn
82 unameFunc64(SyscallDesc *desc, int callnum, Process *process,
83  ThreadContext *tc)
84 {
85  int index = 0;
87 
88  strcpy(name->sysname, "Linux");
89  strcpy(name->nodename, "gem5");
90  strcpy(name->release, "3.7.0+");
91  strcpy(name->version, "#1 SMP Sat Dec 1 00:00:00 GMT 2012");
92  strcpy(name->machine, "armv8l");
93 
94  name.copyOut(tc->getMemProxy());
95  return 0;
96 }
97 
99 static SyscallReturn
100 setTLSFunc32(SyscallDesc *desc, int callnum, Process *process,
101  ThreadContext *tc)
102 {
103  int index = 0;
104  uint32_t tlsPtr = process->getSyscallArg(tc, index);
105 
107  (uint8_t *)&tlsPtr, sizeof(tlsPtr));
108  tc->setMiscReg(MISCREG_TPIDRURO,tlsPtr);
109  return 0;
110 }
111 
112 static SyscallReturn
113 setTLSFunc64(SyscallDesc *desc, int callnum, Process *process,
114  ThreadContext *tc)
115 {
116  int index = 0;
117  uint32_t tlsPtr = process->getSyscallArg(tc, index);
118 
119  tc->setMiscReg(MISCREG_TPIDRRO_EL0, tlsPtr);
120  return 0;
121 }
122 
124  /* 0 */ SyscallDesc("syscall", unimplementedFunc),
125  /* 1 */ SyscallDesc("exit", exitFunc),
126  /* 2 */ SyscallDesc("fork", unimplementedFunc),
127  /* 3 */ SyscallDesc("read", readFunc),
128  /* 4 */ SyscallDesc("write", writeFunc),
129  /* 5 */ SyscallDesc("open", openFunc<ArmLinux32>),
130  /* 6 */ SyscallDesc("close", closeFunc),
131  /* 7 */ SyscallDesc("unused#7", unimplementedFunc),
132  /* 8 */ SyscallDesc("creat", unimplementedFunc),
133  /* 9 */ SyscallDesc("link", unimplementedFunc),
134  /* 10 */ SyscallDesc("unlink", unlinkFunc),
135  /* 11 */ SyscallDesc("execve", unimplementedFunc),
136  /* 12 */ SyscallDesc("chdir", unimplementedFunc),
137  /* 13 */ SyscallDesc("time", timeFunc<ArmLinux32>),
138  /* 14 */ SyscallDesc("mknod", unimplementedFunc),
139  /* 15 */ SyscallDesc("chmod", chmodFunc<ArmLinux32>),
140  /* 16 */ SyscallDesc("lchown", chownFunc),
141  /* 17 */ SyscallDesc("unused#17", unimplementedFunc),
142  /* 18 */ SyscallDesc("unused#18", unimplementedFunc),
143  /* 19 */ SyscallDesc("lseek", lseekFunc),
144  /* 20 */ SyscallDesc("getpid", getpidFunc),
145  /* 21 */ SyscallDesc("mount", unimplementedFunc),
146  /* 22 */ SyscallDesc("umount", unimplementedFunc),
147  /* 23 */ SyscallDesc("setuid", setuidFunc),
148  /* 24 */ SyscallDesc("getuid", getuidFunc),
149  /* 25 */ SyscallDesc("stime", unimplementedFunc),
150  /* 26 */ SyscallDesc("ptrace", unimplementedFunc),
151  /* 27 */ SyscallDesc("alarm", unimplementedFunc),
152  /* 28 */ SyscallDesc("unused#28", unimplementedFunc),
153  /* 29 */ SyscallDesc("pause", unimplementedFunc),
154  /* 30 */ SyscallDesc("utime", unimplementedFunc),
155  /* 31 */ SyscallDesc("unused#31", unimplementedFunc),
156  /* 32 */ SyscallDesc("unused#32", unimplementedFunc),
157  /* 33 */ SyscallDesc("access", accessFunc),
158  /* 34 */ SyscallDesc("nice", unimplementedFunc),
159  /* 35 */ SyscallDesc("unused#35", unimplementedFunc),
160  /* 36 */ SyscallDesc("sync", unimplementedFunc),
161  /* 37 */ SyscallDesc("kill", ignoreFunc),
162  /* 38 */ SyscallDesc("rename", renameFunc),
163  /* 39 */ SyscallDesc("mkdir", mkdirFunc),
164  /* 40 */ SyscallDesc("rmdir", unimplementedFunc),
165  /* 41 */ SyscallDesc("dup", dupFunc),
166  /* 42 */ SyscallDesc("pipe", pipePseudoFunc),
167  /* 43 */ SyscallDesc("times", timesFunc<ArmLinux32>),
168  /* 44 */ SyscallDesc("unused#44", unimplementedFunc),
169  /* 45 */ SyscallDesc("brk", brkFunc),
170  /* 46 */ SyscallDesc("setgid", unimplementedFunc),
171  /* 47 */ SyscallDesc("getgid", getgidFunc),
172  /* 48 */ SyscallDesc("unused#48", unimplementedFunc),
173  /* 49 */ SyscallDesc("geteuid", geteuidFunc),
174  /* 50 */ SyscallDesc("getegid", getegidFunc),
175  /* 51 */ SyscallDesc("acct", unimplementedFunc),
176  /* 52 */ SyscallDesc("umount2", unimplementedFunc),
177  /* 53 */ SyscallDesc("unused#53", unimplementedFunc),
178  /* 54 */ SyscallDesc("ioctl", ioctlFunc<ArmLinux32>),
179  /* 55 */ SyscallDesc("fcntl", fcntlFunc),
180  /* 56 */ SyscallDesc("unused#56", unimplementedFunc),
181  /* 57 */ SyscallDesc("setpgid", unimplementedFunc),
182  /* 58 */ SyscallDesc("unused#58", unimplementedFunc),
183  /* 59 */ SyscallDesc("unused#59", unimplementedFunc),
184  /* 60 */ SyscallDesc("umask", umaskFunc),
185  /* 61 */ SyscallDesc("chroot", unimplementedFunc),
186  /* 62 */ SyscallDesc("ustat", unimplementedFunc),
187  /* 63 */ SyscallDesc("dup2", unimplementedFunc),
188  /* 64 */ SyscallDesc("getppid", getppidFunc),
189  /* 65 */ SyscallDesc("getpgrp", unimplementedFunc),
190  /* 66 */ SyscallDesc("setsid", unimplementedFunc),
191  /* 67 */ SyscallDesc("sigaction",unimplementedFunc),
192  /* 68 */ SyscallDesc("unused#68", unimplementedFunc),
193  /* 69 */ SyscallDesc("unused#69", unimplementedFunc),
194  /* 70 */ SyscallDesc("setreuid", unimplementedFunc),
195  /* 71 */ SyscallDesc("setregid", unimplementedFunc),
196  /* 72 */ SyscallDesc("sigsuspend", unimplementedFunc),
197  /* 73 */ SyscallDesc("sigpending", unimplementedFunc),
198  /* 74 */ SyscallDesc("sethostname", ignoreFunc),
199  /* 75 */ SyscallDesc("setrlimit", ignoreFunc),
200  /* 76 */ SyscallDesc("getrlimit", getrlimitFunc<ArmLinux32>),
201  /* 77 */ SyscallDesc("getrusage", getrusageFunc<ArmLinux32>),
202  /* 78 */ SyscallDesc("gettimeofday", gettimeofdayFunc<ArmLinux32>),
203  /* 79 */ SyscallDesc("settimeofday", unimplementedFunc),
204  /* 80 */ SyscallDesc("getgroups", unimplementedFunc),
205  /* 81 */ SyscallDesc("setgroups", unimplementedFunc),
206  /* 82 */ SyscallDesc("reserved#82", unimplementedFunc),
207  /* 83 */ SyscallDesc("symlink", unimplementedFunc),
208  /* 84 */ SyscallDesc("unused#84", unimplementedFunc),
209  /* 85 */ SyscallDesc("readlink", readlinkFunc),
210  /* 86 */ SyscallDesc("uselib", unimplementedFunc),
211  /* 87 */ SyscallDesc("swapon", unimplementedFunc),
212  /* 88 */ SyscallDesc("reboot", unimplementedFunc),
213  /* 89 */ SyscallDesc("readdir", unimplementedFunc),
214  /* 90 */ SyscallDesc("mmap", mmapFunc<ArmLinux32>),
215  /* 91 */ SyscallDesc("munmap", munmapFunc),
216  /* 92 */ SyscallDesc("truncate", truncateFunc),
217  /* 93 */ SyscallDesc("ftruncate", ftruncateFunc),
218  /* 94 */ SyscallDesc("fchmod", unimplementedFunc),
219  /* 95 */ SyscallDesc("fchown", unimplementedFunc),
220  /* 96 */ SyscallDesc("getpriority", unimplementedFunc),
221  /* 97 */ SyscallDesc("setpriority", unimplementedFunc),
222  /* 98 */ SyscallDesc("unused#98", unimplementedFunc),
223  /* 99 */ SyscallDesc("statfs", unimplementedFunc),
224  /* 100 */ SyscallDesc("fstatfs", unimplementedFunc),
225  /* 101 */ SyscallDesc("unused#101", unimplementedFunc),
226  /* 102 */ SyscallDesc("socketcall", unimplementedFunc),
227  /* 103 */ SyscallDesc("syslog", unimplementedFunc),
228  /* 104 */ SyscallDesc("setitimer", unimplementedFunc),
229  /* 105 */ SyscallDesc("getitimer", unimplementedFunc),
230  /* 106 */ SyscallDesc("stat", statFunc<ArmLinux32>),
231  /* 107 */ SyscallDesc("lstat", unimplementedFunc),
232  /* 108 */ SyscallDesc("fstat", fstatFunc<ArmLinux32>),
233  /* 109 */ SyscallDesc("unused#109", unimplementedFunc),
234  /* 110 */ SyscallDesc("unused#101", unimplementedFunc),
235  /* 111 */ SyscallDesc("vhangup", unimplementedFunc),
236  /* 112 */ SyscallDesc("unused#112", unimplementedFunc),
237  /* 113 */ SyscallDesc("syscall", unimplementedFunc),
238  /* 114 */ SyscallDesc("wait4", unimplementedFunc),
239  /* 115 */ SyscallDesc("swapoff", unimplementedFunc),
240  /* 116 */ SyscallDesc("sysinfo", sysinfoFunc<ArmLinux32>),
241  /* 117 */ SyscallDesc("ipc", unimplementedFunc),
242  /* 118 */ SyscallDesc("fsync", unimplementedFunc),
243  /* 119 */ SyscallDesc("sigreturn", unimplementedFunc),
244  /* 120 */ SyscallDesc("clone", cloneFunc<ArmLinux32>),
245  /* 121 */ SyscallDesc("setdomainname", unimplementedFunc),
246  /* 122 */ SyscallDesc("uname", unameFunc32),
247  /* 123 */ SyscallDesc("unused#123", unimplementedFunc),
248  /* 124 */ SyscallDesc("adjtimex", unimplementedFunc),
249  /* 125 */ SyscallDesc("mprotect", ignoreFunc),
250  /* 126 */ SyscallDesc("sigprocmask", ignoreFunc, SyscallDesc::WarnOnce),
251  /* 127 */ SyscallDesc("unused#127", unimplementedFunc),
252  /* 128 */ SyscallDesc("init_module", unimplementedFunc),
253  /* 129 */ SyscallDesc("delete_module", unimplementedFunc),
254  /* 130 */ SyscallDesc("unused#130", unimplementedFunc),
255  /* 131 */ SyscallDesc("quotactl", unimplementedFunc),
256  /* 132 */ SyscallDesc("getpgid", unimplementedFunc),
257  /* 133 */ SyscallDesc("fchdir", unimplementedFunc),
258  /* 134 */ SyscallDesc("bdflush", unimplementedFunc),
259  /* 135 */ SyscallDesc("sysfs", unimplementedFunc),
260  /* 136 */ SyscallDesc("personality", unimplementedFunc),
261  /* 137 */ SyscallDesc("reserved#138", unimplementedFunc),
262  /* 138 */ SyscallDesc("setfsuid", unimplementedFunc),
263  /* 139 */ SyscallDesc("setfsgid", unimplementedFunc),
264  /* 140 */ SyscallDesc("llseek", _llseekFunc),
265  /* 141 */ SyscallDesc("getdents", unimplementedFunc),
266  /* 142 */ SyscallDesc("newselect", unimplementedFunc),
267  /* 143 */ SyscallDesc("flock", unimplementedFunc),
268  /* 144 */ SyscallDesc("msync", unimplementedFunc),
269  /* 145 */ SyscallDesc("readv", unimplementedFunc),
270  /* 146 */ SyscallDesc("writev", writevFunc<ArmLinux32>),
271  /* 147 */ SyscallDesc("getsid", unimplementedFunc),
272  /* 148 */ SyscallDesc("fdatasync", unimplementedFunc),
273  /* 149 */ SyscallDesc("sysctl", unimplementedFunc),
274  /* 150 */ SyscallDesc("mlock", unimplementedFunc),
275  /* 151 */ SyscallDesc("munlock", unimplementedFunc),
276  /* 152 */ SyscallDesc("mlockall", unimplementedFunc),
277  /* 153 */ SyscallDesc("munlockall", unimplementedFunc),
278  /* 154 */ SyscallDesc("sched_setparam", unimplementedFunc),
279  /* 155 */ SyscallDesc("sched_getparam", unimplementedFunc),
280  /* 156 */ SyscallDesc("sched_setscheduler", unimplementedFunc),
281  /* 157 */ SyscallDesc("sched_getscheduler", unimplementedFunc),
282  /* 158 */ SyscallDesc("sched_yield", unimplementedFunc),
283  /* 159 */ SyscallDesc("sched_get_priority_max", unimplementedFunc),
284  /* 160 */ SyscallDesc("sched_get_priority_min", unimplementedFunc),
285  /* 161 */ SyscallDesc("sched_rr_get_interval", unimplementedFunc),
286  /* 162 */ SyscallDesc("nanosleep", ignoreFunc, SyscallDesc::WarnOnce),
287  /* 163 */ SyscallDesc("mremap", mremapFunc<ArmLinux32>), // ARM-specific
288  /* 164 */ SyscallDesc("setresuid", unimplementedFunc),
289  /* 165 */ SyscallDesc("getresuid", unimplementedFunc),
290  /* 166 */ SyscallDesc("unused#166", unimplementedFunc),
291  /* 167 */ SyscallDesc("unused#167", unimplementedFunc),
292  /* 168 */ SyscallDesc("poll", unimplementedFunc),
293  /* 169 */ SyscallDesc("nfsservctl", unimplementedFunc),
294  /* 170 */ SyscallDesc("setresgid", unimplementedFunc),
295  /* 171 */ SyscallDesc("getresgid", unimplementedFunc),
296  /* 172 */ SyscallDesc("prctl", unimplementedFunc),
297  /* 173 */ SyscallDesc("rt_sigreturn", unimplementedFunc),
298  /* 174 */ SyscallDesc("rt_sigaction", ignoreFunc, SyscallDesc::WarnOnce),
299  /* 175 */ SyscallDesc("rt_sigprocmask", ignoreFunc, SyscallDesc::WarnOnce),
300  /* 176 */ SyscallDesc("rt_sigpending", unimplementedFunc),
301  /* 177 */ SyscallDesc("rt_sigtimedwait", unimplementedFunc),
302  /* 178 */ SyscallDesc("rt_sigqueueinfo", ignoreFunc),
303  /* 179 */ SyscallDesc("rt_sigsuspend", unimplementedFunc),
304  /* 180 */ SyscallDesc("pread64", unimplementedFunc),
305  /* 181 */ SyscallDesc("pwrite64", unimplementedFunc),
306  /* 182 */ SyscallDesc("chown", unimplementedFunc),
307  /* 183 */ SyscallDesc("getcwd", getcwdFunc),
308  /* 184 */ SyscallDesc("capget", unimplementedFunc),
309  /* 185 */ SyscallDesc("capset", unimplementedFunc),
310  /* 186 */ SyscallDesc("sigaltstack", unimplementedFunc),
311  /* 187 */ SyscallDesc("sendfile", unimplementedFunc),
312  /* 188 */ SyscallDesc("unused#188", unimplementedFunc),
313  /* 189 */ SyscallDesc("unused#189", unimplementedFunc),
314  /* 190 */ SyscallDesc("vfork", unimplementedFunc),
315  /* 191 */ SyscallDesc("getrlimit", getrlimitFunc<ArmLinux32>),
316  /* 192 */ SyscallDesc("mmap2", mmapFunc<ArmLinux32>),
317  /* 193 */ SyscallDesc("truncate64", unimplementedFunc),
318  /* 194 */ SyscallDesc("ftruncate64", ftruncate64Func),
319  /* 195 */ SyscallDesc("stat64", stat64Func<ArmLinux32>),
320  /* 196 */ SyscallDesc("lstat64", lstat64Func<ArmLinux32>),
321  /* 197 */ SyscallDesc("fstat64", fstat64Func<ArmLinux32>),
322  /* 198 */ SyscallDesc("lchown", unimplementedFunc),
323  /* 199 */ SyscallDesc("getuid", getuidFunc),
324  /* 200 */ SyscallDesc("getgid", getgidFunc),
325  /* 201 */ SyscallDesc("geteuid", geteuidFunc),
326  /* 202 */ SyscallDesc("getegid", getegidFunc),
327  /* 203 */ SyscallDesc("setreuid", unimplementedFunc),
328  /* 204 */ SyscallDesc("setregid", unimplementedFunc),
329  /* 205 */ SyscallDesc("getgroups", unimplementedFunc),
330  /* 206 */ SyscallDesc("setgroups", unimplementedFunc),
331  /* 207 */ SyscallDesc("fchown", unimplementedFunc),
332  /* 208 */ SyscallDesc("setresuid", unimplementedFunc),
333  /* 209 */ SyscallDesc("getresuid", unimplementedFunc),
334  /* 210 */ SyscallDesc("setresgid", unimplementedFunc),
335  /* 211 */ SyscallDesc("getresgid", unimplementedFunc),
336  /* 212 */ SyscallDesc("chown", unimplementedFunc),
337  /* 213 */ SyscallDesc("setuid", unimplementedFunc),
338  /* 214 */ SyscallDesc("setgid", unimplementedFunc),
339  /* 215 */ SyscallDesc("setfsuid", unimplementedFunc),
340  /* 216 */ SyscallDesc("setfsgid", unimplementedFunc),
341  /* 217 */ SyscallDesc("getdents64", unimplementedFunc),
342  /* 218 */ SyscallDesc("pivot_root", unimplementedFunc),
343  /* 219 */ SyscallDesc("mincore", unimplementedFunc),
344  /* 220 */ SyscallDesc("madvise", unimplementedFunc),
345  /* 221 */ SyscallDesc("fcntl64", fcntl64Func),
346  /* 222 */ SyscallDesc("unused#222", unimplementedFunc),
347  /* 223 */ SyscallDesc("unknown#223", unimplementedFunc),
348  /* 224 */ SyscallDesc("gettid", unimplementedFunc),
349  /* 225 */ SyscallDesc("readahead", unimplementedFunc),
350  /* 226 */ SyscallDesc("setxattr", unimplementedFunc),
351  /* 227 */ SyscallDesc("lsetxattr", unimplementedFunc),
352  /* 228 */ SyscallDesc("fsetxattr", unimplementedFunc),
353  /* 229 */ SyscallDesc("getxattr", unimplementedFunc),
354  /* 230 */ SyscallDesc("lgetxattr", unimplementedFunc),
355  /* 231 */ SyscallDesc("fgetxattr", unimplementedFunc),
356  /* 232 */ SyscallDesc("listxattr", unimplementedFunc),
357  /* 233 */ SyscallDesc("llistxattr", unimplementedFunc),
358  /* 234 */ SyscallDesc("flistxattr", unimplementedFunc),
359  /* 235 */ SyscallDesc("removexattr", unimplementedFunc),
360  /* 236 */ SyscallDesc("lremovexattr", unimplementedFunc),
361  /* 237 */ SyscallDesc("fremovexattr", unimplementedFunc),
362  /* 238 */ SyscallDesc("tkill", unimplementedFunc),
363  /* 239 */ SyscallDesc("sendfile64", unimplementedFunc),
364  /* 240 */ SyscallDesc("futex", ignoreFunc, SyscallDesc::WarnOnce),
365  /* 241 */ SyscallDesc("sched_setaffinity", unimplementedFunc),
366  /* 242 */ SyscallDesc("sched_getaffinity", unimplementedFunc),
367  /* 243 */ SyscallDesc("io_setup", unimplementedFunc),
368  /* 244 */ SyscallDesc("io_destroy", unimplementedFunc),
369  /* 245 */ SyscallDesc("io_getevents", unimplementedFunc),
370  /* 246 */ SyscallDesc("io_submit", unimplementedFunc),
371  /* 247 */ SyscallDesc("io_cancel", unimplementedFunc),
372  /* 248 */ SyscallDesc("exit_group", exitGroupFunc),
373  /* 249 */ SyscallDesc("lookup_dcookie", unimplementedFunc),
374  /* 250 */ SyscallDesc("epoll_create", unimplementedFunc),
375  /* 251 */ SyscallDesc("epoll_ctl", unimplementedFunc),
376  /* 252 */ SyscallDesc("epoll_wait", unimplementedFunc),
377  /* 253 */ SyscallDesc("remap_file_pages", unimplementedFunc),
378  /* 254 */ SyscallDesc("unused#254", unimplementedFunc),
379  /* 255 */ SyscallDesc("unused#255", unimplementedFunc),
380  /* 256 */ SyscallDesc("set_tid_address", unimplementedFunc),
381  /* 257 */ SyscallDesc("timer_create", unimplementedFunc),
382  /* 258 */ SyscallDesc("timer_settime", unimplementedFunc),
383  /* 259 */ SyscallDesc("timer_gettime", unimplementedFunc),
384  /* 260 */ SyscallDesc("timer_getoverrun", unimplementedFunc),
385  /* 261 */ SyscallDesc("timer_delete", unimplementedFunc),
386  /* 262 */ SyscallDesc("clock_settime", unimplementedFunc),
387  /* 263 */ SyscallDesc("clock_gettime", clock_gettimeFunc<ArmLinux32>),
388  /* 264 */ SyscallDesc("clock_getres", clock_getresFunc<ArmLinux32>),
389  /* 265 */ SyscallDesc("clock_nanosleep", unimplementedFunc),
390  /* 266 */ SyscallDesc("statfs64", unimplementedFunc),
391  /* 267 */ SyscallDesc("fstatfs64", unimplementedFunc),
392  /* 268 */ SyscallDesc("tgkill", unimplementedFunc),
393  /* 269 */ SyscallDesc("utimes", unimplementedFunc),
394  /* 270 */ SyscallDesc("arm_fadvise64_64", unimplementedFunc),
395  /* 271 */ SyscallDesc("pciconfig_iobase", unimplementedFunc),
396  /* 272 */ SyscallDesc("pciconfig_read", unimplementedFunc),
397  /* 273 */ SyscallDesc("pciconfig_write", unimplementedFunc),
398  /* 274 */ SyscallDesc("mq_open", unimplementedFunc),
399  /* 275 */ SyscallDesc("mq_unlink", unimplementedFunc),
400  /* 276 */ SyscallDesc("mq_timedsend", unimplementedFunc),
401  /* 277 */ SyscallDesc("mq_timedreceive", unimplementedFunc),
402  /* 278 */ SyscallDesc("mq_notify", unimplementedFunc),
403  /* 279 */ SyscallDesc("mq_getsetattr", unimplementedFunc),
404  /* 280 */ SyscallDesc("waitid", unimplementedFunc),
405  /* 281 */ SyscallDesc("socket", unimplementedFunc),
406  /* 282 */ SyscallDesc("bind", unimplementedFunc),
407  /* 283 */ SyscallDesc("connect", unimplementedFunc),
408  /* 284 */ SyscallDesc("listen", unimplementedFunc),
409  /* 285 */ SyscallDesc("accept", unimplementedFunc),
410  /* 286 */ SyscallDesc("getsockname", unimplementedFunc),
411  /* 287 */ SyscallDesc("getpeername", unimplementedFunc),
412  /* 288 */ SyscallDesc("socketpair", unimplementedFunc),
413  /* 289 */ SyscallDesc("send", unimplementedFunc),
414  /* 290 */ SyscallDesc("sendto", unimplementedFunc),
415  /* 291 */ SyscallDesc("recv", unimplementedFunc),
416  /* 292 */ SyscallDesc("recvfrom", unimplementedFunc),
417  /* 293 */ SyscallDesc("shutdown", unimplementedFunc),
418  /* 294 */ SyscallDesc("setsockopt", unimplementedFunc),
419  /* 295 */ SyscallDesc("getsockopt", unimplementedFunc),
420  /* 296 */ SyscallDesc("sendmsg", unimplementedFunc),
421  /* 297 */ SyscallDesc("rcvmsg", unimplementedFunc),
422  /* 298 */ SyscallDesc("semop", unimplementedFunc),
423  /* 299 */ SyscallDesc("semget", unimplementedFunc),
424  /* 300 */ SyscallDesc("semctl", unimplementedFunc),
425  /* 301 */ SyscallDesc("msgsend", unimplementedFunc),
426  /* 302 */ SyscallDesc("msgrcv", unimplementedFunc),
427  /* 303 */ SyscallDesc("msgget", unimplementedFunc),
428  /* 304 */ SyscallDesc("msgctl", unimplementedFunc),
429  /* 305 */ SyscallDesc("shmat", unimplementedFunc),
430  /* 306 */ SyscallDesc("shmdt", unimplementedFunc),
431  /* 307 */ SyscallDesc("shmget", unimplementedFunc),
432  /* 308 */ SyscallDesc("shmctl", unimplementedFunc),
433  /* 309 */ SyscallDesc("add_key", unimplementedFunc),
434  /* 310 */ SyscallDesc("request_key", unimplementedFunc),
435  /* 311 */ SyscallDesc("keyctl", unimplementedFunc),
436  /* 312 */ SyscallDesc("semtimedop", unimplementedFunc),
437  /* 313 */ SyscallDesc("unused#313", unimplementedFunc),
438  /* 314 */ SyscallDesc("ioprio_set", unimplementedFunc),
439  /* 315 */ SyscallDesc("ioprio_get", unimplementedFunc),
440  /* 316 */ SyscallDesc("inotify_init", unimplementedFunc),
441  /* 317 */ SyscallDesc("inotify_add_watch", unimplementedFunc),
442  /* 318 */ SyscallDesc("inotify_rm_watch", unimplementedFunc),
443  /* 319 */ SyscallDesc("mbind", unimplementedFunc),
444  /* 320 */ SyscallDesc("get_mempolicy", unimplementedFunc),
445  /* 321 */ SyscallDesc("set_mempolicy", unimplementedFunc),
446  /* 322 */ SyscallDesc("openat", unimplementedFunc),
447  /* 323 */ SyscallDesc("mkdirat", unimplementedFunc),
448  /* 324 */ SyscallDesc("mknodat", unimplementedFunc),
449  /* 325 */ SyscallDesc("fchownat", unimplementedFunc),
450  /* 326 */ SyscallDesc("futimesat", unimplementedFunc),
451  /* 327 */ SyscallDesc("fstatat64", unimplementedFunc),
452  /* 328 */ SyscallDesc("unlinkat", unimplementedFunc),
453  /* 329 */ SyscallDesc("renameat", unimplementedFunc),
454  /* 330 */ SyscallDesc("linkat", unimplementedFunc),
455  /* 331 */ SyscallDesc("symlinkat", unimplementedFunc),
456  /* 332 */ SyscallDesc("readlinkat", unimplementedFunc),
457  /* 333 */ SyscallDesc("fchmodat", unimplementedFunc),
458  /* 334 */ SyscallDesc("faccessat", unimplementedFunc),
459  /* 335 */ SyscallDesc("pselect6", unimplementedFunc),
460  /* 336 */ SyscallDesc("ppoll", unimplementedFunc),
461  /* 337 */ SyscallDesc("unshare", unimplementedFunc),
462  /* 338 */ SyscallDesc("set_robust_list", unimplementedFunc),
463  /* 339 */ SyscallDesc("get_robust_list", unimplementedFunc),
464  /* 340 */ SyscallDesc("splice", unimplementedFunc),
465  /* 341 */ SyscallDesc("arm_sync_file_range", unimplementedFunc),
466  /* 342 */ SyscallDesc("tee", unimplementedFunc),
467  /* 343 */ SyscallDesc("vmsplice", unimplementedFunc),
468  /* 344 */ SyscallDesc("move_pages", unimplementedFunc),
469  /* 345 */ SyscallDesc("getcpu", unimplementedFunc),
470  /* 346 */ SyscallDesc("epoll_pwait", unimplementedFunc),
471  /* 347 */ SyscallDesc("sys_kexec_load", unimplementedFunc),
472  /* 348 */ SyscallDesc("sys_utimensat", unimplementedFunc),
473  /* 349 */ SyscallDesc("sys_signalfd", unimplementedFunc),
474  /* 350 */ SyscallDesc("sys_timerfd_create", unimplementedFunc),
475  /* 351 */ SyscallDesc("sys_eventfd", unimplementedFunc),
476  /* 352 */ SyscallDesc("sys_fallocate", unimplementedFunc),
477  /* 353 */ SyscallDesc("sys_timerfd_settime", unimplementedFunc),
478  /* 354 */ SyscallDesc("sys_timerfd_gettime", unimplementedFunc),
479  /* 355 */ SyscallDesc("sys_signalfd4", unimplementedFunc),
480  /* 356 */ SyscallDesc("sys_eventfd2", unimplementedFunc),
481  /* 357 */ SyscallDesc("sys_epoll_create1", unimplementedFunc),
482  /* 358 */ SyscallDesc("sys_dup3", unimplementedFunc),
483  /* 359 */ SyscallDesc("sys_pipe2", unimplementedFunc),
484  /* 360 */ SyscallDesc("sys_inotify_init1", unimplementedFunc),
485  /* 361 */ SyscallDesc("sys_preadv", unimplementedFunc),
486  /* 362 */ SyscallDesc("sys_pwritev", unimplementedFunc),
487  /* 363 */ SyscallDesc("sys_rt_tgsigqueueinfo", unimplementedFunc),
488  /* 364 */ SyscallDesc("sys_perf_event_open", unimplementedFunc),
489  /* 365 */ SyscallDesc("sys_recvmmsg", unimplementedFunc),
490 };
491 
493  /* 0 */ SyscallDesc("io_setup", unimplementedFunc),
494  /* 1 */ SyscallDesc("io_destroy", unimplementedFunc),
495  /* 2 */ SyscallDesc("io_submit", unimplementedFunc),
496  /* 3 */ SyscallDesc("io_cancel", unimplementedFunc),
497  /* 4 */ SyscallDesc("io_getevents", unimplementedFunc),
498  /* 5 */ SyscallDesc("setxattr", unimplementedFunc),
499  /* 6 */ SyscallDesc("lsetxattr", unimplementedFunc),
500  /* 7 */ SyscallDesc("fsetxattr", unimplementedFunc),
501  /* 8 */ SyscallDesc("getxattr", unimplementedFunc),
502  /* 9 */ SyscallDesc("lgetxattr", unimplementedFunc),
503  /* 10 */ SyscallDesc("fgetxattr", unimplementedFunc),
504  /* 11 */ SyscallDesc("listxattr", unimplementedFunc),
505  /* 12 */ SyscallDesc("llistxattr", unimplementedFunc),
506  /* 13 */ SyscallDesc("flistxattr", unimplementedFunc),
507  /* 14 */ SyscallDesc("removexattr", unimplementedFunc),
508  /* 15 */ SyscallDesc("lremovexattr", unimplementedFunc),
509  /* 16 */ SyscallDesc("fremovexattr", unimplementedFunc),
510  /* 17 */ SyscallDesc("getcwd", getcwdFunc),
511  /* 18 */ SyscallDesc("lookup_dcookie", unimplementedFunc),
512  /* 19 */ SyscallDesc("eventfd2", unimplementedFunc),
513  /* 20 */ SyscallDesc("epoll_create1", unimplementedFunc),
514  /* 21 */ SyscallDesc("epoll_ctl", unimplementedFunc),
515  /* 22 */ SyscallDesc("epoll_pwait", unimplementedFunc),
516  /* 23 */ SyscallDesc("dup", dupFunc),
517  /* 24 */ SyscallDesc("dup3", unimplementedFunc),
518  /* 25 */ SyscallDesc("fcntl64", fcntl64Func),
519  /* 26 */ SyscallDesc("inotify_init1", unimplementedFunc),
520  /* 27 */ SyscallDesc("inotify_add_watch", unimplementedFunc),
521  /* 28 */ SyscallDesc("inotify_rm_watch", unimplementedFunc),
522  /* 29 */ SyscallDesc("ioctl", ioctlFunc<ArmLinux64>),
523  /* 30 */ SyscallDesc("ioprio_set", unimplementedFunc),
524  /* 31 */ SyscallDesc("ioprio_get", unimplementedFunc),
525  /* 32 */ SyscallDesc("flock", unimplementedFunc),
526  /* 33 */ SyscallDesc("mknodat", unimplementedFunc),
527  /* 34 */ SyscallDesc("mkdirat", unimplementedFunc),
528  /* 35 */ SyscallDesc("unlinkat", unlinkatFunc<ArmLinux64>),
529  /* 36 */ SyscallDesc("symlinkat", unimplementedFunc),
530  /* 37 */ SyscallDesc("linkat", unimplementedFunc),
531  /* 38 */ SyscallDesc("renameat", renameatFunc<ArmLinux64>),
532  /* 39 */ SyscallDesc("umount2", unimplementedFunc),
533  /* 40 */ SyscallDesc("mount", unimplementedFunc),
534  /* 41 */ SyscallDesc("pivot_root", unimplementedFunc),
535  /* 42 */ SyscallDesc("nfsservctl", unimplementedFunc),
536  /* 43 */ SyscallDesc("statfs64", unimplementedFunc),
537  /* 44 */ SyscallDesc("fstatfs64", unimplementedFunc),
538  /* 45 */ SyscallDesc("truncate64", unimplementedFunc),
539  /* 46 */ SyscallDesc("ftruncate64", ftruncate64Func),
540  /* 47 */ SyscallDesc("fallocate", unimplementedFunc),
541  /* 48 */ SyscallDesc("faccessat", faccessatFunc<ArmLinux64>),
542  /* 49 */ SyscallDesc("chdir", unimplementedFunc),
543  /* 50 */ SyscallDesc("fchdir", unimplementedFunc),
544  /* 51 */ SyscallDesc("chroot", unimplementedFunc),
545  /* 52 */ SyscallDesc("fchmod", unimplementedFunc),
546  /* 53 */ SyscallDesc("fchmodat", unimplementedFunc),
547  /* 54 */ SyscallDesc("fchownat", unimplementedFunc),
548  /* 55 */ SyscallDesc("fchown", unimplementedFunc),
549  /* 56 */ SyscallDesc("openat", openatFunc<ArmLinux64>),
550  /* 57 */ SyscallDesc("close", closeFunc),
551  /* 58 */ SyscallDesc("vhangup", unimplementedFunc),
552  /* 59 */ SyscallDesc("pipe2", unimplementedFunc),
553  /* 60 */ SyscallDesc("quotactl", unimplementedFunc),
554  /* 61 */ SyscallDesc("getdents64", unimplementedFunc),
555  /* 62 */ SyscallDesc("llseek", lseekFunc),
556  /* 63 */ SyscallDesc("read", readFunc),
557  /* 64 */ SyscallDesc("write", writeFunc),
558  /* 65 */ SyscallDesc("readv", unimplementedFunc),
559  /* 66 */ SyscallDesc("writev", writevFunc<ArmLinux64>),
560  /* 67 */ SyscallDesc("pread64", unimplementedFunc),
561  /* 68 */ SyscallDesc("pwrite64", unimplementedFunc),
562  /* 69 */ SyscallDesc("preadv", unimplementedFunc),
563  /* 70 */ SyscallDesc("pwritev", unimplementedFunc),
564  /* 71 */ SyscallDesc("sendfile64", unimplementedFunc),
565  /* 72 */ SyscallDesc("pselect6", unimplementedFunc),
566  /* 73 */ SyscallDesc("ppoll", unimplementedFunc),
567  /* 74 */ SyscallDesc("signalfd4", unimplementedFunc),
568  /* 75 */ SyscallDesc("vmsplice", unimplementedFunc),
569  /* 76 */ SyscallDesc("splice", unimplementedFunc),
570  /* 77 */ SyscallDesc("tee", unimplementedFunc),
571  /* 78 */ SyscallDesc("readlinkat", readlinkatFunc<ArmLinux64>),
572  /* 79 */ SyscallDesc("fstatat64", fstatat64Func<ArmLinux64>),
573  /* 80 */ SyscallDesc("fstat64", fstat64Func<ArmLinux64>),
574  /* 81 */ SyscallDesc("sync", unimplementedFunc),
575  /* 82 */ SyscallDesc("fsync", unimplementedFunc),
576  /* 83 */ SyscallDesc("fdatasync", unimplementedFunc),
577  /* 84 */ SyscallDesc("sync_file_range", unimplementedFunc),
578  /* 85 */ SyscallDesc("timerfd_create", unimplementedFunc),
579  /* 86 */ SyscallDesc("timerfd_settime", unimplementedFunc),
580  /* 87 */ SyscallDesc("timerfd_gettime", unimplementedFunc),
581  /* 88 */ SyscallDesc("utimensat", unimplementedFunc),
582  /* 89 */ SyscallDesc("acct", unimplementedFunc),
583  /* 90 */ SyscallDesc("capget", unimplementedFunc),
584  /* 91 */ SyscallDesc("capset", unimplementedFunc),
585  /* 92 */ SyscallDesc("personality", unimplementedFunc),
586  /* 93 */ SyscallDesc("exit", exitFunc),
587  /* 94 */ SyscallDesc("exit_group", exitGroupFunc),
588  /* 95 */ SyscallDesc("waitid", unimplementedFunc),
589  /* 96 */ SyscallDesc("set_tid_address", unimplementedFunc),
590  /* 97 */ SyscallDesc("unshare", unimplementedFunc),
591  /* 98 */ SyscallDesc("futex", unimplementedFunc),
592  /* 99 */ SyscallDesc("set_robust_list", unimplementedFunc),
593  /* 100 */ SyscallDesc("get_robust_list", unimplementedFunc),
594  /* 101 */ SyscallDesc("nanosleep", ignoreFunc, SyscallDesc::WarnOnce),
595  /* 102 */ SyscallDesc("getitimer", unimplementedFunc),
596  /* 103 */ SyscallDesc("setitimer", unimplementedFunc),
597  /* 104 */ SyscallDesc("kexec_load", unimplementedFunc),
598  /* 105 */ SyscallDesc("init_module", unimplementedFunc),
599  /* 106 */ SyscallDesc("delete_module", unimplementedFunc),
600  /* 107 */ SyscallDesc("timer_create", unimplementedFunc),
601  /* 108 */ SyscallDesc("timer_gettime", unimplementedFunc),
602  /* 109 */ SyscallDesc("timer_getoverrun", unimplementedFunc),
603  /* 110 */ SyscallDesc("timer_settime", unimplementedFunc),
604  /* 111 */ SyscallDesc("timer_delete", unimplementedFunc),
605  /* 112 */ SyscallDesc("clock_settime", unimplementedFunc),
606  /* 113 */ SyscallDesc("clock_gettime", clock_gettimeFunc<ArmLinux64>),
607  /* 114 */ SyscallDesc("clock_getres", unimplementedFunc),
608  /* 115 */ SyscallDesc("clock_nanosleep", unimplementedFunc),
609  /* 116 */ SyscallDesc("syslog", unimplementedFunc),
610  /* 117 */ SyscallDesc("ptrace", unimplementedFunc),
611  /* 118 */ SyscallDesc("sched_setparam", unimplementedFunc),
612  /* 119 */ SyscallDesc("sched_setscheduler", unimplementedFunc),
613  /* 120 */ SyscallDesc("sched_getscheduler", unimplementedFunc),
614  /* 121 */ SyscallDesc("sched_getparam", unimplementedFunc),
615  /* 122 */ SyscallDesc("sched_setaffinity", unimplementedFunc),
616  /* 123 */ SyscallDesc("sched_getaffinity", unimplementedFunc),
617  /* 124 */ SyscallDesc("sched_yield", unimplementedFunc),
618  /* 125 */ SyscallDesc("sched_get_priority_max", unimplementedFunc),
619  /* 126 */ SyscallDesc("sched_get_priority_min", unimplementedFunc),
620  /* 127 */ SyscallDesc("sched_rr_get_interval", unimplementedFunc),
621  /* 128 */ SyscallDesc("restart_syscall", unimplementedFunc),
622  /* 129 */ SyscallDesc("kill", ignoreFunc),
623  /* 130 */ SyscallDesc("tkill", unimplementedFunc),
624  /* 131 */ SyscallDesc("tgkill", unimplementedFunc),
625  /* 132 */ SyscallDesc("sigaltstack", unimplementedFunc),
626  /* 133 */ SyscallDesc("rt_sigsuspend", unimplementedFunc),
627  /* 134 */ SyscallDesc("rt_sigaction", ignoreFunc),
628  /* 135 */ SyscallDesc("rt_sigprocmask", ignoreFunc, SyscallDesc::WarnOnce),
629  /* 136 */ SyscallDesc("rt_sigpending", unimplementedFunc),
630  /* 137 */ SyscallDesc("rt_sigtimedwait", unimplementedFunc),
631  /* 138 */ SyscallDesc("rt_sigqueueinfo", ignoreFunc),
632  /* 139 */ SyscallDesc("rt_sigreturn", unimplementedFunc),
633  /* 140 */ SyscallDesc("setpriority", unimplementedFunc),
634  /* 141 */ SyscallDesc("getpriority", unimplementedFunc),
635  /* 142 */ SyscallDesc("reboot", unimplementedFunc),
636  /* 143 */ SyscallDesc("setregid", unimplementedFunc),
637  /* 144 */ SyscallDesc("setgid", unimplementedFunc),
638  /* 145 */ SyscallDesc("setreuid", unimplementedFunc),
639  /* 146 */ SyscallDesc("setuid", unimplementedFunc),
640  /* 147 */ SyscallDesc("setresuid", unimplementedFunc),
641  /* 148 */ SyscallDesc("getresuid", unimplementedFunc),
642  /* 149 */ SyscallDesc("setresgid", unimplementedFunc),
643  /* 150 */ SyscallDesc("getresgid", unimplementedFunc),
644  /* 151 */ SyscallDesc("setfsuid", unimplementedFunc),
645  /* 152 */ SyscallDesc("setfsgid", unimplementedFunc),
646  /* 153 */ SyscallDesc("times", timesFunc<ArmLinux64>),
647  /* 154 */ SyscallDesc("setpgid", unimplementedFunc),
648  /* 155 */ SyscallDesc("getpgid", unimplementedFunc),
649  /* 156 */ SyscallDesc("getsid", unimplementedFunc),
650  /* 157 */ SyscallDesc("setsid", unimplementedFunc),
651  /* 158 */ SyscallDesc("getgroups", unimplementedFunc),
652  /* 159 */ SyscallDesc("setgroups", unimplementedFunc),
653  /* 160 */ SyscallDesc("uname", unameFunc64),
654  /* 161 */ SyscallDesc("sethostname", ignoreFunc),
655  /* 162 */ SyscallDesc("setdomainname", unimplementedFunc),
656  /* 163 */ SyscallDesc("getrlimit", getrlimitFunc<ArmLinux64>),
657  /* 164 */ SyscallDesc("setrlimit", ignoreFunc),
658  /* 165 */ SyscallDesc("getrusage", getrusageFunc<ArmLinux64>),
659  /* 166 */ SyscallDesc("umask", unimplementedFunc),
660  /* 167 */ SyscallDesc("prctl", unimplementedFunc),
661  /* 168 */ SyscallDesc("getcpu", unimplementedFunc),
662  /* 169 */ SyscallDesc("gettimeofday", gettimeofdayFunc<ArmLinux64>),
663  /* 170 */ SyscallDesc("settimeofday", unimplementedFunc),
664  /* 171 */ SyscallDesc("adjtimex", unimplementedFunc),
665  /* 172 */ SyscallDesc("getpid", getpidFunc),
666  /* 173 */ SyscallDesc("getppid", getppidFunc),
667  /* 174 */ SyscallDesc("getuid", getuidFunc),
668  /* 175 */ SyscallDesc("geteuid", geteuidFunc),
669  /* 176 */ SyscallDesc("getgid", getgidFunc),
670  /* 177 */ SyscallDesc("getegid", getegidFunc),
671  /* 178 */ SyscallDesc("gettid", unimplementedFunc),
672  /* 179 */ SyscallDesc("sysinfo", sysinfoFunc<ArmLinux64>),
673  /* 180 */ SyscallDesc("mq_open", unimplementedFunc),
674  /* 181 */ SyscallDesc("mq_unlink", unimplementedFunc),
675  /* 182 */ SyscallDesc("mq_timedsend", unimplementedFunc),
676  /* 183 */ SyscallDesc("mq_timedreceive", unimplementedFunc),
677  /* 184 */ SyscallDesc("mq_notify", unimplementedFunc),
678  /* 185 */ SyscallDesc("mq_getsetattr", unimplementedFunc),
679  /* 186 */ SyscallDesc("msgget", unimplementedFunc),
680  /* 187 */ SyscallDesc("msgctl", unimplementedFunc),
681  /* 188 */ SyscallDesc("msgrcv", unimplementedFunc),
682  /* 189 */ SyscallDesc("msgsnd", unimplementedFunc),
683  /* 190 */ SyscallDesc("semget", unimplementedFunc),
684  /* 191 */ SyscallDesc("semctl", unimplementedFunc),
685  /* 192 */ SyscallDesc("semtimedop", unimplementedFunc),
686  /* 193 */ SyscallDesc("semop", unimplementedFunc),
687  /* 194 */ SyscallDesc("shmget", unimplementedFunc),
688  /* 195 */ SyscallDesc("shmctl", unimplementedFunc),
689  /* 196 */ SyscallDesc("shmat", unimplementedFunc),
690  /* 197 */ SyscallDesc("shmdt", unimplementedFunc),
691  /* 198 */ SyscallDesc("socket", unimplementedFunc),
692  /* 199 */ SyscallDesc("socketpair", unimplementedFunc),
693  /* 200 */ SyscallDesc("bind", unimplementedFunc),
694  /* 201 */ SyscallDesc("listen", unimplementedFunc),
695  /* 202 */ SyscallDesc("accept", unimplementedFunc),
696  /* 203 */ SyscallDesc("connect", unimplementedFunc),
697  /* 204 */ SyscallDesc("getsockname", unimplementedFunc),
698  /* 205 */ SyscallDesc("getpeername", unimplementedFunc),
699  /* 206 */ SyscallDesc("sendto", unimplementedFunc),
700  /* 207 */ SyscallDesc("recvfrom", unimplementedFunc),
701  /* 208 */ SyscallDesc("setsockopt", unimplementedFunc),
702  /* 209 */ SyscallDesc("getsockopt", unimplementedFunc),
703  /* 210 */ SyscallDesc("shutdown", unimplementedFunc),
704  /* 211 */ SyscallDesc("sendmsg", unimplementedFunc),
705  /* 212 */ SyscallDesc("recvmsg", unimplementedFunc),
706  /* 213 */ SyscallDesc("readahead", unimplementedFunc),
707  /* 214 */ SyscallDesc("brk", brkFunc),
708  /* 215 */ SyscallDesc("munmap", munmapFunc),
709  /* 216 */ SyscallDesc("mremap", mremapFunc<ArmLinux64>),
710  /* 217 */ SyscallDesc("add_key", unimplementedFunc),
711  /* 218 */ SyscallDesc("request_key", unimplementedFunc),
712  /* 219 */ SyscallDesc("keyctl", unimplementedFunc),
713  /* 220 */ SyscallDesc("clone", unimplementedFunc),
714  /* 221 */ SyscallDesc("execve", unimplementedFunc),
715  /* 222 */ SyscallDesc("mmap2", mmapFunc<ArmLinux64>),
716  /* 223 */ SyscallDesc("fadvise64_64", unimplementedFunc),
717  /* 224 */ SyscallDesc("swapon", unimplementedFunc),
718  /* 225 */ SyscallDesc("swapoff", unimplementedFunc),
719  /* 226 */ SyscallDesc("mprotect", ignoreFunc),
720  /* 227 */ SyscallDesc("msync", unimplementedFunc),
721  /* 228 */ SyscallDesc("mlock", unimplementedFunc),
722  /* 229 */ SyscallDesc("munlock", unimplementedFunc),
723  /* 230 */ SyscallDesc("mlockall", unimplementedFunc),
724  /* 231 */ SyscallDesc("munlockall", unimplementedFunc),
725  /* 232 */ SyscallDesc("mincore", unimplementedFunc),
726  /* 233 */ SyscallDesc("madvise", unimplementedFunc),
727  /* 234 */ SyscallDesc("remap_file_pages", unimplementedFunc),
728  /* 235 */ SyscallDesc("mbind", unimplementedFunc),
729  /* 236 */ SyscallDesc("get_mempolicy", unimplementedFunc),
730  /* 237 */ SyscallDesc("set_mempolicy", unimplementedFunc),
731  /* 238 */ SyscallDesc("migrate_pages", unimplementedFunc),
732  /* 239 */ SyscallDesc("move_pages", unimplementedFunc),
733  /* 240 */ SyscallDesc("rt_tgsigqueueinfo", unimplementedFunc),
734  /* 241 */ SyscallDesc("perf_event_open", unimplementedFunc),
735  /* 242 */ SyscallDesc("accept4", unimplementedFunc),
736  /* 243 */ SyscallDesc("recvmmsg", unimplementedFunc),
737  /* 244 */ SyscallDesc("unused#244", unimplementedFunc),
738  /* 245 */ SyscallDesc("unused#245", unimplementedFunc),
739  /* 246 */ SyscallDesc("unused#246", unimplementedFunc),
740  /* 247 */ SyscallDesc("unused#247", unimplementedFunc),
741  /* 248 */ SyscallDesc("unused#248", unimplementedFunc),
742  /* 249 */ SyscallDesc("unused#249", unimplementedFunc),
743  /* 250 */ SyscallDesc("unused#250", unimplementedFunc),
744  /* 251 */ SyscallDesc("unused#251", unimplementedFunc),
745  /* 252 */ SyscallDesc("unused#252", unimplementedFunc),
746  /* 253 */ SyscallDesc("unused#253", unimplementedFunc),
747  /* 254 */ SyscallDesc("unused#254", unimplementedFunc),
748  /* 255 */ SyscallDesc("unused#255", unimplementedFunc),
749  /* 256 */ SyscallDesc("unused#256", unimplementedFunc),
750  /* 257 */ SyscallDesc("unused#257", unimplementedFunc),
751  /* 258 */ SyscallDesc("unused#258", unimplementedFunc),
752  /* 259 */ SyscallDesc("unused#259", unimplementedFunc),
753  /* 260 */ SyscallDesc("wait4", unimplementedFunc),
754  /* 261 */ SyscallDesc("prlimit64", unimplementedFunc),
755  /* 262 */ SyscallDesc("fanotify_init", unimplementedFunc),
756  /* 263 */ SyscallDesc("fanotify_mark", unimplementedFunc),
757  /* 264 */ SyscallDesc("name_to_handle_at", unimplementedFunc),
758  /* 265 */ SyscallDesc("open_by_handle_at", unimplementedFunc),
759  /* 266 */ SyscallDesc("clock_adjtime", unimplementedFunc),
760  /* 267 */ SyscallDesc("syncfs", unimplementedFunc),
761  /* 268 */ SyscallDesc("setns", unimplementedFunc),
762  /* 269 */ SyscallDesc("sendmmsg", unimplementedFunc),
763  /* 270 */ SyscallDesc("process_vm_readv", unimplementedFunc),
764  /* 271 */ SyscallDesc("process_vm_writev", unimplementedFunc),
765  /* 272 */ SyscallDesc("unused#272", unimplementedFunc),
766  /* 273 */ SyscallDesc("unused#273", unimplementedFunc),
767  /* 274 */ SyscallDesc("unused#274", unimplementedFunc),
768  /* 275 */ SyscallDesc("unused#275", unimplementedFunc),
769  /* 276 */ SyscallDesc("unused#276", unimplementedFunc),
770  /* 277 */ SyscallDesc("unused#277", unimplementedFunc),
771  /* 278 */ SyscallDesc("unused#278", unimplementedFunc),
772  /* 279 */ SyscallDesc("unused#279", unimplementedFunc),
773  /* 280 */ SyscallDesc("unused#280", unimplementedFunc),
774  /* 281 */ SyscallDesc("unused#281", unimplementedFunc),
775  /* 282 */ SyscallDesc("unused#282", unimplementedFunc),
776  /* 283 */ SyscallDesc("unused#283", unimplementedFunc),
777  /* 284 */ SyscallDesc("unused#284", unimplementedFunc),
778  /* 285 */ SyscallDesc("unused#285", unimplementedFunc),
779  /* 286 */ SyscallDesc("unused#286", unimplementedFunc),
780  /* 287 */ SyscallDesc("unused#287", unimplementedFunc),
781  /* 288 */ SyscallDesc("unused#288", unimplementedFunc),
782  /* 289 */ SyscallDesc("unused#289", unimplementedFunc),
783  /* 290 */ SyscallDesc("unused#290", unimplementedFunc),
784  /* 291 */ SyscallDesc("unused#291", unimplementedFunc),
785  /* 292 */ SyscallDesc("unused#292", unimplementedFunc),
786  /* 293 */ SyscallDesc("unused#293", unimplementedFunc),
787  /* 294 */ SyscallDesc("unused#294", unimplementedFunc),
788  /* 295 */ SyscallDesc("unused#295", unimplementedFunc),
789  /* 296 */ SyscallDesc("unused#296", unimplementedFunc),
790  /* 297 */ SyscallDesc("unused#297", unimplementedFunc),
791  /* 298 */ SyscallDesc("unused#298", unimplementedFunc),
792  /* 299 */ SyscallDesc("unused#299", unimplementedFunc),
793  /* 300 */ SyscallDesc("unused#300", unimplementedFunc),
794  /* 301 */ SyscallDesc("unused#301", unimplementedFunc),
795  /* 302 */ SyscallDesc("unused#302", unimplementedFunc),
796  /* 303 */ SyscallDesc("unused#303", unimplementedFunc),
797  /* 304 */ SyscallDesc("unused#304", unimplementedFunc),
798  /* 305 */ SyscallDesc("unused#305", unimplementedFunc),
799  /* 306 */ SyscallDesc("unused#306", unimplementedFunc),
800  /* 307 */ SyscallDesc("unused#307", unimplementedFunc),
801  /* 308 */ SyscallDesc("unused#308", unimplementedFunc),
802  /* 309 */ SyscallDesc("unused#309", unimplementedFunc),
803  /* 310 */ SyscallDesc("unused#310", unimplementedFunc),
804  /* 311 */ SyscallDesc("unused#311", unimplementedFunc),
805  /* 312 */ SyscallDesc("unused#312", unimplementedFunc),
806  /* 313 */ SyscallDesc("unused#313", unimplementedFunc),
807  /* 314 */ SyscallDesc("unused#314", unimplementedFunc),
808  /* 315 */ SyscallDesc("unused#315", unimplementedFunc),
809  /* 316 */ SyscallDesc("unused#316", unimplementedFunc),
810  /* 317 */ SyscallDesc("unused#317", unimplementedFunc),
811  /* 318 */ SyscallDesc("unused#318", unimplementedFunc),
812  /* 319 */ SyscallDesc("unused#319", unimplementedFunc),
813  /* 320 */ SyscallDesc("unused#320", unimplementedFunc),
814  /* 321 */ SyscallDesc("unused#321", unimplementedFunc),
815  /* 322 */ SyscallDesc("unused#322", unimplementedFunc),
816  /* 323 */ SyscallDesc("unused#323", unimplementedFunc),
817  /* 324 */ SyscallDesc("unused#324", unimplementedFunc),
818  /* 325 */ SyscallDesc("unused#325", unimplementedFunc),
819  /* 326 */ SyscallDesc("unused#326", unimplementedFunc),
820  /* 327 */ SyscallDesc("unused#327", unimplementedFunc),
821  /* 328 */ SyscallDesc("unused#328", unimplementedFunc),
822  /* 329 */ SyscallDesc("unused#329", unimplementedFunc),
823  /* 330 */ SyscallDesc("unused#330", unimplementedFunc),
824  /* 331 */ SyscallDesc("unused#331", unimplementedFunc),
825  /* 332 */ SyscallDesc("unused#332", unimplementedFunc),
826  /* 333 */ SyscallDesc("unused#333", unimplementedFunc),
827  /* 334 */ SyscallDesc("unused#334", unimplementedFunc),
828  /* 335 */ SyscallDesc("unused#335", unimplementedFunc),
829  /* 336 */ SyscallDesc("unused#336", unimplementedFunc),
830  /* 337 */ SyscallDesc("unused#337", unimplementedFunc),
831  /* 338 */ SyscallDesc("unused#338", unimplementedFunc),
832  /* 339 */ SyscallDesc("unused#339", unimplementedFunc),
833  /* 340 */ SyscallDesc("unused#340", unimplementedFunc),
834  /* 341 */ SyscallDesc("unused#341", unimplementedFunc),
835  /* 342 */ SyscallDesc("unused#342", unimplementedFunc),
836  /* 343 */ SyscallDesc("unused#343", unimplementedFunc),
837  /* 344 */ SyscallDesc("unused#344", unimplementedFunc),
838  /* 345 */ SyscallDesc("unused#345", unimplementedFunc),
839  /* 346 */ SyscallDesc("unused#346", unimplementedFunc),
840  /* 347 */ SyscallDesc("unused#347", unimplementedFunc),
841  /* 348 */ SyscallDesc("unused#348", unimplementedFunc),
842  /* 349 */ SyscallDesc("unused#349", unimplementedFunc),
843  /* 350 */ SyscallDesc("unused#350", unimplementedFunc),
844  /* 351 */ SyscallDesc("unused#351", unimplementedFunc),
845  /* 352 */ SyscallDesc("unused#352", unimplementedFunc),
846  /* 353 */ SyscallDesc("unused#353", unimplementedFunc),
847  /* 354 */ SyscallDesc("unused#354", unimplementedFunc),
848  /* 355 */ SyscallDesc("unused#355", unimplementedFunc),
849  /* 356 */ SyscallDesc("unused#356", unimplementedFunc),
850  /* 357 */ SyscallDesc("unused#357", unimplementedFunc),
851  /* 358 */ SyscallDesc("unused#358", unimplementedFunc),
852  /* 359 */ SyscallDesc("unused#359", unimplementedFunc),
853  /* 360 */ SyscallDesc("unused#360", unimplementedFunc),
854  /* 361 */ SyscallDesc("unused#361", unimplementedFunc),
855  /* 362 */ SyscallDesc("unused#362", unimplementedFunc),
856  /* 363 */ SyscallDesc("unused#363", unimplementedFunc),
857  /* 364 */ SyscallDesc("unused#364", unimplementedFunc),
858  /* 365 */ SyscallDesc("unused#365", unimplementedFunc),
859  /* 366 */ SyscallDesc("unused#366", unimplementedFunc),
860  /* 367 */ SyscallDesc("unused#367", unimplementedFunc),
861  /* 368 */ SyscallDesc("unused#368", unimplementedFunc),
862  /* 369 */ SyscallDesc("unused#369", unimplementedFunc),
863  /* 370 */ SyscallDesc("unused#370", unimplementedFunc),
864  /* 371 */ SyscallDesc("unused#371", unimplementedFunc),
865  /* 372 */ SyscallDesc("unused#372", unimplementedFunc),
866  /* 373 */ SyscallDesc("unused#373", unimplementedFunc),
867  /* 374 */ SyscallDesc("unused#374", unimplementedFunc),
868  /* 375 */ SyscallDesc("unused#375", unimplementedFunc),
869  /* 376 */ SyscallDesc("unused#376", unimplementedFunc),
870  /* 377 */ SyscallDesc("unused#377", unimplementedFunc),
871  /* 378 */ SyscallDesc("unused#378", unimplementedFunc),
872  /* 379 */ SyscallDesc("unused#379", unimplementedFunc),
873  /* 380 */ SyscallDesc("unused#380", unimplementedFunc),
874  /* 381 */ SyscallDesc("unused#381", unimplementedFunc),
875  /* 382 */ SyscallDesc("unused#382", unimplementedFunc),
876  /* 383 */ SyscallDesc("unused#383", unimplementedFunc),
877  /* 384 */ SyscallDesc("unused#384", unimplementedFunc),
878  /* 385 */ SyscallDesc("unused#385", unimplementedFunc),
879  /* 386 */ SyscallDesc("unused#386", unimplementedFunc),
880  /* 387 */ SyscallDesc("unused#387", unimplementedFunc),
881  /* 388 */ SyscallDesc("unused#388", unimplementedFunc),
882  /* 389 */ SyscallDesc("unused#389", unimplementedFunc),
883  /* 390 */ SyscallDesc("unused#390", unimplementedFunc),
884  /* 391 */ SyscallDesc("unused#391", unimplementedFunc),
885  /* 392 */ SyscallDesc("unused#392", unimplementedFunc),
886  /* 393 */ SyscallDesc("unused#393", unimplementedFunc),
887  /* 394 */ SyscallDesc("unused#394", unimplementedFunc),
888  /* 395 */ SyscallDesc("unused#395", unimplementedFunc),
889  /* 396 */ SyscallDesc("unused#396", unimplementedFunc),
890  /* 397 */ SyscallDesc("unused#397", unimplementedFunc),
891  /* 398 */ SyscallDesc("unused#398", unimplementedFunc),
892  /* 399 */ SyscallDesc("unused#399", unimplementedFunc),
893  /* 400 */ SyscallDesc("unused#400", unimplementedFunc),
894  /* 401 */ SyscallDesc("unused#401", unimplementedFunc),
895  /* 402 */ SyscallDesc("unused#402", unimplementedFunc),
896  /* 403 */ SyscallDesc("unused#403", unimplementedFunc),
897  /* 404 */ SyscallDesc("unused#404", unimplementedFunc),
898  /* 405 */ SyscallDesc("unused#405", unimplementedFunc),
899  /* 406 */ SyscallDesc("unused#406", unimplementedFunc),
900  /* 407 */ SyscallDesc("unused#407", unimplementedFunc),
901  /* 408 */ SyscallDesc("unused#408", unimplementedFunc),
902  /* 409 */ SyscallDesc("unused#409", unimplementedFunc),
903  /* 410 */ SyscallDesc("unused#410", unimplementedFunc),
904  /* 411 */ SyscallDesc("unused#411", unimplementedFunc),
905  /* 412 */ SyscallDesc("unused#412", unimplementedFunc),
906  /* 413 */ SyscallDesc("unused#413", unimplementedFunc),
907  /* 414 */ SyscallDesc("unused#414", unimplementedFunc),
908  /* 415 */ SyscallDesc("unused#415", unimplementedFunc),
909  /* 416 */ SyscallDesc("unused#416", unimplementedFunc),
910  /* 417 */ SyscallDesc("unused#417", unimplementedFunc),
911  /* 418 */ SyscallDesc("unused#418", unimplementedFunc),
912  /* 419 */ SyscallDesc("unused#419", unimplementedFunc),
913  /* 420 */ SyscallDesc("unused#420", unimplementedFunc),
914  /* 421 */ SyscallDesc("unused#421", unimplementedFunc),
915  /* 422 */ SyscallDesc("unused#422", unimplementedFunc),
916  /* 423 */ SyscallDesc("unused#423", unimplementedFunc),
917  /* 424 */ SyscallDesc("unused#424", unimplementedFunc),
918  /* 425 */ SyscallDesc("unused#425", unimplementedFunc),
919  /* 426 */ SyscallDesc("unused#426", unimplementedFunc),
920  /* 427 */ SyscallDesc("unused#427", unimplementedFunc),
921  /* 428 */ SyscallDesc("unused#428", unimplementedFunc),
922  /* 429 */ SyscallDesc("unused#429", unimplementedFunc),
923  /* 430 */ SyscallDesc("unused#430", unimplementedFunc),
924  /* 431 */ SyscallDesc("unused#431", unimplementedFunc),
925  /* 432 */ SyscallDesc("unused#432", unimplementedFunc),
926  /* 433 */ SyscallDesc("unused#433", unimplementedFunc),
927  /* 434 */ SyscallDesc("unused#434", unimplementedFunc),
928  /* 435 */ SyscallDesc("unused#435", unimplementedFunc),
929  /* 436 */ SyscallDesc("unused#436", unimplementedFunc),
930  /* 437 */ SyscallDesc("unused#437", unimplementedFunc),
931  /* 438 */ SyscallDesc("unused#438", unimplementedFunc),
932  /* 439 */ SyscallDesc("unused#439", unimplementedFunc),
933  /* 440 */ SyscallDesc("unused#440", unimplementedFunc),
934  /* 441 */ SyscallDesc("unused#441", unimplementedFunc),
935  /* 442 */ SyscallDesc("unused#442", unimplementedFunc),
936  /* 443 */ SyscallDesc("unused#443", unimplementedFunc),
937  /* 444 */ SyscallDesc("unused#444", unimplementedFunc),
938  /* 445 */ SyscallDesc("unused#445", unimplementedFunc),
939  /* 446 */ SyscallDesc("unused#446", unimplementedFunc),
940  /* 447 */ SyscallDesc("unused#447", unimplementedFunc),
941  /* 448 */ SyscallDesc("unused#448", unimplementedFunc),
942  /* 449 */ SyscallDesc("unused#449", unimplementedFunc),
943  /* 450 */ SyscallDesc("unused#450", unimplementedFunc),
944  /* 451 */ SyscallDesc("unused#451", unimplementedFunc),
945  /* 452 */ SyscallDesc("unused#452", unimplementedFunc),
946  /* 453 */ SyscallDesc("unused#453", unimplementedFunc),
947  /* 454 */ SyscallDesc("unused#454", unimplementedFunc),
948  /* 455 */ SyscallDesc("unused#455", unimplementedFunc),
949  /* 456 */ SyscallDesc("unused#456", unimplementedFunc),
950  /* 457 */ SyscallDesc("unused#457", unimplementedFunc),
951  /* 458 */ SyscallDesc("unused#458", unimplementedFunc),
952  /* 459 */ SyscallDesc("unused#459", unimplementedFunc),
953  /* 460 */ SyscallDesc("unused#460", unimplementedFunc),
954  /* 461 */ SyscallDesc("unused#461", unimplementedFunc),
955  /* 462 */ SyscallDesc("unused#462", unimplementedFunc),
956  /* 463 */ SyscallDesc("unused#463", unimplementedFunc),
957  /* 464 */ SyscallDesc("unused#464", unimplementedFunc),
958  /* 465 */ SyscallDesc("unused#465", unimplementedFunc),
959  /* 466 */ SyscallDesc("unused#466", unimplementedFunc),
960  /* 467 */ SyscallDesc("unused#467", unimplementedFunc),
961  /* 468 */ SyscallDesc("unused#468", unimplementedFunc),
962  /* 469 */ SyscallDesc("unused#469", unimplementedFunc),
963  /* 470 */ SyscallDesc("unused#470", unimplementedFunc),
964  /* 471 */ SyscallDesc("unused#471", unimplementedFunc),
965  /* 472 */ SyscallDesc("unused#472", unimplementedFunc),
966  /* 473 */ SyscallDesc("unused#473", unimplementedFunc),
967  /* 474 */ SyscallDesc("unused#474", unimplementedFunc),
968  /* 475 */ SyscallDesc("unused#475", unimplementedFunc),
969  /* 476 */ SyscallDesc("unused#476", unimplementedFunc),
970  /* 477 */ SyscallDesc("unused#477", unimplementedFunc),
971  /* 478 */ SyscallDesc("unused#478", unimplementedFunc),
972  /* 479 */ SyscallDesc("unused#479", unimplementedFunc),
973  /* 480 */ SyscallDesc("unused#480", unimplementedFunc),
974  /* 481 */ SyscallDesc("unused#481", unimplementedFunc),
975  /* 482 */ SyscallDesc("unused#482", unimplementedFunc),
976  /* 483 */ SyscallDesc("unused#483", unimplementedFunc),
977  /* 484 */ SyscallDesc("unused#484", unimplementedFunc),
978  /* 485 */ SyscallDesc("unused#485", unimplementedFunc),
979  /* 486 */ SyscallDesc("unused#486", unimplementedFunc),
980  /* 487 */ SyscallDesc("unused#487", unimplementedFunc),
981  /* 488 */ SyscallDesc("unused#488", unimplementedFunc),
982  /* 489 */ SyscallDesc("unused#489", unimplementedFunc),
983  /* 490 */ SyscallDesc("unused#490", unimplementedFunc),
984  /* 491 */ SyscallDesc("unused#491", unimplementedFunc),
985  /* 492 */ SyscallDesc("unused#492", unimplementedFunc),
986  /* 493 */ SyscallDesc("unused#493", unimplementedFunc),
987  /* 494 */ SyscallDesc("unused#494", unimplementedFunc),
988  /* 495 */ SyscallDesc("unused#495", unimplementedFunc),
989  /* 496 */ SyscallDesc("unused#496", unimplementedFunc),
990  /* 497 */ SyscallDesc("unused#497", unimplementedFunc),
991  /* 498 */ SyscallDesc("unused#498", unimplementedFunc),
992  /* 499 */ SyscallDesc("unused#499", unimplementedFunc),
993  /* 500 */ SyscallDesc("unused#500", unimplementedFunc),
994  /* 501 */ SyscallDesc("unused#501", unimplementedFunc),
995  /* 502 */ SyscallDesc("unused#502", unimplementedFunc),
996  /* 503 */ SyscallDesc("unused#503", unimplementedFunc),
997  /* 504 */ SyscallDesc("unused#504", unimplementedFunc),
998  /* 505 */ SyscallDesc("unused#505", unimplementedFunc),
999  /* 506 */ SyscallDesc("unused#506", unimplementedFunc),
1000  /* 507 */ SyscallDesc("unused#507", unimplementedFunc),
1001  /* 508 */ SyscallDesc("unused#508", unimplementedFunc),
1002  /* 509 */ SyscallDesc("unused#509", unimplementedFunc),
1003  /* 510 */ SyscallDesc("unused#510", unimplementedFunc),
1004  /* 511 */ SyscallDesc("unused#511", unimplementedFunc),
1005  /* 512 */ SyscallDesc("unused#512", unimplementedFunc),
1006  /* 513 */ SyscallDesc("unused#513", unimplementedFunc),
1007  /* 514 */ SyscallDesc("unused#514", unimplementedFunc),
1008  /* 515 */ SyscallDesc("unused#515", unimplementedFunc),
1009  /* 516 */ SyscallDesc("unused#516", unimplementedFunc),
1010  /* 517 */ SyscallDesc("unused#517", unimplementedFunc),
1011  /* 518 */ SyscallDesc("unused#518", unimplementedFunc),
1012  /* 519 */ SyscallDesc("unused#519", unimplementedFunc),
1013  /* 520 */ SyscallDesc("unused#520", unimplementedFunc),
1014  /* 521 */ SyscallDesc("unused#521", unimplementedFunc),
1015  /* 522 */ SyscallDesc("unused#522", unimplementedFunc),
1016  /* 523 */ SyscallDesc("unused#523", unimplementedFunc),
1017  /* 524 */ SyscallDesc("unused#524", unimplementedFunc),
1018  /* 525 */ SyscallDesc("unused#525", unimplementedFunc),
1019  /* 526 */ SyscallDesc("unused#526", unimplementedFunc),
1020  /* 527 */ SyscallDesc("unused#527", unimplementedFunc),
1021  /* 528 */ SyscallDesc("unused#528", unimplementedFunc),
1022  /* 529 */ SyscallDesc("unused#529", unimplementedFunc),
1023  /* 530 */ SyscallDesc("unused#530", unimplementedFunc),
1024  /* 531 */ SyscallDesc("unused#531", unimplementedFunc),
1025  /* 532 */ SyscallDesc("unused#532", unimplementedFunc),
1026  /* 533 */ SyscallDesc("unused#533", unimplementedFunc),
1027  /* 534 */ SyscallDesc("unused#534", unimplementedFunc),
1028  /* 535 */ SyscallDesc("unused#535", unimplementedFunc),
1029  /* 536 */ SyscallDesc("unused#536", unimplementedFunc),
1030  /* 537 */ SyscallDesc("unused#537", unimplementedFunc),
1031  /* 538 */ SyscallDesc("unused#538", unimplementedFunc),
1032  /* 539 */ SyscallDesc("unused#539", unimplementedFunc),
1033  /* 540 */ SyscallDesc("unused#540", unimplementedFunc),
1034  /* 541 */ SyscallDesc("unused#541", unimplementedFunc),
1035  /* 542 */ SyscallDesc("unused#542", unimplementedFunc),
1036  /* 543 */ SyscallDesc("unused#543", unimplementedFunc),
1037  /* 544 */ SyscallDesc("unused#544", unimplementedFunc),
1038  /* 545 */ SyscallDesc("unused#545", unimplementedFunc),
1039  /* 546 */ SyscallDesc("unused#546", unimplementedFunc),
1040  /* 547 */ SyscallDesc("unused#547", unimplementedFunc),
1041  /* 548 */ SyscallDesc("unused#548", unimplementedFunc),
1042  /* 549 */ SyscallDesc("unused#549", unimplementedFunc),
1043  /* 550 */ SyscallDesc("unused#550", unimplementedFunc),
1044  /* 551 */ SyscallDesc("unused#551", unimplementedFunc),
1045  /* 552 */ SyscallDesc("unused#552", unimplementedFunc),
1046  /* 553 */ SyscallDesc("unused#553", unimplementedFunc),
1047  /* 554 */ SyscallDesc("unused#554", unimplementedFunc),
1048  /* 555 */ SyscallDesc("unused#555", unimplementedFunc),
1049  /* 556 */ SyscallDesc("unused#556", unimplementedFunc),
1050  /* 557 */ SyscallDesc("unused#557", unimplementedFunc),
1051  /* 558 */ SyscallDesc("unused#558", unimplementedFunc),
1052  /* 559 */ SyscallDesc("unused#559", unimplementedFunc),
1053  /* 560 */ SyscallDesc("unused#560", unimplementedFunc),
1054  /* 561 */ SyscallDesc("unused#561", unimplementedFunc),
1055  /* 562 */ SyscallDesc("unused#562", unimplementedFunc),
1056  /* 563 */ SyscallDesc("unused#563", unimplementedFunc),
1057  /* 564 */ SyscallDesc("unused#564", unimplementedFunc),
1058  /* 565 */ SyscallDesc("unused#565", unimplementedFunc),
1059  /* 566 */ SyscallDesc("unused#566", unimplementedFunc),
1060  /* 567 */ SyscallDesc("unused#567", unimplementedFunc),
1061  /* 568 */ SyscallDesc("unused#568", unimplementedFunc),
1062  /* 569 */ SyscallDesc("unused#569", unimplementedFunc),
1063  /* 570 */ SyscallDesc("unused#570", unimplementedFunc),
1064  /* 571 */ SyscallDesc("unused#571", unimplementedFunc),
1065  /* 572 */ SyscallDesc("unused#572", unimplementedFunc),
1066  /* 573 */ SyscallDesc("unused#573", unimplementedFunc),
1067  /* 574 */ SyscallDesc("unused#574", unimplementedFunc),
1068  /* 575 */ SyscallDesc("unused#575", unimplementedFunc),
1069  /* 576 */ SyscallDesc("unused#576", unimplementedFunc),
1070  /* 577 */ SyscallDesc("unused#577", unimplementedFunc),
1071  /* 578 */ SyscallDesc("unused#578", unimplementedFunc),
1072  /* 579 */ SyscallDesc("unused#579", unimplementedFunc),
1073  /* 580 */ SyscallDesc("unused#580", unimplementedFunc),
1074  /* 581 */ SyscallDesc("unused#581", unimplementedFunc),
1075  /* 582 */ SyscallDesc("unused#582", unimplementedFunc),
1076  /* 583 */ SyscallDesc("unused#583", unimplementedFunc),
1077  /* 584 */ SyscallDesc("unused#584", unimplementedFunc),
1078  /* 585 */ SyscallDesc("unused#585", unimplementedFunc),
1079  /* 586 */ SyscallDesc("unused#586", unimplementedFunc),
1080  /* 587 */ SyscallDesc("unused#587", unimplementedFunc),
1081  /* 588 */ SyscallDesc("unused#588", unimplementedFunc),
1082  /* 589 */ SyscallDesc("unused#589", unimplementedFunc),
1083  /* 590 */ SyscallDesc("unused#590", unimplementedFunc),
1084  /* 591 */ SyscallDesc("unused#591", unimplementedFunc),
1085  /* 592 */ SyscallDesc("unused#592", unimplementedFunc),
1086  /* 593 */ SyscallDesc("unused#593", unimplementedFunc),
1087  /* 594 */ SyscallDesc("unused#594", unimplementedFunc),
1088  /* 595 */ SyscallDesc("unused#595", unimplementedFunc),
1089  /* 596 */ SyscallDesc("unused#596", unimplementedFunc),
1090  /* 597 */ SyscallDesc("unused#597", unimplementedFunc),
1091  /* 598 */ SyscallDesc("unused#598", unimplementedFunc),
1092  /* 599 */ SyscallDesc("unused#599", unimplementedFunc),
1093  /* 600 */ SyscallDesc("unused#600", unimplementedFunc),
1094  /* 601 */ SyscallDesc("unused#601", unimplementedFunc),
1095  /* 602 */ SyscallDesc("unused#602", unimplementedFunc),
1096  /* 603 */ SyscallDesc("unused#603", unimplementedFunc),
1097  /* 604 */ SyscallDesc("unused#604", unimplementedFunc),
1098  /* 605 */ SyscallDesc("unused#605", unimplementedFunc),
1099  /* 606 */ SyscallDesc("unused#606", unimplementedFunc),
1100  /* 607 */ SyscallDesc("unused#607", unimplementedFunc),
1101  /* 608 */ SyscallDesc("unused#608", unimplementedFunc),
1102  /* 609 */ SyscallDesc("unused#609", unimplementedFunc),
1103  /* 610 */ SyscallDesc("unused#610", unimplementedFunc),
1104  /* 611 */ SyscallDesc("unused#611", unimplementedFunc),
1105  /* 612 */ SyscallDesc("unused#612", unimplementedFunc),
1106  /* 613 */ SyscallDesc("unused#613", unimplementedFunc),
1107  /* 614 */ SyscallDesc("unused#614", unimplementedFunc),
1108  /* 615 */ SyscallDesc("unused#615", unimplementedFunc),
1109  /* 616 */ SyscallDesc("unused#616", unimplementedFunc),
1110  /* 617 */ SyscallDesc("unused#617", unimplementedFunc),
1111  /* 618 */ SyscallDesc("unused#618", unimplementedFunc),
1112  /* 619 */ SyscallDesc("unused#619", unimplementedFunc),
1113  /* 620 */ SyscallDesc("unused#620", unimplementedFunc),
1114  /* 621 */ SyscallDesc("unused#621", unimplementedFunc),
1115  /* 622 */ SyscallDesc("unused#622", unimplementedFunc),
1116  /* 623 */ SyscallDesc("unused#623", unimplementedFunc),
1117  /* 624 */ SyscallDesc("unused#624", unimplementedFunc),
1118  /* 625 */ SyscallDesc("unused#625", unimplementedFunc),
1119  /* 626 */ SyscallDesc("unused#626", unimplementedFunc),
1120  /* 627 */ SyscallDesc("unused#627", unimplementedFunc),
1121  /* 628 */ SyscallDesc("unused#628", unimplementedFunc),
1122  /* 629 */ SyscallDesc("unused#629", unimplementedFunc),
1123  /* 630 */ SyscallDesc("unused#630", unimplementedFunc),
1124  /* 631 */ SyscallDesc("unused#631", unimplementedFunc),
1125  /* 632 */ SyscallDesc("unused#632", unimplementedFunc),
1126  /* 633 */ SyscallDesc("unused#633", unimplementedFunc),
1127  /* 634 */ SyscallDesc("unused#634", unimplementedFunc),
1128  /* 635 */ SyscallDesc("unused#635", unimplementedFunc),
1129  /* 636 */ SyscallDesc("unused#636", unimplementedFunc),
1130  /* 637 */ SyscallDesc("unused#637", unimplementedFunc),
1131  /* 638 */ SyscallDesc("unused#638", unimplementedFunc),
1132  /* 639 */ SyscallDesc("unused#639", unimplementedFunc),
1133  /* 640 */ SyscallDesc("unused#640", unimplementedFunc),
1134  /* 641 */ SyscallDesc("unused#641", unimplementedFunc),
1135  /* 642 */ SyscallDesc("unused#642", unimplementedFunc),
1136  /* 643 */ SyscallDesc("unused#643", unimplementedFunc),
1137  /* 644 */ SyscallDesc("unused#644", unimplementedFunc),
1138  /* 645 */ SyscallDesc("unused#645", unimplementedFunc),
1139  /* 646 */ SyscallDesc("unused#646", unimplementedFunc),
1140  /* 647 */ SyscallDesc("unused#647", unimplementedFunc),
1141  /* 648 */ SyscallDesc("unused#648", unimplementedFunc),
1142  /* 649 */ SyscallDesc("unused#649", unimplementedFunc),
1143  /* 650 */ SyscallDesc("unused#650", unimplementedFunc),
1144  /* 651 */ SyscallDesc("unused#651", unimplementedFunc),
1145  /* 652 */ SyscallDesc("unused#652", unimplementedFunc),
1146  /* 653 */ SyscallDesc("unused#653", unimplementedFunc),
1147  /* 654 */ SyscallDesc("unused#654", unimplementedFunc),
1148  /* 655 */ SyscallDesc("unused#655", unimplementedFunc),
1149  /* 656 */ SyscallDesc("unused#656", unimplementedFunc),
1150  /* 657 */ SyscallDesc("unused#657", unimplementedFunc),
1151  /* 658 */ SyscallDesc("unused#658", unimplementedFunc),
1152  /* 659 */ SyscallDesc("unused#659", unimplementedFunc),
1153  /* 660 */ SyscallDesc("unused#660", unimplementedFunc),
1154  /* 661 */ SyscallDesc("unused#661", unimplementedFunc),
1155  /* 662 */ SyscallDesc("unused#662", unimplementedFunc),
1156  /* 663 */ SyscallDesc("unused#663", unimplementedFunc),
1157  /* 664 */ SyscallDesc("unused#664", unimplementedFunc),
1158  /* 665 */ SyscallDesc("unused#665", unimplementedFunc),
1159  /* 666 */ SyscallDesc("unused#666", unimplementedFunc),
1160  /* 667 */ SyscallDesc("unused#667", unimplementedFunc),
1161  /* 668 */ SyscallDesc("unused#668", unimplementedFunc),
1162  /* 669 */ SyscallDesc("unused#669", unimplementedFunc),
1163  /* 670 */ SyscallDesc("unused#670", unimplementedFunc),
1164  /* 671 */ SyscallDesc("unused#671", unimplementedFunc),
1165  /* 672 */ SyscallDesc("unused#672", unimplementedFunc),
1166  /* 673 */ SyscallDesc("unused#673", unimplementedFunc),
1167  /* 674 */ SyscallDesc("unused#674", unimplementedFunc),
1168  /* 675 */ SyscallDesc("unused#675", unimplementedFunc),
1169  /* 676 */ SyscallDesc("unused#676", unimplementedFunc),
1170  /* 677 */ SyscallDesc("unused#677", unimplementedFunc),
1171  /* 678 */ SyscallDesc("unused#678", unimplementedFunc),
1172  /* 679 */ SyscallDesc("unused#679", unimplementedFunc),
1173  /* 680 */ SyscallDesc("unused#680", unimplementedFunc),
1174  /* 681 */ SyscallDesc("unused#681", unimplementedFunc),
1175  /* 682 */ SyscallDesc("unused#682", unimplementedFunc),
1176  /* 683 */ SyscallDesc("unused#683", unimplementedFunc),
1177  /* 684 */ SyscallDesc("unused#684", unimplementedFunc),
1178  /* 685 */ SyscallDesc("unused#685", unimplementedFunc),
1179  /* 686 */ SyscallDesc("unused#686", unimplementedFunc),
1180  /* 687 */ SyscallDesc("unused#687", unimplementedFunc),
1181  /* 688 */ SyscallDesc("unused#688", unimplementedFunc),
1182  /* 689 */ SyscallDesc("unused#689", unimplementedFunc),
1183  /* 690 */ SyscallDesc("unused#690", unimplementedFunc),
1184  /* 691 */ SyscallDesc("unused#691", unimplementedFunc),
1185  /* 692 */ SyscallDesc("unused#692", unimplementedFunc),
1186  /* 693 */ SyscallDesc("unused#693", unimplementedFunc),
1187  /* 694 */ SyscallDesc("unused#694", unimplementedFunc),
1188  /* 695 */ SyscallDesc("unused#695", unimplementedFunc),
1189  /* 696 */ SyscallDesc("unused#696", unimplementedFunc),
1190  /* 697 */ SyscallDesc("unused#697", unimplementedFunc),
1191  /* 698 */ SyscallDesc("unused#698", unimplementedFunc),
1192  /* 699 */ SyscallDesc("unused#699", unimplementedFunc),
1193  /* 700 */ SyscallDesc("unused#700", unimplementedFunc),
1194  /* 701 */ SyscallDesc("unused#701", unimplementedFunc),
1195  /* 702 */ SyscallDesc("unused#702", unimplementedFunc),
1196  /* 703 */ SyscallDesc("unused#703", unimplementedFunc),
1197  /* 704 */ SyscallDesc("unused#704", unimplementedFunc),
1198  /* 705 */ SyscallDesc("unused#705", unimplementedFunc),
1199  /* 706 */ SyscallDesc("unused#706", unimplementedFunc),
1200  /* 707 */ SyscallDesc("unused#707", unimplementedFunc),
1201  /* 708 */ SyscallDesc("unused#708", unimplementedFunc),
1202  /* 709 */ SyscallDesc("unused#709", unimplementedFunc),
1203  /* 710 */ SyscallDesc("unused#710", unimplementedFunc),
1204  /* 711 */ SyscallDesc("unused#711", unimplementedFunc),
1205  /* 712 */ SyscallDesc("unused#712", unimplementedFunc),
1206  /* 713 */ SyscallDesc("unused#713", unimplementedFunc),
1207  /* 714 */ SyscallDesc("unused#714", unimplementedFunc),
1208  /* 715 */ SyscallDesc("unused#715", unimplementedFunc),
1209  /* 716 */ SyscallDesc("unused#716", unimplementedFunc),
1210  /* 717 */ SyscallDesc("unused#717", unimplementedFunc),
1211  /* 718 */ SyscallDesc("unused#718", unimplementedFunc),
1212  /* 719 */ SyscallDesc("unused#719", unimplementedFunc),
1213  /* 720 */ SyscallDesc("unused#720", unimplementedFunc),
1214  /* 721 */ SyscallDesc("unused#721", unimplementedFunc),
1215  /* 722 */ SyscallDesc("unused#722", unimplementedFunc),
1216  /* 723 */ SyscallDesc("unused#723", unimplementedFunc),
1217  /* 724 */ SyscallDesc("unused#724", unimplementedFunc),
1218  /* 725 */ SyscallDesc("unused#725", unimplementedFunc),
1219  /* 726 */ SyscallDesc("unused#726", unimplementedFunc),
1220  /* 727 */ SyscallDesc("unused#727", unimplementedFunc),
1221  /* 728 */ SyscallDesc("unused#728", unimplementedFunc),
1222  /* 729 */ SyscallDesc("unused#729", unimplementedFunc),
1223  /* 730 */ SyscallDesc("unused#730", unimplementedFunc),
1224  /* 731 */ SyscallDesc("unused#731", unimplementedFunc),
1225  /* 732 */ SyscallDesc("unused#732", unimplementedFunc),
1226  /* 733 */ SyscallDesc("unused#733", unimplementedFunc),
1227  /* 734 */ SyscallDesc("unused#734", unimplementedFunc),
1228  /* 735 */ SyscallDesc("unused#735", unimplementedFunc),
1229  /* 736 */ SyscallDesc("unused#736", unimplementedFunc),
1230  /* 737 */ SyscallDesc("unused#737", unimplementedFunc),
1231  /* 738 */ SyscallDesc("unused#738", unimplementedFunc),
1232  /* 739 */ SyscallDesc("unused#739", unimplementedFunc),
1233  /* 740 */ SyscallDesc("unused#740", unimplementedFunc),
1234  /* 741 */ SyscallDesc("unused#741", unimplementedFunc),
1235  /* 742 */ SyscallDesc("unused#742", unimplementedFunc),
1236  /* 743 */ SyscallDesc("unused#743", unimplementedFunc),
1237  /* 744 */ SyscallDesc("unused#744", unimplementedFunc),
1238  /* 745 */ SyscallDesc("unused#745", unimplementedFunc),
1239  /* 746 */ SyscallDesc("unused#746", unimplementedFunc),
1240  /* 747 */ SyscallDesc("unused#747", unimplementedFunc),
1241  /* 748 */ SyscallDesc("unused#748", unimplementedFunc),
1242  /* 749 */ SyscallDesc("unused#749", unimplementedFunc),
1243  /* 750 */ SyscallDesc("unused#750", unimplementedFunc),
1244  /* 751 */ SyscallDesc("unused#751", unimplementedFunc),
1245  /* 752 */ SyscallDesc("unused#752", unimplementedFunc),
1246  /* 753 */ SyscallDesc("unused#753", unimplementedFunc),
1247  /* 754 */ SyscallDesc("unused#754", unimplementedFunc),
1248  /* 755 */ SyscallDesc("unused#755", unimplementedFunc),
1249  /* 756 */ SyscallDesc("unused#756", unimplementedFunc),
1250  /* 757 */ SyscallDesc("unused#757", unimplementedFunc),
1251  /* 758 */ SyscallDesc("unused#758", unimplementedFunc),
1252  /* 759 */ SyscallDesc("unused#759", unimplementedFunc),
1253  /* 760 */ SyscallDesc("unused#760", unimplementedFunc),
1254  /* 761 */ SyscallDesc("unused#761", unimplementedFunc),
1255  /* 762 */ SyscallDesc("unused#762", unimplementedFunc),
1256  /* 763 */ SyscallDesc("unused#763", unimplementedFunc),
1257  /* 764 */ SyscallDesc("unused#764", unimplementedFunc),
1258  /* 765 */ SyscallDesc("unused#765", unimplementedFunc),
1259  /* 766 */ SyscallDesc("unused#766", unimplementedFunc),
1260  /* 767 */ SyscallDesc("unused#767", unimplementedFunc),
1261  /* 768 */ SyscallDesc("unused#768", unimplementedFunc),
1262  /* 769 */ SyscallDesc("unused#769", unimplementedFunc),
1263  /* 770 */ SyscallDesc("unused#770", unimplementedFunc),
1264  /* 771 */ SyscallDesc("unused#771", unimplementedFunc),
1265  /* 772 */ SyscallDesc("unused#772", unimplementedFunc),
1266  /* 773 */ SyscallDesc("unused#773", unimplementedFunc),
1267  /* 774 */ SyscallDesc("unused#774", unimplementedFunc),
1268  /* 775 */ SyscallDesc("unused#775", unimplementedFunc),
1269  /* 776 */ SyscallDesc("unused#776", unimplementedFunc),
1270  /* 777 */ SyscallDesc("unused#777", unimplementedFunc),
1271  /* 778 */ SyscallDesc("unused#778", unimplementedFunc),
1272  /* 779 */ SyscallDesc("unused#779", unimplementedFunc),
1273  /* 780 */ SyscallDesc("unused#780", unimplementedFunc),
1274  /* 781 */ SyscallDesc("unused#781", unimplementedFunc),
1275  /* 782 */ SyscallDesc("unused#782", unimplementedFunc),
1276  /* 783 */ SyscallDesc("unused#783", unimplementedFunc),
1277  /* 784 */ SyscallDesc("unused#784", unimplementedFunc),
1278  /* 785 */ SyscallDesc("unused#785", unimplementedFunc),
1279  /* 786 */ SyscallDesc("unused#786", unimplementedFunc),
1280  /* 787 */ SyscallDesc("unused#787", unimplementedFunc),
1281  /* 788 */ SyscallDesc("unused#788", unimplementedFunc),
1282  /* 789 */ SyscallDesc("unused#789", unimplementedFunc),
1283  /* 790 */ SyscallDesc("unused#790", unimplementedFunc),
1284  /* 791 */ SyscallDesc("unused#791", unimplementedFunc),
1285  /* 792 */ SyscallDesc("unused#792", unimplementedFunc),
1286  /* 793 */ SyscallDesc("unused#793", unimplementedFunc),
1287  /* 794 */ SyscallDesc("unused#794", unimplementedFunc),
1288  /* 795 */ SyscallDesc("unused#795", unimplementedFunc),
1289  /* 796 */ SyscallDesc("unused#796", unimplementedFunc),
1290  /* 797 */ SyscallDesc("unused#797", unimplementedFunc),
1291  /* 798 */ SyscallDesc("unused#798", unimplementedFunc),
1292  /* 799 */ SyscallDesc("unused#799", unimplementedFunc),
1293  /* 800 */ SyscallDesc("unused#800", unimplementedFunc),
1294  /* 801 */ SyscallDesc("unused#801", unimplementedFunc),
1295  /* 802 */ SyscallDesc("unused#802", unimplementedFunc),
1296  /* 803 */ SyscallDesc("unused#803", unimplementedFunc),
1297  /* 804 */ SyscallDesc("unused#804", unimplementedFunc),
1298  /* 805 */ SyscallDesc("unused#805", unimplementedFunc),
1299  /* 806 */ SyscallDesc("unused#806", unimplementedFunc),
1300  /* 807 */ SyscallDesc("unused#807", unimplementedFunc),
1301  /* 808 */ SyscallDesc("unused#808", unimplementedFunc),
1302  /* 809 */ SyscallDesc("unused#809", unimplementedFunc),
1303  /* 810 */ SyscallDesc("unused#810", unimplementedFunc),
1304  /* 811 */ SyscallDesc("unused#811", unimplementedFunc),
1305  /* 812 */ SyscallDesc("unused#812", unimplementedFunc),
1306  /* 813 */ SyscallDesc("unused#813", unimplementedFunc),
1307  /* 814 */ SyscallDesc("unused#814", unimplementedFunc),
1308  /* 815 */ SyscallDesc("unused#815", unimplementedFunc),
1309  /* 816 */ SyscallDesc("unused#816", unimplementedFunc),
1310  /* 817 */ SyscallDesc("unused#817", unimplementedFunc),
1311  /* 818 */ SyscallDesc("unused#818", unimplementedFunc),
1312  /* 819 */ SyscallDesc("unused#819", unimplementedFunc),
1313  /* 820 */ SyscallDesc("unused#820", unimplementedFunc),
1314  /* 821 */ SyscallDesc("unused#821", unimplementedFunc),
1315  /* 822 */ SyscallDesc("unused#822", unimplementedFunc),
1316  /* 823 */ SyscallDesc("unused#823", unimplementedFunc),
1317  /* 824 */ SyscallDesc("unused#824", unimplementedFunc),
1318  /* 825 */ SyscallDesc("unused#825", unimplementedFunc),
1319  /* 826 */ SyscallDesc("unused#826", unimplementedFunc),
1320  /* 827 */ SyscallDesc("unused#827", unimplementedFunc),
1321  /* 828 */ SyscallDesc("unused#828", unimplementedFunc),
1322  /* 829 */ SyscallDesc("unused#829", unimplementedFunc),
1323  /* 830 */ SyscallDesc("unused#830", unimplementedFunc),
1324  /* 831 */ SyscallDesc("unused#831", unimplementedFunc),
1325  /* 832 */ SyscallDesc("unused#832", unimplementedFunc),
1326  /* 833 */ SyscallDesc("unused#833", unimplementedFunc),
1327  /* 834 */ SyscallDesc("unused#834", unimplementedFunc),
1328  /* 835 */ SyscallDesc("unused#835", unimplementedFunc),
1329  /* 836 */ SyscallDesc("unused#836", unimplementedFunc),
1330  /* 837 */ SyscallDesc("unused#837", unimplementedFunc),
1331  /* 838 */ SyscallDesc("unused#838", unimplementedFunc),
1332  /* 839 */ SyscallDesc("unused#839", unimplementedFunc),
1333  /* 840 */ SyscallDesc("unused#840", unimplementedFunc),
1334  /* 841 */ SyscallDesc("unused#841", unimplementedFunc),
1335  /* 842 */ SyscallDesc("unused#842", unimplementedFunc),
1336  /* 843 */ SyscallDesc("unused#843", unimplementedFunc),
1337  /* 844 */ SyscallDesc("unused#844", unimplementedFunc),
1338  /* 845 */ SyscallDesc("unused#845", unimplementedFunc),
1339  /* 846 */ SyscallDesc("unused#846", unimplementedFunc),
1340  /* 847 */ SyscallDesc("unused#847", unimplementedFunc),
1341  /* 848 */ SyscallDesc("unused#848", unimplementedFunc),
1342  /* 849 */ SyscallDesc("unused#849", unimplementedFunc),
1343  /* 850 */ SyscallDesc("unused#850", unimplementedFunc),
1344  /* 851 */ SyscallDesc("unused#851", unimplementedFunc),
1345  /* 852 */ SyscallDesc("unused#852", unimplementedFunc),
1346  /* 853 */ SyscallDesc("unused#853", unimplementedFunc),
1347  /* 854 */ SyscallDesc("unused#854", unimplementedFunc),
1348  /* 855 */ SyscallDesc("unused#855", unimplementedFunc),
1349  /* 856 */ SyscallDesc("unused#856", unimplementedFunc),
1350  /* 857 */ SyscallDesc("unused#857", unimplementedFunc),
1351  /* 858 */ SyscallDesc("unused#858", unimplementedFunc),
1352  /* 859 */ SyscallDesc("unused#859", unimplementedFunc),
1353  /* 860 */ SyscallDesc("unused#860", unimplementedFunc),
1354  /* 861 */ SyscallDesc("unused#861", unimplementedFunc),
1355  /* 862 */ SyscallDesc("unused#862", unimplementedFunc),
1356  /* 863 */ SyscallDesc("unused#863", unimplementedFunc),
1357  /* 864 */ SyscallDesc("unused#864", unimplementedFunc),
1358  /* 865 */ SyscallDesc("unused#865", unimplementedFunc),
1359  /* 866 */ SyscallDesc("unused#866", unimplementedFunc),
1360  /* 867 */ SyscallDesc("unused#867", unimplementedFunc),
1361  /* 868 */ SyscallDesc("unused#868", unimplementedFunc),
1362  /* 869 */ SyscallDesc("unused#869", unimplementedFunc),
1363  /* 870 */ SyscallDesc("unused#870", unimplementedFunc),
1364  /* 871 */ SyscallDesc("unused#871", unimplementedFunc),
1365  /* 872 */ SyscallDesc("unused#872", unimplementedFunc),
1366  /* 873 */ SyscallDesc("unused#873", unimplementedFunc),
1367  /* 874 */ SyscallDesc("unused#874", unimplementedFunc),
1368  /* 875 */ SyscallDesc("unused#875", unimplementedFunc),
1369  /* 876 */ SyscallDesc("unused#876", unimplementedFunc),
1370  /* 877 */ SyscallDesc("unused#877", unimplementedFunc),
1371  /* 878 */ SyscallDesc("unused#878", unimplementedFunc),
1372  /* 879 */ SyscallDesc("unused#879", unimplementedFunc),
1373  /* 880 */ SyscallDesc("unused#880", unimplementedFunc),
1374  /* 881 */ SyscallDesc("unused#881", unimplementedFunc),
1375  /* 882 */ SyscallDesc("unused#882", unimplementedFunc),
1376  /* 883 */ SyscallDesc("unused#883", unimplementedFunc),
1377  /* 884 */ SyscallDesc("unused#884", unimplementedFunc),
1378  /* 885 */ SyscallDesc("unused#885", unimplementedFunc),
1379  /* 886 */ SyscallDesc("unused#886", unimplementedFunc),
1380  /* 887 */ SyscallDesc("unused#887", unimplementedFunc),
1381  /* 888 */ SyscallDesc("unused#888", unimplementedFunc),
1382  /* 889 */ SyscallDesc("unused#889", unimplementedFunc),
1383  /* 890 */ SyscallDesc("unused#890", unimplementedFunc),
1384  /* 891 */ SyscallDesc("unused#891", unimplementedFunc),
1385  /* 892 */ SyscallDesc("unused#892", unimplementedFunc),
1386  /* 893 */ SyscallDesc("unused#893", unimplementedFunc),
1387  /* 894 */ SyscallDesc("unused#894", unimplementedFunc),
1388  /* 895 */ SyscallDesc("unused#895", unimplementedFunc),
1389  /* 896 */ SyscallDesc("unused#896", unimplementedFunc),
1390  /* 897 */ SyscallDesc("unused#897", unimplementedFunc),
1391  /* 898 */ SyscallDesc("unused#898", unimplementedFunc),
1392  /* 899 */ SyscallDesc("unused#899", unimplementedFunc),
1393  /* 900 */ SyscallDesc("unused#900", unimplementedFunc),
1394  /* 901 */ SyscallDesc("unused#901", unimplementedFunc),
1395  /* 902 */ SyscallDesc("unused#902", unimplementedFunc),
1396  /* 903 */ SyscallDesc("unused#903", unimplementedFunc),
1397  /* 904 */ SyscallDesc("unused#904", unimplementedFunc),
1398  /* 905 */ SyscallDesc("unused#905", unimplementedFunc),
1399  /* 906 */ SyscallDesc("unused#906", unimplementedFunc),
1400  /* 907 */ SyscallDesc("unused#907", unimplementedFunc),
1401  /* 908 */ SyscallDesc("unused#908", unimplementedFunc),
1402  /* 909 */ SyscallDesc("unused#909", unimplementedFunc),
1403  /* 910 */ SyscallDesc("unused#910", unimplementedFunc),
1404  /* 911 */ SyscallDesc("unused#911", unimplementedFunc),
1405  /* 912 */ SyscallDesc("unused#912", unimplementedFunc),
1406  /* 913 */ SyscallDesc("unused#913", unimplementedFunc),
1407  /* 914 */ SyscallDesc("unused#914", unimplementedFunc),
1408  /* 915 */ SyscallDesc("unused#915", unimplementedFunc),
1409  /* 916 */ SyscallDesc("unused#916", unimplementedFunc),
1410  /* 917 */ SyscallDesc("unused#917", unimplementedFunc),
1411  /* 918 */ SyscallDesc("unused#918", unimplementedFunc),
1412  /* 919 */ SyscallDesc("unused#919", unimplementedFunc),
1413  /* 920 */ SyscallDesc("unused#920", unimplementedFunc),
1414  /* 921 */ SyscallDesc("unused#921", unimplementedFunc),
1415  /* 922 */ SyscallDesc("unused#922", unimplementedFunc),
1416  /* 923 */ SyscallDesc("unused#923", unimplementedFunc),
1417  /* 924 */ SyscallDesc("unused#924", unimplementedFunc),
1418  /* 925 */ SyscallDesc("unused#925", unimplementedFunc),
1419  /* 926 */ SyscallDesc("unused#926", unimplementedFunc),
1420  /* 927 */ SyscallDesc("unused#927", unimplementedFunc),
1421  /* 928 */ SyscallDesc("unused#928", unimplementedFunc),
1422  /* 929 */ SyscallDesc("unused#929", unimplementedFunc),
1423  /* 930 */ SyscallDesc("unused#930", unimplementedFunc),
1424  /* 931 */ SyscallDesc("unused#931", unimplementedFunc),
1425  /* 932 */ SyscallDesc("unused#932", unimplementedFunc),
1426  /* 933 */ SyscallDesc("unused#933", unimplementedFunc),
1427  /* 934 */ SyscallDesc("unused#934", unimplementedFunc),
1428  /* 935 */ SyscallDesc("unused#935", unimplementedFunc),
1429  /* 936 */ SyscallDesc("unused#936", unimplementedFunc),
1430  /* 937 */ SyscallDesc("unused#937", unimplementedFunc),
1431  /* 938 */ SyscallDesc("unused#938", unimplementedFunc),
1432  /* 939 */ SyscallDesc("unused#939", unimplementedFunc),
1433  /* 940 */ SyscallDesc("unused#940", unimplementedFunc),
1434  /* 941 */ SyscallDesc("unused#941", unimplementedFunc),
1435  /* 942 */ SyscallDesc("unused#942", unimplementedFunc),
1436  /* 943 */ SyscallDesc("unused#943", unimplementedFunc),
1437  /* 944 */ SyscallDesc("unused#944", unimplementedFunc),
1438  /* 945 */ SyscallDesc("unused#945", unimplementedFunc),
1439  /* 946 */ SyscallDesc("unused#946", unimplementedFunc),
1440  /* 947 */ SyscallDesc("unused#947", unimplementedFunc),
1441  /* 948 */ SyscallDesc("unused#948", unimplementedFunc),
1442  /* 949 */ SyscallDesc("unused#949", unimplementedFunc),
1443  /* 950 */ SyscallDesc("unused#950", unimplementedFunc),
1444  /* 951 */ SyscallDesc("unused#951", unimplementedFunc),
1445  /* 952 */ SyscallDesc("unused#952", unimplementedFunc),
1446  /* 953 */ SyscallDesc("unused#953", unimplementedFunc),
1447  /* 954 */ SyscallDesc("unused#954", unimplementedFunc),
1448  /* 955 */ SyscallDesc("unused#955", unimplementedFunc),
1449  /* 956 */ SyscallDesc("unused#956", unimplementedFunc),
1450  /* 957 */ SyscallDesc("unused#957", unimplementedFunc),
1451  /* 958 */ SyscallDesc("unused#958", unimplementedFunc),
1452  /* 959 */ SyscallDesc("unused#959", unimplementedFunc),
1453  /* 960 */ SyscallDesc("unused#960", unimplementedFunc),
1454  /* 961 */ SyscallDesc("unused#961", unimplementedFunc),
1455  /* 962 */ SyscallDesc("unused#962", unimplementedFunc),
1456  /* 963 */ SyscallDesc("unused#963", unimplementedFunc),
1457  /* 964 */ SyscallDesc("unused#964", unimplementedFunc),
1458  /* 965 */ SyscallDesc("unused#965", unimplementedFunc),
1459  /* 966 */ SyscallDesc("unused#966", unimplementedFunc),
1460  /* 967 */ SyscallDesc("unused#967", unimplementedFunc),
1461  /* 968 */ SyscallDesc("unused#968", unimplementedFunc),
1462  /* 969 */ SyscallDesc("unused#969", unimplementedFunc),
1463  /* 970 */ SyscallDesc("unused#970", unimplementedFunc),
1464  /* 971 */ SyscallDesc("unused#971", unimplementedFunc),
1465  /* 972 */ SyscallDesc("unused#972", unimplementedFunc),
1466  /* 973 */ SyscallDesc("unused#973", unimplementedFunc),
1467  /* 974 */ SyscallDesc("unused#974", unimplementedFunc),
1468  /* 975 */ SyscallDesc("unused#975", unimplementedFunc),
1469  /* 976 */ SyscallDesc("unused#976", unimplementedFunc),
1470  /* 977 */ SyscallDesc("unused#977", unimplementedFunc),
1471  /* 978 */ SyscallDesc("unused#978", unimplementedFunc),
1472  /* 979 */ SyscallDesc("unused#979", unimplementedFunc),
1473  /* 980 */ SyscallDesc("unused#980", unimplementedFunc),
1474  /* 981 */ SyscallDesc("unused#981", unimplementedFunc),
1475  /* 982 */ SyscallDesc("unused#982", unimplementedFunc),
1476  /* 983 */ SyscallDesc("unused#983", unimplementedFunc),
1477  /* 984 */ SyscallDesc("unused#984", unimplementedFunc),
1478  /* 985 */ SyscallDesc("unused#985", unimplementedFunc),
1479  /* 986 */ SyscallDesc("unused#986", unimplementedFunc),
1480  /* 987 */ SyscallDesc("unused#987", unimplementedFunc),
1481  /* 988 */ SyscallDesc("unused#988", unimplementedFunc),
1482  /* 989 */ SyscallDesc("unused#989", unimplementedFunc),
1483  /* 990 */ SyscallDesc("unused#990", unimplementedFunc),
1484  /* 991 */ SyscallDesc("unused#991", unimplementedFunc),
1485  /* 992 */ SyscallDesc("unused#992", unimplementedFunc),
1486  /* 993 */ SyscallDesc("unused#993", unimplementedFunc),
1487  /* 994 */ SyscallDesc("unused#994", unimplementedFunc),
1488  /* 995 */ SyscallDesc("unused#995", unimplementedFunc),
1489  /* 996 */ SyscallDesc("unused#996", unimplementedFunc),
1490  /* 997 */ SyscallDesc("unused#997", unimplementedFunc),
1491  /* 998 */ SyscallDesc("unused#998", unimplementedFunc),
1492  /* 999 */ SyscallDesc("unused#999", unimplementedFunc),
1493  /* 1000 */ SyscallDesc("unused#1000", unimplementedFunc),
1494  /* 1001 */ SyscallDesc("unused#1001", unimplementedFunc),
1495  /* 1002 */ SyscallDesc("unused#1002", unimplementedFunc),
1496  /* 1003 */ SyscallDesc("unused#1003", unimplementedFunc),
1497  /* 1004 */ SyscallDesc("unused#1004", unimplementedFunc),
1498  /* 1005 */ SyscallDesc("unused#1005", unimplementedFunc),
1499  /* 1006 */ SyscallDesc("unused#1006", unimplementedFunc),
1500  /* 1007 */ SyscallDesc("unused#1007", unimplementedFunc),
1501  /* 1008 */ SyscallDesc("unused#1008", unimplementedFunc),
1502  /* 1009 */ SyscallDesc("unused#1009", unimplementedFunc),
1503  /* 1010 */ SyscallDesc("unused#1010", unimplementedFunc),
1504  /* 1011 */ SyscallDesc("unused#1011", unimplementedFunc),
1505  /* 1012 */ SyscallDesc("unused#1012", unimplementedFunc),
1506  /* 1013 */ SyscallDesc("unused#1013", unimplementedFunc),
1507  /* 1014 */ SyscallDesc("unused#1014", unimplementedFunc),
1508  /* 1015 */ SyscallDesc("unused#1015", unimplementedFunc),
1509  /* 1016 */ SyscallDesc("unused#1016", unimplementedFunc),
1510  /* 1017 */ SyscallDesc("unused#1017", unimplementedFunc),
1511  /* 1018 */ SyscallDesc("unused#1018", unimplementedFunc),
1512  /* 1019 */ SyscallDesc("unused#1019", unimplementedFunc),
1513  /* 1020 */ SyscallDesc("unused#1020", unimplementedFunc),
1514  /* 1021 */ SyscallDesc("unused#1021", unimplementedFunc),
1515  /* 1022 */ SyscallDesc("unused#1022", unimplementedFunc),
1516  /* 1023 */ SyscallDesc("unused#1023", unimplementedFunc),
1517  /* 1024 */ SyscallDesc("open", openFunc<ArmLinux64>),
1518  /* 1025 */ SyscallDesc("link", unimplementedFunc),
1519  /* 1026 */ SyscallDesc("unlink", unlinkFunc),
1520  /* 1027 */ SyscallDesc("mknod", unimplementedFunc),
1521  /* 1028 */ SyscallDesc("chmod", chmodFunc<ArmLinux64>),
1522  /* 1029 */ SyscallDesc("chown", unimplementedFunc),
1523  /* 1030 */ SyscallDesc("mkdir", mkdirFunc),
1524  /* 1031 */ SyscallDesc("rmdir", unimplementedFunc),
1525  /* 1032 */ SyscallDesc("lchown", unimplementedFunc),
1526  /* 1033 */ SyscallDesc("access", accessFunc),
1527  /* 1034 */ SyscallDesc("rename", renameFunc),
1528  /* 1035 */ SyscallDesc("readlink", readlinkFunc),
1529  /* 1036 */ SyscallDesc("symlink", unimplementedFunc),
1530  /* 1037 */ SyscallDesc("utimes", unimplementedFunc),
1531  /* 1038 */ SyscallDesc("stat64", stat64Func<ArmLinux64>),
1532  /* 1039 */ SyscallDesc("lstat64", lstat64Func<ArmLinux64>),
1533  /* 1040 */ SyscallDesc("pipe", pipePseudoFunc),
1534  /* 1041 */ SyscallDesc("dup2", unimplementedFunc),
1535  /* 1042 */ SyscallDesc("epoll_create", unimplementedFunc),
1536  /* 1043 */ SyscallDesc("inotify_init", unimplementedFunc),
1537  /* 1044 */ SyscallDesc("eventfd", unimplementedFunc),
1538  /* 1045 */ SyscallDesc("signalfd", unimplementedFunc),
1539  /* 1046 */ SyscallDesc("sendfile", unimplementedFunc),
1540  /* 1047 */ SyscallDesc("ftruncate", ftruncateFunc),
1541  /* 1048 */ SyscallDesc("truncate", truncateFunc),
1542  /* 1049 */ SyscallDesc("stat", statFunc<ArmLinux64>),
1543  /* 1050 */ SyscallDesc("lstat", unimplementedFunc),
1544  /* 1051 */ SyscallDesc("fstat", fstatFunc<ArmLinux64>),
1545  /* 1052 */ SyscallDesc("fcntl", fcntlFunc),
1546  /* 1053 */ SyscallDesc("fadvise64", unimplementedFunc),
1547  /* 1054 */ SyscallDesc("newfstatat", unimplementedFunc),
1548  /* 1055 */ SyscallDesc("fstatfs", unimplementedFunc),
1549  /* 1056 */ SyscallDesc("statfs", unimplementedFunc),
1550  /* 1057 */ SyscallDesc("lseek", lseekFunc),
1551  /* 1058 */ SyscallDesc("mmap", mmapFunc<ArmLinux64>),
1552  /* 1059 */ SyscallDesc("alarm", unimplementedFunc),
1553  /* 1060 */ SyscallDesc("getpgrp", unimplementedFunc),
1554  /* 1061 */ SyscallDesc("pause", unimplementedFunc),
1555  /* 1062 */ SyscallDesc("time", timeFunc<ArmLinux64>),
1556  /* 1063 */ SyscallDesc("utime", unimplementedFunc),
1557  /* 1064 */ SyscallDesc("creat", unimplementedFunc),
1558  /* 1065 */ SyscallDesc("getdents", unimplementedFunc),
1559  /* 1066 */ SyscallDesc("futimesat", unimplementedFunc),
1560  /* 1067 */ SyscallDesc("select", unimplementedFunc),
1561  /* 1068 */ SyscallDesc("poll", unimplementedFunc),
1562  /* 1069 */ SyscallDesc("epoll_wait", unimplementedFunc),
1563  /* 1070 */ SyscallDesc("ustat", unimplementedFunc),
1564  /* 1071 */ SyscallDesc("vfork", unimplementedFunc),
1565  /* 1072 */ SyscallDesc("oldwait4", unimplementedFunc),
1566  /* 1073 */ SyscallDesc("recv", unimplementedFunc),
1567  /* 1074 */ SyscallDesc("send", unimplementedFunc),
1568  /* 1075 */ SyscallDesc("bdflush", unimplementedFunc),
1569  /* 1076 */ SyscallDesc("umount", unimplementedFunc),
1570  /* 1077 */ SyscallDesc("uselib", unimplementedFunc),
1571  /* 1078 */ SyscallDesc("_sysctl", unimplementedFunc),
1572  /* 1079 */ SyscallDesc("fork", unimplementedFunc)
1573 };
1574 
1576  /* 1 */ SyscallDesc("breakpoint", unimplementedFunc),
1577  /* 2 */ SyscallDesc("cacheflush", unimplementedFunc),
1578  /* 3 */ SyscallDesc("usr26", unimplementedFunc),
1579  /* 4 */ SyscallDesc("usr32", unimplementedFunc),
1580  /* 5 */ SyscallDesc("set_tls", setTLSFunc32)
1581 };
1582 
1583 // Indices 1, 3 and 4 are unallocated.
1585  /* 1 */ SyscallDesc("unallocated", unimplementedFunc),
1586  /* 2 */ SyscallDesc("cacheflush", unimplementedFunc),
1587  /* 3 */ SyscallDesc("unallocated", unimplementedFunc),
1588  /* 4 */ SyscallDesc("unallocated", unimplementedFunc),
1589  /* 5 */ SyscallDesc("set_tls", setTLSFunc64)
1590 };
1591 
1593  ObjectFile *objFile, ObjectFile::Arch _arch)
1594  : ArmProcess32(params, objFile, _arch)
1595 {
1596  SyscallTable table;
1597 
1598  table.descs = syscallDescs32;
1599  table.size = sizeof(syscallDescs32) / sizeof(SyscallDesc);
1600  table.base = 0;
1601  syscallTables.push_back(table);
1602  table.base = 0x900000;
1603  syscallTables.push_back(table);
1604 
1605  table.descs = privSyscallDescs32;
1606  table.size = sizeof(privSyscallDescs32) / sizeof(SyscallDesc);
1607  table.base = 0xf0001;
1608  syscallTables.push_back(table);
1609 }
1610 
1612  ObjectFile *objFile, ObjectFile::Arch _arch)
1613  : ArmProcess64(params, objFile, _arch)
1614 {
1615  SyscallTable table;
1616 
1617  table.descs = syscallDescs64;
1618  table.size = sizeof(syscallDescs64) / sizeof(SyscallDesc);
1619  table.base = 0;
1620  syscallTables.push_back(table);
1621  table.base = 0x900000;
1622  syscallTables.push_back(table);
1623 
1624  table.descs = privSyscallDescs64;
1625  table.size = sizeof(privSyscallDescs64) / sizeof(SyscallDesc);
1626  table.base = 0x1001;
1627  syscallTables.push_back(table);
1628 }
1629 
1630 const Addr ArmLinuxProcess32::commPage = 0xffff0000;
1631 
1632 SyscallDesc*
1634 {
1635  // Angel SWI syscalls are unsupported in this release
1636  if (callnum == 0x123456)
1637  panic("Attempt to execute an ANGEL_SWI system call (newlib-related)");
1638  for (unsigned i = 0; i < syscallTables.size(); i++) {
1639  SyscallDesc *desc = syscallTables[i].getDesc(callnum);
1640  if (desc)
1641  return desc;
1642  }
1643  return NULL;
1644 }
1645 
1646 SyscallDesc *
1648 {
1649  int offset = callnum - base;
1650  if (offset < 0 || offset >= size)
1651  return NULL;
1652  return &descs[offset];
1653 }
1654 
1655 SyscallDesc*
1657 {
1658  return getLinuxDesc(callnum);
1659 }
1660 
1661 SyscallDesc*
1663 {
1664  return getLinuxDesc(callnum);
1665 }
1666 
1667 void
1669 {
1671  allocateMem(commPage, PageBytes);
1672  ThreadContext *tc = system->getThreadContext(contextIds[0]);
1673 
1674  uint8_t swiNeg1[] = {
1675  0xff, 0xff, 0xff, 0xef // swi -1
1676  };
1677 
1678  // Fill this page with swi -1 so we'll no if we land in it somewhere.
1679  for (Addr addr = 0; addr < PageBytes; addr += sizeof(swiNeg1)) {
1680  tc->getMemProxy().writeBlob(commPage + addr,
1681  swiNeg1, sizeof(swiNeg1));
1682  }
1683 
1684  uint8_t memory_barrier[] =
1685  {
1686  0x5f, 0xf0, 0x7f, 0xf5, // dmb
1687  0x0e, 0xf0, 0xa0, 0xe1 // return
1688  };
1689  tc->getMemProxy().writeBlob(commPage + 0x0fa0, memory_barrier,
1690  sizeof(memory_barrier));
1691 
1692  uint8_t cmpxchg[] =
1693  {
1694  0x9f, 0x3f, 0x92, 0xe1, // ldrex r3, [r2]
1695  0x00, 0x30, 0x53, 0xe0, // subs r3, r3, r0
1696  0x91, 0x3f, 0x82, 0x01, // strexeq r3, r1, [r2]
1697  0x01, 0x00, 0x33, 0x03, // teqeq r3, #1
1698  0xfa, 0xff, 0xff, 0x0a, // beq 1b
1699  0x00, 0x00, 0x73, 0xe2, // rsbs r0, r3, #0
1700  0x5f, 0xf0, 0x7f, 0xf5, // dmb
1701  0x0e, 0xf0, 0xa0, 0xe1 // return
1702  };
1703  tc->getMemProxy().writeBlob(commPage + 0x0fc0, cmpxchg, sizeof(cmpxchg));
1704 
1705  uint8_t get_tls[] =
1706  {
1707  // read user read-only thread id register
1708  0x70, 0x0f, 0x1d, 0xee, // mrc p15, 0, r0, c13, c0, 3
1709  0x0e, 0xf0, 0xa0, 0xe1 // return
1710  };
1711  tc->getMemProxy().writeBlob(commPage + 0x0fe0, get_tls, sizeof(get_tls));
1712 }
1713 
1714 void
1716 {
1718  // The 64 bit equivalent of the comm page would be set up here.
1719 }
SyscallReturn ftruncateFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
Target ftruncate() handler.
static SyscallDesc syscallDescs32[]
Definition: process.cc:123
Bitfield< 30, 0 > index
SyscallReturn brkFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
Target brk() handler: set brk address.
const std::string & name()
Definition: trace.cc:49
Bitfield< 7 > i
Definition: miscregs.hh:1378
#define panic(...)
Definition: misc.hh:153
SyscallReturn dupFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
FIXME: The file description is not shared among file descriptors created with dup.
SyscallReturn getcwdFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
Target getcwd() handler.
static SyscallReturn setTLSFunc32(SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc)
Target set_tls() handler.
Definition: process.cc:100
ip6_addr_t addr
Definition: inet.hh:335
SyscallReturn ignoreFunc(SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc)
Handler for unimplemented syscalls that we never intend to implement (signal handling, etc.) and should not affect the correct behavior of the program.
Definition: syscall_emul.cc:67
SyscallReturn getppidFunc(SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc)
Target getppid() handler.
virtual void setMiscReg(int misc_reg, const MiscReg &val)=0
SyscallReturn readlinkFunc(SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc)
virtual TheISA::IntReg getSyscallArg(ThreadContext *tc, int &i)=0
Bitfield< 23, 0 > offset
Definition: types.hh:149
SyscallReturn getpidFunc(SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc)
Target getpid() handler.
ArmLinuxProcess32(ProcessParams *params, ObjectFile *objFile, ObjectFile::Arch _arch)
Definition: process.cc:1592
TypedBufferArg is a class template; instances of this template represent typed buffers in target user...
ThreadContext is the external interface to all thread state for anything outside of the CPU...
static SyscallReturn unameFunc32(SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc)
Target uname() handler.
Definition: process.cc:64
static SyscallReturn setTLSFunc64(SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc)
Definition: process.cc:113
SyscallReturn getegidFunc(SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc)
Target getegid() handler.
SyscallDesc * getLinuxDesc(int callnum)
Definition: process.cc:1633
SyscallReturn _llseekFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
Target _llseek() handler.
SyscallReturn fcntlFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
Target fcntl() handler.
void initState()
initState() is called on each SimObject when not restoring from a checkpoint.
Definition: process.cc:1668
SyscallReturn munmapFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
Target munmap() handler.
system
Definition: isa.cc:226
SyscallReturn writeFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
Target write() handler.
SyscallReturn unimplementedFunc(SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc)
Handler for unimplemented syscalls that we haven't thought about.
Definition: syscall_emul.cc:57
SyscallReturn exitGroupFunc(SyscallDesc *desc, int callnum, Process *p, ThreadContext *tc)
Target exit_group() handler: terminate simulation. (exit all threads)
SyscallReturn lseekFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
Target lseek() handler.
static SyscallDesc syscallDescs64[]
Definition: process.cc:492
SyscallReturn unlinkFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
void initState()
initState() is called on each SimObject when not restoring from a checkpoint.
Definition: process.cc:100
SyscallReturn geteuidFunc(SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc)
Target geteuid() handler.
virtual SETranslatingPortProxy & getMemProxy()=0
Warn only once for unimplemented system calls.
Definition: syscall_desc.hh:83
uint64_t Addr
Address type This will probably be moved somewhere else in the near future.
Definition: types.hh:142
SyscallDesc * getDesc(int callnum)
Definition: process.cc:1662
SyscallReturn mkdirFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
Target mkdir() handler.
const Addr PageBytes
Definition: isa_traits.hh:52
SyscallReturn setuidFunc(SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc)
Target setuid() handler.
static SyscallDesc privSyscallDescs32[]
Definition: process.cc:1575
static SyscallReturn unameFunc64(SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc)
Target uname() handler.
Definition: process.cc:82
This class provides the wrapper interface for the system call implementations which are defined in th...
Definition: syscall_desc.hh:63
SyscallReturn truncateFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
Target truncate() handler.
SyscallReturn getgidFunc(SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc)
Target getgid() handler.
SyscallReturn pipePseudoFunc(SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc)
Pseudo Funcs - These functions use a different return convension, returning a second value in a regis...
SyscallReturn renameFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
Target rename() handler.
SyscallReturn fcntl64Func(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
Target fcntl64() handler.
This file defines objects used to emulate syscalls from the target application on the host machine...
SyscallReturn getuidFunc(SyscallDesc *desc, int callnum, Process *process, ThreadContext *tc)
Target getuid() handler.
SyscallReturn umaskFunc(SyscallDesc *desc, int num, Process *process, ThreadContext *tc)
Target umask() handler.
SyscallReturn accessFunc(SyscallDesc *desc, int callnum, Process *p, ThreadContext *tc, int index)
SyscallReturn chownFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
Target chown() handler.
SyscallDesc * getDesc(int offset) const
Definition: process.cc:1647
ArmLinuxProcess64(ProcessParams *params, ObjectFile *objFile, ObjectFile::Arch _arch)
Definition: process.cc:1611
SyscallReturn exitFunc(SyscallDesc *desc, int callnum, Process *p, ThreadContext *tc)
Target exit() handler: terminate current context.
std::vector< SyscallTable > syscallTables
Definition: process.hh:64
static const Addr commPage
A page to hold "kernel" provided functions. The name might be wrong.
Definition: process.hh:80
SyscallReturn ftruncate64Func(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
Target ftruncate64() handler.
SyscallReturn closeFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
Target close() handler.
SyscallDesc * getDesc(int callnum)
Definition: process.cc:1656
This class represents the return value from an emulated system call, including any errno setting...
static SyscallDesc privSyscallDescs64[]
Definition: process.cc:1584
SyscallReturn readFunc(SyscallDesc *desc, int num, Process *p, ThreadContext *tc)
void initState()
initState() is called on each SimObject when not restoring from a checkpoint.
Definition: process.cc:1715
virtual void writeBlob(Addr addr, const uint8_t *p, int size) const
Write size bytes from p to address.
void initState()
initState() is called on each SimObject when not restoring from a checkpoint.
Definition: process.cc:119

Generated on Fri Jun 9 2017 13:03:35 for gem5 by doxygen 1.8.6