Performs a blocking lock.
a0tError a0Lock( | | | |
| a0tLock | *lock, | |
| int | count, | |
| a0tRequest | *request);
| |
Name | rd/wr | Description |
lock | write | Table of locks to be set. |
count | read | Number of locks to set. |
request | write | Request descriptor to hold the status. |
This function performs blocking locks for all the count elements of the table lock. The request is said to be completed when all locks are set.
Every entry in the lock table must be previously prepared by the functions a0SetLockDMARegion(), a0SetLockDMARegionPart(), a0SetLockRead() and a0SetUnlockWrite().
The lock table lock must be passed to a function like a0Unlock() to release the locked DMA regions.
On return of this function, the variable pointed by request contains an opaque request that can be used later to check the completion status of the 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. | |
A0ErrOkSuccessful completion. | |
a0FReadPartLock() a0FReadLock() a0FWriteUnlock() a0Unlock() a0ILock() a0SetLockDMARegion() a0SetLockDMARegionPart() a0SetLockRead() a0SetUnlockWrite()