Hello,
I wanna use the new RPC with a L4Re::Dataspace as parameter. Unfortunately, I get an Error=0xfffff828=8_dec.
What's my Error?
/* shared.h */ #include <l4/sys/capability> #include <l4/sys/cxx/ipc_iface> #include <l4/re/dataspace>
struct SERV : L4::Kobject_t<SERV, L4::Kobject, 0x44> { L4_INLINE_RPC(int, transmit, (int32_t size, L4::Ipc::CapL4Re::Dataspace command)); typedef L4::Typeid::Rpcs<transmit_t> Rpcs; };
/* server.cc */ class Server : public L4::Epiface_t<Server, SERV> { public: int op_transmit(SERV::Rights, int32_t size, L4::Ipc::Snd_fpage command) { return 0; } };
/* client.cc */ L4::CapL4Re::Dataspace dataspace = L4Re::Util::cap_alloc.allocL4Re::Dataspace(); if (!(dataspace).is_valid()){ return -1; } int r = L4Re::Env::env()->mem_alloc()->alloc( size, dataspace, 0); if (r < 0){ return -1; } l4_addr_t ds_startAddr = 0; r = L4Re::Env::env()->rm()->attach( &ds_startAddr, dataspace->size(), L4Re::Rm::Search_addr, L4::Ipc::make_cap_rw(dataspace)); if (r < 0){ return -1; }
r = serverCap->transmit( size, dataspace); if (r){ printf("Error=0x%x=%d_dec talking to server\n",r); return -1; }
BTW: What's that 0x44 in the struct? Where do i find valid flags for this parameter?
Thanks again,
ba_f