Commit Graph

2733 Commits

Author SHA1 Message Date
Martin Stein
d301022fe7 nic_router.run: do not append but concatenate
Makes the script more readable and saves 100 LOC.

Ref #2193
2017-02-28 12:59:22 +01:00
Martin Stein
412c5e5be4 run/platform_drv: add append-free interface
Normally, the platform driver helpers adapt the global run variables directly
via append. But the introduction of a more elegant run script style, that
incorporates dependent strings inline may be a good idea. Thus, we need the
backends of the helpers available as functions that return their string rather
than appending it.

The old interface still exists and uses the new interface as backend.

Ref #2193
2017-02-28 12:59:22 +01:00
Martin Stein
d2832c3e4d lwip/http_clnt: remove unused variable
Ref #2193
2017-02-28 12:59:22 +01:00
Martin Stein
a88954394a nic_bridge tests: simplify test names
Ref #2193
2017-02-28 12:59:21 +01:00
Martin Stein
dc4e2325d0 nic_router.run: use static IP config in general
Dynamic IP configuration is a problem when testing on real machines
in a network that behaves differently than the DHCP in QEMU.

Ref #2193
2017-02-28 12:59:21 +01:00
Martin Stein
a4d110aa60 nic_router: fix indentation in verbose log
Ref #2193
2017-02-28 12:59:21 +01:00
Martin Stein
959b80bab1 lxip/lwip tests: non-libc attributes to config tag
The 'server_ip' and 'server_port' attributes for 'lxip/udp_client' and
'lwip/http_clnt' as well as the 'port' attribute for 'lxip/udp_echo' and
'lwip/http_srv_static' are not directly libc-related so they should not
live in the libc tag but in the config tag of the component.

Ref #2193
2017-02-28 12:59:21 +01:00
Martin Stein
a9535d5311 nic_router.run: update to new usage of the VFS tag
Use <config><vfs/></config> instead of <config><libc><vfs/></libc></config>.

Ref #2193
2017-02-28 12:59:21 +01:00
Josef Söntgen
e266e3cf1d floating_window_layouter: remove deprecated env()
Issue #2280.
2017-02-28 12:59:21 +01:00
Norman Feske
e951425c59 nit_fader: fix "deprecated" warning
Issue #1987
2017-02-28 12:59:20 +01:00
Norman Feske
e17811fb7a cli_monitor: API transition
Issue #1987
2017-02-28 12:59:20 +01:00
Norman Feske
bfdadc55b2 base: Add Number_of_bytes::print method
This method attempts to print the number with a K/M/G unit if possible
and thereby increases the human readability of generated output.
2017-02-28 12:59:20 +01:00
Norman Feske
8cb0dc9c16 init: session-label rewriting
This patch enhances init with the support for rewriting session labels
in the target node of a matching session route. For example, a Noux
instance may have the following session route for the "home" file
system:

<route>
  <service name="File_system" label="home">
    <child name="rump_fs"/>
  </service>
  ...
</route>

At the rump_fs file-system server, the label of the file-system session
will appear as "noux -> home". This information may be evaluated by
rump_fs's server-side policy. However, when renaming the noux instance,
we'd need to update this server-side policy.

With the new mechanism, the client's identity can be hidden from the
server. The label could instead represent the role of the client, or a
name of a physical resource. For example, the Noux route could be
changed to this:

<route>
  <service name="File_system" label="home">
    <child name="rump_fs" label="primary_user"/>
  </service>
  ...
</route>

When the rump_fs receives the session request, it is presented with the
label "primary_user". The fact that the client is "noux" is not taken
into account for the server-side policy selection.

Issue #2248
2017-02-28 12:59:20 +01:00
Norman Feske
c0af463b81 base: Add Child_policy::Route
The new return value of 'resolve_session_request' allows the child
policy to define the label used as the policy selector at the server.

Because this patch introduces the distinction of the child-provided
label from the label as presented to the server along with the session
request, the latter is now handled as a dedicated 'Session_state'
argument.

Issue #2248
2017-02-28 12:59:20 +01:00
Sebastian Sumpf
2d199982eb os: add 'wait_and_dispatch_one_signal' test 2017-02-28 12:59:20 +01:00
Martin Stein
06e605defa LibC VFS: Warn on possible FD path leaks 2017-02-28 12:59:19 +01:00
Martin Stein
222a789fef LibC socket FS: Fix leak of remote and local files 2017-02-28 12:59:19 +01:00
Christian Prochaska
1df4e53cba Qt5: use 'Libc::with_libc()' where needed
Fixes #2282
2017-02-28 12:59:19 +01:00
Norman Feske
b1a9addeb6 os/child_policy_dynamic_rom.h: API transition
Issue #1987
2017-02-28 12:59:19 +01:00
Alexander Boettcher
9ba24c0722 vbox: use with_libc 2017-02-28 12:59:19 +01:00
Christian Helmuth
4eb04119a5 test: TCP echo server and client 2017-02-28 12:59:19 +01:00
Josef Söntgen
b1dca8e047 os: pass env to connections in uart test
Issue #2280.
2017-02-28 12:59:18 +01:00
Martin Stein
335685b7fe usb: get rid of combined specs
Issue #2280.
2017-02-28 12:59:18 +01:00
Josef Söntgen
15821e32ec nic: remove usage of deprecated env()
This commit includes changes to the Nic::Session_component interface.
We now pass the entire env to the component instead of only ram, rm and
the ep because we need the env to open connections from within the
Session_component implemenation. So far only the cadence_gem driver
needs this, though.

Issue #2280.
2017-02-28 12:59:18 +01:00
Josef Söntgen
e6e1d8c144 platform/arm: remove usage of deprecated env()
Issue #2280.
2017-02-28 12:59:18 +01:00
Josef Söntgen
0b9272bd9c timer: remove usage of deprecated env()
Issue #2280.
2017-02-28 12:59:18 +01:00
Josef Söntgen
de401f37fb uart/x86: remove usage of deprecated env()
Issue #2280.
2017-02-28 12:59:18 +01:00
Josef Söntgen
493d3e58cf ps2: remove usage of deprecated env()
Issue #2280.
2017-02-28 12:59:17 +01:00
Josef Söntgen
3c57a8b3c2 usb_session: pass Region_map explicitly
Issue #2280.
2017-02-28 12:59:17 +01:00
Josef Söntgen
a2cff03539 dde_linux: remove usage of deprecated env()
Fixes #2280.
2017-02-28 12:59:17 +01:00
Josef Söntgen
7d91b1d949 dde_bsd: remove usage of deprecated env()
Issue #2280.
2017-02-28 12:59:17 +01:00
Josef Söntgen
69925ee126 ahci: remove usage of deprecated env()
The remaining warnings are false-positives because os/attached_mmio.h
contains both constructor variants.

Issue #2280.
2017-02-28 12:59:17 +01:00
Christian Helmuth
eab477370f libc: select support for components
Libc components cannot use regular calls to select() as this may suspend
their execution. In this case incoming RPCs will be deferred until
select() returns and the component returns to the entrypoint dispatch
loop. The Libc::Signal_handler solves this problem with a its select()
that either returns the currently ready file descriptors immediately or
calls the registered handler function during libc resume.
2017-02-28 12:59:17 +01:00
Christian Helmuth
f7f18710de libc: tests for components using RPC and select() 2017-02-28 12:59:16 +01:00
Christian Helmuth
0aac473229 libc: component-compatible execution semantics
Now, the libc kernel supports to execute application code from all RPC
functions not only Component::construct(). This is enabled by the
Libc::with_libc() scope function.
2017-02-28 12:59:16 +01:00
Norman Feske
3a65f0bba3 libc: 'with_libc' mechanism to enter libc runtime
This commit extends an easy-to-use mechanism to allow Genode component
code to enter/leave the libc application context. This is needed
whenever low-level component code (like signal handlers or RPC
functions) need to interact with potentially blocking libc I/O
functions.

Please note that this commit contains the API-level design only. The
actual context switching code 'execute_in_application_context' is
missing.
2017-02-28 12:59:16 +01:00
Christian Helmuth
fdad5116dd libc: support for socket file system
The socket file system can be configured in the "socket" attribute of
the libc config node like follows.

  <vfs> <dir name="socket"> <fs/> </dir> </vfs>
  <libc ... socket="/socket"/>

This configures the socket file system libc backend to access files in
"/socket" for socket operations.
2017-02-28 12:59:16 +01:00
Christian Helmuth
ad185fe1fe vfs: improve read-ready handling in VFS server 2017-02-28 12:59:16 +01:00
Emery Hemingway
9d7cda04fa test: RFC862 UDP echo server 2017-02-28 12:59:15 +01:00
Sebastian Sumpf
304f2eaf38 lxip: VFS plugin
Provides file-system compatible to libc socket-fs requirements. This
includes pseudo file for network configuration.
2017-02-28 12:59:15 +01:00
Christian Helmuth
1f29e1854a lxip: poll_does_not_wait() for non-blocking API 2017-02-27 15:37:50 +01:00
Norman Feske
8e6306e8e3 base: tolerate nested signal handling (but warn) 2017-02-27 15:37:50 +01:00
Sebastian Sumpf
b66716d278 base: entrypoint 'wait_and_dispatch_one_signal'
There existed a race when 'wait_and_dispatch_one_signal' is called form
a RPC context, because the 'signal_proxy' or 'main' will block and the
signal semaphore, when the EP then calls 'wait_and_dispatch_one_signal',
the signal proxy is woken up ands sends an RPC to the EP, leading to a
dead lock if no further signal arrive, because the EP will then remain
blocked in the signal semaphore.

Therefore, for this case, the signal proxy will now perform a semaphore
up operation and does not perform an RPC if the EP is within
'wait_and_dispatch_one_signal'.
2017-02-27 15:37:50 +01:00
Norman Feske
652f92c9c9 init: 'unscoped_label' session-routing attribute
This patch enhances init with the ability to route individual
environment sessions. Prior this patch, environment sessions could be
routed only by an all-encompassing '<service>' node that would match
both child-initiated and environment sessions.

In contrast to the existing 'label', 'label_prefix', and 'label_suffix'
attributes of '<service>' nodes, which are always scoped with ther name
of the corresponding child, the 'unscoped_label' allows the definition
of routing rules for all session requests, including init's requests for
the child's environment sessions. For example, to route the ROM session
requests for a child's dynamic linker, the following route would match:

<route>
  <service name="ROM" unscoped_label="ld.lib.so"> ... </service>
</route>

Issue #2215
2017-02-27 15:37:49 +01:00
Martin Stein
0b5db07948 vfs fs: ignore dead handle IDs on handle_ack
When a directory gets destructed it dissolves the handles of each contained file
but the acknowledgement might be still in-flight. If we finally receive it,
it leads to an Unknown_id exception on the Handles ID Space in 'handle_ack'.
Now we catch it, print a warning, and go on.
2017-02-27 15:37:49 +01:00
Norman Feske
19868de69a launcher: API transition (deprecated warnings)
Issue #1987
2017-02-27 15:37:49 +01:00
Norman Feske
c6c79acf8e gems/wm: API transition (deprecated warnings)
Issue #1987
2017-02-27 15:37:49 +01:00
Norman Feske
aee90ed453 Adapt components to new Event::CHARACTER type
Issue #2264
2017-02-27 15:37:49 +01:00
Norman Feske
455bd9396e gems/terminal: support 'CHARACTER' events
This patch adds the handling of 'CHARACTER' events as emitted by the
input-filter's character generator (<chargen>). To avoid interpreting
press/release events twice (at the input filter and by the terminal's
built-in scancode tracker), the terminal's scancode tracker can be
explicitly disabled via <config> <keyboard layout="none"/> </config>.
In the future, the terminal's built-in scancode tracker will be
removed.

The use of the terminal with the input filter is illustrated by the
'terminal_echo.run' script.

Issue #2264
2017-02-27 15:37:49 +01:00
Norman Feske
2ce87216bc os: input_filter implementation and test
The input_filter is the successor of the input_merger. In addition to
merging input streams, the component applies several forms of input
transformations such as the application of keyboard layouts.

Issue #2264
2017-02-27 15:37:49 +01:00
Norman Feske
859d23d92b os: introduce Input::Event::CHARACTER type
Character events are created via a dedicated 'Event' constructor that
takes an 'Event:Utf8' object as argument. Internally, the character is
kept in the '_code' member. The 'Utf8' value can by retrieved by the
recipient via the new 'utf8' method.

Issue #2264
2017-02-23 15:03:29 +01:00
Johannes Schlatow
762728fee0 base: remove superfluous line feeds in print_lines
Fixes #2279
2017-02-23 15:03:29 +01:00
Christian Helmuth
eda0828ca0 Skip binary files in GEN_INCLUDES
A binary file may be a temporary Vim .swp file when examining contrib
sources. The commit prevents build errors like

  .../repos/dde_linux/lib/mk/lxip_include.mk:29:
  target '.../x86_64/var/libcache/lxip_include/include/include/include/Binary'
  given more than once in the same rule
  .../repos/dde_linux/lib/mk/lxip_include.mk:29:
  target '.../x86_64/var/libcache/lxip_include/include/include/include/file'
  given more than once in the same rule
  ...
2017-02-23 15:03:28 +01:00
Christian Helmuth
61b6dccf13 Queued read/write/read_ready in VFS and servers 2017-02-23 15:03:28 +01:00
Christian Helmuth
01daf19947 Extend libc counter tests 2017-02-23 14:54:51 +01:00
Christian Helmuth
6e5f3d432e Post signal-handler hook in entrypoint
A Signal_handler may schedule a hook function that is executed after the
signal handler returned. This can be used if the hook function may
trigger a (nested) signal handler by means of
wait_and_dispatch_one_signal(). Otherwise, an occurrence of the same
signal that triggered the original signal handler results in a dead lock
just before calling the nested handler (due to the Signal_context
destruction lock).
2017-02-23 14:54:51 +01:00
Christian Helmuth
b805e001db Add READ_READY support to file-system session
The read-ready packet informs the server that the client wants to be
notified if a handle becomes readable. When becoming readable, the
server acknowledges packet and the client may queue a read requests
accordingly.
2017-02-23 14:54:51 +01:00
Christian Helmuth
8185a49b4c libc: replace Timed_semaphore by suspend with timeout 2017-02-23 14:54:50 +01:00
Sebastian Sumpf
3048017d90 lxip: schedule timeout + poll wait
* poll_wait + schedule_timeout +  block on wait_and_dispatch_one_signal
2017-02-23 14:54:50 +01:00
Martin Stein
ed370a8f5c Introduce gpio_drv function in run scripts
Do not use automatic alias in the run tool for the name of the
gpio-driver binary.

Ref #2268
2017-02-23 14:54:50 +01:00
Christian Helmuth
957653d4b9 libc: separate unit for freeaddrinfo/getaddrinfo
Preperation for merge of libc_resolv into libc.
2017-02-23 14:54:50 +01:00
Christian Prochaska
2d700d0b2d lxip: return zero-initialized memory in '__alloc_percpu()' 2017-02-23 14:54:49 +01:00
Christian Prochaska
59f38fe38c lxip: implement 'rt_genid_ipv4()' and "rt_genid_bump_ipv4()' 2017-02-23 14:54:49 +01:00
Christian Prochaska
7b3a6e6347 lxip: delete default gateway route before reconfiguration 2017-02-23 14:54:49 +01:00
Sebastian Sumpf
b8b34efef9 lxip: dhcp update on link state change 2017-02-23 14:54:49 +01:00
Christian Prochaska
a1453d83ff lxip: network reconfiguration support 2017-02-23 14:54:48 +01:00
Sebastian Sumpf
aa602032dd vfs: dynamic configuration support 2017-02-23 14:54:48 +01:00
Christian Prochaska
8025f5f570 lxip: allow network reconfiguration
This commit adds the public functions 'lxip_configure_static()' and
'lxip_configure_dhcp()' for reconfiguring the network.
2017-02-23 14:54:48 +01:00
Christian Prochaska
8a6930ef5d lxip: enable configuration readout and reconfiguration 2017-02-23 14:54:48 +01:00
Christian Prochaska
c5b58a2df4 lxip: implement more needed functions
- rtnl_notify()
- round_jiffies()
- round_jiffies_relative()
- round_jiffies_up()
- schedule_delayed_work()

Fixes #2261
2017-02-23 14:54:47 +01:00
Christian Prochaska
8fcfcbce0e lxip: implement 'mod_delayed_work()'
Fixes #2258
2017-02-23 14:54:47 +01:00
Christian Prochaska
bdb3bc0299 dde_linux: initialize 'delayed_work' in DECLARE_DELAYED_WORK()
Fixes #2257
2017-02-23 14:54:47 +01:00
Sebastian Sumpf
6f5c839df7 lxip/libc_lxip: adjust to new Genode API 2017-02-23 14:54:46 +01:00
Sebastian Sumpf
93d8b4487f lx_kit: Let 'construct_env' return Lx_kit::Env 2017-02-23 14:54:46 +01:00
Sebastian Sumpf
643a09b518 libc: late intialization of plugins
- for-each plugin iterator
* Call 'init(Genode::env &)' for each plugin bofore 'Libc::construct' or
'main' is called
2017-02-23 14:54:46 +01:00
Sebastian Sumpf
549c6db064 lxip: restore entrypoints + remove sig_rec 2017-02-23 14:54:46 +01:00
Martin Stein
c2e6fd9392 fb_bench: do not test on i.MX53 + Fiasco.OC
The i.MX53 Framebuffer driver doesn't come up on on Fiasco.OC because the Platform
driver isn't allowed to access essential devises like the SRC or the Fuses. This is
most likely due to the kernel not configuring the CSU appropriately.

Ref #2268
2017-02-23 14:54:45 +01:00
Josef Söntgen
1e1ce43170 lan9118: use env in Timer connection
Issue #2275.
2017-02-23 14:54:45 +01:00
Josef Söntgen
e6e85fce74 os: remove Server from nic/component
Issue #2275.
2017-02-23 14:54:44 +01:00
Josef Söntgen
251aa95d96 dde_ipxe: remove usage of deprecated env()
Fixes #2275.
2017-02-23 14:54:44 +01:00
Alexander Boettcher
eea00ab8b0 vbox: provide initial memory buffer
broken due to changes of

libc: API transition
Issue #1987

For now provide a initial memory buffer for allocation of static
constructors and of malloc calls out of the libc during early
libc initialization until actual vbox code is executed having the Env
pointer.
2017-02-23 14:54:44 +01:00
Josef Söntgen
c407fb80fa jitterentropy: remove deprecated env() usage
This change introduces a Genode specific init function, which sets the
backend allocator used by jent_zalloc/zfree(). As consequence the
library can solely be used by native Genode components, direct libc
usage is not supported.

Fixes #2274.
2017-02-23 14:54:43 +01:00
Alexander Boettcher
22f02396c0 qt5: avoid cryptic messages if not prepared
Fixes #2276
2017-02-23 14:54:43 +01:00
Christian Helmuth
15957a2d3d Adapt nitpicker config to xray_trigger changes 2017-02-23 14:54:43 +01:00
Stefan Kalkowski
cf943dac65 hw: bootstrap into kernel
Put the initialization of the cpu cores, setup of page-tables, enabling of
MMU and caches into a separate component that is only used to bootstrap
the kernel resp. core.

Ref #2092
2017-02-23 14:54:42 +01:00
Stefan Kalkowski
8aa8423cfd hw: rework mapping and page-flags
Ref #2092
2017-02-07 19:20:30 +01:00
Stefan Kalkowski
b6490e913f hw_x86_64: assemble TSS and IDT statically
* remove alignment restrictions of code64 entrypoint

Ref #2092
2017-02-07 19:20:30 +01:00
Stefan Kalkowski
d549921bc8 hw: introduce memory regions and array
* replace Native_regions and inline code for iteration

Ref #2092
2017-02-07 19:20:30 +01:00
Stefan Kalkowski
a97e92c7ec base: make Allocator_avl::_avl_tree accessable
This hook allows the export of the allocator's state by a derrived
class. I.e., the final state of the allocator used for bootstrapping
core.

Ref #2092
2017-02-07 19:20:30 +01:00
Stefan Kalkowski
7c8281f2d6 util: turn max, min, and abs into const_expr
Ref #2092
2017-02-07 19:20:29 +01:00
Stefan Kalkowski
746f51393b hw: fix raw output functions for kernel
Ref #2092
2017-02-07 19:20:29 +01:00
Stefan Kalkowski
786a81c846 core: unify log() initialization between kernels
* initialize the log environment implicitly for core
* removing the redundant lock
* unify between base-hw and all others

Ref #2092
2017-02-07 19:20:29 +01:00
Emery Hemingway
48150a706b update Reporter constructors
The Reporter utility needs a reference to the environment at
construction to establish Report connections.

Ref #1987
Fix #2232
2017-02-07 19:20:29 +01:00
Norman Feske
a4e2999e7d libc: warn but don't stop on too early allocations 2017-02-07 19:20:29 +01:00
Norman Feske
26373814ef wm.run: adjust routes to env-session routing
Issue #2250
2017-02-07 11:12:31 +01:00
Norman Feske
10bb3fbe38 qt5: add missing routes to run scripts
Issue #2250
2017-02-07 11:12:31 +01:00
Christian Prochaska
a423ae67a4 Noux: destroy 'Rom_dataspace_info' objects
Fixes #2271
2017-02-07 11:12:30 +01:00
Martin Stein
b26988feeb gpio_drv: get rid of specs foc_rpi and hw_rpi
Ref #2268
2017-02-07 11:12:29 +01:00
Martin Stein
102676b1c1 fb_bench: do not test on zynq
There is currently no FB driver for zynq.

Ref #2268
2017-02-07 11:12:29 +01:00
Christian Helmuth
f9389109bf Support select in libc VFS plugin by read_ready() 2017-02-07 11:12:29 +01:00
Christian Helmuth
ba1bd071df libc counter test 2017-02-07 11:12:28 +01:00
Norman Feske
f8349b5bc7 os/slave.h: Remove use of global allocator
This patch eliminates the need for a global allocator by passing the
parent-service registry as argument to the 'Slave::Policy' constructor.

Fixes #2269
2017-02-07 11:12:28 +01:00
Christian Helmuth
c0d61858c3 Support for suspendable read in VFS and libC
The support has two parts. First, a VFS plugin now gets passed an
I/O-response handler callback on construction, which informs users of the
VFS that an I/O event occurred. This enables, for example, the libC to
check if blocking read can be completed. Further, the VFS file I/O
interface provides now functions for suspendable reads, i.e.,
queue_read() and complete_read().
2017-02-07 11:12:27 +01:00
Josef Söntgen
e5d6c06f58 Rework trace test and add to autopilot
Issue #2260
2017-02-07 11:12:26 +01:00
Josef Söntgen
f26532803f core: use proper size in Trace-Policies Tslab
Issue #2260.
2017-02-07 11:12:26 +01:00
Martin Stein
223cc06341 fb_bench: start QEMU with -nographic
Enables us to test on our machines without SDL and X.

Ref #2268
2017-02-07 11:12:26 +01:00
Martin Stein
066a5e9670 fb_bench: mark wand_quad as not supported
We do not have a framebuffer driver on Wandboard yet.

Ref #2268
2017-02-07 11:12:26 +01:00
Martin Stein
ae91ca012e fb_bench: correct "platform not supported" message
Ref #2268
2017-02-07 11:12:25 +01:00
Martin Stein
77e266d1ff fb_bench: add gpio driver when supported
Ref #2268
2017-02-07 11:12:25 +01:00
Alexander Boettcher
d5d4befab3 nova: avoid !zero assertion in kernel
Fixes #2266
2017-02-07 11:12:25 +01:00
Emery Hemingway
92978933c7 root/component: log error on Out_of_memory
Servers should account and handle this condition locally.
2017-02-07 11:12:24 +01:00
Norman Feske
d1df1dbd87 libc: API transition (fix deprecated warnings)
Issue #1987
2017-02-07 11:12:24 +01:00
Norman Feske
25bcc2dfa6 libc: add Libc::Allocator that uses malloc/free 2017-02-07 11:12:23 +01:00
Norman Feske
aa29ebe751 base/shared_object.h: add missing includes 2017-02-07 11:12:23 +01:00
Christian Prochaska
a1b4e905ab Signal_receiver::wait_for_signal(): check for pending signal before blocking
Fixes #2267
2017-02-07 11:12:23 +01:00
Christian Helmuth
0f6800b20f libc: use task switch in select() 2017-02-07 11:12:23 +01:00
Christian Helmuth
59c0796820 libc: test for select()
Issue #2237
2017-02-07 11:12:21 +01:00
Emery Hemingway
3e6646fd9a server/vfs: API transition
* Use an attached ROM rather than the global config()
* Use a Ram_session_guard to track session metadata allocation

Ref #1987
2017-02-07 11:12:21 +01:00
Emery Hemingway
ded2f7e2d4 server/vfs: use Id_space to manage open nodes
Replacing the node lookup table with an Id_space removes the
limit on open handles per session and allows mutal associativity
between File_system handles and local VFS handles.

Fix #2221
2017-02-07 11:12:21 +01:00
Christian Helmuth
531e35ec42 Define Microseconds max value in timeout framework 2017-01-31 14:58:37 +01:00
Christian Helmuth
a52543acd2 Improve noux fork test (grand child, waitpid)
The test now forks twice - the parent forks a child and the child itself
forks a grand child. Both, parent and child, wait for termination of
their forked process with waitpid(). Additionally, the run script now
checks for exit of the parent (not any noux process).
2017-01-31 14:58:37 +01:00
Christian Helmuth
aaa079c360 terminal_mux: fix comment 2017-01-31 14:58:37 +01:00
Christian Helmuth
ce3d10465e Mark warnings from the signal dispatcher as such 2017-01-31 14:58:36 +01:00
Christian Helmuth
e93fe55e54 libc: clear frame pointer on user-context entry
If built with frame-pointer support the backtrace now stops at the user
entry code. Before, the libc kernel stack was trced back too.
2017-01-31 14:58:36 +01:00
Christian Helmuth
7386c4e1d1 More robust handling of suspend in entrypoint
First, calls to manage and dissolve signal contexts now check if the
signal receiver was constructed. There is a small window during suspend
where it is destructed before reconstructed again.

Last, we ensure that processing of incoming signal was deblocked by the
suspend signal before entering the suspend operation. This way we ensure
already queued signal are handled.
2017-01-31 14:58:36 +01:00
Norman Feske
9fffb004b2 os/timer.h: disambiguate Timer::curr_time 2017-01-31 14:58:36 +01:00
Alexander Boettcher
c58444af80 netperf: adjust netperf.inc instructions
and avoid some deprecated config warnings
2017-01-31 14:13:28 +01:00
Alexander Boettcher
dd5592cc50 Fix String(Hex()) usage
- additional add test casye to log.run

Fixes #2265
2017-01-31 12:02:21 +01:00
Norman Feske
818795ab90 vfs/block: fix seek-offset handling during write
The block file system wrongly modified the seek offset during a
read-modify-write operation that is required for sub-block-size
requests. This led to problems whenever such write requests spanned
multiple blocks and thereby were handled in multiple iterations.

Fixes #2262
2017-01-31 12:01:19 +01:00
Norman Feske
c65f78671f VFS block test
This test reproduces an issue of the VFS block file system when the
underlying block device has a coarser granularity than the block
requests issued by the VFS client. I.e., if the underlying block device
has a block size of 4K, writing a sequence of (non-4K-aligned) 512 blocks
that crosss a 4K boundary corrupts the data on the block device.

Issue #2262
2017-01-31 12:01:19 +01:00
Norman Feske
9adc6f1228 os: compile-time-defined parent-service registry
The new utility at 'os/static_parent_services.h' allows the creation of
a registry of parent services at compile time and thereby eliminates the need
for dynamic memory allocations whenever the set of services is known at
compile time as is the case for most uses of 'Slave::Policy'. The commit
showcases the utility in the bomb test.
2017-01-31 12:01:19 +01:00
Norman Feske
cd3a5852d6 Warn about the use of deprecated headers
This commit enables compile-time warnings displayed whenever a deprecated
API header is included, and adjusts the existing #include directives
accordingly.

Issue #1987
2017-01-31 12:01:18 +01:00
Martin Stein
b4600bfc99 sd_card_bench: exclude foc+imx_53 and odroid_xu
On Odroid XU the SD card driver comes up and finds a card but for card
access it seems that we would need a platform driver like on Arndale.

On imx_53, the first SDHCI MMIO access faults. This is likely due to the
AIPSTZ memory bridge. On HW, we initialize the AIPSTZ in the kernel, but
when I tried doing that in the platform driver instead, the first AIPSTZ
MMIO access faults ^^ So I gave up for now and removed support.

Fixes #2259
2017-01-31 12:01:17 +01:00
Martin Stein
e36368735b input.run: add missing routing rules
Ref #1987
2017-01-31 12:01:17 +01:00
Martin Stein
7184f0febe init: handle Service_denied during child creation
Ref #1987
2017-01-31 12:01:17 +01:00
Emery Hemingway
9b3ecb114d lib/posix: populate environment variables from config
Parse ``<env key="..." value=".."/>`` nodes from the config ROM and
populate a list at the 'genode_envp' and 'environ' symbols.

Test script at run/libc_getenv.

Fix #2236
2017-01-31 12:01:16 +01:00
Stefan Kalkowski
c76c199f8d hw: enable SMP for Wandboard (fix #2253) 2017-01-31 12:01:16 +01:00
Martin Stein
ed62199957 test/reconstructible: move to base
The test uses only stuff from the base repo.

Ref #1987
2017-01-31 12:01:15 +01:00
Martin Stein
d1134644cc test/synced_interface: move to base
The test uses only stuff from the base repo.

Ref #1987
2017-01-31 12:01:15 +01:00
Martin Stein
ad2d1fe586 os/test: transition to new base API
For all tests
* use Component::construct instead of main
* use new connection constructors with env argument
* use log instead of printf

For some tests
* replace signal receivers with signal handlers
* replace global static variables with Main class members
* remove unnecessary multithreading
* model test steps as classes that are independent from each other and managed
  by Main as constructibles
* use references instead of pointers and exceptions instead of error codes
* use Attached_* helpers intead of doing attach/detach manually
* use helpers like String, Id_space, Registry instead of arrays and lists
* make the run script suitable for automated execution and conclusion

Ref #1987
2017-01-31 12:01:15 +01:00
Martin Stein
e0fef69cb3 test/ram_fs_chunk: fix bug in allocation tracking
In the past, the Genode::destroy, that is called by the RAM-FS-chunk destructors,
issued Allocator::free instead of the C++ delete. Therefore it was possible to
use the size argument of Allocator::free for the allocation tracker in the
RAM-FS-chunk test. Nowadays, we have to keep track of the allocation sizes
ourselves because delete doesn't hand over the size.

Ref #1987
2017-01-31 12:01:15 +01:00
Martin Stein
71525443c5 timer_accuracy: generalize, automate, new base API
The old version was running with base-linux only and there was no
run script that provided automated execution and evaluation.

Ref #1987
2017-01-31 12:01:15 +01:00
Martin Stein
9e8366b47c test/nic_raw: remove
Ref #1987
2017-01-31 12:01:14 +01:00
Martin Stein
7285f82f79 test/packet_stream: remove
The rationales behind this test are also covered by test/nic_loopback
or they are outdated (e.g. blocking).

Ref #1987
2017-01-31 12:01:14 +01:00
Martin Stein
a9f4baf674 test/config_args: remove
The main function with string arguments is deprecated and so is this test.

Ref #1987
2017-01-31 12:01:14 +01:00
Martin Stein
ca38375107 test/fb_block_adapter: remove
The FB Block Adapter in os/src/test visualizes a block session via a
Framebuffer session. As far as I can see, it is not a test but rather
the base for a bump-in-the-wire component. However, for this role it
currently lacks a Block back-end. As it also would have to be updated to
use the new base API I removed it instead, leaving only its git
history as inspiration if someone needs such a component in the future.

Fixes #2245
Ref #1987
2017-01-31 12:01:14 +01:00
Christian Helmuth
d5e57d15c8 Remove debugging artifacts from lxip and usb libs 2017-01-31 12:01:14 +01:00
Christian Helmuth
eccc539651 noux-pkg/less: use LIBS when building tools
lesskey and lessecho missed the declaration of ${LIBS} on the compiler
command line, which ended up in unusable programs.

  > file noux-pkg/less/lesskey.broken
  noux-pkg/less/lesskey.broken: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter *empty*, not stripped
  > file noux-pkg/less/lesskey
  noux-pkg/less/lesskey: ELF 32-bit LSB executable, Intel 80386, version 1 (SYSV), dynamically linked, interpreter ld.lib.so, not stripped

The issue was identified because -O0 builds broke with

  ld: lesskey: The first section in the PT_DYNAMIC segment is not the .dynamic section

Unfortunately, this simple fix renders both tools also dependent to libm
and ncurses which they don't use.
2017-01-31 12:01:14 +01:00
Christian Helmuth
60c9192335 Enforce building jitterentropy library with -O0
Fixes #2256
2017-01-31 12:01:13 +01:00
Christian Helmuth
f1c877f205 Use Genode::size_t in rumpuser_getrandom_backend()
This streamlines the Genode-specific interface for both 32-bit and
64-bit architectures and fixes dynamic-linking issue with the rump
VFS due to differing size_t types.
2017-01-31 12:01:13 +01:00
Norman Feske
eb869ab2dc backdrop: API transition (fix deprecated warnings)
Issue #1987
2017-01-31 12:01:13 +01:00
Norman Feske
cf81c787e1 cli_monitor: remove unused gdb_command_config file
This file is unused since the commit "CLI monitor: remove unused GDB
command".

Issue #1832
2017-01-31 12:01:12 +01:00
Christian Prochaska
d2a2893959 noux_fork: fix run script
Fixes #2251
2017-01-31 12:01:12 +01:00
Norman Feske
47a129c6af run/platform_drv.inc: add 'need_usb_hid' function
This function returns the information whether the used platform relies
on USB HID for interactive scenarios by default as is the case for most
ARM platforms. In contrast, for x86 the USB driver can be omitted because
we can use the PS/2 driver (that is readily available in repos/os/).
2017-01-31 12:01:12 +01:00
Norman Feske
582e4aec02 ports-foc: remove L4Linux
Fixes #2216
2017-01-31 12:01:12 +01:00
Alexander Boettcher
f52c44647f core: replace misleading avl warning in detach
If the detach address is not the beginning of the region, one gets:

"virtual void Genode::Allocator_avl_base::free(void*): given
 address (0x180e0) is not the block start address (0x18000)"

Instead, print an explicit warning in front of the detach call.
2017-01-31 12:01:12 +01:00
Martin Stein
b57834f26b lwip/http_clnt: circumvent LWIP cleanup exceptions
Cleaning up LWIP when returning from the main function sporadically
leads to endless errors "Error: sys_arch_mbox_fetch: unknown exception
occured!". We let the client sleep forever at the end of its main function
to prevent tests from failing due to a flooded log.

Reg #2193
2017-01-31 12:01:12 +01:00
Martin Stein
c9f7e9dbb2 tz_vmm: update to new API and clean up
* get rid of printf
* use exceptions instead of error codes
* use Id_space instead of the individual block device registry
* use Cstring instead of char const*
* move method definitions > 1 line to .cc files
* rename Block Block_driver and Serial Serial_driver to avoid name clashes
  with the Genode namespace and thereby simplify the code
* use lambdas for Block device lookup and apply
* switch to the Component framework
* don't use env(), config(), ... and hand over env to each connection
* use Attached_mmio and Attached_rom/ram_dataspace instead of manual
  solutions

Fixes #2223
2017-01-31 12:01:11 +01:00
Martin Stein
0590e00e66 tz_vmm: use library instead of REQUIRES
Ref #2223
2017-01-31 12:01:11 +01:00
Norman Feske
02d5efcf3f init: apply routing to environment sessions
The init component used to create the CPU/RAM/PD/ROM sessions (the child
environment) for its children by issuing session requests to its parent,
which is typically core. This policy was hard-wired. This patch enables
the routing of the environment sessions of the children of init
according to the configured routing policy.

Because there is no hard-wired policy regarding the environment sessions
anymore, routes to respective services must be explicitly declared in
the init configuration. For this reason, the patch adjusts several run
scripts in this respect.

This patch removes the outdated '<if-args>' special handling of session
labels. The '<if-args>' feature will eventually be removed completely
(ref #2250)

Issue #2197
Issue #2215
Issue #2233
Issue #2250
2017-01-31 12:01:11 +01:00
Norman Feske
c1e399025e os: let empty label prefix/suffix match
This patch changes the 'Xml_node_label_score' to regard an empty
label_prefix or label_suffix as a match instead of a conflict. Until
now, there was no use case for an empty label_prefix. But with init's
new ability to route environment sessions, an empty prefix denotes any
child-initiated session (as oposed to an parent-initiated environment
session).

Issue #2215
Issue #2233
2017-01-23 16:46:05 +01:00
Christian Prochaska
9006b7ea6a cpu_sampler: fix 'Native_cpu_component' for Fiasco.OC
Fixes #2244
2017-01-23 16:46:04 +01:00
Alexander Boettcher
dfe351a02c Link device_pd statically.
Reduces the likelihood of issue reported by #2209. Commit is meant as stop
gap until #2209 gets fixed.
2017-01-23 16:46:04 +01:00
Norman Feske
645cd88a8b gems/menu_view: adaptation to new libc/vfs config
Issue #2217
2017-01-23 16:46:04 +01:00
Norman Feske
ddcc1cf6aa gems/png_image.h: fix context pointer handling
This patch fixes a problem that unsurfaced by the commit "menu_view: API
transition", which changed the class layout of the 'Png_image' so that
the 'Read_struct' pointer is no longer equal to the 'Png_image' pointer.
2017-01-23 16:46:04 +01:00
Norman Feske
e43da51bd6 base: handle dangling env sessions in ~Child
This commit addresses the situation where an environment session
outlives the session-providing service. In this case, the env session
got already invaidated at the destruction time of the server. However,
the underlying session-state structure continues to exist until the
client is destructed. During the eventual destruction of such a dangling
environment session, we have to be careful not to interact with the
no-longer existing service.

Ref #2197
2017-01-20 16:47:01 +01:00
Norman Feske
21458e6efa base: destruction of env-session-providing child
This patch addresses the corner case of destructing a child that
provides an enviroment session to another child. Before this patch,
this situation could result in an infinite loop.

The problem was introduced as a side effect of issue #2197 "base: apply
routing policy to environment sessions".
2017-01-20 16:47:00 +01:00
Norman Feske
94d991277f launchpad: distinguish unique name from elf name
This patch re-enables the launchpad to start multiple instances of the
same program. Without it, launchpad wrongly requests the binary ROM with
the child's unique name as label. The lookup of the first instance
solely succeeds because the unique name equals the binary name.
2017-01-20 16:47:00 +01:00
Reto Buerki
0938d69192 muen: Build sinfo code as static sinfo-muen library
And link it with core and virtualbox.
2017-01-20 16:47:00 +01:00
Reto Buerki
eec2cb34f8 Replace have_spec hw_x86_64_muen with have_spec muen 2017-01-20 16:46:59 +01:00
Christian Prochaska
1e2fb9432f terminal_crosslink: API transition
Fixes #2241
2017-01-20 16:46:59 +01:00
Christian Prochaska
dbb641d44a terminal session: return number of bytes written
To better support non-blocking terminal components, let the
'Terminal::Session::write()' function return the number of bytes
actually written.

Fixes #2240
2017-01-20 16:46:59 +01:00
Christian Prochaska
9f7a4feab4 test/terminal_crosslink: API transition
Issue #1987
2017-01-20 16:46:59 +01:00
Martin Stein
3e8cd442a3 test/cpu_quota: API transition
Fixes #2239
2017-01-20 16:46:58 +01:00
Christian Prochaska
ec5dbe66db trace_fs: API transition (fix 'deprecated' warnings)
Issue #1987
2017-01-20 16:46:58 +01:00
Christian Prochaska
5cc036e6ca rom_prefetcher: API transition (fix 'deprecated' warnings)
Issue #1987
2017-01-20 16:46:58 +01:00
Christian Prochaska
14ed670916 ram_fs: API transition (fix 'deprecated' warnings)
Issue #1987
2017-01-20 16:46:58 +01:00
Christian Prochaska
201bfabdac os/include/file_system_session: API transition (fix 'deprecated' warnings)
...and adaptation of the users of 'File_system::Session_rpc_object' to the
modified interface.

Issue #1987
2017-01-20 16:46:58 +01:00
Christian Prochaska
344f6f9e53 os/include/block: API transition (fix 'deprecated' warnings)
...and adaptation of the users of 'Block::Driver', 'Block::Root' and
'Block::Session_component' to the modified interface.

Issue #1987
2017-01-20 16:46:57 +01:00
Christian Prochaska
fb744e7423 loader: API transition (fix 'deprecated' warnings)
Issue #1987
2017-01-20 16:46:57 +01:00
Christian Prochaska
c1246c4c95 gdb_monitor: fix build error
Fixes #2227
2017-01-20 16:46:57 +01:00
Emery Hemingway
2351aef744 server/terminal_log: API transition
Ref #1987
2017-01-20 16:46:57 +01:00
Christian Helmuth
212cf856a5 Wifi driver libraries require x86 2017-01-20 16:46:57 +01:00
Christian Helmuth
dfc7c4b60b qt_launchpad: remove PWRN() 2017-01-20 16:46:56 +01:00
Christian Prochaska
4e07f612cf part_blk: API transition (fix 'deprecated' warnings)
Issue #1987
2017-01-20 16:46:56 +01:00
Christian Prochaska
dbb56a8068 nit_fb: API transition (fix 'deprecated' warnings)
Issue #1987
2017-01-20 16:46:56 +01:00
Christian Prochaska
cdcfc120cb nic_router: API transition (fix 'deprecated' warnings)
Issue #1987
2017-01-20 16:46:56 +01:00
Christian Prochaska
9be07d2244 os/include/nic: API transition (fix 'deprecated' warnings)
...and adaptation of the users of 'Nic::Root' and 'Nic::Session_component'
to the modified interface.

Issue #1987
2017-01-20 16:46:56 +01:00
Christian Prochaska
a63217b216 nic_bridge: API transition (remove 'deprecated' warnings)
Issue #1987
2017-01-20 16:46:56 +01:00
Christian Prochaska
33eefc4404 mixer: API transition (fix 'deprecated' warning)
Issue #1987
2017-01-20 16:46:55 +01:00
Christian Prochaska
cf4b663b38 log_terminal: API transition
Issue #1987
2017-01-20 16:46:55 +01:00
Emery Hemingway
18504b4801 merge lib/config_args with lib/posix
Merging the config_args library with the POSIX library supplies
'argc' and 'argv' arguments to components using a 'main' entry.

Fix #2218
Ref #1987
2017-01-20 16:46:55 +01:00
Christian Prochaska
7948a7261b ldso: constrain second linker symbol relocation pass on x86_64
Handle only GLOB_DAT relocations in the second relocation pass, like it is
done on x86_32 and ARM.

Fixes #2219
2017-01-20 16:46:55 +01:00
Christian Prochaska
e89cab4433 dynamic_rom: API transition (fix 'deprecated' warnings)
Issue #1987
2017-01-20 16:46:54 +01:00
Christian Prochaska
12c5982e2b test/rtc: API transition
Issue #1987
2017-01-20 16:46:54 +01:00
Christian Prochaska
101d0fee7c log_report: API transition
Issue #1987
2017-01-20 16:46:54 +01:00
Christian Prochaska
60aebe3005 rtc_drv: API transition (fix 'deprecated' warnings)
Issue #1987
2017-01-20 16:46:54 +01:00
Martin Stein
c16ee836cf test/timer: update to new API
Fixes #2231
2017-01-13 13:07:17 +01:00
Alexander Boettcher
6b2dcffdac acpica: API transition
Issue #1987
2017-01-13 13:07:16 +01:00
Norman Feske
703d68c7c1 themed_decorator: API transition
Issue #1987
2017-01-13 13:07:16 +01:00