summaryrefslogtreecommitdiff
path: root/device/dev_hdr.h
diff options
context:
space:
mode:
Diffstat (limited to 'device/dev_hdr.h')
-rw-r--r--device/dev_hdr.h7
1 files changed, 4 insertions, 3 deletions
diff --git a/device/dev_hdr.h b/device/dev_hdr.h
index ff7d2ef..5f80d4a 100644
--- a/device/dev_hdr.h
+++ b/device/dev_hdr.h
@@ -82,7 +82,7 @@ typedef struct device *device_t;
struct mach_device {
decl_simple_lock_data(,ref_lock)/* lock for reference count */
int ref_count; /* reference count */
- decl_simple_lock_data(, lock) /* lock for rest of state */
+ struct lock lock; /* lock for rest of state */
short state; /* state: */
#define DEV_STATE_INIT 0 /* not open */
#define DEV_STATE_OPENING 1 /* being opened */
@@ -127,8 +127,9 @@ boolean_t dev_map(boolean_t (*)(), mach_port_t);
/*
* To lock and unlock state and open-count
*/
-#define device_lock(device) simple_lock(&(device)->lock)
-#define device_unlock(device) simple_unlock(&(device)->lock)
+#define device_lock_init(device) lock_init(&(device)->lock, FALSE)
+#define device_lock(device) lock_write(&(device)->lock)
+#define device_unlock(device) lock_write_done(&(device)->lock)
/*
* device name lookup