1 #include <minix/ipcconst.h>
2 #include <machine/asm.h>
4 /**========================================================================* */
5 /* IPC assembly routines * */
6 /**========================================================================* */
10 mov r2, r1 /* r2 = msg ptr */
11 mov r1, r0 /* r1 = src_dest */
12 mov r0, #SEND /* _ipc_send(dest, ptr) */
13 mov r3, #IPCVEC_INTR /* r3 determines the SVC type */
14 svc #0 /* trap to kernel */
18 ENTRY(_ipc_receive_intr)
21 push {r2} /* save status ptr */
22 mov r2, r1 /* r2 = msg ptr */
23 mov r1, r0 /* r1 = src_dest */
24 mov r0, #RECEIVE /* _ipc_receive(src, ptr) */
25 mov r3, #IPCVEC_INTR /* r3 determines the SVC type */
26 svc #0 /* trap to kernel */
27 pop {r2} /* restore status ptr */
32 ENTRY(_ipc_sendrec_intr)
35 mov r2, r1 /* r2 = msg ptr */
36 mov r1, r0 /* r1 = src_dest */
37 mov r0, #SENDREC /* _ipc_sendrec(srcdest, ptr) */
38 mov r3, #IPCVEC_INTR /* r3 determines the SVC type */
39 svc #0 /* trap to kernel */
43 ENTRY(_ipc_notify_intr)
46 mov r1, r0 /* r1 = src_dest */
47 mov r0, #NOTIFY /* _ipc_notify(srcdst) */
48 mov r3, #IPCVEC_INTR /* r3 determines the SVC type */
49 svc #0 /* trap to kernel */
53 ENTRY(_ipc_sendnb_intr)
56 mov r2, r1 /* r2 = msg ptr */
57 mov r1, r0 /* r1 = src_dest */
58 mov r0, #SENDNB /* _ipc_sendnb(dest, ptr) */
59 mov r3, #IPCVEC_INTR /* r3 determines the SVC type */
60 svc #0 /* trap to kernel */
64 ENTRY(_ipc_senda_intr)
67 mov r2, r0 /* r2 = table */
68 /* r1 already holds count */
69 mov r0, #SENDA /* _ipc_senda(table, count) */
70 mov r3, #IPCVEC_INTR /* r3 determines the SVC type */
71 svc #0 /* trap to kernel */