Daniel Müller Daniel.Mueller at mailbox.tu-dresden.de
Tue Sep 10 10:53:00 CEST 2013

Hi again,

I believe the Dataspace_svr dispatch function is missing a case for 
L4Re::Dataspace_::Allocate (as declared in 
l4/pkg/l4re/include/dataspace-sys.h) -- I receive this opcode and since 
there is no handling the result is a return of -L4_ENOSYS (which will 
make subsequent processing fail).

As a quick fix the attached patch works but there should probably also 
be a hook (virtual function) in the Dataspace_svr class (and maybe some 
more sophisticated default processing, not sure).

-------------- next part --------------
diff --git a/l4/pkg/l4re/util/libs/dataspace_svr.cc b/l4/pkg/l4re/util/libs/dataspace_svr.cc
index 862b481..1a77b61 100644
--- a/l4/pkg/l4re/util/libs/dataspace_svr.cc
+++ b/l4/pkg/l4re/util/libs/dataspace_svr.cc
@@ -249,6 +249,10 @@ Dataspace_svr::dispatch(l4_umword_t obj, L4::Ipc::Iostream &ios)
       //L4::cout << "Dataspace_svr: R[" << this << "]: refs=" << ref_cnt() << '\n';
       return 1;
+    case L4Re::Dataspace_::Allocate:
+      return L4_EOK;
       return -L4_ENOSYS;

More information about the l4-hackers mailing list