source: asp3_tinet_ecnl_rx/trunk/ntshell/src/syscall.c@ 340

Last change on this file since 340 was 340, checked in by coas-nagasima, 6 years ago

NTPクライアント処理を追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-csrc;charset=UTF-8
File size: 21.8 KB
Line 
1/*
2 * TOPPERS ECHONET Lite Communication Middleware
3 *
4 * Copyright (C) 2018 Cores Co., Ltd. Japan
5 *
6 * 上記著作権者は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
7 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
8 * 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
9 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
10 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
11 * スコード中に含まれていること.
12 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
13 * 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
14 * 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
15 * の無保証規定を掲載すること.
16 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
17 * 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
18 * と.
19 * (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
20 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
21 * (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
22 * 報告すること.
23 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
24 * 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
25 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
26 * 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
27 * 免責すること.
28 *
29 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
30 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
31 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
32 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
33 * の責任を負わない.
34 *
35 * @(#) $Id$
36 */
37#include "bits/syscall.h"
38#include "shellif.h"
39#include <t_syslog.h>
40
41void *thread_area;
42void *tid_address;
43
44void no_implement(const char *text)
45{
46 syslog(LOG_ERROR, text);
47 DebugBreak();
48}
49
50long __syscall(long n, ...)
51{
52 long ret = -ENOSYS;
53 va_list ap;
54 int fd;
55
56 shellif_into();
57
58 va_start(ap, n);
59
60 switch (n) {
61 case SYS__llseek:
62 return shell_llseek(va_arg(ap, int), va_arg(ap, off_t), va_arg(ap, off_t *), va_arg(ap, int));
63 case SYS__newselect:
64 ret = shell_select(va_arg(ap, int), va_arg(ap, fd_set *), va_arg(ap, fd_set *), va_arg(ap, fd_set *), va_arg(ap, struct timeval *));
65 break;
66 case SYS_accept:
67 ret = shell_accept(va_arg(ap, int), va_arg(ap, struct sockaddr *), va_arg(ap, socklen_t *));
68 break;
69 case SYS_access:
70 ret = shell_access(va_arg(ap, const char *), va_arg(ap, int));
71 break;
72 case SYS_acct:
73 no_implement("acct\n");
74 break;
75 case SYS_adjtimex:
76 no_implement("adjtimex\n");
77 break;
78#ifdef SYS_arch_prctl
79 case SYS_arch_prctl:
80 no_implement("arch_prctl\n");
81 break;
82#endif
83 case SYS_bind:
84 ret = shell_bind(va_arg(ap, int), va_arg(ap, const struct sockaddr *), va_arg(ap, socklen_t));
85 break;
86 case SYS_brk:
87 ret = (long)shell_brk(va_arg(ap, void *));
88 break;
89#ifdef SYS_cachectl
90 case SYS_cachectl:
91 no_implement("cachectl\n");
92 break;
93#endif
94#ifdef SYS_cacheflush
95 case SYS_cacheflush:
96 no_implement("cacheflush\n");
97 break;
98#endif
99 case SYS_capget:
100 no_implement("capget\n");
101 break;
102 case SYS_capset:
103 no_implement("capset\n");
104 break;
105 case SYS_chdir:
106 ret = shell_chdir(va_arg(ap, const char *));
107 break;
108 case SYS_chmod:
109 ret = shell_chmod(va_arg(ap, const char *), va_arg(ap, mode_t));
110 break;
111 case SYS_chown32:
112 no_implement("chown\n");
113 break;
114 case SYS_chroot:
115 ret = shell_chroot(va_arg(ap, const char *));
116 break;
117 case SYS_clock_adjtime:
118 no_implement("clock_adjtime\n");
119 break;
120 case SYS_clock_getres:
121 ret = shell_clock_getres(va_arg(ap, clockid_t), va_arg(ap, struct timespec *));
122 break;
123 case SYS_clock_gettime:
124 ret = shell_clock_gettime(va_arg(ap, clockid_t), va_arg(ap, struct timespec *));
125 break;
126 case SYS_clock_nanosleep:
127 no_implement("clock_nanosleep\n");
128 break;
129 case SYS_clock_settime:
130 ret = shell_clock_settime(va_arg(ap, clockid_t), va_arg(ap, const struct timespec *));
131 break;
132 case SYS_clone:
133 no_implement("clone\n");
134 break;
135 case SYS_close:
136 ret = shell_close(va_arg(ap, int));
137 break;
138 case SYS_connect:
139 ret = shell_connect(va_arg(ap, int), va_arg(ap, const struct sockaddr *), va_arg(ap, socklen_t));
140 break;
141 case SYS_delete_module:
142 no_implement("delete_module\n");
143 break;
144 case SYS_dup:
145 no_implement("dup\n");
146 break;
147 case SYS_dup2:
148 no_implement("dup2\n");
149 break;
150 case SYS_dup3:
151 no_implement("dup3\n");
152 break;
153 case SYS_epoll_create:
154 no_implement("epoll_create\n");
155 break;
156 case SYS_epoll_create1:
157 no_implement("epoll_create1\n");
158 break;
159 case SYS_epoll_ctl:
160 no_implement("epoll_ctl\n");
161 break;
162 case SYS_epoll_pwait:
163 no_implement("epoll_pwait\n");
164 break;
165 case SYS_epoll_wait:
166 no_implement("epoll_wait\n");
167 break;
168 case SYS_eventfd:
169 no_implement("eventfd\n");
170 break;
171 case SYS_eventfd2:
172 no_implement("eventfd2\n");
173 break;
174 case SYS_execve:
175 no_implement("execve\n");
176 break;
177 case SYS_exit:
178 shell_exit(va_arg(ap, int));
179 ret = 0;
180 break;
181 case SYS_exit_group:
182 shell_exit_group(va_arg(ap, int));
183 ret = 0;
184 break;
185 case SYS_faccessat:
186 no_implement("faccessat\n");
187 break;
188 case SYS_fadvise64_64:
189 no_implement("fadvise64_64\n");
190 break;
191 case SYS_fallocate:
192 no_implement("fallocate\n");
193 break;
194 case SYS_fanotify_init:
195 no_implement("fanotify_init\n");
196 break;
197 case SYS_fanotify_mark:
198 no_implement("fanotify_mark\n");
199 break;
200 case SYS_fchdir:
201 no_implement("fchdir\n");
202 break;
203 case SYS_fchmod:
204 no_implement("fchmod\n");
205 break;
206 case SYS_fchmodat:
207 no_implement("fchmodat\n");
208 break;
209 case SYS_fchown32:
210 no_implement("fchown\n");
211 break;
212 case SYS_fchownat:
213 no_implement("fchownat\n");
214 break;
215 case SYS_fcntl64:
216 ret = shell_fcntl(va_arg(ap, int), va_arg(ap, int), va_arg(ap, void *));
217 break;
218 case SYS_fdatasync:
219 no_implement("fdatasync\n");
220 break;
221 case SYS_fgetxattr:
222 no_implement("fgetxattr\n");
223 break;
224 case SYS_flistxattr:
225 no_implement("flistxattr\n");
226 break;
227 case SYS_flock:
228 no_implement("flock\n");
229 break;
230 case SYS_fork:
231 no_implement("fork\n");
232 break;
233 case SYS_fremovexattr:
234 no_implement("fremovexattr\n");
235 break;
236 case SYS_fsetxattr:
237 no_implement("fsetxattr\n");
238 break;
239 case SYS_fstat64:
240 ret = shell_fstat(va_arg(ap, int), va_arg(ap, struct stat *));
241 break;
242 case SYS_fstatat64:
243 no_implement("fstatat64\n");
244 break;
245 case SYS_fstatfs:
246 no_implement("fstatfs\n");
247 break;
248 case SYS_fstatfs64:
249 no_implement("fstatfs64\n");
250 break;
251 case SYS_fsync:
252 ret = shell_fsync(va_arg(ap, int));
253 break;
254 case SYS_ftruncate64:
255 ret = shell_ftruncate(va_arg(ap, int), va_arg(ap, off_t));
256 break;
257 case SYS_futex:
258 no_implement("futex\n");
259 break;
260 case SYS_futimesat:
261 no_implement("futimesat\n");
262 break;
263 case SYS_getcpu:
264 no_implement("getcpu\n");
265 break;
266 case SYS_getcwd:
267 ret = (long)shell_getcwd(va_arg(ap, char *), va_arg(ap, size_t));
268 break;
269 case SYS_getdents64:
270 ret = shell_getdents(va_arg(ap, int), va_arg(ap, struct dirent *), va_arg(ap, size_t)); // TODO
271 break;
272 case SYS_getegid32:
273 no_implement("getegid\n");
274 break;
275 case SYS_geteuid32:
276 no_implement("geteuid\n");
277 break;
278 case SYS_getgid32:
279 no_implement("getgid\n");
280 break;
281 case SYS_getgroups32:
282 no_implement("getgroups\n");
283 break;
284 case SYS_getitimer:
285 no_implement("getitimer\n");
286 break;
287 case SYS_getpeername:
288 ret = shell_getpeername(va_arg(ap, int), va_arg(ap, struct sockaddr *), va_arg(ap, socklen_t *));
289 break;
290 case SYS_getsockname:
291 ret = shell_getsockname(va_arg(ap, int), va_arg(ap, struct sockaddr *), va_arg(ap, socklen_t *));
292 break;
293 case SYS_getpgid:
294 no_implement("getpgid\n");
295 break;
296 case SYS_getpid:
297 ret = shell_getpid();
298 break;
299 case SYS_getppid:
300 no_implement("getppid\n");
301 break;
302 case SYS_getpriority:
303 no_implement("getpriority\n");
304 break;
305 case SYS_getresgid32:
306 no_implement("getresgid\n");
307 break;
308 case SYS_getresuid32:
309 no_implement("getresuid\n");
310 break;
311#ifdef SYS_getrlimit
312 case SYS_getrlimit:
313 no_implement("getrlimit\n");
314 break;
315#endif
316 case SYS_getrusage:
317 no_implement("getrusage\n");
318 break;
319 case SYS_getsid:
320 no_implement("getsid\n");
321 break;
322 case SYS_getsockopt:
323 ret = shell_getsockopt(va_arg(ap, int), va_arg(ap, int), va_arg(ap, int), va_arg(ap, void *), va_arg(ap, socklen_t *));
324 break;
325 case SYS_gettid:
326 ret = shell_gettid();
327 break;
328 case SYS_gettimeofday:
329 ret = shell_gettimeofday(va_arg(ap, struct timeval *), va_arg(ap, void *));
330 break;
331 case SYS_getuid32:
332 no_implement("getuid\n");
333 break;
334 case SYS_getxattr:
335 no_implement("getxattr\n");
336 break;
337 case SYS_init_module:
338 no_implement("init_module\n");
339 break;
340 case SYS_inotify_add_watch:
341 no_implement("inotify_add_watch\n");
342 break;
343 case SYS_inotify_init:
344 no_implement("inotify_init\n");
345 break;
346 case SYS_inotify_init1:
347 no_implement("inotify_init1\n");
348 break;
349 case SYS_inotify_rm_watch:
350 no_implement("inotify_rm_watch\n");
351 break;
352 case SYS_ioctl:
353 ret = shell_ioctl(va_arg(ap, int), va_arg(ap, int), va_arg(ap, void *));
354 break;
355#ifdef SYS_ioperm
356 case SYS_ioperm:
357 no_implement("ioperm\n");
358 break;
359#endif
360#ifdef SYS_iopl
361 case SYS_iopl:
362 no_implement("iopl\n");
363 break;
364#endif
365#ifdef SYS_ipc
366 case SYS_ipc:
367 no_implement("ipc\n");
368 break;
369#endif
370#ifdef SYS_ipc
371 case SYS_ipc:
372 no_implement("ipc\n");
373 break;
374#endif
375 case SYS_kill:
376 ret = shell_kill(va_arg(ap, int), va_arg(ap, int));
377 break;
378 case SYS_lchown32:
379 no_implement("lchown\n");
380 break;
381 case SYS_lgetxattr:
382 no_implement("lgetxattr\n");
383 break;
384 case SYS_link:
385 ret = shell_link(va_arg(ap, const char *), va_arg(ap, const char *));
386 break;
387 case SYS_linkat:
388 no_implement("linkat\n");
389 break;
390 case SYS_listen:
391 ret = shell_listen(va_arg(ap, int), va_arg(ap, int));
392 break;
393 case SYS_listxattr:
394 no_implement("listxattr\n");
395 break;
396 case SYS_llistxattr:
397 no_implement("llistxattr\n");
398 break;
399 case SYS_lremovexattr:
400 no_implement("lremovexattr\n");
401 break;
402 case SYS_lsetxattr:
403 no_implement("lsetxattr\n");
404 break;
405 case SYS_lstat64:
406 ret = shell_lstat(va_arg(ap, const char *__restrict), va_arg(ap, struct stat *__restrict));
407 break;
408 case SYS_madvise:
409 ret = shell_madvise(va_arg(ap, void *), va_arg(ap, size_t), va_arg(ap, int)); // TODO
410 break;
411 case SYS_mincore:
412 no_implement("mincore\n");
413 break;
414 case SYS_mkdir:
415 ret = shell_mkdir(va_arg(ap, const char *), va_arg(ap, mode_t));
416 break;
417 case SYS_mkdirat:
418 no_implement("mkdirat\n");
419 break;
420 case SYS_mknod:
421 no_implement("mknod\n");
422 break;
423 case SYS_mknodat:
424 no_implement("mknodat\n");
425 break;
426 case SYS_mlock:
427 no_implement("mlock\n");
428 break;
429 case SYS_mlockall:
430 no_implement("mlockall\n");
431 break;
432 case SYS_mmap2:
433 ret = (int)shell_mmap2(va_arg(ap, void *), va_arg(ap, size_t), va_arg(ap, int), va_arg(ap, int), va_arg(ap, int), va_arg(ap, off_t));
434 break;
435 case SYS_mount:
436 no_implement("mount\n");
437 break;
438 case SYS_mprotect:
439 return shell_mprotect(va_arg(ap, void *), va_arg(ap, size_t), va_arg(ap, int));
440 break;
441 case SYS_mq_getsetattr:
442 no_implement("mq_getsetattr\n");
443 break;
444 case SYS_mq_notify:
445 no_implement("mq_notify\n");
446 break;
447 case SYS_mq_open:
448 no_implement("mq_open\n");
449 break;
450 case SYS_mq_timedreceive:
451 no_implement("mq_timedreceive\n");
452 break;
453 case SYS_mq_timedsend:
454 no_implement("mq_timedsend\n");
455 break;
456 case SYS_mq_unlink:
457 no_implement("mq_unlink\n");
458 break;
459 case SYS_mremap:
460 no_implement("mremap\n");
461 break;
462 case SYS_msgctl:
463 no_implement("msgctl\n");
464 break;
465 case SYS_msgget:
466 no_implement("msgget\n");
467 break;
468 case SYS_msgrcv:
469 no_implement("msgrcv\n");
470 break;
471 case SYS_msgsnd:
472 no_implement("msgsnd\n");
473 break;
474 case SYS_msync:
475 no_implement("msync\n");
476 break;
477 case SYS_munlock:
478 no_implement("munlock\n");
479 break;
480 case SYS_munlockall:
481 no_implement("munlockall\n");
482 break;
483 case SYS_munmap:
484 no_implement("munmap\n");
485 break;
486 case SYS_nanosleep:
487 no_implement("nanosleep\n");
488 break;
489 case SYS_nice:
490 no_implement("nice\n");
491 break;
492 case SYS_open:
493 ret = shell_open(va_arg(ap, const char *), va_arg(ap, int), va_arg(ap, void *));
494 break;
495 case SYS_openat:
496 no_implement("openat\n");
497 break;
498 case SYS_pause:
499 no_implement("pause\n");
500 break;
501 case SYS_personality:
502 no_implement("personality\n");
503 break;
504 case SYS_pipe:
505 no_implement("pipe\n");
506 break;
507 case SYS_pipe2:
508 no_implement("pipe2\n");
509 break;
510 case SYS_pivot_root:
511 no_implement("pivot_root\n");
512 break;
513 case SYS_poll:
514 ret = shell_poll(va_arg(ap, struct pollfd *), va_arg(ap, nfds_t), va_arg(ap, int));
515 break;
516 case SYS_ppoll:
517 no_implement("ppoll\n");
518 break;
519 case SYS_prctl:
520 no_implement("prctl\n");
521 break;
522 case SYS_pread64:
523 no_implement("pread64\n");
524 break;
525 case SYS_preadv:
526 no_implement("preadv\n");
527 break;
528 case SYS_prlimit64:
529 no_implement("prlimit64\n");
530 break;
531 case SYS_process_vm_readv:
532 no_implement("process_vm_readv\n");
533 break;
534 case SYS_process_vm_writev:
535 no_implement("process_vm_writev\n");
536 break;
537 case SYS_pselect6:
538 no_implement("pselect6\n");
539 break;
540 case SYS_ptrace:
541 no_implement("ptrace\n");
542 break;
543 case SYS_pwrite64:
544 no_implement("pwrite64\n");
545 break;
546 case SYS_pwritev:
547 no_implement("pwritev\n");
548 break;
549 case SYS_quotactl:
550 no_implement("quotactl\n");
551 break;
552 case SYS_read:
553 ret = shell_read(va_arg(ap, int), va_arg(ap, void *), va_arg(ap, size_t));
554 break;
555 case SYS_readahead:
556 no_implement("readahead\n");
557 break;
558 case SYS_readlink:
559 no_implement("readlink\n");
560 break;
561 case SYS_readlinkat:
562 no_implement("readlinkat\n");
563 break;
564 case SYS_readv:
565 ret = shell_readv(va_arg(ap, int), va_arg(ap, const struct iovec *), va_arg(ap, int));
566 break;
567 case SYS_recv:
568 ret = shell_recv(va_arg(ap, int), va_arg(ap, void *), va_arg(ap, size_t), va_arg(ap, int));
569 break;
570 case SYS_recvfrom:
571 fd = va_arg(ap, int);
572 if (fd == 0)
573 ret = shell_recv(fd, va_arg(ap, void *), va_arg(ap, size_t), va_arg(ap, int));
574 else
575 ret = shell_recvfrom(fd, va_arg(ap, void *), va_arg(ap, size_t), va_arg(ap, int), va_arg(ap, struct sockaddr *), va_arg(ap, socklen_t *));
576 break;
577 case SYS_recvmsg:
578 ret = shell_recvmsg(va_arg(ap, int), va_arg(ap, struct msghdr *), va_arg(ap, size_t));
579 break;
580 case SYS_reboot:
581 no_implement("reboot\n");
582 break;
583 case SYS_recvmmsg:
584 no_implement("recvmmsg\n");
585 break;
586 case SYS_remap_file_pages:
587 no_implement("remap_file_pages\n");
588 break;
589 case SYS_removexattr:
590 no_implement("removexattr\n");
591 break;
592 case SYS_rename:
593 ret = shell_rename(va_arg(ap, const char *), va_arg(ap, const char *));
594 break;
595 case SYS_renameat:
596 no_implement("renameat\n");
597 break;
598 case SYS_rmdir:
599 ret = shell_rmdir(va_arg(ap, const char *));
600 break;
601 case SYS_rt_sigaction:
602 ret = shell_sigaction(va_arg(ap, int), va_arg(ap, const struct sigaction *), va_arg(ap, struct sigaction *));
603 break;
604 case SYS_rt_sigpending:
605 no_implement("rt_sigpending\n");
606 break;
607 case SYS_rt_sigprocmask:
608 ret = shell_sigprocmask(va_arg(ap, int), va_arg(ap, const sigset_t *), va_arg(ap, sigset_t *));
609 break;
610 case SYS_rt_sigqueueinfo:
611 no_implement("rt_sigqueueinfo\n");
612 break;
613 case SYS_rt_sigsuspend:
614 no_implement("rt_sigsuspend\n");
615 break;
616 case SYS_rt_sigtimedwait:
617 no_implement("rt_sigtimedwait\n");
618 break;
619 case SYS_send:
620 ret = shell_send(va_arg(ap, int), va_arg(ap, const void *), va_arg(ap, size_t), va_arg(ap, int));
621 break;
622 case SYS_sendmsg:
623 ret = shell_sendmsg(va_arg(ap, int), va_arg(ap, const struct msghdr *), va_arg(ap, size_t));
624 break;
625 case SYS_sendto:
626 fd = va_arg(ap, int);
627 if (fd == 0)
628 ret = shell_send(fd, va_arg(ap, const void *), va_arg(ap, size_t), va_arg(ap, int));
629 else
630 ret = shell_sendto(fd, va_arg(ap, const void *), va_arg(ap, size_t), va_arg(ap, int), va_arg(ap, const struct sockaddr *), va_arg(ap, socklen_t));
631 break;
632 case SYS_setsockopt:
633 ret = shell_setsockopt(va_arg(ap, int), va_arg(ap, int), va_arg(ap, int), va_arg(ap, const void *), va_arg(ap, socklen_t));
634 break;
635 case SYS_shutdown:
636 ret = shell_shutdown(va_arg(ap, int), va_arg(ap, int));
637 break;
638 case SYS_sched_get_priority_max:
639 no_implement("sched_get_priority_max\n");
640 break;
641 case SYS_sched_get_priority_min:
642 no_implement("sched_get_priority_min\n");
643 break;
644 case SYS_sched_getaffinity:
645 no_implement("sched_getaffinity\n");
646 break;
647 case SYS_sched_getparam:
648 no_implement("sched_getparam\n");
649 break;
650 case SYS_sched_getscheduler:
651 no_implement("sched_getscheduler\n");
652 break;
653 case SYS_sched_rr_get_interval:
654 no_implement("sched_rr_get_interval\n");
655 break;
656 case SYS_sched_setaffinity:
657 no_implement("sched_setaffinity\n");
658 break;
659 case SYS_sched_setparam:
660 no_implement("sched_setparam\n");
661 break;
662 case SYS_sched_setscheduler:
663 no_implement("sched_setscheduler\n");
664 break;
665 case SYS_sched_yield:
666 no_implement("sched_yield\n");
667 break;
668 case SYS_semctl:
669 no_implement("semctl\n");
670 break;
671 case SYS_semget:
672 no_implement("semget\n");
673 break;
674 case SYS_semop:
675 no_implement("semop\n");
676 break;
677 case SYS_semtimedop:
678 no_implement("semtimedop\n");
679 break;
680 case SYS_sendfile64:
681 no_implement("sendfile\n");
682 break;
683 case SYS_sendmmsg:
684 no_implement("sendmmsg\n");
685 break;
686 case SYS_set_robust_list:
687 no_implement("set_robust_list\n");
688 break;
689#ifdef SYS_set_thread_area
690 case SYS_set_thread_area:
691 thread_area = va_arg(ap, void *);
692 ret = 0;
693 break;
694#endif
695 case SYS_set_tid_address:
696 tid_address = va_arg(ap, void *);
697 ret = 0;
698 break;
699 case SYS_setdomainname:
700 no_implement("setdomainname\n");
701 break;
702 case SYS_setfsgid32:
703 no_implement("setfsgid\n");
704 break;
705 case SYS_setfsuid32:
706 no_implement("setfsuid\n");
707 break;
708 case SYS_setgroups32:
709 no_implement("setgroups\n");
710 break;
711 case SYS_sethostname:
712 no_implement("sethostname\n");
713 break;
714 case SYS_setitimer:
715 no_implement("setitimer\n");
716 break;
717 case SYS_setns:
718 no_implement("setns\n");
719 break;
720 case SYS_setpgid:
721 no_implement("setpgid\n");
722 break;
723 case SYS_setpriority:
724 no_implement("setpriority\n");
725 break;
726 case SYS_setrlimit:
727 no_implement("setrlimit\n");
728 break;
729 case SYS_setsid:
730 no_implement("setsid\n");
731 break;
732 case SYS_settimeofday:
733 no_implement("settimeofday\n");
734 break;
735 case SYS_setxattr:
736 no_implement("setxattr\n");
737 break;
738 case SYS_shmat:
739 no_implement("shmat\n");
740 break;
741 case SYS_shmctl:
742 no_implement("shmctl\n");
743 break;
744 case SYS_shmdt:
745 no_implement("shmdt\n");
746 break;
747 case SYS_shmget:
748 no_implement("shmget\n");
749 break;
750 case SYS_sigaltstack:
751 no_implement("sigaltstack\n");
752 break;
753 case SYS_signalfd:
754 no_implement("signalfd\n");
755 break;
756 case SYS_signalfd4:
757 no_implement("signalfd4\n");
758 break;
759 case SYS_socket:
760 ret = shell_socket(va_arg(ap, int), va_arg(ap, int), va_arg(ap, int));
761 break;
762 case SYS_splice:
763 no_implement("splice\n");
764 break;
765 case SYS_stat64:
766 ret = shell_stat(va_arg(ap, const char *), va_arg(ap, struct stat *));
767 break;
768 case SYS_statfs64:
769 no_implement("statfs64\n");
770 break;
771 case SYS_swapoff:
772 no_implement("swapoff\n");
773 break;
774 case SYS_swapon:
775 no_implement("swapon\n");
776 break;
777 case SYS_symlink:
778 no_implement("symlink\n");
779 break;
780 case SYS_symlinkat:
781 no_implement("symlinkat\n");
782 break;
783 case SYS_sync:
784 no_implement("sync\n");
785 break;
786#ifdef SYS_sync_file_range
787 case SYS_sync_file_range:
788 no_implement("sync_file_range\n");
789 break;
790#endif
791 case SYS_sync_file_range2:
792 no_implement("sync_file_range2\n");
793 break;
794 case SYS_syncfs:
795 no_implement("syncfs\n");
796 break;
797 case SYS_sysinfo:
798 no_implement("sysinfo\n");
799 break;
800 case SYS_syslog:
801 no_implement("syslog\n");
802 break;
803 case SYS_tee:
804 no_implement("tee\n");
805 break;
806 case SYS_tgkill:
807 no_implement("tgkill\n");
808 break;
809 case SYS_timer_create:
810 no_implement("timer_create\n");
811 break;
812 case SYS_timer_delete:
813 no_implement("timer_delete\n");
814 break;
815 case SYS_timer_getoverrun:
816 no_implement("timer_getoverrun\n");
817 break;
818 case SYS_timer_gettime:
819 no_implement("timer_gettime\n");
820 break;
821 case SYS_timer_settime:
822 no_implement("timer_settime\n");
823 break;
824 case SYS_timerfd_create:
825 no_implement("timerfd_create\n");
826 break;
827 case SYS_timerfd_gettime:
828 no_implement("timerfd_gettime\n");
829 break;
830 case SYS_timerfd_settime:
831 no_implement("timerfd_settime\n");
832 break;
833 case SYS_times:
834 no_implement("times\n");
835 break;
836 case SYS_tkill:
837 ret = shell_tkill(va_arg(ap, int), va_arg(ap, int));
838 break;
839 case SYS_truncate64:
840 no_implement("truncate\n");
841 break;
842 case SYS_ugetrlimit:
843 no_implement("ugetrlimit\n");
844 break;
845 case SYS_umask:
846 no_implement("umask\n");
847 break;
848 case SYS_umount2:
849 no_implement("umount2\n");
850 break;
851 case SYS_uname:
852 ret = shell_uname(va_arg(ap, struct utsname *));
853 break;
854 case SYS_unlink:
855 ret = shell_unlink(va_arg(ap, const char *));
856 break;
857 case SYS_unlinkat:
858 no_implement("unlinkat\n");
859 break;
860 case SYS_unshare:
861 no_implement("unshare\n");
862 break;
863 case SYS_utimensat:
864 no_implement("utimensat\n");
865 break;
866 case SYS_utimes:
867 no_implement("utimes\n");
868 break;
869 case SYS_vhangup:
870 no_implement("vhangup\n");
871 break;
872 case SYS_vmsplice:
873 no_implement("vmsplice\n");
874 break;
875 case SYS_wait4:
876 no_implement("wait4\n");
877 break;
878 case SYS_waitid:
879 no_implement("waitid\n");
880 break;
881 case SYS_write:
882 ret = shell_write(va_arg(ap, int), va_arg(ap, const void *), va_arg(ap, size_t));
883 break;
884 case SYS_writev:
885 ret = shell_writev(va_arg(ap, int), va_arg(ap, const struct iovec *), va_arg(ap, size_t));
886 break;
887 default:
888 DebugBreak();
889 }
890
891 va_end(ap);
892
893 shellif_outof();
894
895 return ret;
896}
Note: See TracBrowser for help on using the repository browser.