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
);
850 endpoint_t vec_endpt
;
856 } mess_lsys_krn_sys_sdevio
;
857 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_sdevio
);
865 } mess_lsys_krn_sys_setalarm
;
866 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_setalarm
);
869 vir_bytes addr
; /* cp_grant_t * */
873 } mess_lsys_krn_sys_setgrant
;
874 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_setgrant
);
881 } mess_lsys_krn_sys_setmcontext
;
882 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_setmcontext
);
888 } mess_lsys_krn_sys_statectl
;
889 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_statectl
);
895 } mess_lsys_krn_sys_stime
;
896 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_stime
);
899 time_t sec
; /* time in seconds since 1970 */
901 int now
; /* non-zero for immediate, 0 for adjtime */
905 } mess_lsys_krn_sys_settime
;
906 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_settime
);
912 } mess_lsys_krn_sys_times
;
913 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_times
);
923 } mess_krn_lsys_sys_times
;
924 _ASSERT_MSG_SIZE(mess_krn_lsys_sys_times
);
933 } mess_lsys_krn_sys_trace
;
934 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_trace
);
940 } mess_krn_lsys_sys_trace
;
941 _ASSERT_MSG_SIZE(mess_krn_lsys_sys_trace
);
944 endpoint_t src_endpt
;
947 endpoint_t dst_endpt
;
951 } mess_lsys_krn_sys_umap
;
952 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_umap
);
958 } mess_krn_lsys_sys_umap
;
959 _ASSERT_MSG_SIZE(mess_krn_lsys_sys_umap
);
964 vir_bytes vec_addr
; /* pv{b,w,l}_pair_t * */
967 } mess_lsys_krn_sys_vdevio
;
968 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_vdevio
);
972 vir_bytes vaddr
; /* struct vumap_vir * */
974 vir_bytes paddr
; /* struct vumap_phys * */
980 } mess_lsys_krn_sys_vumap
;
981 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_vumap
);
987 } mess_krn_lsys_sys_vumap
;
988 _ASSERT_MSG_SIZE(mess_krn_lsys_sys_vumap
);
993 unsigned long pattern
;
997 } mess_lsys_krn_sys_memset
;
998 _ASSERT_MSG_SIZE(mess_lsys_krn_sys_memset
);
1004 uint8_t padding
[48];
1005 } mess_lsys_pci_busc_get_bar
;
1006 _ASSERT_MSG_SIZE(mess_lsys_pci_busc_get_bar
);
1013 uint8_t padding
[44];
1014 } mess_pci_lsys_busc_get_bar
;
1015 _ASSERT_MSG_SIZE(mess_pci_lsys_busc_get_bar
);
1020 uint8_t padding
[52];
1021 } mess_lsys_pm_getepinfo
;
1022 _ASSERT_MSG_SIZE(mess_lsys_pm_getepinfo
);
1028 uint8_t padding
[48];
1029 } mess_pm_lsys_getepinfo
;
1030 _ASSERT_MSG_SIZE(mess_pm_lsys_getepinfo
);
1035 uint8_t padding
[52];
1036 } mess_lsys_pm_getprocnr
;
1037 _ASSERT_MSG_SIZE(mess_lsys_pm_getprocnr
);
1042 uint8_t padding
[52];
1043 } mess_pm_lsys_getprocnr
;
1044 _ASSERT_MSG_SIZE(mess_pm_lsys_getprocnr
);
1050 uint8_t padding
[48];
1051 } mess_lsys_pm_srv_fork
;
1052 _ASSERT_MSG_SIZE(mess_lsys_pm_srv_fork
);
1055 endpoint_t endpoint
;
1060 uint8_t padding
[40];
1061 } mess_lsys_sched_scheduling_start
;
1062 _ASSERT_MSG_SIZE(mess_lsys_sched_scheduling_start
);
1065 endpoint_t scheduler
;
1067 uint8_t padding
[52];
1068 } mess_sched_lsys_scheduling_start
;
1069 _ASSERT_MSG_SIZE(mess_sched_lsys_scheduling_start
);
1072 endpoint_t endpoint
;
1074 uint8_t padding
[52];
1075 } mess_lsys_sched_scheduling_stop
;
1076 _ASSERT_MSG_SIZE(mess_lsys_sched_scheduling_stop
);
1082 uint8_t padding
[48];
1084 _ASSERT_MSG_SIZE(mess_lsys_svrctl
);
1091 uint8_t padding
[44];
1092 } mess_lsys_tty_fkey_ctl
;
1093 _ASSERT_MSG_SIZE(mess_lsys_tty_fkey_ctl
);
1099 uint8_t padding
[48];
1100 } mess_tty_lsys_fkey_ctl
;
1101 _ASSERT_MSG_SIZE(mess_tty_lsys_fkey_ctl
);
1105 cp_grant_id_t grant
;
1108 uint8_t padding
[44];
1109 } mess_lsys_vfs_checkperms
;
1110 _ASSERT_MSG_SIZE(mess_lsys_vfs_checkperms
);
1117 uint8_t padding
[44];
1118 } mess_lsys_vfs_copyfd
;
1119 _ASSERT_MSG_SIZE(mess_lsys_vfs_copyfd
);
1126 uint8_t padding
[44];
1127 } mess_lsys_vfs_mapdriver
;
1128 _ASSERT_MSG_SIZE(mess_lsys_vfs_mapdriver
);
1133 uint8_t padding
[52];
1134 } mess_net_netdrv_dl_conf
;
1135 _ASSERT_MSG_SIZE(mess_net_netdrv_dl_conf
);
1141 uint8_t padding
[46];
1142 } mess_netdrv_net_dl_conf
;
1143 _ASSERT_MSG_SIZE(mess_netdrv_net_dl_conf
);
1146 cp_grant_id_t grant
;
1148 uint8_t padding
[52];
1149 } mess_net_netdrv_dl_getstat_s
;
1150 _ASSERT_MSG_SIZE(mess_net_netdrv_dl_getstat_s
);
1153 cp_grant_id_t grant
;
1156 uint8_t padding
[48];
1157 } mess_net_netdrv_dl_readv_s
;
1158 _ASSERT_MSG_SIZE(mess_net_netdrv_dl_readv_s
);
1161 cp_grant_id_t grant
;
1164 uint8_t padding
[48];
1165 } mess_net_netdrv_dl_writev_s
;
1166 _ASSERT_MSG_SIZE(mess_net_netdrv_dl_writev_s
);
1172 uint8_t padding
[48];
1173 } mess_netdrv_net_dl_task
;
1174 _ASSERT_MSG_SIZE(mess_netdrv_net_dl_task
);
1179 uint8_t padding
[52];
1180 } mess_pm_lc_getgid
;
1181 _ASSERT_MSG_SIZE(mess_pm_lc_getgid
);
1186 uint8_t padding
[52];
1187 } mess_pm_lc_getpid
;
1188 _ASSERT_MSG_SIZE(mess_pm_lc_getpid
);
1193 uint8_t padding
[52];
1194 } mess_pm_lc_getuid
;
1195 _ASSERT_MSG_SIZE(mess_pm_lc_getuid
);
1198 endpoint_t endpoint
;
1201 uint8_t padding
[48];
1202 } mess_pm_sched_scheduling_set_nice
;
1203 _ASSERT_MSG_SIZE(mess_pm_sched_scheduling_set_nice
);
1211 uint8_t padding
[40];
1212 } mess_rs_pm_exec_restart
;
1213 _ASSERT_MSG_SIZE(mess_rs_pm_exec_restart
);
1219 uint8_t padding
[48];
1220 } mess_rs_pm_srv_kill
;
1221 _ASSERT_MSG_SIZE(mess_rs_pm_srv_kill
);
1227 cp_grant_id_t grant
;
1231 } mess_vfs_fs_breadwrite
;
1232 _ASSERT_MSG_SIZE(mess_vfs_fs_breadwrite
);
1240 } mess_fs_vfs_breadwrite
;
1241 _ASSERT_MSG_SIZE(mess_fs_vfs_breadwrite
);
1249 } mess_vfs_fs_chmod
;
1250 _ASSERT_MSG_SIZE(mess_vfs_fs_chmod
);
1256 } mess_fs_vfs_chmod
;
1257 _ASSERT_MSG_SIZE(mess_fs_vfs_chmod
);
1266 } mess_vfs_fs_chown
;
1267 _ASSERT_MSG_SIZE(mess_vfs_fs_chown
);
1273 } mess_fs_vfs_chown
;
1274 _ASSERT_MSG_SIZE(mess_fs_vfs_chown
);
1282 cp_grant_id_t grant
;
1286 } mess_vfs_fs_create
;
1287 _ASSERT_MSG_SIZE(mess_vfs_fs_create
);
1298 } mess_fs_vfs_create
;
1299 _ASSERT_MSG_SIZE(mess_fs_vfs_create
);
1305 } mess_vfs_fs_flush
;
1306 _ASSERT_MSG_SIZE(mess_vfs_fs_flush
);
1314 } mess_vfs_fs_ftrunc
;
1315 _ASSERT_MSG_SIZE(mess_vfs_fs_ftrunc
);
1321 cp_grant_id_t grant
;
1325 } mess_vfs_fs_getdents
;
1326 _ASSERT_MSG_SIZE(mess_vfs_fs_getdents
);
1334 } mess_fs_vfs_getdents
;
1335 _ASSERT_MSG_SIZE(mess_fs_vfs_getdents
);
1341 } mess_vfs_fs_inhibread
;
1342 _ASSERT_MSG_SIZE(mess_vfs_fs_inhibread
);
1348 cp_grant_id_t grant
;
1353 _ASSERT_MSG_SIZE(mess_vfs_fs_link
);
1363 cp_grant_id_t grant_path
;
1364 cp_grant_id_t grant_ucred
;
1369 } mess_vfs_fs_lookup
;
1370 _ASSERT_MSG_SIZE(mess_vfs_fs_lookup
);
1385 } mess_fs_vfs_lookup
;
1386 _ASSERT_MSG_SIZE(mess_fs_vfs_lookup
);
1394 cp_grant_id_t grant
;
1398 } mess_vfs_fs_mkdir
;
1399 _ASSERT_MSG_SIZE(mess_vfs_fs_mkdir
);
1408 cp_grant_id_t grant
;
1412 } mess_vfs_fs_mknod
;
1413 _ASSERT_MSG_SIZE(mess_vfs_fs_mknod
);
1419 } mess_vfs_fs_mountpoint
;
1420 _ASSERT_MSG_SIZE(mess_vfs_fs_mountpoint
);
1425 cp_grant_id_t grant
;
1429 } mess_vfs_fs_new_driver
;
1430 _ASSERT_MSG_SIZE(mess_vfs_fs_new_driver
);
1440 } mess_vfs_fs_newnode
;
1441 _ASSERT_MSG_SIZE(mess_vfs_fs_newnode
);
1453 } mess_fs_vfs_newnode
;
1454 _ASSERT_MSG_SIZE(mess_fs_vfs_newnode
);
1461 } mess_vfs_fs_putnode
;
1462 _ASSERT_MSG_SIZE(mess_vfs_fs_putnode
);
1467 cp_grant_id_t grant
;
1471 } mess_vfs_fs_rdlink
;
1472 _ASSERT_MSG_SIZE(mess_vfs_fs_rdlink
);
1478 } mess_fs_vfs_rdlink
;
1479 _ASSERT_MSG_SIZE(mess_fs_vfs_rdlink
);
1486 cp_grant_id_t grant
;
1489 } mess_vfs_fs_readsuper
;
1490 _ASSERT_MSG_SIZE(mess_vfs_fs_readsuper
);
1505 } mess_fs_vfs_readsuper
;
1506 _ASSERT_MSG_SIZE(mess_fs_vfs_readsuper
);
1512 cp_grant_id_t grant
;
1516 } mess_vfs_fs_readwrite
;
1517 _ASSERT_MSG_SIZE(mess_vfs_fs_readwrite
);
1525 } mess_fs_vfs_readwrite
;
1526 _ASSERT_MSG_SIZE(mess_fs_vfs_readwrite
);
1534 cp_grant_id_t grant_old
;
1535 cp_grant_id_t grant_new
;
1538 } mess_vfs_fs_rename
;
1539 _ASSERT_MSG_SIZE(mess_vfs_fs_rename
);
1546 cp_grant_id_t grant_path
;
1547 cp_grant_id_t grant_target
;
1552 } mess_vfs_fs_slink
;
1553 _ASSERT_MSG_SIZE(mess_vfs_fs_slink
);
1558 cp_grant_id_t grant
;
1562 _ASSERT_MSG_SIZE(mess_vfs_fs_stat
);
1565 cp_grant_id_t grant
;
1568 } mess_vfs_fs_statvfs
;
1569 _ASSERT_MSG_SIZE(mess_vfs_fs_statvfs
);
1574 cp_grant_id_t grant
;
1578 } mess_vfs_fs_unlink
;
1579 _ASSERT_MSG_SIZE(mess_vfs_fs_unlink
);
1590 } mess_vfs_fs_utime
;
1591 _ASSERT_MSG_SIZE(mess_vfs_fs_utime
);
1597 uint8_t padding
[48];
1598 } mess_vfs_lchardriver_cancel
;
1599 _ASSERT_MSG_SIZE(mess_vfs_lchardriver_cancel
);
1607 uint8_t padding
[40];
1608 } mess_vfs_lchardriver_openclose
;
1609 _ASSERT_MSG_SIZE(mess_vfs_lchardriver_openclose
);
1613 cp_grant_id_t grant
;
1621 uint8_t padding
[20];
1622 } mess_vfs_lchardriver_readwrite
;
1623 _ASSERT_MSG_SIZE(mess_vfs_lchardriver_readwrite
);
1629 uint8_t padding
[48];
1630 } mess_vfs_lchardriver_select
;
1631 _ASSERT_MSG_SIZE(mess_vfs_lchardriver_select
);
1635 uint32_t id
; /* should be cdev_id_t */
1637 uint8_t padding
[48];
1638 } mess_lchardriver_vfs_reply
;
1639 _ASSERT_MSG_SIZE(mess_lchardriver_vfs_reply
);
1645 uint8_t padding
[48];
1646 } mess_lchardriver_vfs_sel1
;
1647 _ASSERT_MSG_SIZE(mess_lchardriver_vfs_sel1
);
1653 uint8_t padding
[48];
1654 } mess_lchardriver_vfs_sel2
;
1655 _ASSERT_MSG_SIZE(mess_lchardriver_vfs_sel2
);
1666 uint8_t padding
[16];
1668 _ASSERT_MSG_SIZE(mess_vfs_utimens
);
1682 _ASSERT_MSG_SIZE(mess_vm_vfs_mmap
);
1685 dev_t dev
; /* 64bits long. */
1693 uint8_t padding
[12];
1695 _ASSERT_MSG_SIZE(mess_vmmcp
);
1700 uint8_t padding
[51];
1702 _ASSERT_MSG_SIZE(mess_vmmcp_reply
);
1705 endpoint_t destination
;
1711 uint8_t padding
[32];
1712 } mess_lsys_vm_vmremap
;
1713 _ASSERT_MSG_SIZE(mess_lsys_vm_vmremap
);
1718 uint8_t padding
[48];
1719 } mess_lc_vm_shm_unmap
;
1720 _ASSERT_MSG_SIZE(mess_lc_vm_shm_unmap
);
1726 uint8_t padding
[44];
1727 } mess_lc_vm_getphys
;
1728 _ASSERT_MSG_SIZE(mess_lc_vm_getphys
);
1734 uint8_t padding
[44];
1735 } mess_lsys_vm_getref
;
1736 _ASSERT_MSG_SIZE(mess_lsys_vm_getref
);
1741 uint8_t padding
[48];
1742 } mess_lsys_vm_query_exit
;
1743 _ASSERT_MSG_SIZE(mess_lsys_vm_query_exit
);
1751 uint8_t padding
[36];
1752 } mess_lsys_vm_info
;
1753 _ASSERT_MSG_SIZE(mess_lsys_vm_info
);
1758 uint8_t padding
[48];
1759 } mess_lsys_vm_update
;
1760 _ASSERT_MSG_SIZE(mess_lsys_vm_update
);
1764 uint8_t padding
[52];
1765 } mess_lsys_vm_watch_exit
;
1766 _ASSERT_MSG_SIZE(mess_lsys_vm_watch_exit
);
1773 uint8_t padding
[40];
1774 } mess_lc_ipc_shmget
;
1775 _ASSERT_MSG_SIZE(mess_lc_ipc_shmget
);
1778 endpoint_t m_source
; /* who sent the message */
1779 int m_type
; /* what kind of message is it */
1797 mess_notify m_notify
;
1798 mess_sigcalls m_sigcalls
;
1800 mess_input_tty_event m_input_tty_event
;
1802 mess_krn_lsys_schedule m_krn_lsys_schedule
;
1803 mess_krn_lsys_sys_fork m_krn_lsys_sys_fork
;
1804 mess_krn_lsys_sys_getwhoami m_krn_lsys_sys_getwhoami
;
1805 mess_krn_lsys_sys_irqctl m_krn_lsys_sys_irqctl
;
1806 mess_krn_lsys_sys_times m_krn_lsys_sys_times
;
1807 mess_krn_lsys_sys_trace m_krn_lsys_sys_trace
;
1808 mess_krn_lsys_sys_umap m_krn_lsys_sys_umap
;
1809 mess_krn_lsys_sys_vumap m_krn_lsys_sys_vumap
;
1811 mess_fs_vfs_breadwrite m_fs_vfs_breadwrite
;
1812 mess_fs_vfs_chmod m_fs_vfs_chmod
;
1813 mess_fs_vfs_chown m_fs_vfs_chown
;
1814 mess_fs_vfs_create m_fs_vfs_create
;
1815 mess_fs_vfs_getdents m_fs_vfs_getdents
;
1816 mess_fs_vfs_lookup m_fs_vfs_lookup
;
1817 mess_fs_vfs_newnode m_fs_vfs_newnode
;
1818 mess_fs_vfs_rdlink m_fs_vfs_rdlink
;
1819 mess_fs_vfs_readsuper m_fs_vfs_readsuper
;
1820 mess_fs_vfs_readwrite m_fs_vfs_readwrite
;
1822 mess_i2c_li2cdriver_busc_i2c_exec m_i2c_li2cdriver_busc_i2c_exec
;
1823 mess_i2c_li2cdriver_busc_i2c_reserve m_i2c_li2cdriver_busc_i2c_reserve
;
1825 mess_input_linputdriver_input_conf m_input_linputdriver_input_conf
;
1826 mess_input_linputdriver_setleds m_input_linputdriver_setleds
;
1828 mess_lc_pm_exec m_lc_pm_exec
;
1829 mess_lc_pm_exit m_lc_pm_exit
;
1830 mess_lc_pm_getsid m_lc_pm_getsid
;
1831 mess_lc_pm_groups m_lc_pm_groups
;
1832 mess_lc_pm_itimer m_lc_pm_itimer
;
1833 mess_lc_pm_mcontext m_lc_pm_mcontext
;
1834 mess_lc_pm_priority m_lc_pm_priority
;
1835 mess_lc_pm_ptrace m_lc_pm_ptrace
;
1836 mess_lc_pm_reboot m_lc_pm_reboot
;
1837 mess_lc_pm_rusage m_lc_pm_rusage
;
1838 mess_lc_pm_setgid m_lc_pm_setgid
;
1839 mess_lc_pm_setuid m_lc_pm_setuid
;
1840 mess_lc_pm_sig m_lc_pm_sig
;
1841 mess_lc_pm_sigset m_lc_pm_sigset
;
1842 mess_lc_pm_sysuname m_lc_pm_sysuname
;
1843 mess_lc_pm_time m_lc_pm_time
;
1844 mess_lc_pm_waitpid m_lc_pm_waitpid
;
1845 mess_lc_readclock_rtcdev m_lc_readclock_rtcdev
;
1847 mess_lc_vfs_chown m_lc_vfs_chown
;
1848 mess_lc_vfs_close m_lc_vfs_close
;
1849 mess_lc_vfs_creat m_lc_vfs_creat
;
1850 mess_lc_vfs_fchdir m_lc_vfs_fchdir
;
1851 mess_lc_vfs_fchmod m_lc_vfs_fchmod
;
1852 mess_lc_vfs_fcntl m_lc_vfs_fcntl
;
1853 mess_lc_vfs_fstat m_lc_vfs_fstat
;
1854 mess_lc_vfs_fsync m_lc_vfs_fsync
;
1855 mess_lc_vfs_getvfsstat m_lc_vfs_getvfsstat
;
1856 mess_lc_vfs_ioctl m_lc_vfs_ioctl
;
1857 mess_lc_vfs_link m_lc_vfs_link
;
1858 mess_lc_vfs_lseek m_lc_vfs_lseek
;
1859 mess_lc_vfs_mknod m_lc_vfs_mknod
;
1860 mess_lc_vfs_mount m_lc_vfs_mount
;
1861 mess_lc_vfs_path m_lc_vfs_path
;
1862 mess_lc_vfs_pipe2 m_lc_vfs_pipe2
;
1863 mess_lc_vfs_readlink m_lc_vfs_readlink
;
1864 mess_lc_vfs_readwrite m_lc_vfs_readwrite
;
1865 mess_lc_vfs_rusage m_lc_vfs_rusage
;
1866 mess_lc_vfs_select m_lc_vfs_select
;
1867 mess_lc_vfs_stat m_lc_vfs_stat
;
1868 mess_lc_vfs_statvfs1 m_lc_vfs_statvfs1
;
1869 mess_lc_vfs_truncate m_lc_vfs_truncate
;
1870 mess_lc_vfs_umask m_lc_vfs_umask
;
1871 mess_lc_vfs_umount m_lc_vfs_umount
;
1873 mess_lc_vm_rusage m_lc_vm_rusage
;
1875 mess_lchardriver_vfs_reply m_lchardriver_vfs_reply
;
1876 mess_lchardriver_vfs_sel1 m_lchardriver_vfs_sel1
;
1877 mess_lchardriver_vfs_sel2 m_lchardriver_vfs_sel2
;
1879 mess_lexec_pm_exec_new m_lexec_pm_exec_new
;
1881 mess_li2cdriver_i2c_busc_i2c_exec m_li2cdriver_i2c_busc_i2c_exec
;
1882 mess_li2cdriver_i2c_busc_i2c_reserve m_li2cdriver_i2c_busc_i2c_reserve
;
1884 mess_linputdriver_input_event m_linputdriver_input_event
;
1886 mess_lsys_getsysinfo m_lsys_getsysinfo
;
1887 mess_lsys_fi_ctl m_lsys_fi_ctl
;
1888 mess_lsys_fi_reply m_lsys_fi_reply
;
1890 mess_lsys_krn_schedctl m_lsys_krn_schedctl
;
1891 mess_lsys_krn_schedule m_lsys_krn_schedule
;
1892 mess_lsys_krn_sys_abort m_lsys_krn_sys_abort
;
1893 mess_lsys_krn_sys_clear m_lsys_krn_sys_clear
;
1894 mess_lsys_krn_sys_copy m_lsys_krn_sys_copy
;
1895 mess_lsys_krn_sys_exec m_lsys_krn_sys_exec
;
1896 mess_lsys_krn_sys_fork m_lsys_krn_sys_fork
;
1897 mess_lsys_krn_sys_getinfo m_lsys_krn_sys_getinfo
;
1898 mess_lsys_krn_sys_getmcontext m_lsys_krn_sys_getmcontext
;
1899 mess_lsys_krn_sys_iopenable m_lsys_krn_sys_iopenable
;
1900 mess_lsys_krn_sys_irqctl m_lsys_krn_sys_irqctl
;
1901 mess_lsys_krn_sys_memset m_lsys_krn_sys_memset
;
1902 mess_lsys_krn_sys_privctl m_lsys_krn_sys_privctl
;
1903 mess_lsys_krn_sys_sdevio m_lsys_krn_sys_sdevio
;
1904 mess_lsys_krn_sys_setalarm m_lsys_krn_sys_setalarm
;
1905 mess_lsys_krn_sys_setgrant m_lsys_krn_sys_setgrant
;
1906 mess_lsys_krn_sys_setmcontext m_lsys_krn_sys_setmcontext
;
1907 mess_lsys_krn_sys_statectl m_lsys_krn_sys_statectl
;
1908 mess_lsys_krn_sys_stime m_lsys_krn_sys_stime
;
1909 mess_lsys_krn_sys_settime m_lsys_krn_sys_settime
;
1910 mess_lsys_krn_sys_times m_lsys_krn_sys_times
;
1911 mess_lsys_krn_sys_trace m_lsys_krn_sys_trace
;
1912 mess_lsys_krn_sys_umap m_lsys_krn_sys_umap
;
1913 mess_lsys_krn_sys_vdevio m_lsys_krn_sys_vdevio
;
1914 mess_lsys_krn_sys_vumap m_lsys_krn_sys_vumap
;
1916 mess_lsys_pci_busc_get_bar m_lsys_pci_busc_get_bar
;
1918 mess_lsys_pm_getepinfo m_lsys_pm_getepinfo
;
1919 mess_lsys_pm_getprocnr m_lsys_pm_getprocnr
;
1920 mess_lsys_pm_srv_fork m_lsys_pm_srv_fork
;
1922 mess_lsys_sched_scheduling_start m_lsys_sched_scheduling_start
;
1923 mess_lsys_sched_scheduling_stop m_lsys_sched_scheduling_stop
;
1925 mess_lsys_svrctl m_lsys_svrctl
;
1927 mess_lsys_tty_fkey_ctl m_lsys_tty_fkey_ctl
;
1929 mess_lsys_vfs_checkperms m_lsys_vfs_checkperms
;
1930 mess_lsys_vfs_copyfd m_lsys_vfs_copyfd
;
1931 mess_lsys_vfs_mapdriver m_lsys_vfs_mapdriver
;
1933 mess_net_netdrv_dl_conf m_net_netdrv_dl_conf
;
1934 mess_net_netdrv_dl_getstat_s m_net_netdrv_dl_getstat_s
;
1935 mess_net_netdrv_dl_readv_s m_net_netdrv_dl_readv_s
;
1936 mess_net_netdrv_dl_writev_s m_net_netdrv_dl_writev_s
;
1938 mess_netdrv_net_dl_conf m_netdrv_net_dl_conf
;
1939 mess_netdrv_net_dl_task m_netdrv_net_dl_task
;
1941 mess_pci_lsys_busc_get_bar m_pci_lsys_busc_get_bar
;
1943 mess_pm_lexec_exec_new m_pm_lexec_exec_new
;
1945 mess_pm_lc_getgid m_pm_lc_getgid
;
1946 mess_pm_lc_getpid m_pm_lc_getpid
;
1947 mess_pm_lc_getuid m_pm_lc_getuid
;
1948 mess_pm_lc_ptrace m_pm_lc_ptrace
;
1949 mess_pm_lc_sigset m_pm_lc_sigset
;
1950 mess_pm_lc_time m_pm_lc_time
;
1951 mess_pm_lc_waitpid m_pm_lc_waitpid
;
1953 mess_pm_lsys_getepinfo m_pm_lsys_getepinfo
;
1954 mess_pm_lsys_getprocnr m_pm_lsys_getprocnr
;
1956 mess_pm_sched_scheduling_set_nice m_pm_sched_scheduling_set_nice
;
1958 mess_readclock_lc_rtcdev m_readclock_lc_rtcdev
;
1960 mess_rs_pm_exec_restart m_rs_pm_exec_restart
;
1961 mess_rs_pm_srv_kill m_rs_pm_srv_kill
;
1963 mess_sched_lsys_scheduling_start m_sched_lsys_scheduling_start
;
1965 mess_tty_lsys_fkey_ctl m_tty_lsys_fkey_ctl
;
1967 mess_vfs_fs_breadwrite m_vfs_fs_breadwrite
;
1968 mess_vfs_fs_chmod m_vfs_fs_chmod
;
1969 mess_vfs_fs_chown m_vfs_fs_chown
;
1970 mess_vfs_fs_create m_vfs_fs_create
;
1971 mess_vfs_fs_flush m_vfs_fs_flush
;
1972 mess_vfs_fs_ftrunc m_vfs_fs_ftrunc
;
1973 mess_vfs_fs_getdents m_vfs_fs_getdents
;
1974 mess_vfs_fs_inhibread m_vfs_fs_inhibread
;
1975 mess_vfs_fs_link m_vfs_fs_link
;
1976 mess_vfs_fs_lookup m_vfs_fs_lookup
;
1977 mess_vfs_fs_mkdir m_vfs_fs_mkdir
;
1978 mess_vfs_fs_mknod m_vfs_fs_mknod
;
1979 mess_vfs_fs_mountpoint m_vfs_fs_mountpoint
;
1980 mess_vfs_fs_newnode m_vfs_fs_newnode
;
1981 mess_vfs_fs_new_driver m_vfs_fs_new_driver
;
1982 mess_vfs_fs_putnode m_vfs_fs_putnode
;
1983 mess_vfs_fs_rdlink m_vfs_fs_rdlink
;
1984 mess_vfs_fs_readsuper m_vfs_fs_readsuper
;
1985 mess_vfs_fs_rename m_vfs_fs_rename
;
1986 mess_vfs_fs_readwrite m_vfs_fs_readwrite
;
1987 mess_vfs_fs_slink m_vfs_fs_slink
;
1988 mess_vfs_fs_stat m_vfs_fs_stat
;
1989 mess_vfs_fs_statvfs m_vfs_fs_statvfs
;
1990 mess_vfs_fs_unlink m_vfs_fs_unlink
;
1991 mess_vfs_fs_utime m_vfs_fs_utime
;
1993 mess_vfs_lc_lseek m_vfs_lc_lseek
;
1995 mess_lsys_vm_vmremap m_lsys_vm_vmremap
;
1996 mess_lsys_vm_getref m_lsys_vm_getref
;
1997 mess_lc_vm_getphys m_lc_vm_getphys
;
1998 mess_lc_vm_shm_unmap m_lc_vm_shm_unmap
;
1999 mess_lsys_vm_query_exit m_lsys_vm_query_exit
;
2000 mess_lsys_vm_info m_lsys_vm_info
;
2001 mess_lsys_vm_update m_lsys_vm_update
;
2002 mess_lsys_vm_watch_exit m_lsys_vm_watch_exit
;
2003 mess_lc_ipc_shmget m_lc_ipc_shmget
;
2005 mess_vfs_lchardriver_cancel m_vfs_lchardriver_cancel
;
2006 mess_vfs_lchardriver_openclose m_vfs_lchardriver_openclose
;
2007 mess_vfs_lchardriver_readwrite m_vfs_lchardriver_readwrite
;
2008 mess_vfs_lchardriver_select m_vfs_lchardriver_select
;
2010 mess_vfs_utimens m_vfs_utimens
;
2011 mess_vm_vfs_mmap m_vm_vfs_mmap
;
2013 mess_vmmcp_reply m_vmmcp_reply
;
2015 u8_t size
[56]; /* message payload may have 56 bytes at most */
2017 } message
__aligned(16);
2019 /* Ensure the complete union respects the IPC assumptions. */
2020 typedef int _ASSERT_message
[/* CONSTCOND */sizeof(message
) == 64 ? 1 : -1];
2022 /* The following defines provide names for useful members. */
2023 #define m1_i1 m_m1.m1i1
2024 #define m1_i2 m_m1.m1i2
2025 #define m1_i3 m_m1.m1i3
2026 #define m1_p1 m_m1.m1p1
2027 #define m1_p2 m_m1.m1p2
2028 #define m1_p3 m_m1.m1p3
2029 #define m1_p4 m_m1.m1p4
2030 #define m1_ull1 m_m1.m1ull1
2032 #define m2_ll1 m_m2.m2ll1
2033 #define m2_i1 m_m2.m2i1
2034 #define m2_i2 m_m2.m2i2
2035 #define m2_i3 m_m2.m2i3
2036 #define m2_l1 m_m2.m2l1
2037 #define m2_l2 m_m2.m2l2
2038 #define m2_p1 m_m2.m2p1
2039 #define m2_sigset m_m2.sigset
2041 #define m2_s1 m_m2.m2s1
2043 #define m3_i1 m_m3.m3i1
2044 #define m3_i2 m_m3.m3i2
2045 #define m3_p1 m_m3.m3p1
2046 #define m3_ca1 m_m3.m3ca1
2048 #define m4_ll1 m_m4.m4ll1
2049 #define m4_l1 m_m4.m4l1
2050 #define m4_l2 m_m4.m4l2
2051 #define m4_l3 m_m4.m4l3
2052 #define m4_l4 m_m4.m4l4
2053 #define m4_l5 m_m4.m4l5
2055 #define m5_s1 m_m5.m5s1
2056 #define m5_s2 m_m5.m5s2
2057 #define m5_i1 m_m5.m5i1
2058 #define m5_i2 m_m5.m5i2
2059 #define m5_l1 m_m5.m5l1
2060 #define m5_l2 m_m5.m5l2
2061 #define m5_l3 m_m5.m5l3
2063 #define m7_i1 m_m7.m7i1
2064 #define m7_i2 m_m7.m7i2
2065 #define m7_i3 m_m7.m7i3
2066 #define m7_i4 m_m7.m7i4
2067 #define m7_i5 m_m7.m7i5
2068 #define m7_p1 m_m7.m7p1
2069 #define m7_p2 m_m7.m7p2
2071 #define m8_i1 m_m8.m8i1
2072 #define m8_i2 m_m8.m8i2
2073 #define m8_p1 m_m8.m8p1
2074 #define m8_p2 m_m8.m8p2
2075 #define m8_p3 m_m8.m8p3
2076 #define m8_p4 m_m8.m8p4
2078 #define m9_l1 m_m9.m9l1
2079 #define m9_l2 m_m9.m9l2
2080 #define m9_l3 m_m9.m9l3
2081 #define m9_l4 m_m9.m9l4
2082 #define m9_l5 m_m9.m9l5
2083 #define m9_s1 m_m9.m9s1
2084 #define m9_s2 m_m9.m9s2
2085 #define m9_s3 m_m9.m9s3
2086 #define m9_s4 m_m9.m9s4
2087 #define m9_ull1 m_m9.m9ull1
2088 #define m9_ull2 m_m9.m9ull2
2090 #define m10_i1 m_m10.m10i1
2091 #define m10_i2 m_m10.m10i2
2092 #define m10_i3 m_m10.m10i3
2093 #define m10_i4 m_m10.m10i4
2094 #define m10_l1 m_m10.m10l1
2095 #define m10_l2 m_m10.m10l2
2096 #define m10_l3 m_m10.m10l3
2097 #define m10_ull1 m_m10.m10ull1
2099 #define m11_i1 m_m11.m11i1
2100 #define m11_s1 m_m11.m11s1
2101 #define m11_s2 m_m11.m11s2
2102 #define m11_s3 m_m11.m11s3
2103 #define m11_s4 m_m11.m11s4
2104 #define m11_p1 m_m11.m11p1
2105 #define m11_p2 m_m11.m11p2
2106 #define m11_p3 m_m11.m11p3
2107 #define m11_p4 m_m11.m11p4
2109 /*==========================================================================*
2110 * Minix run-time system (IPC). *
2111 *==========================================================================*/
2113 /* Datastructure for asynchronous sends */
2114 typedef struct asynmsg
2122 /* Defines for flags field */
2123 #define AMF_EMPTY 000 /* slot is not inuse */
2124 #define AMF_VALID 001 /* slot contains message */
2125 #define AMF_DONE 002 /* Kernel has processed the message. The
2126 * result is stored in 'result'
2128 #define AMF_NOTIFY 004 /* Send a notification when AMF_DONE is set */
2129 #define AMF_NOREPLY 010 /* Not a reply message for a SENDREC */
2130 #define AMF_NOTIFY_ERR 020 /* Send a notification when AMF_DONE is set and
2131 * delivery of the message failed */
2133 int _ipc_send_intr(endpoint_t dest
, message
*m_ptr
);
2134 int _ipc_receive_intr(endpoint_t src
, message
*m_ptr
, int *status_ptr
);
2135 int _ipc_sendrec_intr(endpoint_t src_dest
, message
*m_ptr
);
2136 int _ipc_sendnb_intr(endpoint_t dest
, message
*m_ptr
);
2137 int _ipc_notify_intr(endpoint_t dest
);
2138 int _ipc_senda_intr(asynmsg_t
*table
, size_t count
);
2140 int _do_kernel_call_intr(message
*m_ptr
);
2142 int get_minix_kerninfo(struct minix_kerninfo
**);
2144 /* Hide names to avoid name space pollution. */
2145 #define ipc_notify _ipc_notify
2146 #define ipc_sendrec _ipc_sendrec
2147 #define ipc_receive _ipc_receive
2148 #define ipc_receivenb _ipc_receivenb
2149 #define ipc_send _ipc_send
2150 #define ipc_sendnb _ipc_sendnb
2151 #define ipc_senda _ipc_senda
2153 #define do_kernel_call _do_kernel_call
2155 struct minix_ipcvecs
{
2156 int (*send
)(endpoint_t dest
, message
*m_ptr
);
2157 int (*receive
)(endpoint_t src
, message
*m_ptr
, int *st
);
2158 int (*sendrec
)(endpoint_t src_dest
, message
*m_ptr
);
2159 int (*sendnb
)(endpoint_t dest
, message
*m_ptr
);
2160 int (*notify
)(endpoint_t dest
);
2161 int (*do_kernel_call
)(message
*m_ptr
);
2162 int (*senda
)(asynmsg_t
*table
, size_t count
);
2165 /* kernel-set IPC vectors retrieved by a constructor in libc/sys-minix/init.c */
2166 extern struct minix_ipcvecs _minix_ipcvecs
;
2168 static inline int _ipc_send(endpoint_t dest
, message
*m_ptr
)
2170 return _minix_ipcvecs
.send(dest
, m_ptr
);
2173 static inline int _ipc_receive(endpoint_t src
, message
*m_ptr
, int *st
)
2175 return _minix_ipcvecs
.receive(src
, m_ptr
, st
);
2178 static inline int _ipc_sendrec(endpoint_t src_dest
, message
*m_ptr
)
2180 return _minix_ipcvecs
.sendrec(src_dest
, m_ptr
);
2183 static inline int _ipc_sendnb(endpoint_t dest
, message
*m_ptr
)
2185 return _minix_ipcvecs
.sendnb(dest
, m_ptr
);
2188 static inline int _ipc_notify(endpoint_t dest
)
2190 return _minix_ipcvecs
.notify(dest
);
2193 static inline int _do_kernel_call(message
*m_ptr
)
2195 return _minix_ipcvecs
.do_kernel_call(m_ptr
);
2198 static inline int _ipc_senda(asynmsg_t
*table
, size_t count
)
2200 return _minix_ipcvecs
.senda(table
, count
);