mirror of
https://github.com/genodelabs/genode.git
synced 2025-01-19 19:26:29 +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 | ||
session.h | ||
target.mk |
LOG server that writes log messages onto a file system. Log files are creating in a directory tree formed from session labels. As an example the session label "init -> nitpicker" would create a log file at "init/nitpicker.log". The option to truncate files at the start of each LOG session is available through session policy, as well the option to merge the logs of any session matching a given policy. When a merged policy label contains a trailing "->", the log filename takes the name of the next label element. When a default-policy node specifies a merge, all sessions are merged into the file "/log". :Example configuration: ! <start name="log_file"> ! <resource name="RAM" quantum="1M"/> ! <provides><service name="LOG"/></provides> ! <config> ! <policy label_prefix="nic_drv" truncate="no"/> ! <policy label_prefix="cli_monitor -> " merge="yes"/> ! <default-policy truncate="yes"/> ! </config> ! </start>