Commit Graph

3366 Commits

Author SHA1 Message Date
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
Norman Feske
8cb27e2813 Let tcgetattr succeed for libc_log
At the startup of python's termios module, a sequence of 'tcgetattr' and
'tcsetattr' calls is executed. If one of those calls fails, the
initialization gets canceled. 'tcgetattr' is implemented via ioctl
operations on stdout. To let those operations succeed, the default
implementation of ioctl ('Plugin::ioctl') cannot be used because it
returns -1. Adding a dummy ioctl to the libc_log back end alleviates
this problem.
2012-01-06 19:07:34 +01:00
Norman Feske
1bd2b0ec08 List of automatically executed test cases 2012-01-06 16:43:54 +01:00
Norman Feske
c4adddb6b7 Add libc/compat to libc, fix #63 2012-01-06 13:21:29 +01:00
Martin Stein
26915c14b7 Add santity checks in 'tool/tool_chain', fix #62
In addition to autogen and autoconf, the tool-chain build script
requires ncurses (for building GDB), wget (to download the tool-chain
source code), and texinfo. Let the tool check if these packages are
installed instead of failing later during the build.
2012-01-06 09:49:43 +01:00
Stefan Kalkowski
8dd9c48a1a Fix dependency rules in openjpeg library makefile.
Let the object-files be dependend on the headers, that have to be constructed,
instead of making the source files dependend on them. Fixes #65.
2012-01-06 09:33:33 +01:00
Norman Feske
938ffd2bd5 Add libc/regex to libc, fix #64 2012-01-06 09:25:57 +01:00
Norman Feske
0938e3ef06 News item about FOSDEM 2012 2012-01-04 21:54:58 +01:00
Norman Feske
08ce32215d Bump year in copyright headers to 2012 2012-01-03 15:35:05 +01:00
Norman Feske
12d139aff6 News item for road map 2012 2012-01-02 17:43:52 +01:00