source: azure_iot_hub/trunk/ntshell/src/syscall.c@ 388

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

Azure IoT Hub Device C SDK を使ったサンプルの追加

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
  • Property svn:mime-type set to text/x-csrc
File size: 11.3 KB
Line 
1/*
2 * TOPPERS ECHONET Lite Communication Middleware
3 *
4 * Copyright (C) 2018 Cores Co., Ltd. Japan
5 *
6 * 上記著作権者
7は,以下の(1)~(4)の条件を満たす場合に限り,本ソフトウェ
8 * ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
9 * 変・再é…
10å¸ƒï¼ˆä»¥ä¸‹ï¼Œåˆ©ç”¨ã¨å‘¼ã¶ï¼‰ã™ã‚‹ã“とを無償で許諾する.
11 * (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
12 * 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
13 * スコード中に含まれていること.
14 * (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
15 * 用できる形で再é…
16å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œå†é…
17å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨
18 * 者
19マニュアルなど)に,上記の著作権表示,この利用条件および下記
20 * の無保証規定を掲載すること.
21 * (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
22 * 用できない形で再é…
23å¸ƒã™ã‚‹å ´åˆã«ã¯ï¼Œæ¬¡ã®ã„ずれかの条件を満たすこ
24 * と.
25 * (a) 再é…
26å¸ƒã«ä¼´ã†ãƒ‰ã‚­ãƒ¥ãƒ¡ãƒ³ãƒˆï¼ˆåˆ©ç”¨è€…
27マニュアルなど)に,上記の著
28 * 作権表示,この利用条件および下記の無保証規定を掲載すること.
29 * (b) 再é…
30å¸ƒã®å½¢æ…
31‹ã‚’,別に定める方法によって,TOPPERSプロジェクトに
32 * 報告すること.
33 * (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
34 * 害からも,上記著作権者
35およびTOPPERSプロジェクトをå…
36è²¬ã™ã‚‹ã“と.
37 * また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
38 * 由に基づく請求からも,上記著作権者
39およびTOPPERSプロジェクトを
40 * å…
41è²¬ã™ã‚‹ã“と.
42 *
43 * 本ソフトウェアは,無保証で提供されているものである.上記著作権者
44お
45 * よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
46 * に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
47 * アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
48 * の責任を負わない.
49 *
50 * @(#) $Id: syscall.c 388 2019-05-22 11:25:18Z coas-nagasima $
51 */
52#include "bits/syscall.h"
53#include "shellif.h"
54#include <t_syslog.h>
55
56void *thread_area;
57void *tid_address;
58
59long no_implement(const char *text)
60{
61 syslog(LOG_ERROR, text);
62 DebugBreak();
63 return -ENOSYS;
64}
65
66long __syscall_nr(long n, ...)
67{
68 long ret = -ENOSYS;
69 va_list ap;
70
71 va_start(ap, n);
72
73 switch (n) {
74 case __NR_setresgid:
75 no_implement("setresgid");
76 break;
77 case __NR_setresuid:
78 no_implement("setresuid");
79 break;
80 case __NR_setgid:
81 no_implement("setgid");
82 break;
83 case __NR_setregid:
84 no_implement("setregid");
85 break;
86 case __NR_setreuid:
87 no_implement("setreuid");
88 break;
89 case __NR_setuid:
90 no_implement("setuid");
91 break;
92 default:
93 no_implement("syscall");
94 break;
95 }
96
97 va_end(ap);
98
99 return ret;
100}
101
102long SYS__llseek(long a, long b, long c, long d, long e) {
103 return shell_llseek((int)a, ((off_t)b << 32) | (off_t)c, (off_t *)d, (int)e);
104}
105
106long SYS__newselect(long a, long b, long c, long d, long e) {
107 return shell_select((int)a, (fd_set *)b, (fd_set *)c, (fd_set *)d, (struct timeval *)e);
108}
109
110long SYS_accept(long a, long b, long c) {
111 return shell_accept((int)a, (struct sockaddr *)b, (socklen_t *)c);
112}
113
114long SYS_access(long a, long b) {
115 return shell_access((const char *)a, (int)b);
116}
117
118long SYS_bind(long a, long b, long c) {
119 return shell_bind((int)a, (const struct sockaddr *)b, (socklen_t)c);
120}
121
122long SYS_brk(long a) {
123 return (long)shell_brk((void *)a);
124}
125
126long SYS_chdir(long a) {
127 return shell_chdir((const char *)a);
128}
129
130long SYS_chmod(long a, long b) {
131 return shell_chmod((const char *)a, (mode_t)b);
132}
133
134long SYS_chroot(long a) {
135 return shell_chroot((const char *)a);
136}
137
138long SYS_clock_getres(long a, long b) {
139 return shell_clock_getres((clockid_t)a, (struct timespec *)b);
140}
141
142long SYS_clock_gettime(long a, long b) {
143 return shell_clock_gettime((clockid_t)a, (struct timespec *)b);
144}
145
146long SYS_clock_settime(long a, long b) {
147 return shell_clock_settime((clockid_t)a, (const struct timespec *)b);
148}
149
150long SYS_close(long a) {
151 return shell_close((int)a);
152}
153
154long SYS_connect(long a, long b, long c) {
155 return shell_connect((int)a, (const struct sockaddr *)b, (socklen_t)c);
156}
157
158long SYS_exit(long a) {
159 shell_exit((int)a);
160 return 0;
161}
162
163long SYS_exit_group(long a) {
164 shell_exit_group((int)a);
165 return 0;
166}
167
168long SYS_fcntl64(long a, long b, long c) {
169 return shell_fcntl((int)a, (int)b, (void *)c);
170}
171
172long SYS_fdatasync() {
173 return no_implement("fdatasync\n");
174}
175
176long SYS_fstat64(long a, long b) {
177 return shell_fstat((int)a, (struct stat *)b);
178}
179
180long SYS_fsync(long a) {
181 return shell_fsync((int)a);
182}
183
184long SYS_ftruncate64(long a, long b, long c) {
185 return shell_ftruncate((int)a, ((off_t)b << 32) | (off_t)c);
186}
187
188long SYS_futex() {
189 int futex(int *uaddr, int op, int val, const struct timespec *timeout, int *uaddr2, int val3);
190 return no_implement("futex\n");
191}
192
193long SYS_futimesat() {
194 return no_implement("futimesat\n");
195}
196
197long SYS_getcwd(long a, long b) {
198 return (long)shell_getcwd((char *)a, (size_t)b);
199}
200
201long SYS_getdents64(long a, long b, long c) {
202 return shell_getdents((int)a, (struct dirent *)b, (size_t)c);
203}
204
205long SYS_getpeername(long a, long b, long c) {
206 return shell_getpeername((int)a, (struct sockaddr *)b, (socklen_t *)c);
207}
208
209long SYS_getsockname(long a, long b, long c) {
210 return shell_getsockname((int)a, (struct sockaddr *)b, (socklen_t *)c);
211}
212
213long SYS_getpid() {
214 return shell_getpid();
215}
216
217long SYS_getsockopt(long a, long b, long c, long d, long e) {
218 return shell_getsockopt((int)a, (int)b, (int)c, (void *)d, (socklen_t *)e);
219}
220
221long SYS_gettid() {
222 return shell_gettid();
223}
224
225long SYS_gettimeofday(long a, long b) {
226 return shell_gettimeofday((struct timeval *)a, (void *)b);
227}
228
229long SYS_getuid32() {
230 return no_implement("getuid\n");
231}
232
233long SYS_ioctl(long a, long b, long c) {
234 return shell_ioctl((int)a, (int)b, (void *)c);
235}
236
237long SYS_kill(long a, long b) {
238 return shell_kill((int)a, (int)b);
239}
240
241long SYS_link(long a, long b) {
242 return shell_link((const char *)a, (const char *)b);
243}
244
245long SYS_listen(long a, long b) {
246 return shell_listen((int)a, (int)b);
247}
248
249long SYS_lstat64(long a, long b) {
250 return shell_lstat((const char *__restrict)a, (struct stat *__restrict)b);
251}
252
253long SYS_madvise(long a, long b, long c) {
254 return shell_madvise((void *)a, (size_t)b, (int)c);
255}
256
257long SYS_mkdir(long a, long b) {
258 return shell_mkdir((const char *)a, (mode_t)b);
259}
260
261long SYS_mmap2(long a, long b, long c, long d, long e, long f, long g) {
262 return (int)shell_mmap2((void *)a, (size_t)b, (int)c, (int)d, (int)e, ((off_t)f << 32) | (off_t)g);
263}
264
265long SYS_mprotect(long a, long b, long c) {
266 return shell_mprotect((void *)a, (size_t)b, (int)c);
267}
268
269long SYS_munmap() {
270 return no_implement("munmap\n");
271}
272
273long SYS_open(long a, long b, long c) {
274 return shell_open((const char *)a, (int)b, (void *)c);
275}
276
277long SYS_poll(long a, long b, long c) {
278 return shell_poll((struct pollfd *)a, (nfds_t)b, (int)c);
279}
280
281long SYS_pread64() {
282 return no_implement("pread64\n");
283}
284
285long SYS_pwrite64() {
286 return no_implement("pwrite64\n");
287}
288
289long SYS_read(long a, long b, long c) {
290 return shell_read((int)a, (void *)b, (size_t)c);
291}
292
293long SYS_readv(long a, long b, long c) {
294 return shell_readv((int)a, (const struct iovec *)b, (int)c);
295}
296
297long SYS_recv(long a, long b, long c, long d) {
298 return shell_recvfrom((int)a, (void *)b, (size_t)c, (int)d, NULL, NULL);
299}
300
301long SYS_recvfrom(long a, long b, long c, long d, long e, long f) {
302 return shell_recvfrom(a, (void *)b, (size_t)c, (int)d, (struct sockaddr *)e, (socklen_t *)f);
303}
304
305long SYS_recvmsg(long a, long b, long c) {
306 return shell_recvmsg((int)a, (struct msghdr *)b, (size_t)c);
307}
308
309long SYS_rename(long a, long b) {
310 return shell_rename((const char *)a, (const char *)b);
311}
312
313long SYS_rmdir(long a) {
314 return shell_rmdir((const char *)a);
315}
316
317long SYS_rt_sigaction(long a, long b, long c, long d) {
318 return shell_sigaction((int)a, (const struct k_sigaction *)b, (struct k_sigaction *)c, (size_t)d);
319}
320
321long SYS_rt_sigprocmask(long a, long b, long c) {
322 return shell_sigprocmask((int)a, (const sigset_t *)b, (sigset_t *)c);
323}
324
325long SYS_rt_sigqueueinfo() {
326 return no_implement("rt_sigqueueinfo\n");
327}
328
329long SYS_send(long a, long b, long c, long d) {
330 return shell_sendto((int)a, (const void *)b, (size_t)c, (int)d, NULL, 0);
331}
332
333long SYS_sendmsg(long a, long b, long c) {
334 return shell_sendmsg((int)a, (const struct msghdr *)b, (size_t)c);
335}
336
337long SYS_sendto(long a, long b, long c, long d, long e, long f) {
338 return shell_sendto(a, (const void *)b, (size_t)c, (int)d, (const struct sockaddr *)e, (socklen_t)f);
339}
340
341long SYS_setsockopt(long a, long b, long c, long d, long e) {
342 return shell_setsockopt((int)a, (int)b, (int)c, (const void *)d, (socklen_t)e);
343}
344
345long SYS_shutdown(long a, long b) {
346 return shell_shutdown((int)a, (int)b);
347}
348
349long SYS_sched_setscheduler() {
350 return no_implement("sched_setscheduler\n");
351}
352
353long SYS_set_robust_list() {
354 return no_implement("set_robust_list\n");
355}
356
357#ifdef SYS_set_thread_area
358long SYS_set_thread_area(long a) {
359 thread_area = (void *)a;
360 return 0;
361}
362#endif
363
364long SYS_set_tid_address(long a) {
365 tid_address = (void *)a;
366 return 0;
367}
368
369long SYS_socket(long a, long b, long c) {
370 return shell_socket((int)a, (int)b, (int)c);
371}
372
373long SYS_stat64(long a, long b) {
374 return shell_stat((const char *)a, (struct stat *)b);
375}
376
377long SYS_tkill(long a, long b) {
378 return shell_tkill((int)a, (int)b);
379}
380
381long SYS_uname(long a) {
382 return shell_uname((struct utsname *)a);
383}
384
385long SYS_unlink(long a) {
386 return shell_unlink((const char *)a);
387}
388
389long SYS_utimensat() {
390 return no_implement("utimensat\n");
391}
392
393long SYS_utimes() {
394 return no_implement("utimes\n");
395}
396
397long SYS_write(long a, long b, long c) {
398 return shell_write((int)a, (const void *)b, (size_t)c);
399}
400
401long SYS_writev(long a, long b, long c) {
402 return shell_writev((int)a, (const struct iovec *)b, (size_t)c);
403}
404
405long SYS_nanosleep(long a, long b)
406{
407 return shell_nanosleep((const struct timespec *)a, (struct timespec *)b);
408}
409
410long SYS_dup()
411{
412 return no_implement("dup\n");
413}
414
415long SYS_dup2()
416{
417 return no_implement("dup2\n");
418}
419
420long SYS_pipe()
421{
422 return no_implement("pipe\n");
423}
424
425long SYS_readlink()
426{
427 return no_implement("readlink\n");
428}
429
430long SYS_symlink()
431{
432 return no_implement("symlink\n");
433}
434
435long SYS_umask()
436{
437 return no_implement("umask\n");
438}
439
440long SYS_execve()
441{
442 return no_implement("execve\n");
443}
444
445long SYS_fork()
446{
447 return no_implement("fork\n");
448}
449
450long SYS_wait4()
451{
452 return no_implement("wait4\n");
453}
454
455long SYS_socketpair()
456{
457 return no_implement("socketpair\n");
458}
459
460long SYS_flock()
461{
462 return no_implement("flock\n");
463}
464
465long SYS_fchdir()
466{
467 return no_implement("fchdir\n");
468}
469
470long SYS_getegid32()
471{
472 return no_implement("getegid32\n");
473}
474
475long SYS_geteuid32()
476{
477 return no_implement("geteuid32\n");
478}
479
480long SYS_getgid32()
481{
482 return no_implement("getgid32\n");
483}
484
485long SYS_pipe2()
486{
487 return no_implement("pipe2\n");
488}
489
490long SYS_setgid32()
491{
492 return no_implement("setgid32\n");
493}
494
495long SYS_setpgid()
496{
497 return no_implement("setpgid\n");
498}
499
500long SYS_setsid()
501{
502 return no_implement("setsid\n");
503}
504
505long SYS_setuid32()
506{
507 return no_implement("setuid32\n");
508}
509
510long SYS_tgkill()
511{
512 return no_implement("tgkill\n");
513}
Note: See TracBrowser for help on using the repository browser.