Commit Graph

12718 Commits

Author SHA1 Message Date
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
Christian Helmuth
9471490d01 Lua: Put Genode integration into own Lua lib 2012-05-29 13:54:58 +02:00
Christian Helmuth
28d4bdba83 Lua: Use some Genode functions from example
The example provides Timer::msleep() and the process' quota() to Lua
code.
2012-05-29 13:54:58 +02:00
Christian Helmuth
0200c27e33 Lua: Port of Lua runtime and simple example
The Lua runtime library is built in two variants: ANSI C and C++. The
C++ provides all Lua API function with C++ linkage and uses C++
exceptions instead of setjmp/longjmp for protected execution of Lua
chunks.

The ported version of Lua is 5.1.5.
2012-05-29 13:54:52 +02:00
Stefan Kalkowski
bd3c53be31 Implement LOG to Terminal adapter (issue #169)
This commit adds a terminal_log component, and a run-script which demonstrates
its usage. The terminal_log component provides the LOG service, and prints
every log-output prefixed by the session-label via a terminal-session.
2012-05-23 20:05:05 +02:00
Sebastian Sumpf
3bffcc17de Separate setjmp/longjmp from libc into own library 2012-05-23 19:18:33 +02:00
Sebastian Sumpf
376983ae4c DDE kit: Timer add schedule function form timers
Added 'dde_kit_timer_schedule_absolute' to timer interface.
2012-05-23 19:17:23 +02:00
Christian Prochaska
b6896cf22f SDL timer support
This patch adds a Genode-specific SDL timer backend.

Fixes #211.
2012-05-21 17:17:06 +02:00