703 Commits

Author SHA1 Message Date
Alexander Boettcher
fa834e34eb acpica: remove deprecated env() usage
Issue #1987
2017-01-13 13:07:01 +01:00
Christian Helmuth
e2a23a0ab3 Adapt VESA framebuffer driver to component API
Issue #1987
2017-01-13 13:06:55 +01:00
Norman Feske
3315294f2d Deprecate Genode::config()
Issue #1959
2017-01-13 13:06:54 +01:00
Norman Feske
4da52517c1 Simpify startup of dynamically linked binaries
This patch removes the component_entry_point library, which used to
proved a hook for the libc to intercept the call of the
'Component::construct' function. The mechansim has several shortcomings
(see the discussion in the associated issue) and was complex. So we
eventually discarded the approach in favor of the explicit handling of
the startup.

A regular Genode component provides a 'Component::construct' function,
which is determined by the dynamic linker via a symbol lookup.
For the time being, the dynamic linker falls back to looking up a 'main'
function if no 'Component::construct' function could be found.

The libc provides an implementation of 'Component::construct', which
sets up the libc's task handling and finally call the function
'Libc::Component::construct' from the context of the appllication task.
This function is expected to be provided by the libc-using application.
Consequently, Genode components that use the libc have to implement the
'Libc::Component::construct' function.

The new 'posix' library provides an implementation of
'Libc::Component::construct' that calls a main function. Hence, POSIX
programs that merely use the POSIX API merely have to add 'posix' to the
'LIBS' declaration in their 'target.mk' file. Their execution starts at
'main'.

Issue #2199
2017-01-13 13:06:52 +01:00
Martin Stein
83040d7d86 OpenSSL x86_64: enable NIST 64-bit optimization
On a 64-bit system, enabling the OpenSSL NIST 64-bit optimization should
result in considerable speed improvements when using curves: NIST-P224,
NIST-P256, and NIST-P521. Additionally it avoids that Tor complains
about having an OpenSSL that lacks this feature.

Ref #2193
2017-01-13 13:05:46 +01:00
Martin Stein
28153ad8ef LWIP HTTP client: do not require FOC
We don't know why this component requires FOC anymore and it seems to be fine with other
platforms at well.

Ref #2193
2016-12-23 16:52:09 +01:00
Christian Prochaska
2c3009b2ed qt5_avplay: show the main window earlier
The main window must be visible before avplay or a framebuffer filter
requests the framebuffer session which goes to Nitpicker, because the
parent view of the new Nitpicker view is part of the
QNitpickerPlatformWindow object, which is created when the main window
becomes visible. If this object does not exist yet, a page fault occurs.

Fixes #2187
2016-12-23 16:52:08 +01:00
Norman Feske
25a7ea3d40 base: rename 'Volatile_object' to 'Reconstructible'
Fixes #2151
2016-12-01 17:46:50 +01:00
Christian Helmuth
53271d8c5f Use default component stack size where appropriate 2016-11-30 13:38:06 +01:00
Martin Stein
f90964fdcc udp_client/http_clnt: print success message
Ref #2139
2016-11-30 13:38:05 +01:00
Martin Stein
9dddc905e2 lwip/http_clnt: fix ambiguous size_t
Ref #2139
2016-11-30 13:38:04 +01:00
Norman Feske
5a1cef6381 Make label prefixing more strict
This patch unconditionally applies the labeling of sessions and thereby
removes the most common use case of 'Child_policy::filter_session_args'.
Furthermore, the patch removes an ambiguity of the session labels of
sessions created by the parent of behalf of its child, e.g., the PD
session created as part of 'Child' now has the label "<child-name>"
whereas an unlabeled PD-session request originating from the child
has the label "<child-name> -> ". This way, the routing-policy of
'Child_policy::resolve_session_request' can differentiate both cases.

As a consequence, the stricter labeling must now be considered wherever
a precise label was specified as a key for a session route or a server-
side policy selection. The simplest way to adapt those cases is to use a
'label_prefix' instead of the 'label' attribute. Alternatively, the
'label' attribute may used by appending " -> " (note the whitespace).

Fixes #2171
2016-11-30 13:37:07 +01:00
Christian Helmuth
1216839bec vesa: handle platform session memory requests
Issue #1039
2016-11-30 13:37:07 +01:00
Alexander Boettcher
6e66e51088 platform_drv: use ram_session_guard
Issue #1039
2016-11-30 13:37:06 +01:00
Norman Feske
7f78d182f8 test/stdcxx: spelling fix 2016-11-30 13:37:05 +01:00
Norman Feske
b44f0554bd Adapt high-level components to new parent API
This patch adjusts the various users of the 'Child' API to the changes
on the account of the new non-blocking parent interface. It also removes
the use of the no-longer-available 'Connection::KEEP_OPEN' feature.

With the adjustment, we took the opportunity to redesign several
components to fit the non-blocking execution model much better, in
particular the demo applications.

Issue #2120
2016-11-30 13:37:03 +01:00
Norman Feske
8bafb9d41b Adapt low-level components to new parent interface
This patch adjusts the components of the os repository as well as device
drivers to the new parent interface.

Issue #2120
2016-11-25 16:06:42 +01:00
Christian Prochaska
c0e0f2874a qt5: remove launchpad-based 'QProcess' implementation
Fixes #1631
2016-11-25 15:27:26 +01:00
Norman Feske
d477a3e76d Avoid use of Connection::KEEP_OPEN feature
This feature is not compatible with the forthcoming nonblocking parent
interface. The patch removes the use of feature in all places except for
the components of the demo repository, which will under go a redesign
anyway.

Issue #2120
Issue #2165
2016-11-25 14:06:14 +01:00
Norman Feske
784e728727 Clean ldso from using deprecated APIs
Issue #1987
2016-11-08 15:26:32 +01:00
Emery Hemingway
ddf3716cff vfs: pass Env and allocator when creating file-systems
Fix #1891
2016-11-08 15:26:31 +01:00
Christian Prochaska
9d84541e6f libports: add pcsc-lite library
Fixes #2145
2016-11-08 15:26:29 +01:00
Christian Prochaska
9ed69d8b47 libports: add CCID library
Fixes #2144
2016-11-08 15:26:28 +01:00
Christian Prochaska
55d709a175 libports: add libusb
Fixes #2142
2016-11-08 15:26:28 +01:00
Christian Prochaska
340a18007c pthread: implement pthread_mutex_trylock()
Fixes #2141
2016-11-08 15:26:27 +01:00
Christian Prochaska
82e228a715 usb_drv: raw session fixes
- use the correct memory free functions on errors
- report packet submit errors
- rename 'Usb::Packet_descriptor::transfer.timeout' as
 'Usb::Packet_descriptor::transfer.polling_interval'

Fixes #2135
2016-10-21 12:39:37 +02:00
Christian Prochaska
44d4bf7a1b libc_pipe: ignore some flags in 'fcntl()'
Ignore file access mode and file creation flags for the F_SETFL command.

Fixes #2136
2016-10-21 12:39:37 +02:00
Christian Prochaska
b41b001003 qemu-usb: handle null pointer in 'free()'
Fixes #2128
2016-10-21 12:39:35 +02:00
Josef Söntgen
9013ca5364 libports: remove old lwIP foc_panda tracing tests
These tests were used for examine lwIP on foc_panda a few years back
but serve no particular purpose as of now.

Issue #2121.
2016-10-21 12:39:34 +02:00
Emery Hemingway
71f0757a30 transition Input infrastructure to new base API
* Supply Env to Input::Session_component
* Attach input event dataspace at Input::Client
* Process input events by lambda rather than pointer
* Supply Env and a label to Input::Connection

* Wm serves valid input_session to decorator
* Per-source signal handling at input_merger
* Base API update for dummy_input_drv, test_input
* Input API update for launcher, menu_view, terminal,
  mupdf, sdl, seoul, virtualbox

Ref #1987
2016-10-21 12:39:29 +02:00
Norman Feske
e370e08e01 Define Genode::size_t as unsigned long
Fixes #2105
2016-10-21 12:39:29 +02:00
Menno Valkema
ff06361c71 libc: memset valid allocations only in calloc()
Fixes #2097
2016-09-14 11:53:04 +02:00
Christian Prochaska
8a93e3e20a pthread: alternative for dynamic_cast in 'pthread_self()'
Fixes #2077
2016-08-29 17:29:39 +02:00
Martin Stein
dbbda9839b lwip: enhance http_srv_static and http_clnt
Both, client and server now read their IP config from their Genode config.
Furthermore, the client now waits 4 instead of 2 seconds before sending the
first request to prevent connection fails in tests with a slow startup. The
client truncates its packet dump for better readability.

Ref #114
2016-08-29 17:29:37 +02:00
Stefan Kalkowski
901b39259c lwip: use symbol.map to avoid clash with dns_init
Ref #2026
2016-08-29 17:29:37 +02:00
Norman Feske
17c79a9e23 base: avoid use of deprecated base/printf.h
Besides adapting the components to the use of base/log.h, the patch
cleans up a few base headers, i.e., it removes unused includes from
root/component.h, specifically base/heap.h and
ram_session/ram_session.h. Hence, components that relied on the implicit
inclusion of those headers have to manually include those headers now.

While adjusting the log messages, I repeatedly stumbled over the problem
that printing char * arguments is ambiguous. It is unclear whether to
print the argument as pointer or null-terminated string. To overcome
this problem, the patch introduces a new type 'Cstring' that allows the
caller to express that the argument should be handled as null-terminated
string. As a nice side effect, with this type in place, the optional len
argument of the 'String' class could be removed. Instead of supplying a
pair of (char const *, size_t), the constructor accepts a 'Cstring'.
This, in turn, clears the way let the 'String' constructor use the new
output mechanism to assemble a string from multiple arguments (and
thereby getting rid of snprintf within Genode in the near future).

To enforce the explicit resolution of the char * ambiguity, the 'char *'
overload of the 'print' function is marked as deleted.

Issue #1987
2016-08-29 17:27:10 +02:00
Christian Helmuth
3b9f022f1c libc: some symbol cleanups 2016-08-29 17:23:20 +02:00
Christian Helmuth
7038825522 qt5: initial support for multi-touch input
The initial support reports TouchPointPressed, TouchPointMoved, and
TouchPointReleased for multiple touch points, but is currently only
tested with widgets not leveraging multi-touch events. In other words, I
made sure synthetic mouse events are generated properly when using touch
screens.
2016-08-10 11:07:56 +02:00
Christian Helmuth
887b6233b1 lwip: remove unused alarm-scheduler implementation 2016-08-10 11:07:47 +02:00
Emery Hemingway
f8337b511b Move Session_label from os to base
Session_label constructor now takes a bare string rather than a
serialized argument buffer.
Replace all instances of previous constructor with 'label_from_args'
function.

Issue #1787
2016-07-11 13:09:24 +02:00
Christian Prochaska
29a12ab9a2 base: add 'Thread::mystack() function
The static 'Thread::mystack()' function returns the stack boundaries of
the calling thread. It is useful when a thread uses a diffent stack than
the primary one.

Fixes #2037
2016-07-11 12:06:05 +02:00
Christian Prochaska
bea48b636e lwip: avoid failed assertion on nonblocking connect()
When calling 'connect()' in nonblocking mode and the connection has been
established, don't call 'tcp_connect()' again, which would trigger an
assertion with the message 'tcp_connect: can only connect from state
CLOSED'.

Fixes #2039
2016-07-11 12:06:04 +02:00
Emery Hemingway
5dec689b6d remove server/tar_fs
Tar_fs is superseded by the vfs server.

Fixes #2024
2016-07-06 13:02:54 +02:00
Norman Feske
17beb9a463 qt_avplay: supply ldso to avplay slave 2016-06-28 11:09:28 +02:00
Emery Hemingway
0a01edded2 Path::strip_last_element removes path delimiter
Remove the trailing slash of a path where the path is not "/".
New Path::append_element convenience function.

Fixes #1744
2016-06-28 11:09:27 +02:00
Emery Hemingway
ca4f956f21 lib/libc: remove builtin sysctl release information
Fixes #2003
2016-06-28 11:09:25 +02:00
Alexander Boettcher
7556663e7e acpi_input: transform ACPI events to Genode input
Issue #1962
2016-06-28 11:09:25 +02:00
Alexander Boettcher
4e9aeb45ea platform_drv: sync startup between acpica
- platform_drv announces a separate "Acpi" session
- platform_drv waits for ROM "system" to change state to "acpi_ready"
- acpica waits for "Acpi" announcement
- acpica uses the platform driver via "Acpi" to reconfigure PCI devices
- acpica changes "system" state to "acpi_ready" after it ready with initialization
- platform_drv reacts on "system" state change to "acpi_ready" by announcing "Platform" session
- drivers start to operate as usual

Issue #2009
2016-06-22 12:21:42 +02:00
Norman Feske
2030ae678e Supplement base/log.h with raw output function
This patch introduces the Genode::raw function that prints output
directly via a low-level kernel mechanism, if available.

On base-linux, it replaces the former 'raw_write_str' function.
On base-hw, it replaces the former kernel/log.h interface.

Fixes #2012
2016-06-22 12:21:42 +02:00
Emery Hemingway
8ae2f65da8 uniform XML boolean attribute access
Replace 'attribute(...).has_value("yes")`
with 'attribute_value(..., false)'.

This allows for boolean configuration to be set with values such as
"true", "false", "yes", "no", or "1", "0".

Fixes #2002
2016-06-22 12:21:42 +02:00