mirror of
https://github.com/genodelabs/genode.git
synced 2024-12-29 18:18:54 +00:00
4d442bca30
This patch reduces the number of exception types by facilitating globally defined exceptions for common usage patterns shared by most services. In particular, RPC functions that demand a session-resource upgrade not longer reflect this condition via a session-specific exception but via the 'Out_of_ram' or 'Out_of_caps' types. Furthermore, the 'Parent::Service_denied', 'Parent::Unavailable', 'Root::Invalid_args', 'Root::Unavailable', 'Service::Invalid_args', 'Service::Unavailable', and 'Local_service::Factory::Denied' types have been replaced by the single 'Service_denied' exception type defined in 'session/session.h'. This consolidation eases the error handling (there are fewer exceptions to handle), alleviates the need to convert exceptions along the session-creation call chain, and avoids possible aliasing problems (catching the wrong type with the same name but living in a different scope). |
||
---|---|---|
.. | ||
main.cc | ||
README | ||
target.mk |
This component merges the input events of multiple sources. Example configuration: <start name="input_merger"> <resource name="RAM" quantum="1M" /> <provides> <service name="Input" /> </provides> <config> <input label="ps2" /> <input label="usb_hid" /> </config> <route> <service name="Input" label="ps2"> <child name="ps2_drv"/> </service> <service name="Input" label="usb_hid"> <child name="usb_drv" /> </service> <any-service> <parent /> <any-child /> </any-service> </route> </start> For each 'input' config node, the component opens an 'Input' session with the configured label. This label is then evaluated by 'init' to route the session request to a specific input source component.