Commit Graph

3375 Commits

Author SHA1 Message Date
Josef Söntgen f325f314b5 Fix libc_noux's Plugin::getpeername() method
The argument's order was wrong in the memcpy() call. In addition
the wrong sysio struct was used for the addrlen argument.

Fixes #238.
2012-06-08 14:32:20 +02:00
Norman Feske ed867817b6 Test for combining loader with chroot 2012-06-06 17:31:52 +02:00
Norman Feske 17b60f8d41 Propagate loader-session errors as exceptions 2012-06-06 17:30:06 +02:00
Norman Feske 7a965bd877 Print error message if 'execve' failed 2012-06-06 17:27:54 +02:00
Norman Feske 491a1f9c52 Let chroot test succeed on lx_hybrid platform 2012-06-06 17:27:21 +02:00
Norman Feske e4f28625e3 Construct process member as late as possible
When creating a 'Child' object with an already active entrypoint,
session requests may arrive as soon as the '_process' is created. We
have to make sure that at least all parts of the 'Child' object needed
for serving 'session' requests are constructed. This is particularly
important for the '_policy' member.
2012-06-06 17:24:07 +02:00
Martin Stein 2eca297232 Run script for timer test 2012-06-06 16:15:25 +02:00
Josef Söntgen 7e3c303ad0 Fix bugs in libc_noux's sendto() method
The sysio's struct fields need to be properly set on each syscall. This
fixes a bug where the wrong fd is used after the first sendto syscall.

Also the minimal buffer size calculation uses the wrong size.

Fixes #235.
2012-06-06 13:57:55 +02:00
Stefan Kalkowski c02f04da76 Fiasco.OC: raise sigma0's priority to maximum.
When sigma0 runs on a lower priority than the rest of the threads in the
system it might come to the point that while answering a page fault or
I/O memory area request the timeslice of the caller (core-pager) gets
fully consumed. As long as other threads are still executable and don't block
sigma0 won't do progress anymore, because it runs at the lowest priority.
This commit simply sets sigma0's priority to the highest in the system.
2012-06-04 17:10:16 +02:00
Stefan Kalkowski 21ffbc0080 Fiasco.OC/ARM: fix image creation in run-script
When invoking the bootstrap build in the L4RE build-system to create
a single elf-image containing all needed files to boot a scenario, don't
use the 'ENTRY' variable, but 'E' variable instead. Otherwise 'ENTRY'
might get overridden (dependent on the make-version). Moreover, using
'E' seems to be the way L4Re is expecting it has to be invoked.

Fixes #226
2012-06-04 12:05:27 +02:00
Christian Prochaska 28744cebf7 Increase dde_ipxe 'nic_ep' thread stack size
Fixes #228.
2012-06-01 15:36:20 +02:00
Josef Söntgen b6394495d3 Replace yacc call with bison
We are using bison to generate certain files when preparing the libc.
However the yacc(1) wrapper script is used instead of calling bison
directly which does not work if bison is not installed but the original
yacc(1).

Fixes #225. Fixes #227.
2012-06-01 12:44:48 +02:00
Norman Feske de162831cb Spelling fixes reported by m-stein and ssumpf 2012-05-30 13:00:56 +02:00
Stefan Kalkowski 04969dcf69 Fiasco.OC: Don't map page 0 in core (fix #223)
When core requests all RAM from sigma0 it normally unmaps page 0 so that
null-pointer dereferences are detected by a pagefault. The unmap syscall
in the Fiasco.OC base platform was used insufficiently in this particular
case.
2012-05-30 11:36:34 +02:00
Norman Feske b54bdea2aa News item for release 12.05 2012-05-30 11:34:42 +02:00
Norman Feske 6ad8d3da0f Release notes for version 12.05 2012-05-30 11:34:42 +02:00
Norman Feske 87fe6e5c16 Road-map update
The media player has been traded for the persistent storage topic
because the latter one naturally builds upon the just recently added
file-system interface. Furthermore, we defer the live CD until July as
we realized that we first need to overhaul low-level components such as
USB before the new live system can be expected to work as intended.
2012-05-30 11:34:42 +02:00
Norman Feske 5206c19073 Update components.txt 2012-05-30 11:34:42 +02:00
Christian Helmuth a497a22edf Moon: Route to IO_PORT/IRQ services
The timer needs IRQ and IO_PORT on platforms where it uses the PIT.
2012-05-30 08:51:28 +02:00
Christian Helmuth 7bffdacc9a Increase RAM quotas for 64-bit architectures 2012-05-29 16:08:50 +02:00
Josef Söntgen 7b8ebe34e9 libcrypto: Provide x86_64-specific implementations
modexp512 and rc4-md5 code were missing for x86_64. The files are now
generated on openssl-prepare and will be used when building for x86_64.

Fixes #224.
2012-05-29 14:58:01 +02:00
Stefan Kalkowski 337bb6d5f8 Build gmp and mpfr libary on x86_32 only (fix #135)
By now the gmp-library works builds on x86/32bit only. The mpfr library
depends on gmp, so make both library dependent on the corresponding platform
variables. Look at the discussion of issue #135.
2012-05-29 13:55:00 +02:00
Stefan Kalkowski 34efd709cc Rework l4android script for convenience reasons
Use terminals for LOG output of L4Android scenario, as well as a terminal
session for the Linux terminal. Now everything can be used interactively
on one screen: the Linux/Android framebuffer, the Linux console, and the
LOG-output of L4Linux.
2012-05-29 13:55:00 +02:00
Stefan Kalkowski 54e08cfed5 Fiasco.OC: make capability ref-counter thread-safe
Introduce process global spin-lock for Cap_index's reference-counter
to avoid non-atomic increment/decrement of the counter. Here, we don't
use a static Spinlock object, because it's constructor wouldn't be
initialized before used for the first time.
2012-05-29 13:55:00 +02:00
Stefan Kalkowski 94e14ec20b Fiasco.OC: basic support for pandaboard 2012-05-29 13:55:00 +02:00
Stefan Kalkowski c3145c1a5d Fiasco.OC: fix l4_caps_equal kernel patch
A kernel capability that is invalid has no kobject pointer, so check whether
it's valid beforehand
2012-05-29 13:55:00 +02:00
Stefan Kalkowski 66fbea127b Fiasco.OC: fix bugs in cap_map insertion/removal
The following fixes partly solve the problems triggered by the noux stress
test introduced by nfeske in issue #208.
* The check whether a capability exists in the Cap_map, and its insertion,
  has to be done atomically
* While removing a capability it is looked up in the Cap_map via its id,
  check whether the found capability pointer is the same like the looked up,
  otherwise the wrong capability gets freed
* When a local capability is un- resp. marshalled, only the local pointer
  gets transfered, not the redundant capability id
* Introduce several assertions and warnings to facilitate debugging
2012-05-29 13:55:00 +02:00
Norman Feske b86f0c8b32 Fix getdirentries in libc_ffat 2012-05-29 13:55:00 +02:00
Christian Helmuth bf91ea8926 Enable building libav without optimization
Some source files do not build with -O0 due to conflicting register
allocation and inline assembler constrains. We enforce optimization (O2)
for these files.

Also, I reduced the noise from warning messages induced by lazy handling
of "assignment discards ‘const’ qualifier" and "passing argument from
incompatible pointer type" in third-party sources.
2012-05-29 13:55:00 +02:00
Christian Helmuth 36ae42b8ff Check for required tools on 'make prepare'
Fixes #221.
2012-05-29 13:55:00 +02:00
Christian Prochaska 06fdc7b897 Qt-based media player
This patch implements a simple Qt-based media player which is actually a
graphical user interface for the SDL-based 'avplay' media player from
'libav'. It starts 'avplay' as a child and shows its graphical output in a
'QNitpickerViewWidget'. The widgets for controlling the player state send
the according keyboard and mouse input events to 'avplay'.

The 'qt_avplay' player supports the following configuration options:

<mediafile name="..."/>
-> name of the media file to play

<framebuffer_filter name="..." ram_quota="..."/> (may appear multiple times)
-> name of a framebuffer filter service to filter the video output

Fixes #222.
2012-05-29 13:55:00 +02:00
Josef Söntgen 8f4b3dd4f1 Add gnu-netcat as Noux package
Please find run script at 'ports/run/noux_net_netcat.run'.
2012-05-29 13:54:59 +02:00
Josef Söntgen d211007aba Add port of OpenSSL to libports
This commit contains the initial port of OpenSSL to Genode. It certainly
needs some more work to get things straight - it compiles fine but does
not work because of a NULL pointer exception.
2012-05-29 13:54:59 +02:00
Josef Söntgen 6d8a7c0cc4 Initial version of networking support for Noux
Noux/net adds network functionality to noux. Currently most basic
network related system calls including 'accept', 'bind', 'connect',
'listen', 'recv', 'send', 'shutdown', and 'socket' are implemented by
wrapping lwip's network functions.

At the moment noux/net is rarely usable, though it is possible to
use netcat to send a message to a netcat server which listen on a
given port in noux/net.
2012-05-29 13:54:59 +02:00
Norman Feske db21cd6f0e Add shutdown to lwIP libc plugin 2012-05-29 13:54:59 +02:00
Josef Söntgen 30fe9d1912 Extend libc with libresolv functionality
This commit enables libc's own libresolv and its dependencies.
2012-05-29 13:54:59 +02:00
Christian Prochaska ba6dae9946 'avplay' media player
With this patch the SDL-based 'avplay' media player, which is part of
'libav', can be built. The run script expects a media file named
'mediafile' in the 'bin' directory.

Fixes #216.
2012-05-29 13:54:59 +02:00
Christian Prochaska 25a82d6dd5 Add 'libav' to libports
Fixes #212.
2012-05-29 13:54:59 +02:00
Christian Prochaska c2f23de2e7 Introduce server-role member to 'Child' class
This patch is needed to use children as services in a dynamic
way (closing and reopening sessions).
2012-05-29 13:54:59 +02:00
Josef Söntgen 4ba1669b39 Add dynamic_pointer_cast method to Shared_pointer
This methods is currently only used for casting an Io_channel
object to an Socket_io_channel object.
2012-05-29 13:54:59 +02:00
Norman Feske cba25cc1d6 Minor coding-style fixes 2012-05-29 13:54:59 +02:00
Martin Stein 2b0c613336 Basic drivers for UART modules PL011 and TL16C750 2012-05-29 13:54:58 +02:00
Martin Stein a936cba296 Simple driver for the SP804 timer 2012-05-29 13:54:58 +02:00
Martin Stein 45b4cb5bbf Simple driver for the PL390 Interrupt controller 2012-05-29 13:54:58 +02:00
Martin Stein dce09679bc Simple drivers for the Cortex A9 components 2012-05-29 13:54:58 +02:00
Martin Stein 056f980d4e Atomic compare exchange for ARM platforms
Makes similar kernel-specific implementations unnecessary,
although i don't delete them with this commit.
2012-05-29 13:54:58 +02:00
Martin Stein 2eccfc5dc9 Defs for the boards, supported by 'base-hw' 2012-05-29 13:54:58 +02:00
Martin Stein 4b90cba132 Boolean fields and strict write on Registers/MMIO 2012-05-29 13:54:58 +02:00
Martin Stein f01f42fdd7 Avoid ambiguousness of entry members in FIFO 2012-05-29 13:54:58 +02:00
Sebastian Sumpf 9f73476b37 New DDE-Linux-based USB driver
The new 'dde_linux' repository will host device drivers ported from the
Linux kernel. In contrast to the original 'linux_drivers' repository,
'dde_linux' does not contain any 3rd-party source code. To download the
Linux kernel source code and extract the drivers, execute the 'make
prepare' rule of the top-level Makefile. The initial version of the
'dde_linux' repository comes with an USB driver. The porting methodology
follows the path of the Intel GEM port. Instead of attempting to provide
a generic Linux environment that works across drivers, each driver comes
with a specially tailored DDE.

The DDE consists of Genode-specific implementations of Linux API
functions as declared in 'lx_emul.h'. Most of these functions are
dummies that must merely be provided to resolve dependencies at the
linking stage. They are called by unused code-paths.

As of now, the USB driver support UHCI, EHCI on the x86_32 platform. I
exposes USB HID devices and USB storage devices via Genode's input-session
and block-session respectively.

The USB driver is accompanied with two run scripts 'run/usb_hid.run' and
'run/usb_storage.run'.
2012-05-29 13:54:58 +02:00