4 Commits

Author SHA1 Message Date
  Emery Hemingway 2f519ba55b input_filter: patch for survivibility 5 months ago
  Emery Hemingway 676720a765 test: update to use new routes configuration method 5 months ago
  Emery Hemingway 4b73b6c497 init/sandbox: patch in <routes> support 5 months ago
  Emery Hemingway 8a6e388a27 Update README 5 months ago

+ 1
- 1
README.md View File

@@ -1,5 +1,5 @@
1 1
 ```
2
-       ______                     __           __
2
+       ______                     __           __
3 3
       / ____/__  ____  ____  ____/ /__  ____  / / ____ ______
4 4
      / / __/ _ \/ __ \/ __ \/ __  / _ \/ __ \/ / / __ `/ ___/
5 5
     / /_/ /  __/ / / / /_/ / /_/ /  __/ /_/ / , \ /_/ (__  )

+ 4
- 20
compositions/pc-drivers.dhall View File

@@ -25,26 +25,16 @@ let relabel =
25 25
 
26 26
 let drivers =
27 27
       Init::{
28
+      , routes = [ ServiceRoute.parent "Timer" ]
28 29
       , services =
29 30
         [ ServiceRoute.child "Framebuffer" "dynamic"
30 31
         , ServiceRoute.child "Block" "dynamic"
31 32
         , ServiceRoute.child "Usb" "usb_drv"
32 33
         , ServiceRoute.child "Platform" "platform_drv"
33 34
         , ServiceRoute.child "Input" "input_filter"
34
-        , ServiceRoute.child "Rtc" "rtc"
35 35
         ]
36 36
       , children = toMap
37
-          { rtc =
38
-              Child.flat
39
-                Child.Attributes::{
40
-                , binary = "rtc_drv"
41
-                , provides = [ "Rtc" ]
42
-                , routes =
43
-                  [ ServiceRoute.parent "IO_PORT"
44
-                  , ServiceRoute.parent "IO_MEM"
45
-                  ]
46
-                }
47
-          , rom_reporter =
37
+          { rom_reporter =
48 38
               Child.flat
49 39
                 Child.Attributes::{
50 40
                 , binary = "rom_reporter"
@@ -107,7 +97,6 @@ let drivers =
107 97
                   [ ServiceRoute.parent "IRQ"
108 98
                   , ServiceRoute.parent "IO_MEM"
109 99
                   , ServiceRoute.parent "IO_PORT"
110
-                  , ServiceRoute.parent "Timer"
111 100
                   , ServiceRoute.parentLabel
112 101
                       "ROM"
113 102
                       (Some "system")
@@ -172,7 +161,6 @@ let drivers =
172 161
                       "Report"
173 162
                       (Some "config")
174 163
                       (Some "usb_active_config")
175
-                  , ServiceRoute.parent "Timer"
176 164
                   ]
177 165
                 }
178 166
           , ps2_drv =
@@ -180,10 +168,7 @@ let drivers =
180 168
                 Child.Attributes::{
181 169
                 , binary = "ps2_drv"
182 170
                 , provides = [ "Input" ]
183
-                , routes =
184
-                  [ ServiceRoute.child "Platform" "platform_drv"
185
-                  , ServiceRoute.parent "Timer"
186
-                  ]
171
+                , routes = [ ServiceRoute.child "Platform" "platform_drv" ]
187 172
                 }
188 173
           , input_filter =
189 174
               Child.flat
@@ -193,8 +178,7 @@ let drivers =
193 178
                 , resources = Resources::{ ram = Genode.units.MiB 2 }
194 179
                 , provides = [ "Input" ]
195 180
                 , routes =
196
-                  [ ServiceRoute.parent "Timer"
197
-                  , ServiceRoute.parentLabel
181
+                  [ ServiceRoute.parentLabel
198 182
                       "ROM"
199 183
                       (Some "config")
200 184
                       (Some "input_filter.config")

+ 2
- 2
packages/dhall/genode.nix View File

@@ -8,8 +8,8 @@ dhallPackages.buildDhallPackage {
8 8
   code = let
9 9
     src = fetchgit {
10 10
       url = "https://git.sr.ht/~ehmry/dhall-genode";
11
-      rev = "270a6050714663e0edd0fc51b3b305c074661d3c";
12
-      sha256 = "Vw9hd1DP8zauvnl/fRpZfRzrCwnxtIix88r5OBFO+y4=";
11
+      rev = "8c547f017cba7780ce4334c0b4702f6c441b8819";
12
+      sha256 = "1adpyigpha9iqmpdvrz8pl9sbgc65vdm9h37khm13w2kixwlkqq4";
13 13
     };
14 14
   in src + "/package.dhall";
15 15
 

+ 24
- 0
packages/genodelabs/input_filter.patch View File

@@ -0,0 +1,24 @@
1
+commit ae03115e473fd7a16e172ccaa91d1ddc2cdc7d29
2
+Author: Emery Hemingway <ehmry@posteo.net>
3
+Date:   Wed Apr 29 03:34:15 2020 +0530
4
+
5
+    input_filter: survive unrecognized keys
6
+
7
+diff --git a/repos/os/src/server/input_filter/chargen_source.h b/repos/os/src/server/input_filter/chargen_source.h
8
+index 06fc657c25..3525fd6f34 100644
9
+--- a/repos/os/src/server/input_filter/chargen_source.h
10
++++ b/repos/os/src/server/input_filter/chargen_source.h
11
+@@ -684,9 +684,10 @@ class Input_filter::Chargen_source : public Source, Source::Sink
12
+ 			node.for_each_sub_node("key", [&] (Xml_node key_node) {
13
+ 
14
+ 				Key_name const name = key_node.attribute_value("name", Key_name());
15
+-				Input::Keycode const key = key_code_by_name(name);
16
+-
17
+-				new (_alloc) Modifier(_modifiers, id, key);
18
++				try {
19
++					Input::Keycode const key = key_code_by_name(name);
20
++					new (_alloc) Modifier(_modifiers, id, key);
21
++				} catch (Unknown_key) { warning("unrecognized key name ", name); }
22
+ 			});
23
+ 
24
+ 			node.for_each_sub_node("rom", [&] (Xml_node rom_node) {

+ 172
- 0
packages/genodelabs/sandbox.patch View File

@@ -54,3 +54,175 @@ index 5361665eac..fa09cca31a 100644
54 54
  				if (target.has_type("parent")) {
55 55
  
56 56
  					try {
57
+commit ce74d9bb7740f14b362e72adcf8ac42e36693468
58
+Author: Emery Hemingway <ehmry@posteo.net>
59
+Date:   Sat Apr 25 17:10:03 2020 +0530
60
+
61
+    init/sandbox: <routes> support
62
+    
63
+    Apply routing rules to a child from a <routes> node at the top-level of
64
+    a sandbox config, unless the corresponding start node has as <route>
65
+    node. If neither are present routes are taken from <default-route> as a
66
+    fallback.
67
+    
68
+    Unlike the <route> and <default-route> the <routes> rules are checked by
69
+    labels prefixed by child name, so <routes> may contain child-specific
70
+    rules.
71
+
72
+diff --git a/repos/os/src/lib/sandbox/child.cc b/repos/os/src/lib/sandbox/child.cc
73
+index fa09cca31a..85389474ef 100644
74
+--- a/repos/os/src/lib/sandbox/child.cc
75
++++ b/repos/os/src/lib/sandbox/child.cc
76
+@@ -523,16 +523,21 @@ Sandbox::Child::resolve_session_request(Service::Name const &service_name,
77
+ 
78
+ 	try {
79
+ 		Xml_node route_node = _default_route_accessor.default_route();
80
++		route_node = _routes_accessor.routes(route_node);
81
+ 		try {
82
+ 			route_node = _start_node->xml().sub_node("route"); }
83
+ 		catch (...) { }
84
++
85
+ 		Xml_node service_node = route_node.sub_node();
86
+ 
87
++		/* <routes> is processed with the "«child» -> " prefix */
88
++		bool skip_prefix = route_node.type() != "routes";
89
++
90
+ 		for (; ; service_node = service_node.next()) {
91
+ 
92
+ 			bool service_wildcard = service_node.has_type("any-service");
93
+ 
94
+-			if (!service_node_matches(service_node, label, name(), service_name))
95
++			if (!service_node_matches(service_node, label, name(), service_name, skip_prefix))
96
+ 				continue;
97
+ 
98
+ 			Xml_node target = service_node.sub_node();
99
+@@ -736,6 +741,7 @@ Sandbox::Child::Child(Env                      &env,
100
+                       Report_update_trigger    &report_update_trigger,
101
+                       Xml_node                  start_node,
102
+                       Default_route_accessor   &default_route_accessor,
103
++                      Routes_accessor          &routes_accessor,
104
+                       Default_caps_accessor    &default_caps_accessor,
105
+                       Name_registry            &name_registry,
106
+                       Ram_quota                 ram_limit,
107
+@@ -753,6 +759,7 @@ Sandbox::Child::Child(Env                      &env,
108
+ 	_list_element(this),
109
+ 	_start_node(_alloc, start_node),
110
+ 	_default_route_accessor(default_route_accessor),
111
++	_routes_accessor(routes_accessor),
112
+ 	_default_caps_accessor(default_caps_accessor),
113
+ 	_ram_limit_accessor(ram_limit_accessor),
114
+ 	_cap_limit_accessor(cap_limit_accessor),
115
+diff --git a/repos/os/src/lib/sandbox/child.h b/repos/os/src/lib/sandbox/child.h
116
+index 4dd2803417..8e84e9bf75 100644
117
+--- a/repos/os/src/lib/sandbox/child.h
118
++++ b/repos/os/src/lib/sandbox/child.h
119
+@@ -52,6 +52,14 @@ class Sandbox::Child : Child_policy, Routed_service::Wakeup
120
+ 		struct Default_route_accessor : Interface { virtual Xml_node default_route() = 0; };
121
+ 		struct Default_caps_accessor  : Interface { virtual Cap_quota default_caps() = 0; };
122
+ 
123
++		struct Routes_accessor : Interface
124
++		{
125
++			virtual Xml_node routes(Xml_node _default)
126
++			{
127
++				return _default;
128
++			}
129
++		};
130
++
131
+ 		template <typename QUOTA>
132
+ 		struct Resource_limit_accessor : Interface
133
+ 		{
134
+@@ -98,6 +106,7 @@ class Sandbox::Child : Child_policy, Routed_service::Wakeup
135
+ 		bool const _use_ld = _start_node->xml().attribute_value("ld", true);
136
+ 
137
+ 		Default_route_accessor &_default_route_accessor;
138
++		Routes_accessor        &_routes_accessor;
139
+ 		Default_caps_accessor  &_default_caps_accessor;
140
+ 		Ram_limit_accessor     &_ram_limit_accessor;
141
+ 		Cap_limit_accessor     &_cap_limit_accessor;
142
+@@ -475,6 +484,7 @@ class Sandbox::Child : Child_policy, Routed_service::Wakeup
143
+ 		      Report_update_trigger    &report_update_trigger,
144
+ 		      Xml_node                  start_node,
145
+ 		      Default_route_accessor   &default_route_accessor,
146
++		      Routes_accessor          &route_accessor,
147
+ 		      Default_caps_accessor    &default_caps_accessor,
148
+ 		      Name_registry            &name_registry,
149
+ 		      Ram_quota                 ram_limit,
150
+diff --git a/repos/os/src/lib/sandbox/library.cc b/repos/os/src/lib/sandbox/library.cc
151
+index 28b60c491f..30d0f2dfc1 100644
152
+--- a/repos/os/src/lib/sandbox/library.cc
153
++++ b/repos/os/src/lib/sandbox/library.cc
154
+@@ -23,6 +23,7 @@
155
+ 
156
+ struct Genode::Sandbox::Library : ::Sandbox::State_reporter::Producer,
157
+                                   ::Sandbox::Child::Default_route_accessor,
158
++                                  ::Sandbox::Child::Routes_accessor,
159
+                                   ::Sandbox::Child::Default_caps_accessor,
160
+                                   ::Sandbox::Child::Ram_limit_accessor,
161
+                                   ::Sandbox::Child::Cap_limit_accessor
162
+@@ -52,6 +53,8 @@ struct Genode::Sandbox::Library : ::Sandbox::State_reporter::Producer,
163
+ 
164
+ 	Constructible<Buffered_xml> _default_route { };
165
+ 
166
++	Constructible<Buffered_xml> _routes { };
167
++
168
+ 	Cap_quota _default_caps { 0 };
169
+ 
170
+ 	unsigned _child_cnt = 0;
171
+@@ -140,6 +143,12 @@ struct Genode::Sandbox::Library : ::Sandbox::State_reporter::Producer,
172
+ 		                                    : Xml_node("<empty/>");
173
+ 	}
174
+ 
175
++	/**
176
++	 * Routes_accessor interface
177
++	 */
178
++	Xml_node routes(Xml_node _default) override {
179
++		return _routes.constructed() ? _routes->xml() : _default; }
180
++
181
+ 	/**
182
+ 	 * Default_caps_accessor interface
183
+ 	 */
184
+@@ -314,6 +323,9 @@ void Genode::Sandbox::Library::apply_config(Xml_node const &config)
185
+ 		_default_route.construct(_heap, config.sub_node("default-route")); }
186
+ 	catch (...) { }
187
+ 
188
++	try { _routes.construct(_heap, config.sub_node("routes")); }
189
++	catch (...) { }
190
++
191
+ 	_default_caps = Cap_quota { 0 };
192
+ 	try {
193
+ 		_default_caps = Cap_quota { config.sub_node("default")
194
+@@ -404,7 +416,7 @@ void Genode::Sandbox::Library::apply_config(Xml_node const &config)
195
+ 				Child &child = *new (_heap)
196
+ 					Child(_env, _heap, *_verbose,
197
+ 					      Child::Id { ++_child_cnt }, _state_reporter,
198
+-					      start_node, *this, *this, _children,
199
++					      start_node, *this, *this, *this, _children,
200
+ 					      Ram_quota { avail_ram.value  - used_ram.value },
201
+ 					      Cap_quota { avail_caps.value - used_caps.value },
202
+ 					       *this, *this, prio_levels, affinity_space,
203
+diff --git a/repos/os/src/lib/sandbox/utils.h b/repos/os/src/lib/sandbox/utils.h
204
+index 7afcaebf00..36aab737f2 100644
205
+--- a/repos/os/src/lib/sandbox/utils.h
206
++++ b/repos/os/src/lib/sandbox/utils.h
207
+@@ -59,7 +59,8 @@ namespace Sandbox {
208
+ 	inline bool service_node_matches(Xml_node           const  service_node,
209
+ 	                                 Session_label      const &label,
210
+ 	                                 Child_policy::Name const &child_name,
211
+-	                                 Service::Name      const &service_name)
212
++	                                 Service::Name      const &service_name,
213
++	                                 bool               skip_child_prefix = true)
214
+ 	{
215
+ 		bool const service_matches =
216
+ 			service_node.has_type("any-service") ||
217
+@@ -98,8 +99,9 @@ namespace Sandbox {
218
+ 		if (!route_depends_on_child_provided_label)
219
+ 			return true;
220
+ 
221
+-		char const * const scoped_label = skip_label_prefix(
222
+-			child_name.string(), label.string());
223
++		char const * const scoped_label = skip_child_prefix
224
++			? skip_label_prefix(child_name.string(), label.string())
225
++			: label.string();
226
+ 
227
+ 		if (!scoped_label)
228
+ 			return false;

+ 2
- 0
packages/genodelabs/targets.nix View File

@@ -5,6 +5,8 @@ with ports; {
5 5
 
6 6
   init.patches = [ ./sandbox.patch ];
7 7
 
8
+  input_filter.patches = [ ./input_filter.patch ];
9
+
8 10
   intel_fb_drv = {
9 11
     BOARD = "pc";
10 12
     portInputs = [ dde_linux ];

+ 4
- 4
tests/block_router.dhall View File

@@ -19,16 +19,16 @@ let ServiceRoute = Init.ServiceRoute
19 19
 let init =
20 20
       Init::{
21 21
       , verbose = True
22
+      , routes =
23
+        [ ServiceRoute.parent "Timer"
24
+        , ServiceRoute.child "Block" "block_router"
25
+        ]
22 26
       , children =
23 27
           let blockTest =
24 28
                 Child.flat
25 29
                   Child.Attributes::{
26 30
                   , binary = "test-block-client"
27 31
                   , resources = Resources::{ ram = Genode.units.MiB 5 }
28
-                  , routes =
29
-                    [ ServiceRoute.parent "Timer"
30
-                    , ServiceRoute.child "Block" "block_router"
31
-                    ]
32 32
                   }
33 33
 
34 34
           in  toMap

+ 1
- 2
tests/default.nix View File

@@ -69,8 +69,7 @@ listToAttrs ((concatLists (map (testsToList) [ linux hw nova ]))) // {
69 69
       }) novaTests);
70 70
 
71 71
   in buildPackages.stdenv.mkDerivation {
72
-    pname = "sotest";
73
-    version = toString self.revCount;
72
+    name = "sotest";
74 73
     buildCommand = ''
75 74
       mkdir zip; cd zip
76 75
       cp "${testPkgs.bender}" bender

+ 4
- 3
tests/driver_manager.dhall View File

@@ -29,6 +29,7 @@ let label = λ(_ : Text) → { local = _, route = _ }
29 29
 let init =
30 30
       Init::{
31 31
       , verbose = True
32
+      , routes = [ ServiceRoute.parent "Timer" ]
32 33
       , children = toMap
33 34
           { drivers =
34 35
               Init.toChild
@@ -44,10 +45,10 @@ let init =
44 45
                   , childRomRoute "dynamic_rom" "numlock"
45 46
                   , childRomRoute "dynamic_rom" "system"
46 47
                   , ServiceRoute.child "Report" "_report_rom"
48
+                  , ServiceRoute.parent "IRQ"
49
+                  , ServiceRoute.parent "IO_MEM"
50
+                  , ServiceRoute.parent "IO_PORT"
47 51
                   , ServiceRoute.parent "Timer"
48
-                  , Genode.Init.ServiceRoute.parent "IRQ"
49
-                  , Genode.Init.ServiceRoute.parent "IO_MEM"
50
-                  , Genode.Init.ServiceRoute.parent "IO_PORT"
51 52
                   ]
52 53
                 }
53 54
           , dynamic_rom =

+ 0
- 1
tests/log.dhall View File

@@ -17,7 +17,6 @@ in  Test::{
17 17
                 , caps = 500
18 18
                 , ram = Genode.units.MiB 10
19 19
                 }
20
-              , routes = [ Genode.Init.ServiceRoute.parent "Timer" ]
21 20
               }
22 21
         }
23 22
     }

+ 0
- 1
tests/noux.dhall View File

@@ -17,7 +17,6 @@ in  Test::{
17 17
                 , caps = 500
18 18
                 , ram = Genode.units.MiB 10
19 19
                 }
20
-              , routes = [ Genode.Init.ServiceRoute.parent "Timer" ]
21 20
               , config = Genode.Init.Config::{
22 21
                 , attributes = toMap
23 22
                     { stdin = "/script"

+ 4
- 8
tests/solo5/net.dhall View File

@@ -12,6 +12,10 @@ let ServiceRoute = Init.ServiceRoute
12 12
 
13 13
 let init =
14 14
       Init::{
15
+      , routes =
16
+        [ Genode.Init.ServiceRoute.parent "Timer"
17
+        , Genode.Init.ServiceRoute.child "Nic" "bridge"
18
+        ]
15 19
       , children = toMap
16 20
           { nic =
17 21
               Child.flat
@@ -42,10 +46,6 @@ let init =
42 46
                 Child.Attributes::{
43 47
                 , binary = "solo5-test_net"
44 48
                 , resources = Res::{ caps = 256, ram = Genode.units.MiB 3 }
45
-                , routes =
46
-                  [ ServiceRoute.parent "Timer"
47
-                  , ServiceRoute.child "Nic" "bridge"
48
-                  ]
49 49
                 , config = Init.Config::{
50 50
                   , content =
51 51
                     [ Genode.Prelude.XML.text "<cmdline>limit</cmdline>" ]
@@ -57,10 +57,6 @@ let init =
57 57
                 , binary = "ping"
58 58
                 , exitPropagate = True
59 59
                 , resources = Res::{ caps = 128, ram = Genode.units.MiB 6 }
60
-                , routes =
61
-                  [ ServiceRoute.parent "Timer"
62
-                  , ServiceRoute.child "Nic" "bridge"
63
-                  ]
64 60
                 , config = Init.Config::{
65 61
                   , attributes = toMap
66 62
                       { interface = "10.0.0.72/24"

+ 4
- 8
tests/solo5/net_2if.dhall View File

@@ -10,6 +10,10 @@ let Res = Init.Resources
10 10
 
11 11
 let init =
12 12
       Init::{
13
+      , routes =
14
+        [ Genode.Init.ServiceRoute.parent "Timer"
15
+        , Genode.Init.ServiceRoute.child "Nic" "bridge"
16
+        ]
13 17
       , children = toMap
14 18
           { nic =
15 19
               Child.flat
@@ -40,10 +44,6 @@ let init =
40 44
                 Child.Attributes::{
41 45
                 , binary = "solo5-test_net_2if"
42 46
                 , resources = Res::{ caps = 256, ram = Genode.units.MiB 5 }
43
-                , routes =
44
-                  [ Genode.Init.ServiceRoute.parent "Timer"
45
-                  , Genode.Init.ServiceRoute.child "Nic" "bridge"
46
-                  ]
47 47
                 , config = Init.Config::{
48 48
                   , content =
49 49
                     [ Genode.Prelude.XML.text
@@ -59,10 +59,6 @@ let init =
59 59
                 , binary = "sequence"
60 60
                 , exitPropagate = True
61 61
                 , resources = Res::{ caps = 256, ram = Genode.units.MiB 8 }
62
-                , routes =
63
-                  [ Genode.Init.ServiceRoute.parent "Timer"
64
-                  , Genode.Init.ServiceRoute.child "Nic" "bridge"
65
-                  ]
66 62
                 , config = Init.Config::{
67 63
                   , content =
68 64
                     [ Genode.Prelude.XML.text

+ 0
- 1
tests/solo5/solo5.dhall View File

@@ -27,7 +27,6 @@ let toSimple =
27 27
                   }
28 28
               ]
29 29
             }
30
-          , routes = [ Init.ServiceRoute.parent "Timer" ]
31 30
           }
32 31
 
33 32
 let tests

+ 8
- 30
tests/solo5/time.dhall View File

@@ -6,34 +6,12 @@ let Init = Genode.Init
6 6
 
7 7
 let Child = Init.Child
8 8
 
9
-let init =
10
-      Init::{
11
-      , children = toMap
12
-          { solo5 =
13
-              Child.flat
14
-                Child.Attributes::{
15
-                , binary = "solo5-test_time"
16
-                , exitPropagate = True
17
-                , resources = Init.Resources::{
18
-                  , caps = 256
19
-                  , ram = Genode.units.MiB 3
20
-                  }
21
-                , routes =
22
-                  [ Init.ServiceRoute.parent "Timer"
23
-                  , Init.ServiceRoute.child "Rtc" "rtc_drv"
24
-                  ]
25
-                }
26
-          , rtc_drv =
27
-              Child.flat
28
-                Child.Attributes::{
29
-                , binary = "rtc_drv"
30
-                , exitPropagate = True
31
-                , provides = [ "Rtc" ]
32
-                , routes = [ Init.ServiceRoute.parent "IO_PORT" ]
33
-                }
34
-          }
35
-      }
9
+let solo5 =
10
+      Child.flat
11
+        Child.Attributes::{
12
+        , binary = "solo5-test_time"
13
+        , exitPropagate = True
14
+        , resources = Init.Resources::{ caps = 256, ram = Genode.units.MiB 3 }
15
+        }
36 16
 
37
-in  Init.toChild
38
-      init
39
-      Init.Attributes::{ routes = [ Init.ServiceRoute.parent "IO_PORT" ] }
17
+in  solo5

+ 0
- 1
tests/test.dhall View File

@@ -26,7 +26,6 @@ in  { Genode = Genode
26 26
                     , Init.ServiceRoute.parent "IO_PORT"
27 27
                     , Init.ServiceRoute.parent "IRQ"
28 28
                     , Init.ServiceRoute.parent "VM"
29
-                    , Init.ServiceRoute.child "Timer" "timer"
30 29
                     ]
31 30
                   }
32 31
             }

+ 1
- 4
tests/vmm_x86.dhall View File

@@ -16,10 +16,7 @@ let vmm =
16 16
           , caps = 2048
17 17
           , ram = Genode.units.MiB 256
18 18
           }
19
-        , routes =
20
-          [ Genode.Init.ServiceRoute.parent "Timer"
21
-          , Genode.Init.ServiceRoute.parent "VM"
22
-          ]
19
+        , routes = [ Genode.Init.ServiceRoute.parent "VM" ]
23 20
         }
24 21
 
25 22
 in  Test::{ children = toMap { vmm = vmm } }

+ 6
- 13
tests/x86.dhall View File

@@ -23,22 +23,17 @@ let signal =
23 23
         , exitPropagate = True
24 24
         , priority = 5
25 25
         , resources = Init.Resources::{ caps = 500, ram = Genode.units.MiB 10 }
26
-        , routes = [ Init.ServiceRoute.parent "Timer" ]
27 26
         }
28 27
 
29
-let rtc =
30
-      Child.flat
31
-        Child.Attributes::{
32
-        , binary = "test-rtc"
33
-        , routes =
34
-          [ Genode.Init.ServiceRoute.parent "Timer"
35
-          , Genode.Init.ServiceRoute.parent "Rtc"
36
-          ]
37
-        }
28
+let rtc = Child.flat Child.Attributes::{ binary = "test-rtc" }
38 29
 
39 30
 let pciInit =
40 31
       Init::{
41 32
       , verbose = True
33
+      , routes =
34
+        [ ServiceRoute.parent "Timer"
35
+        , ServiceRoute.child "Platform" "platform_drv"
36
+        ]
42 37
       , children = toMap
43 38
           { test-pci =
44 39
               Child.flat
@@ -46,7 +41,6 @@ let pciInit =
46 41
                 , binary = "test-pci"
47 42
                 , exitPropagate = True
48 43
                 , resources = Resources::{ ram = Genode.units.MiB 3 }
49
-                , routes = [ ServiceRoute.child "Platform" "platform_drv" ]
50 44
                 }
51 45
           , acpi_drv =
52 46
               Child.flat
@@ -77,8 +71,7 @@ let pciInit =
77 71
                 , reportRoms = [ label "acpi" ]
78 72
                 , provides = [ "Platform", "Acpi" ]
79 73
                 , routes =
80
-                  [ ServiceRoute.parent "Timer"
81
-                  , ServiceRoute.parent "IRQ"
74
+                  [ ServiceRoute.parent "IRQ"
82 75
                   , ServiceRoute.parent "IO_MEM"
83 76
                   , ServiceRoute.parent "IO_PORT"
84 77
                   ]

Loading…
Cancel
Save