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:
Norman Feske 2021-01-08 13:31:24 +01:00
parent 5ca3847c89
commit f57519397b
11 changed files with 16 additions and 27 deletions

View File

@ -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>(); }

View File

@ -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;

View File

@ -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();

View File

@ -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:

View File

@ -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); }

View File

@ -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);
};

View File

@ -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);
}

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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