Deleted Added
full compact
vkbd.c (162711) vkbd.c (174984)
1/*
2 * vkbd.c
3 */
4
5/*-
6 * Copyright (c) 2004 Maksim Yevmenkin <m_evmenkin@yahoo.com>
7 * All rights reserved.
8 *

--- 14 unchanged lines hidden (view full) ---

23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 * $Id: vkbd.c,v 1.20 2004/11/15 23:53:30 max Exp $
1/*
2 * vkbd.c
3 */
4
5/*-
6 * Copyright (c) 2004 Maksim Yevmenkin <m_evmenkin@yahoo.com>
7 * All rights reserved.
8 *

--- 14 unchanged lines hidden (view full) ---

23 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
24 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
25 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
26 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
27 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 * SUCH DAMAGE.
29 *
30 * $Id: vkbd.c,v 1.20 2004/11/15 23:53:30 max Exp $
31 * $FreeBSD: head/sys/dev/vkbd/vkbd.c 162711 2006-09-27 19:57:02Z ru $
31 * $FreeBSD: head/sys/dev/vkbd/vkbd.c 174984 2007-12-29 21:55:25Z wkoszek $
32 */
33
34#include "opt_compat.h"
35#include "opt_kbd.h"
36
37#include <sys/param.h>
38#include <sys/conf.h>
39#include <sys/fcntl.h>

--- 233 unchanged lines hidden (view full) ---

273 selwakeuppri(&state->ks_wsel, PZERO + 1);
274
275 state->ks_flags &= ~OPEN;
276 state->ks_dev = NULL;
277 state->ks_inq.head = state->ks_inq.tail = state->ks_inq.cc = 0;
278
279 VKBD_UNLOCK(state);
280
32 */
33
34#include "opt_compat.h"
35#include "opt_kbd.h"
36
37#include <sys/param.h>
38#include <sys/conf.h>
39#include <sys/fcntl.h>

--- 233 unchanged lines hidden (view full) ---

273 selwakeuppri(&state->ks_wsel, PZERO + 1);
274
275 state->ks_flags &= ~OPEN;
276 state->ks_dev = NULL;
277 state->ks_inq.head = state->ks_inq.tail = state->ks_inq.cc = 0;
278
279 VKBD_UNLOCK(state);
280
281 (*kbdsw[kbd->kb_index]->disable)(kbd);
281 kbdd_disable(kbd);
282#ifdef KBD_INSTALL_CDEV
283 kbd_detach(kbd);
284#endif /* def KBD_INSTALL_CDEV */
282#ifdef KBD_INSTALL_CDEV
283 kbd_detach(kbd);
284#endif /* def KBD_INSTALL_CDEV */
285 (*kbdsw[kbd->kb_index]->term)(kbd);
285 kbdd_term(kbd);
286
287 /* XXX FIXME: dev->si_drv1 locking */
288 dev->si_drv1 = NULL;
289
290 return (0);
291}
292
293/* Read status */

--- 138 unchanged lines hidden (view full) ---

432}
433
434/* Process ioctl */
435static int
436vkbd_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td)
437{
438 keyboard_t *kbd = VKBD_KEYBOARD(dev);
439
286
287 /* XXX FIXME: dev->si_drv1 locking */
288 dev->si_drv1 = NULL;
289
290 return (0);
291}
292
293/* Read status */

--- 138 unchanged lines hidden (view full) ---

432}
433
434/* Process ioctl */
435static int
436vkbd_dev_ioctl(struct cdev *dev, u_long cmd, caddr_t data, int flag, struct thread *td)
437{
438 keyboard_t *kbd = VKBD_KEYBOARD(dev);
439
440 return ((kbd == NULL)? ENXIO :
441 (*kbdsw[kbd->kb_index]->ioctl)(kbd, cmd, data));
440 return ((kbd == NULL)? ENXIO : kbdd_ioctl(kbd, cmd, data));
442}
443
444/* Poll device */
445static int
446vkbd_dev_poll(struct cdev *dev, int events, struct thread *td)
447{
448 vkbd_state_t *state = (vkbd_state_t *) dev->si_drv1;
449 vkbd_queue_t *q = NULL;

--- 27 unchanged lines hidden (view full) ---

477
478/* Interrupt handler */
479void
480vkbd_dev_intr(void *xkbd, int pending)
481{
482 keyboard_t *kbd = (keyboard_t *) xkbd;
483 vkbd_state_t *state = (vkbd_state_t *) kbd->kb_data;
484
441}
442
443/* Poll device */
444static int
445vkbd_dev_poll(struct cdev *dev, int events, struct thread *td)
446{
447 vkbd_state_t *state = (vkbd_state_t *) dev->si_drv1;
448 vkbd_queue_t *q = NULL;

--- 27 unchanged lines hidden (view full) ---

476
477/* Interrupt handler */
478void
479vkbd_dev_intr(void *xkbd, int pending)
480{
481 keyboard_t *kbd = (keyboard_t *) xkbd;
482 vkbd_state_t *state = (vkbd_state_t *) kbd->kb_data;
483
485 (*kbdsw[kbd->kb_index]->intr)(kbd, NULL);
484 kbdd_intr(kbd, NULL);
486
487 VKBD_LOCK(state);
488
489 state->ks_flags &= ~TASK;
490 wakeup(&state->ks_task);
491
492 VKBD_UNLOCK(state);
493}

--- 891 unchanged lines hidden ---
485
486 VKBD_LOCK(state);
487
488 state->ks_flags &= ~TASK;
489 wakeup(&state->ks_task);
490
491 VKBD_UNLOCK(state);
492}

--- 891 unchanged lines hidden ---