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 /* _send(dest, ptr) */
13 mov r3, #IPCVEC /* r3 determines the SVC type */
14 svc #0 /* trap to kernel */
21 push {r2} /* save status ptr */
22 mov r2, r1 /* r2 = msg ptr */
23 mov r1, r0 /* r1 = src_dest */
24 mov r0, #RECEIVE /* _receive(src, ptr) */
25 mov r3, #IPCVEC /* r3 determines the SVC type */
26 svc #0 /* trap to kernel */
27 pop {r2} /* restore status ptr */
35 mov r2, r1 /* r2 = msg ptr */
36 mov r1, r0 /* r1 = src_dest */
37 mov r0, #SENDREC /* _sendrec(srcdest, ptr) */
38 mov r3, #IPCVEC /* r3 determines the SVC type */
39 svc #0 /* trap to kernel */
43 ENTRY(_minix_kernel_info_struct)
49 mov r0, #MINIX_KERNINFO /* kerninfo() */
50 mov r3, #IPCVEC /* r3 determines the SVC type */
51 svc #0 /* trap to kernel */
52 pop {r0} /* r0 = return struct ptr */
61 mov r1, r0 /* r1 = src_dest */
62 mov r0, #NOTIFY /* _notify(srcdst) */
63 mov r3, #IPCVEC /* r3 determines the SVC type */
64 svc #0 /* trap to kernel */
71 mov r2, r1 /* r2 = msg ptr */
72 mov r1, r0 /* r1 = src_dest */
73 mov r0, #SENDNB /* _sendnb(dest, ptr) */
74 mov r3, #IPCVEC /* r3 determines the SVC type */
75 svc #0 /* trap to kernel */
80 ENTRY(_do_kernel_call_orig)
81 /* r0 already holds msg ptr */
82 mov r3, #KERVEC /* r3 determines the SVC type */
83 svc #0 /* trap to kernel */