Deleted Added
full compact
syscons.c (38421) syscons.c (38485)
1/*-
2 * Copyright (c) 1992-1997 S�ren Schmidt
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 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/*-
2 * Copyright (c) 1992-1997 S�ren Schmidt
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 * 1. Redistributions of source code must retain the above copyright

--- 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 * $Id: syscons.c,v 1.274 1998/08/14 06:32:03 sos Exp $
28 * $Id: syscons.c,v 1.275 1998/08/18 07:36:47 sos Exp $
29 */
30
31#include "sc.h"
32#include "apm.h"
33#include "opt_ddb.h"
34#include "opt_devfs.h"
35#include "opt_syscons.h"
36

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

331static d_open_t scopen;
332static d_close_t scclose;
333static d_read_t scread;
334static d_write_t scwrite;
335static d_ioctl_t scioctl;
336static d_devtotty_t scdevtotty;
337static d_mmap_t scmmap;
338
29 */
30
31#include "sc.h"
32#include "apm.h"
33#include "opt_ddb.h"
34#include "opt_devfs.h"
35#include "opt_syscons.h"
36

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

331static d_open_t scopen;
332static d_close_t scclose;
333static d_read_t scread;
334static d_write_t scwrite;
335static d_ioctl_t scioctl;
336static d_devtotty_t scdevtotty;
337static d_mmap_t scmmap;
338
339#define CDEV_MAJOR 12
340static struct cdevsw scdevsw = {
339#define CDEV_MAJOR 12
340static struct cdevsw sc_cdevsw = {
341 scopen, scclose, scread, scwrite,
342 scioctl, nullstop, noreset, scdevtotty,
341 scopen, scclose, scread, scwrite,
342 scioctl, nullstop, noreset, scdevtotty,
343 ttpoll, scmmap, nostrategy, "sc", NULL, -1 };
343 ttpoll, scmmap, nostrategy, "sc",
344 NULL, -1, nodump, nopsize,
345 D_TTY,
346};
344
345/*
346 * These functions need to be before calls to them so they can be inlined.
347 */
348static void
349draw_cursor_image(scr_stat *scp)
350{
351 u_short cursor_image, *ptr = Crtat + (scp->cursor_pos - scp->scr_buf);

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

828 scp->r_hook.ah_arg = NULL;
829 scp->r_hook.ah_name = "system keyboard";
830 scp->r_hook.ah_order = APM_MID_ORDER;
831 apm_hook_establish(APM_HOOK_RESUME , &scp->r_hook);
832#endif
833
834 at_shutdown(scshutdown, NULL, SHUTDOWN_PRE_SYNC);
835
347
348/*
349 * These functions need to be before calls to them so they can be inlined.
350 */
351static void
352draw_cursor_image(scr_stat *scp)
353{
354 u_short cursor_image, *ptr = Crtat + (scp->cursor_pos - scp->scr_buf);

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

831 scp->r_hook.ah_arg = NULL;
832 scp->r_hook.ah_name = "system keyboard";
833 scp->r_hook.ah_order = APM_MID_ORDER;
834 apm_hook_establish(APM_HOOK_RESUME , &scp->r_hook);
835#endif
836
837 at_shutdown(scshutdown, NULL, SHUTDOWN_PRE_SYNC);
838
836 cdevsw_add(&cdev, &scdevsw, NULL);
839 cdevsw_add(&cdev, &sc_cdevsw, NULL);
837
838#ifdef DEVFS
839 for (vc = 0; vc < MAXCONS; vc++)
840
841#ifdef DEVFS
842 for (vc = 0; vc < MAXCONS; vc++)
840 sc_devfs_token[vc] = devfs_add_devswf(&scdevsw, vc, DV_CHR,
843 sc_devfs_token[vc] = devfs_add_devswf(&sc_cdevsw, vc, DV_CHR,
841 UID_ROOT, GID_WHEEL, 0600, "ttyv%r", vc);
842 sc_vga_devfs_token = devfs_link(sc_devfs_token[0], "vga");
844 UID_ROOT, GID_WHEEL, 0600, "ttyv%r", vc);
845 sc_vga_devfs_token = devfs_link(sc_devfs_token[0], "vga");
843 sc_mouse_devfs_token = devfs_add_devswf(&scdevsw, SC_MOUSE, DV_CHR,
846 sc_mouse_devfs_token = devfs_add_devswf(&sc_cdevsw, SC_MOUSE, DV_CHR,
844 UID_ROOT, GID_WHEEL, 0600, "sysmouse");
847 UID_ROOT, GID_WHEEL, 0600, "sysmouse");
845 sc_console_devfs_token = devfs_add_devswf(&scdevsw, SC_CONSOLE, DV_CHR,
848 sc_console_devfs_token = devfs_add_devswf(&sc_cdevsw, SC_CONSOLE, DV_CHR,
846 UID_ROOT, GID_WHEEL, 0600, "consolectl");
847#endif
848 return 0;
849}
850
851struct tty
852*scdevtotty(dev_t dev)
853{

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

881 /* If the Delete key is preferable, an stty is necessary */
882 tp->t_cc[VERASE] = key_map.key[0x0e].map[0];
883 tp->t_iflag = TTYDEF_IFLAG;
884 tp->t_oflag = TTYDEF_OFLAG;
885 tp->t_cflag = TTYDEF_CFLAG;
886 tp->t_lflag = TTYDEF_LFLAG;
887 tp->t_ispeed = tp->t_ospeed = TTYDEF_SPEED;
888 scparam(tp, &tp->t_termios);
849 UID_ROOT, GID_WHEEL, 0600, "consolectl");
850#endif
851 return 0;
852}
853
854struct tty
855*scdevtotty(dev_t dev)
856{

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

884 /* If the Delete key is preferable, an stty is necessary */
885 tp->t_cc[VERASE] = key_map.key[0x0e].map[0];
886 tp->t_iflag = TTYDEF_IFLAG;
887 tp->t_oflag = TTYDEF_OFLAG;
888 tp->t_cflag = TTYDEF_CFLAG;
889 tp->t_lflag = TTYDEF_LFLAG;
890 tp->t_ispeed = tp->t_ospeed = TTYDEF_SPEED;
891 scparam(tp, &tp->t_termios);
889 ttsetwater(tp);
890 (*linesw[tp->t_line].l_modem)(tp, 1);
891 if (minor(dev) == SC_MOUSE)
892 mouse_level = 0; /* XXX */
893 }
894 else
895 if (tp->t_state & TS_XCLUDE && p->p_ucred->cr_uid != 0)
896 return(EBUSY);
897 if (minor(dev) < MAXCONS && !console[minor(dev)]) {

--- 4515 unchanged lines hidden ---
892 (*linesw[tp->t_line].l_modem)(tp, 1);
893 if (minor(dev) == SC_MOUSE)
894 mouse_level = 0; /* XXX */
895 }
896 else
897 if (tp->t_state & TS_XCLUDE && p->p_ucred->cr_uid != 0)
898 return(EBUSY);
899 if (minor(dev) < MAXCONS && !console[minor(dev)]) {

--- 4515 unchanged lines hidden ---