/* RapidIO base address for inbound requests set to value defined below *indicatesthatnospecificRIO-to-localaddresstranslationisrequested *anddrivershouldusedirect(one-to-one)addressmapping.
*/ #define RIO_MAP_ANY_ADDR (__u64)(~((__u64) 0))
/* *RapidIOdataexchangetransactionsarelistsofindividualtransfers.Each *transferexchangesdatabetweentwoRapidIOdevicesbyremotedirectmemory *accessandhasitsowncompletioncode. * *TheRapidIOspecificationdefinesfourtypesofdataexchangerequests: *NREAD,NWRITE,SWRITEandNWRITE_R.TheRapidIODMAchannelinterfaceallows *tospecifytherequiredtypeofwriteoperationorcombinationofthemwhen *onlythelastdatapacketrequiresresponse. * *NREAD:readupto256bytesfromremotedevicememoryintolocalmemory *NWRITE:writeupto256bytesfromlocalmemorytoremotedevicememory *withoutconfirmation *SWRITE:asNWRITE,butalladdressesandpayloadsmustbe64-bitaligned *NWRITE_R:asNWRITE,butexpectacknowledgmentfromremotedevice. * *ThedefaultexchangeischosenfromNREADandanyoftheWRITEmodesasthe *driverseesfit.Forwriterequeststheusercanexplicitlychoosebetween *anyofthewritemodesforeachtransaction.
*/ enum rio_exchange {
RIO_EXCHANGE_DEFAULT, /* Default method */
RIO_EXCHANGE_NWRITE, /* All packets using NWRITE */
RIO_EXCHANGE_SWRITE, /* All packets using SWRITE */
RIO_EXCHANGE_NWRITE_R, /* Last packet NWRITE_R, others NWRITE */
RIO_EXCHANGE_SWRITE_R, /* Last packet NWRITE_R, others SWRITE */
RIO_EXCHANGE_NWRITE_R_ALL, /* All packets using NWRITE_R */
};
struct rio_transfer_io {
__u64 rio_addr; /* Address in target's RIO mem space */
__u64 loc_addr;
__u64 handle;
__u64 offset; /* Offset in buffer */
__u64 length; /* Length in bytes */
__u16 rioid; /* Target destID */
__u16 method; /* Data exchange method, one of rio_exchange enum */
__u32 completion_code; /* Completion code for this transfer */
};
struct rio_transaction {
__u64 block; /* Pointer to array of <count> transfers */
__u32 count; /* Number of transfers */
__u32 transfer_mode; /* Data transfer mode */
__u16 sync; /* Synch method, one of rio_transfer_sync enum */
__u16 dir; /* Transfer direction, one of rio_transfer_dir enum */
__u32 pad0;
};
struct rio_async_tx_wait {
__u32 token; /* DMA transaction ID token */
__u32 timeout; /* Wait timeout in msec, if 0 use default TO */
};
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.