Commit Graph

3375 Commits

Author SHA1 Message Date
Christian Prochaska 4e43cdd041 Send 'invalid opcode' exception IPC on OKL4
When an invalid opcode gets executed, OKL4 switches to the kernel debugger
console instead of sending an exception IPC to the userland. This patch
fixes the problem by removing the code that invokes the debugger console.

This patch fixes #95.
2012-02-01 10:25:36 +01:00
Norman Feske 0cf5df378a Increase quota for USB stack in d3m 2012-01-30 23:55:54 +01:00
Norman Feske da5bf709e6 Consider count_in in Noux terminal-read function
It does not suffice to constrain the amount of returned data with chunk
size of the transport buffer because the client may have specified an
even smaller value. For example, libreadline reads single characters
from the terminal and expects a single character in return. A different
amount is interpreted as EOF.
2012-01-28 02:54:29 +01:00
Norman Feske 36be5ec4b0 Support closing of terminal sessions 2012-01-28 00:02:01 +01:00
Norman Feske 227bab4aa6 Test d3m's auto-probing of the boot device 2012-01-27 18:08:25 +01:00
Norman Feske d880386091 Qualifying RPC functions as const
This patch makes use of the recently added support for const RPC
functions by turning 'Framebuffer::Session::mode()' and
'Input::Session::is_pending()' into const functions.
2012-01-27 16:54:05 +01:00
Norman Feske 210eb98598 Support const RPC functions with no arguments
Until now, the RPC framework did not support const RPC functions. Rather
than being a limitation inherent to the concept, const RPC functions
plainly did not exist. So supporting them was not deemed too important.
However, there are uses of RPC interfaces that would benefit from a way
to declare an RPC function as const. Candidates are functions like
'Framebuffer::Session::mode()' and 'Input::Session::is_pending()'.

This patch clears the way towards declaring such functions as const.
Even though the patch is simple enough, the thorough support for
const-qualified RPC functions would double the number of overloads for
the 'call_member' function template (in 'base/include/util/meta.h'). For
this reason, the patch does support const getter functions with no
arguments only. This appears to be the most common use of such
functions.
2012-01-27 16:54:05 +01:00
Norman Feske 83a8e83ae0 Mark qt_script46, qt_scripttools as deprecated 2012-01-27 13:08:02 +01:00
Norman Feske 66fc277372 Add missing include search directory to qt_svg 2012-01-27 13:07:23 +01:00
Norman Feske 48ac5143a2 Add spin lock to DDE Kit
Linux DDE used to implement Linux spin locks based on 'dde_kit_lock'.
This works fine if a spin lock is initialized only once and used
infinitely. But if spin locks are initialized on-the-fly at a high rate,
each initialization causes the allocation of a new 'dde_kit_lock'.
Because in contrast to normal locks, spinlocks cannot be explicitly
destroyed, the spin-lock emulating locks are never freed. To solve the
leakage of locks, there seems to be no other way than to support the
semantics as expected by the Linux drivers. Hence, this patch introduces
a DDE Kit API for spin locks.
2012-01-27 02:01:07 +01:00
Norman Feske a107c89a8e Exceptions at construction time of dynamic objects
This patch implements the support needed to handle exceptions that occur
during the construction of objects dynamically allocated via the
'Allocator' interface. In this case, the compiler automatically invokes
a special delete operator that takes the allocator type (as supplied to
'new') as second argument. The implementation of this delete operator
has been added to the 'cxx' library. Because the operator delete is
called without the size of the object, we can use only those allocators
that ignore the size argument of the free function and print a warning
otherwise. The added 'Allocator::need_size_for_free()' function is used
to distinguish safe and unsafe allocators.
2012-01-26 21:19:30 +01:00
Norman Feske 759e789ddd Demo device driver manager (d3m)
The new d3m component is the designated device-driver manager for the
upcoming live CD. It addresses the auto probing of USB storage and ATAPI
boot devices (issue #94) and the aggregation of user input coming from
USB HID and PS/2.
2012-01-25 20:19:03 +01:00
Norman Feske 526671609b Let Git ignore 'linux_drivers' 2012-01-25 20:17:41 +01:00
Norman Feske 0058b15763 Helper for running a service as a child (slave)
The new 'Slave_policy' and 'Slave' classes are built upon the existing
child framework. They support the implementation of scenarios where a
service is started as a child of the client. This is usefull for
employing an existing service implementation as a local utility or
plugin.
2012-01-25 20:04:42 +01:00
Norman Feske 4b9407a212 Remove stale test_env lib from base-nova
This library was used during the first porting steps of Genode to NOVA
for executing parts of the framework API without core. Those bare-metal
tests are not maintained anymore. So this library can be removed.
2012-01-25 16:08:32 +01:00
Norman Feske 5bd2c1f205 Constrain build of gallium-i915 lib to i915 SPEC 2012-01-25 16:08:32 +01:00
Norman Feske c35207d9c4 Add mode_sigh and release to framebuffer::Session
The 'mode_sigh' function allows the client to receive notifications
about server-side display-mode changes. To respond to such a signal, the
client can use the new 'release' function, which acknowledges the mode
change at the server and frees the original framebuffer dataspace. Via a
subsequent call of 'dataspace', a framebuffer dataspace corresponding to
the new mode can be obtained. Related to issue #11.
2012-01-25 16:08:24 +01:00
Norman Feske 9e3ecade16 Replace Framebuffer::info by Framebuffer::mode
As a preliminary step for working on issue #11, this patch revisits the
'Framebuffer::info' RPC call. Instead of using C-style out paramters,
the new 'mode()' RPC call returns the mode information as an object of
type 'Mode'. Consequently, mode-specific functions such as
'bytes_per_pixel' have been moved to the new 'Framebuffer::Mode' class.
2012-01-25 13:27:47 +01:00
Norman Feske 07a9a8361e Remove stale ffat lib from libports
This version of the library was hardwired to the former USB storage
driver supplied with DDE Linux. This driver is no more. The ffat.mk lib
is superseded by the libc_ffat plugin anyway. This plugin uses Genode's
block session interface instead of co-locating the block driver with the
application.
2012-01-25 13:15:05 +01:00
Martin Stein 2313393e88 Remove support for '%b' in 'printf'. ref #76
Also adapt according buffer sizes in 'Format_command'.
2012-01-25 13:09:44 +01:00
Norman Feske 3ea9467343 Removed stale printf_stdio lib from base-nova 2012-01-25 13:04:04 +01:00
Norman Feske 834f433222 ATAPI driver support for re-opening sessions
The probing and I/O resource allocation is done only once at the
creation time of the first session. When closing and re-opening the
session, the '_device' object is simply reused. This patch fixes #92.
2012-01-25 12:58:41 +01:00
Norman Feske b1b59fe8a6 Support for building all libs via 'make lib'
Normally, the build system creates libraries as mere side effects of
building targets. There is no way to explicitly trigger the build of
libraries only. However, in some circumstances (for example for testing
the thorough build of all libraries) a mechanism for explicitly building
libraries would be convenient. This patch implements this feature. It
consists of two changes.

The new pseudo target at 'base/src/lib/target.mk' gathers all libraries
that are available in all repositories specified for the build directory
and makes its target depend on them. This way, by building 'lib', all
libraries would be traversed. However, in the (likely) situation that
those libraries include one or more invalid libraries (libraries with
unsatisfied build requirements), the build system would skip the target.

Hence, the second change introduces a new condition 'FORCE_BUILD_LIBS'
to the build system. By setting this variable to 'yes' in the 'target.mk'
file, we let the build system to traverse library dependencies for
all valid libraries regardless of the presence of any invalid library.
2012-01-24 18:56:35 +01:00
Norman Feske 91f59690c4 Handle corner case in nested RM handling
When using an ELF image as returned from the iso9660 server, such an
image is represented as a managed dataspace composed of various portions
of one RAM dataspace, each portion attached with a different offset.
Now, when mapping the text segment of the ELF image (usually starting at
0x1000 within the image), the code mapped at 0x1000 may correspond to
any offset within the RAM dataspace used by the iso9660 server. In
particular, the src-fault address (the one within the RAM dataspace) may
be higher than dst-fault address (somewhere just above 0x1000 where a
page-fault occurred). Thereby, 'curr_rm_base' may become negative
during the reverse lookup of 'Rm_client::pager'. This corner case used
to let the 'Fault_area::constrain' function return an invalid fault
area, and thereby let the reverse lookup fail. The improved version
explicitly checks for the address overflow condition and tries to
constrain the dst fault address to the largest possible log2 page within
the positive address range.
2012-01-23 21:04:57 +01:00
Althaf K Backer 31cda45e26 Fixed a typo (added 'require'), fix #87 2012-01-19 20:37:29 +01:00
Althaf K Backer 5659ab5e6c Fixed a typo 'you to your' 2012-01-18 11:00:22 +01:00
Stefan Kalkowski 05b0927302 Fix subversion usage of 'make prepare' in base-foc
It turns out that recent subversion clients are more nitpicking with respect to
the usage of 'svn update'. Formerly it was ok to just checkout a toplevel
directory of  some repository, and then update that parts in the repo that are
needed. This is used in the preparation makefile in 'base-foc' to just checkout
a small part of the L4Re software stack. Recent clients complain about using
update with some remote target, so we've to use 'checkout' here too.
This commit fixes #84.
2012-01-17 23:17:08 +01:00
Norman Feske 50b5a0d36d Const qualifiers for Input::Event accessors 2012-01-17 23:06:02 +01:00
Christian Helmuth 5ca9f16ff0 Refactor Linux socket handling into platform header
Besides the IPC framework, the daemon bridge will be the second user of
these functions.
2012-01-17 17:19:30 +01:00
Norman Feske ca122e75bc Simplified news item for web layout 2012-01-17 17:18:22 +01:00
Norman Feske 826a709fb6 News item about GitHub repository 2012-01-17 17:01:35 +01:00
Norman Feske b4506ea15e Fix postal address of Genode Labs 2012-01-17 16:09:13 +01:00
Norman Feske e1af0b3292 Updated doc/contributions.txt
With the recent change of Genode's development process and the switch to
GitHub, the contributions document has become a bit outdated. I rewrote
the document in a tutorial-like style and incorporated several practical
hints, in particular related to the recommended use of Git.
2012-01-17 15:39:43 +01:00
Norman Feske 793cbff1f6 Use correct name of the HelenOS kernel (SPARTAN) 2012-01-17 12:45:02 +01:00
Norman Feske 35af6cd34a Add rsync to road map as suggested by Martin Stein 2012-01-17 10:33:07 +01:00
Norman Feske e78bc02fcc Document Julian's Gentoo Portage overlay 2012-01-17 10:32:16 +01:00
Norman Feske 0a9d2dda7b Script for running bash interactively on Noux 2012-01-17 10:26:49 +01:00
Christian Helmuth 3b4a2d8c4c Ignore Vi swp files and patch residuals 2012-01-16 22:23:02 +01:00
Norman Feske cc85dc8afb Let GDB monitor use HLT for breakpoints, fix #83
The patch fixes a corner-case problem with using the two-byte 'INT 0'
instruction for breakpoints. The fix changes the breakpoint instruction
to the single-byte 'HLT'. 'HLT' is a privileged instruction and triggers
an exception when executed in user mode. Patch by Christian Prochaska.
2012-01-13 20:07:15 +01:00
Norman Feske 441d672440 Improved interactive GDB monitor run script
The new 'gdb_monitor_interactive.run' script extends the original
'gdb_monitor.run' script with a startup sequence that automates the
initial break-in at the main function of a dynamically linked binary.
Patch by Christian Prochaska.
2012-01-13 20:01:00 +01:00
Norman Feske 90e36f23af Consider CC_MARCH to find lx_hybrid crtn, fix #82
Patch by Christian Prochaska. This patch fixes problems with building
the 32-bit variant of 'fb_sdl' on a 64-bit host system.
2012-01-13 19:29:30 +01:00
Stefan Kalkowski aa4fa69987 Fix links and image references in relase notes
Fixes #77.
2012-01-12 09:19:05 +01:00
Norman Feske 76127433b7 Rationale for not quoting single '"' chars 2012-01-12 09:18:34 +01:00
Norman Feske 8c3f832f09 Noux: quote env values, fix #66
When reading the values of environment variables supplied via Genode
config mechanism, the XML attribute values were taken as is. On the libc
side, however, the values are processed using Genode's 'Arg_string'
functions. When unquoted, 'Arg_string' expects values to be either
identifiers or numbers. In the general case, however, env values cannot
be expected to satisfy these requirements. Hence, it is better to always
quote these values when reading the XML config. An alternative (maybe
better) solution would be to not use the 'Arg_string' classes in the
libc side.
2012-01-12 09:18:13 +01:00
Julian Stecklina 1db46a2345 Parameter passing to libc's open and fcntl, fix #73
By including the relevant headers, this problem is prevented in the
future because the compiler will complain.
2012-01-12 09:17:36 +01:00
Julian Stecklina 3c54d39307 Provide a default implementation of chdir, fix #68
The default implementation relies on the sequence open, fchdir, close.
Enable this implementation for the Noux libc plugin.
2012-01-12 09:17:14 +01:00
Stefan Kalkowski d43126e8e7 Fix section declaration in 'base-mb/doc/microblaze.txt'
Use first-level declaration for 'Current state' section, if there is no
section above it in the hierarchy. Fixes #78.
2012-01-10 18:56:40 +01:00
Stefan Kalkowski e0b0f9b9a2 Correct URI to 'challenges' page in the 'road_map.txt'. Fixes #74. 2012-01-10 18:50:00 +01:00
Norman Feske 500f02fa8d Simplified image references in release notes 2012-01-09 22:43:52 +01:00
Norman Feske 6bc2a44ba2 Tool cxx_to_html to convert C++ source to HTML 2012-01-08 14:09:47 +01:00