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.