lock.h revision 1.1
11.1Sjmcneill/* $NetBSD: lock.h,v 1.1 2007/12/29 14:38:34 jmcneill Exp $ */
21.1Sjmcneill
31.1Sjmcneill/*-
41.1Sjmcneill * Copyright (c) 2007 Jared D. McNeill <jmcneill@invisible.ca>
51.1Sjmcneill * All rights reserved.
61.1Sjmcneill *
71.1Sjmcneill * Redistribution and use in source and binary forms, with or without
81.1Sjmcneill * modification, are permitted provided that the following conditions
91.1Sjmcneill * are met:
101.1Sjmcneill * 1. Redistributions of source code must retain the above copyright
111.1Sjmcneill *    notice, this list of conditions and the following disclaimer.
121.1Sjmcneill * 2. Redistributions in binary form must reproduce the above copyright
131.1Sjmcneill *    notice, this list of conditions and the following disclaimer in the
141.1Sjmcneill *    documentation and/or other materials provided with the distribution.
151.1Sjmcneill * 3. All advertising materials mentioning features or use of this software
161.1Sjmcneill *    must display the following acknowledgement:
171.1Sjmcneill *        This product includes software developed by Jared D. McNeill.
181.1Sjmcneill * 4. Neither the name of The NetBSD Foundation nor the names of its
191.1Sjmcneill *    contributors may be used to endorse or promote products derived
201.1Sjmcneill *    from this software without specific prior written permission.
211.1Sjmcneill *
221.1Sjmcneill * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
231.1Sjmcneill * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
241.1Sjmcneill * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
251.1Sjmcneill * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
261.1Sjmcneill * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
271.1Sjmcneill * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
281.1Sjmcneill * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
291.1Sjmcneill * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
301.1Sjmcneill * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
311.1Sjmcneill * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
321.1Sjmcneill * POSSIBILITY OF SUCH DAMAGE.
331.1Sjmcneill */
341.1Sjmcneill
351.1Sjmcneill#ifndef _ARCH_USERMODE_INCLUDE_LOCK_H
361.1Sjmcneill#define _ARCH_USERMODE_INCLUDE_LOCK_H
371.1Sjmcneill
381.1Sjmcneill__inline static void
391.1Sjmcneill__cpu_simple_lock_init(__cpu_simple_lock_t *lockp)
401.1Sjmcneill{
411.1Sjmcneill}
421.1Sjmcneill
431.1Sjmcneill__inline static void
441.1Sjmcneill__cpu_simple_lock(__cpu_simple_lock_t *lockp)
451.1Sjmcneill{
461.1Sjmcneill}
471.1Sjmcneill
481.1Sjmcneill__inline static void
491.1Sjmcneill__cpu_simple_unlock(__cpu_simple_lock_t *lockp)
501.1Sjmcneill{
511.1Sjmcneill}
521.1Sjmcneill
531.1Sjmcneill__inline static int
541.1Sjmcneill__SIMPLELOCK_LOCKED_P(__cpu_simple_lock_t *lockp)
551.1Sjmcneill{
561.1Sjmcneill	return *lockp == __SIMPLELOCK_LOCKED;
571.1Sjmcneill}
581.1Sjmcneill
591.1Sjmcneill__inline static int
601.1Sjmcneill__SIMPLELOCK_UNLOCKED_P(__cpu_simple_lock_t *lockp)
611.1Sjmcneill{
621.1Sjmcneill	return *lockp == __SIMPLELOCK_UNLOCKED;
631.1Sjmcneill}
641.1Sjmcneill
651.1Sjmcneill__inline static int
661.1Sjmcneill__cpu_simple_lock_try(__cpu_simple_lock_t *lockp)
671.1Sjmcneill{
681.1Sjmcneill	return __SIMPLELOCK_UNLOCKED;
691.1Sjmcneill}
701.1Sjmcneill
711.1Sjmcneill#endif /* !_ARCH_USERMODE_INCLUDE_LOCK_H */
72