summaryrefslogtreecommitdiff
path: root/debian/patches/upstreamme0006-kern-lock-make-sure-the-macros-are-only-used-on-simp.patch
diff options
context:
space:
mode:
Diffstat (limited to 'debian/patches/upstreamme0006-kern-lock-make-sure-the-macros-are-only-used-on-simp.patch')
-rw-r--r--debian/patches/upstreamme0006-kern-lock-make-sure-the-macros-are-only-used-on-simp.patch99
1 files changed, 0 insertions, 99 deletions
diff --git a/debian/patches/upstreamme0006-kern-lock-make-sure-the-macros-are-only-used-on-simp.patch b/debian/patches/upstreamme0006-kern-lock-make-sure-the-macros-are-only-used-on-simp.patch
deleted file mode 100644
index 6d1112d..0000000
--- a/debian/patches/upstreamme0006-kern-lock-make-sure-the-macros-are-only-used-on-simp.patch
+++ /dev/null
@@ -1,99 +0,0 @@
-From 08a14e0f6c0e93ee5e72b6892683582facfd231e Mon Sep 17 00:00:00 2001
-From: Justus Winter <4winter@informatik.uni-hamburg.de>
-Date: Sat, 25 Jul 2015 00:53:44 +0200
-Subject: [PATCH gnumach 6/7] kern/lock: make sure the macros are only used on
- simple locks
-
-* kern/lock.h (struct slock, simple_lock_data_empty): Add field
-`is_a_simple_lock'.
-(simple_lock_assert): New macro that tests for `is_a_simple_lock'.
-Use this macro to assert that the argument to various other macros are
-indeed simple locks.
----
- kern/lock.h | 35 ++++++++++++++++++++++++-----------
- 1 file changed, 24 insertions(+), 11 deletions(-)
-
-diff --git a/kern/lock.h b/kern/lock.h
-index a6d286a..435ee1d 100644
---- a/kern/lock.h
-+++ b/kern/lock.h
-@@ -49,8 +49,15 @@
-
- struct slock {
- volatile natural_t lock_data; /* in general 1 bit is sufficient */
-+ struct {} is_a_simple_lock;
- };
-
-+/*
-+ * Used by macros to assert that the given argument is a simple
-+ * lock.
-+ */
-+#define simple_lock_assert(l) (void) &(l)->is_a_simple_lock
-+
- typedef struct slock simple_lock_data_t;
- typedef struct slock *simple_lock_t;
-
-@@ -62,7 +69,8 @@ typedef struct slock *simple_lock_t;
- #define decl_simple_lock_data(class,name) \
- class simple_lock_data_t name;
-
--#define simple_lock_addr(lock) (&(lock))
-+#define simple_lock_addr(lock) (simple_lock_assert(&(lock)), \
-+ &(lock))
-
- #if (NCPUS > 1)
-
-@@ -70,7 +78,8 @@ class simple_lock_data_t name;
- * The single-CPU debugging routines are not valid
- * on a multiprocessor.
- */
--#define simple_lock_taken(lock) (1) /* always succeeds */
-+#define simple_lock_taken(lock) (simple_lock_assert(lock), \
-+ 1) /* always succeeds */
- #define check_simple_locks()
-
- #else /* NCPUS > 1 */
-@@ -84,7 +93,8 @@ extern void simple_unlock(simple_lock_t);
- extern boolean_t simple_lock_try(simple_lock_t);
-
- #define simple_lock_pause()
--#define simple_lock_taken(lock) ((lock)->lock_data)
-+#define simple_lock_taken(lock) (simple_lock_assert(lock), \
-+ (lock)->lock_data)
-
- extern void check_simple_locks(void);
-
-@@ -94,19 +104,22 @@ extern void check_simple_locks(void);
- /*
- * Do not allocate storage for locks if not needed.
- */
--struct simple_lock_data_empty {};
--#define decl_simple_lock_data(class,name) \
-+struct simple_lock_data_empty { struct {} is_a_simple_lock; };
-+#define decl_simple_lock_data(class,name) \
- class struct simple_lock_data_empty name;
--#define simple_lock_addr(lock) ((simple_lock_t)0)
-+#define simple_lock_addr(lock) (simple_lock_assert(&(lock)), \
-+ (simple_lock_t)0)
-
- /*
- * No multiprocessor locking is necessary.
- */
--#define simple_lock_init(l)
--#define simple_lock(l)
--#define simple_unlock(l) ((void)(l))
--#define simple_lock_try(l) (TRUE) /* always succeeds */
--#define simple_lock_taken(l) (1) /* always succeeds */
-+#define simple_lock_init(l) simple_lock_assert(l)
-+#define simple_lock(l) simple_lock_assert(l)
-+#define simple_unlock(l) simple_lock_assert(l)
-+#define simple_lock_try(l) (simple_lock_assert(l), \
-+ TRUE) /* always succeeds */
-+#define simple_lock_taken(l) (simple_lock_assert(l), \
-+ 1) /* always succeeds */
- #define check_simple_locks()
- #define simple_lock_pause()
-
---
-2.1.4
-