diff options
author | hm <hm@FreeBSD.org> | 2000-04-16 09:33:17 +0000 |
---|---|---|
committer | hm <hm@FreeBSD.org> | 2000-04-16 09:33:17 +0000 |
commit | 2978105129a939357d14607fc1b97f939699b115 (patch) | |
tree | 78e687b5e56cd19d58d1150ea55ff25bc384c3a3 /sys/i386/isa/pcvt | |
parent | 05a391f345e470097f60287e6774d003714c84b8 (diff) | |
download | FreeBSD-src-2978105129a939357d14607fc1b97f939699b115.zip FreeBSD-src-2978105129a939357d14607fc1b97f939699b115.tar.gz |
Convert pcvt to use the newbus driver framework, options COMPAT_OLDISA
is no longer required to compile pcvt.
Diffstat (limited to 'sys/i386/isa/pcvt')
-rw-r--r-- | sys/i386/isa/pcvt/pcvt_drv.c | 271 | ||||
-rw-r--r-- | sys/i386/isa/pcvt/pcvt_ext.c | 30 | ||||
-rw-r--r-- | sys/i386/isa/pcvt/pcvt_hdr.h | 13 | ||||
-rw-r--r-- | sys/i386/isa/pcvt/pcvt_kbd.c | 4 | ||||
-rw-r--r-- | sys/i386/isa/pcvt/pcvt_sup.c | 26 |
5 files changed, 157 insertions, 187 deletions
diff --git a/sys/i386/isa/pcvt/pcvt_drv.c b/sys/i386/isa/pcvt/pcvt_drv.c index 605002f..26355cc 100644 --- a/sys/i386/isa/pcvt/pcvt_drv.c +++ b/sys/i386/isa/pcvt/pcvt_drv.c @@ -48,7 +48,7 @@ * pcvt_drv.c VT220 Driver Main Module / OS - Interface * --------------------------------------------------------- * - * Last Edit-Date: [Sun Mar 26 10:38:24 2000] + * Last Edit-Date: [Thu Apr 6 09:44:24 2000] * * $FreeBSD$ * @@ -61,41 +61,51 @@ #include <i386/isa/pcvt/pcvt_hdr.h> #undef MAIN -#include <sys/bus.h> /* XXX */ -static kbd_callback_func_t pcevent; +#include <sys/resource.h> +#include <sys/bus.h> +#include <sys/rman.h> + +#include <machine/resource.h> +#include <machine/bus.h> + +#include <isa/isareg.h> +#include <isa/isavar.h> + +static kbd_callback_func_t pcvt_event; static int pcvt_kbd_wptr = 0; static u_char pcvt_timeout_scheduled = 0; static void vgapelinit(void); static void detect_kbd(void *arg); -static void pcstart(register struct tty *tp); -static int pcparam(struct tty *tp, struct termios *t); +static void pcvt_start(register struct tty *tp); +static int pcvt_param(struct tty *tp, struct termios *t); -static cn_probe_t pccnprobe; -static cn_init_t pccninit; -static cn_term_t pccnterm; -static cn_getc_t pccngetc; -static cn_checkc_t pccncheckc; -static cn_putc_t pccnputc; +static cn_probe_t pcvt_cn_probe; +static cn_init_t pcvt_cn_init; +static cn_term_t pcvt_cn_term; +static cn_getc_t pcvt_cn_getc; +static cn_checkc_t pcvt_cn_checkc; +static cn_putc_t pcvt_cn_putc; -CONS_DRIVER(pc, pccnprobe, pccninit, pccnterm, pccngetc, pccncheckc, pccnputc, - NULL); +CONS_DRIVER(vt, pcvt_cn_probe, pcvt_cn_init, pcvt_cn_term, pcvt_cn_getc, + pcvt_cn_checkc, pcvt_cn_putc, NULL); -static d_open_t pcopen; -static d_close_t pcclose; -static d_ioctl_t pcioctl; -static d_mmap_t pcmmap; +static d_open_t pcvt_open; +static d_close_t pcvt_close; +static d_ioctl_t pcvt_ioctl; +static d_mmap_t pcvt_mmap; #define CDEV_MAJOR 12 -static struct cdevsw pc_cdevsw = { - /* open */ pcopen, - /* close */ pcclose, + +static struct cdevsw vt_cdevsw = { + /* open */ pcvt_open, + /* close */ pcvt_close, /* read */ ttyread, /* write */ ttywrite, - /* ioctl */ pcioctl, + /* ioctl */ pcvt_ioctl, /* poll */ ttypoll, - /* mmap */ pcmmap, + /* mmap */ pcvt_mmap, /* strategy */ nostrategy, /* name */ "vt", /* maj */ CDEV_MAJOR, @@ -105,71 +115,115 @@ static struct cdevsw pc_cdevsw = { /* bmaj */ -1 }; -static int pcprobe ( struct isa_device *dev ); -static int pcattach ( struct isa_device *dev ); +static int pcvt_probe(device_t dev); +static int pcvt_attach(device_t dev); + +static device_method_t pcvt_methods[] = { + DEVMETHOD(device_probe, pcvt_probe), + DEVMETHOD(device_attach, pcvt_attach), + DEVMETHOD(bus_print_child, bus_generic_print_child), + { 0, 0 } +}; -struct isa_driver vtdriver = { /* driver routines */ - pcprobe, pcattach, "vt", 1, +static driver_t pcvt_driver = { + "vt", + pcvt_methods, + 0 }; +static devclass_t pcvt_devclass; + +DRIVER_MODULE(pcvt, isa, pcvt_driver, pcvt_devclass, 0, 0); + /*---------------------------------------------------------------------------* * driver probe *---------------------------------------------------------------------------*/ static int -pcprobe(struct isa_device *dev) +pcvt_probe(device_t dev) { int i; + device_t bus; + + int unit = device_get_unit(dev); + + /* No pnp support */ + if(isa_get_vendorid(dev)) + return ENXIO; + + if(unit != 0) + return ENXIO; + + device_set_desc(dev, "pcvt VT220 console driver"); + + bus = device_get_parent(dev); + bus_set_resource(dev, SYS_RES_IOPORT, 0, 0x3b0, 0x30); + bus_set_resource(dev, SYS_RES_MEMORY, 0, (u_long) Crtat, 0x8000); if (kbd == NULL) { reset_keyboard = 0; kbd_configure(KB_CONF_PROBE_ONLY); - i = kbd_allocate("*", -1, (void *)&kbd, pcevent, (void *)dev->id_unit); + i = kbd_allocate("*", -1, (void *)&kbd, pcvt_event, (void *)&vs[unit]); if ((i < 0) || ((kbd = kbd_get_keyboard(i)) == NULL)) - return (-1); + return 0; } reset_keyboard = 1; /* it's now safe to do kbd reset */ kbd_code_init(); - return (-1); + return 0; } /*---------------------------------------------------------------------------* * driver attach *---------------------------------------------------------------------------*/ static int -pcattach(struct isa_device *dev) +pcvt_attach(device_t dev) { int i; + struct resource *port; + struct resource *mem; + + int unit = device_get_unit(dev); + + if(unit != 0) + return ENXIO; + + i = 0; + port = bus_alloc_resource(dev, SYS_RES_IOPORT, &i, 0, ~0, 0, + RF_ACTIVE | RF_SHAREABLE); + + i = 0; + mem = bus_alloc_resource(dev, SYS_RES_MEMORY, &i, 0, ~0, 0, + RF_ACTIVE | RF_SHAREABLE); vt_coldmalloc(); /* allocate memory for screens */ if (kbd == NULL) - timeout(detect_kbd, (void *)dev->id_unit, hz*2); + timeout(detect_kbd, (void *)&vs[unit], hz*2); - printf("vt%d: ", dev->id_unit); + printf("vt%d: ", unit); switch(adaptor_type) { case MDA_ADAPTOR: - printf("mda"); + printf("MDA"); break; case CGA_ADAPTOR: - printf("cga"); + printf("CGA"); break; case EGA_ADAPTOR: - printf("ega"); + printf("EGA"); break; case VGA_ADAPTOR: printf("%s VGA, ", (char *)vga_string(vga_type)); if(can_do_132col) - printf("80/132 col"); + printf("80/132 columns"); else - printf("80 col"); + printf("80 columns"); vgapelinit(); break; @@ -183,16 +237,16 @@ pcattach(struct isa_device *dev) else printf(", color"); - printf(", %d scr, ", totalscreens); + printf(", %d screens, ", totalscreens); switch(keyboard_type) { case KB_AT: - printf("at-"); + printf("AT-"); break; case KB_MFII: - printf("mf2-"); + printf("MF2-"); break; default: @@ -200,27 +254,25 @@ pcattach(struct isa_device *dev) break; } - printf("kbd\n"); + printf("keyboard\n"); for(i = 0; i < totalscreens; i++) { - ttyregister(&pccons[i]); - vs[i].vs_tty = &pccons[i]; - make_dev(&pc_cdevsw, i, UID_ROOT, GID_WHEEL, 0600, "ttyv%r", i); + ttyregister(&pcvt_tty[i]); + vs[i].vs_tty = &pcvt_tty[i]; + make_dev(&vt_cdevsw, i, UID_ROOT, GID_WHEEL, 0600, "ttyv%r", i); } async_update(UPDATE_START); /* start asynchronous updates */ - dev->id_ointr = pcrint; - - return 1; + return 0; } /*---------------------------------------------------------------------------* * driver open *---------------------------------------------------------------------------*/ static int -pcopen(dev_t dev, int flag, int mode, struct proc *p) +pcvt_open(dev_t dev, int flag, int mode, struct proc *p) { register struct tty *tp; register struct video_state *vsx; @@ -233,14 +285,14 @@ pcopen(dev_t dev, int flag, int mode, struct proc *p) if(i >= PCVT_NSCREENS) return ENXIO; - tp = &pccons[i]; + tp = &pcvt_tty[i]; dev->si_tty = tp; vsx->openf++; - tp->t_oproc = pcstart; - tp->t_param = pcparam; + tp->t_oproc = pcvt_start; + tp->t_param = pcvt_param; tp->t_stop = nottystop; tp->t_dev = dev; @@ -252,7 +304,7 @@ pcopen(dev_t dev, int flag, int mode, struct proc *p) tp->t_cflag = TTYDEF_CFLAG; tp->t_lflag = TTYDEF_LFLAG; tp->t_ispeed = tp->t_ospeed = TTYDEF_SPEED; - pcparam(tp, &tp->t_termios); + pcvt_param(tp, &tp->t_termios); (*linesw[tp->t_line].l_modem)(tp, 1); /* fake connection */ winsz = 1; /* set winsize later */ } @@ -288,7 +340,7 @@ pcopen(dev_t dev, int flag, int mode, struct proc *p) * driver close *---------------------------------------------------------------------------*/ static int -pcclose(dev_t dev, int flag, int mode, struct proc *p) +pcvt_close(dev_t dev, int flag, int mode, struct proc *p) { register struct tty *tp; register struct video_state *vsx; @@ -299,7 +351,7 @@ pcclose(dev_t dev, int flag, int mode, struct proc *p) if(i >= PCVT_NSCREENS) return ENXIO; - tp = &pccons[i]; + tp = &pcvt_tty[i]; (*linesw[tp->t_line].l_close)(tp, flag); @@ -318,7 +370,7 @@ pcclose(dev_t dev, int flag, int mode, struct proc *p) * driver ioctl *---------------------------------------------------------------------------*/ static int -pcioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p) +pcvt_ioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p) { register int error; register struct tty *tp; @@ -327,7 +379,7 @@ pcioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p) if(i >= PCVT_NSCREENS) return ENXIO; - tp = &pccons[i]; + tp = &pcvt_tty[i]; /* note that some ioctl's are global, e.g. KBSTPMAT: There is * only one keyboard and different repeat rates for instance between @@ -336,77 +388,8 @@ pcioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p) */ #ifdef XSERVER - if((error = usl_vt_ioctl(dev, cmd, data, flag, p)) >= 0) return error; - -#if 0 - /* - * just for compatibility: - * XFree86 < 2.0 and SuperProbe still might use it - * - * NB: THIS IS A HACK! Do not use it unless you explicitly need. - * Especially, since the vty is not put into process-controlled - * mode (this would require the application to co-operate), any - * attempts to switch vtys while this kind of X mode is active - * may cause serious trouble. - */ - switch(cmd) - { - case CONSOLE_X_MODE_ON: - { - int i; - - if((error = usl_vt_ioctl(dev, KDENABIO, 0, flag, p)) > 0) - return error; - - i = KD_GRAPHICS; - if((error = usl_vt_ioctl(dev, KDSETMODE, (caddr_t)&i, flag, p)) - > 0) - return error; - - i = K_RAW; - error = usl_vt_ioctl(dev, KDSKBMODE, (caddr_t)&i, flag, p); - return error; - } - - case CONSOLE_X_MODE_OFF: - { - int i; - - (void)usl_vt_ioctl(dev, KDDISABIO, 0, flag, p); - - i = KD_TEXT; - (void)usl_vt_ioctl(dev, KDSETMODE, (caddr_t)&i, flag, p); - - i = K_XLATE; - (void)usl_vt_ioctl(dev, KDSKBMODE, (caddr_t)&i, flag, p); - return 0; - } - - case CONSOLE_X_BELL: - - /* - * If `data' is non-null, the first int value denotes - * the pitch, the second a duration. Otherwise, behaves - * like BEL. - */ - - if (data) - { - sysbeep(PCVT_SYSBEEPF / ((int *)data)[0], - ((int *)data)[1] * hz / 3000); - } - else - { - sysbeep(PCVT_SYSBEEPF / 1493, hz / 4); - } - return (0); - - default: /* fall through */ ; - } -#endif /* 0 */ - #endif /* XSERVER */ if((error = kbdioctl(dev,cmd,data,flag)) >= 0) @@ -429,7 +412,7 @@ pcioctl(dev_t dev, u_long cmd, caddr_t data, int flag, struct proc *p) * driver mmap *---------------------------------------------------------------------------*/ static int -pcmmap(dev_t dev, vm_offset_t offset, int nprot) +pcvt_mmap(dev_t dev, vm_offset_t offset, int nprot) { if (offset > 0x20000 - PAGE_SIZE) return -1; @@ -464,13 +447,13 @@ pcvt_timeout(void *arg) if(*cp == '\0') { /* pass a NULL character */ - (*linesw[pcconsp->t_line].l_rint)('\0', pcconsp); + (*linesw[pcvt_ttyp->t_line].l_rint)('\0', pcvt_ttyp); } /* XXX */ else #endif /* PCVT_NULLCHARS */ while (*cp) - (*linesw[pcconsp->t_line].l_rint)(*cp++ & 0xff, pcconsp); + (*linesw[pcvt_ttyp->t_line].l_rint)(*cp++ & 0xff, pcvt_ttyp); } PCVT_DISABLE_INTR (); @@ -495,7 +478,7 @@ detect_kbd(void *arg) if (kbd != NULL) return; - i = kbd_allocate("*", -1, (void *)&kbd, pcevent, (void *)unit); + i = kbd_allocate("*", -1, (void *)&kbd, pcvt_event, (void *)unit); if (i >= 0) kbd = kbd_get_keyboard(i); if (kbd != NULL) @@ -512,7 +495,7 @@ detect_kbd(void *arg) * keyboard event handler *---------------------------------------------------------------------------*/ static int -pcevent(keyboard_t *thiskbd, int event, void *arg) +pcvt_event(keyboard_t *thiskbd, int event, void *arg) { int unit = (int)arg; @@ -521,7 +504,7 @@ pcevent(keyboard_t *thiskbd, int event, void *arg) switch (event) { case KBDIO_KEYINPUT: - pcrint(unit); + pcvt_rint(unit); return 0; case KBDIO_UNLOADING: reset_keyboard = 0; @@ -538,7 +521,7 @@ pcevent(keyboard_t *thiskbd, int event, void *arg) * (keyboard) interrupt handler *---------------------------------------------------------------------------*/ void -pcrint(int unit) +pcvt_rint(int unit) { u_char dt; u_char ret = -1; @@ -596,7 +579,7 @@ pcrint(int unit) * start output *---------------------------------------------------------------------------*/ static void -pcstart(register struct tty *tp) +pcvt_start(register struct tty *tp) { register struct clist *rbp; int s, len; @@ -648,7 +631,7 @@ out: * console probe *---------------------------------------------------------------------------*/ static void -pccnprobe(struct consdev *cp) +pcvt_cn_probe(struct consdev *cp) { int unit = 0; int i; @@ -672,14 +655,14 @@ pccnprobe(struct consdev *cp) cp->cn_dev = makedev(CDEV_MAJOR, 0); cp->cn_pri = CN_INTERNAL; - cp->cn_tp = &pccons[0]; + cp->cn_tp = &pcvt_tty[0]; } /*---------------------------------------------------------------------------* * console init *---------------------------------------------------------------------------*/ static void -pccninit(struct consdev *cp) +pcvt_cn_init(struct consdev *cp) { int unit = 0; int i; @@ -698,7 +681,7 @@ pccninit(struct consdev *cp) kbd = NULL; } - i = kbd_allocate("*", -1, (void *)&kbd, pcevent, (void *)unit); + i = kbd_allocate("*", -1, (void *)&kbd, pcvt_event, (void *)unit); if (i >= 0) kbd = kbd_get_keyboard(i); @@ -721,7 +704,7 @@ pccninit(struct consdev *cp) * console finish *---------------------------------------------------------------------------*/ static void -pccnterm(struct consdev *cp) +pcvt_cn_term(struct consdev *cp) { if (kbd) { @@ -734,7 +717,7 @@ pccnterm(struct consdev *cp) * console put char *---------------------------------------------------------------------------*/ static void -pccnputc(dev_t dev, int c) +pcvt_cn_putc(dev_t dev, int c) { if (c == '\n') sput("\r", 1, 1, 0); @@ -748,7 +731,7 @@ pccnputc(dev_t dev, int c) * console get char *---------------------------------------------------------------------------*/ static int -pccngetc(dev_t dev) +pcvt_cn_getc(dev_t dev) { register int s; static u_char *cp, cbuf[4]; /* Temp buf for multi-char key sequence. */ @@ -771,7 +754,7 @@ pccngetc(dev_t dev) if (kbd == NULL) return 0; - s = spltty(); /* block pcrint while we poll */ + s = spltty(); /* block pcvt_rint while we poll */ kbd_polling = 1; (*kbdsw[kbd->kb_index]->enable)(kbd); cp = sgetc(0); @@ -798,7 +781,7 @@ pccngetc(dev_t dev) * console check for char *---------------------------------------------------------------------------*/ static int -pccncheckc(dev_t dev) +pcvt_cn_checkc(dev_t dev) { char *cp; int x; @@ -821,7 +804,7 @@ pccncheckc(dev_t dev) * Set line parameters *---------------------------------------------------------------------------*/ static int -pcparam(struct tty *tp, struct termios *t) +pcvt_param(struct tty *tp, struct termios *t) { tp->t_ispeed = t->c_ispeed; tp->t_ospeed = t->c_ospeed; diff --git a/sys/i386/isa/pcvt/pcvt_ext.c b/sys/i386/isa/pcvt/pcvt_ext.c index 2251fb9..fcf212d 100644 --- a/sys/i386/isa/pcvt/pcvt_ext.c +++ b/sys/i386/isa/pcvt/pcvt_ext.c @@ -42,7 +42,7 @@ * pcvt_ext.c VT220 Driver Extended Support Routines * ------------------------------------------------------ * - * Last Edit-Date: [Sun Mar 26 10:38:27 2000] + * Last Edit-Date: [Wed Apr 5 18:18:54 2000] * * $FreeBSD$ * @@ -2097,7 +2097,7 @@ switch_screen(int n, int oldgrafx, int newgrafx) /* update global screen pointers/variables */ current_video_screen = n; /* current screen no */ - pcconsp = &pccons[n]; /* current tty */ + pcvt_ttyp = &pcvt_tty[n]; /* current tty */ vsp = &vs[n]; /* current video state ptr */ @@ -2223,30 +2223,20 @@ set_auto_mode (struct video_state *vsx) vsx->proc = NULL; vsx->pid = 0; vsx->vt_status &= ~(VT_WAIT_REL|VT_WAIT_ACK); - if (ostatus & VT_WAIT_ACK) { -#if 0 - assert (!(ostatus&VT_WAIT_REL)); - assert (vsp == vsx && - vt_switch_pending == current_video_screen + 1); - vt_switch_pending = 0; -#else - if (vsp == vsx && - vt_switch_pending == current_video_screen + 1) + + if (ostatus & VT_WAIT_ACK) + { + if(vsp == vsx && vt_switch_pending == current_video_screen + 1) vt_switch_pending = 0; -#endif } - if (ostatus&VT_WAIT_REL) { + if (ostatus & VT_WAIT_REL) + { int new_screen = vt_switch_pending - 1; -#if 0 - assert(vsp == vsx && vt_switch_pending); - vt_switch_pending = 0; - vgapage (new_screen); -#else - if (vsp == vsx && vt_switch_pending) { + if (vsp == vsx && vt_switch_pending) + { vt_switch_pending = 0; vgapage (new_screen); } -#endif } } diff --git a/sys/i386/isa/pcvt/pcvt_hdr.h b/sys/i386/isa/pcvt/pcvt_hdr.h index c9d65f4..7e7dea0 100644 --- a/sys/i386/isa/pcvt/pcvt_hdr.h +++ b/sys/i386/isa/pcvt/pcvt_hdr.h @@ -39,7 +39,7 @@ * pcvt_hdr.h VT220 Driver Global Include File * ------------------------------------------------ * - * Last Edit-Date: [Mon Mar 27 16:10:50 2000] + * Last Edit-Date: [Wed Apr 5 18:21:32 2000] * * $FreeBSD$ * @@ -78,9 +78,6 @@ #include <dev/kbd/atkbdcreg.h> #include <i386/isa/pcvt/pcvt_conf.h> -#include <i386/isa/isa_device.h> -#include <i386/isa/icu.h> -#include <i386/isa/isa.h> /*===========================================================================* * definitions @@ -564,7 +561,7 @@ u_char color; /* color or mono display */ u_short kern_attr; /* kernel messages char attributes */ u_short user_attr; /* character attributes */ -struct tty pccons[PCVT_NSCREENS]; +struct tty pcvt_tty[PCVT_NSCREENS]; struct sixels { u_char lower[MAXSIXEL]; /* lower half of char */ @@ -728,7 +725,7 @@ u_char bgansitopc[] = { /* background ANSI color -> pc */ BG_MAGENTA, BG_CYAN, BG_LIGHTGREY }; -struct tty *pcconsp = &pccons[0]; /* ptr to current device */ +struct tty *pcvt_ttyp = &pcvt_tty[0]; /* ptr to current device */ video_state *vsp = &vs[0]; /* ptr to current screen parms */ #ifdef XSERVER @@ -864,7 +861,7 @@ extern int pcvt_kbd_rptr; extern int pcvt_kbd_count; extern u_char vga_type; -extern struct tty *pcconsp; +extern struct tty *pcvt_ttyp; extern video_state *vsp; #ifdef XSERVER @@ -951,7 +948,7 @@ void kbd_emulate_pc(int do_emulation); void loadchar ( int fontset, int character, int char_scanlines, u_char *char_table ); void mda2egaorvga ( void ); -ointhand2_t pcrint; +void pcvt_rint(int unit); #if PCVT_SCREENSAVER void pcvt_scrnsv_reset ( void ); diff --git a/sys/i386/isa/pcvt/pcvt_kbd.c b/sys/i386/isa/pcvt/pcvt_kbd.c index c1441b4..0ef701d 100644 --- a/sys/i386/isa/pcvt/pcvt_kbd.c +++ b/sys/i386/isa/pcvt/pcvt_kbd.c @@ -45,7 +45,7 @@ * pcvt_kbd.c VT220 Driver Keyboard Interface Code * ---------------------------------------------------- * - * Last Edit-Date: [Sun Mar 26 10:54:07 2000] + * Last Edit-Date: [Wed Apr 5 18:16:52 2000] * * $FreeBSD$ * @@ -178,7 +178,7 @@ check_for_lost_intr(void *arg) opri = spltty (); (*kbdsw[kbd->kb_index]->lock)(kbd, FALSE); if ((*kbdsw[kbd->kb_index]->check)(kbd)) - pcrint (0); + pcvt_rint(0); splx (opri); } diff --git a/sys/i386/isa/pcvt/pcvt_sup.c b/sys/i386/isa/pcvt/pcvt_sup.c index 1a420d5..ec916ea 100644 --- a/sys/i386/isa/pcvt/pcvt_sup.c +++ b/sys/i386/isa/pcvt/pcvt_sup.c @@ -44,7 +44,7 @@ * pcvt_sup.c VT220 Driver Support Routines * --------------------------------------------- * - * Last Edit-Date: [Fri Mar 31 10:23:04 2000] + * Last Edit-Date: [Wed Apr 5 17:24:20 2000] * * $FreeBSD$ * @@ -1491,7 +1491,7 @@ vgapage(int n) current_video_screen = n; /* current screen no */ - pcconsp = &pccons[n]; /* current tty */ + pcvt_ttyp = &pcvt_tty[n]; /* current tty */ vsp = &vs[n]; /* current video state ptr */ @@ -1795,9 +1795,9 @@ pcvt_set_scrnsv_tmo(int timeout) } #if PCVT_GREENSAVER -#define TSIDX IO_VGA+0x04 /* timing sequencer idx */ -#define TSREG IO_VGA+0x05 /* timing sequencer data */ - +/*---------------------------------------------------------------------------* + * switch monitor on/off + *---------------------------------------------------------------------------*/ static void green_saver(int blank) { @@ -1805,20 +1805,20 @@ green_saver(int blank) if (blank) { - outb(TSIDX, 0x01); - val = inb(TSREG); - outb(TSIDX, 0x01); - outb(TSREG, val | 0x20); + outb(TS_INDEX, 0x01); + val = inb(TS_DATA); + outb(TS_INDEX, 0x01); + outb(TS_DATA, val | 0x20); outb(addr_6845, 0x17); val = inb(addr_6845 + 1); outb(addr_6845 + 1, val & ~0x80); } else { - outb(TSIDX, 0x01); - val = inb(TSREG); - outb(TSIDX, 0x01); - outb(TSREG, val & 0xDF); + outb(TS_INDEX, 0x01); + val = inb(TS_DATA); + outb(TS_INDEX, 0x01); + outb(TS_DATA, val & 0xDF); outb(addr_6845, 0x17); val = inb(addr_6845 + 1); outb(addr_6845 + 1, val | 0x80); |