base: simplification of the IPC code

This commit replaces the stateful 'Ipc_client' type with the plain
function 'ipc_call' that takes all the needed state as arguments.
The stateful 'Ipc_server' class is retained but it moved from the public
API to the internal ipc_server.h header. The kernel-specific
implementations were cleaned up and simplified. E.g., the 'wait'
function does no longer exist. The badge and exception code are no
longer carried in the message buffers but are handled in kernel-specific
ways.

Issue #610
Issue #1832
This commit is contained in:
Norman Feske
2016-03-15 20:01:59 +01:00
committed by Christian Helmuth
parent 47878bd3e1
commit cda07b7da0
33 changed files with 1106 additions and 1115 deletions

View File

@ -17,13 +17,18 @@
#include <timer_session/connection.h>
#include <util/volatile_object.h>
/*
* The Genode headers must be included before any Linux header. Otherwise,
* the 'SUCCESS' macro defined in scsi/scsi_host.h collides with Genode's
* 'Rpc_exception_code::SUCCESS' enum value.
*/
#include "signal.h"
#include "list.h"
#include <extern_c_begin.h>
#include <lx_emul.h>
#include <extern_c_end.h>
#include "signal.h"
#include "list.h"
unsigned long jiffies;

View File

@ -21,12 +21,18 @@
#include <irq_session/connection.h>
#include <util/mmio.h>
/* Emulation */
/*
* The Genode headers must be included before any Linux header. Otherwise,
* the 'SUCCESS' macro defined in scsi/scsi_host.h collides with Genode's
* 'Rpc_exception_code::SUCCESS' enum value.
*/
#include <platform.h>
#include <platform/platform.h>
/* Emulation */
#include <extern_c_begin.h>
#include <lx_emul.h>
#include <extern_c_end.h>
#include <platform.h>
/* Linux */
#include <linux/platform_data/dwc3-exynos.h>