semfastmutex-r0drv-freebsd.c revision 24b814713d57519124d491243137f551be686c66
4c221b0da1816acf2ca302b10092df059484468dvboxsync * IPRT - Fast Mutex Semaphores, Ring-0 Driver, FreeBSD.
4c221b0da1816acf2ca302b10092df059484468dvboxsync * Copyright (c) 2007 knut st. osmundsen <bird-src-spam@anduin.net>
4c221b0da1816acf2ca302b10092df059484468dvboxsync * Permission is hereby granted, free of charge, to any person
4c221b0da1816acf2ca302b10092df059484468dvboxsync * obtaining a copy of this software and associated documentation
4c221b0da1816acf2ca302b10092df059484468dvboxsync * files (the "Software"), to deal in the Software without
4c221b0da1816acf2ca302b10092df059484468dvboxsync * restriction, including without limitation the rights to use,
4c221b0da1816acf2ca302b10092df059484468dvboxsync * copy, modify, merge, publish, distribute, sublicense, and/or sell
4c221b0da1816acf2ca302b10092df059484468dvboxsync * copies of the Software, and to permit persons to whom the
4c221b0da1816acf2ca302b10092df059484468dvboxsync * Software is furnished to do so, subject to the following
4c221b0da1816acf2ca302b10092df059484468dvboxsync * conditions:
4c221b0da1816acf2ca302b10092df059484468dvboxsync * The above copyright notice and this permission notice shall be
4c221b0da1816acf2ca302b10092df059484468dvboxsync * included in all copies or substantial portions of the Software.
4c221b0da1816acf2ca302b10092df059484468dvboxsync * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
4c221b0da1816acf2ca302b10092df059484468dvboxsync * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
4c221b0da1816acf2ca302b10092df059484468dvboxsync * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
4c221b0da1816acf2ca302b10092df059484468dvboxsync * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
4c221b0da1816acf2ca302b10092df059484468dvboxsync * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
4c221b0da1816acf2ca302b10092df059484468dvboxsync * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
4c221b0da1816acf2ca302b10092df059484468dvboxsync * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
4c221b0da1816acf2ca302b10092df059484468dvboxsync * OTHER DEALINGS IN THE SOFTWARE.
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*******************************************************************************
4c221b0da1816acf2ca302b10092df059484468dvboxsync* Header Files *
4c221b0da1816acf2ca302b10092df059484468dvboxsync*******************************************************************************/
4c221b0da1816acf2ca302b10092df059484468dvboxsync/*******************************************************************************
4c221b0da1816acf2ca302b10092df059484468dvboxsync* Structures and Typedefs *
4c221b0da1816acf2ca302b10092df059484468dvboxsync*******************************************************************************/
4c221b0da1816acf2ca302b10092df059484468dvboxsync * Wrapper for the FreeBSD (sleep) mutex.
4c221b0da1816acf2ca302b10092df059484468dvboxsync /** Magic value (RTSEMFASTMUTEX_MAGIC). */
4c221b0da1816acf2ca302b10092df059484468dvboxsync /** The FreeBSD (sleep) mutex. */
4c221b0da1816acf2ca302b10092df059484468dvboxsyncRTDECL(int) RTSemFastMutexCreate(PRTSEMFASTMUTEX pMutexSem)
4c221b0da1816acf2ca302b10092df059484468dvboxsync AssertCompile(sizeof(RTSEMFASTMUTEXINTERNAL) > sizeof(void *));
4c221b0da1816acf2ca302b10092df059484468dvboxsync PRTSEMFASTMUTEXINTERNAL pFastInt = (PRTSEMFASTMUTEXINTERNAL)RTMemAllocZ(sizeof(*pFastInt));
4c221b0da1816acf2ca302b10092df059484468dvboxsync mtx_init(&pFastInt->Mtx, "IPRT Fast Mutex Semaphore", NULL, MTX_DEF | MTX_RECURSE);
return VERR_INVALID_PARAMETER;
return VINF_SUCCESS;
return VINF_SUCCESS;
return VINF_SUCCESS;