2005-04-21 16:53:53 +02:00
|
|
|
#ifndef _IPC_H
|
|
|
|
#define _IPC_H
|
|
|
|
|
2010-03-23 01:09:11 +01:00
|
|
|
#include <minix/ipcconst.h>
|
2008-11-19 13:26:10 +01:00
|
|
|
#include <minix/type.h>
|
2012-06-10 19:50:17 +02:00
|
|
|
#include <minix/const.h>
|
2013-10-22 17:08:15 +02:00
|
|
|
#include <sys/signal.h>
|
2008-11-19 13:26:10 +01:00
|
|
|
|
2005-04-21 16:53:53 +02:00
|
|
|
/*==========================================================================*
|
|
|
|
* Types relating to messages. *
|
|
|
|
*==========================================================================*/
|
|
|
|
|
|
|
|
#define M1 1
|
|
|
|
#define M3 3
|
|
|
|
#define M4 4
|
Message type for path related calls.
- Updated system calls VFS_ACCESS, VFS_CHDIR, VFS_CHMOD, VFS_CHROOT,
VFS_MKDIR, VFS_OPEN, VFS_RMDIR, VSF_UNLINK
- Removed M3_STRING and M3_LONG_STRING, which are tied to a specific
"generic" message, and replaced where needed with M_PATH_STRING_MAX,
which is tied to the mess_lc_vfs_path message.
Change-Id: If287c74f5ece937b9431e5d95b5b58a3c83ebff1
2014-05-12 16:30:43 +02:00
|
|
|
#define M_PATH_STRING_MAX 40
|
2005-04-21 16:53:53 +02:00
|
|
|
|
2014-04-28 14:21:40 +02:00
|
|
|
typedef struct {
|
|
|
|
uint8_t data[56];
|
|
|
|
} mess_u8;
|
|
|
|
_ASSERT_MSG_SIZE(mess_u8);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
uint16_t data[28];
|
|
|
|
} mess_u16;
|
|
|
|
_ASSERT_MSG_SIZE(mess_u16);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
uint32_t data[14];
|
|
|
|
} mess_u32;
|
|
|
|
_ASSERT_MSG_SIZE(mess_u32);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
uint64_t data[7];
|
|
|
|
} mess_u64;
|
|
|
|
_ASSERT_MSG_SIZE(mess_u64);
|
|
|
|
|
2013-11-18 15:18:18 +01:00
|
|
|
typedef struct {
|
2013-11-15 19:01:25 +01:00
|
|
|
uint64_t m1ull1;
|
2013-11-18 15:18:18 +01:00
|
|
|
int m1i1, m1i2, m1i3;
|
|
|
|
char *m1p1, *m1p2, *m1p3, *m1p4;
|
2013-11-15 19:01:25 +01:00
|
|
|
uint8_t padding[20];
|
2013-11-18 15:18:18 +01:00
|
|
|
} mess_1;
|
|
|
|
_ASSERT_MSG_SIZE(mess_1);
|
|
|
|
|
|
|
|
typedef struct {
|
2013-11-27 12:01:26 +01:00
|
|
|
int64_t m2ll1;
|
2013-11-18 15:18:18 +01:00
|
|
|
int m2i1, m2i2, m2i3;
|
|
|
|
long m2l1, m2l2;
|
|
|
|
char *m2p1;
|
|
|
|
sigset_t sigset;
|
2013-11-15 19:01:25 +01:00
|
|
|
short m2s1;
|
2013-11-27 12:01:26 +01:00
|
|
|
uint8_t padding[6];
|
2013-11-18 15:18:18 +01:00
|
|
|
} mess_2;
|
|
|
|
_ASSERT_MSG_SIZE(mess_2);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int m3i1, m3i2;
|
|
|
|
char *m3p1;
|
Message type for path related calls.
- Updated system calls VFS_ACCESS, VFS_CHDIR, VFS_CHMOD, VFS_CHROOT,
VFS_MKDIR, VFS_OPEN, VFS_RMDIR, VSF_UNLINK
- Removed M3_STRING and M3_LONG_STRING, which are tied to a specific
"generic" message, and replaced where needed with M_PATH_STRING_MAX,
which is tied to the mess_lc_vfs_path message.
Change-Id: If287c74f5ece937b9431e5d95b5b58a3c83ebff1
2014-05-12 16:30:43 +02:00
|
|
|
char m3ca1[44];
|
2013-11-18 15:18:18 +01:00
|
|
|
} mess_3;
|
|
|
|
_ASSERT_MSG_SIZE(mess_3);
|
|
|
|
|
|
|
|
typedef struct {
|
2013-09-20 19:47:18 +02:00
|
|
|
int64_t m4ll1;
|
2013-11-18 15:18:18 +01:00
|
|
|
long m4l1, m4l2, m4l3, m4l4, m4l5;
|
2013-09-20 19:47:18 +02:00
|
|
|
uint8_t padding[28];
|
2013-11-18 15:18:18 +01:00
|
|
|
} mess_4;
|
|
|
|
_ASSERT_MSG_SIZE(mess_4);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
short m5s1, m5s2;
|
|
|
|
int m5i1, m5i2;
|
|
|
|
long m5l1, m5l2, m5l3;
|
|
|
|
uint8_t padding[32];
|
|
|
|
} mess_5;
|
|
|
|
_ASSERT_MSG_SIZE(mess_5);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int m7i1, m7i2, m7i3, m7i4, m7i5;
|
|
|
|
char *m7p1, *m7p2;
|
|
|
|
uint8_t padding[28];
|
|
|
|
} mess_7;
|
|
|
|
_ASSERT_MSG_SIZE(mess_7);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int m8i1, m8i2;
|
|
|
|
char *m8p1, *m8p2, *m8p3, *m8p4;
|
|
|
|
uint8_t padding[32];
|
|
|
|
} mess_8;
|
|
|
|
_ASSERT_MSG_SIZE(mess_8);
|
|
|
|
|
|
|
|
typedef struct {
|
2014-02-24 14:50:01 +01:00
|
|
|
uint64_t m9ull1, m9ull2;
|
2013-11-18 15:18:18 +01:00
|
|
|
long m9l1, m9l2, m9l3, m9l4, m9l5;
|
|
|
|
short m9s1, m9s2, m9s3, m9s4;
|
2014-02-24 14:50:01 +01:00
|
|
|
uint8_t padding[12];
|
2013-11-18 15:18:18 +01:00
|
|
|
} mess_9;
|
|
|
|
_ASSERT_MSG_SIZE(mess_9);
|
|
|
|
|
|
|
|
typedef struct {
|
2014-02-24 14:22:04 +01:00
|
|
|
u64_t m10ull1;
|
2013-11-18 15:18:18 +01:00
|
|
|
int m10i1, m10i2, m10i3, m10i4;
|
|
|
|
long m10l1, m10l2, m10l3;
|
2014-02-24 14:22:04 +01:00
|
|
|
uint8_t padding[20];
|
2013-11-18 15:18:18 +01:00
|
|
|
} mess_10;
|
|
|
|
_ASSERT_MSG_SIZE(mess_10);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int m11i1;
|
|
|
|
short m11s1, m11s2, m11s3, m11s4;
|
|
|
|
char *m11p1, *m11p2, *m11p3, *m11p4;
|
|
|
|
uint8_t padding[28];
|
|
|
|
} mess_11;
|
|
|
|
_ASSERT_MSG_SIZE(mess_11);
|
2005-04-21 16:53:53 +02:00
|
|
|
|
2013-03-20 20:18:52 +01:00
|
|
|
typedef struct {
|
2013-11-28 17:51:21 +01:00
|
|
|
off_t offset;
|
|
|
|
void *addr;
|
|
|
|
size_t len;
|
|
|
|
int prot;
|
|
|
|
int flags;
|
|
|
|
int fd;
|
|
|
|
endpoint_t forwhom;
|
|
|
|
void *retaddr;
|
|
|
|
u32_t padding[5];
|
|
|
|
} mess_mmap;
|
|
|
|
_ASSERT_MSG_SIZE(mess_mmap);
|
|
|
|
|
2013-11-28 18:37:06 +01:00
|
|
|
typedef struct {
|
|
|
|
u64_t timestamp; /* valid for every notify msg */
|
|
|
|
u64_t interrupts; /* raised interrupts; valid if from HARDWARE */
|
|
|
|
sigset_t sigset; /* raised signals; valid if from SYSTEM */
|
|
|
|
uint8_t padding[24];
|
|
|
|
} mess_notify;
|
|
|
|
_ASSERT_MSG_SIZE(mess_notify);
|
|
|
|
|
2013-11-28 19:22:37 +01:00
|
|
|
/* For SYS_GETKSIG, _ENDKSIG, _KILL, _SIGSEND, _SIGRETURN. */
|
|
|
|
typedef struct {
|
|
|
|
sigset_t map; /* used to pass signal bit map */
|
|
|
|
endpoint_t endpt; /* process number for inform */
|
|
|
|
int sig; /* signal number to send */
|
|
|
|
void *sigctx; /* pointer to signal context */
|
|
|
|
uint8_t padding[28];
|
|
|
|
} mess_sigcalls;
|
|
|
|
_ASSERT_MSG_SIZE(mess_sigcalls);
|
|
|
|
|
2014-05-26 16:34:34 +02:00
|
|
|
typedef struct {
|
|
|
|
int id;
|
|
|
|
int page;
|
|
|
|
int code;
|
|
|
|
int value;
|
|
|
|
int flags;
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_input_tty_event;
|
|
|
|
_ASSERT_MSG_SIZE(mess_input_tty_event);
|
|
|
|
|
2014-05-14 16:59:14 +02:00
|
|
|
typedef struct {
|
|
|
|
time_t acnt_queue;
|
|
|
|
|
|
|
|
unsigned long acnt_deqs;
|
|
|
|
unsigned long acnt_ipc_sync;
|
|
|
|
unsigned long acnt_ipc_async;
|
|
|
|
unsigned long acnt_preempt;
|
|
|
|
uint32_t acnt_cpu;
|
|
|
|
uint32_t acnt_cpu_load;
|
|
|
|
|
|
|
|
uint8_t padding[24];
|
|
|
|
} mess_krn_lsys_schedule;
|
|
|
|
_ASSERT_MSG_SIZE(mess_krn_lsys_schedule);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpoint;
|
|
|
|
int quantum;
|
|
|
|
int priority;
|
|
|
|
int cpu;
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_lsys_krn_schedule;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_schedule);
|
|
|
|
|
2014-05-13 16:36:03 +02:00
|
|
|
typedef struct {
|
|
|
|
vir_bytes name;
|
|
|
|
size_t namelen;
|
|
|
|
vir_bytes frame;
|
|
|
|
size_t framelen;
|
|
|
|
vir_bytes ps_str;
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_lc_pm_exec;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_exec);
|
|
|
|
|
2014-05-13 17:33:27 +02:00
|
|
|
typedef struct {
|
|
|
|
int status;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lc_pm_exit;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_exit);
|
|
|
|
|
2014-05-13 15:13:12 +02:00
|
|
|
typedef struct {
|
|
|
|
pid_t pid;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lc_pm_getsid;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_getsid);
|
|
|
|
|
2014-05-13 14:14:49 +02:00
|
|
|
typedef struct {
|
|
|
|
int num;
|
|
|
|
vir_bytes ptr; /* gid_t * */
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_lc_pm_groups;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_groups);
|
|
|
|
|
2014-05-13 08:43:49 +02:00
|
|
|
typedef struct {
|
|
|
|
int which;
|
|
|
|
vir_bytes value; /* const struct itimerval * */
|
|
|
|
vir_bytes ovalue; /* struct itimerval * */
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_lc_pm_itimer;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_itimer);
|
|
|
|
|
2014-05-13 16:21:04 +02:00
|
|
|
typedef struct {
|
|
|
|
vir_bytes ctx; /* mcontext_t * */
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lc_pm_mcontext;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_mcontext);
|
|
|
|
|
2014-05-13 13:56:04 +02:00
|
|
|
typedef struct {
|
|
|
|
int which;
|
|
|
|
int who;
|
|
|
|
int prio;
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_lc_pm_priority;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_priority);
|
|
|
|
|
2014-05-13 10:07:12 +02:00
|
|
|
typedef struct {
|
|
|
|
pid_t pid;
|
|
|
|
int req;
|
|
|
|
vir_bytes addr;
|
|
|
|
long data;
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_lc_pm_ptrace;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_ptrace);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
long data;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_pm_lc_ptrace;
|
|
|
|
_ASSERT_MSG_SIZE(mess_pm_lc_ptrace);
|
|
|
|
|
2014-05-13 14:27:52 +02:00
|
|
|
typedef struct {
|
|
|
|
int how;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lc_pm_reboot;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_reboot);
|
|
|
|
|
2014-05-19 11:18:20 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t who;
|
|
|
|
vir_bytes addr;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_lc_pm_rusage;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_rusage);
|
|
|
|
|
2014-05-13 14:55:47 +02:00
|
|
|
typedef struct {
|
|
|
|
gid_t gid;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lc_pm_setgid;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_setgid);
|
|
|
|
|
2014-05-13 14:52:48 +02:00
|
|
|
typedef struct {
|
|
|
|
uid_t uid;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lc_pm_setuid;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_setuid);
|
|
|
|
|
2014-05-13 11:31:36 +02:00
|
|
|
typedef struct {
|
|
|
|
int req;
|
|
|
|
int field;
|
|
|
|
size_t len;
|
|
|
|
vir_bytes value;
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_lc_pm_sysuname;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_sysuname);
|
|
|
|
|
2014-05-13 19:02:12 +02:00
|
|
|
typedef struct {
|
|
|
|
pid_t pid;
|
|
|
|
int nr;
|
|
|
|
vir_bytes act; /* const struct sigaction * */
|
|
|
|
vir_bytes oact; /* struct sigaction * */
|
|
|
|
vir_bytes ret; /* int (*)(void) */
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_lc_pm_sig;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_sig);
|
|
|
|
|
2014-05-13 18:29:11 +02:00
|
|
|
typedef struct {
|
|
|
|
int how;
|
|
|
|
vir_bytes ctx;
|
|
|
|
sigset_t set;
|
|
|
|
|
|
|
|
uint8_t padding[32];
|
|
|
|
} mess_lc_pm_sigset;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_sigset);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
sigset_t set;
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_pm_lc_sigset;
|
|
|
|
_ASSERT_MSG_SIZE(mess_pm_lc_sigset);
|
|
|
|
|
2014-05-12 23:40:11 +02:00
|
|
|
typedef struct {
|
|
|
|
time_t sec;
|
|
|
|
|
|
|
|
clockid_t clk_id;
|
|
|
|
int now;
|
|
|
|
long nsec;
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_lc_pm_time;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_time);
|
|
|
|
|
2014-05-19 09:19:01 +02:00
|
|
|
typedef struct {
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
vir_bytes tm; /* struct tm * */
|
|
|
|
int flags;
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_lc_readclock_rtcdev;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_readclock_rtcdev);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int status;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_readclock_lc_rtcdev;
|
|
|
|
_ASSERT_MSG_SIZE(mess_readclock_lc_rtcdev);
|
|
|
|
|
2014-05-12 23:40:11 +02:00
|
|
|
typedef struct {
|
|
|
|
time_t sec;
|
|
|
|
|
|
|
|
long nsec;
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_pm_lc_time;
|
|
|
|
_ASSERT_MSG_SIZE(mess_pm_lc_time);
|
|
|
|
|
2014-05-12 20:53:02 +02:00
|
|
|
typedef struct {
|
|
|
|
pid_t pid;
|
|
|
|
int options;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_lc_pm_waitpid;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_pm_waitpid);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int status;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_pm_lc_waitpid;
|
|
|
|
_ASSERT_MSG_SIZE(mess_pm_lc_waitpid);
|
|
|
|
|
2014-05-12 16:48:10 +02:00
|
|
|
typedef struct {
|
|
|
|
vir_bytes name;
|
|
|
|
size_t len;
|
|
|
|
int fd;
|
|
|
|
uid_t owner;
|
|
|
|
gid_t group;
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_lc_vfs_chown;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_chown);
|
|
|
|
|
2014-05-12 17:16:00 +02:00
|
|
|
typedef struct {
|
|
|
|
int fd;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lc_vfs_close;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_close);
|
|
|
|
|
2014-05-12 16:42:43 +02:00
|
|
|
typedef struct {
|
|
|
|
vir_bytes name;
|
|
|
|
size_t len;
|
|
|
|
int flags;
|
|
|
|
mode_t mode;
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_lc_vfs_creat;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_creat);
|
|
|
|
|
2014-05-12 16:58:19 +02:00
|
|
|
typedef struct {
|
|
|
|
int fd;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lc_vfs_fchdir;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_fchdir);
|
|
|
|
|
2014-05-12 17:05:32 +02:00
|
|
|
typedef struct {
|
|
|
|
int fd;
|
|
|
|
mode_t mode;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_lc_vfs_fchmod;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_fchmod);
|
|
|
|
|
2014-05-12 14:58:20 +02:00
|
|
|
typedef struct {
|
|
|
|
int fd;
|
|
|
|
int cmd;
|
|
|
|
int arg_int;
|
|
|
|
vir_bytes arg_ptr; /* struct flock * */
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_lc_vfs_fcntl;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_fcntl);
|
|
|
|
|
2014-05-12 14:19:05 +02:00
|
|
|
typedef struct {
|
|
|
|
int fd;
|
|
|
|
vir_bytes buf; /* struct stat * */
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_lc_vfs_fstat;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_fstat);
|
|
|
|
|
2014-05-12 13:07:11 +02:00
|
|
|
typedef struct {
|
|
|
|
int fd;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lc_vfs_fsync;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_fsync);
|
|
|
|
|
2014-05-12 11:34:18 +02:00
|
|
|
typedef struct {
|
|
|
|
int32_t flags;
|
|
|
|
size_t len;
|
|
|
|
vir_bytes buf; /* struct statvfs */
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_lc_vfs_getvfsstat;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_getvfsstat);
|
|
|
|
|
2014-05-12 12:46:59 +02:00
|
|
|
typedef struct {
|
|
|
|
int fd;
|
|
|
|
unsigned long req;
|
2014-05-12 18:17:10 +02:00
|
|
|
vir_bytes arg;
|
2014-05-12 12:46:59 +02:00
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_lc_vfs_ioctl;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_ioctl);
|
|
|
|
|
2014-05-12 13:47:18 +02:00
|
|
|
typedef struct {
|
|
|
|
vir_bytes name1;
|
|
|
|
vir_bytes name2;
|
|
|
|
size_t len1;
|
|
|
|
size_t len2;
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_lc_vfs_link;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_link);
|
|
|
|
|
2014-05-12 13:16:40 +02:00
|
|
|
typedef struct {
|
|
|
|
off_t offset;
|
|
|
|
|
|
|
|
int fd;
|
|
|
|
int whence;
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_lc_vfs_lseek;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_lseek);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
off_t offset;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_vfs_lc_lseek;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_lc_lseek);
|
|
|
|
|
2014-05-12 15:04:23 +02:00
|
|
|
typedef struct {
|
|
|
|
dev_t device;
|
|
|
|
|
|
|
|
vir_bytes name;
|
|
|
|
size_t len;
|
|
|
|
mode_t mode;
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_lc_vfs_mknod;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_mknod);
|
|
|
|
|
2014-05-12 12:00:38 +02:00
|
|
|
typedef struct {
|
|
|
|
int flags;
|
|
|
|
size_t devlen;
|
|
|
|
size_t pathlen;
|
|
|
|
size_t typelen;
|
|
|
|
size_t labellen;
|
|
|
|
vir_bytes dev;
|
|
|
|
vir_bytes path;
|
|
|
|
vir_bytes type;
|
|
|
|
vir_bytes label;
|
|
|
|
|
|
|
|
uint8_t padding[20];
|
|
|
|
} mess_lc_vfs_mount;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_mount);
|
|
|
|
|
Message type for path related calls.
- Updated system calls VFS_ACCESS, VFS_CHDIR, VFS_CHMOD, VFS_CHROOT,
VFS_MKDIR, VFS_OPEN, VFS_RMDIR, VSF_UNLINK
- Removed M3_STRING and M3_LONG_STRING, which are tied to a specific
"generic" message, and replaced where needed with M_PATH_STRING_MAX,
which is tied to the mess_lc_vfs_path message.
Change-Id: If287c74f5ece937b9431e5d95b5b58a3c83ebff1
2014-05-12 16:30:43 +02:00
|
|
|
typedef struct {
|
|
|
|
vir_bytes name;
|
|
|
|
size_t len;
|
|
|
|
int flags;
|
|
|
|
mode_t mode;
|
|
|
|
char buf[M_PATH_STRING_MAX];
|
|
|
|
} mess_lc_vfs_path;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_path);
|
|
|
|
|
2014-05-12 13:28:42 +02:00
|
|
|
typedef struct {
|
|
|
|
int fd0;
|
|
|
|
int fd1;
|
|
|
|
int flags;
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_lc_vfs_pipe2;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_pipe2);
|
|
|
|
|
2014-05-12 14:05:17 +02:00
|
|
|
typedef struct {
|
|
|
|
vir_bytes name; /* const char * */
|
|
|
|
size_t namelen;
|
|
|
|
vir_bytes buf;
|
|
|
|
size_t bufsize;
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_lc_vfs_readlink;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_readlink);
|
|
|
|
|
2014-05-12 18:17:10 +02:00
|
|
|
typedef struct {
|
|
|
|
int fd;
|
|
|
|
vir_bytes buf;
|
|
|
|
size_t len;
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_lc_vfs_readwrite;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_readwrite);
|
|
|
|
|
2014-05-19 11:18:20 +02:00
|
|
|
typedef struct {
|
|
|
|
vir_bytes addr;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lc_vfs_rusage;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_rusage);
|
|
|
|
|
2014-05-12 11:21:52 +02:00
|
|
|
typedef struct {
|
|
|
|
uint32_t nfds;
|
|
|
|
fd_set *readfds;
|
|
|
|
fd_set *writefds;
|
|
|
|
fd_set *errorfds;
|
|
|
|
vir_bytes timeout; /* user-provided 'struct timeval *' */
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_lc_vfs_select;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_select);
|
|
|
|
|
2014-05-12 14:12:18 +02:00
|
|
|
typedef struct {
|
|
|
|
size_t len;
|
|
|
|
vir_bytes name; /* const char * */
|
|
|
|
vir_bytes buf; /* struct stat * */
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_lc_vfs_stat;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_stat);
|
|
|
|
|
2014-05-12 11:49:08 +02:00
|
|
|
typedef struct {
|
|
|
|
int fd;
|
|
|
|
int flags;
|
|
|
|
size_t len;
|
|
|
|
vir_bytes name;
|
|
|
|
vir_bytes buf;
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_lc_vfs_statvfs1;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_statvfs1);
|
|
|
|
|
2014-05-12 13:24:16 +02:00
|
|
|
typedef struct {
|
|
|
|
off_t offset;
|
|
|
|
|
|
|
|
int fd;
|
|
|
|
vir_bytes name;
|
|
|
|
size_t len;
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_lc_vfs_truncate;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_truncate);
|
|
|
|
|
2014-05-12 13:37:39 +02:00
|
|
|
typedef struct {
|
|
|
|
mode_t mask;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lc_vfs_umask;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_umask);
|
|
|
|
|
2014-05-12 12:44:59 +02:00
|
|
|
typedef struct {
|
|
|
|
vir_bytes name;
|
|
|
|
size_t namelen;
|
|
|
|
vir_bytes label;
|
|
|
|
size_t labellen;
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_lc_vfs_umount;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vfs_umount);
|
|
|
|
|
2014-05-19 11:18:20 +02:00
|
|
|
typedef struct {
|
|
|
|
vir_bytes addr;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lc_vm_rusage;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lc_vm_rusage);
|
|
|
|
|
2014-05-13 12:07:25 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
vir_bytes ptr; /* struct exec_info * */
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_lexec_pm_exec_new;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lexec_pm_exec_new);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int suid;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_pm_lexec_exec_new;
|
|
|
|
_ASSERT_MSG_SIZE(mess_pm_lexec_exec_new);
|
|
|
|
|
2014-05-15 16:39:51 +02:00
|
|
|
typedef struct {
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_li2cdriver_i2c_busc_i2c_exec;
|
|
|
|
_ASSERT_MSG_SIZE(mess_li2cdriver_i2c_busc_i2c_exec);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
uint8_t padding[56];
|
|
|
|
} mess_i2c_li2cdriver_busc_i2c_exec;
|
|
|
|
_ASSERT_MSG_SIZE(mess_i2c_li2cdriver_busc_i2c_exec);
|
|
|
|
|
2014-05-15 16:14:21 +02:00
|
|
|
typedef struct {
|
|
|
|
uint16_t addr; /* FIXME: strictly speaking this is an i2c_addr_t, but
|
|
|
|
to get it I would need to include
|
|
|
|
sys/dev/i2c/i2c_io.h, which I am not sure is a good
|
|
|
|
idea to have everywhere. */
|
|
|
|
|
|
|
|
uint8_t padding[54];
|
|
|
|
} mess_li2cdriver_i2c_busc_i2c_reserve;
|
|
|
|
_ASSERT_MSG_SIZE(mess_li2cdriver_i2c_busc_i2c_reserve);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
uint8_t padding[56];
|
|
|
|
} mess_i2c_li2cdriver_busc_i2c_reserve;
|
|
|
|
_ASSERT_MSG_SIZE(mess_i2c_li2cdriver_busc_i2c_reserve);
|
|
|
|
|
2014-05-19 09:39:57 +02:00
|
|
|
typedef struct {
|
|
|
|
int kbd_id;
|
|
|
|
int mouse_id;
|
|
|
|
int rsvd1_id;
|
|
|
|
int rsvd2_id;
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_input_linputdriver_input_conf;
|
|
|
|
_ASSERT_MSG_SIZE(mess_input_linputdriver_input_conf);
|
|
|
|
|
2014-05-19 10:39:55 +02:00
|
|
|
typedef struct {
|
|
|
|
uint32_t led_mask;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_input_linputdriver_setleds;
|
|
|
|
_ASSERT_MSG_SIZE(mess_input_linputdriver_setleds);
|
|
|
|
|
2014-05-19 10:18:55 +02:00
|
|
|
typedef struct {
|
|
|
|
int id;
|
|
|
|
int page;
|
|
|
|
int code;
|
|
|
|
int value;
|
|
|
|
int flags;
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_linputdriver_input_event;
|
|
|
|
_ASSERT_MSG_SIZE(mess_linputdriver_input_event);
|
|
|
|
|
2014-05-19 11:37:26 +02:00
|
|
|
typedef struct {
|
|
|
|
int what;
|
|
|
|
vir_bytes where;
|
|
|
|
size_t size;
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_lsys_getsysinfo;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_getsysinfo);
|
|
|
|
|
2014-05-14 16:39:00 +02:00
|
|
|
typedef struct {
|
|
|
|
uint32_t flags;
|
|
|
|
endpoint_t endpoint;
|
|
|
|
int priority;
|
|
|
|
int quantum;
|
|
|
|
int cpu;
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_lsys_krn_schedctl;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_schedctl);
|
|
|
|
|
2014-05-21 16:52:18 +02:00
|
|
|
typedef struct {
|
|
|
|
int how;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lsys_krn_sys_abort;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_abort);
|
|
|
|
|
2014-05-26 12:12:11 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lsys_krn_sys_clear;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_clear);
|
|
|
|
|
2014-05-21 17:21:26 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t src_endpt;
|
|
|
|
vir_bytes src_addr;
|
|
|
|
endpoint_t dst_endpt;
|
|
|
|
vir_bytes dst_addr;
|
|
|
|
phys_bytes nr_bytes;
|
|
|
|
int flags;
|
|
|
|
|
|
|
|
uint8_t padding[32];
|
|
|
|
} mess_lsys_krn_sys_copy;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_copy);
|
|
|
|
|
2014-05-26 12:03:25 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
vir_bytes ip;
|
|
|
|
vir_bytes stack;
|
|
|
|
vir_bytes name;
|
|
|
|
vir_bytes ps_str;
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_lsys_krn_sys_exec;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_exec);
|
|
|
|
|
2014-05-26 11:42:00 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
endpoint_t slot;
|
|
|
|
uint32_t flags;
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_lsys_krn_sys_fork;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_fork);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
vir_bytes msgaddr;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_krn_lsys_sys_fork;
|
|
|
|
_ASSERT_MSG_SIZE(mess_krn_lsys_sys_fork);
|
|
|
|
|
2014-05-22 10:46:02 +02:00
|
|
|
typedef struct {
|
|
|
|
int request;
|
|
|
|
endpoint_t endpt;
|
|
|
|
vir_bytes val_ptr;
|
|
|
|
int val_len;
|
|
|
|
vir_bytes val_ptr2;
|
|
|
|
int val_len2_e;
|
|
|
|
|
|
|
|
uint8_t padding[32];
|
|
|
|
} mess_lsys_krn_sys_getinfo;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_getinfo);
|
|
|
|
|
2014-05-26 10:41:06 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
vir_bytes ctx_ptr;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_lsys_krn_sys_getmcontext;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_getmcontext);
|
|
|
|
|
2014-05-22 10:46:02 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
int privflags;
|
|
|
|
char name[48];
|
|
|
|
|
|
|
|
} mess_krn_lsys_sys_getwhoami;
|
|
|
|
_ASSERT_MSG_SIZE(mess_krn_lsys_sys_getwhoami);
|
|
|
|
|
2014-05-21 16:59:30 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lsys_krn_sys_iopenable;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_iopenable);
|
|
|
|
|
2014-05-21 16:44:37 +02:00
|
|
|
typedef struct {
|
|
|
|
int request;
|
|
|
|
int vector;
|
|
|
|
int policy;
|
|
|
|
int hook_id;
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_lsys_krn_sys_irqctl;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_irqctl);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int hook_id;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_krn_lsys_sys_irqctl;
|
|
|
|
_ASSERT_MSG_SIZE(mess_krn_lsys_sys_irqctl);
|
|
|
|
|
2014-05-23 11:08:21 +02:00
|
|
|
typedef struct {
|
|
|
|
int request;
|
|
|
|
endpoint_t endpt;
|
|
|
|
vir_bytes arg_ptr;
|
|
|
|
phys_bytes phys_start;
|
|
|
|
phys_bytes phys_len;
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_lsys_krn_sys_privctl;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_privctl);
|
|
|
|
|
2014-05-20 13:56:35 +02:00
|
|
|
typedef struct {
|
|
|
|
int request;
|
|
|
|
long int port;
|
|
|
|
endpoint_t vec_endpt;
|
|
|
|
phys_bytes vec_addr;
|
|
|
|
vir_bytes vec_size;
|
|
|
|
vir_bytes offset;
|
|
|
|
|
|
|
|
uint8_t padding[32];
|
|
|
|
} mess_lsys_krn_sys_sdevio;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_sdevio);
|
|
|
|
|
2014-05-21 10:52:39 +02:00
|
|
|
typedef struct {
|
|
|
|
clock_t exp_time;
|
|
|
|
clock_t time_left;
|
|
|
|
int abs_time;
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_lsys_krn_sys_setalarm;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_setalarm);
|
|
|
|
|
2014-05-23 12:53:48 +02:00
|
|
|
typedef struct {
|
|
|
|
vir_bytes addr; /* cp_grant_t * */
|
|
|
|
int size;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_lsys_krn_sys_setgrant;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_setgrant);
|
|
|
|
|
2014-05-26 10:41:06 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
vir_bytes ctx_ptr;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_lsys_krn_sys_setmcontext;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_setmcontext);
|
|
|
|
|
2014-05-23 10:18:35 +02:00
|
|
|
typedef struct {
|
|
|
|
int request;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lsys_krn_sys_statectl;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_statectl);
|
|
|
|
|
2014-05-22 15:30:51 +02:00
|
|
|
typedef struct {
|
|
|
|
time_t boot_time;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_lsys_krn_sys_stime;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_stime);
|
|
|
|
|
2014-05-22 15:31:51 +02:00
|
|
|
typedef struct {
|
|
|
|
time_t sec; /* time in seconds since 1970 */
|
|
|
|
long int nsec;
|
|
|
|
int now; /* non-zero for immediate, 0 for adjtime */
|
|
|
|
clockid_t clock_id;
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_lsys_krn_sys_settime;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_settime);
|
|
|
|
|
2014-05-22 11:32:14 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lsys_krn_sys_times;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_times);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
clock_t real_ticks;
|
|
|
|
clock_t boot_ticks;
|
|
|
|
clock_t boot_time;
|
|
|
|
clock_t user_time;
|
|
|
|
clock_t system_time;
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_krn_lsys_sys_times;
|
|
|
|
_ASSERT_MSG_SIZE(mess_krn_lsys_sys_times);
|
|
|
|
|
2014-05-23 10:09:09 +02:00
|
|
|
typedef struct {
|
|
|
|
int request;
|
|
|
|
endpoint_t endpt;
|
|
|
|
vir_bytes address;
|
|
|
|
long int data;
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_lsys_krn_sys_trace;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_trace);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
long int data;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_krn_lsys_sys_trace;
|
|
|
|
_ASSERT_MSG_SIZE(mess_krn_lsys_sys_trace);
|
|
|
|
|
2014-05-21 17:54:35 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t src_endpt;
|
|
|
|
int segment;
|
|
|
|
vir_bytes src_addr;
|
|
|
|
endpoint_t dst_endpt;
|
|
|
|
int nr_bytes;
|
|
|
|
|
|
|
|
uint8_t padding[36];
|
|
|
|
} mess_lsys_krn_sys_umap;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_umap);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
phys_bytes dst_addr;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_krn_lsys_sys_umap;
|
|
|
|
_ASSERT_MSG_SIZE(mess_krn_lsys_sys_umap);
|
|
|
|
|
2014-05-21 10:45:19 +02:00
|
|
|
typedef struct {
|
|
|
|
int request;
|
|
|
|
int vec_size;
|
|
|
|
vir_bytes vec_addr; /* pv{b,w,l}_pair_t * */
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_lsys_krn_sys_vdevio;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_vdevio);
|
|
|
|
|
2014-05-22 10:05:44 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
vir_bytes vaddr; /* struct vumap_vir * */
|
|
|
|
int vcount;
|
|
|
|
vir_bytes paddr; /* struct vumap_phys * */
|
|
|
|
int pmax;
|
|
|
|
int access;
|
|
|
|
size_t offset;
|
|
|
|
|
|
|
|
uint8_t padding[28];
|
|
|
|
} mess_lsys_krn_sys_vumap;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_vumap);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int pcount;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_krn_lsys_sys_vumap;
|
|
|
|
_ASSERT_MSG_SIZE(mess_krn_lsys_sys_vumap);
|
|
|
|
|
2014-05-20 13:18:39 +02:00
|
|
|
typedef struct {
|
|
|
|
phys_bytes base;
|
|
|
|
phys_bytes count;
|
|
|
|
unsigned long pattern;
|
|
|
|
endpoint_t process;
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_lsys_krn_sys_memset;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_krn_sys_memset);
|
|
|
|
|
2014-05-15 11:45:42 +02:00
|
|
|
typedef struct {
|
|
|
|
int devind;
|
|
|
|
int port;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_lsys_pci_busc_get_bar;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_pci_busc_get_bar);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int base;
|
|
|
|
size_t size;
|
|
|
|
uint32_t flags;
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_pci_lsys_busc_get_bar;
|
|
|
|
_ASSERT_MSG_SIZE(mess_pci_lsys_busc_get_bar);
|
|
|
|
|
2014-05-12 18:55:29 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lsys_pm_getepinfo;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_pm_getepinfo);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
uid_t uid;
|
|
|
|
gid_t gid;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_pm_lsys_getepinfo;
|
|
|
|
_ASSERT_MSG_SIZE(mess_pm_lsys_getepinfo);
|
|
|
|
|
2014-05-12 18:54:52 +02:00
|
|
|
typedef struct {
|
|
|
|
pid_t pid;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lsys_pm_getprocnr;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_pm_getprocnr);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_pm_lsys_getprocnr;
|
|
|
|
_ASSERT_MSG_SIZE(mess_pm_lsys_getprocnr);
|
|
|
|
|
2014-05-13 13:35:40 +02:00
|
|
|
typedef struct {
|
|
|
|
uid_t uid;
|
|
|
|
gid_t gid;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_lsys_pm_srv_fork;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_pm_srv_fork);
|
|
|
|
|
2014-05-14 17:57:12 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpoint;
|
|
|
|
endpoint_t parent;
|
|
|
|
int maxprio;
|
|
|
|
int quantum;
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_lsys_sched_scheduling_start;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_sched_scheduling_start);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
endpoint_t scheduler;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_sched_lsys_scheduling_start;
|
|
|
|
_ASSERT_MSG_SIZE(mess_sched_lsys_scheduling_start);
|
|
|
|
|
2014-05-14 18:29:46 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpoint;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_lsys_sched_scheduling_stop;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_sched_scheduling_stop);
|
|
|
|
|
2014-05-19 11:25:52 +02:00
|
|
|
typedef struct {
|
|
|
|
int request;
|
|
|
|
vir_bytes arg;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_lsys_svrctl;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_svrctl);
|
|
|
|
|
2014-05-12 12:53:20 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
size_t count;
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_lsys_vfs_checkperms;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_vfs_checkperms);
|
|
|
|
|
2014-05-12 12:58:56 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
int fd;
|
|
|
|
int what;
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_lsys_vfs_copyfd;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_vfs_copyfd);
|
|
|
|
|
2014-05-12 13:03:55 +02:00
|
|
|
typedef struct {
|
|
|
|
devmajor_t major;
|
|
|
|
size_t labellen;
|
|
|
|
vir_bytes label;
|
|
|
|
|
|
|
|
uint8_t padding[44];
|
|
|
|
} mess_lsys_vfs_mapdriver;
|
|
|
|
_ASSERT_MSG_SIZE(mess_lsys_vfs_mapdriver);
|
|
|
|
|
2014-05-19 19:19:14 +02:00
|
|
|
typedef struct {
|
|
|
|
int mode;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_net_netdrv_dl_conf;
|
|
|
|
_ASSERT_MSG_SIZE(mess_net_netdrv_dl_conf);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
int stat;
|
|
|
|
uint8_t hw_addr[6];
|
|
|
|
|
|
|
|
uint8_t padding[46];
|
|
|
|
} mess_netdrv_net_dl_conf;
|
|
|
|
_ASSERT_MSG_SIZE(mess_netdrv_net_dl_conf);
|
|
|
|
|
2014-05-19 19:40:12 +02:00
|
|
|
typedef struct {
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_net_netdrv_dl_getstat_s;
|
|
|
|
_ASSERT_MSG_SIZE(mess_net_netdrv_dl_getstat_s);
|
|
|
|
|
2014-05-20 11:19:27 +02:00
|
|
|
typedef struct {
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
int count;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_net_netdrv_dl_readv_s;
|
|
|
|
_ASSERT_MSG_SIZE(mess_net_netdrv_dl_readv_s);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
int count;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_net_netdrv_dl_writev_s;
|
|
|
|
_ASSERT_MSG_SIZE(mess_net_netdrv_dl_writev_s);
|
|
|
|
|
2014-05-20 09:13:26 +02:00
|
|
|
typedef struct {
|
|
|
|
int count;
|
|
|
|
uint32_t flags;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_netdrv_net_dl_task;
|
|
|
|
_ASSERT_MSG_SIZE(mess_netdrv_net_dl_task);
|
|
|
|
|
2014-05-13 14:47:11 +02:00
|
|
|
typedef struct {
|
|
|
|
uid_t egid;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_pm_lc_getgid;
|
|
|
|
_ASSERT_MSG_SIZE(mess_pm_lc_getgid);
|
|
|
|
|
2014-05-13 15:05:05 +02:00
|
|
|
typedef struct {
|
|
|
|
pid_t parent_pid;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_pm_lc_getpid;
|
|
|
|
_ASSERT_MSG_SIZE(mess_pm_lc_getpid);
|
|
|
|
|
2014-05-13 14:41:26 +02:00
|
|
|
typedef struct {
|
|
|
|
uid_t euid;
|
|
|
|
|
|
|
|
uint8_t padding[52];
|
|
|
|
} mess_pm_lc_getuid;
|
|
|
|
_ASSERT_MSG_SIZE(mess_pm_lc_getuid);
|
|
|
|
|
2014-05-14 18:10:23 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpoint;
|
|
|
|
uint32_t maxprio;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_pm_sched_scheduling_set_nice;
|
|
|
|
_ASSERT_MSG_SIZE(mess_pm_sched_scheduling_set_nice);
|
|
|
|
|
2014-05-13 13:22:52 +02:00
|
|
|
typedef struct {
|
|
|
|
endpoint_t endpt;
|
|
|
|
int result;
|
|
|
|
vir_bytes pc;
|
|
|
|
vir_bytes ps_str;
|
|
|
|
|
|
|
|
uint8_t padding[40];
|
|
|
|
} mess_rs_pm_exec_restart;
|
|
|
|
_ASSERT_MSG_SIZE(mess_rs_pm_exec_restart);
|
|
|
|
|
2014-05-13 18:50:59 +02:00
|
|
|
typedef struct {
|
|
|
|
pid_t pid;
|
|
|
|
int nr;
|
|
|
|
|
|
|
|
uint8_t padding[48];
|
|
|
|
} mess_rs_pm_srv_kill;
|
|
|
|
_ASSERT_MSG_SIZE(mess_rs_pm_srv_kill);
|
|
|
|
|
2014-05-01 13:45:58 +02:00
|
|
|
typedef struct {
|
|
|
|
dev_t device;
|
|
|
|
off_t seek_pos;
|
|
|
|
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
size_t nbytes;
|
|
|
|
|
|
|
|
uint8_t data[32];
|
|
|
|
} mess_vfs_fs_breadwrite;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_breadwrite);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
off_t seek_pos;
|
|
|
|
|
|
|
|
size_t nbytes;
|
|
|
|
|
|
|
|
uint8_t data[44];
|
|
|
|
} mess_fs_vfs_breadwrite;
|
|
|
|
_ASSERT_MSG_SIZE(mess_fs_vfs_breadwrite);
|
|
|
|
|
2014-04-30 20:37:50 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
mode_t mode;
|
|
|
|
|
|
|
|
uint8_t data[44];
|
|
|
|
} mess_vfs_fs_chmod;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_chmod);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
mode_t mode;
|
|
|
|
|
|
|
|
uint8_t data[52];
|
|
|
|
} mess_fs_vfs_chmod;
|
|
|
|
_ASSERT_MSG_SIZE(mess_fs_vfs_chmod);
|
|
|
|
|
2014-05-01 11:40:33 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
uid_t uid;
|
|
|
|
gid_t gid;
|
|
|
|
|
|
|
|
uint8_t data[40];
|
|
|
|
} mess_vfs_fs_chown;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_chown);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
mode_t mode;
|
|
|
|
|
|
|
|
uint8_t data[52];
|
|
|
|
} mess_fs_vfs_chown;
|
|
|
|
_ASSERT_MSG_SIZE(mess_fs_vfs_chown);
|
|
|
|
|
2014-04-28 18:25:26 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
mode_t mode;
|
|
|
|
uid_t uid;
|
|
|
|
gid_t gid;
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
size_t path_len;
|
|
|
|
|
|
|
|
uint8_t data[28];
|
|
|
|
} mess_vfs_fs_create;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_create);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
off_t file_size;
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
mode_t mode;
|
|
|
|
uid_t uid;
|
|
|
|
gid_t gid;
|
|
|
|
|
|
|
|
uint8_t data[28];
|
|
|
|
} mess_fs_vfs_create;
|
|
|
|
_ASSERT_MSG_SIZE(mess_fs_vfs_create);
|
|
|
|
|
2014-04-29 16:15:37 +02:00
|
|
|
typedef struct {
|
|
|
|
dev_t device;
|
|
|
|
|
|
|
|
uint8_t data[48];
|
|
|
|
} mess_vfs_fs_flush;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_flush);
|
|
|
|
|
2014-04-29 19:33:47 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t inode;
|
|
|
|
off_t trc_start;
|
|
|
|
off_t trc_end;
|
|
|
|
|
|
|
|
uint8_t data[32];
|
|
|
|
} mess_vfs_fs_ftrunc;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_ftrunc);
|
|
|
|
|
2014-04-30 09:55:55 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t inode;
|
|
|
|
off_t seek_pos;
|
|
|
|
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
size_t mem_size;
|
|
|
|
|
|
|
|
uint8_t data[32];
|
|
|
|
} mess_vfs_fs_getdents;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_getdents);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
off_t seek_pos;
|
|
|
|
|
|
|
|
size_t nbytes;
|
|
|
|
|
|
|
|
uint8_t data[44];
|
|
|
|
} mess_fs_vfs_getdents;
|
|
|
|
_ASSERT_MSG_SIZE(mess_fs_vfs_getdents);
|
|
|
|
|
2014-04-30 16:17:44 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
uint8_t data[48];
|
|
|
|
} mess_vfs_fs_inhibread;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_inhibread);
|
|
|
|
|
2014-04-30 15:33:48 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t inode;
|
|
|
|
ino_t dir_ino;
|
|
|
|
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
size_t path_len;
|
|
|
|
|
|
|
|
uint8_t data[32];
|
|
|
|
} mess_vfs_fs_link;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_link);
|
|
|
|
|
2014-04-28 17:45:52 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t dir_ino;
|
|
|
|
ino_t root_ino;
|
|
|
|
|
|
|
|
uint32_t flags;
|
|
|
|
size_t path_len;
|
|
|
|
size_t path_size;
|
|
|
|
size_t ucred_size;
|
|
|
|
cp_grant_id_t grant_path;
|
|
|
|
cp_grant_id_t grant_ucred;
|
|
|
|
uid_t uid;
|
|
|
|
gid_t gid;
|
|
|
|
|
|
|
|
uint8_t data[8];
|
|
|
|
} mess_vfs_fs_lookup;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_lookup);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
off_t offset;
|
|
|
|
off_t file_size;
|
|
|
|
dev_t device;
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
mode_t mode;
|
|
|
|
uid_t uid;
|
|
|
|
gid_t gid;
|
|
|
|
|
|
|
|
uint16_t symloop;
|
|
|
|
|
|
|
|
uint8_t data[10];
|
|
|
|
} mess_fs_vfs_lookup;
|
|
|
|
_ASSERT_MSG_SIZE(mess_fs_vfs_lookup);
|
|
|
|
|
2014-04-30 19:44:48 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
mode_t mode;
|
|
|
|
uid_t uid;
|
|
|
|
gid_t gid;
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
size_t path_len;
|
|
|
|
|
|
|
|
uint8_t data[28];
|
|
|
|
} mess_vfs_fs_mkdir;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_mkdir);
|
|
|
|
|
2014-04-30 20:00:29 +02:00
|
|
|
typedef struct {
|
|
|
|
dev_t device;
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
mode_t mode;
|
|
|
|
uid_t uid;
|
|
|
|
gid_t gid;
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
size_t path_len;
|
|
|
|
|
|
|
|
uint8_t data[20];
|
|
|
|
} mess_vfs_fs_mknod;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_mknod);
|
|
|
|
|
2014-04-29 15:35:42 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
uint8_t data[48];
|
|
|
|
} mess_vfs_fs_mountpoint;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_mountpoint);
|
|
|
|
|
2014-04-29 21:13:28 +02:00
|
|
|
typedef struct {
|
|
|
|
dev_t device;
|
|
|
|
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
size_t path_len;
|
|
|
|
|
|
|
|
uint8_t data[40];
|
|
|
|
} mess_vfs_fs_new_driver;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_new_driver);
|
|
|
|
|
2014-04-28 18:54:18 +02:00
|
|
|
typedef struct {
|
|
|
|
dev_t device;
|
|
|
|
|
|
|
|
mode_t mode;
|
|
|
|
uid_t uid;
|
|
|
|
gid_t gid;
|
|
|
|
|
|
|
|
uint8_t data[36];
|
|
|
|
} mess_vfs_fs_newnode;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_newnode);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
off_t file_size;
|
|
|
|
dev_t device;
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
mode_t mode;
|
|
|
|
uid_t uid;
|
|
|
|
gid_t gid;
|
|
|
|
|
|
|
|
uint8_t data[20];
|
|
|
|
} mess_fs_vfs_newnode;
|
|
|
|
_ASSERT_MSG_SIZE(mess_fs_vfs_newnode);
|
|
|
|
|
2014-04-28 19:12:06 +02:00
|
|
|
typedef struct {
|
|
|
|
uint64_t count;
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
uint8_t data[40];
|
|
|
|
} mess_vfs_fs_putnode;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_putnode);
|
|
|
|
|
2014-04-30 10:20:16 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
size_t mem_size;
|
|
|
|
|
|
|
|
uint8_t data[40];
|
|
|
|
} mess_vfs_fs_rdlink;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_rdlink);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
size_t nbytes;
|
|
|
|
|
|
|
|
uint8_t data[52];
|
|
|
|
} mess_fs_vfs_rdlink;
|
|
|
|
_ASSERT_MSG_SIZE(mess_fs_vfs_rdlink);
|
|
|
|
|
2014-04-28 16:45:11 +02:00
|
|
|
typedef struct {
|
|
|
|
dev_t device;
|
|
|
|
|
|
|
|
uint32_t flags;
|
|
|
|
size_t path_len;
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
|
|
|
|
uint8_t data[36];
|
|
|
|
} mess_vfs_fs_readsuper;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_readsuper);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
off_t file_size;
|
|
|
|
dev_t device;
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
uint32_t flags;
|
|
|
|
mode_t mode;
|
|
|
|
uid_t uid;
|
|
|
|
gid_t gid;
|
|
|
|
|
|
|
|
uint16_t con_reqs;
|
|
|
|
|
|
|
|
uint8_t data[14];
|
|
|
|
} mess_fs_vfs_readsuper;
|
|
|
|
_ASSERT_MSG_SIZE(mess_fs_vfs_readsuper);
|
|
|
|
|
2014-04-28 20:19:19 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t inode;
|
|
|
|
off_t seek_pos;
|
|
|
|
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
size_t nbytes;
|
|
|
|
|
|
|
|
uint8_t data[32];
|
|
|
|
} mess_vfs_fs_readwrite;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_readwrite);
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
off_t seek_pos;
|
|
|
|
|
|
|
|
size_t nbytes;
|
|
|
|
|
|
|
|
uint8_t data[44];
|
|
|
|
} mess_fs_vfs_readwrite;
|
|
|
|
_ASSERT_MSG_SIZE(mess_fs_vfs_readwrite);
|
|
|
|
|
2014-04-29 18:36:15 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t dir_old;
|
|
|
|
ino_t dir_new;
|
|
|
|
|
|
|
|
size_t len_old;
|
|
|
|
size_t len_new;
|
|
|
|
cp_grant_id_t grant_old;
|
|
|
|
cp_grant_id_t grant_new;
|
|
|
|
|
|
|
|
uint8_t data[24];
|
|
|
|
} mess_vfs_fs_rename;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_rename);
|
|
|
|
|
2014-04-29 20:59:48 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
size_t path_len;
|
|
|
|
size_t mem_size;
|
|
|
|
cp_grant_id_t grant_path;
|
|
|
|
cp_grant_id_t grant_target;
|
|
|
|
uid_t uid;
|
|
|
|
gid_t gid;
|
|
|
|
|
|
|
|
uint8_t data[24];
|
|
|
|
} mess_vfs_fs_slink;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_slink);
|
|
|
|
|
2014-05-01 10:05:07 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
|
|
|
|
uint8_t data[44];
|
|
|
|
} mess_vfs_fs_stat;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_stat);
|
|
|
|
|
2014-05-01 11:19:18 +02:00
|
|
|
typedef struct {
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
|
|
|
|
uint8_t data[52];
|
|
|
|
} mess_vfs_fs_statvfs;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_statvfs);
|
|
|
|
|
2014-05-01 10:06:10 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t inode;
|
|
|
|
|
|
|
|
cp_grant_id_t grant;
|
|
|
|
size_t path_len;
|
|
|
|
|
|
|
|
uint8_t data[40];
|
|
|
|
} mess_vfs_fs_unlink;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_unlink);
|
|
|
|
|
2014-04-29 20:08:54 +02:00
|
|
|
typedef struct {
|
|
|
|
ino_t inode;
|
|
|
|
time_t actime;
|
|
|
|
time_t modtime;
|
|
|
|
|
|
|
|
uint32_t acnsec;
|
|
|
|
uint32_t modnsec;
|
|
|
|
|
|
|
|
uint8_t data[24];
|
|
|
|
} mess_vfs_fs_utime;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_fs_utime);
|
|
|
|
|
2013-11-28 19:33:53 +01:00
|
|
|
typedef struct {
|
|
|
|
time_t atime;
|
|
|
|
time_t mtime;
|
|
|
|
long ansec;
|
|
|
|
long mnsec;
|
|
|
|
size_t len;
|
|
|
|
char *name;
|
|
|
|
int fd;
|
|
|
|
int flags;
|
|
|
|
uint8_t padding[16];
|
|
|
|
} mess_vfs_utimens;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vfs_utimens);
|
|
|
|
|
2013-11-28 17:51:21 +01:00
|
|
|
typedef struct {
|
|
|
|
off_t offset;
|
2013-11-15 19:01:25 +01:00
|
|
|
dev_t dev;
|
2013-11-28 17:51:21 +01:00
|
|
|
ino_t ino;
|
|
|
|
endpoint_t who;
|
2013-03-20 20:18:52 +01:00
|
|
|
u32_t vaddr;
|
|
|
|
u32_t len;
|
2013-11-28 17:51:21 +01:00
|
|
|
u32_t flags;
|
|
|
|
u32_t fd;
|
|
|
|
u16_t clearend;
|
|
|
|
uint8_t padding[8];
|
2013-05-31 22:37:25 +02:00
|
|
|
} mess_vm_vfs_mmap;
|
2013-11-18 15:18:18 +01:00
|
|
|
_ASSERT_MSG_SIZE(mess_vm_vfs_mmap);
|
2013-03-20 20:18:52 +01:00
|
|
|
|
2013-11-28 18:17:38 +01:00
|
|
|
typedef struct {
|
|
|
|
dev_t dev; /* 64bits long. */
|
|
|
|
off_t dev_offset;
|
|
|
|
off_t ino_offset;
|
|
|
|
ino_t ino;
|
|
|
|
void *block;
|
|
|
|
u32_t *flags_ptr;
|
|
|
|
u8_t pages;
|
|
|
|
u8_t flags;
|
|
|
|
uint8_t padding[12];
|
|
|
|
} mess_vmmcp;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vmmcp);
|
|
|
|
|
2013-11-18 15:18:18 +01:00
|
|
|
typedef struct {
|
|
|
|
void *addr;
|
|
|
|
u8_t flags;
|
|
|
|
uint8_t padding[51];
|
|
|
|
} mess_vmmcp_reply;
|
|
|
|
_ASSERT_MSG_SIZE(mess_vmmcp_reply);
|
2013-03-20 20:18:52 +01:00
|
|
|
|
2005-04-21 16:53:53 +02:00
|
|
|
typedef struct {
|
2014-05-01 15:07:57 +02:00
|
|
|
endpoint_t m_source; /* who sent the message */
|
|
|
|
int m_type; /* what kind of message is it */
|
|
|
|
union {
|
|
|
|
mess_u8 m_u8;
|
|
|
|
mess_u16 m_u16;
|
|
|
|
mess_u32 m_u32;
|
|
|
|
mess_u64 m_u64;
|
|
|
|
|
|
|
|
mess_1 m_m1;
|
|
|
|
mess_2 m_m2;
|
|
|
|
mess_3 m_m3;
|
|
|
|
mess_4 m_m4;
|
|
|
|
mess_5 m_m5;
|
|
|
|
mess_7 m_m7;
|
|
|
|
mess_8 m_m8;
|
|
|
|
mess_9 m_m9;
|
|
|
|
mess_10 m_m10;
|
|
|
|
mess_11 m_m11;
|
|
|
|
mess_mmap m_mmap;
|
|
|
|
mess_notify m_notify;
|
|
|
|
mess_sigcalls m_sigcalls;
|
|
|
|
|
2014-05-26 16:34:34 +02:00
|
|
|
mess_input_tty_event m_input_tty_event;
|
|
|
|
|
2014-05-14 16:59:14 +02:00
|
|
|
mess_krn_lsys_schedule m_krn_lsys_schedule;
|
2014-05-26 11:42:00 +02:00
|
|
|
mess_krn_lsys_sys_fork m_krn_lsys_sys_fork;
|
2014-05-22 10:46:02 +02:00
|
|
|
mess_krn_lsys_sys_getwhoami m_krn_lsys_sys_getwhoami;
|
2014-05-21 16:44:37 +02:00
|
|
|
mess_krn_lsys_sys_irqctl m_krn_lsys_sys_irqctl;
|
2014-05-22 11:32:14 +02:00
|
|
|
mess_krn_lsys_sys_times m_krn_lsys_sys_times;
|
2014-05-23 10:09:09 +02:00
|
|
|
mess_krn_lsys_sys_trace m_krn_lsys_sys_trace;
|
2014-05-21 17:54:35 +02:00
|
|
|
mess_krn_lsys_sys_umap m_krn_lsys_sys_umap;
|
2014-05-22 10:05:44 +02:00
|
|
|
mess_krn_lsys_sys_vumap m_krn_lsys_sys_vumap;
|
2014-05-14 16:59:14 +02:00
|
|
|
|
2014-05-01 15:07:57 +02:00
|
|
|
mess_fs_vfs_breadwrite m_fs_vfs_breadwrite;
|
|
|
|
mess_fs_vfs_chmod m_fs_vfs_chmod;
|
|
|
|
mess_fs_vfs_chown m_fs_vfs_chown;
|
|
|
|
mess_fs_vfs_create m_fs_vfs_create;
|
|
|
|
mess_fs_vfs_getdents m_fs_vfs_getdents;
|
|
|
|
mess_fs_vfs_lookup m_fs_vfs_lookup;
|
|
|
|
mess_fs_vfs_newnode m_fs_vfs_newnode;
|
|
|
|
mess_fs_vfs_rdlink m_fs_vfs_rdlink;
|
|
|
|
mess_fs_vfs_readsuper m_fs_vfs_readsuper;
|
|
|
|
mess_fs_vfs_readwrite m_fs_vfs_readwrite;
|
|
|
|
|
2014-05-15 16:39:51 +02:00
|
|
|
mess_i2c_li2cdriver_busc_i2c_exec m_i2c_li2cdriver_busc_i2c_exec;
|
2014-05-15 16:14:21 +02:00
|
|
|
mess_i2c_li2cdriver_busc_i2c_reserve m_i2c_li2cdriver_busc_i2c_reserve;
|
|
|
|
|
2014-05-19 09:39:57 +02:00
|
|
|
mess_input_linputdriver_input_conf m_input_linputdriver_input_conf;
|
2014-05-19 10:39:55 +02:00
|
|
|
mess_input_linputdriver_setleds m_input_linputdriver_setleds;
|
2014-05-19 09:39:57 +02:00
|
|
|
|
2014-05-13 16:36:03 +02:00
|
|
|
mess_lc_pm_exec m_lc_pm_exec;
|
2014-05-13 17:33:27 +02:00
|
|
|
mess_lc_pm_exit m_lc_pm_exit;
|
2014-05-13 15:13:12 +02:00
|
|
|
mess_lc_pm_getsid m_lc_pm_getsid;
|
2014-05-13 14:14:49 +02:00
|
|
|
mess_lc_pm_groups m_lc_pm_groups;
|
2014-05-13 08:43:49 +02:00
|
|
|
mess_lc_pm_itimer m_lc_pm_itimer;
|
2014-05-13 16:21:04 +02:00
|
|
|
mess_lc_pm_mcontext m_lc_pm_mcontext;
|
2014-05-13 13:56:04 +02:00
|
|
|
mess_lc_pm_priority m_lc_pm_priority;
|
2014-05-13 10:07:12 +02:00
|
|
|
mess_lc_pm_ptrace m_lc_pm_ptrace;
|
2014-05-13 14:27:52 +02:00
|
|
|
mess_lc_pm_reboot m_lc_pm_reboot;
|
2014-05-19 11:18:20 +02:00
|
|
|
mess_lc_pm_rusage m_lc_pm_rusage;
|
2014-05-13 14:55:47 +02:00
|
|
|
mess_lc_pm_setgid m_lc_pm_setgid;
|
2014-05-13 14:52:48 +02:00
|
|
|
mess_lc_pm_setuid m_lc_pm_setuid;
|
2014-05-13 19:02:12 +02:00
|
|
|
mess_lc_pm_sig m_lc_pm_sig;
|
2014-05-13 18:29:11 +02:00
|
|
|
mess_lc_pm_sigset m_lc_pm_sigset;
|
2014-05-13 11:31:36 +02:00
|
|
|
mess_lc_pm_sysuname m_lc_pm_sysuname;
|
2014-05-12 23:40:11 +02:00
|
|
|
mess_lc_pm_time m_lc_pm_time;
|
2014-05-12 20:53:02 +02:00
|
|
|
mess_lc_pm_waitpid m_lc_pm_waitpid;
|
2014-05-19 09:19:01 +02:00
|
|
|
mess_lc_readclock_rtcdev m_lc_readclock_rtcdev;
|
2014-05-12 20:53:02 +02:00
|
|
|
|
2014-05-12 16:48:10 +02:00
|
|
|
mess_lc_vfs_chown m_lc_vfs_chown;
|
2014-05-12 17:16:00 +02:00
|
|
|
mess_lc_vfs_close m_lc_vfs_close;
|
2014-05-12 16:42:43 +02:00
|
|
|
mess_lc_vfs_creat m_lc_vfs_creat;
|
2014-05-12 16:58:19 +02:00
|
|
|
mess_lc_vfs_fchdir m_lc_vfs_fchdir;
|
2014-05-12 17:05:32 +02:00
|
|
|
mess_lc_vfs_fchmod m_lc_vfs_fchmod;
|
2014-05-12 14:58:20 +02:00
|
|
|
mess_lc_vfs_fcntl m_lc_vfs_fcntl;
|
2014-05-12 14:19:05 +02:00
|
|
|
mess_lc_vfs_fstat m_lc_vfs_fstat;
|
2014-05-12 13:07:11 +02:00
|
|
|
mess_lc_vfs_fsync m_lc_vfs_fsync;
|
2014-05-12 11:34:18 +02:00
|
|
|
mess_lc_vfs_getvfsstat m_lc_vfs_getvfsstat;
|
2014-05-12 12:46:59 +02:00
|
|
|
mess_lc_vfs_ioctl m_lc_vfs_ioctl;
|
2014-05-12 13:47:18 +02:00
|
|
|
mess_lc_vfs_link m_lc_vfs_link;
|
2014-05-12 13:16:40 +02:00
|
|
|
mess_lc_vfs_lseek m_lc_vfs_lseek;
|
2014-05-12 15:04:23 +02:00
|
|
|
mess_lc_vfs_mknod m_lc_vfs_mknod;
|
2014-05-12 12:00:38 +02:00
|
|
|
mess_lc_vfs_mount m_lc_vfs_mount;
|
Message type for path related calls.
- Updated system calls VFS_ACCESS, VFS_CHDIR, VFS_CHMOD, VFS_CHROOT,
VFS_MKDIR, VFS_OPEN, VFS_RMDIR, VSF_UNLINK
- Removed M3_STRING and M3_LONG_STRING, which are tied to a specific
"generic" message, and replaced where needed with M_PATH_STRING_MAX,
which is tied to the mess_lc_vfs_path message.
Change-Id: If287c74f5ece937b9431e5d95b5b58a3c83ebff1
2014-05-12 16:30:43 +02:00
|
|
|
mess_lc_vfs_path m_lc_vfs_path;
|
2014-05-12 13:28:42 +02:00
|
|
|
mess_lc_vfs_pipe2 m_lc_vfs_pipe2;
|
2014-05-12 14:05:17 +02:00
|
|
|
mess_lc_vfs_readlink m_lc_vfs_readlink;
|
2014-05-12 18:17:10 +02:00
|
|
|
mess_lc_vfs_readwrite m_lc_vfs_readwrite;
|
2014-05-19 11:18:20 +02:00
|
|
|
mess_lc_vfs_rusage m_lc_vfs_rusage;
|
2014-05-12 11:21:52 +02:00
|
|
|
mess_lc_vfs_select m_lc_vfs_select;
|
2014-05-12 14:12:18 +02:00
|
|
|
mess_lc_vfs_stat m_lc_vfs_stat;
|
2014-05-12 11:49:08 +02:00
|
|
|
mess_lc_vfs_statvfs1 m_lc_vfs_statvfs1;
|
2014-05-12 13:24:16 +02:00
|
|
|
mess_lc_vfs_truncate m_lc_vfs_truncate;
|
2014-05-12 13:37:39 +02:00
|
|
|
mess_lc_vfs_umask m_lc_vfs_umask;
|
2014-05-12 12:44:59 +02:00
|
|
|
mess_lc_vfs_umount m_lc_vfs_umount;
|
2014-05-12 11:21:52 +02:00
|
|
|
|
2014-05-19 11:18:20 +02:00
|
|
|
mess_lc_vm_rusage m_lc_vm_rusage;
|
|
|
|
|
2014-05-13 12:07:25 +02:00
|
|
|
mess_lexec_pm_exec_new m_lexec_pm_exec_new;
|
|
|
|
|
2014-05-15 16:39:51 +02:00
|
|
|
mess_li2cdriver_i2c_busc_i2c_exec m_li2cdriver_i2c_busc_i2c_exec;
|
2014-05-15 16:14:21 +02:00
|
|
|
mess_li2cdriver_i2c_busc_i2c_reserve m_li2cdriver_i2c_busc_i2c_reserve;
|
|
|
|
|
2014-05-19 10:18:55 +02:00
|
|
|
mess_linputdriver_input_event m_linputdriver_input_event;
|
|
|
|
|
2014-05-19 11:37:26 +02:00
|
|
|
mess_lsys_getsysinfo m_lsys_getsysinfo;
|
|
|
|
|
2014-05-14 16:39:00 +02:00
|
|
|
mess_lsys_krn_schedctl m_lsys_krn_schedctl;
|
2014-05-14 16:59:14 +02:00
|
|
|
mess_lsys_krn_schedule m_lsys_krn_schedule;
|
2014-05-21 16:52:18 +02:00
|
|
|
mess_lsys_krn_sys_abort m_lsys_krn_sys_abort;
|
2014-05-26 12:12:11 +02:00
|
|
|
mess_lsys_krn_sys_clear m_lsys_krn_sys_clear;
|
2014-05-21 17:21:26 +02:00
|
|
|
mess_lsys_krn_sys_copy m_lsys_krn_sys_copy;
|
2014-05-26 12:03:25 +02:00
|
|
|
mess_lsys_krn_sys_exec m_lsys_krn_sys_exec;
|
2014-05-26 11:42:00 +02:00
|
|
|
mess_lsys_krn_sys_fork m_lsys_krn_sys_fork;
|
2014-05-22 10:46:02 +02:00
|
|
|
mess_lsys_krn_sys_getinfo m_lsys_krn_sys_getinfo;
|
2014-05-26 10:41:06 +02:00
|
|
|
mess_lsys_krn_sys_getmcontext m_lsys_krn_sys_getmcontext;
|
2014-05-21 16:59:30 +02:00
|
|
|
mess_lsys_krn_sys_iopenable m_lsys_krn_sys_iopenable;
|
2014-05-21 16:44:37 +02:00
|
|
|
mess_lsys_krn_sys_irqctl m_lsys_krn_sys_irqctl;
|
2014-05-20 13:18:39 +02:00
|
|
|
mess_lsys_krn_sys_memset m_lsys_krn_sys_memset;
|
2014-05-23 11:08:21 +02:00
|
|
|
mess_lsys_krn_sys_privctl m_lsys_krn_sys_privctl;
|
2014-05-20 13:56:35 +02:00
|
|
|
mess_lsys_krn_sys_sdevio m_lsys_krn_sys_sdevio;
|
2014-05-21 10:52:39 +02:00
|
|
|
mess_lsys_krn_sys_setalarm m_lsys_krn_sys_setalarm;
|
2014-05-23 12:53:48 +02:00
|
|
|
mess_lsys_krn_sys_setgrant m_lsys_krn_sys_setgrant;
|
2014-05-26 10:41:06 +02:00
|
|
|
mess_lsys_krn_sys_setmcontext m_lsys_krn_sys_setmcontext;
|
2014-05-23 10:18:35 +02:00
|
|
|
mess_lsys_krn_sys_statectl m_lsys_krn_sys_statectl;
|
2014-05-22 15:30:51 +02:00
|
|
|
mess_lsys_krn_sys_stime m_lsys_krn_sys_stime;
|
2014-05-22 15:31:51 +02:00
|
|
|
mess_lsys_krn_sys_settime m_lsys_krn_sys_settime;
|
2014-05-22 11:32:14 +02:00
|
|
|
mess_lsys_krn_sys_times m_lsys_krn_sys_times;
|
2014-05-23 10:09:09 +02:00
|
|
|
mess_lsys_krn_sys_trace m_lsys_krn_sys_trace;
|
2014-05-21 17:54:35 +02:00
|
|
|
mess_lsys_krn_sys_umap m_lsys_krn_sys_umap;
|
2014-05-21 10:45:19 +02:00
|
|
|
mess_lsys_krn_sys_vdevio m_lsys_krn_sys_vdevio;
|
2014-05-22 10:05:44 +02:00
|
|
|
mess_lsys_krn_sys_vumap m_lsys_krn_sys_vumap;
|
2014-05-14 16:39:00 +02:00
|
|
|
|
2014-05-15 11:45:42 +02:00
|
|
|
mess_lsys_pci_busc_get_bar m_lsys_pci_busc_get_bar;
|
|
|
|
|
2014-05-12 18:55:29 +02:00
|
|
|
mess_lsys_pm_getepinfo m_lsys_pm_getepinfo;
|
2014-05-12 18:54:52 +02:00
|
|
|
mess_lsys_pm_getprocnr m_lsys_pm_getprocnr;
|
2014-05-13 13:35:40 +02:00
|
|
|
mess_lsys_pm_srv_fork m_lsys_pm_srv_fork;
|
2014-05-12 18:54:52 +02:00
|
|
|
|
2014-05-14 17:57:12 +02:00
|
|
|
mess_lsys_sched_scheduling_start m_lsys_sched_scheduling_start;
|
2014-05-14 18:29:46 +02:00
|
|
|
mess_lsys_sched_scheduling_stop m_lsys_sched_scheduling_stop;
|
2014-05-14 17:57:12 +02:00
|
|
|
|
2014-05-19 11:25:52 +02:00
|
|
|
mess_lsys_svrctl m_lsys_svrctl;
|
|
|
|
|
2014-05-12 12:53:20 +02:00
|
|
|
mess_lsys_vfs_checkperms m_lsys_vfs_checkperms;
|
2014-05-12 12:58:56 +02:00
|
|
|
mess_lsys_vfs_copyfd m_lsys_vfs_copyfd;
|
2014-05-12 13:03:55 +02:00
|
|
|
mess_lsys_vfs_mapdriver m_lsys_vfs_mapdriver;
|
2014-05-12 12:53:20 +02:00
|
|
|
|
2014-05-19 19:19:14 +02:00
|
|
|
mess_net_netdrv_dl_conf m_net_netdrv_dl_conf;
|
2014-05-19 19:40:12 +02:00
|
|
|
mess_net_netdrv_dl_getstat_s m_net_netdrv_dl_getstat_s;
|
2014-05-20 11:19:27 +02:00
|
|
|
mess_net_netdrv_dl_readv_s m_net_netdrv_dl_readv_s;
|
|
|
|
mess_net_netdrv_dl_writev_s m_net_netdrv_dl_writev_s;
|
2014-05-19 19:19:14 +02:00
|
|
|
|
|
|
|
mess_netdrv_net_dl_conf m_netdrv_net_dl_conf;
|
2014-05-20 09:13:26 +02:00
|
|
|
mess_netdrv_net_dl_task m_netdrv_net_dl_task;
|
2014-05-19 19:19:14 +02:00
|
|
|
|
2014-05-15 11:45:42 +02:00
|
|
|
mess_pci_lsys_busc_get_bar m_pci_lsys_busc_get_bar;
|
|
|
|
|
2014-05-13 12:07:25 +02:00
|
|
|
mess_pm_lexec_exec_new m_pm_lexec_exec_new;
|
|
|
|
|
2014-05-13 14:47:11 +02:00
|
|
|
mess_pm_lc_getgid m_pm_lc_getgid;
|
2014-05-13 15:05:05 +02:00
|
|
|
mess_pm_lc_getpid m_pm_lc_getpid;
|
2014-05-13 14:41:26 +02:00
|
|
|
mess_pm_lc_getuid m_pm_lc_getuid;
|
2014-05-13 10:07:12 +02:00
|
|
|
mess_pm_lc_ptrace m_pm_lc_ptrace;
|
2014-05-13 18:29:11 +02:00
|
|
|
mess_pm_lc_sigset m_pm_lc_sigset;
|
2014-05-12 23:40:11 +02:00
|
|
|
mess_pm_lc_time m_pm_lc_time;
|
2014-05-12 20:53:02 +02:00
|
|
|
mess_pm_lc_waitpid m_pm_lc_waitpid;
|
|
|
|
|
2014-05-12 18:55:29 +02:00
|
|
|
mess_pm_lsys_getepinfo m_pm_lsys_getepinfo;
|
2014-05-12 18:54:52 +02:00
|
|
|
mess_pm_lsys_getprocnr m_pm_lsys_getprocnr;
|
|
|
|
|
2014-05-14 18:10:23 +02:00
|
|
|
mess_pm_sched_scheduling_set_nice m_pm_sched_scheduling_set_nice;
|
|
|
|
|
2014-05-19 09:19:01 +02:00
|
|
|
mess_readclock_lc_rtcdev m_readclock_lc_rtcdev;
|
|
|
|
|
2014-05-13 13:22:52 +02:00
|
|
|
mess_rs_pm_exec_restart m_rs_pm_exec_restart;
|
2014-05-13 18:50:59 +02:00
|
|
|
mess_rs_pm_srv_kill m_rs_pm_srv_kill;
|
2014-05-13 13:22:52 +02:00
|
|
|
|
2014-05-14 17:57:12 +02:00
|
|
|
mess_sched_lsys_scheduling_start m_sched_lsys_scheduling_start;
|
|
|
|
|
2014-05-01 15:07:57 +02:00
|
|
|
mess_vfs_fs_breadwrite m_vfs_fs_breadwrite;
|
|
|
|
mess_vfs_fs_chmod m_vfs_fs_chmod;
|
|
|
|
mess_vfs_fs_chown m_vfs_fs_chown;
|
|
|
|
mess_vfs_fs_create m_vfs_fs_create;
|
|
|
|
mess_vfs_fs_flush m_vfs_fs_flush;
|
|
|
|
mess_vfs_fs_ftrunc m_vfs_fs_ftrunc;
|
|
|
|
mess_vfs_fs_getdents m_vfs_fs_getdents;
|
|
|
|
mess_vfs_fs_inhibread m_vfs_fs_inhibread;
|
|
|
|
mess_vfs_fs_link m_vfs_fs_link;
|
|
|
|
mess_vfs_fs_lookup m_vfs_fs_lookup;
|
|
|
|
mess_vfs_fs_mkdir m_vfs_fs_mkdir;
|
|
|
|
mess_vfs_fs_mknod m_vfs_fs_mknod;
|
|
|
|
mess_vfs_fs_mountpoint m_vfs_fs_mountpoint;
|
|
|
|
mess_vfs_fs_newnode m_vfs_fs_newnode;
|
|
|
|
mess_vfs_fs_new_driver m_vfs_fs_new_driver;
|
|
|
|
mess_vfs_fs_putnode m_vfs_fs_putnode;
|
|
|
|
mess_vfs_fs_rdlink m_vfs_fs_rdlink;
|
|
|
|
mess_vfs_fs_readsuper m_vfs_fs_readsuper;
|
|
|
|
mess_vfs_fs_rename m_vfs_fs_rename;
|
|
|
|
mess_vfs_fs_readwrite m_vfs_fs_readwrite;
|
|
|
|
mess_vfs_fs_slink m_vfs_fs_slink;
|
|
|
|
mess_vfs_fs_stat m_vfs_fs_stat;
|
|
|
|
mess_vfs_fs_statvfs m_vfs_fs_statvfs;
|
|
|
|
mess_vfs_fs_unlink m_vfs_fs_unlink;
|
|
|
|
mess_vfs_fs_utime m_vfs_fs_utime;
|
|
|
|
|
2014-05-12 13:16:40 +02:00
|
|
|
mess_vfs_lc_lseek m_vfs_lc_lseek;
|
|
|
|
|
2014-05-01 15:07:57 +02:00
|
|
|
mess_vfs_utimens m_vfs_utimens;
|
|
|
|
mess_vm_vfs_mmap m_vm_vfs_mmap;
|
|
|
|
mess_vmmcp m_vmmcp;
|
|
|
|
mess_vmmcp_reply m_vmmcp_reply;
|
|
|
|
|
|
|
|
u8_t size[56]; /* message payload may have 56 bytes at most */
|
|
|
|
};
|
2012-06-29 13:39:40 +02:00
|
|
|
} message __aligned(16);
|
2005-04-21 16:53:53 +02:00
|
|
|
|
2013-11-18 15:18:18 +01:00
|
|
|
/* Ensure the complete union respects the IPC assumptions. */
|
2013-11-28 18:17:38 +01:00
|
|
|
typedef int _ASSERT_message[/* CONSTCOND */sizeof(message) == 64 ? 1 : -1];
|
2013-11-18 15:18:18 +01:00
|
|
|
|
2005-04-21 16:53:53 +02:00
|
|
|
/* The following defines provide names for useful members. */
|
2013-11-28 18:17:38 +01:00
|
|
|
#define m1_i1 m_m1.m1i1
|
|
|
|
#define m1_i2 m_m1.m1i2
|
|
|
|
#define m1_i3 m_m1.m1i3
|
|
|
|
#define m1_p1 m_m1.m1p1
|
|
|
|
#define m1_p2 m_m1.m1p2
|
|
|
|
#define m1_p3 m_m1.m1p3
|
|
|
|
#define m1_p4 m_m1.m1p4
|
|
|
|
#define m1_ull1 m_m1.m1ull1
|
|
|
|
|
|
|
|
#define m2_ll1 m_m2.m2ll1
|
|
|
|
#define m2_i1 m_m2.m2i1
|
|
|
|
#define m2_i2 m_m2.m2i2
|
|
|
|
#define m2_i3 m_m2.m2i3
|
|
|
|
#define m2_l1 m_m2.m2l1
|
|
|
|
#define m2_l2 m_m2.m2l2
|
|
|
|
#define m2_p1 m_m2.m2p1
|
|
|
|
#define m2_sigset m_m2.sigset
|
|
|
|
|
|
|
|
#define m2_s1 m_m2.m2s1
|
|
|
|
|
|
|
|
#define m3_i1 m_m3.m3i1
|
|
|
|
#define m3_i2 m_m3.m3i2
|
|
|
|
#define m3_p1 m_m3.m3p1
|
|
|
|
#define m3_ca1 m_m3.m3ca1
|
|
|
|
|
|
|
|
#define m4_ll1 m_m4.m4ll1
|
|
|
|
#define m4_l1 m_m4.m4l1
|
|
|
|
#define m4_l2 m_m4.m4l2
|
|
|
|
#define m4_l3 m_m4.m4l3
|
|
|
|
#define m4_l4 m_m4.m4l4
|
|
|
|
#define m4_l5 m_m4.m4l5
|
|
|
|
|
|
|
|
#define m5_s1 m_m5.m5s1
|
|
|
|
#define m5_s2 m_m5.m5s2
|
|
|
|
#define m5_i1 m_m5.m5i1
|
|
|
|
#define m5_i2 m_m5.m5i2
|
|
|
|
#define m5_l1 m_m5.m5l1
|
|
|
|
#define m5_l2 m_m5.m5l2
|
|
|
|
#define m5_l3 m_m5.m5l3
|
|
|
|
|
|
|
|
#define m7_i1 m_m7.m7i1
|
|
|
|
#define m7_i2 m_m7.m7i2
|
|
|
|
#define m7_i3 m_m7.m7i3
|
|
|
|
#define m7_i4 m_m7.m7i4
|
|
|
|
#define m7_i5 m_m7.m7i5
|
|
|
|
#define m7_p1 m_m7.m7p1
|
|
|
|
#define m7_p2 m_m7.m7p2
|
|
|
|
|
|
|
|
#define m8_i1 m_m8.m8i1
|
|
|
|
#define m8_i2 m_m8.m8i2
|
|
|
|
#define m8_p1 m_m8.m8p1
|
|
|
|
#define m8_p2 m_m8.m8p2
|
|
|
|
#define m8_p3 m_m8.m8p3
|
|
|
|
#define m8_p4 m_m8.m8p4
|
|
|
|
|
|
|
|
#define m9_l1 m_m9.m9l1
|
|
|
|
#define m9_l2 m_m9.m9l2
|
|
|
|
#define m9_l3 m_m9.m9l3
|
|
|
|
#define m9_l4 m_m9.m9l4
|
|
|
|
#define m9_l5 m_m9.m9l5
|
|
|
|
#define m9_s1 m_m9.m9s1
|
|
|
|
#define m9_s2 m_m9.m9s2
|
|
|
|
#define m9_s3 m_m9.m9s3
|
|
|
|
#define m9_s4 m_m9.m9s4
|
|
|
|
#define m9_ull1 m_m9.m9ull1
|
2014-02-24 14:50:01 +01:00
|
|
|
#define m9_ull2 m_m9.m9ull2
|
2013-11-28 18:17:38 +01:00
|
|
|
|
|
|
|
#define m10_i1 m_m10.m10i1
|
|
|
|
#define m10_i2 m_m10.m10i2
|
|
|
|
#define m10_i3 m_m10.m10i3
|
|
|
|
#define m10_i4 m_m10.m10i4
|
|
|
|
#define m10_l1 m_m10.m10l1
|
|
|
|
#define m10_l2 m_m10.m10l2
|
|
|
|
#define m10_l3 m_m10.m10l3
|
2014-02-24 14:22:04 +01:00
|
|
|
#define m10_ull1 m_m10.m10ull1
|
2013-11-28 18:17:38 +01:00
|
|
|
|
|
|
|
#define m11_i1 m_m11.m11i1
|
|
|
|
#define m11_s1 m_m11.m11s1
|
|
|
|
#define m11_s2 m_m11.m11s2
|
|
|
|
#define m11_s3 m_m11.m11s3
|
|
|
|
#define m11_s4 m_m11.m11s4
|
|
|
|
#define m11_p1 m_m11.m11p1
|
|
|
|
#define m11_p2 m_m11.m11p2
|
|
|
|
#define m11_p3 m_m11.m11p3
|
|
|
|
#define m11_p4 m_m11.m11p4
|
2013-08-20 01:37:18 +02:00
|
|
|
|
2005-04-21 16:53:53 +02:00
|
|
|
/*==========================================================================*
|
|
|
|
* Minix run-time system (IPC). *
|
|
|
|
*==========================================================================*/
|
|
|
|
|
2007-04-23 13:59:19 +02:00
|
|
|
/* Datastructure for asynchronous sends */
|
|
|
|
typedef struct asynmsg
|
|
|
|
{
|
|
|
|
unsigned flags;
|
|
|
|
endpoint_t dst;
|
|
|
|
int result;
|
|
|
|
message msg;
|
|
|
|
} asynmsg_t;
|
|
|
|
|
|
|
|
/* Defines for flags field */
|
2011-04-08 17:14:48 +02:00
|
|
|
#define AMF_EMPTY 000 /* slot is not inuse */
|
|
|
|
#define AMF_VALID 001 /* slot contains message */
|
|
|
|
#define AMF_DONE 002 /* Kernel has processed the message. The
|
2007-04-23 13:59:19 +02:00
|
|
|
* result is stored in 'result'
|
|
|
|
*/
|
2011-04-08 17:14:48 +02:00
|
|
|
#define AMF_NOTIFY 004 /* Send a notification when AMF_DONE is set */
|
|
|
|
#define AMF_NOREPLY 010 /* Not a reply message for a SENDREC */
|
|
|
|
#define AMF_NOTIFY_ERR 020 /* Send a notification when AMF_DONE is set and
|
|
|
|
* delivery of the message failed */
|
2007-04-23 13:59:19 +02:00
|
|
|
|
2013-11-01 13:34:14 +01:00
|
|
|
int _ipc_send_intr(endpoint_t dest, message *m_ptr);
|
|
|
|
int _ipc_receive_intr(endpoint_t src, message *m_ptr, int *status_ptr);
|
|
|
|
int _ipc_sendrec_intr(endpoint_t src_dest, message *m_ptr);
|
|
|
|
int _ipc_sendnb_intr(endpoint_t dest, message *m_ptr);
|
|
|
|
int _ipc_notify_intr(endpoint_t dest);
|
|
|
|
int _ipc_senda_intr(asynmsg_t *table, size_t count);
|
2012-06-10 19:50:17 +02:00
|
|
|
|
2013-11-01 13:34:14 +01:00
|
|
|
int _do_kernel_call_intr(message *m_ptr);
|
|
|
|
|
|
|
|
int get_minix_kerninfo(struct minix_kerninfo **);
|
2012-03-24 16:16:34 +01:00
|
|
|
|
2012-11-14 23:00:29 +01:00
|
|
|
/* Hide names to avoid name space pollution. */
|
2013-11-01 13:34:14 +01:00
|
|
|
#define ipc_notify _ipc_notify
|
|
|
|
#define ipc_sendrec _ipc_sendrec
|
|
|
|
#define ipc_receive _ipc_receive
|
|
|
|
#define ipc_receivenb _ipc_receivenb
|
|
|
|
#define ipc_send _ipc_send
|
|
|
|
#define ipc_sendnb _ipc_sendnb
|
|
|
|
#define ipc_senda _ipc_senda
|
|
|
|
|
|
|
|
#define do_kernel_call _do_kernel_call
|
2012-11-14 23:00:29 +01:00
|
|
|
|
2012-06-10 19:50:17 +02:00
|
|
|
struct minix_ipcvecs {
|
2012-11-14 23:14:48 +01:00
|
|
|
int (*send)(endpoint_t dest, message *m_ptr);
|
|
|
|
int (*receive)(endpoint_t src, message *m_ptr, int *st);
|
|
|
|
int (*sendrec)(endpoint_t src_dest, message *m_ptr);
|
|
|
|
int (*sendnb)(endpoint_t dest, message *m_ptr);
|
|
|
|
int (*notify)(endpoint_t dest);
|
|
|
|
int (*do_kernel_call)(message *m_ptr);
|
|
|
|
int (*senda)(asynmsg_t *table, size_t count);
|
2012-06-10 19:50:17 +02:00
|
|
|
};
|
|
|
|
|
|
|
|
/* kernel-set IPC vectors retrieved by a constructor in libc/sys-minix/init.c */
|
|
|
|
extern struct minix_ipcvecs _minix_ipcvecs;
|
|
|
|
|
2013-11-01 13:34:14 +01:00
|
|
|
static inline int _ipc_send(endpoint_t dest, message *m_ptr)
|
2012-11-14 23:00:29 +01:00
|
|
|
{
|
2012-11-14 23:14:48 +01:00
|
|
|
return _minix_ipcvecs.send(dest, m_ptr);
|
2012-11-14 23:00:29 +01:00
|
|
|
}
|
|
|
|
|
2013-11-01 13:34:14 +01:00
|
|
|
static inline int _ipc_receive(endpoint_t src, message *m_ptr, int *st)
|
2012-11-14 23:00:29 +01:00
|
|
|
{
|
2012-11-14 23:14:48 +01:00
|
|
|
return _minix_ipcvecs.receive(src, m_ptr, st);
|
2012-11-14 23:00:29 +01:00
|
|
|
}
|
2012-06-10 19:50:17 +02:00
|
|
|
|
2013-11-01 13:34:14 +01:00
|
|
|
static inline int _ipc_sendrec(endpoint_t src_dest, message *m_ptr)
|
2012-11-14 23:00:29 +01:00
|
|
|
{
|
2012-11-14 23:14:48 +01:00
|
|
|
return _minix_ipcvecs.sendrec(src_dest, m_ptr);
|
2012-11-14 23:00:29 +01:00
|
|
|
}
|
|
|
|
|
2013-11-01 13:34:14 +01:00
|
|
|
static inline int _ipc_sendnb(endpoint_t dest, message *m_ptr)
|
2012-11-14 23:00:29 +01:00
|
|
|
{
|
2013-06-11 17:13:52 +02:00
|
|
|
return _minix_ipcvecs.sendnb(dest, m_ptr);
|
2012-11-14 23:00:29 +01:00
|
|
|
}
|
|
|
|
|
2013-11-01 13:34:14 +01:00
|
|
|
static inline int _ipc_notify(endpoint_t dest)
|
2012-11-14 23:00:29 +01:00
|
|
|
{
|
2012-11-14 23:14:48 +01:00
|
|
|
return _minix_ipcvecs.notify(dest);
|
2012-11-14 23:00:29 +01:00
|
|
|
}
|
|
|
|
|
2013-11-01 13:34:14 +01:00
|
|
|
static inline int _do_kernel_call(message *m_ptr)
|
2012-11-14 23:00:29 +01:00
|
|
|
{
|
2012-11-14 23:14:48 +01:00
|
|
|
return _minix_ipcvecs.do_kernel_call(m_ptr);
|
2012-11-14 23:00:29 +01:00
|
|
|
}
|
|
|
|
|
2013-11-01 13:34:14 +01:00
|
|
|
static inline int _ipc_senda(asynmsg_t *table, size_t count)
|
2012-11-14 23:00:29 +01:00
|
|
|
{
|
2012-11-14 23:14:48 +01:00
|
|
|
return _minix_ipcvecs.senda(table, count);
|
2012-11-14 23:00:29 +01:00
|
|
|
}
|
2010-02-09 16:20:09 +01:00
|
|
|
|
2005-04-21 16:53:53 +02:00
|
|
|
#endif /* _IPC_H */
|