Commit Graph

2172 Commits

Author SHA1 Message Date
7a965bd877 Print error message if 'execve' failed 2012-06-06 17:27:54 +02:00
491a1f9c52 Let chroot test succeed on lx_hybrid platform 2012-06-06 17:27:21 +02:00
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
2eca297232 Run script for timer test 2012-06-06 16:15:25 +02:00
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
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
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
28744cebf7 Increase dde_ipxe 'nic_ep' thread stack size
Fixes #228.
2012-06-01 15:36:20 +02:00
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
de162831cb Spelling fixes reported by m-stein and ssumpf 2012-05-30 13:00:56 +02:00
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
b54bdea2aa News item for release 12.05 12.05 2012-05-30 11:34:42 +02:00
6ad8d3da0f Release notes for version 12.05 2012-05-30 11:34:42 +02:00
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
5206c19073 Update components.txt 2012-05-30 11:34:42 +02:00
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
7bffdacc9a Increase RAM quotas for 64-bit architectures 2012-05-29 16:08:50 +02:00
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
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
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
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
94e14ec20b Fiasco.OC: basic support for pandaboard 2012-05-29 13:55:00 +02:00
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
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
b86f0c8b32 Fix getdirentries in libc_ffat 2012-05-29 13:55:00 +02:00
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
36ae42b8ff Check for required tools on 'make prepare'
Fixes #221.
2012-05-29 13:55:00 +02:00
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
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
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
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
db21cd6f0e Add shutdown to lwIP libc plugin 2012-05-29 13:54:59 +02:00
30fe9d1912 Extend libc with libresolv functionality
This commit enables libc's own libresolv and its dependencies.
2012-05-29 13:54:59 +02:00
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
25a82d6dd5 Add 'libav' to libports
Fixes #212.
2012-05-29 13:54:59 +02:00
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
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
cba25cc1d6 Minor coding-style fixes 2012-05-29 13:54:59 +02:00
2b0c613336 Basic drivers for UART modules PL011 and TL16C750 2012-05-29 13:54:58 +02:00
a936cba296 Simple driver for the SP804 timer 2012-05-29 13:54:58 +02:00
45b4cb5bbf Simple driver for the PL390 Interrupt controller 2012-05-29 13:54:58 +02:00
dce09679bc Simple drivers for the Cortex A9 components 2012-05-29 13:54:58 +02:00
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
2eccfc5dc9 Defs for the boards, supported by 'base-hw' 2012-05-29 13:54:58 +02:00
4b90cba132 Boolean fields and strict write on Registers/MMIO 2012-05-29 13:54:58 +02:00
f01f42fdd7 Avoid ambiguousness of entry members in FIFO 2012-05-29 13:54:58 +02:00
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
9471490d01 Lua: Put Genode integration into own Lua lib 2012-05-29 13:54:58 +02:00
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
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