19#ifndef _COBALT_POSIX_MONITOR_H
20#define _COBALT_POSIX_MONITOR_H
22#include <cobalt/kernel/synch.h>
23#include <cobalt/uapi/monitor.h>
24#include <xenomai/posix/syscall.h>
25#include <xenomai/posix/process.h>
27struct cobalt_resources;
30struct cobalt_monitor {
34 struct cobalt_monitor_state *state;
35 struct list_head waiters;
38 struct cobalt_resnode resnode;
41int __cobalt_monitor_wait(
struct cobalt_monitor_shadow __user *u_mon,
42 int event,
const struct timespec64 *ts,
45COBALT_SYSCALL_DECL(monitor_init,
46 (
struct cobalt_monitor_shadow __user *u_monsh,
50COBALT_SYSCALL_DECL(monitor_enter,
51 (
struct cobalt_monitor_shadow __user *u_monsh));
53COBALT_SYSCALL_DECL(monitor_sync,
54 (
struct cobalt_monitor_shadow __user *u_monsh));
56COBALT_SYSCALL_DECL(monitor_exit,
57 (
struct cobalt_monitor_shadow __user *u_monsh));
59COBALT_SYSCALL_DECL(monitor_wait,
60 (
struct cobalt_monitor_shadow __user *u_monsh,
61 int event,
const struct __kernel_old_timespec __user *u_ts,
64COBALT_SYSCALL_DECL(monitor_wait64,
65 (
struct cobalt_monitor_shadow __user *u_monsh,
int event,
66 const struct __kernel_timespec __user *u_ts,
69COBALT_SYSCALL_DECL(monitor_destroy,
70 (
struct cobalt_monitor_shadow __user *u_monsh));
72void cobalt_monitor_reclaim(
struct cobalt_resnode *node,