ibcs2_ioctl.c (107839) | ibcs2_ioctl.c (107849) |
---|---|
1/* $NetBSD: ibcs2_ioctl.c,v 1.6 1995/03/14 15:12:28 scottb Exp $ */ 2 3/* 4 * Copyright (c) 1994, 1995 Scott Bartram 5 * All rights reserved. 6 * 7 * based on compat/sunos/sun_ioctl.c 8 * --- 11 unchanged lines hidden (view full) --- 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * | 1/* $NetBSD: ibcs2_ioctl.c,v 1.6 1995/03/14 15:12:28 scottb Exp $ */ 2 3/* 4 * Copyright (c) 1994, 1995 Scott Bartram 5 * All rights reserved. 6 * 7 * based on compat/sunos/sun_ioctl.c 8 * --- 11 unchanged lines hidden (view full) --- 20 * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, 21 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 22 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 23 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 24 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 25 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 26 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 27 * |
28 * $FreeBSD: head/sys/i386/ibcs2/ibcs2_ioctl.c 107839 2002-12-13 22:41:47Z alfred $ | 28 * $FreeBSD: head/sys/i386/ibcs2/ibcs2_ioctl.c 107849 2002-12-14 01:56:26Z alfred $ |
29 */ 30 31#include <sys/param.h> 32#include <sys/systm.h> 33#include <sys/consio.h> 34#include <sys/fcntl.h> 35#include <sys/file.h> 36#include <sys/filedesc.h> --- 304 unchanged lines hidden (view full) --- 341 struct ibcs2_ioctl_args *uap; 342{ 343 struct proc *p = td->td_proc; 344 struct file *fp; 345 int error; 346 347 if ((error = fget(td, uap->fd, &fp)) != 0) { 348 DPRINTF(("ibcs2_ioctl(%d): bad fd %d ", p->p_pid, | 29 */ 30 31#include <sys/param.h> 32#include <sys/systm.h> 33#include <sys/consio.h> 34#include <sys/fcntl.h> 35#include <sys/file.h> 36#include <sys/filedesc.h> --- 304 unchanged lines hidden (view full) --- 341 struct ibcs2_ioctl_args *uap; 342{ 343 struct proc *p = td->td_proc; 344 struct file *fp; 345 int error; 346 347 if ((error = fget(td, uap->fd, &fp)) != 0) { 348 DPRINTF(("ibcs2_ioctl(%d): bad fd %d ", p->p_pid, |
349 SCARG(uap, fd))); | 349 uap->fd)); |
350 return EBADF; 351 } 352 353 if ((fp->f_flag & (FREAD|FWRITE)) == 0) { 354 fdrop(fp, td); 355 DPRINTF(("ibcs2_ioctl(%d): bad fp flag ", p->p_pid)); 356 return EBADF; 357 } 358 | 350 return EBADF; 351 } 352 353 if ((fp->f_flag & (FREAD|FWRITE)) == 0) { 354 fdrop(fp, td); 355 DPRINTF(("ibcs2_ioctl(%d): bad fp flag ", p->p_pid)); 356 return EBADF; 357 } 358 |
359 switch (SCARG(uap, cmd)) { | 359 switch (uap->cmd) { |
360 case IBCS2_TCGETA: 361 case IBCS2_XCGETA: 362 case IBCS2_OXCGETA: 363 { 364 struct termios bts; 365 struct ibcs2_termios sts; 366 struct ibcs2_termio st; 367 368 if ((error = fo_ioctl(fp, TIOCGETA, (caddr_t)&bts, 369 td->td_ucred, td)) != 0) 370 break; 371 372 btios2stios (&bts, &sts); | 360 case IBCS2_TCGETA: 361 case IBCS2_XCGETA: 362 case IBCS2_OXCGETA: 363 { 364 struct termios bts; 365 struct ibcs2_termios sts; 366 struct ibcs2_termio st; 367 368 if ((error = fo_ioctl(fp, TIOCGETA, (caddr_t)&bts, 369 td->td_ucred, td)) != 0) 370 break; 371 372 btios2stios (&bts, &sts); |
373 if (SCARG(uap, cmd) == IBCS2_TCGETA) { | 373 if (uap->cmd == IBCS2_TCGETA) { |
374 stios2stio (&sts, &st); | 374 stios2stio (&sts, &st); |
375 error = copyout((caddr_t)&st, SCARG(uap, data), | 375 error = copyout((caddr_t)&st, uap->data, |
376 sizeof (st)); 377#ifdef DEBUG_IBCS2 378 if (error) 379 DPRINTF(("ibcs2_ioctl(%d): copyout failed ", 380 p->p_pid)); 381#endif 382 break; 383 } else { | 376 sizeof (st)); 377#ifdef DEBUG_IBCS2 378 if (error) 379 DPRINTF(("ibcs2_ioctl(%d): copyout failed ", 380 p->p_pid)); 381#endif 382 break; 383 } else { |
384 error = copyout((caddr_t)&sts, SCARG(uap, data), | 384 error = copyout((caddr_t)&sts, uap->data, |
385 sizeof (sts)); 386 break; 387 } 388 /*NOTREACHED*/ 389 } 390 391 case IBCS2_TCSETA: 392 case IBCS2_TCSETAW: 393 case IBCS2_TCSETAF: 394 { 395 struct termios bts; 396 struct ibcs2_termios sts; 397 struct ibcs2_termio st; 398 | 385 sizeof (sts)); 386 break; 387 } 388 /*NOTREACHED*/ 389 } 390 391 case IBCS2_TCSETA: 392 case IBCS2_TCSETAW: 393 case IBCS2_TCSETAF: 394 { 395 struct termios bts; 396 struct ibcs2_termios sts; 397 struct ibcs2_termio st; 398 |
399 if ((error = copyin(SCARG(uap, data), (caddr_t)&st, | 399 if ((error = copyin(uap->data, (caddr_t)&st, |
400 sizeof(st))) != 0) { 401 DPRINTF(("ibcs2_ioctl(%d): TCSET copyin failed ", 402 p->p_pid)); 403 break; 404 } 405 406 /* get full BSD termios so we don't lose information */ 407 if ((error = fo_ioctl(fp, TIOCGETA, (caddr_t)&bts, 408 td->td_ucred, td)) != 0) { 409 DPRINTF(("ibcs2_ioctl(%d): TCSET ctl failed fd %d ", | 400 sizeof(st))) != 0) { 401 DPRINTF(("ibcs2_ioctl(%d): TCSET copyin failed ", 402 p->p_pid)); 403 break; 404 } 405 406 /* get full BSD termios so we don't lose information */ 407 if ((error = fo_ioctl(fp, TIOCGETA, (caddr_t)&bts, 408 td->td_ucred, td)) != 0) { 409 DPRINTF(("ibcs2_ioctl(%d): TCSET ctl failed fd %d ", |
410 p->p_pid, SCARG(uap, fd))); | 410 p->p_pid, uap->fd)); |
411 break; 412 } 413 414 /* 415 * convert to iBCS2 termios, copy in information from 416 * termio, and convert back, then set new values. 417 */ 418 btios2stios(&bts, &sts); 419 stio2stios(&st, &sts); 420 stios2btios(&sts, &bts); 421 | 411 break; 412 } 413 414 /* 415 * convert to iBCS2 termios, copy in information from 416 * termio, and convert back, then set new values. 417 */ 418 btios2stios(&bts, &sts); 419 stio2stios(&st, &sts); 420 stios2btios(&sts, &bts); 421 |
422 error = fo_ioctl(fp, SCARG(uap, cmd) - IBCS2_TCSETA + TIOCSETA, | 422 error = fo_ioctl(fp, uap->cmd - IBCS2_TCSETA + TIOCSETA, |
423 (caddr_t)&bts, td->td_ucred, td); 424 break; 425 } 426 427 case IBCS2_XCSETA: 428 case IBCS2_XCSETAW: 429 case IBCS2_XCSETAF: 430 { 431 struct termios bts; 432 struct ibcs2_termios sts; 433 | 423 (caddr_t)&bts, td->td_ucred, td); 424 break; 425 } 426 427 case IBCS2_XCSETA: 428 case IBCS2_XCSETAW: 429 case IBCS2_XCSETAF: 430 { 431 struct termios bts; 432 struct ibcs2_termios sts; 433 |
434 if ((error = copyin(SCARG(uap, data), (caddr_t)&sts, | 434 if ((error = copyin(uap->data, (caddr_t)&sts, |
435 sizeof (sts))) != 0) 436 break; 437 stios2btios (&sts, &bts); | 435 sizeof (sts))) != 0) 436 break; 437 stios2btios (&sts, &bts); |
438 error = fo_ioctl(fp, SCARG(uap, cmd) - IBCS2_XCSETA + TIOCSETA, | 438 error = fo_ioctl(fp, uap->cmd - IBCS2_XCSETA + TIOCSETA, |
439 (caddr_t)&bts, td->td_ucred, td); 440 break; 441 } 442 443 case IBCS2_OXCSETA: 444 case IBCS2_OXCSETAW: 445 case IBCS2_OXCSETAF: 446 { 447 struct termios bts; 448 struct ibcs2_termios sts; 449 | 439 (caddr_t)&bts, td->td_ucred, td); 440 break; 441 } 442 443 case IBCS2_OXCSETA: 444 case IBCS2_OXCSETAW: 445 case IBCS2_OXCSETAF: 446 { 447 struct termios bts; 448 struct ibcs2_termios sts; 449 |
450 if ((error = copyin(SCARG(uap, data), (caddr_t)&sts, | 450 if ((error = copyin(uap->data, (caddr_t)&sts, |
451 sizeof (sts))) != 0) 452 break; 453 stios2btios (&sts, &bts); | 451 sizeof (sts))) != 0) 452 break; 453 stios2btios (&sts, &bts); |
454 error = fo_ioctl(fp, SCARG(uap, cmd) - IBCS2_OXCSETA + TIOCSETA, | 454 error = fo_ioctl(fp, uap->cmd - IBCS2_OXCSETA + TIOCSETA, |
455 (caddr_t)&bts, td->td_ucred, td); 456 break; 457 } 458 459 case IBCS2_TCSBRK: 460 DPRINTF(("ibcs2_ioctl(%d): TCSBRK ", p->p_pid)); 461 error = ENOSYS; 462 break; 463 464 case IBCS2_TCXONC: 465 { | 455 (caddr_t)&bts, td->td_ucred, td); 456 break; 457 } 458 459 case IBCS2_TCSBRK: 460 DPRINTF(("ibcs2_ioctl(%d): TCSBRK ", p->p_pid)); 461 error = ENOSYS; 462 break; 463 464 case IBCS2_TCXONC: 465 { |
466 switch ((int)SCARG(uap, data)) { | 466 switch ((int)uap->data) { |
467 case 0: 468 case 1: 469 DPRINTF(("ibcs2_ioctl(%d): TCXONC ", p->p_pid)); 470 error = ENOSYS; 471 break; 472 case 2: 473 error = fo_ioctl(fp, TIOCSTOP, (caddr_t)0, 474 td->td_ucred, td); --- 8 unchanged lines hidden (view full) --- 483 } 484 break; 485 } 486 487 case IBCS2_TCFLSH: 488 { 489 int arg; 490 | 467 case 0: 468 case 1: 469 DPRINTF(("ibcs2_ioctl(%d): TCXONC ", p->p_pid)); 470 error = ENOSYS; 471 break; 472 case 2: 473 error = fo_ioctl(fp, TIOCSTOP, (caddr_t)0, 474 td->td_ucred, td); --- 8 unchanged lines hidden (view full) --- 483 } 484 break; 485 } 486 487 case IBCS2_TCFLSH: 488 { 489 int arg; 490 |
491 switch ((int)SCARG(uap, data)) { | 491 switch ((int)uap->data) { |
492 case 0: 493 arg = FREAD; 494 break; 495 case 1: 496 arg = FWRITE; 497 break; 498 case 2: 499 arg = FREAD | FWRITE; 500 break; 501 default: 502 fdrop(fp, td); 503 return EINVAL; 504 } 505 error = fo_ioctl(fp, TIOCFLUSH, (caddr_t)&arg, td->td_ucred, 506 td); 507 break; 508 } 509 510 case IBCS2_TIOCGWINSZ: | 492 case 0: 493 arg = FREAD; 494 break; 495 case 1: 496 arg = FWRITE; 497 break; 498 case 2: 499 arg = FREAD | FWRITE; 500 break; 501 default: 502 fdrop(fp, td); 503 return EINVAL; 504 } 505 error = fo_ioctl(fp, TIOCFLUSH, (caddr_t)&arg, td->td_ucred, 506 td); 507 break; 508 } 509 510 case IBCS2_TIOCGWINSZ: |
511 SCARG(uap, cmd) = TIOCGWINSZ; | 511 uap->cmd = TIOCGWINSZ; |
512 error = ioctl(td, (struct ioctl_args *)uap); 513 break; 514 515 case IBCS2_TIOCSWINSZ: | 512 error = ioctl(td, (struct ioctl_args *)uap); 513 break; 514 515 case IBCS2_TIOCSWINSZ: |
516 SCARG(uap, cmd) = TIOCSWINSZ; | 516 uap->cmd = TIOCSWINSZ; |
517 error = ioctl(td, (struct ioctl_args *)uap); 518 break; 519 520 case IBCS2_TIOCGPGRP: 521 { 522 pid_t pg_id; 523 524 PROC_LOCK(p); 525 pg_id = p->p_pgrp->pg_id; 526 PROC_UNLOCK(p); | 517 error = ioctl(td, (struct ioctl_args *)uap); 518 break; 519 520 case IBCS2_TIOCGPGRP: 521 { 522 pid_t pg_id; 523 524 PROC_LOCK(p); 525 pg_id = p->p_pgrp->pg_id; 526 PROC_UNLOCK(p); |
527 error = copyout((caddr_t)&pg_id, SCARG(uap, data), | 527 error = copyout((caddr_t)&pg_id, uap->data, |
528 sizeof(pg_id)); 529 break; 530 } 531 532 case IBCS2_TIOCSPGRP: /* XXX - is uap->data a pointer to pgid? */ 533 { 534 struct setpgid_args sa; 535 | 528 sizeof(pg_id)); 529 break; 530 } 531 532 case IBCS2_TIOCSPGRP: /* XXX - is uap->data a pointer to pgid? */ 533 { 534 struct setpgid_args sa; 535 |
536 SCARG(&sa, pid) = 0; 537 SCARG(&sa, pgid) = (int)SCARG(uap, data); | 536 sa.pid = 0; 537 sa.pgid = (int)uap->data; |
538 error = setpgid(td, &sa); 539 break; 540 } 541 542 case IBCS2_TCGETSC: /* SCO console - get scancode flags */ 543 error = EINTR; /* ENOSYS; */ 544 break; 545 --- 15 unchanged lines hidden (view full) --- 561 ibcs2_jwinsize.bytey = 25; 562 /* p->p_session->s_ttyp->t_winsize.ws_row; XXX */ 563 ibcs2_jwinsize.bitx = 564 p->p_session->s_ttyp->t_winsize.ws_xpixel; 565 ibcs2_jwinsize.bity = 566 p->p_session->s_ttyp->t_winsize.ws_ypixel; 567 SESS_UNLOCK(p->p_session); 568 PROC_UNLOCK(p); | 538 error = setpgid(td, &sa); 539 break; 540 } 541 542 case IBCS2_TCGETSC: /* SCO console - get scancode flags */ 543 error = EINTR; /* ENOSYS; */ 544 break; 545 --- 15 unchanged lines hidden (view full) --- 561 ibcs2_jwinsize.bytey = 25; 562 /* p->p_session->s_ttyp->t_winsize.ws_row; XXX */ 563 ibcs2_jwinsize.bitx = 564 p->p_session->s_ttyp->t_winsize.ws_xpixel; 565 ibcs2_jwinsize.bity = 566 p->p_session->s_ttyp->t_winsize.ws_ypixel; 567 SESS_UNLOCK(p->p_session); 568 PROC_UNLOCK(p); |
569 error = copyout((caddr_t)&ibcs2_jwinsize, SCARG(uap, data), | 569 error = copyout((caddr_t)&ibcs2_jwinsize, uap->data, |
570 sizeof(ibcs2_jwinsize)); 571 break; 572 } 573 574 /* keyboard and display ioctl's -- type 'K' */ 575 case IBCS2_KDGKBMODE: /* get keyboard translation mode */ | 570 sizeof(ibcs2_jwinsize)); 571 break; 572 } 573 574 /* keyboard and display ioctl's -- type 'K' */ 575 case IBCS2_KDGKBMODE: /* get keyboard translation mode */ |
576 SCARG(uap, cmd) = KDGKBMODE; 577/* printf("ioctl KDGKBMODE = %x\n", SCARG(uap, cmd));*/ | 576 uap->cmd = KDGKBMODE; 577/* printf("ioctl KDGKBMODE = %x\n", uap->cmd);*/ |
578 error = ioctl(td, (struct ioctl_args *)uap); 579 break; 580 581 case IBCS2_KDSKBMODE: /* set keyboard translation mode */ | 578 error = ioctl(td, (struct ioctl_args *)uap); 579 break; 580 581 case IBCS2_KDSKBMODE: /* set keyboard translation mode */ |
582 SCARG(uap, cmd) = KDSKBMODE; | 582 uap->cmd = KDSKBMODE; |
583 error = ioctl(td, (struct ioctl_args *)uap); 584 break; 585 586 case IBCS2_KDMKTONE: /* sound tone */ | 583 error = ioctl(td, (struct ioctl_args *)uap); 584 break; 585 586 case IBCS2_KDMKTONE: /* sound tone */ |
587 SCARG(uap, cmd) = KDMKTONE; | 587 uap->cmd = KDMKTONE; |
588 error = ioctl(td, (struct ioctl_args *)uap); 589 break; 590 591 case IBCS2_KDGETMODE: /* get text/graphics mode */ | 588 error = ioctl(td, (struct ioctl_args *)uap); 589 break; 590 591 case IBCS2_KDGETMODE: /* get text/graphics mode */ |
592 SCARG(uap, cmd) = KDGETMODE; | 592 uap->cmd = KDGETMODE; |
593 error = ioctl(td, (struct ioctl_args *)uap); 594 break; 595 596 case IBCS2_KDSETMODE: /* set text/graphics mode */ | 593 error = ioctl(td, (struct ioctl_args *)uap); 594 break; 595 596 case IBCS2_KDSETMODE: /* set text/graphics mode */ |
597 SCARG(uap, cmd) = KDSETMODE; | 597 uap->cmd = KDSETMODE; |
598 error = ioctl(td, (struct ioctl_args *)uap); 599 break; 600 601 case IBCS2_KDSBORDER: /* set ega color border */ | 598 error = ioctl(td, (struct ioctl_args *)uap); 599 break; 600 601 case IBCS2_KDSBORDER: /* set ega color border */ |
602 SCARG(uap, cmd) = KDSBORDER; | 602 uap->cmd = KDSBORDER; |
603 error = ioctl(td, (struct ioctl_args *)uap); 604 break; 605 606 case IBCS2_KDGKBSTATE: | 603 error = ioctl(td, (struct ioctl_args *)uap); 604 break; 605 606 case IBCS2_KDGKBSTATE: |
607 SCARG(uap, cmd) = KDGKBSTATE; | 607 uap->cmd = KDGKBSTATE; |
608 error = ioctl(td, (struct ioctl_args *)uap); 609 break; 610 611 case IBCS2_KDSETRAD: | 608 error = ioctl(td, (struct ioctl_args *)uap); 609 break; 610 611 case IBCS2_KDSETRAD: |
612 SCARG(uap, cmd) = KDSETRAD; | 612 uap->cmd = KDSETRAD; |
613 error = ioctl(td, (struct ioctl_args *)uap); 614 break; 615 616 case IBCS2_KDENABIO: /* enable direct I/O to ports */ | 613 error = ioctl(td, (struct ioctl_args *)uap); 614 break; 615 616 case IBCS2_KDENABIO: /* enable direct I/O to ports */ |
617 SCARG(uap, cmd) = KDENABIO; | 617 uap->cmd = KDENABIO; |
618 error = ioctl(td, (struct ioctl_args *)uap); 619 break; 620 621 case IBCS2_KDDISABIO: /* disable direct I/O to ports */ | 618 error = ioctl(td, (struct ioctl_args *)uap); 619 break; 620 621 case IBCS2_KDDISABIO: /* disable direct I/O to ports */ |
622 SCARG(uap, cmd) = KDDISABIO; | 622 uap->cmd = KDDISABIO; |
623 error = ioctl(td, (struct ioctl_args *)uap); 624 break; 625 626 case IBCS2_KIOCSOUND: /* start sound generation */ | 623 error = ioctl(td, (struct ioctl_args *)uap); 624 break; 625 626 case IBCS2_KIOCSOUND: /* start sound generation */ |
627 SCARG(uap, cmd) = KIOCSOUND; | 627 uap->cmd = KIOCSOUND; |
628 error = ioctl(td, (struct ioctl_args *)uap); 629 break; 630 631 case IBCS2_KDGKBTYPE: /* get keyboard type */ | 628 error = ioctl(td, (struct ioctl_args *)uap); 629 break; 630 631 case IBCS2_KDGKBTYPE: /* get keyboard type */ |
632 SCARG(uap, cmd) = KDGKBTYPE; | 632 uap->cmd = KDGKBTYPE; |
633 error = ioctl(td, (struct ioctl_args *)uap); 634 break; 635 636 case IBCS2_KDGETLED: /* get keyboard LED status */ | 633 error = ioctl(td, (struct ioctl_args *)uap); 634 break; 635 636 case IBCS2_KDGETLED: /* get keyboard LED status */ |
637 SCARG(uap, cmd) = KDGETLED; | 637 uap->cmd = KDGETLED; |
638 error = ioctl(td, (struct ioctl_args *)uap); 639 break; 640 641 case IBCS2_KDSETLED: /* set keyboard LED status */ | 638 error = ioctl(td, (struct ioctl_args *)uap); 639 break; 640 641 case IBCS2_KDSETLED: /* set keyboard LED status */ |
642 SCARG(uap, cmd) = KDSETLED; | 642 uap->cmd = KDSETLED; |
643 error = ioctl(td, (struct ioctl_args *)uap); 644 break; 645 646 /* Xenix keyboard and display ioctl's from sys/kd.h -- type 'k' */ 647 case IBCS2_GETFKEY: /* Get function key */ | 643 error = ioctl(td, (struct ioctl_args *)uap); 644 break; 645 646 /* Xenix keyboard and display ioctl's from sys/kd.h -- type 'k' */ 647 case IBCS2_GETFKEY: /* Get function key */ |
648 SCARG(uap, cmd) = GETFKEY; | 648 uap->cmd = GETFKEY; |
649 error = ioctl(td, (struct ioctl_args *)uap); 650 break; 651 652 case IBCS2_SETFKEY: /* Set function key */ | 649 error = ioctl(td, (struct ioctl_args *)uap); 650 break; 651 652 case IBCS2_SETFKEY: /* Set function key */ |
653 SCARG(uap, cmd) = SETFKEY; | 653 uap->cmd = SETFKEY; |
654 error = ioctl(td, (struct ioctl_args *)uap); 655 break; 656 657 case IBCS2_GIO_SCRNMAP: /* Get screen output map table */ | 654 error = ioctl(td, (struct ioctl_args *)uap); 655 break; 656 657 case IBCS2_GIO_SCRNMAP: /* Get screen output map table */ |
658 SCARG(uap, cmd) = GIO_SCRNMAP; | 658 uap->cmd = GIO_SCRNMAP; |
659 error = ioctl(td, (struct ioctl_args *)uap); 660 break; 661 662 case IBCS2_PIO_SCRNMAP: /* Set screen output map table */ | 659 error = ioctl(td, (struct ioctl_args *)uap); 660 break; 661 662 case IBCS2_PIO_SCRNMAP: /* Set screen output map table */ |
663 SCARG(uap, cmd) = PIO_SCRNMAP; | 663 uap->cmd = PIO_SCRNMAP; |
664 error = ioctl(td, (struct ioctl_args *)uap); 665 break; 666 667 case IBCS2_GIO_KEYMAP: /* Get keyboard map table */ | 664 error = ioctl(td, (struct ioctl_args *)uap); 665 break; 666 667 case IBCS2_GIO_KEYMAP: /* Get keyboard map table */ |
668 SCARG(uap, cmd) = GIO_KEYMAP; | 668 uap->cmd = GIO_KEYMAP; |
669 error = ioctl(td, (struct ioctl_args *)uap); 670 break; 671 672 case IBCS2_PIO_KEYMAP: /* Set keyboard map table */ | 669 error = ioctl(td, (struct ioctl_args *)uap); 670 break; 671 672 case IBCS2_PIO_KEYMAP: /* Set keyboard map table */ |
673 SCARG(uap, cmd) = PIO_KEYMAP; | 673 uap->cmd = PIO_KEYMAP; |
674 error = ioctl(td, (struct ioctl_args *)uap); 675 break; 676 677 /* socksys */ 678 case IBCS2_SIOCSOCKSYS: 679 error = ibcs2_socksys(td, (struct ibcs2_socksys_args *)uap); 680 break; 681 682 case IBCS2_FIONREAD: 683 case IBCS2_I_NREAD: /* STREAMS */ | 674 error = ioctl(td, (struct ioctl_args *)uap); 675 break; 676 677 /* socksys */ 678 case IBCS2_SIOCSOCKSYS: 679 error = ibcs2_socksys(td, (struct ibcs2_socksys_args *)uap); 680 break; 681 682 case IBCS2_FIONREAD: 683 case IBCS2_I_NREAD: /* STREAMS */ |
684 SCARG(uap, cmd) = FIONREAD; | 684 uap->cmd = FIONREAD; |
685 error = ioctl(td, (struct ioctl_args *)uap); 686 break; 687 688 default: 689 DPRINTF(("ibcs2_ioctl(%d): unknown cmd 0x%lx ", | 685 error = ioctl(td, (struct ioctl_args *)uap); 686 break; 687 688 default: 689 DPRINTF(("ibcs2_ioctl(%d): unknown cmd 0x%lx ", |
690 td->proc->p_pid, SCARG(uap, cmd))); | 690 td->proc->p_pid, uap->cmd)); |
691 error = ENOSYS; 692 break; 693 } 694 695 fdrop(fp, td); 696 return error; 697} | 691 error = ENOSYS; 692 break; 693 } 694 695 fdrop(fp, td); 696 return error; 697} |