OsdSynch.c (107328) | OsdSynch.c (117530) |
---|---|
1/*- 2 * Copyright (c) 2000 Michael Smith 3 * Copyright (c) 2000 BSDi 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 10 unchanged lines hidden (view full) --- 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * | 1/*- 2 * Copyright (c) 2000 Michael Smith 3 * Copyright (c) 2000 BSDi 4 * All rights reserved. 5 * 6 * Redistribution and use in source and binary forms, with or without 7 * modification, are permitted provided that the following conditions 8 * are met: --- 10 unchanged lines hidden (view full) --- 19 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 20 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 21 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 22 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 23 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 24 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 25 * SUCH DAMAGE. 26 * |
27 * $FreeBSD: head/sys/dev/acpica/Osd/OsdSynch.c 107328 2002-11-27 18:09:20Z iwasaki $ | 27 * $FreeBSD: head/sys/dev/acpica/Osd/OsdSynch.c 117530 2003-07-13 22:57:16Z njl $ |
28 */ 29 30/* 31 * 6.1 : Mutual Exclusion and Synchronisation 32 */ 33 34#include "acpi.h" 35 --- 297 unchanged lines hidden (view full) --- 333 334 wakeup(as); 335 AS_UNLOCK(as); 336 return_ACPI_STATUS(AE_OK); 337#else 338 return(AE_OK); 339#endif 340} | 28 */ 29 30/* 31 * 6.1 : Mutual Exclusion and Synchronisation 32 */ 33 34#include "acpi.h" 35 --- 297 unchanged lines hidden (view full) --- 333 334 wakeup(as); 335 AS_UNLOCK(as); 336 return_ACPI_STATUS(AE_OK); 337#else 338 return(AE_OK); 339#endif 340} |
341 342ACPI_STATUS 343AcpiOsCreateLock (ACPI_HANDLE *OutHandle) 344{ 345 struct mtx *m; 346 347 if (OutHandle == NULL) 348 return (AE_BAD_PARAMETER); 349 MALLOC(m, struct mtx *, sizeof(*m), M_ACPISEM, M_NOWAIT | M_ZERO); 350 if (m == NULL) 351 return (AE_NO_MEMORY); 352 353 mtx_init(m, "acpica subsystem lock", NULL, MTX_DEF); 354 *OutHandle = (ACPI_HANDLE)m; 355 return (AE_OK); 356} 357 358void 359AcpiOsDeleteLock (ACPI_HANDLE Handle) 360{ 361 struct mtx *m = (struct mtx *)Handle; 362 363 if (Handle == NULL) 364 return; 365 mtx_destroy(m); 366} 367 368/* 369 * The Flags parameter seems to state whether or not caller is an ISR 370 * (and thus can't block) but since we have ithreads, we don't worry 371 * about potentially blocking. 372 */ 373void 374AcpiOsAcquireLock (ACPI_HANDLE Handle, UINT32 Flags) 375{ 376 struct mtx *m = (struct mtx *)Handle; 377 378 if (Handle == NULL) 379 return; 380 mtx_lock(m); 381} 382 383void 384AcpiOsReleaseLock (ACPI_HANDLE Handle, UINT32 Flags) 385{ 386 struct mtx *m = (struct mtx *)Handle; 387 388 if (Handle == NULL) 389 return; 390 mtx_unlock(m); 391} |
|