scvidctl.c (150686) | scvidctl.c (162711) |
---|---|
1/*- 2 * Copyright (c) 1998 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp> 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to The DragonFly Project 6 * by Sascha Wildner <saw@online.de> 7 * 8 * Redistribution and use in source and binary forms, with or without --- 14 unchanged lines hidden (view full) --- 23 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 */ 29 30#include <sys/cdefs.h> | 1/*- 2 * Copyright (c) 1998 Kazutaka YOKOTA <yokota@zodiac.mech.utsunomiya-u.ac.jp> 3 * All rights reserved. 4 * 5 * This code is derived from software contributed to The DragonFly Project 6 * by Sascha Wildner <saw@online.de> 7 * 8 * Redistribution and use in source and binary forms, with or without --- 14 unchanged lines hidden (view full) --- 23 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 24 * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 25 * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 */ 29 30#include <sys/cdefs.h> |
31__FBSDID("$FreeBSD: head/sys/dev/syscons/scvidctl.c 150686 2005-09-28 14:54:07Z marius $"); | 31__FBSDID("$FreeBSD: head/sys/dev/syscons/scvidctl.c 162711 2006-09-27 19:57:02Z ru $"); |
32 | 32 |
33#include "opt_compat.h" |
|
33#include "opt_syscons.h" 34 35#include <sys/param.h> 36#include <sys/systm.h> 37#include <sys/conf.h> 38#include <sys/signalvar.h> 39#include <sys/tty.h> 40#include <sys/kernel.h> --- 436 unchanged lines hidden (view full) --- 477sc_vid_ioctl(struct tty *tp, u_long cmd, caddr_t data, int flag, struct thread *td) 478{ 479 scr_stat *scp; 480 video_adapter_t *adp; 481 video_info_t info; 482 video_adapter_info_t adp_info; 483 int error; 484 int s; | 34#include "opt_syscons.h" 35 36#include <sys/param.h> 37#include <sys/systm.h> 38#include <sys/conf.h> 39#include <sys/signalvar.h> 40#include <sys/tty.h> 41#include <sys/kernel.h> --- 436 unchanged lines hidden (view full) --- 478sc_vid_ioctl(struct tty *tp, u_long cmd, caddr_t data, int flag, struct thread *td) 479{ 480 scr_stat *scp; 481 video_adapter_t *adp; 482 video_info_t info; 483 video_adapter_info_t adp_info; 484 int error; 485 int s; |
486#if defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD5) || \ 487 defined(COMPAT_FREEBSD4) || defined(COMPAT_43) 488 int ival; 489#endif |
|
485 486 scp = SC_STAT(tp->t_dev); 487 if (scp == NULL) /* tp == SC_MOUSE */ 488 return ENOIOCTL; 489 adp = scp->sc->adp; 490 if (adp == NULL) /* shouldn't happen??? */ 491 return ENODEV; 492 --- 86 unchanged lines hidden (view full) --- 579 if (error == 0) 580 bcopy(&info, (old_video_info_t *)data, sizeof(old_video_info_t)); 581 return error; 582 583 case CONS_FINDMODE: /* find a matching video mode */ 584 case FBIO_FINDMODE: 585 return fb_ioctl(adp, FBIO_FINDMODE, data); 586 | 490 491 scp = SC_STAT(tp->t_dev); 492 if (scp == NULL) /* tp == SC_MOUSE */ 493 return ENOIOCTL; 494 adp = scp->sc->adp; 495 if (adp == NULL) /* shouldn't happen??? */ 496 return ENODEV; 497 --- 86 unchanged lines hidden (view full) --- 584 if (error == 0) 585 bcopy(&info, (old_video_info_t *)data, sizeof(old_video_info_t)); 586 return error; 587 588 case CONS_FINDMODE: /* find a matching video mode */ 589 case FBIO_FINDMODE: 590 return fb_ioctl(adp, FBIO_FINDMODE, data); 591 |
592#if defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD5) || \ 593 defined(COMPAT_FREEBSD4) || defined(COMPAT_43) 594 case _IO('c', 104): 595 ival = IOCPARM_IVAL(data); 596 data = (caddr_t)&ival; 597 /* FALLTHROUGH */ 598#endif |
|
587 case CONS_SETWINORG: /* set frame buffer window origin */ 588 case FBIO_SETWINORG: 589 if (scp != scp->sc->cur_scp) 590 return ENODEV; /* XXX */ 591 return fb_ioctl(adp, FBIO_SETWINORG, data); 592 593 case FBIO_GETWINORG: /* get frame buffer window origin */ 594 if (scp != scp->sc->cur_scp) --- 75 unchanged lines hidden (view full) --- 670 case SW_PC98_EGC640x400: case SW_PC98_PEGC640x400: 671 case SW_PC98_PEGC640x480: 672#endif 673 if (!(adp->va_flags & V_ADP_MODECHANGE)) 674 return ENODEV; 675 return sc_set_graphics_mode(scp, tp, cmd & 0xff); 676#endif /* SC_NO_MODE_CHANGE */ 677 | 599 case CONS_SETWINORG: /* set frame buffer window origin */ 600 case FBIO_SETWINORG: 601 if (scp != scp->sc->cur_scp) 602 return ENODEV; /* XXX */ 603 return fb_ioctl(adp, FBIO_SETWINORG, data); 604 605 case FBIO_GETWINORG: /* get frame buffer window origin */ 606 if (scp != scp->sc->cur_scp) --- 75 unchanged lines hidden (view full) --- 682 case SW_PC98_EGC640x400: case SW_PC98_PEGC640x400: 683 case SW_PC98_PEGC640x480: 684#endif 685 if (!(adp->va_flags & V_ADP_MODECHANGE)) 686 return ENODEV; 687 return sc_set_graphics_mode(scp, tp, cmd & 0xff); 688#endif /* SC_NO_MODE_CHANGE */ 689 |
690#if defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD5) || \ 691 defined(COMPAT_FREEBSD4) || defined(COMPAT_43) 692 case _IO('K', 10): 693 ival = IOCPARM_IVAL(data); 694 data = (caddr_t)&ival; 695 /* FALLTHROUGH */ 696#endif |
|
678 case KDSETMODE: /* set current mode of this (virtual) console */ | 697 case KDSETMODE: /* set current mode of this (virtual) console */ |
679 switch (*(intptr_t *)data) { | 698 switch (*(int *)data) { |
680 case KD_TEXT: /* switch to TEXT (known) mode */ 681 /* 682 * If scp->mode is of graphics modes, we don't know which 683 * text mode to switch back to... 684 */ 685 if (scp->status & GRAPHICS_MODE) 686 return EINVAL; 687 /* restore fonts & palette ! */ --- 111 unchanged lines hidden (view full) --- 799 case KDGETMODE: /* get current mode of this (virtual) console */ 800 /* 801 * From the user program's point of view, KD_PIXEL is the same 802 * as KD_TEXT... 803 */ 804 *data = ISGRAPHSC(scp) ? KD_GRAPHICS : KD_TEXT; 805 return 0; 806 | 699 case KD_TEXT: /* switch to TEXT (known) mode */ 700 /* 701 * If scp->mode is of graphics modes, we don't know which 702 * text mode to switch back to... 703 */ 704 if (scp->status & GRAPHICS_MODE) 705 return EINVAL; 706 /* restore fonts & palette ! */ --- 111 unchanged lines hidden (view full) --- 818 case KDGETMODE: /* get current mode of this (virtual) console */ 819 /* 820 * From the user program's point of view, KD_PIXEL is the same 821 * as KD_TEXT... 822 */ 823 *data = ISGRAPHSC(scp) ? KD_GRAPHICS : KD_TEXT; 824 return 0; 825 |
826#if defined(COMPAT_FREEBSD6) || defined(COMPAT_FREEBSD5) || \ 827 defined(COMPAT_FREEBSD4) || defined(COMPAT_43) 828 case _IO('K', 13): 829 ival = IOCPARM_IVAL(data); 830 data = (caddr_t)&ival; 831 /* FALLTHROUGH */ 832#endif |
|
807 case KDSBORDER: /* set border color of this (virtual) console */ | 833 case KDSBORDER: /* set border color of this (virtual) console */ |
808 scp->border = *(intptr_t *)data; | 834 scp->border = *(int *)data; |
809 if (scp == scp->sc->cur_scp) 810 sc_set_border(scp, scp->border); 811 return 0; 812 } 813 814 return ENOIOCTL; 815} 816 --- 48 unchanged lines hidden --- | 835 if (scp == scp->sc->cur_scp) 836 sc_set_border(scp, scp->border); 837 return 0; 838 } 839 840 return ENOIOCTL; 841} 842 --- 48 unchanged lines hidden --- |