summaryrefslogtreecommitdiffstats
path: root/rtemsbsd/rtems
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2017-11-14 13:06:39 +0100
committerSebastian Huber <sebastian.huber@embedded-brains.de>2017-11-16 08:11:42 +0100
commit9c1490aac3d76c815dbbe1be54214fddc0c45373 (patch)
tree3caa073558f0e62e0df8fe077f880dd4079c4936 /rtemsbsd/rtems
parentFix file descriptor reference counting in accept() (diff)
downloadrtems-libbsd-9c1490aac3d76c815dbbe1be54214fddc0c45373.tar.bz2
LOCKING(9): Update to current FreeBSD version
Diffstat (limited to 'rtemsbsd/rtems')
-rw-r--r--rtemsbsd/rtems/rtems-kernel-mutex.c50
-rw-r--r--rtemsbsd/rtems/rtems-kernel-rwlock.c38
-rw-r--r--rtemsbsd/rtems/rtems-kernel-sx.c34
3 files changed, 64 insertions, 58 deletions
diff --git a/rtemsbsd/rtems/rtems-kernel-mutex.c b/rtemsbsd/rtems/rtems-kernel-mutex.c
index 360536a5..0bb8a43f 100644
--- a/rtemsbsd/rtems/rtems-kernel-mutex.c
+++ b/rtemsbsd/rtems/rtems-kernel-mutex.c
@@ -48,67 +48,69 @@
#include <sys/proc.h>
#include <sys/conf.h>
-static void assert_mtx(struct lock_object *lock, int what);
-static void lock_mtx(struct lock_object *lock, int how);
+static void assert_mtx(const struct lock_object *lock, int what);
+static void lock_mtx(struct lock_object *lock, uintptr_t how);
#ifdef KDTRACE_HOOKS
-static int owner_mtx(struct lock_object *lock, struct thread **owner);
+static int owner_mtx(const struct lock_object *lock,
+ struct thread **owner);
#endif
-static int unlock_mtx(struct lock_object *lock);
+static uintptr_t unlock_mtx(struct lock_object *lock);
/*
* Lock classes for sleep and spin mutexes.
*/
struct lock_class lock_class_mtx_sleep = {
- .lc_name = "sleep mutex",
- .lc_flags = LC_SLEEPLOCK | LC_RECURSABLE,
- .lc_assert = assert_mtx,
+ .lc_name = "sleep mutex",
+ .lc_flags = LC_SLEEPLOCK | LC_RECURSABLE,
+ .lc_assert = assert_mtx,
#ifdef DDB
- .lc_ddb_show = db_show_mtx,
+ .lc_ddb_show = db_show_mtx,
#endif
- .lc_lock = lock_mtx,
- .lc_unlock = unlock_mtx,
+ .lc_lock = lock_mtx,
+ .lc_unlock = unlock_mtx,
#ifdef KDTRACE_HOOKS
- .lc_owner = owner_mtx,
+ .lc_owner = owner_mtx,
#endif
};
struct lock_class lock_class_mtx_spin = {
- .lc_name = "spin mutex",
- .lc_flags = LC_SPINLOCK | LC_RECURSABLE,
- .lc_assert = assert_mtx,
+ .lc_name = "spin mutex",
+ .lc_flags = LC_SPINLOCK | LC_RECURSABLE,
+ .lc_assert = assert_mtx,
#ifdef DDB
- .lc_ddb_show = db_show_mtx,
+ .lc_ddb_show = db_show_mtx,
#endif
- .lc_lock = lock_mtx,
- .lc_unlock = unlock_mtx,
+ .lc_lock = lock_mtx,
+ .lc_unlock = unlock_mtx,
#ifdef KDTRACE_HOOKS
- .lc_owner = owner_mtx,
+ .lc_owner = owner_mtx,
#endif
};
struct mtx Giant;
void
-assert_mtx(struct lock_object *lock, int what)
+assert_mtx(const struct lock_object *lock, int what)
{
- mtx_assert((struct mtx *)lock, what);
+
+ mtx_assert((const struct mtx *)lock, what);
}
void
-lock_mtx(struct lock_object *lock, int how)
+lock_mtx(struct lock_object *lock, uintptr_t how)
{
+
mtx_lock((struct mtx *)lock);
}
-int
+uintptr_t
unlock_mtx(struct lock_object *lock)
{
- mtx_unlock((struct mtx *)lock);
+ mtx_unlock((struct mtx *)lock);
return (0);
}
-
#ifdef KDTRACE_HOOKS
int
owner_mtx(struct lock_object *lock, struct thread **owner)
diff --git a/rtemsbsd/rtems/rtems-kernel-rwlock.c b/rtemsbsd/rtems/rtems-kernel-rwlock.c
index 9e2707f7..2e03da23 100644
--- a/rtemsbsd/rtems/rtems-kernel-rwlock.c
+++ b/rtemsbsd/rtems/rtems-kernel-rwlock.c
@@ -58,24 +58,24 @@
#define _rw_assert(rw, what, file, line)
#endif
-static void assert_rw(struct lock_object *lock, int what);
-static void lock_rw(struct lock_object *lock, int how);
+static void assert_rw(const struct lock_object *lock, int what);
+static void lock_rw(struct lock_object *lock, uintptr_t how);
#ifdef KDTRACE_HOOKS
-static int owner_rw(struct lock_object *lock, struct thread **owner);
+static int owner_rw(const struct lock_object *lock, struct thread **owner);
#endif
-static int unlock_rw(struct lock_object *lock);
+static uintptr_t unlock_rw(struct lock_object *lock);
struct lock_class lock_class_rw = {
- .lc_name = "rw",
- .lc_flags = LC_SLEEPLOCK | LC_RECURSABLE | LC_UPGRADABLE,
- .lc_assert = assert_rw,
+ .lc_name = "rw",
+ .lc_flags = LC_SLEEPLOCK | LC_RECURSABLE | LC_UPGRADABLE,
+ .lc_assert = assert_rw,
#ifdef DDB
- .lc_ddb_show = db_show_rwlock,
+ .lc_ddb_show = db_show_rwlock,
#endif
- .lc_lock = lock_rw,
- .lc_unlock = unlock_rw,
+ .lc_lock = lock_rw,
+ .lc_unlock = unlock_rw,
#ifdef KDTRACE_HOOKS
- .lc_owner = owner_rw,
+ .lc_owner = owner_rw,
#endif
};
@@ -84,23 +84,25 @@ struct lock_class lock_class_rw = {
#define rw_recursed(rw) rtems_bsd_mutex_recursed(&(rw)->mutex)
void
-assert_rw(struct lock_object *lock, int what)
+assert_rw(const struct lock_object *lock, int what)
{
- rw_assert((struct rwlock *)lock, what);
+
+ rw_assert((const struct rwlock *)lock, what);
}
void
-lock_rw(struct lock_object *lock, int how)
+lock_rw(struct lock_object *lock, uintptr_t how)
{
- rw_wlock((struct rwlock *)lock);
+
+ rw_wlock((struct rwlock *)lock);
}
-int
+uintptr_t
unlock_rw(struct lock_object *lock)
{
- rw_unlock((struct rwlock *)lock);
- return (0);
+ rw_unlock((struct rwlock *)lock);
+ return (0);
}
#ifdef KDTRACE_HOOKS
diff --git a/rtemsbsd/rtems/rtems-kernel-sx.c b/rtemsbsd/rtems/rtems-kernel-sx.c
index a8f8bfb4..57087eef 100644
--- a/rtemsbsd/rtems/rtems-kernel-sx.c
+++ b/rtemsbsd/rtems/rtems-kernel-sx.c
@@ -47,24 +47,24 @@
#include <sys/lock.h>
#include <sys/sx.h>
-static void assert_sx(struct lock_object *lock, int what);
-static void lock_sx(struct lock_object *lock, int how);
+static void assert_sx(const struct lock_object *lock, int what);
+static void lock_sx(struct lock_object *lock, uintptr_t how);
#ifdef KDTRACE_HOOKS
-static int owner_sx(struct lock_object *lock, struct thread **owner);
+static int owner_sx(const struct lock_object *lock, struct thread **owner);
#endif
-static int unlock_sx(struct lock_object *lock);
+static uintptr_t unlock_sx(struct lock_object *lock);
struct lock_class lock_class_sx = {
- .lc_name = "sx",
- .lc_flags = LC_SLEEPLOCK | LC_SLEEPABLE | LC_RECURSABLE | LC_UPGRADABLE,
- .lc_assert = assert_sx,
+ .lc_name = "sx",
+ .lc_flags = LC_SLEEPLOCK | LC_SLEEPABLE | LC_RECURSABLE | LC_UPGRADABLE,
+ .lc_assert = assert_sx,
#ifdef DDB
- .lc_ddb_show = db_show_sx,
+ .lc_ddb_show = db_show_sx,
#endif
- .lc_lock = lock_sx,
- .lc_unlock = unlock_sx,
+ .lc_lock = lock_sx,
+ .lc_unlock = unlock_sx,
#ifdef KDTRACE_HOOKS
- .lc_owner = owner_sx,
+ .lc_owner = owner_sx,
#endif
};
@@ -73,22 +73,24 @@ struct lock_class lock_class_sx = {
#define sx_recursed(sx) rtems_bsd_mutex_recursed(&(sx)->mutex)
void
-assert_sx(struct lock_object *lock, int what)
+assert_sx(const struct lock_object *lock, int what)
{
- sx_assert((struct sx *)lock, what);
+
+ sx_assert((const struct sx *)lock, what);
}
void
-lock_sx(struct lock_object *lock, int how)
+lock_sx(struct lock_object *lock, uintptr_t how)
{
+
sx_xlock((struct sx *)lock);
}
-int
+uintptr_t
unlock_sx(struct lock_object *lock)
{
- sx_xunlock((struct sx *)lock);
+ sx_xunlock((struct sx *)lock);
return (0);
}