SIM_INTERFACE(rapidio_v4) { void (*transaction_request)( conf_object_t *obj, uint16 target_id, uint16 source_id, uint64 addr, rapidio_operation_t op, bytes_t msg, uint64 id); void (*transaction_response)( conf_object_t *obj, bytes_t msg, uint64 id); void (*doorbell)( conf_object_t *obj, uint16 target_id, uint16 source_id, uint16 val); void (*deliver_message)( conf_object_t *obj, uint16 target_id, uint16 source_id, uint16 mbox, uint16 letter, bytes_t msg); void (*read_register_request)( conf_object_t *obj, uint16 target_id, uint16 source_id, uint8 hopcount, uint32 reg_no, uint64 id); void (*read_register_response)( conf_object_t *obj, uint32 val, uint64 id); void (*write_register)( conf_object_t *obj, uint16 target_id, uint16 source_id, uint8 hopcount, uint32 reg_no, uint32 val); void (*port_write)( conf_object_t *obj, uint16 target_id, uint16 source_id, uint8 hopcount, bytes_t msg); }; #define RAPIDIO_V4_INTERFACE "rapidio_v4"
This interface is designed for peer-to-peer RapidIO communication. It
supersedes the rapidio_v3
interface; the only significant
change is the use of response functions instead of return values, which
makes it possible to use the interface over a link where communication is
not instantaneous.
The rapidio_v4
interface has been superseded by
rapidio_v5
. Please see rapidio_v5
for more
details.