Hello Stefan,
On the other hand, if I got Tobias finding's about Spartan's IPC mechanisms right, there is a restriction of IPC-answers to something like 6 words? This won't be sufficient for the general case, so a synchronous IPC-call from the higher-level Genode abstractions needs to be mapped to an asynchronous message in the one, and the opposite direction right? Or is that assumption wrong, and you can also send longer replies?
Well, the assumption is correct, the basic IPC mechanism transmits only 6 words. But this fact is true for both the requests and the replies. If more data needs to be transferred in both directions, using shared memory areas (established via IPC_M_SHARE_OUT and IPC_M_SHARE_IN) is the preferred way. The basic 6-word IPC request-reply pairs are then used only as a means of synchronization between the two parties (and perhaps for some metadata), not for sending the actual data.
I see a point in that there is no combined IPC_M_DATA_READ_WRITE method (there are the separate IPC_M_DATA_WRITE and IPC_M_DATA_READ methods which transfer data by memory copying in one direction only). Such a combined method can be easily implemented if it is worth it and if that would help Tobias. On the other hand, everything that can be achieved by memory copying can be in principle also achieved by memory sharing.
This is yet another reason why the current mapping of the Genode concepts to the SPARTAN concepts should be briefly documented somewhere, so we can make informed decisions more easily.
M.D. _______________________________________________ HelenOS-devel mailing list [email protected] http://lists.modry.cz/cgi-bin/listinfo/helenos-devel
