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 --- |