Deleted Added
sdiff udiff text old ( 150686 ) new ( 162711 )
full compact
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 $");
32
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;
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
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
678 case KDSETMODE: /* set current mode of this (virtual) console */
679 switch (*(intptr_t *)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
807 case KDSBORDER: /* set border color of this (virtual) console */
808 scp->border = *(intptr_t *)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 ---