summaryrefslogtreecommitdiff
path: root/tests/examplefiles/capdl_example.cdl
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)
  }
}