genode/repos/os/src/server/fs_rom
Emery Hemingway 2b8c1af9e0 remove 'filename' from ROM sesion args
Conveying the ROM filename as the final label element simplifies
routing policy and session construction.

Annotations by nfeske:

This commit also changes the ROM session to use base/log.h instead of
base/printf.h, which produced build error of VirtualBox because the
vbox headers have a '#define Log', which collides with the content of
base/log.h. Hence, this commit has to take precautions to resolve this
conflict.

The commit alse refines the previous session-label change by adding a
new 'Session_label::prefix' method and removing the use of 'char const *'
from this part of the API.

Fixes #1787
2016-07-11 13:24:36 +02:00
..
main.cc remove 'filename' from ROM sesion args 2016-07-11 13:24:36 +02:00
README Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00
target.mk Move repositories to 'repos/' subdirectory 2014-05-14 16:08:00 +02:00

The 'fs_rom' server translates the 'File_system' session interface to the
'ROM' session' interface. Each request for a ROM file is handled by looking
up an equally named file on the file system. If no such file could be found,
the server watches the file system for the creation of the corresponding file.
Furthermore, the server reflects file changes as signals to the ROM session.

Limitations
-----------

* Symbolic links are not handled
* The server needs to allocate RAM for each requested file. The RAM is always
  allocated from the RAM session of the server. The RAM quota consumed by the
  server depends on the client requests and the size of the requested files.
  Therefore, one instance of the server should not be used by untrusted clients
  and critical clients at the same time. In such situations, multiple instances
  of the server could be used.