mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-20 09:46:20 +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; }
|
||||
|
||||
|
||||
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)
|
||||
: Rpc_client<Hw_native_pd>(static_cap_cast<Hw_native_pd>(cap)) { }
|
||||
explicit Hw_native_pd_client(Capability<Pd_session::Native_pd> cap)
|
||||
: Rpc_client<Pd_session::Native_pd>(cap) { }
|
||||
|
||||
void upgrade_cap_slab() override {
|
||||
call<Rpc_upgrade_cap_slab>(); }
|
||||
|
@ -17,10 +17,7 @@
|
||||
#include <base/rpc.h>
|
||||
#include <pd_session/pd_session.h>
|
||||
|
||||
namespace Genode { struct Hw_native_pd; }
|
||||
|
||||
|
||||
struct Genode::Hw_native_pd : Pd_session::Native_pd
|
||||
struct Genode::Pd_session::Native_pd : Interface
|
||||
{
|
||||
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:
|
||||
|
||||
@ -36,7 +36,7 @@ class Genode::Native_pd_component : public Rpc_object<Hw_native_pd>
|
||||
|
||||
public:
|
||||
|
||||
Native_pd_component(Pd_session_component &pd, char const *args);
|
||||
Native_pd_component(Pd_session_component &, char const *args);
|
||||
|
||||
~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>
|
||||
{
|
||||
private:
|
||||
|
@ -20,10 +20,10 @@
|
||||
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)
|
||||
: Rpc_client<Linux_native_pd>(static_cap_cast<Linux_native_pd>(cap)) { }
|
||||
: Rpc_client<Pd_session::Native_pd>(cap) { }
|
||||
|
||||
void start(Capability<Dataspace> binary) {
|
||||
call<Rpc_start>(binary); }
|
||||
|
@ -17,13 +17,8 @@
|
||||
#include <pd_session/pd_session.h>
|
||||
#include <dataspace/dataspace.h>
|
||||
|
||||
namespace Genode { struct Linux_native_pd; }
|
||||
|
||||
|
||||
struct Genode::Linux_native_pd : Pd_session::Native_pd
|
||||
struct Genode::Pd_session::Native_pd : Interface
|
||||
{
|
||||
void start(Capability<Dataspace> binary);
|
||||
|
||||
GENODE_RPC(Rpc_start, void, start, Capability<Dataspace>);
|
||||
GENODE_RPC_INTERFACE(Rpc_start);
|
||||
};
|
||||
|
@ -82,8 +82,7 @@ Child::Process::Process(Type type,
|
||||
|
||||
pd.assign_parent(parent_cap);
|
||||
|
||||
Linux_native_pd_client
|
||||
lx_pd(static_cap_cast<Linux_native_pd>(pd.native_pd()));
|
||||
Linux_native_pd_client lx_pd(pd.native_pd());
|
||||
|
||||
lx_pd.start(ldso_ds);
|
||||
}
|
||||
|
@ -20,10 +20,10 @@
|
||||
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)
|
||||
: 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,
|
||||
addr_t entry, addr_t mtd) override
|
||||
|
@ -17,9 +17,7 @@
|
||||
#include <base/rpc.h>
|
||||
#include <pd_session/pd_session.h>
|
||||
|
||||
namespace Genode { struct Nova_native_pd; }
|
||||
|
||||
struct Genode::Nova_native_pd : Pd_session::Native_pd
|
||||
struct Genode::Pd_session::Native_pd : Interface
|
||||
{
|
||||
/**
|
||||
* 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:
|
||||
|
||||
|
@ -291,7 +291,7 @@ struct Genode::Pd_session : Session, Ram_allocator
|
||||
/**
|
||||
* Common base class of kernel-specific PD interfaces
|
||||
*/
|
||||
struct Native_pd : Interface { };
|
||||
struct Native_pd;
|
||||
|
||||
/**
|
||||
* Return capability to kernel-specific PD operations
|
||||
|
Loading…
x
Reference in New Issue
Block a user