Socket_Recvmsg - recvmsg()
In: R0 = Socket descriptor
R1 = Pointer to message descriptor
R2 = Flags
Out: R0 = Amount of data received
This call behaves in the same way as Socket_Recvfrom, except that the message descriptor is used to indicate where the address should be placed and to give a list of buffers to return the data in. The format of the message descriptor is:
R1 + 0 = Pointer to address to be filled in
4 = Size of supplied address block
8 = Pointer to array of buffer descriptors
12 = Number of buffer descriptors in use
16 = Pointer to list of access rights (unused by FreeNet)
20 = Size of access rights list
24 = Flags for received data
Each buffer descriptor consists of two words. The first is a pointer to the buffer, and the second the size of the buffer. The flags which can be returned in the message descriptor are:
MSG_TRUNC - Message was truncated.
MSG_EOR - This data completes a record.
|
|
|