Lines Matching refs:Lock
131 * PARAMETERS: Lock - Pointer to a valid RW lock
141 ACPI_RW_LOCK *Lock)
146 Lock->NumReaders = 0;
147 Status = AcpiOsCreateMutex (&Lock->ReaderMutex);
153 Status = AcpiOsCreateMutex (&Lock->WriterMutex);
160 ACPI_RW_LOCK *Lock)
163 AcpiOsDeleteMutex (Lock->ReaderMutex);
164 AcpiOsDeleteMutex (Lock->WriterMutex);
166 Lock->NumReaders = 0;
167 Lock->ReaderMutex = NULL;
168 Lock->WriterMutex = NULL;
177 * PARAMETERS: Lock - Pointer to a valid RW lock
192 ACPI_RW_LOCK *Lock)
197 Status = AcpiOsAcquireMutex (Lock->ReaderMutex, ACPI_WAIT_FOREVER);
205 Lock->NumReaders++;
206 if (Lock->NumReaders == 1)
208 Status = AcpiOsAcquireMutex (Lock->WriterMutex, ACPI_WAIT_FOREVER);
211 AcpiOsReleaseMutex (Lock->ReaderMutex);
218 ACPI_RW_LOCK *Lock)
223 Status = AcpiOsAcquireMutex (Lock->ReaderMutex, ACPI_WAIT_FOREVER);
231 Lock->NumReaders--;
232 if (Lock->NumReaders == 0)
234 AcpiOsReleaseMutex (Lock->WriterMutex);
237 AcpiOsReleaseMutex (Lock->ReaderMutex);
247 * PARAMETERS: Lock - Pointer to a valid RW lock
260 ACPI_RW_LOCK *Lock)
265 Status = AcpiOsAcquireMutex (Lock->WriterMutex, ACPI_WAIT_FOREVER);
272 ACPI_RW_LOCK *Lock)
275 AcpiOsReleaseMutex (Lock->WriterMutex);