Commit Graph

3070 Commits

Author SHA1 Message Date
Norman Feske
c3c6a82d13 Move VFS from noux to 'os/include/vfs'
By separating the VFS from Noux, we become able to reuse the
VFS for libc-using programs. The most substantial change is the
removal of Noux::Sysio data structures from the VFS. Instead, the
Noux::Sysio refers to the VFS types now.

The new VFS library is located at 'os/include/vfs/'.

Furthermore, the patch removes various code duplications related
to pseudo file systems that provide a single file (block, zero,
random, terminal, null). The new 'Single_file_system' holds the
common boilerplate code for those.

Issue #999
2014-04-29 15:19:27 +02:00
Norman Feske
d7d62c53a6 mixer: Increase stack size of entrypoint 2014-04-24 14:56:36 +02:00
Norman Feske
2b5f4b0aaf file system: Exception for non-permitted symlinks
Until now, there was not exception type for the condition where a
symlink was created on a file system w/o supporting symlinks, e.g., FAT.
The corresponding file-system server (ffat_fs) used to return a negative
handle as a work around. I added 'Permission_denied' to the list of
exceptions thrown by 'File_system::Session::symlink' to handle this case
in a clean way.
2014-04-24 14:56:36 +02:00
Norman Feske
b43a5f1255 tar_fs: Return correct size of stat'ed dirs
Genode's file system interface returns the number of directories
multiplied by sizeof(Directory_entry) as size of a directory. The
tar_fs server used to return zero. The fix counts the sub nodes of
the given directory.
2014-04-24 14:56:36 +02:00
Norman Feske
a96f912f73 test/libc_ffat: Operate on cwd instead of root dir
The test used to rely on a writable root directory. To reuse the test
for the new VFS, where '/' is never writable, I changed all absolute
paths to relative paths.
2014-04-24 14:56:36 +02:00
Norman Feske
797a6c7422 libc_noux: style fix 2014-04-24 14:56:36 +02:00
Norman Feske
3bb7d4e67b noux: Decouple Dir_file_system from file systems
By introducing the new 'File_system_registry', we can remove the
knowledge about the actual file-system implementations from the
'Dir_file_system'. Thereby the code becomes more generic, which is
a precondition for using it as the basis for Genode's VFS library.

Issue #999
2014-04-24 14:56:36 +02:00
Norman Feske
28a5404281 noux: Handle SYSCALL_KILL in switch (fix warning) 2014-04-24 14:56:36 +02:00
Norman Feske
d83e076f11 terminal_session: Add label argument to connection 2014-04-24 14:56:36 +02:00
Sebastian Sumpf
b1a6db090f rump: Stabilize rump libs and fs server
* Perform sanity check before calculating memory available to rump kernel
* Distinguish between 'Hard_context' and 'Hard_context_thread', so no dead
  threads (that will not be started) are created
* Install signal-handler for memory-resource requests. This way the fs server
  will not block forever when the quota is execeeded and a resource requests
  fails, leaving the rump kernels to perform necessary actions

Fixes #1127
2014-04-24 10:32:58 +02:00
Stefan Kalkowski
4dd2db7634 use consistent scheme for chosen MAC addresses
Take a similar MAC address scheme within run scripts like
within the nic bridge to simplify DHCP configuration.
2014-04-22 14:48:33 +02:00
Martin Stein
58c4f1585b hw: fix bug in Kernel::update_*_region
fix #1125
2014-04-17 14:01:35 +02:00
Christian Prochaska
0e208c3d3d Arora: apply all patches
Fixes #1124.
2014-04-17 13:38:15 +02:00
Martin Stein
5d23e5903e hw: raise max amount of signal contexts
This is needed at least for the resource-request test since all available
interrupts are provided through a signal context.

fix #1123
2014-04-17 11:05:20 +02:00
Martin Stein
b53601d01b hw: cleanup signal-session component
ref #1123
2014-04-17 11:04:59 +02:00
Christian Helmuth
3d274366ab vbox: improve BFE argument handling 2014-04-16 17:31:24 +02:00
Christian Helmuth
2c7c814e19 Generate Genode version string on each build
The version string was generated when core/main.cc was rebuilt, which
happens on changes in the file itself or in a header file it includes.
But, the version should reflect if the Genode repository was changed at
any place. Therefore, I moved the version string to its own version.cc
which is forcedly rebuilt any time core is examined by the build system.

@nfeske what do you think about it? Core is now relinked on any build.

Fixes #551.
2014-04-16 17:30:31 +02:00
Alexander Boettcher
a7bc8bac9a nova: support usage of priorities in Genode/Nova
Enables finally the usage of priorities on base-nova.

Fixes #986
2014-04-16 17:30:31 +02:00
Alexander Boettcher
9ae441e469 nova: replacement of generic Genode spinlock
Turn Genode user-level spinlock into a user-level "helpinglock". This requires
support by the kernel introduced with kernel branch r5.

The commit avoids live-locks when multiple threads with SCs on different
priority levels compete for the same user-level Genode "spinlock".

Issue #986
2014-04-16 17:30:31 +02:00
Alexander Boettcher
bfa3053e62 nova: set pager and native ec cap for main thread
Prerequisite for follow up commit regarding base-nova specific Genode Spinlock
replacement.

Issue #986
2014-04-16 17:30:30 +02:00
Alexander Boettcher
ecaf09a41b nova: extent ec_ctrl in kernel and base-nova
The commit switches the kernel branch to r5 and updates the syscall bindings
in base-nova accordingly. Beside some cleanups, r5 extents the ec_ctrl syscall
to support following features:

* An EC may yield its current timeslice. The timeslice gets enqueued at the end
  of the run queue without refreshing the left budget of the quantum.
* An EC helps with the current SC another EC. Used in Genode to implement
  helping over a user-level lock to avoid live-lock situation. (Think of
  a limited priority-inheritance mechanism.)
* An EC requests a new scheduler decision. Used in Genode to transfer back the
  potentially helping SC to the helper EC.

Issue #986
2014-04-14 12:32:31 +02:00
Christian Prochaska
617d5ee3e6 OpenSSL: update to version 1.0.1g
Fixes #1118.
2014-04-14 12:32:31 +02:00
Alexander Boettcher
69bc875ac7 tool: increase amt reset timeout 2014-04-14 12:32:31 +02:00
Alexander Boettcher
0eef45e63f vbox: implement pthread_create specifically
Issue #1114
2014-04-14 12:32:31 +02:00
Alexander Boettcher
0c08334b2c pthread: separate structure and create function
With the commit an application may create a modified version of pthread_create.
Will be used by Virtualbox port.

Issue #1114
2014-04-14 12:32:31 +02:00
Alexander Boettcher
03ce614c23 base: add cpu_session parameter to thread creation
Fixes #1114
2014-04-14 12:32:31 +02:00
Alexander Boettcher
5169de72c4 base: set default cpu affinity
Set cpu_session default affinity space already during
construction of the thread, so that main thread is placed in the cpu affinity
space as defined by the parent. Otherwise the main thread is placed potentially
outside the affinity space, typically on the first/boot CPU.

Fixes #1107
2014-04-14 12:32:31 +02:00
Alexander Boettcher
73f71322f0 init: put ep for child in affinity space of child
Issue #1107
2014-04-14 12:32:30 +02:00
Alexander Boettcher
93f06dd11a nova: set invalid affinity space in thread constructor
Otherwise affinity space is set to 1x1 and in cpu_session_component.cc the cpu
session local affinity space defined by parent is not taken because
"Location::valid()" returns true.

Issue #1107
2014-04-14 12:32:30 +02:00
Stefan Kalkowski
b5fe1d752b hw: don't implement IRQ usage policy in core
Fix #995
Fix #1112
Fix #1113
2014-04-14 12:32:30 +02:00
Martin Stein
a9521853bd hw: provide Kernel::update_instr_region
fix #1115
2014-04-14 12:28:16 +02:00
Martin Stein
3f14defd9d hw: don't restrict update_data_region to core
ref #1115
2014-04-14 12:28:16 +02:00
Martin Stein
5a1fc6da60 hw: rename update_region in update_data_region
ref #1115
2014-04-14 12:28:16 +02:00
Norman Feske
b7e806d5eb News item for TrustZone article 2014-04-10 15:40:40 +02:00
Martin Stein
fabea7fba1 hw: provide invalidate_instr_caches_by_virt_region
ref #1115
2014-04-07 17:11:53 +02:00
Martin Stein
f8c2596259 hw: beautify flush_data_caches_by_virt_region
ref #1115
2014-04-07 17:11:46 +02:00
Martin Stein
d67a26ea4c hw: invalidate data caches on kernel init
fix #1108
2014-04-07 17:11:37 +02:00
Martin Stein
7836d92b22 hw & arm_v7: make flush_data_caches more readable
ref #1108
2014-04-07 17:11:28 +02:00
Martin Stein
9f95784f02 hw: diversify feedback from IPC node to thread
ref #1108
2014-04-07 17:11:20 +02:00
Martin Stein
e856158824 hw: no msg_base argument to Ipc_node::send_request
ref #1108
2014-04-07 17:10:53 +02:00
Martin Stein
b34ce7d2b0 hw: handier names for IPC methods
ref #1108
2014-04-07 17:10:45 +02:00
Martin Stein
f0ec8b27c1 hw: no argument to Ipc_node::_await_ipc_succeeded
ref #1108
2014-04-07 17:10:38 +02:00
Martin Stein
b55646e1b0 hw: remove Ipc_node::_received_ipc_request
ref #1108
2014-04-07 17:10:28 +02:00
Martin Stein
8d1e40eb5b hw: remove Ipc_node::_await_ipc
ref #1108
2014-04-07 17:10:22 +02:00
Martin Stein
ebfd6a55b3 hw: remove useless argument of Thread::_call
ref #1108
2014-04-07 17:10:10 +02:00
Martin Stein
8f9d4737a6 hw: correct spelling of the verb look up
fix #1101
2014-04-07 17:10:05 +02:00
Martin Stein
7ffcc74d72 hw: centralize permission check of kernel calls
ref #1101
2014-04-07 17:09:58 +02:00
Martin Stein
02c16e7106 hw: split resume_local_thread from resume_thread
Kernel::resume_thread was restricted to core when the targeted thread was in
another domain. Now there are two kernel calls, resume_local_thread and
resume_thread, where the former is never restricted and is provided via
public kernel/interface.h and the latter is always restricted to core and
is provided via core-local kernel/core_interface.h.

ref #1101
2014-04-07 17:09:52 +02:00
Martin Stein
c72f91fefb hw: simplify return value of Kernel::resume_thread
ref #1101
2014-04-07 17:09:33 +02:00
Martin Stein
6974abcf41 hw: don't use assert in Kernel::pause_vm
ref #1101
2014-04-07 17:09:16 +02:00