293
|
1
|
|
2 module ipc;
|
|
3
|
313
|
4 type struct {
|
|
5 int sender;
|
315
|
6 int cmd;
|
|
7 int data1;
|
|
8 int data2;
|
|
9 int data3;
|
|
10 int data4;
|
313
|
11 } Msg;
|
|
12
|
|
13 const int MSG_SEND=1;
|
|
14 const int MSG_RECV=2;
|
|
15
|
|
16 function int kernelTrap(int msgId, int a, int b)
|
|
17 {
|
|
18 // TODO: make this in assembler?
|
|
19 }
|
|
20
|
311
|
21 function void SendMessage(Msg *msg)
|
293
|
22 {
|
402
|
23 var int x;
|
|
24 x=kernelTrap(MSG_SEND, 1, 0)
|
293
|
25 }
|
|
26
|
315
|
27 function void receive_message(Msg *msg)
|
293
|
28 {
|
402
|
29 var int x;
|
|
30 x=kernelTrap(MSG_RECV, 2, 0);
|
293
|
31 }
|
|
32
|