18 #ifndef _COBALT_KERNEL_COMPAT_H 19 #define _COBALT_KERNEL_COMPAT_H 21 #ifdef CONFIG_XENO_ARCH_SYS3264 23 #include <linux/compat.h> 24 #include <net/compat.h> 25 #include <asm/xenomai/wrappers.h> 26 #include <cobalt/uapi/sched.h> 30 struct __compat_sched_ss_param {
31 int __sched_low_priority;
32 struct compat_timespec __sched_repl_period;
33 struct compat_timespec __sched_init_budget;
37 struct __compat_sched_rr_param {
38 struct compat_timespec __sched_rr_quantum;
41 struct compat_sched_param_ex {
44 struct __compat_sched_ss_param ss;
45 struct __compat_sched_rr_param rr;
46 struct __sched_tp_param tp;
47 struct __sched_quota_param quota;
51 struct compat_mq_attr {
52 compat_long_t mq_flags;
53 compat_long_t mq_maxmsg;
54 compat_long_t mq_msgsize;
55 compat_long_t mq_curmsgs;
58 struct compat_sched_tp_window {
59 struct compat_timespec offset;
60 struct compat_timespec duration;
64 struct __compat_sched_config_tp {
67 struct compat_sched_tp_window windows[0];
70 union compat_sched_config {
71 struct __compat_sched_config_tp tp;
72 struct __sched_config_quota quota;
75 #define compat_sched_tp_confsz(nr_win) \ 76 (sizeof(struct __compat_sched_config_tp) + nr_win * sizeof(struct compat_sched_tp_window)) 79 compat_ulong_t fds_bits[__FD_SETSIZE / (8 *
sizeof(compat_long_t))];
82 struct compat_rtdm_mmap_request {
89 int sys32_get_timespec(
struct timespec *ts,
90 const struct compat_timespec __user *cts);
92 int sys32_put_timespec(
struct compat_timespec __user *cts,
93 const struct timespec *ts);
95 int sys32_get_itimerspec(
struct itimerspec *its,
96 const struct compat_itimerspec __user *cits);
98 int sys32_put_itimerspec(
struct compat_itimerspec __user *cits,
99 const struct itimerspec *its);
101 int sys32_get_timeval(
struct timeval *tv,
102 const struct compat_timeval __user *ctv);
104 int sys32_put_timeval(
struct compat_timeval __user *ctv,
105 const struct timeval *tv);
107 ssize_t sys32_get_fdset(fd_set *fds,
const compat_fd_set __user *cfds,
110 ssize_t sys32_put_fdset(compat_fd_set __user *cfds,
const fd_set *fds,
113 int sys32_get_param_ex(
int policy,
114 struct sched_param_ex *p,
115 const struct compat_sched_param_ex __user *u_cp);
117 int sys32_put_param_ex(
int policy,
118 struct compat_sched_param_ex __user *u_cp,
119 const struct sched_param_ex *p);
121 int sys32_get_mqattr(
struct mq_attr *ap,
122 const struct compat_mq_attr __user *u_cap);
124 int sys32_put_mqattr(
struct compat_mq_attr __user *u_cap,
125 const struct mq_attr *ap);
127 int sys32_get_sigevent(
struct sigevent *ev,
128 const struct compat_sigevent *__user u_cev);
130 int sys32_get_sigset(sigset_t *
set,
const compat_sigset_t *u_cset);
132 int sys32_put_sigset(compat_sigset_t *u_cset,
const sigset_t *
set);
134 int sys32_get_sigval(
union sigval *val,
const union compat_sigval *u_cval);
136 int sys32_put_siginfo(
void __user *u_si,
const struct siginfo *si,
139 int sys32_get_msghdr(
struct user_msghdr *msg,
140 const struct compat_msghdr __user *u_cmsg);
142 int sys32_put_msghdr(
struct compat_msghdr __user *u_cmsg,
143 const struct user_msghdr *msg);
145 int sys32_get_iovec(
struct iovec *iov,
146 const struct compat_iovec __user *ciov,
149 int sys32_put_iovec(
struct compat_iovec __user *u_ciov,
150 const struct iovec *iov,