Lines Matching refs:Lock
165 * PARAMETERS: Lock - Pointer to a valid RW lock
175 ACPI_RW_LOCK *Lock)
180 Lock->NumReaders = 0;
181 Status = AcpiOsCreateMutex (&Lock->ReaderMutex);
187 Status = AcpiOsCreateMutex (&Lock->WriterMutex);
194 ACPI_RW_LOCK *Lock)
197 AcpiOsDeleteMutex (Lock->ReaderMutex);
198 AcpiOsDeleteMutex (Lock->WriterMutex);
200 Lock->NumReaders = 0;
201 Lock->ReaderMutex = NULL;
202 Lock->WriterMutex = NULL;
211 * PARAMETERS: Lock - Pointer to a valid RW lock
226 ACPI_RW_LOCK *Lock)
231 Status = AcpiOsAcquireMutex (Lock->ReaderMutex, ACPI_WAIT_FOREVER);
239 Lock->NumReaders++;
240 if (Lock->NumReaders == 1)
242 Status = AcpiOsAcquireMutex (Lock->WriterMutex, ACPI_WAIT_FOREVER);
245 AcpiOsReleaseMutex (Lock->ReaderMutex);
252 ACPI_RW_LOCK *Lock)
257 Status = AcpiOsAcquireMutex (Lock->ReaderMutex, ACPI_WAIT_FOREVER);
265 Lock->NumReaders--;
266 if (Lock->NumReaders == 0)
268 AcpiOsReleaseMutex (Lock->WriterMutex);
271 AcpiOsReleaseMutex (Lock->ReaderMutex);
281 * PARAMETERS: Lock - Pointer to a valid RW lock
294 ACPI_RW_LOCK *Lock)
299 Status = AcpiOsAcquireMutex (Lock->WriterMutex, ACPI_WAIT_FOREVER);
306 ACPI_RW_LOCK *Lock)
309 AcpiOsReleaseMutex (Lock->WriterMutex);