From: mpi Date: Sun, 11 Feb 2018 09:30:12 +0000 (+0000) Subject: Move landisk to MI mutex. X-Git-Url: http://artulab.com/gitweb/?a=commitdiff_plain;h=10c1b822ec320729a4910ae11faecc3bb5a65df2;p=openbsd Move landisk to MI mutex. ok dlg@ --- diff --git a/sys/arch/sh/conf/files.sh b/sys/arch/sh/conf/files.sh index a08d8b8b107..a81fd8b6c13 100644 --- a/sys/arch/sh/conf/files.sh +++ b/sys/arch/sh/conf/files.sh @@ -1,4 +1,4 @@ -# $OpenBSD: files.sh,v 1.5 2015/07/17 22:52:29 tedu Exp $ +# $OpenBSD: files.sh,v 1.6 2018/02/11 09:30:12 mpi Exp $ # $NetBSD: files.sh3,v 1.32 2005/12/11 12:18:58 christos Exp $ file arch/sh/sh/cache.c @@ -17,7 +17,6 @@ file arch/sh/sh/mem.c file arch/sh/sh/mmu.c file arch/sh/sh/mmu_sh3.c sh3 file arch/sh/sh/mmu_sh4.c sh4 -file arch/sh/sh/mutex.c file arch/sh/sh/pmap.c file arch/sh/sh/process_machdep.c file arch/sh/sh/sh_machdep.c diff --git a/sys/arch/sh/include/mutex.h b/sys/arch/sh/include/mutex.h index 461a462049f..18c3edb3727 100644 --- a/sys/arch/sh/include/mutex.h +++ b/sys/arch/sh/include/mutex.h @@ -1,62 +1,3 @@ -/* $OpenBSD: mutex.h,v 1.4 2017/05/18 01:27:49 visa Exp $ */ +/* $OpenBSD: mutex.h,v 1.5 2018/02/11 09:30:12 mpi Exp $ */ -/* - * Copyright (c) 2004 Artur Grabowski - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#ifndef _SH_MUTEX_H_ -#define _SH_MUTEX_H_ - -/* - * Simple non-mp implementation. - */ -struct mutex { - int mtx_lock; - int mtx_wantipl; - int mtx_oldipl; -}; - -void _mtx_init(struct mutex *, int); - -#define MUTEX_INITIALIZER_FLAGS(ipl, name, flags) \ - { 0, (ipl) << 4, 0 } - -#ifdef DIAGNOSTIC -#define MUTEX_ASSERT_LOCKED(mtx) do { \ - if ((mtx)->mtx_lock == 0) \ - panic("mutex %p not held in %s", (mtx), __func__); \ -} while (0) - -#define MUTEX_ASSERT_UNLOCKED(mtx) do { \ - if ((mtx)->mtx_lock != 0) \ - panic("mutex %p held in %s", (mtx), __func__); \ -} while (0) -#else -#define MUTEX_ASSERT_LOCKED(mtx) do { } while (0) -#define MUTEX_ASSERT_UNLOCKED(mtx) do { } while (0) -#endif - -#define MUTEX_OLDIPL(mtx) (mtx)->mtx_oldipl - -#endif /* _SH_MUTEX_H_ */ +#define __USE_MI_MUTEX diff --git a/sys/arch/sh/sh/mutex.c b/sys/arch/sh/sh/mutex.c deleted file mode 100644 index a73f35af59b..00000000000 --- a/sys/arch/sh/sh/mutex.c +++ /dev/null @@ -1,87 +0,0 @@ -/* $OpenBSD: mutex.c,v 1.9 2017/05/18 01:27:49 visa Exp $ */ - -/* - * Copyright (c) 2004 Artur Grabowski - * All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. The name of the author may not be used to endorse or promote products - * derived from this software without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -#include -#include -#include - -#include - -#ifdef MULTIPROCESSOR -#error This code needs more work -#endif - -/* - * Single processor systems don't need any mutexes, but they need the spl - * raising semantics of the mutexes. - */ -void -_mtx_init(struct mutex *mtx, int wantipl) -{ - mtx->mtx_oldipl = 0; - mtx->mtx_wantipl = wantipl << 4; - mtx->mtx_lock = 0; -} - -void -__mtx_enter(struct mutex *mtx) -{ - if (mtx->mtx_wantipl != IPL_NONE << 4) - mtx->mtx_oldipl = _cpu_intr_raise(mtx->mtx_wantipl); - - MUTEX_ASSERT_UNLOCKED(mtx); - mtx->mtx_lock = 1; -#ifdef DIAGNOSTIC - curcpu()->ci_mutex_level++; -#endif -} - -int -__mtx_enter_try(struct mutex *mtx) -{ - if (mtx->mtx_wantipl != IPL_NONE) - mtx->mtx_oldipl = _cpu_intr_raise(mtx->mtx_wantipl); - MUTEX_ASSERT_UNLOCKED(mtx); - mtx->mtx_lock = 1; -#ifdef DIAGNOSTIC - curcpu()->ci_mutex_level++; -#endif - - return 1; -} - -void -__mtx_leave(struct mutex *mtx) -{ - MUTEX_ASSERT_LOCKED(mtx); -#ifdef DIAGNOSTIC - curcpu()->ci_mutex_level--; -#endif - mtx->mtx_lock = 0; - if (mtx->mtx_wantipl != IPL_NONE << 4) - _cpu_intr_resume(mtx->mtx_oldipl); -}