Files
genode/repos/dde_uos-intel-gpgpu/include/gpgpu_virt/session.h
2025-08-18 10:36:05 +02:00

36 lines
1.1 KiB
C++

#ifndef GPGPU_SESSION
#define GPGPU_SESSION
#include <session/session.h>
#include <base/rpc.h>
namespace gpgpu_virt {
struct Session : Genode::Session
{
static const char *service_name() { return "gpgpu"; }
enum { CAP_QUOTA = 1 };
virtual void register_vm(Genode::size_t size, Genode::Ram_dataspace_capability& ram_cap) = 0;
virtual void start_task(unsigned long kconf) = 0;
virtual void register_shm(Genode::size_t size, Genode::Ram_dataspace_capability& ram_cap) = 0;
virtual void ask_shm(int id, Genode::size_t &size, Genode::Ram_dataspace_capability& ram_cap) = 0;
/*******************
** RPC interface **
*******************/
GENODE_RPC(Rpc_register_vm, void, register_vm, Genode::size_t, Genode::Ram_dataspace_capability&);
GENODE_RPC(Rpc_start_task, void, start_task, unsigned long);
GENODE_RPC(Rpc_register_shm, void, register_shm, Genode::size_t, Genode::Ram_dataspace_capability&);
GENODE_RPC(Rpc_ask_shm, void, ask_shm, int, Genode::size_t&, Genode::Ram_dataspace_capability&);
GENODE_RPC_INTERFACE(Rpc_register_vm, Rpc_start_task, Rpc_register_shm, Rpc_ask_shm);
};
}
#endif // GPGPU_SESSION