genode/repos/os
Norman Feske 9b7915facb vfs server: redesigned internal control flow
This patch reworks the VFS server to become easier to understand.

- The packet-stream handling is hidden from the node types.

- Introduced the notion of a "job" as an abstraction from the raw packet
  stream.

- The processing of requests is split into three phases:
  (1) accepting new jobs,
  (2) the execution of jobs, and
  (3) the delivery of acknowledgements.

- There is no longer a global fifo of pending nodes. Instead, each
  session has a fifo of "active" nodes, which are nodes that wait
  for the completion of jobs.

- The Io_node type no longer uses virtual functions as hooks for
  the derrived classes. Instead, it provides a number of utility
  functions.

- The control flow of the 'Io_progress_handler' is now the same as
  for the session-local packet-stream handler.

- Removed dependency from 'file_system/node.h', which is a relic
  from the ram_fs.

While reworking the code, the following semantic changes were made
additionally.

- The handling of SEEK_TAIL no longer overwrites the file content at the
  end of the file.

- Removed diagnostic message at session-creation time.

- Write loop for continuous files

Issue #3547
Issue #2303
2019-11-19 14:54:13 +01:00
..
doc Remove obsolete RAM/CAP services from run scripts 2017-05-31 13:16:22 +02:00
include file-system session: use same dirent size as VFS 2019-11-19 14:54:13 +01:00
lib os: name tz_vmm unambigously (ref #2190) 2019-05-27 14:46:53 +02:00
recipes smbios.h: move to os/include/smbios 2019-11-19 14:54:12 +01:00
run nic_router: do DHCP when re-config to dynamic IP 2019-11-19 14:42:22 +01:00
src vfs server: redesigned internal control flow 2019-11-19 14:54:13 +01:00
xsd timeout_types.xsd: Minutes type 2019-08-21 12:37:02 +02:00
README API documentation refinements 2017-05-31 13:16:21 +02:00

This source-code repository contains genuine low-level OS components and
interfaces of Genode. It solely depends on the framework's base API.