Lines Matching defs:as
25 * THIS SOFTWARE IS PROVIDED BY WASABI SYSTEMS, INC. ``AS IS'' AND
52 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
114 struct acpi_semaphore *as;
121 as = malloc(sizeof(*as), M_ACPI, M_NOWAIT);
122 if (as == NULL)
125 mutex_init(&as->as_slock, MUTEX_DEFAULT, IPL_NONE);
126 cv_init(&as->as_cv, "acpisem");
127 as->as_units = InitialUnits;
128 as->as_maxunits = MaxUnits;
132 as, as->as_maxunits, as->as_units));
134 *OutHandle = (ACPI_HANDLE) as;
146 struct acpi_semaphore *as = (void *) Handle;
148 if (as == NULL)
151 cv_destroy(&as->as_cv);
152 mutex_destroy(&as->as_slock);
153 free(as, M_ACPI);
155 ACPI_DEBUG_PRINT((ACPI_DB_MUTEX, "destroyed semaphore %p\n", as));
168 struct acpi_semaphore *as = (void *) Handle;
178 if (as == NULL)
193 mutex_enter(&as->as_slock);
197 Units, as, as->as_units, Timeout));
200 if (as->as_units >= Units) {
201 as->as_units -= Units;
209 error = cv_timedwait(&as->as_cv, &as->as_slock, timo);
216 mutex_exit(&as->as_slock);
229 struct acpi_semaphore *as = (void *) Handle;
231 if (as == NULL)
234 mutex_enter(&as->as_slock);
238 Units, as, as->as_units));
240 as->as_units += Units;
241 if (as->as_units > as->as_maxunits)
242 as->as_units = as->as_maxunits;
243 cv_broadcast(&as->as_cv);
245 mutex_exit(&as->as_slock);