[Eric.Commelin@masi.ibp.fr (Eric COMMELIN) writes:]
>- when a message is sent using M_READ, the buffer the kenel is provided is
>  used to receive the data from the server. The client can provide data
>  to the server in this buffer, because it will not be copied in the
>  server's address space.
No.  when M_READ, the buffer never reaches the server.  It is used only to
receive data back from the server.
>- if a message is sent without using M_READ, the server can read the data
>  contained in the buffer, but it can not write this buffer to send his
>  ansewer.
Not quite the whole story.  If the server is not registered for DMA, the
buffer is available, but read-only.  If the server has enabled DMA, the
buffer is mapped read/write.
>- Can I use a single msg_send to send raw data to a server an receive raw
>  data from it? Do you see another way?
Only for DMA servers.
>I would like to implement RPCs with 'in' and 'out' params coded in the 
>messages, as does the MIG (Mach Interface Generator) for the Mach
>micro-kernel.
VSTa message operations are either a "read" or a "write".  To move bulk data
in both directions you generally use a pair of operations, or operate as a
DMA server.  Designing your messaging system for bidirectional
scatter/gather bulks up your message data structure (and the code
implementing the function) for something that is relatively rare.
                                                        Andy
Received on Mon Dec  4 10:25:51 1995
This archive was generated by hypermail 2.1.8 : Thu Sep 22 2005 - 15:12:38 PDT