blob: 050e56a6dfae25dc1e3f191425a55e6388d6ccd4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
|
#ifdef ARCH_ARM
arch arm11
#else
arch ia32
#endif
objects {
my_ep = ep /* A synchronous endpoint */
/* Two thread control blocks */
tcb1 = tcb
tcb2 = tcb
/* Four frames of physical memory */
frame1 = frame (4k)
frame2 = frame (4k)
frame3 = frame (4k)
frame4 = frame (4k)
/* Two page tables */
pt1 = pt
pt2 = pt
/* Two page directories */
pd1 = pd
pd2 = pd
/* Two capability nodes */
cnode1 = cnode (2 bits)
cnode2 = cnode (3 bits)
}
caps {
cnode1 {
0x1: frame1 (RW) /* read/write */
0x2: my_ep (R) /* read-only */
}
cnode2 {
0x1: my_ep (W) /* write-only */
}
tcb1 {
vspace: pd1
ipc_buffer_slot: frame1
cspace: cnode1
}
pd1 {
0x10: pt1
}
pt1 {
0x8: frame1 (RW)
0x9: frame2 (R)
}
tcb2 {
vspace: pd2
ipc_buffer_slot: frame3
cspace: cnode2
}
pd2 {
0x10: pt2
}
pt2 {
0x10: frame3 (RW)
0x12: frame4 (R)
}
}
|