diff options
Diffstat (limited to 'freebsd/sys/dev/evdev/evdev_private.h')
-rw-r--r-- | freebsd/sys/dev/evdev/evdev_private.h | 17 |
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 { |