4 #include <minix/ipcconst.h>
5 #include <minix/type.h>
6 #include <minix/const.h>
7 #include <sys/signal.h>
10 /*==========================================================================*
11 * Types relating to messages. *
12 *==========================================================================*/
17 #define M_PATH_STRING_MAX 40
22 _ASSERT_MSG_SIZE(mess_u8
);
27 _ASSERT_MSG_SIZE(mess_u16
);
32 _ASSERT_MSG_SIZE(mess_u32
);
37 _ASSERT_MSG_SIZE(mess_u64
);
42 char *m1p1
, *m1p2
, *m1p3
, *m1p4
;
45 _ASSERT_MSG_SIZE(mess_1
);
56 _ASSERT_MSG_SIZE(mess_2
);
63 _ASSERT_MSG_SIZE(mess_3
);
67 long m4l1
, m4l2
, m4l3
, m4l4
, m4l5
;
70 _ASSERT_MSG_SIZE(mess_4
);
75 long m5l1
, m5l2
, m5l3
;
78 _ASSERT_MSG_SIZE(mess_5
);
81 int m7i1
, m7i2
, m7i3
, m7i4
, m7i5
;
85 _ASSERT_MSG_SIZE(mess_7
);
89 char *m8p1
, *m8p2
, *m8p3
, *m8p4
;
92 _ASSERT_MSG_SIZE(mess_8
);
95 uint64_t m9ull1
, m9ull2
;
96 long m9l1
, m9l2
, m9l3
, m9l4
, m9l5
;
97 short m9s1
, m9s2
, m9s3
, m9s4
;
100 _ASSERT_MSG_SIZE(mess_9
);
104 int m10i1
, m10i2
, m10i3
, m10i4
;
105 long m10l1
, m10l2
, m10l3
;
108 _ASSERT_MSG_SIZE(mess_10
);
112 short m11s1
, m11s2
, m11s3
, m11s4
;
113 char *m11p1
, *m11p2
, *m11p3
, *m11p4
;
116 _ASSERT_MSG_SIZE(mess_11
);
129 _ASSERT_MSG_SIZE(mess_mmap
);
132 u64_t timestamp
; /* valid for every notify msg */
133 u64_t interrupts
; /* raised interrupts; valid if from HARDWARE */
134 sigset_t sigset
; /* raised signals; valid if from SYSTEM */
137 _ASSERT_MSG_SIZE(mess_notify
);
139 /* For SYS_GETKSIG, _ENDKSIG, _KILL, _SIGSEND, _SIGRETURN. */
141 sigset_t map
; /* used to pass signal bit map */
142 endpoint_t endpt
; /* process number for inform */
143 int sig
; /* signal number to send */
144 void *sigctx
; /* pointer to signal context */
147 _ASSERT_MSG_SIZE(mess_sigcalls
);
157 } mess_input_tty_event
;
158 _ASSERT_MSG_SIZE(mess_input_tty_event
);
163 unsigned long acnt_deqs
;
164 unsigned long acnt_ipc_sync
;
165 unsigned long acnt_ipc_async
;
166 unsigned long acnt_preempt
;
168 uint32_t acnt_cpu_load
;
171 } mess_krn_lsys_schedule
;
172 _ASSERT_MSG_SIZE(mess_krn_lsys_schedule
);
181 } mess_lsys_krn_schedule
;
182 _ASSERT_MSG_SIZE(mess_lsys_krn_schedule
);
193 _ASSERT_MSG_SIZE(mess_lc_pm_exec
);
200 _ASSERT_MSG_SIZE(mess_lc_pm_exit
);
207 _ASSERT_MSG_SIZE(mess_lc_pm_getsid
);
211 vir_bytes ptr
; /* gid_t * */
215 _ASSERT_MSG_SIZE(mess_lc_pm_groups
);
219 vir_bytes value
; /* const struct itimerval * */
220 vir_bytes ovalue
; /* struct itimerval * */
224 _ASSERT_MSG_SIZE(mess_lc_pm_itimer
);
227 vir_bytes ctx
; /* mcontext_t * */
230 } mess_lc_pm_mcontext
;
231 _ASSERT_MSG_SIZE(mess_lc_pm_mcontext
);
239 } mess_lc_pm_priority
;
240 _ASSERT_MSG_SIZE(mess_lc_pm_priority
);
250 _ASSERT_MSG_SIZE(mess_lc_pm_ptrace
);
257 _ASSERT_MSG_SIZE(mess_pm_lc_ptrace
);
264 _ASSERT_MSG_SIZE(mess_lc_pm_reboot
);
272 _ASSERT_MSG_SIZE(mess_lc_pm_rusage
);
279 _ASSERT_MSG_SIZE(mess_lc_pm_setgid
);
286 _ASSERT_MSG_SIZE(mess_lc_pm_setuid
);
295 } mess_lc_pm_sysuname
;
296 _ASSERT_MSG_SIZE(mess_lc_pm_sysuname
);
301 vir_bytes act
; /* const struct sigaction * */
302 vir_bytes oact
; /* struct sigaction * */
303 vir_bytes ret
; /* int (*)(void) */
307 _ASSERT_MSG_SIZE(mess_lc_pm_sig
);
316 _ASSERT_MSG_SIZE(mess_lc_pm_sigset
);
323 _ASSERT_MSG_SIZE(mess_pm_lc_sigset
);
334 _ASSERT_MSG_SIZE(mess_lc_pm_time
);
338 vir_bytes tm
; /* struct tm * */
342 } mess_lc_readclock_rtcdev
;
343 _ASSERT_MSG_SIZE(mess_lc_readclock_rtcdev
);
349 } mess_readclock_lc_rtcdev
;
350 _ASSERT_MSG_SIZE(mess_readclock_lc_rtcdev
);
359 _ASSERT_MSG_SIZE(mess_pm_lc_time
);
366 } mess_lc_pm_waitpid
;
367 _ASSERT_MSG_SIZE(mess_lc_pm_waitpid
);
373 } mess_pm_lc_waitpid
;
374 _ASSERT_MSG_SIZE(mess_pm_lc_waitpid
);
385 _ASSERT_MSG_SIZE(mess_lc_vfs_chown
);
392 _ASSERT_MSG_SIZE(mess_lc_vfs_close
);
402 _ASSERT_MSG_SIZE(mess_lc_vfs_creat
);
408 } mess_lc_vfs_fchdir
;
409 _ASSERT_MSG_SIZE(mess_lc_vfs_fchdir
);
416 } mess_lc_vfs_fchmod
;
417 _ASSERT_MSG_SIZE(mess_lc_vfs_fchmod
);
423 vir_bytes arg_ptr
; /* struct flock * */
427 _ASSERT_MSG_SIZE(mess_lc_vfs_fcntl
);
431 vir_bytes buf
; /* struct stat * */
435 _ASSERT_MSG_SIZE(mess_lc_vfs_fstat
);
442 _ASSERT_MSG_SIZE(mess_lc_vfs_fsync
);
447 vir_bytes buf
; /* struct statvfs */
450 } mess_lc_vfs_getvfsstat
;
451 _ASSERT_MSG_SIZE(mess_lc_vfs_getvfsstat
);
460 _ASSERT_MSG_SIZE(mess_lc_vfs_ioctl
);
470 _ASSERT_MSG_SIZE(mess_lc_vfs_link
);
480 _ASSERT_MSG_SIZE(mess_lc_vfs_lseek
);
487 _ASSERT_MSG_SIZE(mess_vfs_lc_lseek
);
498 _ASSERT_MSG_SIZE(mess_lc_vfs_mknod
);
513 _ASSERT_MSG_SIZE(mess_lc_vfs_mount
);
520 char buf
[M_PATH_STRING_MAX
];
522 _ASSERT_MSG_SIZE(mess_lc_vfs_path
);
531 _ASSERT_MSG_SIZE(mess_lc_vfs_pipe2
);
534 vir_bytes name
; /* const char * */
540 } mess_lc_vfs_readlink
;
541 _ASSERT_MSG_SIZE(mess_lc_vfs_readlink
);
549 } mess_lc_vfs_readwrite
;
550 _ASSERT_MSG_SIZE(mess_lc_vfs_readwrite
);
556 } mess_lc_vfs_rusage
;
557 _ASSERT_MSG_SIZE(mess_lc_vfs_rusage
);
564 vir_bytes timeout
; /* user-provided 'struct timeval *' */
567 } mess_lc_vfs_select
;
568 _ASSERT_MSG_SIZE(mess_lc_vfs_select
);
572 vir_bytes name
; /* const char * */
573 vir_bytes buf
; /* struct stat * */
577 _ASSERT_MSG_SIZE(mess_lc_vfs_stat
);
587 } mess_lc_vfs_statvfs1
;
588 _ASSERT_MSG_SIZE(mess_lc_vfs_statvfs1
);
598 } mess_lc_vfs_truncate
;
599 _ASSERT_MSG_SIZE(mess_lc_vfs_truncate
);
606 _ASSERT_MSG_SIZE(mess_lc_vfs_umask
);
615 } mess_lc_vfs_umount
;
616 _ASSERT_MSG_SIZE(mess_lc_vfs_umount
);
623 _ASSERT_MSG_SIZE(mess_lc_vm_rusage
);
627 vir_bytes ptr
; /* struct exec_info * */
630 } mess_lexec_pm_exec_new
;
631 _ASSERT_MSG_SIZE(mess_lexec_pm_exec_new
);
637 } mess_pm_lexec_exec_new
;
638 _ASSERT_MSG_SIZE(mess_pm_lexec_exec_new
);
644 } mess_li2cdriver_i2c_busc_i2c_exec
;
645 _ASSERT_MSG_SIZE(mess_li2cdriver_i2c_busc_i2c_exec
);
649 } mess_i2c_li2cdriver_busc_i2c_exec
;
650 _ASSERT_MSG_SIZE(mess_i2c_li2cdriver_busc_i2c_exec
);
653 uint16_t addr
; /* FIXME: strictly speaking this is an i2c_addr_t, but
654 to get it I would need to include
655 sys/dev/i2c/i2c_io.h, which I am not sure is a good
656 idea to have everywhere. */
659 } mess_li2cdriver_i2c_busc_i2c_reserve
;
660 _ASSERT_MSG_SIZE(mess_li2cdriver_i2c_busc_i2c_reserve
);
664 } mess_i2c_li2cdriver_busc_i2c_reserve
;
665 _ASSERT_MSG_SIZE(mess_i2c_li2cdriver_busc_i2c_reserve
);
674 } mess_input_linputdriver_input_conf
;
675 _ASSERT_MSG_SIZE(mess_input_linputdriver_input_conf
);
681 } mess_input_linputdriver_setleds
;
682 _ASSERT_MSG_SIZE(mess_input_linputdriver_setleds
);
692 } mess_linputdriver_input_event
;
693 _ASSERT_MSG_SIZE(mess_linputdriver_input_event
);
701 _ASSERT_MSG_SIZE(mess_lsys_fi_ctl
);
707 } mess_lsys_fi_reply
;
708 _ASSERT_MSG_SIZE(mess_lsys_fi_reply
);
716 } mess_lsys_getsysinfo
;
717 _ASSERT_MSG_SIZE(mess_lsys_getsysinfo
);
727 } mess_lsys_krn_schedctl
;
728 _ASSERT_MSG_SIZE(mess_lsys_krn_schedctl
);
734 } mess_lsys_krn_sys_abort
;
735 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_abort
);
741 } mess_lsys_krn_sys_clear
;
742 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_clear
);
745 endpoint_t src_endpt
;
747 endpoint_t dst_endpt
;
753 } mess_lsys_krn_sys_copy
;
754 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_copy
);
764 } mess_lsys_krn_sys_exec
;
765 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_exec
);
773 } mess_lsys_krn_sys_fork
;
774 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_fork
);
781 } mess_krn_lsys_sys_fork
;
782 _ASSERT_MSG_SIZE(mess_krn_lsys_sys_fork
);
793 } mess_lsys_krn_sys_getinfo
;
794 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_getinfo
);
801 } mess_lsys_krn_sys_getmcontext
;
802 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_getmcontext
);
809 } mess_krn_lsys_sys_getwhoami
;
810 _ASSERT_MSG_SIZE(mess_krn_lsys_sys_getwhoami
);
816 } mess_lsys_krn_sys_iopenable
;
817 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_iopenable
);
826 } mess_lsys_krn_sys_irqctl
;
827 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_irqctl
);
833 } mess_krn_lsys_sys_irqctl
;
834 _ASSERT_MSG_SIZE(mess_krn_lsys_sys_irqctl
);
840 phys_bytes phys_start
;
844 } mess_lsys_krn_sys_privctl
;
845 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_privctl
);
853 } mess_lsys_krn_sys_devio
;
854 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_devio
);
860 } mess_krn_lsys_sys_devio
;
861 _ASSERT_MSG_SIZE(mess_krn_lsys_sys_devio
);
866 endpoint_t vec_endpt
;
872 } mess_lsys_krn_sys_sdevio
;
873 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_sdevio
);
881 } mess_lsys_krn_sys_setalarm
;
882 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_setalarm
);
885 vir_bytes addr
; /* cp_grant_t * */
889 } mess_lsys_krn_sys_setgrant
;
890 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_setgrant
);
897 } mess_lsys_krn_sys_setmcontext
;
898 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_setmcontext
);
904 } mess_lsys_krn_sys_statectl
;
905 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_statectl
);
911 } mess_lsys_krn_sys_stime
;
912 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_stime
);
915 time_t sec
; /* time in seconds since 1970 */
917 int now
; /* non-zero for immediate, 0 for adjtime */
921 } mess_lsys_krn_sys_settime
;
922 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_settime
);
928 } mess_lsys_krn_sys_times
;
929 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_times
);
939 } mess_krn_lsys_sys_times
;
940 _ASSERT_MSG_SIZE(mess_krn_lsys_sys_times
);
949 } mess_lsys_krn_sys_trace
;
950 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_trace
);
956 } mess_krn_lsys_sys_trace
;
957 _ASSERT_MSG_SIZE(mess_krn_lsys_sys_trace
);
960 endpoint_t src_endpt
;
963 endpoint_t dst_endpt
;
967 } mess_lsys_krn_sys_umap
;
968 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_umap
);
974 } mess_krn_lsys_sys_umap
;
975 _ASSERT_MSG_SIZE(mess_krn_lsys_sys_umap
);
980 vir_bytes vec_addr
; /* pv{b,w,l}_pair_t * */
983 } mess_lsys_krn_sys_vdevio
;
984 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_vdevio
);
988 vir_bytes vaddr
; /* struct vumap_vir * */
990 vir_bytes paddr
; /* struct vumap_phys * */
996 } mess_lsys_krn_sys_vumap
;
997 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_vumap
);
1002 uint8_t padding
[52];
1003 } mess_krn_lsys_sys_vumap
;
1004 _ASSERT_MSG_SIZE(mess_krn_lsys_sys_vumap
);
1009 unsigned long pattern
;
1012 uint8_t padding
[40];
1013 } mess_lsys_krn_sys_memset
;
1014 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_memset
);
1020 uint8_t padding
[48];
1021 } mess_lsys_pci_busc_get_bar
;
1022 _ASSERT_MSG_SIZE(mess_lsys_pci_busc_get_bar
);
1029 uint8_t padding
[44];
1030 } mess_pci_lsys_busc_get_bar
;
1031 _ASSERT_MSG_SIZE(mess_pci_lsys_busc_get_bar
);
1036 uint8_t padding
[52];
1037 } mess_lsys_pm_getepinfo
;
1038 _ASSERT_MSG_SIZE(mess_lsys_pm_getepinfo
);
1044 uint8_t padding
[48];
1045 } mess_pm_lsys_getepinfo
;
1046 _ASSERT_MSG_SIZE(mess_pm_lsys_getepinfo
);
1051 uint8_t padding
[52];
1052 } mess_lsys_pm_getprocnr
;
1053 _ASSERT_MSG_SIZE(mess_lsys_pm_getprocnr
);
1058 uint8_t padding
[52];
1059 } mess_pm_lsys_getprocnr
;
1060 _ASSERT_MSG_SIZE(mess_pm_lsys_getprocnr
);
1066 uint8_t padding
[48];
1067 } mess_lsys_pm_srv_fork
;
1068 _ASSERT_MSG_SIZE(mess_lsys_pm_srv_fork
);
1071 endpoint_t endpoint
;
1076 uint8_t padding
[40];
1077 } mess_lsys_sched_scheduling_start
;
1078 _ASSERT_MSG_SIZE(mess_lsys_sched_scheduling_start
);
1081 endpoint_t scheduler
;
1083 uint8_t padding
[52];
1084 } mess_sched_lsys_scheduling_start
;
1085 _ASSERT_MSG_SIZE(mess_sched_lsys_scheduling_start
);
1088 endpoint_t endpoint
;
1090 uint8_t padding
[52];
1091 } mess_lsys_sched_scheduling_stop
;
1092 _ASSERT_MSG_SIZE(mess_lsys_sched_scheduling_stop
);
1098 uint8_t padding
[48];
1100 _ASSERT_MSG_SIZE(mess_lsys_svrctl
);
1107 uint8_t padding
[44];
1108 } mess_lsys_tty_fkey_ctl
;
1109 _ASSERT_MSG_SIZE(mess_lsys_tty_fkey_ctl
);
1115 uint8_t padding
[48];
1116 } mess_tty_lsys_fkey_ctl
;
1117 _ASSERT_MSG_SIZE(mess_tty_lsys_fkey_ctl
);
1121 cp_grant_id_t grant
;
1124 uint8_t padding
[44];
1125 } mess_lsys_vfs_checkperms
;
1126 _ASSERT_MSG_SIZE(mess_lsys_vfs_checkperms
);
1133 uint8_t padding
[44];
1134 } mess_lsys_vfs_copyfd
;
1135 _ASSERT_MSG_SIZE(mess_lsys_vfs_copyfd
);
1142 uint8_t padding
[44];
1143 } mess_lsys_vfs_mapdriver
;
1144 _ASSERT_MSG_SIZE(mess_lsys_vfs_mapdriver
);
1149 uint8_t padding
[52];
1150 } mess_net_netdrv_dl_conf
;
1151 _ASSERT_MSG_SIZE(mess_net_netdrv_dl_conf
);
1157 uint8_t padding
[46];
1158 } mess_netdrv_net_dl_conf
;
1159 _ASSERT_MSG_SIZE(mess_netdrv_net_dl_conf
);
1162 cp_grant_id_t grant
;
1164 uint8_t padding
[52];
1165 } mess_net_netdrv_dl_getstat_s
;
1166 _ASSERT_MSG_SIZE(mess_net_netdrv_dl_getstat_s
);
1169 cp_grant_id_t grant
;
1172 uint8_t padding
[48];
1173 } mess_net_netdrv_dl_readv_s
;
1174 _ASSERT_MSG_SIZE(mess_net_netdrv_dl_readv_s
);
1177 cp_grant_id_t grant
;
1180 uint8_t padding
[48];
1181 } mess_net_netdrv_dl_writev_s
;
1182 _ASSERT_MSG_SIZE(mess_net_netdrv_dl_writev_s
);
1188 uint8_t padding
[48];
1189 } mess_netdrv_net_dl_task
;
1190 _ASSERT_MSG_SIZE(mess_netdrv_net_dl_task
);
1195 uint8_t padding
[52];
1196 } mess_pm_lc_getgid
;
1197 _ASSERT_MSG_SIZE(mess_pm_lc_getgid
);
1202 uint8_t padding
[52];
1203 } mess_pm_lc_getpid
;
1204 _ASSERT_MSG_SIZE(mess_pm_lc_getpid
);
1209 uint8_t padding
[52];
1210 } mess_pm_lc_getuid
;
1211 _ASSERT_MSG_SIZE(mess_pm_lc_getuid
);
1214 endpoint_t endpoint
;
1217 uint8_t padding
[48];
1218 } mess_pm_sched_scheduling_set_nice
;
1219 _ASSERT_MSG_SIZE(mess_pm_sched_scheduling_set_nice
);
1227 uint8_t padding
[40];
1228 } mess_rs_pm_exec_restart
;
1229 _ASSERT_MSG_SIZE(mess_rs_pm_exec_restart
);
1235 uint8_t padding
[48];
1236 } mess_rs_pm_srv_kill
;
1237 _ASSERT_MSG_SIZE(mess_rs_pm_srv_kill
);
1243 cp_grant_id_t grant
;
1247 } mess_vfs_fs_breadwrite
;
1248 _ASSERT_MSG_SIZE(mess_vfs_fs_breadwrite
);
1256 } mess_fs_vfs_breadwrite
;
1257 _ASSERT_MSG_SIZE(mess_fs_vfs_breadwrite
);
1265 } mess_vfs_fs_chmod
;
1266 _ASSERT_MSG_SIZE(mess_vfs_fs_chmod
);
1272 } mess_fs_vfs_chmod
;
1273 _ASSERT_MSG_SIZE(mess_fs_vfs_chmod
);
1282 } mess_vfs_fs_chown
;
1283 _ASSERT_MSG_SIZE(mess_vfs_fs_chown
);
1289 } mess_fs_vfs_chown
;
1290 _ASSERT_MSG_SIZE(mess_fs_vfs_chown
);
1298 cp_grant_id_t grant
;
1302 } mess_vfs_fs_create
;
1303 _ASSERT_MSG_SIZE(mess_vfs_fs_create
);
1314 } mess_fs_vfs_create
;
1315 _ASSERT_MSG_SIZE(mess_fs_vfs_create
);
1321 } mess_vfs_fs_flush
;
1322 _ASSERT_MSG_SIZE(mess_vfs_fs_flush
);
1330 } mess_vfs_fs_ftrunc
;
1331 _ASSERT_MSG_SIZE(mess_vfs_fs_ftrunc
);
1337 cp_grant_id_t grant
;
1341 } mess_vfs_fs_getdents
;
1342 _ASSERT_MSG_SIZE(mess_vfs_fs_getdents
);
1350 } mess_fs_vfs_getdents
;
1351 _ASSERT_MSG_SIZE(mess_fs_vfs_getdents
);
1357 } mess_vfs_fs_inhibread
;
1358 _ASSERT_MSG_SIZE(mess_vfs_fs_inhibread
);
1364 cp_grant_id_t grant
;
1369 _ASSERT_MSG_SIZE(mess_vfs_fs_link
);
1379 cp_grant_id_t grant_path
;
1380 cp_grant_id_t grant_ucred
;
1385 } mess_vfs_fs_lookup
;
1386 _ASSERT_MSG_SIZE(mess_vfs_fs_lookup
);
1401 } mess_fs_vfs_lookup
;
1402 _ASSERT_MSG_SIZE(mess_fs_vfs_lookup
);
1410 cp_grant_id_t grant
;
1414 } mess_vfs_fs_mkdir
;
1415 _ASSERT_MSG_SIZE(mess_vfs_fs_mkdir
);
1424 cp_grant_id_t grant
;
1428 } mess_vfs_fs_mknod
;
1429 _ASSERT_MSG_SIZE(mess_vfs_fs_mknod
);
1435 } mess_vfs_fs_mountpoint
;
1436 _ASSERT_MSG_SIZE(mess_vfs_fs_mountpoint
);
1441 cp_grant_id_t grant
;
1445 } mess_vfs_fs_new_driver
;
1446 _ASSERT_MSG_SIZE(mess_vfs_fs_new_driver
);
1456 } mess_vfs_fs_newnode
;
1457 _ASSERT_MSG_SIZE(mess_vfs_fs_newnode
);
1469 } mess_fs_vfs_newnode
;
1470 _ASSERT_MSG_SIZE(mess_fs_vfs_newnode
);
1477 } mess_vfs_fs_putnode
;
1478 _ASSERT_MSG_SIZE(mess_vfs_fs_putnode
);
1483 cp_grant_id_t grant
;
1487 } mess_vfs_fs_rdlink
;
1488 _ASSERT_MSG_SIZE(mess_vfs_fs_rdlink
);
1494 } mess_fs_vfs_rdlink
;
1495 _ASSERT_MSG_SIZE(mess_fs_vfs_rdlink
);
1502 cp_grant_id_t grant
;
1505 } mess_vfs_fs_readsuper
;
1506 _ASSERT_MSG_SIZE(mess_vfs_fs_readsuper
);
1521 } mess_fs_vfs_readsuper
;
1522 _ASSERT_MSG_SIZE(mess_fs_vfs_readsuper
);
1528 cp_grant_id_t grant
;
1532 } mess_vfs_fs_readwrite
;
1533 _ASSERT_MSG_SIZE(mess_vfs_fs_readwrite
);
1541 } mess_fs_vfs_readwrite
;
1542 _ASSERT_MSG_SIZE(mess_fs_vfs_readwrite
);
1550 cp_grant_id_t grant_old
;
1551 cp_grant_id_t grant_new
;
1554 } mess_vfs_fs_rename
;
1555 _ASSERT_MSG_SIZE(mess_vfs_fs_rename
);
1562 cp_grant_id_t grant_path
;
1563 cp_grant_id_t grant_target
;
1568 } mess_vfs_fs_slink
;
1569 _ASSERT_MSG_SIZE(mess_vfs_fs_slink
);
1574 cp_grant_id_t grant
;
1578 _ASSERT_MSG_SIZE(mess_vfs_fs_stat
);
1581 cp_grant_id_t grant
;
1584 } mess_vfs_fs_statvfs
;
1585 _ASSERT_MSG_SIZE(mess_vfs_fs_statvfs
);
1590 cp_grant_id_t grant
;
1594 } mess_vfs_fs_unlink
;
1595 _ASSERT_MSG_SIZE(mess_vfs_fs_unlink
);
1606 } mess_vfs_fs_utime
;
1607 _ASSERT_MSG_SIZE(mess_vfs_fs_utime
);
1613 uint8_t padding
[48];
1614 } mess_vfs_lchardriver_cancel
;
1615 _ASSERT_MSG_SIZE(mess_vfs_lchardriver_cancel
);
1623 uint8_t padding
[40];
1624 } mess_vfs_lchardriver_openclose
;
1625 _ASSERT_MSG_SIZE(mess_vfs_lchardriver_openclose
);
1629 cp_grant_id_t grant
;
1637 uint8_t padding
[20];
1638 } mess_vfs_lchardriver_readwrite
;
1639 _ASSERT_MSG_SIZE(mess_vfs_lchardriver_readwrite
);
1645 uint8_t padding
[48];
1646 } mess_vfs_lchardriver_select
;
1647 _ASSERT_MSG_SIZE(mess_vfs_lchardriver_select
);
1651 uint32_t id
; /* should be cdev_id_t */
1653 uint8_t padding
[48];
1654 } mess_lchardriver_vfs_reply
;
1655 _ASSERT_MSG_SIZE(mess_lchardriver_vfs_reply
);
1661 uint8_t padding
[48];
1662 } mess_lchardriver_vfs_sel1
;
1663 _ASSERT_MSG_SIZE(mess_lchardriver_vfs_sel1
);
1669 uint8_t padding
[48];
1670 } mess_lchardriver_vfs_sel2
;
1671 _ASSERT_MSG_SIZE(mess_lchardriver_vfs_sel2
);
1682 uint8_t padding
[16];
1684 _ASSERT_MSG_SIZE(mess_vfs_utimens
);
1698 _ASSERT_MSG_SIZE(mess_vm_vfs_mmap
);
1701 dev_t dev
; /* 64bits long. */
1709 uint8_t padding
[12];
1711 _ASSERT_MSG_SIZE(mess_vmmcp
);
1716 uint8_t padding
[51];
1718 _ASSERT_MSG_SIZE(mess_vmmcp_reply
);
1721 endpoint_t destination
;
1727 uint8_t padding
[32];
1728 } mess_lsys_vm_vmremap
;
1729 _ASSERT_MSG_SIZE(mess_lsys_vm_vmremap
);
1734 uint8_t padding
[48];
1735 } mess_lc_vm_shm_unmap
;
1736 _ASSERT_MSG_SIZE(mess_lc_vm_shm_unmap
);
1740 uint8_t padding
[52];
1742 _ASSERT_MSG_SIZE(mess_lc_vm_brk
);
1748 uint8_t padding
[44];
1749 } mess_lc_vm_getphys
;
1750 _ASSERT_MSG_SIZE(mess_lc_vm_getphys
);
1756 uint8_t padding
[44];
1757 } mess_lsys_vm_getref
;
1758 _ASSERT_MSG_SIZE(mess_lsys_vm_getref
);
1763 uint8_t padding
[48];
1764 } mess_lsys_vm_query_exit
;
1765 _ASSERT_MSG_SIZE(mess_lsys_vm_query_exit
);
1773 uint8_t padding
[36];
1774 } mess_lsys_vm_info
;
1775 _ASSERT_MSG_SIZE(mess_lsys_vm_info
);
1780 uint8_t padding
[48];
1781 } mess_lsys_vm_update
;
1782 _ASSERT_MSG_SIZE(mess_lsys_vm_update
);
1786 uint8_t padding
[52];
1787 } mess_lsys_vm_watch_exit
;
1788 _ASSERT_MSG_SIZE(mess_lsys_vm_watch_exit
);
1795 uint8_t padding
[40];
1796 } mess_lc_ipc_shmget
;
1797 _ASSERT_MSG_SIZE(mess_lc_ipc_shmget
);
1804 uint8_t padding
[40];
1805 } mess_lc_ipc_shmat
;
1806 _ASSERT_MSG_SIZE(mess_lc_ipc_shmat
);
1810 uint8_t padding
[52];
1811 } mess_lc_ipc_shmdt
;
1812 _ASSERT_MSG_SIZE(mess_lc_ipc_shmdt
);
1819 uint8_t padding
[40];
1820 } mess_lc_ipc_shmctl
;
1821 _ASSERT_MSG_SIZE(mess_lc_ipc_shmctl
);
1828 uint8_t padding
[40];
1829 } mess_lc_ipc_semget
;
1830 _ASSERT_MSG_SIZE(mess_lc_ipc_semget
);
1838 uint8_t padding
[36];
1839 } mess_lc_ipc_semctl
;
1840 _ASSERT_MSG_SIZE(mess_lc_ipc_semctl
);
1846 uint8_t padding
[42];
1847 } mess_lc_ipc_semop
;
1848 _ASSERT_MSG_SIZE(mess_lc_ipc_semop
);
1851 endpoint_t m_source
; /* who sent the message */
1852 int m_type
; /* what kind of message is it */
1870 mess_notify m_notify
;
1871 mess_sigcalls m_sigcalls
;
1873 mess_input_tty_event m_input_tty_event
;
1875 mess_krn_lsys_schedule m_krn_lsys_schedule
;
1876 mess_krn_lsys_sys_fork m_krn_lsys_sys_fork
;
1877 mess_krn_lsys_sys_getwhoami m_krn_lsys_sys_getwhoami
;
1878 mess_krn_lsys_sys_irqctl m_krn_lsys_sys_irqctl
;
1879 mess_krn_lsys_sys_times m_krn_lsys_sys_times
;
1880 mess_krn_lsys_sys_trace m_krn_lsys_sys_trace
;
1881 mess_krn_lsys_sys_umap m_krn_lsys_sys_umap
;
1882 mess_krn_lsys_sys_vumap m_krn_lsys_sys_vumap
;
1883 mess_krn_lsys_sys_devio m_krn_lsys_sys_devio
;
1885 mess_fs_vfs_breadwrite m_fs_vfs_breadwrite
;
1886 mess_fs_vfs_chmod m_fs_vfs_chmod
;
1887 mess_fs_vfs_chown m_fs_vfs_chown
;
1888 mess_fs_vfs_create m_fs_vfs_create
;
1889 mess_fs_vfs_getdents m_fs_vfs_getdents
;
1890 mess_fs_vfs_lookup m_fs_vfs_lookup
;
1891 mess_fs_vfs_newnode m_fs_vfs_newnode
;
1892 mess_fs_vfs_rdlink m_fs_vfs_rdlink
;
1893 mess_fs_vfs_readsuper m_fs_vfs_readsuper
;
1894 mess_fs_vfs_readwrite m_fs_vfs_readwrite
;
1896 mess_i2c_li2cdriver_busc_i2c_exec m_i2c_li2cdriver_busc_i2c_exec
;
1897 mess_i2c_li2cdriver_busc_i2c_reserve m_i2c_li2cdriver_busc_i2c_reserve
;
1899 mess_input_linputdriver_input_conf m_input_linputdriver_input_conf
;
1900 mess_input_linputdriver_setleds m_input_linputdriver_setleds
;
1902 mess_lc_pm_exec m_lc_pm_exec
;
1903 mess_lc_pm_exit m_lc_pm_exit
;
1904 mess_lc_pm_getsid m_lc_pm_getsid
;
1905 mess_lc_pm_groups m_lc_pm_groups
;
1906 mess_lc_pm_itimer m_lc_pm_itimer
;
1907 mess_lc_pm_mcontext m_lc_pm_mcontext
;
1908 mess_lc_pm_priority m_lc_pm_priority
;
1909 mess_lc_pm_ptrace m_lc_pm_ptrace
;
1910 mess_lc_pm_reboot m_lc_pm_reboot
;
1911 mess_lc_pm_rusage m_lc_pm_rusage
;
1912 mess_lc_pm_setgid m_lc_pm_setgid
;
1913 mess_lc_pm_setuid m_lc_pm_setuid
;
1914 mess_lc_pm_sig m_lc_pm_sig
;
1915 mess_lc_pm_sigset m_lc_pm_sigset
;
1916 mess_lc_pm_sysuname m_lc_pm_sysuname
;
1917 mess_lc_pm_time m_lc_pm_time
;
1918 mess_lc_pm_waitpid m_lc_pm_waitpid
;
1919 mess_lc_readclock_rtcdev m_lc_readclock_rtcdev
;
1921 mess_lc_vfs_chown m_lc_vfs_chown
;
1922 mess_lc_vfs_close m_lc_vfs_close
;
1923 mess_lc_vfs_creat m_lc_vfs_creat
;
1924 mess_lc_vfs_fchdir m_lc_vfs_fchdir
;
1925 mess_lc_vfs_fchmod m_lc_vfs_fchmod
;
1926 mess_lc_vfs_fcntl m_lc_vfs_fcntl
;
1927 mess_lc_vfs_fstat m_lc_vfs_fstat
;
1928 mess_lc_vfs_fsync m_lc_vfs_fsync
;
1929 mess_lc_vfs_getvfsstat m_lc_vfs_getvfsstat
;
1930 mess_lc_vfs_ioctl m_lc_vfs_ioctl
;
1931 mess_lc_vfs_link m_lc_vfs_link
;
1932 mess_lc_vfs_lseek m_lc_vfs_lseek
;
1933 mess_lc_vfs_mknod m_lc_vfs_mknod
;
1934 mess_lc_vfs_mount m_lc_vfs_mount
;
1935 mess_lc_vfs_path m_lc_vfs_path
;
1936 mess_lc_vfs_pipe2 m_lc_vfs_pipe2
;
1937 mess_lc_vfs_readlink m_lc_vfs_readlink
;
1938 mess_lc_vfs_readwrite m_lc_vfs_readwrite
;
1939 mess_lc_vfs_rusage m_lc_vfs_rusage
;
1940 mess_lc_vfs_select m_lc_vfs_select
;
1941 mess_lc_vfs_stat m_lc_vfs_stat
;
1942 mess_lc_vfs_statvfs1 m_lc_vfs_statvfs1
;
1943 mess_lc_vfs_truncate m_lc_vfs_truncate
;
1944 mess_lc_vfs_umask m_lc_vfs_umask
;
1945 mess_lc_vfs_umount m_lc_vfs_umount
;
1947 mess_lc_vm_rusage m_lc_vm_rusage
;
1949 mess_lchardriver_vfs_reply m_lchardriver_vfs_reply
;
1950 mess_lchardriver_vfs_sel1 m_lchardriver_vfs_sel1
;
1951 mess_lchardriver_vfs_sel2 m_lchardriver_vfs_sel2
;
1953 mess_lexec_pm_exec_new m_lexec_pm_exec_new
;
1955 mess_li2cdriver_i2c_busc_i2c_exec m_li2cdriver_i2c_busc_i2c_exec
;
1956 mess_li2cdriver_i2c_busc_i2c_reserve m_li2cdriver_i2c_busc_i2c_reserve
;
1958 mess_linputdriver_input_event m_linputdriver_input_event
;
1960 mess_lsys_getsysinfo m_lsys_getsysinfo
;
1961 mess_lsys_fi_ctl m_lsys_fi_ctl
;
1962 mess_lsys_fi_reply m_lsys_fi_reply
;
1964 mess_lsys_krn_sys_devio m_lsys_krn_sys_devio
;
1965 mess_lsys_krn_schedctl m_lsys_krn_schedctl
;
1966 mess_lsys_krn_schedule m_lsys_krn_schedule
;
1967 mess_lsys_krn_sys_abort m_lsys_krn_sys_abort
;
1968 mess_lsys_krn_sys_clear m_lsys_krn_sys_clear
;
1969 mess_lsys_krn_sys_copy m_lsys_krn_sys_copy
;
1970 mess_lsys_krn_sys_exec m_lsys_krn_sys_exec
;
1971 mess_lsys_krn_sys_fork m_lsys_krn_sys_fork
;
1972 mess_lsys_krn_sys_getinfo m_lsys_krn_sys_getinfo
;
1973 mess_lsys_krn_sys_getmcontext m_lsys_krn_sys_getmcontext
;
1974 mess_lsys_krn_sys_iopenable m_lsys_krn_sys_iopenable
;
1975 mess_lsys_krn_sys_irqctl m_lsys_krn_sys_irqctl
;
1976 mess_lsys_krn_sys_memset m_lsys_krn_sys_memset
;
1977 mess_lsys_krn_sys_privctl m_lsys_krn_sys_privctl
;
1978 mess_lsys_krn_sys_sdevio m_lsys_krn_sys_sdevio
;
1979 mess_lsys_krn_sys_setalarm m_lsys_krn_sys_setalarm
;
1980 mess_lsys_krn_sys_setgrant m_lsys_krn_sys_setgrant
;
1981 mess_lsys_krn_sys_setmcontext m_lsys_krn_sys_setmcontext
;
1982 mess_lsys_krn_sys_statectl m_lsys_krn_sys_statectl
;
1983 mess_lsys_krn_sys_stime m_lsys_krn_sys_stime
;
1984 mess_lsys_krn_sys_settime m_lsys_krn_sys_settime
;
1985 mess_lsys_krn_sys_times m_lsys_krn_sys_times
;
1986 mess_lsys_krn_sys_trace m_lsys_krn_sys_trace
;
1987 mess_lsys_krn_sys_umap m_lsys_krn_sys_umap
;
1988 mess_lsys_krn_sys_vdevio m_lsys_krn_sys_vdevio
;
1989 mess_lsys_krn_sys_vumap m_lsys_krn_sys_vumap
;
1991 mess_lsys_pci_busc_get_bar m_lsys_pci_busc_get_bar
;
1993 mess_lsys_pm_getepinfo m_lsys_pm_getepinfo
;
1994 mess_lsys_pm_getprocnr m_lsys_pm_getprocnr
;
1995 mess_lsys_pm_srv_fork m_lsys_pm_srv_fork
;
1997 mess_lsys_sched_scheduling_start m_lsys_sched_scheduling_start
;
1998 mess_lsys_sched_scheduling_stop m_lsys_sched_scheduling_stop
;
2000 mess_lsys_svrctl m_lsys_svrctl
;
2002 mess_lsys_tty_fkey_ctl m_lsys_tty_fkey_ctl
;
2004 mess_lsys_vfs_checkperms m_lsys_vfs_checkperms
;
2005 mess_lsys_vfs_copyfd m_lsys_vfs_copyfd
;
2006 mess_lsys_vfs_mapdriver m_lsys_vfs_mapdriver
;
2008 mess_net_netdrv_dl_conf m_net_netdrv_dl_conf
;
2009 mess_net_netdrv_dl_getstat_s m_net_netdrv_dl_getstat_s
;
2010 mess_net_netdrv_dl_readv_s m_net_netdrv_dl_readv_s
;
2011 mess_net_netdrv_dl_writev_s m_net_netdrv_dl_writev_s
;
2013 mess_netdrv_net_dl_conf m_netdrv_net_dl_conf
;
2014 mess_netdrv_net_dl_task m_netdrv_net_dl_task
;
2016 mess_pci_lsys_busc_get_bar m_pci_lsys_busc_get_bar
;
2018 mess_pm_lexec_exec_new m_pm_lexec_exec_new
;
2020 mess_pm_lc_getgid m_pm_lc_getgid
;
2021 mess_pm_lc_getpid m_pm_lc_getpid
;
2022 mess_pm_lc_getuid m_pm_lc_getuid
;
2023 mess_pm_lc_ptrace m_pm_lc_ptrace
;
2024 mess_pm_lc_sigset m_pm_lc_sigset
;
2025 mess_pm_lc_time m_pm_lc_time
;
2026 mess_pm_lc_waitpid m_pm_lc_waitpid
;
2028 mess_pm_lsys_getepinfo m_pm_lsys_getepinfo
;
2029 mess_pm_lsys_getprocnr m_pm_lsys_getprocnr
;
2031 mess_pm_sched_scheduling_set_nice m_pm_sched_scheduling_set_nice
;
2033 mess_readclock_lc_rtcdev m_readclock_lc_rtcdev
;
2035 mess_rs_pm_exec_restart m_rs_pm_exec_restart
;
2036 mess_rs_pm_srv_kill m_rs_pm_srv_kill
;
2038 mess_sched_lsys_scheduling_start m_sched_lsys_scheduling_start
;
2040 mess_tty_lsys_fkey_ctl m_tty_lsys_fkey_ctl
;
2042 mess_vfs_fs_breadwrite m_vfs_fs_breadwrite
;
2043 mess_vfs_fs_chmod m_vfs_fs_chmod
;
2044 mess_vfs_fs_chown m_vfs_fs_chown
;
2045 mess_vfs_fs_create m_vfs_fs_create
;
2046 mess_vfs_fs_flush m_vfs_fs_flush
;
2047 mess_vfs_fs_ftrunc m_vfs_fs_ftrunc
;
2048 mess_vfs_fs_getdents m_vfs_fs_getdents
;
2049 mess_vfs_fs_inhibread m_vfs_fs_inhibread
;
2050 mess_vfs_fs_link m_vfs_fs_link
;
2051 mess_vfs_fs_lookup m_vfs_fs_lookup
;
2052 mess_vfs_fs_mkdir m_vfs_fs_mkdir
;
2053 mess_vfs_fs_mknod m_vfs_fs_mknod
;
2054 mess_vfs_fs_mountpoint m_vfs_fs_mountpoint
;
2055 mess_vfs_fs_newnode m_vfs_fs_newnode
;
2056 mess_vfs_fs_new_driver m_vfs_fs_new_driver
;
2057 mess_vfs_fs_putnode m_vfs_fs_putnode
;
2058 mess_vfs_fs_rdlink m_vfs_fs_rdlink
;
2059 mess_vfs_fs_readsuper m_vfs_fs_readsuper
;
2060 mess_vfs_fs_rename m_vfs_fs_rename
;
2061 mess_vfs_fs_readwrite m_vfs_fs_readwrite
;
2062 mess_vfs_fs_slink m_vfs_fs_slink
;
2063 mess_vfs_fs_stat m_vfs_fs_stat
;
2064 mess_vfs_fs_statvfs m_vfs_fs_statvfs
;
2065 mess_vfs_fs_unlink m_vfs_fs_unlink
;
2066 mess_vfs_fs_utime m_vfs_fs_utime
;
2068 mess_vfs_lc_lseek m_vfs_lc_lseek
;
2070 mess_lsys_vm_vmremap m_lsys_vm_vmremap
;
2071 mess_lsys_vm_getref m_lsys_vm_getref
;
2072 mess_lc_vm_getphys m_lc_vm_getphys
;
2073 mess_lc_vm_shm_unmap m_lc_vm_shm_unmap
;
2074 mess_lsys_vm_query_exit m_lsys_vm_query_exit
;
2075 mess_lsys_vm_info m_lsys_vm_info
;
2076 mess_lsys_vm_update m_lsys_vm_update
;
2077 mess_lsys_vm_watch_exit m_lsys_vm_watch_exit
;
2078 mess_lc_ipc_shmget m_lc_ipc_shmget
;
2079 mess_lc_ipc_shmat m_lc_ipc_shmat
;
2080 mess_lc_ipc_shmdt m_lc_ipc_shmdt
;
2081 mess_lc_ipc_shmctl m_lc_ipc_shmctl
;
2082 mess_lc_ipc_semget m_lc_ipc_semget
;
2083 mess_lc_ipc_semctl m_lc_ipc_semctl
;
2084 mess_lc_ipc_semop m_lc_ipc_semop
;
2085 mess_lc_vm_brk m_lc_vm_brk
;
2087 mess_vfs_lchardriver_cancel m_vfs_lchardriver_cancel
;
2088 mess_vfs_lchardriver_openclose m_vfs_lchardriver_openclose
;
2089 mess_vfs_lchardriver_readwrite m_vfs_lchardriver_readwrite
;
2090 mess_vfs_lchardriver_select m_vfs_lchardriver_select
;
2092 mess_vfs_utimens m_vfs_utimens
;
2093 mess_vm_vfs_mmap m_vm_vfs_mmap
;
2095 mess_vmmcp_reply m_vmmcp_reply
;
2097 u8_t size
[56]; /* message payload may have 56 bytes at most */
2099 } message
__aligned(16);
2101 /* Ensure the complete union respects the IPC assumptions. */
2102 typedef int _ASSERT_message
[/* CONSTCOND */sizeof(message
) == 64 ? 1 : -1];
2104 /* The following defines provide names for useful members. */
2105 #define m1_i1 m_m1.m1i1
2106 #define m1_i2 m_m1.m1i2
2107 #define m1_i3 m_m1.m1i3
2108 #define m1_p1 m_m1.m1p1
2109 #define m1_p2 m_m1.m1p2
2110 #define m1_p3 m_m1.m1p3
2111 #define m1_p4 m_m1.m1p4
2112 #define m1_ull1 m_m1.m1ull1
2114 #define m2_ll1 m_m2.m2ll1
2115 #define m2_i1 m_m2.m2i1
2116 #define m2_i2 m_m2.m2i2
2117 #define m2_i3 m_m2.m2i3
2118 #define m2_l1 m_m2.m2l1
2119 #define m2_l2 m_m2.m2l2
2120 #define m2_p1 m_m2.m2p1
2121 #define m2_sigset m_m2.sigset
2123 #define m2_s1 m_m2.m2s1
2125 #define m3_i1 m_m3.m3i1
2126 #define m3_i2 m_m3.m3i2
2127 #define m3_p1 m_m3.m3p1
2128 #define m3_ca1 m_m3.m3ca1
2130 #define m4_ll1 m_m4.m4ll1
2131 #define m4_l1 m_m4.m4l1
2132 #define m4_l2 m_m4.m4l2
2133 #define m4_l3 m_m4.m4l3
2134 #define m4_l4 m_m4.m4l4
2135 #define m4_l5 m_m4.m4l5
2137 #define m5_s1 m_m5.m5s1
2138 #define m5_s2 m_m5.m5s2
2139 #define m5_i1 m_m5.m5i1
2140 #define m5_i2 m_m5.m5i2
2141 #define m5_l1 m_m5.m5l1
2142 #define m5_l2 m_m5.m5l2
2143 #define m5_l3 m_m5.m5l3
2145 #define m7_i1 m_m7.m7i1
2146 #define m7_i2 m_m7.m7i2
2147 #define m7_i3 m_m7.m7i3
2148 #define m7_i4 m_m7.m7i4
2149 #define m7_i5 m_m7.m7i5
2150 #define m7_p1 m_m7.m7p1
2151 #define m7_p2 m_m7.m7p2
2153 #define m8_i1 m_m8.m8i1
2154 #define m8_i2 m_m8.m8i2
2155 #define m8_p1 m_m8.m8p1
2156 #define m8_p2 m_m8.m8p2
2157 #define m8_p3 m_m8.m8p3
2158 #define m8_p4 m_m8.m8p4
2160 #define m9_l1 m_m9.m9l1
2161 #define m9_l2 m_m9.m9l2
2162 #define m9_l3 m_m9.m9l3
2163 #define m9_l4 m_m9.m9l4
2164 #define m9_l5 m_m9.m9l5
2165 #define m9_s1 m_m9.m9s1
2166 #define m9_s2 m_m9.m9s2
2167 #define m9_s3 m_m9.m9s3
2168 #define m9_s4 m_m9.m9s4
2169 #define m9_ull1 m_m9.m9ull1
2170 #define m9_ull2 m_m9.m9ull2
2172 #define m10_i1 m_m10.m10i1
2173 #define m10_i2 m_m10.m10i2
2174 #define m10_i3 m_m10.m10i3
2175 #define m10_i4 m_m10.m10i4
2176 #define m10_l1 m_m10.m10l1
2177 #define m10_l2 m_m10.m10l2
2178 #define m10_l3 m_m10.m10l3
2179 #define m10_ull1 m_m10.m10ull1
2181 #define m11_i1 m_m11.m11i1
2182 #define m11_s1 m_m11.m11s1
2183 #define m11_s2 m_m11.m11s2
2184 #define m11_s3 m_m11.m11s3
2185 #define m11_s4 m_m11.m11s4
2186 #define m11_p1 m_m11.m11p1
2187 #define m11_p2 m_m11.m11p2
2188 #define m11_p3 m_m11.m11p3
2189 #define m11_p4 m_m11.m11p4
2191 /*==========================================================================*
2192 * Minix run-time system (IPC). *
2193 *==========================================================================*/
2195 /* Datastructure for asynchronous sends */
2196 typedef struct asynmsg
2204 /* Defines for flags field */
2205 #define AMF_EMPTY 000 /* slot is not inuse */
2206 #define AMF_VALID 001 /* slot contains message */
2207 #define AMF_DONE 002 /* Kernel has processed the message. The
2208 * result is stored in 'result'
2210 #define AMF_NOTIFY 004 /* Send a notification when AMF_DONE is set */
2211 #define AMF_NOREPLY 010 /* Not a reply message for a SENDREC */
2212 #define AMF_NOTIFY_ERR 020 /* Send a notification when AMF_DONE is set and
2213 * delivery of the message failed */
2215 int _ipc_send_intr(endpoint_t dest
, message
*m_ptr
);
2216 int _ipc_receive_intr(endpoint_t src
, message
*m_ptr
, int *status_ptr
);
2217 int _ipc_sendrec_intr(endpoint_t src_dest
, message
*m_ptr
);
2218 int _ipc_sendnb_intr(endpoint_t dest
, message
*m_ptr
);
2219 int _ipc_notify_intr(endpoint_t dest
);
2220 int _ipc_senda_intr(asynmsg_t
*table
, size_t count
);
2222 int _do_kernel_call_intr(message
*m_ptr
);
2224 int get_minix_kerninfo(struct minix_kerninfo
**);
2226 /* Hide names to avoid name space pollution. */
2227 #define ipc_notify _ipc_notify
2228 #define ipc_sendrec _ipc_sendrec
2229 #define ipc_receive _ipc_receive
2230 #define ipc_receivenb _ipc_receivenb
2231 #define ipc_send _ipc_send
2232 #define ipc_sendnb _ipc_sendnb
2233 #define ipc_senda _ipc_senda
2235 #define do_kernel_call _do_kernel_call
2237 struct minix_ipcvecs
{
2238 int (*send
)(endpoint_t dest
, message
*m_ptr
);
2239 int (*receive
)(endpoint_t src
, message
*m_ptr
, int *st
);
2240 int (*sendrec
)(endpoint_t src_dest
, message
*m_ptr
);
2241 int (*sendnb
)(endpoint_t dest
, message
*m_ptr
);
2242 int (*notify
)(endpoint_t dest
);
2243 int (*do_kernel_call
)(message
*m_ptr
);
2244 int (*senda
)(asynmsg_t
*table
, size_t count
);
2247 /* kernel-set IPC vectors retrieved by a constructor in libc/sys-minix/init.c */
2248 extern struct minix_ipcvecs _minix_ipcvecs
;
2250 static inline int _ipc_send(endpoint_t dest
, message
*m_ptr
)
2252 return _minix_ipcvecs
.send(dest
, m_ptr
);
2255 static inline int _ipc_receive(endpoint_t src
, message
*m_ptr
, int *st
)
2257 return _minix_ipcvecs
.receive(src
, m_ptr
, st
);
2260 static inline int _ipc_sendrec(endpoint_t src_dest
, message
*m_ptr
)
2262 return _minix_ipcvecs
.sendrec(src_dest
, m_ptr
);
2265 static inline int _ipc_sendnb(endpoint_t dest
, message
*m_ptr
)
2267 return _minix_ipcvecs
.sendnb(dest
, m_ptr
);
2270 static inline int _ipc_notify(endpoint_t dest
)
2272 return _minix_ipcvecs
.notify(dest
);
2275 static inline int _do_kernel_call(message
*m_ptr
)
2277 return _minix_ipcvecs
.do_kernel_call(m_ptr
);
2280 static inline int _ipc_senda(asynmsg_t
*table
, size_t count
)
2282 return _minix_ipcvecs
.senda(table
, count
);