Syslink API work - greatly simplify the syslink_msg structure. Reimplement
the user API (NOTE: DMA buffers not yet implemented) and start working on
a kernel backend API.
Get rid of the inband DMA buffer fields and physical routing fields.
Replace the 32 bit message id with a 64 bit message id.
The 64 bit msgid allows guarenteed unique ids to be synthesized without
requiring the end points to actually track message ids.
Add a RPC protocol field (sm_proto) and move the command/reply bit and
endian detect bits from sm_msgid to sm_proto. This allows the exact same
sm_msgid supplied in a command to be used in the reply and frees up bits
in the msgid that were previously going to be used for the protocol.
A separate protocol field also makes it a lot easier for the recipient
to check that the protocol is compatible with its expectations.
Implement a message based userland API and implement a syslink pair feature
so userland can get descriptors for both sides, for testing. Implement
buffering limits, non-blocking I/O (but not select support yet), check
for duplicate message ids in active commands and match replies to commands.
Implement endian conversion to native endianess for the syslink message
header and any structured message elements.
Begin work on an out-of-band dma buffer API.