genode/repos/os/src/test
Christian Prochaska b0935ef9b2 VFS: nonblocking interface
The VFS library can be used in single-threaded or multi-threaded
environments and depending on that, signals are handled by the same thread
which uses the VFS library or possibly by a different thread. If a VFS
plugin needs to block to wait for a signal, there is currently no way
which works reliably in both environments.

For this reason, this commit makes the interface of the VFS library
nonblocking, similar to the File_system session interface.

The most important changes are:

- Directories are created and opened with the 'opendir()' function and the
  directory entries are read with the recently introduced 'queue_read()'
  and 'complete_read()' functions.

- Symbolic links are created and opened with the 'openlink()' function and
  the link target is read with the 'queue_read()' and 'complete_read()'
  functions and written with the 'write()' function.

- The 'write()' function does not wait for signals anymore. This can have
  the effect that data written by a VFS library user has not been
  processed by a file system server yet when the library user asks for the
  size of the file or closes it (both done with RPC functions at the file
  system server). For this reason, a user of the VFS library should
  request synchronization before calling 'stat()' or 'close()'. To make
  sure that a file system server has processed all write request packets
  which a client submitted before the synchronization request,
  synchronization is now requested at the file system server with a
  synchronization packet instead of an RPC function. Because of this
  change, the synchronization interface of the VFS library is now split
  into 'queue_sync()' and 'complete_sync()' functions.

Fixes #2399
2017-08-28 16:49:38 +02:00
..
audio_out os: removal of deprecated os/config.h (fix #2431) 2017-05-31 13:16:22 +02:00
audio_out_click os: removal of deprecated os/config.h (fix #2431) 2017-05-31 13:16:22 +02:00
blk Streamline exception types 2017-05-31 13:16:07 +02:00
bomb bomb test: consider preserved PD session quota 2017-06-29 11:59:52 +02:00
clipboard Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
cpufreq Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
dynamic_config os: removal of deprecated os/config.h (fix #2431) 2017-05-31 13:16:22 +02:00
fault_detection Integrate core's RAM service into the PD service 2017-05-31 13:16:14 +02:00
fb_bench Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
framebuffer Fix more deprecated warnings 2017-05-02 15:28:55 +02:00
fs_report fs_report.run: replace test with dedicated program 2017-08-17 10:59:43 +02:00
gpio_drv Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
gpio_led os: removal of deprecated os/config.h (fix #2431) 2017-05-31 13:16:22 +02:00
gpio_signal os: removal of deprecated os/config.h (fix #2431) 2017-05-31 13:16:22 +02:00
init base: drop session states of vanished clients 2017-05-31 13:15:52 +02:00
input Fix key count in input test 2017-05-02 15:29:02 +02:00
input_filter Streamline exception types 2017-05-31 13:16:07 +02:00
iso dde_rump: fix rump_iso test 2017-08-17 11:04:20 +02:00
loader Capability quota accounting and trading 2017-05-31 13:16:06 +02:00
nic_loopback Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
nitpicker Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
pci Streamline exception types 2017-05-31 13:16:07 +02:00
ram_fs_chunk Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
report_rom Streamline exception types 2017-05-31 13:16:07 +02:00
resource_request Remove obsolete RAM/CAP services from run scripts 2017-05-31 13:16:22 +02:00
resource_yield os: removal of deprecated os/config.h (fix #2431) 2017-05-31 13:16:22 +02:00
rom_blk os: removal of deprecated os/config.h (fix #2431) 2017-05-31 13:16:22 +02:00
rtc Optional session label for Rtc connection constructor 2017-05-31 13:16:22 +02:00
sd_card_bench sd_card_drv: prevent deprecated warnings 2017-08-17 11:04:18 +02:00
signal signal test: do not test multiple handlers 2017-06-19 12:35:55 +02:00
terminal_crosslink Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
terminal_echo Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
thread_join Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
timed_semaphore Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
timeout pit/fiasco timeout: raise time error tolerance 2017-06-29 11:59:59 +02:00
timer Check Registered base class provides virtual destructor 2017-03-24 16:20:04 +01:00
timer_accuracy Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
trace os: removal of deprecated os/config.h (fix #2431) 2017-05-31 13:16:22 +02:00
uart Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
vfs_stress VFS: nonblocking interface 2017-08-28 16:49:38 +02:00
xml_generator Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00
xml_node Adjust file headers to refer to the AGPLv3 2017-02-28 12:59:29 +01:00