Commit Graph

141 Commits

Author SHA1 Message Date
Norman Feske
511acad507 Consolidate RM service into PD session
This patch integrates three region maps into each PD session to
reduce the session overhead and to simplify the PD creation procedure.
Please refer to the issue cited below for an elaborative discussion.

Note the API change:

With this patch, the semantics of core's RM service have changed. Now,
the service is merely a tool for creating and destroying managed
dataspaces, which are rarely needed. Regular components no longer need a
RM session. For this reason, the corresponding argument for the
'Process' and 'Child' constructors has been removed.

The former interface of the 'Rm_session' is not named 'Region_map'. As a
minor refinement, the 'Fault_type' enum values are now part of the
'Region_map::State' struct.

Issue #1938
2016-05-09 13:10:51 +02:00
Christian Helmuth
dd90cb3bfe trace_fs: prevent compilter warning 2016-04-25 10:48:02 +02:00
Christian Helmuth
43cf789371 vfs: report zero-length read from server 2016-04-25 10:48:02 +02:00
Emery Hemingway
4a58154e07 server/vfs: refactor for client isolation
VFS handles are allocated from per-session heaps.

Fixes #1751
2016-04-25 10:47:53 +02:00
Emery Hemingway
cb952d2087 obscure File_system::Out_of_node_handles exception
Replace the Out_of_node_handles exception with Out_of_metadata.
Clients need to know when the server is out of internal resources,
but not why.

Cleanup and sort the errors at file_system_session.h.
Remove 'Size_limit_reached exception' from File_system, which was
internal to ram_fs.

Issue #1751
Fixes #1909
2016-04-25 10:47:52 +02:00
Christian Helmuth
1f719dee26 Prevent warnings about unconstructed attached ROMs
If attached ROM dataspaces are not valid after update(), code that uses
these ROMs produces

  void Genode::Volatile_object< <template-parameter-1-1> >::_check_constructed() const [with MT = Genode::Attached_dataspace]: Deref_unconstructed_object
2016-04-11 11:51:43 +02:00
Norman Feske
9a3185f8ed base-linux: remove chroot support
Fixes #1903
2016-03-08 17:00:54 +01:00
Emery Hemingway
110d71c2a8 input_merger: set source label with set_arg_string
Fixes #1861
2016-03-07 16:10:32 +01:00
Norman Feske
6e7f7bdad4 base: move crt0.h and elf.h to base/internal
Those headers remained unused outside the internal framework. So it is
better to remove them from the public API.

Issue #1832
2016-03-07 12:34:45 +01:00
Norman Feske
2936cbebfd loader,nit_fb,wm: work-around for NOVA's cap revokes 2016-02-09 16:56:50 +01:00
Stefan Kalkowski
3bfd2aa3c9 nic_bridge: use the server framework (fix #1865)
Let the Server::Entrypoint do all the work: RPC and signal handling.
Additionally get rid of the Net::Env global environment.
2016-02-05 10:47:45 +01:00
Christian Helmuth
3daa8a3d04 report_rom: update documentation of policy config 2016-01-26 16:50:20 +01:00
Martin Stein
b63941f456 hw imx53 tz_vmm: fix compiler warnings
There were warnings in tz_vmm/block.cc due to an unitialized variable.

Fixes #1849
2016-01-13 12:28:07 +01:00
Emery Hemingway
2d50552522 Remove Genode namespace from File_system
Fixes #1845
2016-01-08 14:48:52 +01:00
Norman Feske
948cb3ef0a os: minor whitespace fixes in nic_loopback 2016-01-08 14:37:57 +01:00
Christian Helmuth
40b8da8755 rom filter: amend name of run script in README 2015-12-17 10:38:19 +01:00
Emery Hemingway
6e9fa10e65 server/report_rom: partial ROM label matching
Fixes #1801
2015-12-17 10:38:18 +01:00
Christian Prochaska
23ff3b1877 nitpicker: fix focus change permission checks
Fixes #1816
2015-12-17 10:38:18 +01:00
Christian Helmuth
2b321b9ce8 nitpicker: improve diagnostic of policy configuration
This patch adds diagnostic messages during the label-policy application,
if no policy for the session label was found or if the domain configured
in the policy node does not exist.
2015-12-10 13:16:27 +01:00
Emery Hemingway
d0ebdfba4b server/fs_log: merge labels using 'label_prefix'
Policies are no longer partially matched against 'label' attributes.
New test at run/fs_log.

Issue #1766
2015-11-29 18:17:09 +01:00
Josef Söntgen
08ae942d72 mixer: more relaxed config handling
Instead of bailing out if the channel list is incorrect check config
node attributes and default settings first.

Being there also fix flawed LOG messages.

Fixes #1794.
2015-11-29 18:17:08 +01:00
Christian Helmuth
dd96cba415 part_blk: increase entrypoint stack size
The changed policy-matching utility uses session labels etc. on stack
which increases the size demand.
2015-11-29 18:17:08 +01:00
Emery Hemingway
44cfc414ee VFS server: throw Not_empty
Issue #1750
2015-11-29 18:17:05 +01:00
Martin Stein
59d2a83f30 TZ VMM & USB Armory: Demo
* Provide paravirtualized block API for accessing the second partition
  of the block device that is provided by the ESDHC driver.

* Provide paravirtualized serial API for sending log-output over Genodes
  serial port.

* Use the latest Linux suggested in the USB Armory Wiki [1] when on USB Armory
  while still using the older vendor Linux when on i.MX53 QSB. I.e.,
  provide a device tree through RAM and a rootfs through the paravirtualized
  block device when on USB Armory while providing ATAGs and Initrd when on
  i.MX53 QSB.

* Switch on the LED on the USB Armory when the VMM catches a VM-exception
  and switch it off again when as soon as the exception is handled. This
  merely show-cases the ability to instrument the LED for such purposes. In an
  ideal world, the LED is switched on as long as we're on the "Secure Side"
  and switched off as long as we're not.

* For further information see repos/os/run/tz_vmm.run

[1] https://github.com/inversepath/usbarmory/wiki/Preparing-a-bootable-microSD-image

Fixes #1497
2015-11-29 18:17:04 +01:00
Norman Feske
0ab49dff3a nitpicker: reflect Handle_registry::Out_of_memory
In the event where a nitpicker session's quota was depleted by the
allocation of view handles, nitpicker would abort. The patch prevents
the abort by reflecting this condition as an Out_of_metadata exception
to the client. This way, the client can upgrade its session as needed.

The problem was triggered by running the decorator_stress test (changed
to generate 40 windows) with the themed_decorator.
2015-11-27 12:18:52 +01:00
Norman Feske
a1c0c99045 nitpicker: fix corner case in view stack operation
This patch addresses the corner case that the specified neighbor view
is the first view of the view stack. If this is the case when inserting
the view in front of the neighbor (behind == false), the target position
within the view stack must be a null pointer, not the first view.

Because the conditions have become rather complicated, both cases
of 'behind' are handled separately now.
2015-11-27 12:18:52 +01:00
Norman Feske
23aac2954b rom_filter: respond to dynamic config updates 2015-11-27 12:18:51 +01:00
Alexander Boettcher
3789a75ed6 base: support ascii_to for uint64_t
Issue #1764
2015-11-18 12:22:07 +01:00
Josef Söntgen
7a70833ba1 mixer: add reporting and config handling
Fixes #1770.
2015-11-18 12:22:07 +01:00
Josef Söntgen
72e1147cce mixer: use retry util for remixing packets
Issue #1770.
2015-11-18 12:22:06 +01:00
Josef Söntgen
c814d13737 mixer: use Server framework
Issue #1770.
2015-11-18 12:22:06 +01:00
Norman Feske
91345a1568 nitpicker: use fb sync for periodic processing 2015-11-04 13:49:01 +01:00
Christian Prochaska
e652af7518 nitpicker: fix off-by-one bug 2015-11-04 14:09:29 +01:00
Christian Prochaska
0150d02683 nitpicker: never bring the background view to front 2015-11-04 14:09:29 +01:00
Norman Feske
a01a423c91 nitpicker: allow refocus during global key ops 2015-11-04 14:09:29 +01:00
Norman Feske
f01b205c30 nitpicker: postpone focus updates until idle
This patch ensures that focus changes performed via the Session::focus
call are made effective the next time, the user is idle. Previously,
focus changes during drag operations were simply discarded.
2015-11-04 14:09:28 +01:00
Norman Feske
7c968d4c60 nitpicker: externalize xray policy
This patch removes the policy for controlling the X-Ray mode from
nitpicker to the separate component os/app/xray_trigger.

Fixes #1690
2015-11-04 14:09:28 +01:00
Norman Feske
2166aef737 nitpicker: update all on focus change in xray mode 2015-11-04 14:09:28 +01:00
Christian Prochaska
8f849c9438 clipboard: fix session close handling
Fixes #1747
2015-11-04 14:09:25 +01:00
Emery Hemingway
b6c558dce9 Vfs: File_system server backed by VFS library
Test available at libc_vfs_fs.

Fixes #1648
2015-11-04 14:09:24 +01:00
Emery Hemingway
2da239d0c8 void sync(char const *path)
Sync now takes a path argument at VFS and File system interfaces.

Issue #1648
2015-11-04 14:09:23 +01:00
Sebastian Sumpf
78e18981fb nic session: fix quota check
Check for overflow.

Issue #1735
2015-10-09 16:38:48 +02:00
Emery Hemingway
88f107e0f9 Fs_log: new truncate behavior
Files are truncated at the next client session if all previous sessions
associated with the file are closed.

Issue #1538
2015-10-09 16:36:30 +02:00
Emery Hemingway
77c00bc26d fs_log: fix creation of '.log' files
Issue #1538
2015-10-09 16:36:17 +02:00
Norman Feske
1460105f71 nitpicker: provide user activity in focus reports
This patch supplements the existing focus reports with the new attribute
'active', which indicates recent user activity when set to "yes". This
information is consumed by the clipboard to dynamically adjust its
information-flow policy depending on the user activity.

Issue #1712
2015-10-06 12:18:54 +02:00
Norman Feske
59014a50f1 os: new clipboard component and test
Fixes #1712
2015-10-06 12:18:54 +02:00
Norman Feske
02d07655ce os: make internal report_rom classes reusable
This patch moves the formerly internal classes of the report-ROM service
to the public location os/include/report_rom/ so that they can be reused
by other components such as the upcoming clipboard.
2015-10-06 12:18:53 +02:00
Norman Feske
702646a4a3 os: new ROM filter component
Related to #1690
2015-10-06 12:18:53 +02:00
Norman Feske
c8ec7b6ffb os: add print_lines utility
The code originates from the report_rom server. This patch makes the
code easy to reuse in other components.
2015-10-06 12:18:52 +02:00
Norman Feske
dce6e14e3e os: generalize Session_label, Session_policy
The utilities in os/session_policy.h used to be tailored for the
matching of session arguments against a server-side policy
configuration. However, the policy-matching part is useful in other
situations, too. This patch removes the tight coupling with the
session-argument parsing (via Arg_string) and the hard-wired use of
'Genode::config()'.

To make the utilities more versatile, the 'Session_label' has become a
'Genode::String' (at the time when we originally introduced the
'Session_label', there was no 'Genode::String'). The parsing of the
session arguments happens in the constructor of this special 'String'.
The constructor of 'Session_policy' now takes a 'Genode::String' as
argument. So it can be used with the 'Session_label' but also with other
'String' types. Furthermore, the implicit use of 'Genode::config()' can
be overridden by explicitly specifying the config node as an argument.
2015-10-06 12:18:52 +02:00