summaryrefslogtreecommitdiffstats
path: root/freebsd/sys/dev/evdev/evdev_private.h
diff options
context:
space:
mode:
Diffstat (limited to 'freebsd/sys/dev/evdev/evdev_private.h')
-rw-r--r--freebsd/sys/dev/evdev/evdev_private.h17
1 files changed, 14 insertions, 3 deletions
diff --git a/freebsd/sys/dev/evdev/evdev_private.h b/freebsd/sys/dev/evdev/evdev_private.h
index b3de1bf0..05206a9d 100644
--- a/freebsd/sys/dev/evdev/evdev_private.h
+++ b/freebsd/sys/dev/evdev/evdev_private.h
@@ -1,6 +1,6 @@
/*-
* Copyright (c) 2014 Jakub Wojciech Klama <jceel@FreeBSD.org>
- * Copyright (c) 2015-2016 Vladimir Kondratyev <wulf@cicgroup.ru>
+ * Copyright (c) 2015-2016 Vladimir Kondratyev <wulf@FreeBSD.org>
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
@@ -31,10 +31,11 @@
#define _DEV_EVDEV_EVDEV_PRIVATE_H
#include <sys/bitstring.h>
-#include <sys/queue.h>
-#include <sys/malloc.h>
#include <sys/kbio.h>
+#include <sys/malloc.h>
+#include <sys/queue.h>
#include <sys/selinfo.h>
+
#include <dev/evdev/evdev.h>
#include <dev/evdev/input.h>
#include <dev/kbd/kbdreg.h>
@@ -134,6 +135,16 @@ struct evdev_dev
#define EVDEV_LOCK(evdev) mtx_lock((evdev)->ev_lock)
#define EVDEV_UNLOCK(evdev) mtx_unlock((evdev)->ev_lock)
#define EVDEV_LOCK_ASSERT(evdev) mtx_assert((evdev)->ev_lock, MA_OWNED)
+#define EVDEV_ENTER(evdev) do { \
+ if ((evdev)->ev_lock_type == EV_LOCK_INTERNAL) \
+ EVDEV_LOCK(evdev); \
+ else \
+ EVDEV_LOCK_ASSERT(evdev); \
+} while (0)
+#define EVDEV_EXIT(evdev) do { \
+ if ((evdev)->ev_lock_type == EV_LOCK_INTERNAL) \
+ EVDEV_UNLOCK(evdev); \
+} while (0)
struct evdev_client
{