Starts a non-blocking lock-and-read.
a0tError | a0IFReadLock( | | | |
| | a0tLock | *lock, | |
| | a0tDMARegion | *region, | |
| | a0tRequest | *request, | |
| | a0tFormat | *format, | |
| | void | *address, | |
| | int | count );
| |
| Name | rd/wr | Description |
| lock | write | Lock to be set to the DMA region. |
| region | read | DMA region to read. |
| request | write | Request descriptor to hold the status. |
| format | read | Format of the data to receive. |
| address | write | Address of the data to receive. |
| count | read | Number of elements of the data to receive. |
This function starts a non-blocking lock followed by a read from a specific DMA region region. It posts a request to lock-and-read the remote data with its own format information. The data received locally will be treated as count elements of the format and will be stored starting at address.
The DMA region region stays locked after the return of this function. The lock lock must be passed to a function like a0Unlock() to release the locked DMA region.
On return of this function, the variable pointed by request contains an opaque request that should be used later to wait or test the completion of the lock-and-read operation.
| Error Code | Description |
A0ErrFailSend | It was not possible to send a request. | |
A0ErrFailReceive | It was not possible to receive a reply. | |
A0ErrInvFormat | The format has an invalid type. | |
A0ErrNotImplem | The format has an unimplemented type. | |
A0ErrOk| Successful completion. | |
a0FReadLock() a0IFReadPartLock() a0IFRead() a0IFWriteUnlock() a0Unlock() a0SetLockRead() a0ILock() a0WaitRequest() a0TestRequest()