[PATCH 05/11] Modify FREEBSD USB keyboard drivers for use in RTEMS
Kevin Kirspel
kevin-kirspel at idexx.com
Mon May 15 17:26:32 UTC 2017
---
freebsd/sys/dev/usb/input/ukbd.c | 6 ++++++
rtemsbsd/include/rtems/bsd/local/opt_kbd.h | 1 +
rtemsbsd/include/rtems/bsd/local/opt_ukbd.h | 1 +
3 files changed, 8 insertions(+)
create mode 100644 rtemsbsd/include/rtems/bsd/local/opt_kbd.h
create mode 100644 rtemsbsd/include/rtems/bsd/local/opt_ukbd.h
diff --git a/freebsd/sys/dev/usb/input/ukbd.c b/freebsd/sys/dev/usb/input/ukbd.c
index 5c6f558..2d64ae2 100644
--- a/freebsd/sys/dev/usb/input/ukbd.c
+++ b/freebsd/sys/dev/usb/input/ukbd.c
@@ -447,7 +447,11 @@ ukbd_do_poll(struct ukbd_softc *sc, uint8_t wait)
* Give USB threads a chance to run. Note that
* kern_yield performs DROP_GIANT + PICKUP_GIANT.
*/
+#ifndef __rtems__
kern_yield(PRI_UNCHANGED);
+#else /* __rtems__ */
+ sched_yield();
+#endif /* __rtems__ */
if (!wait)
break;
}
@@ -1994,8 +1998,10 @@ ukbd_ioctl(keyboard_t *kbd, u_long cmd, caddr_t arg)
/*
* XXX Check if someone is calling us from a critical section:
*/
+#ifndef __rtems__
if (curthread->td_critnest != 0)
return (EDEADLK);
+#endif /* __rtems__ */
/*
* XXX KDGKBSTATE, KDSKBSTATE and KDSETLED can be called from any
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_kbd.h b/rtemsbsd/include/rtems/bsd/local/opt_kbd.h
new file mode 100644
index 0000000..a068675
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_kbd.h
@@ -0,0 +1 @@
+#define KBD_INSTALL_CDEV 1
diff --git a/rtemsbsd/include/rtems/bsd/local/opt_ukbd.h b/rtemsbsd/include/rtems/bsd/local/opt_ukbd.h
new file mode 100644
index 0000000..936ffd8
--- /dev/null
+++ b/rtemsbsd/include/rtems/bsd/local/opt_ukbd.h
@@ -0,0 +1 @@
+/* EMPTY */
--
1.9.1
More information about the devel
mailing list