xref: /nrf52832-nimble/rt-thread/components/lwp/lwp_syscall.h (revision 104654410c56c573564690304ae786df310c91fc)
1*10465441SEvalZero /*
2*10465441SEvalZero  * Copyright (c) 2006-2018, RT-Thread Development Team
3*10465441SEvalZero  *
4*10465441SEvalZero  * SPDX-License-Identifier: Apache-2.0
5*10465441SEvalZero  *
6*10465441SEvalZero  * Change Logs:
7*10465441SEvalZero  * Date           Author       Notes
8*10465441SEvalZero  * 2018-12-10     Jesven       fix complie error in iar and keil
9*10465441SEvalZero  */
10*10465441SEvalZero 
11*10465441SEvalZero #ifndef __LWP_SYSCALL_H__
12*10465441SEvalZero #define __LWP_SYSCALL_H__
13*10465441SEvalZero 
14*10465441SEvalZero #include <stdint.h>
15*10465441SEvalZero #include <rtthread.h>
16*10465441SEvalZero #include <dfs_posix.h>
17*10465441SEvalZero #include <sys/time.h>
18*10465441SEvalZero #include <sys/types.h>
19*10465441SEvalZero 
20*10465441SEvalZero typedef long suseconds_t;       /* microseconds (signed) */
21*10465441SEvalZero typedef uint32_t id_t;          /* may contain pid, uid or gid */
22*10465441SEvalZero 
23*10465441SEvalZero /*
24*10465441SEvalZero  * Process priority specifications to get/setpriority.
25*10465441SEvalZero  */
26*10465441SEvalZero #define	PRIO_MIN	    (-20)
27*10465441SEvalZero #define	PRIO_MAX	    20
28*10465441SEvalZero 
29*10465441SEvalZero #define	PRIO_PROCESS	0       /* only support lwp process */
30*10465441SEvalZero #define	PRIO_PGRP	    1
31*10465441SEvalZero #define	PRIO_USER	    2
32*10465441SEvalZero 
33*10465441SEvalZero #ifndef TIMEVAL_TO_TIMESPEC
34*10465441SEvalZero #define TIMEVAL_TO_TIMESPEC(tv, ts) {                   \
35*10465441SEvalZero     (ts)->tv_sec = (tv)->tv_sec;                        \
36*10465441SEvalZero     (ts)->tv_nsec = (tv)->tv_usec * 1000;               \
37*10465441SEvalZero }
38*10465441SEvalZero #endif
39*10465441SEvalZero 
40*10465441SEvalZero #ifndef TIMESPEC_TO_TIMEVAL
41*10465441SEvalZero #define TIMESPEC_TO_TIMEVAL(tv, ts) {                   \
42*10465441SEvalZero     (tv)->tv_sec = (ts)->tv_sec;                        \
43*10465441SEvalZero     (tv)->tv_usec = (ts)->tv_nsec / 1000;               \
44*10465441SEvalZero }
45*10465441SEvalZero #endif
46*10465441SEvalZero 
47*10465441SEvalZero void sys_exit(int value);
48*10465441SEvalZero ssize_t sys_read(int fd, void *buf, size_t nbyte);
49*10465441SEvalZero ssize_t sys_write(int fd, const void *buf, size_t nbyte);
50*10465441SEvalZero off_t sys_lseek(int fd, off_t offset, int whence);
51*10465441SEvalZero int sys_open(const char *name, int mode, ...);
52*10465441SEvalZero int sys_close(int fd);
53*10465441SEvalZero int sys_nanosleep(const struct timespec *rqtp, struct timespec *rmtp);
54*10465441SEvalZero int sys_getpriority(int which, id_t who);
55*10465441SEvalZero int sys_setpriority(int which, id_t who, int prio);
56*10465441SEvalZero int sys_gettimeofday(struct timeval *tp, struct timezone *tzp);
57*10465441SEvalZero int sys_settimeofday(const struct timeval *tv, const struct timezone *tzp);
58*10465441SEvalZero int sys_msgget(key_t key, int msgflg);
59*10465441SEvalZero int sys_msgsend(int msqid, const void *msgp, size_t msgsz, int msgflg);
60*10465441SEvalZero int sys_msgrcv(int msqid, void *msgp, size_t msgsz, long msgtyp, int msgflg);
61*10465441SEvalZero 
62*10465441SEvalZero int sys_log(const char* log, int size);
63*10465441SEvalZero 
64*10465441SEvalZero #endif
65