"e" == edmundo edmundo@rano.demon.co.uk writes:
e> Sorry, but I'm still confused ... e> Both manuals have the same picture which shows a "string dope" e> consisting of four components:
e> - rcv string e> - rcv string size e> - snd string e> - snd string size
e> It looks as though the long part of any message (send or receive) may e> contain such string dopes.
It contains string dopes iff the msg size dope "strings" field is non-zero, and in that case, that field gives the number of string dopes the kernel expects to find.
e> So, does the message buffer of a send message descriptor contain these e> fields called "rcv string" and "rcv string size", and if so, how are e> they used?
e> Also, why does the User Manual say "Specifying send dope values less e> than the size dope values makes sense when the caller is willing to e> receive more data than it is sending"?
e> This is referring to the "Message Header" which is apparently found at e> the start of the "long part of the message" whose "presense is e> indicated by the message descriptor (snd msg/recv msg)".
e> So, in the case of a send message descriptor, what is the "size dope e> value" used for and why is it there? Similarly, what use is the "send e> dope value" in a receive message descriptor?
This is to support using the same message structure for the send and the receive part (i.e. pointing "snd descriptor" and "rcv descriptor" to the same address). In that case, the send dope tells the kernel how much is to be sent, while the size dope tells it how much space there is to accommodating data to be received.
Similarly, a sting dope consists of a send and a receive part, the one describing the strings to be sent (if any), the other describing the buffers for strings to be received (if any).
I've added comments along these lines to the user manual. Please check to see if it's clearer now.
Gernot -- Gernot Heiser ,--_|\ School of Computer Sci. & Engin. Phone: +61 2 9385 5156 / \ The University of NSW Fax: +61 2 9385 5995 _,--._* Sydney, Australia 2052 E-mail: G.Heiser@unsw.edu.au v http://www.cse.unsw.edu.au/~gernot PGP fingerprint: 94 1E B8 28 25 FD 7C 94 20 10 92 E5 0B FF 39 8F