Starts a non-blocking unlock.
a0tError | a0ILock( | ||
a0tLock | *lock, | ||
int | count, | ||
a0tRequest | *request); |
Name | rd/wr | Description |
lock | write | Table of locks to be unlocked. |
count | read | Number of locks to unlocked. |
request | write | Request descriptor to hold the status. |
This function starts non-blocking unlocks for all the count elements of the table lock. The request is said to be completed when all locks are unlocked.
Every entry in the lock table must be previously prepared by the functions a0SetLockDMARegion(), a0SetLockDMARegionPart(), a0SetLockRead() and a0SetUnlockWrite().
The lock table lock must have been passed to a function like a0Lock() to set locks for the DMA regions.
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. |
a0IFReadPartLock() a0IFReadLock() a0IFWriteUnlock() a0Unlock() a0ILock() a0SetLockDMARegion() a0SetLockDMARegionPart() a0SetLockRead() a0SetUnlockWrite() a0WaitRequest() a0TestRequest()