mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-22 10:21:04 +00:00
Remove Pd_session::Native_pd definition from API
This type can be a forward declaration in the public API because its definition is required only in kernel-specific code. Fixes #3979
This commit is contained in:
parent
5ca3847c89
commit
f57519397b
@ -20,10 +20,10 @@
|
|||||||
namespace Genode { struct Hw_native_pd_client; }
|
namespace Genode { struct Hw_native_pd_client; }
|
||||||
|
|
||||||
|
|
||||||
struct Genode::Hw_native_pd_client : Rpc_client<Hw_native_pd>
|
struct Genode::Hw_native_pd_client : Rpc_client<Pd_session::Native_pd>
|
||||||
{
|
{
|
||||||
explicit Hw_native_pd_client(Capability<Native_pd> cap)
|
explicit Hw_native_pd_client(Capability<Pd_session::Native_pd> cap)
|
||||||
: Rpc_client<Hw_native_pd>(static_cap_cast<Hw_native_pd>(cap)) { }
|
: Rpc_client<Pd_session::Native_pd>(cap) { }
|
||||||
|
|
||||||
void upgrade_cap_slab() override {
|
void upgrade_cap_slab() override {
|
||||||
call<Rpc_upgrade_cap_slab>(); }
|
call<Rpc_upgrade_cap_slab>(); }
|
||||||
|
@ -17,10 +17,7 @@
|
|||||||
#include <base/rpc.h>
|
#include <base/rpc.h>
|
||||||
#include <pd_session/pd_session.h>
|
#include <pd_session/pd_session.h>
|
||||||
|
|
||||||
namespace Genode { struct Hw_native_pd; }
|
struct Genode::Pd_session::Native_pd : Interface
|
||||||
|
|
||||||
|
|
||||||
struct Genode::Hw_native_pd : Pd_session::Native_pd
|
|
||||||
{
|
{
|
||||||
virtual void upgrade_cap_slab() = 0;
|
virtual void upgrade_cap_slab() = 0;
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ namespace Genode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class Genode::Native_pd_component : public Rpc_object<Hw_native_pd>
|
class Genode::Native_pd_component : public Rpc_object<Pd_session::Native_pd>
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
@ -36,7 +36,7 @@ class Genode::Native_pd_component : public Rpc_object<Hw_native_pd>
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Native_pd_component(Pd_session_component &pd, char const *args);
|
Native_pd_component(Pd_session_component &, char const *args);
|
||||||
|
|
||||||
~Native_pd_component();
|
~Native_pd_component();
|
||||||
|
|
||||||
|
@ -24,7 +24,7 @@ namespace Genode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class Genode::Native_pd_component : public Rpc_object<Linux_native_pd,
|
class Genode::Native_pd_component : public Rpc_object<Pd_session::Native_pd,
|
||||||
Native_pd_component>
|
Native_pd_component>
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
@ -20,10 +20,10 @@
|
|||||||
namespace Genode { struct Linux_native_pd_client; }
|
namespace Genode { struct Linux_native_pd_client; }
|
||||||
|
|
||||||
|
|
||||||
struct Genode::Linux_native_pd_client : Rpc_client<Linux_native_pd>
|
struct Genode::Linux_native_pd_client : Rpc_client<Pd_session::Native_pd>
|
||||||
{
|
{
|
||||||
explicit Linux_native_pd_client(Capability<Native_pd> cap)
|
explicit Linux_native_pd_client(Capability<Native_pd> cap)
|
||||||
: Rpc_client<Linux_native_pd>(static_cap_cast<Linux_native_pd>(cap)) { }
|
: Rpc_client<Pd_session::Native_pd>(cap) { }
|
||||||
|
|
||||||
void start(Capability<Dataspace> binary) {
|
void start(Capability<Dataspace> binary) {
|
||||||
call<Rpc_start>(binary); }
|
call<Rpc_start>(binary); }
|
||||||
|
@ -17,13 +17,8 @@
|
|||||||
#include <pd_session/pd_session.h>
|
#include <pd_session/pd_session.h>
|
||||||
#include <dataspace/dataspace.h>
|
#include <dataspace/dataspace.h>
|
||||||
|
|
||||||
namespace Genode { struct Linux_native_pd; }
|
struct Genode::Pd_session::Native_pd : Interface
|
||||||
|
|
||||||
|
|
||||||
struct Genode::Linux_native_pd : Pd_session::Native_pd
|
|
||||||
{
|
{
|
||||||
void start(Capability<Dataspace> binary);
|
|
||||||
|
|
||||||
GENODE_RPC(Rpc_start, void, start, Capability<Dataspace>);
|
GENODE_RPC(Rpc_start, void, start, Capability<Dataspace>);
|
||||||
GENODE_RPC_INTERFACE(Rpc_start);
|
GENODE_RPC_INTERFACE(Rpc_start);
|
||||||
};
|
};
|
||||||
|
@ -82,8 +82,7 @@ Child::Process::Process(Type type,
|
|||||||
|
|
||||||
pd.assign_parent(parent_cap);
|
pd.assign_parent(parent_cap);
|
||||||
|
|
||||||
Linux_native_pd_client
|
Linux_native_pd_client lx_pd(pd.native_pd());
|
||||||
lx_pd(static_cap_cast<Linux_native_pd>(pd.native_pd()));
|
|
||||||
|
|
||||||
lx_pd.start(ldso_ds);
|
lx_pd.start(ldso_ds);
|
||||||
}
|
}
|
||||||
|
@ -20,10 +20,10 @@
|
|||||||
namespace Genode { struct Nova_native_pd_client; }
|
namespace Genode { struct Nova_native_pd_client; }
|
||||||
|
|
||||||
|
|
||||||
struct Genode::Nova_native_pd_client : Rpc_client<Nova_native_pd>
|
struct Genode::Nova_native_pd_client : Rpc_client<Pd_session::Native_pd>
|
||||||
{
|
{
|
||||||
explicit Nova_native_pd_client(Capability<Native_pd> cap)
|
explicit Nova_native_pd_client(Capability<Native_pd> cap)
|
||||||
: Rpc_client<Nova_native_pd>(static_cap_cast<Nova_native_pd>(cap)) { }
|
: Rpc_client<Pd_session::Native_pd>(static_cap_cast<Pd_session::Native_pd>(cap)) { }
|
||||||
|
|
||||||
Native_capability alloc_rpc_cap(Native_capability ep,
|
Native_capability alloc_rpc_cap(Native_capability ep,
|
||||||
addr_t entry, addr_t mtd) override
|
addr_t entry, addr_t mtd) override
|
||||||
|
@ -17,9 +17,7 @@
|
|||||||
#include <base/rpc.h>
|
#include <base/rpc.h>
|
||||||
#include <pd_session/pd_session.h>
|
#include <pd_session/pd_session.h>
|
||||||
|
|
||||||
namespace Genode { struct Nova_native_pd; }
|
struct Genode::Pd_session::Native_pd : Interface
|
||||||
|
|
||||||
struct Genode::Nova_native_pd : Pd_session::Native_pd
|
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
* Allocate RPC object capability
|
* Allocate RPC object capability
|
||||||
|
@ -27,7 +27,7 @@ namespace Genode {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
class Genode::Native_pd_component : public Rpc_object<Nova_native_pd>
|
class Genode::Native_pd_component : public Rpc_object<Pd_session::Native_pd>
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -291,7 +291,7 @@ struct Genode::Pd_session : Session, Ram_allocator
|
|||||||
/**
|
/**
|
||||||
* Common base class of kernel-specific PD interfaces
|
* Common base class of kernel-specific PD interfaces
|
||||||
*/
|
*/
|
||||||
struct Native_pd : Interface { };
|
struct Native_pd;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return capability to kernel-specific PD operations
|
* Return capability to kernel-specific PD operations
|
||||||
|
Loading…
x
Reference in New Issue
Block a user