18 #ifndef _COBALT_POSIX_SYSCALL32_H 19 #define _COBALT_POSIX_SYSCALL32_H 21 #include <cobalt/kernel/compat.h> 23 struct cobalt_mutex_shadow;
24 struct cobalt_event_shadow;
25 struct cobalt_cond_shadow;
26 struct cobalt_sem_shadow;
27 struct cobalt_monitor_shadow;
29 COBALT_SYSCALL32emu_DECL(thread_create,
32 const struct compat_sched_param_ex __user *u_param_ex,
34 __u32 __user *u_winoff));
36 COBALT_SYSCALL32emu_DECL(thread_setschedparam_ex,
39 const struct compat_sched_param_ex __user *u_param,
40 __u32 __user *u_winoff,
41 int __user *u_promoted));
43 COBALT_SYSCALL32emu_DECL(thread_getschedparam_ex,
46 struct compat_sched_param_ex __user *u_param));
48 COBALT_SYSCALL32emu_DECL(thread_setschedprio,
51 __u32 __user *u_winoff,
52 int __user *u_promoted));
56 struct compat_timespec __user *u_ts));
60 struct compat_timespec __user *u_ts));
64 const struct compat_timespec __user *u_ts));
66 COBALT_SYSCALL32emu_DECL(clock_adjtime,
68 struct compat_timex __user *u_tx));
71 (clockid_t clock_id,
int flags,
72 const struct compat_timespec __user *u_rqt,
73 struct compat_timespec __user *u_rmt));
75 COBALT_SYSCALL32emu_DECL(mutex_timedlock,
76 (
struct cobalt_mutex_shadow __user *u_mx,
77 const struct compat_timespec __user *u_ts));
79 COBALT_SYSCALL32emu_DECL(cond_wait_prologue,
80 (
struct cobalt_cond_shadow __user *u_cnd,
81 struct cobalt_mutex_shadow __user *u_mx,
84 struct compat_timespec __user *u_ts));
86 COBALT_SYSCALL32emu_DECL(
mq_open,
87 (
const char __user *u_name,
int oflags,
88 mode_t mode,
struct compat_mq_attr __user *u_attr));
91 (mqd_t uqd,
struct compat_mq_attr __user *u_attr));
94 (mqd_t uqd,
const void __user *u_buf,
size_t len,
96 const struct compat_timespec __user *u_ts));
99 (mqd_t uqd,
void __user *u_buf,
100 compat_ssize_t __user *u_len,
101 unsigned int __user *u_prio,
102 const struct compat_timespec __user *u_ts));
105 (mqd_t uqd,
void __user *u_buf,
106 compat_ssize_t __user *u_len,
107 unsigned int __user *u_prio,
108 const struct timespec __user *u_ts));
111 (mqd_t fd,
const struct compat_sigevent *__user u_cev));
113 COBALT_SYSCALL32emu_DECL(sched_weightprio,
115 const struct compat_sched_param_ex __user *u_param));
118 (
int cpu,
int policy,
119 union compat_sched_config __user *u_config,
123 (
int cpu,
int policy,
124 union compat_sched_config __user *u_config,
130 const struct compat_sched_param_ex __user *u_param,
131 __u32 __user *u_winoff,
132 int __user *u_promoted));
136 int __user *u_policy,
137 struct compat_sched_param_ex __user *u_param));
141 const struct compat_sigevent __user *u_sev,
142 timer_t __user *u_tm));
145 (timer_t tm,
int flags,
146 const struct compat_itimerspec __user *u_newval,
147 struct compat_itimerspec __user *u_oldval));
151 struct compat_itimerspec __user *u_val));
153 COBALT_SYSCALL32emu_DECL(timerfd_settime,
155 const struct compat_itimerspec __user *new_value,
156 struct compat_itimerspec __user *old_value));
158 COBALT_SYSCALL32emu_DECL(timerfd_gettime,
159 (
int fd,
struct compat_itimerspec __user *value));
161 COBALT_SYSCALL32emu_DECL(sigwait,
162 (
const compat_sigset_t __user *u_set,
165 COBALT_SYSCALL32emu_DECL(sigtimedwait,
166 (
const compat_sigset_t __user *u_set,
167 struct compat_siginfo __user *u_si,
168 const struct compat_timespec __user *u_timeout));
170 COBALT_SYSCALL32emu_DECL(sigwaitinfo,
171 (
const compat_sigset_t __user *u_set,
172 struct compat_siginfo __user *u_si));
174 COBALT_SYSCALL32emu_DECL(sigpending,
175 (compat_old_sigset_t __user *u_set));
177 COBALT_SYSCALL32emu_DECL(sigqueue,
179 const union compat_sigval __user *u_value));
181 COBALT_SYSCALL32emu_DECL(monitor_wait,
182 (
struct cobalt_monitor_shadow __user *u_mon,
183 int event,
const struct compat_timespec __user *u_ts,
186 COBALT_SYSCALL32emu_DECL(event_wait,
187 (
struct cobalt_event_shadow __user *u_event,
189 unsigned int __user *u_bits_r,
190 int mode,
const struct compat_timespec __user *u_ts));
192 COBALT_SYSCALL32emu_DECL(select,
194 compat_fd_set __user *u_rfds,
195 compat_fd_set __user *u_wfds,
196 compat_fd_set __user *u_xfds,
197 struct compat_timeval __user *u_tv));
199 COBALT_SYSCALL32emu_DECL(recvmsg,
200 (
int fd,
struct compat_msghdr __user *umsg,
203 COBALT_SYSCALL32emu_DECL(recvmmsg,
204 (
int fd,
struct compat_mmsghdr __user *u_msgvec,
206 unsigned int flags,
struct compat_timespec *u_timeout));
208 COBALT_SYSCALL32emu_DECL(sendmsg,
209 (
int fd,
struct compat_msghdr __user *umsg,
212 COBALT_SYSCALL32emu_DECL(sendmmsg,
213 (
int fd,
struct compat_mmsghdr __user *u_msgvec,
unsigned int vlen,
214 unsigned int flags));
216 COBALT_SYSCALL32emu_DECL(mmap,
218 struct compat_rtdm_mmap_request __user *u_rma,
219 compat_uptr_t __user *u_addrp));
221 COBALT_SYSCALL32emu_DECL(backtrace,
222 (
int nr, compat_ulong_t __user *u_backtrace,
225 COBALT_SYSCALL32emu_DECL(sem_open,
226 (compat_uptr_t __user *u_addrp,
227 const char __user *u_name,
228 int oflags, mode_t mode,
unsigned int value));
231 (
struct cobalt_sem_shadow __user *u_sem,
232 struct compat_timespec __user *u_ts));
ssize_t sched_getconfig_np(int cpu, int policy, union sched_config *config, size_t *len_r)
Retrieve CPU-specific scheduler settings for a policy
Definition: sched.c:630
int timer_create(clockid_t clockid, const struct sigevent *__restrict__ evp, timer_t *__restrict__ timerid)
Create a timer
Definition: timer.c:75
int clock_getres(clockid_t clock_id, struct timespec *tp)
Get the resolution of the specified clock.
Definition: clock.c:101
int mq_getattr(mqd_t qd, struct mq_attr *attr)
Get message queue attributes
Definition: mq.c:226
int timer_gettime(timer_t timerid, struct itimerspec *value)
Get timer next expiration date and reload value.
Definition: timer.c:212
int sched_setscheduler_ex(pid_t pid, int policy, const struct sched_param_ex *param_ex)
Set extended scheduling policy of a process
Definition: sched.c:294
int timer_settime(timer_t timerid, int flags, const struct itimerspec *__restrict__ value, struct itimerspec *__restrict__ ovalue)
Start or stop a timer
Definition: timer.c:168
int mq_notify(mqd_t q, const struct sigevent *evp)
Enable notification on message arrival
Definition: mq.c:576
int clock_settime(clockid_t clock_id, const struct timespec *tp)
Set the specified clock.
Definition: clock.c:239
int mq_timedsend(mqd_t q, const char *buffer, size_t len, unsigned prio, const struct timespec *timeout)
Attempt, during a bounded time, to send a message to a message queue.
Definition: mq.c:393
int sched_getscheduler_ex(pid_t pid, int *policy_r, struct sched_param_ex *param_ex)
Get extended scheduling policy of a process
Definition: sched.c:411
mqd_t mq_open(const char *name, int oflags,...)
Open a message queue
Definition: mq.c:105
ssize_t mq_timedreceive(mqd_t q, char *__restrict__ buffer, size_t len, unsigned *__restrict__ prio, const struct timespec *__restrict__ timeout)
Attempt, during a bounded time, to receive a message from a message queue.
Definition: mq.c:518
int clock_gettime(clockid_t clock_id, struct timespec *tp)
Read the specified clock.
Definition: clock.c:183
int clock_nanosleep(clockid_t clock_id, int flags, const struct timespec *rqtp, struct timespec *rmtp)
Sleep some amount of time.
Definition: clock.c:311
int sem_timedwait(sem_t *sem, const struct timespec *abs_timeout)
Attempt to decrement a semaphore with a time limit
Definition: semaphore.c:371
int sched_setconfig_np(int cpu, int policy, const union sched_config *config, size_t len)
Set CPU-specific scheduler settings for a policy
Definition: sched.c:572