sync with 0504; prototype changes
authorderaadt <deraadt@openbsd.org>
Tue, 7 May 1996 07:21:29 +0000 (07:21 +0000)
committerderaadt <deraadt@openbsd.org>
Tue, 7 May 1996 07:21:29 +0000 (07:21 +0000)
50 files changed:
sys/arch/i386/i386/autoconf.c
sys/arch/i386/i386/conf.c
sys/arch/i386/i386/db_disasm.c
sys/arch/i386/i386/db_interface.c
sys/arch/i386/i386/db_trace.c
sys/arch/i386/i386/disksubr.c
sys/arch/i386/i386/freebsd_machdep.c
sys/arch/i386/i386/gdt.c
sys/arch/i386/i386/genassym.c
sys/arch/i386/i386/in_cksum.c
sys/arch/i386/i386/linux_machdep.c
sys/arch/i386/i386/locore.s
sys/arch/i386/i386/machdep.c
sys/arch/i386/i386/mainbus.c
sys/arch/i386/i386/math_emulate.c
sys/arch/i386/i386/mem.c
sys/arch/i386/i386/ns_cksum.c
sys/arch/i386/i386/pmap.c
sys/arch/i386/i386/pmap.old.c
sys/arch/i386/i386/process_machdep.c
sys/arch/i386/i386/svr4_machdep.c
sys/arch/i386/i386/swapgeneric.c
sys/arch/i386/i386/sys_machdep.c
sys/arch/i386/i386/trap.c
sys/arch/i386/i386/vm86.c
sys/arch/i386/i386/vm_machdep.c
sys/arch/i386/include/bus.h
sys/arch/i386/include/conf.h [new file with mode: 0644]
sys/arch/i386/include/cpu.h
sys/arch/i386/include/db_machdep.h
sys/arch/i386/include/endian.h
sys/arch/i386/include/linux_machdep.h
sys/arch/i386/include/pmap.h
sys/arch/i386/include/pmap.old.h
sys/arch/i386/include/psl.h
sys/arch/i386/include/vm86.h
sys/arch/i386/isa/clock.c
sys/arch/i386/isa/fd.c
sys/arch/i386/isa/isa_machdep.c
sys/arch/i386/isa/isa_machdep.h
sys/arch/i386/isa/lms.c
sys/arch/i386/isa/mms.c
sys/arch/i386/isa/npx.c
sys/arch/i386/isa/pccons.c
sys/arch/i386/isa/pcvt/pcvt_drv.c
sys/arch/i386/isa/pcvt/pcvt_hdr.h
sys/arch/i386/isa/pcvt/pcvt_kbd.c
sys/arch/i386/isa/pcvt/pcvt_kbd.h
sys/arch/i386/isa/pcvt/pcvt_out.c
sys/dev/isa/fd.c

index 0358a72..7be949a 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: autoconf.c,v 1.8 1996/04/21 22:16:22 deraadt Exp $    */
-/*     $NetBSD: autoconf.c,v 1.19 1996/03/29 01:15:04 mycroft Exp $    */
+/*     $OpenBSD: autoconf.c,v 1.9 1996/05/07 07:21:29 deraadt Exp $    */
+/*     $NetBSD: autoconf.c,v 1.20 1996/05/03 19:41:56 christos Exp $   */
 
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
 #include <sys/device.h>
 
 #include <machine/pte.h>
+#include <machine/cpu.h>
 
-void   swapconf __P((void));
-void   setroot __P((void));
-
-void   setroot __P((void));
-void   swapconf __P((void));
-void   dumpconf __P((void));
+void swapconf __P((void));
+void setroot __P((void));
 
 /*
  * The following several variables are related to
@@ -135,11 +132,11 @@ swapconf()
 u_long bootdev = 0;            /* should be dev_t, but not until 32 bits */
 
 static char devname[][2] = {
-       'w','d',        /* 0 = wd */
-       's','w',        /* 1 = sw */
-       'f','d',        /* 2 = fd */
-       'w','t',        /* 3 = wt */
-       's','d',        /* 4 = sd -- new SCSI system */
+       { 'w','d' },    /* 0 = wd */
+       { 's','w' },    /* 1 = sw */
+       { 'f','d' },    /* 2 = fd */
+       { 'w','t' },    /* 3 = wt */
+       { 's','d' },    /* 4 = sd -- new SCSI system */
 };
 
 /*
@@ -151,10 +148,15 @@ void
 setroot()
 {
        int  majdev, mindev, unit, part, adaptor;
-       dev_t temp, orootdev;
+       dev_t orootdev;
+#ifdef DOSWAP
+       dev_t temp = 0;
+#endif
        struct swdevt *swp;
 
-/*printf("howto %x bootdev %x ", boothowto, bootdev);*/
+#if 0
+       printf("howto %x bootdev %x ", boothowto, bootdev);
+#endif
        if (boothowto & RB_DFLTROOT ||
            (bootdev & B_MAGICMASK) != (u_long)B_DEVMAGIC)
                return;
index c28ad9c..952f0fb 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: conf.c,v 1.14 1996/05/04 18:50:44 mickey Exp $        */
-/*     $NetBSD: conf.c,v 1.74 1996/03/30 07:30:33 mycroft Exp $        */
+/*     $OpenBSD: conf.c,v 1.15 1996/05/07 07:21:31 deraadt Exp $       */
+/*     $NetBSD: conf.c,v 1.75 1996/05/03 19:40:20 christos Exp $       */
 
 /*
  * Copyright (c) 1994, 1995 Charles M. Hannum.  All rights reserved.
 #include <sys/conf.h>
 #include <sys/vnode.h>
 
-int    ttselect        __P((dev_t, int, struct proc *));
-
 #include "wdc.h"
 bdev_decl(wd);
 bdev_decl(sw);
 #include "fdc.h"
-#define        fdopen  Fdopen  /* conflicts with fdopen() in kern_descrip.c */
 bdev_decl(fd);
-#undef fdopen
 #include "wt.h"
 bdev_decl(wt);
 #include "sd.h"
@@ -71,9 +67,7 @@ struct bdevsw bdevsw[] =
 {
        bdev_disk_init(NWDC,wd),        /* 0: ST506/ESDI/IDE disk */
        bdev_swap_init(1,sw),           /* 1: swap pseudo-device */
-#define        fdopen  Fdopen
        bdev_disk_init(NFDC,fd),        /* 2: floppy diskette */
-#undef fdopen
        bdev_tape_init(NWT,wt),         /* 3: QIC-02/QIC-36 tape */
        bdev_disk_init(NSD,sd),         /* 4: SCSI disk */
        bdev_tape_init(NST,st),         /* 5: SCSI tape */
@@ -142,9 +136,7 @@ cdev_decl(ptc);
 cdev_decl(log);
 #include "com.h"
 cdev_decl(com);
-#define        fdopen  Fdopen
 cdev_decl(fd);
-#undef fdopen
 cdev_decl(wt);
 cdev_decl(scd);
 #include "pc.h"
@@ -208,9 +200,7 @@ struct cdevsw       cdevsw[] =
        cdev_ptc_init(NPTY,ptc),        /* 6: pseudo-tty master */
        cdev_log_init(1,log),           /* 7: /dev/klog */
        cdev_tty_init(NCOM,com),        /* 8: serial port */
-#define        fdopen  Fdopen
        cdev_disk_init(NFDC,fd),        /* 9: floppy disk */
-#undef fdopen
        cdev_tape_init(NWT,wt),         /* 10: QIC-02/QIC-36 tape */
        cdev_disk_init(NSCD,scd),       /* 11: Sony CD-ROM */
        cdev_pc_init(NPC + NVT,pc),     /* 12: PC console */
index 7959d59..5ca93f4 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: db_disasm.c,v 1.10 1996/02/02 18:05:58 mycroft Exp $   */
+/*     $NetBSD: db_disasm.c,v 1.11 1996/05/03 19:41:58 christos Exp $  */
 
 /* 
  * Mach Operating System
@@ -37,6 +37,8 @@
 
 #include <ddb/db_access.h>
 #include <ddb/db_sym.h>
+#include <ddb/db_output.h>
+#include <ddb/db_interface.h>
 
 /*
  * Size attributes
@@ -826,9 +828,9 @@ char *      db_index_reg_16[8] = {
 };
 
 char * db_reg[3][8] = {
-       "%al",  "%cl",  "%dl",  "%bl",  "%ah",  "%ch",  "%dh",  "%bh",
-       "%ax",  "%cx",  "%dx",  "%bx",  "%sp",  "%bp",  "%si",  "%di",
-       "%eax", "%ecx", "%edx", "%ebx", "%esp", "%ebp", "%esi", "%edi"
+       { "%al",  "%cl",  "%dl",  "%bl",  "%ah",  "%ch",  "%dh",  "%bh" },
+       { "%ax",  "%cx",  "%dx",  "%bx",  "%sp",  "%bp",  "%si",  "%di" },
+       { "%eax", "%ecx", "%edx", "%ebx", "%esp", "%ebp", "%esi", "%edi" }
 };
 
 char * db_seg_reg[8] = {
@@ -854,6 +856,11 @@ int db_lengths[] = {
                (loc) += (size); \
        } while (0)
 
+
+db_addr_t db_read_address __P((db_addr_t, int, int, struct i_addr *));
+void db_print_address __P((char *, int, struct i_addr *));
+db_addr_t db_disasm_esc __P((db_addr_t, int, int, int, char *));
+
 /*
  * Read address at location and return updated location.
  */
@@ -864,7 +871,7 @@ db_read_address(loc, short_addr, regmodrm, addrp)
        int             regmodrm;
        struct i_addr   *addrp;         /* out */
 {
-       int             mod, rm, sib, index, ss, disp;
+       int             mod, rm, sib, index, disp;
 
        mod = f_mod(regmodrm);
        rm  = f_rm(regmodrm);
@@ -1064,7 +1071,7 @@ db_disasm(loc, altfmt)
        char *  i_name;
        int     i_size;
        int     i_mode;
-       int     regmodrm;
+       int     regmodrm = 0;
        boolean_t       first;
        int     displ;
        int     prefix;
index e9d0896..bda0b08 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: db_interface.c,v 1.5 1996/04/21 22:16:24 deraadt Exp $        */
-/*     $NetBSD: db_interface.c,v 1.21 1996/03/30 07:57:16 mycroft Exp $        */
+/*     $OpenBSD: db_interface.c,v 1.6 1996/05/07 07:21:34 deraadt Exp $        */
+/*     $NetBSD: db_interface.c,v 1.22 1996/05/03 19:42:00 christos Exp $       */
 
 /* 
  * Mach Operating System
 #include <sys/param.h>
 #include <sys/proc.h>
 #include <sys/reboot.h>
-#include <sys/systm.h> /* just for boothowto --eichin */
+#include <sys/systm.h>
 
 #include <vm/vm.h>
 
+#include <dev/cons.h>
+
 #include <machine/db_machdep.h>
 
+#include <ddb/db_sym.h>
+#include <ddb/db_command.h>
+#include <ddb/db_extern.h>
+#include <ddb/db_access.h>
+#include <ddb/db_output.h>
+
+
 extern label_t *db_recover;
 extern char *trap_type[];
 extern int trap_types;
 
 int    db_active = 0;
 
+void kdbprinttrap __P((int, int));
+
 /*
  * Print trap reason.
  */
@@ -68,7 +79,7 @@ kdbprinttrap(type, code)
 int
 kdb_trap(type, code, regs)
        int type, code;
-       register db_regs_t *regs;
+       db_regs_t *regs;
 {
        int s;
 
@@ -136,13 +147,13 @@ kdb_trap(type, code, regs)
 void
 db_read_bytes(addr, size, data)
        vm_offset_t     addr;
-       register int    size;
+       register size_t size;
        register char   *data;
 {
        register char   *src;
 
        src = (char *)addr;
-       while (--size >= 0)
+       while (size-- > 0)
                *data++ = *src++;
 }
 
@@ -154,7 +165,7 @@ pt_entry_t *pmap_pte __P((pmap_t, vm_offset_t));
 void
 db_write_bytes(addr, size, data)
        vm_offset_t     addr;
-       register int    size;
+       register size_t size;
        register char   *data;
 {
        register char   *dst;
@@ -184,7 +195,7 @@ db_write_bytes(addr, size, data)
 
        dst = (char *)addr;
 
-       while (--size >= 0)
+       while (size-- > 0)
                *dst++ = *data++;
 
        if (ptep0) {
index 7ea0e5a..2a4acc0 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: db_trace.c,v 1.2 1996/03/11 11:16:44 mickey Exp $     */
-/*     $NetBSD: db_trace.c,v 1.17 1995/10/11 04:19:35 mycroft Exp $    */
+/*     $OpenBSD: db_trace.c,v 1.3 1996/05/07 07:21:35 deraadt Exp $    */
+/*     $NetBSD: db_trace.c,v 1.18 1996/05/03 19:42:01 christos Exp $   */
 
 /* 
  * Mach Operating System
  */
 
 #include <sys/param.h>
+#include <sys/systm.h>
 #include <sys/proc.h>
 
 #include <machine/db_machdep.h>
 
-#include <ddb/db_access.h>
 #include <ddb/db_sym.h>
+#include <ddb/db_access.h>
 #include <ddb/db_variables.h>
+#include <ddb/db_output.h>
+#include <ddb/db_interface.h>
 
 /*
  * Machine register set.
  */
 struct db_variable db_regs[] = {
-       "es",     &ddb_regs.tf_es,     FCN_NULL,
-       "ds",     &ddb_regs.tf_ds,     FCN_NULL,
-       "edi",    &ddb_regs.tf_edi,    FCN_NULL,
-       "esi",    &ddb_regs.tf_esi,    FCN_NULL,
-       "ebp",    &ddb_regs.tf_ebp,    FCN_NULL,
-       "ebx",    &ddb_regs.tf_ebx,    FCN_NULL,
-       "edx",    &ddb_regs.tf_edx,    FCN_NULL,
-       "ecx",    &ddb_regs.tf_ecx,    FCN_NULL,
-       "eax",    &ddb_regs.tf_eax,    FCN_NULL,
-       "eip",    &ddb_regs.tf_eip,    FCN_NULL,
-       "cs",     &ddb_regs.tf_cs,     FCN_NULL,
-       "eflags", &ddb_regs.tf_eflags, FCN_NULL,
-       "esp",    &ddb_regs.tf_esp,    FCN_NULL,
-       "ss",     &ddb_regs.tf_ss,     FCN_NULL,
+       { "es",         &ddb_regs.tf_es,     FCN_NULL },
+       { "ds",         &ddb_regs.tf_ds,     FCN_NULL },
+       { "edi",        &ddb_regs.tf_edi,    FCN_NULL },
+       { "esi",        &ddb_regs.tf_esi,    FCN_NULL },
+       { "ebp",        &ddb_regs.tf_ebp,    FCN_NULL },
+       { "ebx",        &ddb_regs.tf_ebx,    FCN_NULL },
+       { "edx",        &ddb_regs.tf_edx,    FCN_NULL },
+       { "ecx",        &ddb_regs.tf_ecx,    FCN_NULL },
+       { "eax",        &ddb_regs.tf_eax,    FCN_NULL },
+       { "eip",        &ddb_regs.tf_eip,    FCN_NULL },
+       { "cs",         &ddb_regs.tf_cs,     FCN_NULL },
+       { "eflags",     &ddb_regs.tf_eflags, FCN_NULL },
+       { "esp",        &ddb_regs.tf_esp,    FCN_NULL },
+       { "ss",         &ddb_regs.tf_ss,     FCN_NULL },
 };
 struct db_variable *db_eregs = db_regs + sizeof(db_regs)/sizeof(db_regs[0]);
 
@@ -78,6 +81,10 @@ db_addr_t    db_syscall_symbol_value = 0;
 db_addr_t      db_kdintr_symbol_value = 0;
 boolean_t      db_trace_symbols_found = FALSE;
 
+void db_find_trace_symbols __P((void));
+int db_numargs __P((struct i386_frame *));
+void db_nextframe __P((struct i386_frame **, db_addr_t *, int *, int));
+
 void
 db_find_trace_symbols()
 {
@@ -178,7 +185,7 @@ db_stack_trace_cmd(addr, have_addr, count, modif)
        struct i386_frame *frame, *lastframe;
        int             *argp;
        db_addr_t       callpc;
-       int             is_trap;
+       int             is_trap = 0;
        boolean_t       kernel_only = TRUE;
        boolean_t       trace_thread = FALSE;
 
@@ -206,7 +213,7 @@ db_stack_trace_cmd(addr, have_addr, count, modif)
                frame = (struct i386_frame *)ddb_regs.tf_ebp;
                callpc = (db_addr_t)ddb_regs.tf_eip;
        } else if (trace_thread) {
-               printf ("db_trace.c: can't trace thread\n");
+               db_printf ("db_trace.c: can't trace thread\n");
        } else {
                frame = (struct i386_frame *)addr;
                callpc = (db_addr_t)
@@ -308,7 +315,7 @@ db_stack_trace_cmd(addr, have_addr, count, modif)
                if (INKERNEL((int)frame)) {
                        /* staying in kernel */
                        if (frame <= lastframe) {
-                               db_printf("Bad frame pointer: 0x%x\n", frame);
+                               db_printf("Bad frame pointer: %p\n", frame);
                                break;
                        }
                } else if (INKERNEL((int)lastframe)) {
@@ -318,7 +325,7 @@ db_stack_trace_cmd(addr, have_addr, count, modif)
                } else {
                        /* in user */
                        if (frame <= lastframe) {
-                               db_printf("Bad user frame pointer: 0x%x\n",
+                               db_printf("Bad user frame pointer: %p\n",
                                          frame);
                                break;
                        }
index e8f8d16..92bb409 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: disksubr.c,v 1.3 1996/04/21 22:16:25 deraadt Exp $    */
-/*     $NetBSD: disksubr.c,v 1.20 1996/04/03 08:18:27 mycroft Exp $    */
+/*     $OpenBSD: disksubr.c,v 1.4 1996/05/07 07:21:36 deraadt Exp $    */
+/*     $NetBSD: disksubr.c,v 1.21 1996/05/03 19:42:03 christos Exp $   */
 
 /*
  * Copyright (c) 1982, 1986, 1988 Regents of the University of California.
@@ -65,7 +65,7 @@ int fat_types[] = { DOSPTYP_FAT12, DOSPTYP_FAT16S,
 char *
 readdisklabel(dev, strat, lp, osdep)
        dev_t dev;
-       void (*strat)();
+       void (*strat) __P((struct buf *));
        register struct disklabel *lp;
        struct cpu_disklabel *osdep;
 {
@@ -229,7 +229,6 @@ setdisklabel(olp, nlp, openmask, osdep)
        u_long openmask;
        struct cpu_disklabel *osdep;
 {
-       struct dos_partition *dp = osdep->dosparts;
        register i;
        register struct partition *opp, *npp;
 
@@ -283,7 +282,7 @@ setdisklabel(olp, nlp, openmask, osdep)
 int
 writedisklabel(dev, strat, lp, osdep)
        dev_t dev;
-       void (*strat)();
+       void (*strat) __P((struct buf *));
        register struct disklabel *lp;
        struct cpu_disklabel *osdep;
 {
@@ -341,7 +340,7 @@ writedisklabel(dev, strat, lp, osdep)
        (*strat)(bp);
 
        /* if successful, locate disk label within block and validate */
-       if (error = biowait(bp))
+       if ((error = biowait(bp)) != 0)
                goto done;
        for (dlp = (struct disklabel *)bp->b_data;
            dlp <= (struct disklabel *)(bp->b_data + lp->d_secsize - sizeof(*dlp));
index 5659901..c226e0f 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: freebsd_machdep.c,v 1.5 1996/05/02 13:41:14 deraadt Exp $     */
-/*     $NetBSD: freebsd_machdep.c,v 1.9 1996/04/18 08:36:20 mycroft Exp $      */
+/*     $OpenBSD: freebsd_machdep.c,v 1.6 1996/05/07 07:21:37 deraadt Exp $     */
+/*     $NetBSD: freebsd_machdep.c,v 1.10 1996/05/03 19:42:05 christos Exp $    */
 
 /*-
  * Copyright (c) 1993, 1994, 1995, 1996 Charles M. Hannum.  All rights reserved.
@@ -375,7 +375,7 @@ freebsd_ptrace_getregs(fregs, addr, datap)
                return 0;
        }
 #ifdef DIAGNOSTIC
-       printf("freebsd_ptrace_getregs: *(0x%08x)\n", offset);
+       printf("freebsd_ptrace_getregs: *(0x%08lx)\n", offset);
 #endif
        return EFAULT;
 }
@@ -402,7 +402,7 @@ freebsd_ptrace_setregs(fregs, addr, data)
                return 0;
        }
 #ifdef DIAGNOSTIC
-       printf("freebsd_ptrace_setregs: *(0x%08x) = 0x%08x\n", offset, data);
+       printf("freebsd_ptrace_setregs: *(0x%08lx) = 0x%08x\n", offset, data);
 #endif
        return EFAULT;
 }
index 37361fb..fc8a6dc 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: gdt.c,v 1.8 1996/04/29 14:12:48 hvozda Exp $  */
-/*     $NetBSD: gdt.c,v 1.7 1996/02/27 22:45:01 jtc Exp $      */
+/*     $OpenBSD: gdt.c,v 1.9 1996/05/07 07:21:38 deraadt Exp $ */
+/*     $NetBSD: gdt.c,v 1.8 1996/05/03 19:42:06 christos Exp $ */
 
 /*-
  * Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -60,6 +60,15 @@ int gdt_flags;
 #define        GDT_LOCKED      0x1
 #define        GDT_WANTED      0x2
 
+static __inline void gdt_lock __P((void));
+static __inline void gdt_unlock __P((void));
+void gdt_compact __P((void));
+void gdt_init __P((void));
+void gdt_grow __P((void));
+void gdt_shrink __P((void));
+int gdt_get_slot __P((void));
+void gdt_put_slot __P((int));
+
 /*
  * Lock and unlock the GDT, to avoid races in case gdt_{ge,pu}t_slot() sleep
  * waiting for memory.
@@ -69,7 +78,7 @@ int gdt_flags;
  * some time after the GDT is unlocked, so gdt_compact() could attempt to
  * reclaim it.
  */
-static inline void
+static __inline void
 gdt_lock()
 {
 
@@ -80,7 +89,7 @@ gdt_lock()
        gdt_flags |= GDT_LOCKED;
 }
 
-static inline void
+static __inline void
 gdt_unlock()
 {
 
index 8bba187..9e2b234 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: genassym.c,v 1.48 1996/03/28 23:44:04 mycroft Exp $    */
+/*     $NetBSD: genassym.c,v 1.49 1996/05/03 19:42:07 christos Exp $   */
 
 /*-
  * Copyright (c) 1995 Charles M. Hannum.  All rights reserved.
@@ -76,6 +76,8 @@
 #include <stdio.h>
 #include <stddef.h>
 
+int main __P((void));
+
 int
 main()
 {
index 95a82ae..91bfee7 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: in_cksum.c,v 1.8 1995/05/01 01:24:04 mycroft Exp $     */
+/*     $NetBSD: in_cksum.c,v 1.9 1996/05/03 19:42:09 christos Exp $    */
 
 /*-
  * Copyright (c) 1994, 1995 Charles M. Hannum.  All rights reserved.
@@ -38,7 +38,9 @@
  */
 
 #include <sys/param.h>
+#include <sys/systm.h>
 #include <sys/mbuf.h>
+#include <netinet/in.h>
 
 /*
  * Checksum routine for Internet Protocol family headers.
index af6bd27..163dc0d 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: linux_machdep.c,v 1.7 1996/05/02 13:41:16 deraadt Exp $       */
-/*     $NetBSD: linux_machdep.c,v 1.28 1996/04/18 08:36:22 mycroft Exp $       */
+/*     $OpenBSD: linux_machdep.c,v 1.8 1996/05/07 07:21:42 deraadt Exp $       */
+/*     $NetBSD: linux_machdep.c,v 1.29 1996/05/03 19:42:11 christos Exp $      */
 
 /*
  * Copyright (c) 1995 Frank van der Linden
@@ -58,6 +58,7 @@
 #include <compat/linux/linux_signal.h>
 #include <compat/linux/linux_syscallargs.h>
 #include <compat/linux/linux_util.h>
+#include <compat/linux/linux_ioctl.h>
 
 #include <machine/cpu.h>
 #include <machine/cpufunc.h>
 #include <arch/i386/isa/pcvt/pcvt_ioctl.h>
 #endif
 
+#ifdef USER_LDT
+#include <machine/cpu.h>
+int linux_read_ldt __P((struct proc *, struct linux_sys_modify_ldt_args *,
+    register_t *));
+int linux_write_ldt __P((struct proc *, struct linux_sys_modify_ldt_args *,
+    register_t *));
+#endif
+
 /*
  * Deal with some i386-specific things in the Linux emulation code.
  * This means just signals for now, will include stuff like
@@ -285,10 +294,10 @@ linux_read_ldt(p, uap, retval)
 
        parms = stackgap_alloc(&sg, sizeof(gl));
 
-       if (error = copyout(&gl, parms, sizeof(gl)))
+       if ((error = copyout(&gl, parms, sizeof(gl))) != 0)
                return (error);
 
-       if (error = i386_get_ldt(p, parms, retval))
+       if ((error = i386_get_ldt(p, parms, retval)) != 0)
                return (error);
 
        *retval *= sizeof(union descriptor);
@@ -325,7 +334,7 @@ linux_write_ldt(p, uap, retval)
 
        if (SCARG(uap, bytecount) != sizeof(ldt_info))
                return (EINVAL);
-       if (error = copyin(SCARG(uap, ptr), &ldt_info, sizeof(ldt_info)))
+       if ((error = copyin(SCARG(uap, ptr), &ldt_info, sizeof(ldt_info))) != 0)
                return error;
        if (ldt_info.contents == 3)
                return (EINVAL);
@@ -354,12 +363,12 @@ linux_write_ldt(p, uap, retval)
 
        parms = stackgap_alloc(&sg, sizeof(sl));
 
-       if (error = copyout(&sd, sl.desc, sizeof(sd)))
+       if ((error = copyout(&sd, sl.desc, sizeof(sd))) != 0)
                return (error);
-       if (error = copyout(&sl, parms, sizeof(sl)))
+       if ((error = copyout(&sl, parms, sizeof(sl))) != 0)
                return (error);
 
-       if (error = i386_set_ldt(p, parms, retval))
+       if ((error = i386_set_ldt(p, parms, retval)) != 0)
                return (error);
 
        *retval = 0;
@@ -424,15 +433,12 @@ linux_machdepioctl(p, v, retval)
                syscallarg(u_long) com;
                syscallarg(caddr_t) data;
        } */ *uap = v;
-       struct sys_ioctl_args bia, tmparg;
+       struct sys_ioctl_args bia;
        u_long com;
 #if NVT > 0
-       int error, mode;
+       int error;
        struct vt_mode lvt;
        caddr_t bvtp, sg;
-       u_int fd;
-       struct file *fp;
-       struct filedesc *fdp;
 #endif
 
        SCARG(&bia, fd) = SCARG(uap, fd);
@@ -507,7 +513,7 @@ linux_machdepioctl(p, v, retval)
                break;
 #endif
        default:
-               printf("linux_machdepioctl: invalid ioctl %08x\n", com);
+               printf("linux_machdepioctl: invalid ioctl %08lx\n", com);
                return EINVAL;
        }
        SCARG(&bia, com) = com;
@@ -525,9 +531,11 @@ linux_sys_iopl(p, v, retval)
        void *v;
        register_t *retval;
 {
+#if 0
        struct linux_sys_iopl_args /* {
                syscallarg(int) level;
        } */ *uap = v;
+#endif
        struct trapframe *fp = p->p_md.md_regs;
 
        if (suser(p->p_ucred, &p->p_acflag) != 0)
index 98da327..bc0a63f 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: locore.s,v 1.144 1996/04/03 05:48:35 mycroft Exp $     */
+/*     $NetBSD: locore.s,v 1.145 1996/05/03 19:41:19 christos Exp $    */
 
 /*-
  * Copyright (c) 1993, 1994, 1995 Charles M. Hannum.  All rights reserved.
@@ -1913,9 +1913,8 @@ ENTRY(switch_exit)
        jmp     switch_search
 
 /*
- * savectx(struct pcb *pcb, int altreturn);
- * Update pcb, saving current processor state and arranging for alternate
- * return in cpu_switch() if altreturn is true.
+ * savectx(struct pcb *pcb);
+ * Update pcb, saving current processor state.
  */
 ENTRY(savectx)
        movl    4(%esp),%edx            # edx = p->p_addr
index bf9bc18..4cadab7 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: machdep.c,v 1.15 1996/05/02 13:41:18 deraadt Exp $    */
-/*     $NetBSD: machdep.c,v 1.199 1996/04/18 09:58:13 mycroft Exp $    */
+/*     $OpenBSD: machdep.c,v 1.16 1996/05/07 07:21:46 deraadt Exp $    */
+/*     $NetBSD: machdep.c,v 1.200 1996/05/03 19:42:15 christos Exp $   */
 
 /*-
  * Copyright (c) 1993, 1994, 1995, 1996 Charles M. Hannum.  All rights reserved.
@@ -78,6 +78,8 @@
 #include <vm/vm_kern.h>
 #include <vm/vm_page.h>
 
+#include <sys/sysctl.h>
+
 #include <machine/cpu.h>
 #include <machine/cpufunc.h>
 #include <machine/gdt.h>
 #include <machine/apmvar.h>
 #endif
 
+#ifdef DDB
+#include <machine/db_machdep.h>
+#include <ddb/db_access.h>
+#include <ddb/db_sym.h>
+#include <ddb/db_extern.h>
+#endif
+
 #ifdef VM86
 #include <machine/vm86.h>
 #endif
@@ -142,11 +151,14 @@ extern    vm_offset_t avail_start, avail_end;
 static vm_offset_t hole_start, hole_end;
 static vm_offset_t avail_next;
 
-void identifycpu __P((void));
-caddr_t allocsys __P((caddr_t));
-void dumpsys __P((void));
-void cpu_reset __P((void));
-void identifycpu __P((void));
+caddr_t        allocsys __P((caddr_t));
+void   dumpsys __P((void));
+void   identifycpu __P((void));
+void   init386 __P((vm_offset_t));
+void   consinit __P((void));
+#ifdef COMPAT_NOMID
+static int exec_nomid  __P((struct proc *, struct exec_package *));
+#endif
 
 /*
  * Machine-dependent startup code
@@ -252,7 +264,7 @@ cpu_startup()
        for (i = 1; i < ncallout; i++)
                callout[i-1].c_next = &callout[i];
 
-       printf("avail mem = %d\n", ptoa(cnt.v_free_count));
+       printf("avail mem = %ld\n", ptoa(cnt.v_free_count));
        printf("using %d buffers containing %d bytes of memory\n",
                nbuf, bufpages * CLBYTES);
 
@@ -371,7 +383,6 @@ struct cpu_nameclass i386_cpus[] = {
 void
 identifycpu()
 {
-       int len;
        extern char cpu_vendor[];
 
        printf("CPU: ");
@@ -500,6 +511,8 @@ cpu_sysctl(name, namelen, oldp, oldlenp, newp, newlen, p)
 }
 
 #ifdef COMPAT_IBCS2
+void ibcs2_sendsig __P((sig_t, int, int, u_long));
+
 void
 ibcs2_sendsig(catcher, sig, mask, code)
        sig_t catcher;
@@ -831,8 +844,7 @@ dumpsys()
        int maddr, psize;
        daddr_t blkno;
        int (*dump) __P((dev_t, daddr_t, caddr_t, size_t));
-       int error = 0;
-       int c;
+       int error;
 
        /* Save registers. */
        savectx(&dumppcb);
@@ -849,7 +861,7 @@ dumpsys()
                dumpconf();
        if (dumplo < 0)
                return;
-       printf("\ndumping to dev %x, offset %d\n", dumpdev, dumplo);
+       printf("\ndumping to dev %x, offset %ld\n", dumpdev, dumplo);
 
        psize = (*bdevsw[major(dumpdev)].d_psize)(dumpdev);
        printf("dump ");
@@ -867,6 +879,7 @@ dumpsys()
        maddr = 0;
        blkno = dumplo;
        dump = bdevsw[major(dumpdev)].d_dump;
+       error = 0;
        for (i = 0; i < bytes; i += n) {
                /*
                 * Avoid dumping the ISA memory hole, and areas that
@@ -1076,9 +1089,7 @@ init386(first_avail)
        int x;
        unsigned biosbasemem, biosextmem;
        struct region_descriptor region;
-       extern char etext[], sigcode[], esigcode[];
        extern void consinit __P((void));
-       extern void lgdt();
 
        proc0.p_addr = proc0paddr;
 
@@ -1333,7 +1344,6 @@ cpu_exec_aout_prep_oldzmagic(p, epp)
        struct exec_package *epp;
 {
        struct exec *execp = epp->ep_hdr;
-       struct exec_vmcmd *ccmdp;
 
        epp->ep_taddr = 0;
        epp->ep_tsize = execp->a_text;
index c20a774..c820ad0 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: mainbus.c,v 1.3 1996/04/29 14:13:25 hvozda Exp $      */
+/*     $OpenBSD: mainbus.c,v 1.4 1996/05/07 07:21:47 deraadt Exp $     */
 /*     $NetBSD: mainbus.c,v 1.8 1996/04/11 22:13:37 cgd Exp $  */
 
 /*
@@ -105,7 +105,11 @@ mainbus_attach(parent, self, aux)
                config_found(self, &mba.mba_iba, mainbus_print);
        }
 
+#ifndef AHA284X_HACK
        if (!bcmp(ISA_HOLE_VADDR(EISA_ID_PADDR), EISA_ID, EISA_ID_LEN)) {
+#else
+       {
+#endif
                mba.mba_eba.eba_busname = "eisa";
                mba.mba_eba.eba_bc = NULL;
                mba.mba_eba.eba_ec = NULL;
index 28afdbd..b8df8fe 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: math_emulate.c,v 1.3 1996/03/19 21:09:19 mickey Exp $ */
-/*     $NetBSD: math_emulate.c,v 1.16 1996/02/02 18:06:01 mycroft Exp $        */
+/*     $OpenBSD: math_emulate.c,v 1.4 1996/05/07 07:21:48 deraadt Exp $        */
+/*     $NetBSD: math_emulate.c,v 1.17 1996/05/03 19:42:17 christos Exp $       */
 
 /*
  * expediant "port" of linux 8087 emulator to 386BSD, with apologies -wfj
@@ -69,7 +69,9 @@ static temp_real_unaligned * __st(int i);
        I387.twd = 0x0000;              \
 } while (0)
 
-math_emulate(struct trapframe *info)
+int
+math_emulate(info)
+       struct trapframe *info;
 {
        u_short code;
        temp_real tmp;
@@ -653,7 +655,7 @@ void get_short_int(temp_real * tmp,
        addr = ea(info,code);
        ti.a = (signed short) fusword((u_short *) addr);
        ti.b = 0;
-       if (ti.sign = (ti.a < 0))
+       if ((ti.sign = (ti.a < 0)) != 0)
                ti.a = - ti.a;
        int_to_real(&ti,tmp);
 }
@@ -667,7 +669,7 @@ void get_long_int(temp_real * tmp,
        addr = ea(info,code);
        ti.a = fuword((u_long *) addr);
        ti.b = 0;
-       if (ti.sign = (ti.a < 0))
+       if ((ti.sign = (ti.a < 0)) != 0)
                ti.a = - ti.a;
        int_to_real(&ti,tmp);
 }
@@ -681,7 +683,7 @@ void get_longlong_int(temp_real * tmp,
        addr = ea(info,code);
        ti.a = fuword((u_long *) addr);
        ti.b = fuword((u_long *) addr + 1);
-       if (ti.sign = (ti.b < 0))
+       if ((ti.sign = (ti.b < 0)) != 0)
                __asm__("notl %0 ; notl %1\n\t"
                        "addl $1,%0 ; adcl $0,%1"
                        :"=r" (ti.a),"=r" (ti.b)
index 6580505..175b016 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: mem.c,v 1.30 1995/10/11 04:19:46 mycroft Exp $ */
+/*     $NetBSD: mem.c,v 1.31 1996/05/03 19:42:19 christos Exp $        */
 
 /*
  * Copyright (c) 1988 University of Utah.
@@ -45,7 +45,6 @@
  */
 
 #include <sys/param.h>
-#include <sys/conf.h>
 #include <sys/buf.h>
 #include <sys/systm.h>
 #include <sys/uio.h>
@@ -54,6 +53,7 @@
 #include <sys/fcntl.h>
 
 #include <machine/cpu.h>
+#include <machine/conf.h>
 
 #include <vm/vm.h>
 
@@ -62,9 +62,10 @@ caddr_t zeropage;
 
 /*ARGSUSED*/
 int
-mmopen(dev, flag, mode)
+mmopen(dev, flag, mode, p)
        dev_t dev;
        int flag, mode;
+       struct proc *p;
 {
 
        switch (minor(dev)) {
@@ -87,9 +88,10 @@ mmopen(dev, flag, mode)
 
 /*ARGSUSED*/
 int
-mmclose(dev, flag, mode)
+mmclose(dev, flag, mode, p)
        dev_t dev;
        int flag, mode;
+       struct proc *p;
 {
 
        return (0);
@@ -185,7 +187,6 @@ mmrw(dev, uio, flags)
                uio->uio_resid -= c;
        }
        if (minor(dev) == 0) {
-unlock:
                if (physlock > 1)
                        wakeup((caddr_t)&physlock);
                physlock = 0;
index 1a555f8..50accfe 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: ns_cksum.c,v 1.3 1996/03/19 21:09:21 mickey Exp $     */
-/*     $NetBSD: ns_cksum.c,v 1.4 1996/02/02 18:06:03 mycroft Exp $     */
+/*     $OpenBSD: ns_cksum.c,v 1.4 1996/05/07 07:21:50 deraadt Exp $    */
+/*     $NetBSD: ns_cksum.c,v 1.5 1996/05/03 19:42:20 christos Exp $    */
 
 /*
  * Copyright (c) 1982, 1988 Regents of the University of California.
@@ -38,6 +38,7 @@
 
 #include <sys/param.h>
 #include <sys/mbuf.h>
+#include <netns/ns_var.h>
 
 /*
  * Checksum routine for Network Systems Protocol Packets (Big-Endian).
index fbc1e16..e525220 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: pmap.c,v 1.8 1996/04/21 22:16:33 deraadt Exp $        */
-/*     $NetBSD: pmap.c,v 1.35 1996/04/03 08:21:05 mycroft Exp $        */
+/*     $OpenBSD: pmap.c,v 1.9 1996/05/07 07:21:51 deraadt Exp $        */
+/*     $NetBSD: pmap.c,v 1.36 1996/05/03 19:42:22 christos Exp $       */
 
 /*
  * Copyright (c) 1993, 1994, 1995 Charles M. Hannum.  All rights reserved.
@@ -80,6 +80,7 @@
  */
 
 #include <sys/param.h>
+#include <sys/systm.h>
 #include <sys/proc.h>
 #include <sys/malloc.h>
 #include <sys/user.h>
@@ -183,7 +184,14 @@ int                pv_nfree;
 
 void   i386_protection_init __P((void));
 pt_entry_t *pmap_pte __P((pmap_t, vm_offset_t));
+struct pv_entry * pmap_alloc_pv __P((void));
+void pmap_free_pv __P((struct pv_entry *));
 void i386_protection_init __P((void));
+void pmap_collect_pv __P((void));
+__inline void pmap_remove_pv __P((pmap_t, vm_offset_t, u_int));
+__inline void pmap_enter_pv __P((pmap_t, vm_offset_t, u_int));
+void pmap_deactivate __P((pmap_t, struct pcb *));
+void pmap_remove_all __P((vm_offset_t));
 
 #if BSDVM_COMPAT
 #include <sys/msgbuf.h>
@@ -216,9 +224,6 @@ pmap_bootstrap(virtual_start)
        vm_offset_t va;
        pt_entry_t *pte;
 #endif
-       extern int physmem;
-       extern vm_offset_t reserve_dumppages(vm_offset_t);
-
        /* XXX: allow for msgbuf */
        avail_end -= i386_round_page(sizeof(struct msgbuf));
 
@@ -311,9 +316,8 @@ pmap_virtual_space(startp, endp)
 void
 pmap_init()
 {
-       vm_offset_t addr, addr2;
+       vm_offset_t addr;
        vm_size_t s;
-       int rv;
 
        if (PAGE_SIZE != NBPG)
                panic("pmap_init: CLSIZE != 1");
@@ -378,7 +382,6 @@ pmap_free_pv(pv)
        struct pv_entry *pv;
 {
        register struct pv_page *pvp;
-       register int i;
 
        pvp = (struct pv_page *) trunc_page(pv);
        switch (++pvp->pvp_pgi.pgi_nfree) {
@@ -838,7 +841,9 @@ reduce wiring count on page table pages as references drop
 
                *pte = 0;
 
+#ifndef __GNUC__
        next:
+#endif
                sva += NBPG;
                pte++;
        }
@@ -1016,7 +1021,9 @@ pmap_protect(pmap, sva, eva, prot)
                        i386prot |= PG_u | PG_RW;
                pmap_pte_set_prot(pte, i386prot);
 
+#ifndef __GNUC__
        next:
+#endif
                sva += NBPG;
                pte++;
        }
@@ -1089,7 +1096,8 @@ pmap_enter(pmap, va, pa, prot, wired)
                /*
                 * Check for wiring change and adjust statistics.
                 */
-               if (wired && !pmap_pte_w(pte) || !wired && pmap_pte_w(pte)) {
+               if ((wired && !pmap_pte_w(pte)) ||
+                   (!wired && pmap_pte_w(pte))) {
                        /*
                         * We don't worry about wiring PT pages as they remain
                         * resident as long as there are valid mappings in them.
@@ -1255,7 +1263,7 @@ pmap_change_wiring(pmap, va, wired)
        }
 #endif
 
-       if (wired && !pmap_pte_w(pte) || !wired && pmap_pte_w(pte)) {
+       if ((wired && !pmap_pte_w(pte)) || (!wired && pmap_pte_w(pte))) {
                if (wired)
                        pmap->pm_stats.wired_count++;
                else
@@ -1371,12 +1379,6 @@ void
 pmap_collect(pmap)
        pmap_t pmap;
 {
-       register vm_offset_t pa;
-       register struct pv_entry *pv;
-       register pt_entry_t *pte;
-       vm_offset_t kpa;
-       int s;
-
 #ifdef DEBUG
        if (pmapdebug & PDB_FOLLOW)
                printf("pmap_collect(%x) ", pmap);
index f9e2ecc..81acff1 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: pmap.old.c,v 1.8 1996/04/21 22:16:33 deraadt Exp $    */
-/*     $NetBSD: pmap.c,v 1.35 1996/04/03 08:21:05 mycroft Exp $        */
+/*     $OpenBSD: pmap.old.c,v 1.9 1996/05/07 07:21:51 deraadt Exp $    */
+/*     $NetBSD: pmap.c,v 1.36 1996/05/03 19:42:22 christos Exp $       */
 
 /*
  * Copyright (c) 1993, 1994, 1995 Charles M. Hannum.  All rights reserved.
@@ -80,6 +80,7 @@
  */
 
 #include <sys/param.h>
+#include <sys/systm.h>
 #include <sys/proc.h>
 #include <sys/malloc.h>
 #include <sys/user.h>
@@ -183,7 +184,14 @@ int                pv_nfree;
 
 void   i386_protection_init __P((void));
 pt_entry_t *pmap_pte __P((pmap_t, vm_offset_t));
+struct pv_entry * pmap_alloc_pv __P((void));
+void pmap_free_pv __P((struct pv_entry *));
 void i386_protection_init __P((void));
+void pmap_collect_pv __P((void));
+__inline void pmap_remove_pv __P((pmap_t, vm_offset_t, u_int));
+__inline void pmap_enter_pv __P((pmap_t, vm_offset_t, u_int));
+void pmap_deactivate __P((pmap_t, struct pcb *));
+void pmap_remove_all __P((vm_offset_t));
 
 #if BSDVM_COMPAT
 #include <sys/msgbuf.h>
@@ -216,9 +224,6 @@ pmap_bootstrap(virtual_start)
        vm_offset_t va;
        pt_entry_t *pte;
 #endif
-       extern int physmem;
-       extern vm_offset_t reserve_dumppages(vm_offset_t);
-
        /* XXX: allow for msgbuf */
        avail_end -= i386_round_page(sizeof(struct msgbuf));
 
@@ -311,9 +316,8 @@ pmap_virtual_space(startp, endp)
 void
 pmap_init()
 {
-       vm_offset_t addr, addr2;
+       vm_offset_t addr;
        vm_size_t s;
-       int rv;
 
        if (PAGE_SIZE != NBPG)
                panic("pmap_init: CLSIZE != 1");
@@ -378,7 +382,6 @@ pmap_free_pv(pv)
        struct pv_entry *pv;
 {
        register struct pv_page *pvp;
-       register int i;
 
        pvp = (struct pv_page *) trunc_page(pv);
        switch (++pvp->pvp_pgi.pgi_nfree) {
@@ -838,7 +841,9 @@ reduce wiring count on page table pages as references drop
 
                *pte = 0;
 
+#ifndef __GNUC__
        next:
+#endif
                sva += NBPG;
                pte++;
        }
@@ -1016,7 +1021,9 @@ pmap_protect(pmap, sva, eva, prot)
                        i386prot |= PG_u | PG_RW;
                pmap_pte_set_prot(pte, i386prot);
 
+#ifndef __GNUC__
        next:
+#endif
                sva += NBPG;
                pte++;
        }
@@ -1089,7 +1096,8 @@ pmap_enter(pmap, va, pa, prot, wired)
                /*
                 * Check for wiring change and adjust statistics.
                 */
-               if (wired && !pmap_pte_w(pte) || !wired && pmap_pte_w(pte)) {
+               if ((wired && !pmap_pte_w(pte)) ||
+                   (!wired && pmap_pte_w(pte))) {
                        /*
                         * We don't worry about wiring PT pages as they remain
                         * resident as long as there are valid mappings in them.
@@ -1255,7 +1263,7 @@ pmap_change_wiring(pmap, va, wired)
        }
 #endif
 
-       if (wired && !pmap_pte_w(pte) || !wired && pmap_pte_w(pte)) {
+       if ((wired && !pmap_pte_w(pte)) || (!wired && pmap_pte_w(pte))) {
                if (wired)
                        pmap->pm_stats.wired_count++;
                else
@@ -1371,12 +1379,6 @@ void
 pmap_collect(pmap)
        pmap_t pmap;
 {
-       register vm_offset_t pa;
-       register struct pv_entry *pv;
-       register pt_entry_t *pte;
-       vm_offset_t kpa;
-       int s;
-
 #ifdef DEBUG
        if (pmapdebug & PDB_FOLLOW)
                printf("pmap_collect(%x) ", pmap);
index 77f72d5..8d2c12d 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: process_machdep.c,v 1.4 1996/04/21 22:16:34 deraadt Exp $     */
-/*     $NetBSD: process_machdep.c,v 1.21 1996/04/11 07:47:48 mycroft Exp $     */
+/*     $OpenBSD: process_machdep.c,v 1.5 1996/05/07 07:21:53 deraadt Exp $     */
+/*     $NetBSD: process_machdep.c,v 1.22 1996/05/03 19:42:25 christos Exp $    */
 
 /*
  * Copyright (c) 1995, 1996 Charles M. Hannum.  All rights reserved.
 #include <machine/vm86.h>
 #endif
 
-static inline struct trapframe *
+static __inline struct trapframe *process_frame __P((struct proc *));
+static __inline struct save87 *process_fpframe __P((struct proc *));
+
+static __inline struct trapframe *
 process_frame(p)
        struct proc *p;
 {
@@ -89,7 +92,7 @@ process_frame(p)
        return (p->p_md.md_regs);
 }
 
-static inline struct save87 *
+static __inline struct save87 *
 process_fpframe(p)
        struct proc *p;
 {
index 86611d5..d365cfc 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: svr4_machdep.c,v 1.5 1996/05/02 13:41:20 deraadt Exp $        */
-/*     $NetBSD: svr4_machdep.c,v 1.23 1996/04/18 08:36:31 mycroft Exp $         */
+/*     $OpenBSD: svr4_machdep.c,v 1.6 1996/05/07 07:21:54 deraadt Exp $        */
+/*     $NetBSD: svr4_machdep.c,v 1.24 1996/05/03 19:42:26 christos Exp $        */
 
 /*
  * Copyright (c) 1994 Christos Zoulas
@@ -138,7 +138,6 @@ svr4_setcontext(p, uc)
        struct proc *p;
        struct svr4_ucontext *uc;
 {
-       struct sigcontext *scp, context;
        struct sigacts *psp = p->p_sigacts;
        register struct trapframe *tf;
        svr4_greg_t *r = uc->uc_mcontext.greg;
@@ -298,7 +297,7 @@ svr4_getsiginfo(si, sig, code, addr)
                si->si_code = 0;
                si->si_trap = 0;
 #ifdef DIAGNOSTIC
-               printf("sig %d code %d\n", sig, code);
+               printf("sig %d code %ld\n", sig, code);
                panic("svr4_getsiginfo");
 #endif
                break;
@@ -360,8 +359,10 @@ svr4_sendsig(catcher, sig, mask, code)
        frame.sf_sip = &fp->sf_si;
        frame.sf_ucp = &fp->sf_uc;
        frame.sf_handler = catcher;
-       printf("sig = %d, sip %x, ucp = %x, handler = %x\n", 
+#ifdef DEBUG_SVR4
+       printf("sig = %d, sip %p, ucp = %p, handler = %p\n", 
               frame.sf_signum, frame.sf_sip, frame.sf_ucp, frame.sf_handler);
+#endif
 
        if (copyout(&frame, fp, sizeof(frame)) != 0) {
                /*
@@ -471,7 +472,7 @@ svr4_sys_sysarch(p, v, retval)
 #endif
 
        default:
-               printf("svr4_sysarch(%d), a1 %x\n", SCARG(uap, op),
+               printf("svr4_sysarch(%d), a1 %p\n", SCARG(uap, op),
                       SCARG(uap, a1));
                return 0;
        }
index cdacbff..43ea663 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: swapgeneric.c,v 1.4 1996/04/21 22:16:39 deraadt Exp $ */
-/*     $NetBSD: swapgeneric.c,v 1.11 1996/04/03 09:15:26 mycroft Exp $ */
+/*     $OpenBSD: swapgeneric.c,v 1.5 1996/05/07 07:21:55 deraadt Exp $ */
+/*     $NetBSD: swapgeneric.c,v 1.12 1996/05/03 19:42:28 christos Exp $        */
 
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
 #include <sys/device.h>
 #include <sys/disklabel.h>
 
+#include <dev/cons.h>
+
 #include <machine/pte.h>
+#include <machine/cpu.h>
 
 #include "wdc.h"
 #include "fdc.h"
@@ -108,8 +111,8 @@ struct      genericconf {
        { 0 }
 };
 
-extern int ffs_mountroot();
-int (*mountroot)() = ffs_mountroot;
+extern int ffs_mountroot __P((void *));
+int (*mountroot) __P((void *)) = ffs_mountroot;
 
 void   gets __P((char *));
 
index 412f5f1..bf99818 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: sys_machdep.c,v 1.27 1996/01/08 13:51:36 mycroft Exp $ */
+/*     $NetBSD: sys_machdep.c,v 1.28 1996/05/03 19:42:29 christos Exp $        */
 
 /*-
  * Copyright (c) 1995 Charles M. Hannum.  All rights reserved.
 
 extern vm_map_t kernel_map;
 
+#ifdef USER_LDT
+int i386_get_ldt __P((struct proc *, char *, register_t *));
+int i386_set_ldt __P((struct proc *, char *, register_t *));
+#endif
+int i386_iopl __P((struct proc *, char *, register_t *));
+int i386_get_ioperm __P((struct proc *, char *, register_t *));
+int i386_set_ioperm __P((struct proc *, char *, register_t *));
+
 #ifdef TRACE
 int    nvualarm;
 
+int
 sys_vtrace(p, v, retval)
        struct proc *p;
        void *v;
@@ -160,7 +169,7 @@ i386_get_ldt(p, args, retval)
        union descriptor *lp;
        struct i386_get_ldt_args ua;
 
-       if (error = copyin(args, &ua, sizeof(ua)))
+       if ((error = copyin(args, &ua, sizeof(ua))) != 0)
                return (error);
 
 #ifdef DEBUG
@@ -185,7 +194,8 @@ i386_get_ldt(p, args, retval)
        lp += ua.start;
        num = min(ua.num, nldt - ua.start);
 
-       if (error = copyout(lp, ua.desc, num * sizeof(union descriptor)))
+       error = copyout(lp, ua.desc, num * sizeof(union descriptor));
+       if (error)
                return (error);
 
        *retval = num;
@@ -205,7 +215,7 @@ i386_set_ldt(p, args, retval)
        struct i386_set_ldt_args ua;
        union descriptor desc;
 
-       if (error = copyin(args, &ua, sizeof(ua)))
+       if ((error = copyin(args, &ua, sizeof(ua))) != 0)
                return (error);
 
 #ifdef DEBUG
@@ -258,10 +268,11 @@ i386_set_ldt(p, args, retval)
                savectx(curpcb);
        fsslot = IDXSEL(pcb->pcb_fs);
        gsslot = IDXSEL(pcb->pcb_gs);
+       error = 0;
 
        /* Check descriptors for access violations. */
        for (i = 0, n = ua.start; i < ua.num; i++, n++) {
-               if (error = copyin(&ua.desc[i], &desc, sizeof(desc)))
+               if ((error = copyin(&ua.desc[i], &desc, sizeof(desc))) != 0)
                        return (error);
 
                switch (desc.sd.sd_type) {
@@ -315,7 +326,7 @@ i386_set_ldt(p, args, retval)
 
        /* Now actually replace the descriptors. */
        for (i = 0, n = ua.start; i < ua.num; i++, n++) {
-               if (error = copyin(&ua.desc[i], &desc, sizeof(desc)))
+               if ((error = copyin(&ua.desc[i], &desc, sizeof(desc))) != 0)
                        goto out;
 
                pcb->pcb_ldt[n] = desc;
@@ -339,10 +350,10 @@ i386_iopl(p, args, retval)
        struct trapframe *tf = p->p_md.md_regs;
        struct i386_iopl_args ua;
 
-       if (error = suser(p->p_ucred, &p->p_acflag))
+       if ((error = suser(p->p_ucred, &p->p_acflag)) != 0)
                return error;
 
-       if (error = copyin(args, &ua, sizeof(ua)))
+       if ((error = copyin(args, &ua, sizeof(ua))) != 0)
                return error;
 
        if (ua.iopl)
@@ -363,7 +374,7 @@ i386_get_ioperm(p, args, retval)
        struct pcb *pcb = &p->p_addr->u_pcb;
        struct i386_get_ioperm_args ua;
 
-       if (error = copyin(args, &ua, sizeof(ua)))
+       if ((error = copyin(args, &ua, sizeof(ua))) != 0)
                return (error);
 
        return copyout(pcb->pcb_iomap, ua.iomap, sizeof(pcb->pcb_iomap));
@@ -379,10 +390,10 @@ i386_set_ioperm(p, args, retval)
        struct pcb *pcb = &p->p_addr->u_pcb;
        struct i386_set_ioperm_args ua;
 
-       if (error = suser(p->p_ucred, &p->p_acflag))
+       if ((error = suser(p->p_ucred, &p->p_acflag)) != 0)
                return error;
 
-       if (error = copyin(args, &ua, sizeof(ua)))
+       if ((error = copyin(args, &ua, sizeof(ua))) != 0)
                return (error);
 
        return copyin(ua.iomap, pcb->pcb_iomap, sizeof(pcb->pcb_iomap));
index d603219..6a71ed5 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: trap.c,v 1.8 1996/05/04 09:24:07 deraadt Exp $        */
-/*     $NetBSD: trap.c,v 1.93 1996/04/15 00:20:32 mycroft Exp $        */
+/*     $OpenBSD: trap.c,v 1.9 1996/05/07 07:21:57 deraadt Exp $        */
+/*     $NetBSD: trap.c,v 1.94 1996/05/03 19:42:31 christos Exp $       */
 
 #undef DEBUG
 #define DEBUG
@@ -67,6 +67,9 @@
 #include <machine/psl.h>
 #include <machine/reg.h>
 #include <machine/trap.h>
+#ifdef DDB
+#include <machine/db_machdep.h>
+#endif
 
 #ifdef COMPAT_IBCS2
 #include <compat/ibcs2/ibcs2_errno.h>
@@ -84,11 +87,16 @@ extern struct emul emul_freebsd;
 
 #include "npx.h"
 
+static __inline void userret __P((struct proc *, int, u_quad_t));
+void trap __P((struct trapframe));
+int trapwrite __P((unsigned));
+void syscall __P((struct trapframe));
+
 /*
  * Define the code needed before returning to user mode, for
  * trap and syscall.
  */
-static inline void
+static __inline void
 userret(p, pc, oticks)
        register struct proc *p;
        int pc;
@@ -173,7 +181,7 @@ trap(frame)
        register struct proc *p = curproc;
        int type = frame.tf_trapno;
        u_quad_t sticks;
-       struct pcb *pcb;
+       struct pcb *pcb = NULL;
        extern char fusubail[],
                    resume_iret[], resume_pop_ds[], resume_pop_es[];
        struct trapframe *vframe;
@@ -186,7 +194,7 @@ trap(frame)
                printf("trap %d code %x eip %x cs %x eflags %x cr2 %x cpl %x\n",
                    frame.tf_trapno, frame.tf_err, frame.tf_eip, frame.tf_cs,
                    frame.tf_eflags, rcr2(), cpl);
-               printf("curproc %x\n", curproc);
+               printf("curproc %p\n", curproc);
        }
 #endif
 
@@ -363,7 +371,7 @@ trap(frame)
 
 #ifdef DIAGNOSTIC
                if (map == kernel_map && va == 0) {
-                       printf("trap: bad kernel access at %x\n", va);
+                       printf("trap: bad kernel access at %lx\n", va);
                        goto we_re_toast;
                }
 #endif
@@ -409,7 +417,7 @@ trap(frame)
                if (type == T_PAGEFLT) {
                        if (pcb->pcb_onfault != 0)
                                goto copyfault;
-                       printf("vm_fault(%x, %x, %x, 0) -> %x\n",
+                       printf("vm_fault(%p, %lx, %x, 0) -> %x\n",
                            map, va, ftype, rv);
                        goto we_re_toast;
                }
@@ -426,7 +434,9 @@ trap(frame)
 
        case T_BPTFLT|T_USER:           /* bpt instruction fault */
        case T_TRCTRAP|T_USER:          /* trace trap */
+#ifdef MATH_EMULATE
        trace:
+#endif
                trapsignal(p, SIGTRAP, type &~ T_USER);
                break;
 
index 9dda35a..18cf71c 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: vm86.c,v 1.5 1996/05/02 13:42:56 deraadt Exp $        */
-/*     $NetBSD: vm86.c,v 1.13 1996/04/25 13:50:21 mycroft Exp $        */
+/*     $OpenBSD: vm86.c,v 1.6 1996/05/07 07:21:58 deraadt Exp $        */
+/*     $NetBSD: vm86.c,v 1.15 1996/05/03 19:42:33 christos Exp $       */
 
 /*-
  * Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -73,6 +73,7 @@
 #include <machine/vm86.h>
 
 static void fast_intxx __P((struct proc *, int));
+static __inline int is_bitset __P((int, caddr_t));
 
 #define        SETDIRECT       ((~(PSL_USERSTATIC|PSL_NT)) & 0xffff)
 #define        GETDIRECT       (SETDIRECT|0x02a) /* add in two MBZ bits */
@@ -143,7 +144,7 @@ __asm__ __volatile__( \
 __res; })
 
 
-static __inline__ int
+static __inline int
 is_bitset(nr, bitmap)
        int nr;
        caddr_t bitmap;
@@ -178,7 +179,6 @@ fast_intxx(p, intrno)
        struct vm86_struct *u_vm86p;
        struct { u_short ip, cs; } ihand;
 
-       u_short cs;
        u_long ss, sp;
 
        /* 
@@ -189,12 +189,10 @@ fast_intxx(p, intrno)
        u_vm86p = (struct vm86_struct *)p->p_addr->u_pcb.vm86_userp;
 
        /* 
-        * If coming from BIOS segment, or going to BIOS segment, or user
-        * requested special handling, return to user space with indication
-        * of which INT was requested.
+        * If user requested special handling, return to user space with
+        * indication of which INT was requested.
         */
-       cs = CS(tf);
-       if (cs == BIOSSEG || is_bitset(intrno, &u_vm86p->int_byuser[0]))
+       if (is_bitset(intrno, &u_vm86p->int_byuser[0]))
                goto vector;
 
        /*
@@ -212,9 +210,6 @@ fast_intxx(p, intrno)
        if (copyin((caddr_t)(intrno * sizeof(ihand)), &ihand, sizeof(ihand)))
                goto bad;
 
-       if (ihand.cs == BIOSSEG)
-               goto vector;
-
        /*
         * Otherwise, push flags, cs, eip, and jump to handler to
         * simulate direct INT call.
@@ -230,9 +225,6 @@ fast_intxx(p, intrno)
        IP(tf) = ihand.ip;
        CS(tf) = ihand.cs;
 
-       /* disable further "hardware" interrupts, turn off any tracing. */
-       tf->tf_eflags &= ~PSL_T;
-       clr_vif(p);
        return;
 
 vector:
index 36ccc37..1e53a0a 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: vm_machdep.c,v 1.10 1996/05/02 13:40:28 deraadt Exp $ */
-/*     $NetBSD: vm_machdep.c,v 1.60 1996/04/25 01:15:41 christos Exp $ */
+/*     $OpenBSD: vm_machdep.c,v 1.11 1996/05/07 07:21:59 deraadt Exp $ */
+/*     $NetBSD: vm_machdep.c,v 1.61 1996/05/03 19:42:35 christos Exp $ */
 
 /*-
  * Copyright (c) 1995 Charles M. Hannum.  All rights reserved.
@@ -55,6 +55,7 @@
 #include <sys/user.h>
 #include <sys/core.h>
 #include <sys/exec.h>
+#include <sys/ptrace.h>
 
 #include <vm/vm.h>
 #include <vm/vm_kern.h>
@@ -69,6 +70,8 @@
 extern struct proc *npxproc;
 #endif
 
+void   setredzone __P((u_short *, caddr_t));
+
 /*
  * Finish a fork operation, with process p2 nearly set up.
  * Copy and update the kernel stack and pcb, making the child
@@ -85,7 +88,6 @@ cpu_fork(p1, p2)
        register struct pcb *pcb = &p2->p_addr->u_pcb;
        register struct trapframe *tf;
        register struct switchframe *sf;
-       extern void proc_trampoline(), child_return();
 
 #if NNPX > 0
        /*
index 9be5243..b400905 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: bus.h,v 1.3 1996/04/27 22:18:16 niklas Exp $  */
-/*     $NetBSD: bus.h,v 1.2 1996/04/05 23:59:37 thorpej Exp $  */
+/*     $OpenBSD: bus.h,v 1.4 1996/05/07 07:22:03 deraadt Exp $ */
+/*     $NetBSD: bus.h,v 1.3 1996/05/03 19:22:18 christos Exp $ */
 
 /*
  * Copyright (c) 1996 Christopher G. Demetriou.  All rights reserved.
@@ -56,40 +56,40 @@ typedef u_long bus_io_handle_t;
 typedef caddr_t bus_mem_handle_t;
 
 #define bus_io_map(t, port, size, iohp)                                        \
-    (*iohp = port, 0)
+    ((void) t, *iohp = port, 0)
 #define bus_io_unmap(t, ioh, size)
 
-#define        bus_io_read_1(t, h, o)          inb((h) + (o))
-#define        bus_io_read_2(t, h, o)          inw((h) + (o))
-#define        bus_io_read_4(t, h, o)          inl((h) + (o))
+#define        bus_io_read_1(t, h, o)          ((void) t, inb((h) + (o)))
+#define        bus_io_read_2(t, h, o)          ((void) t, inw((h) + (o)))
+#define        bus_io_read_4(t, h, o)          ((void) t, inl((h) + (o)))
 #if 0 /* Cause a link error for bus_io_read_8 */
 #define        bus_io_read_8(t, h, o)          !!! bus_io_read_8 unimplemented !!!
 #endif
 
 #define        bus_io_read_multi_1(t, h, o, a, c)      \
-                                       insb((h) + (o), (a), (c))
+                                       ((void) t, insb((h) + (o), (a), (c)))
 #define        bus_io_read_multi_2(t, h, o, a, c)      \
-                                       insw((h) + (o), (a), (c))
+                                       ((void) t, insw((h) + (o), (a), (c)))
 #define        bus_io_read_multi_4(t, h, o, a, c)      \
-                                       insl((h) + (o), (a), (c))
+                                       ((void) t, insl((h) + (o), (a), (c)))
 #if 0 /* Cause a link error for bus_io_read_multi_8 */
 #define        bus_io_read_multi_8(t, h, o, a, c)      \
                                !!! bus_io_read_multi_8 unimplemented !!!
 #endif
 
-#define        bus_io_write_1(t, h, o, v)      outb((h) + (o), (v))
-#define        bus_io_write_2(t, h, o, v)      outw((h) + (o), (v))
-#define        bus_io_write_4(t, h, o, v)      outl((h) + (o), (v))
+#define        bus_io_write_1(t, h, o, v)      ((void) t, outb((h) + (o), (v)))
+#define        bus_io_write_2(t, h, o, v)      ((void) t, outw((h) + (o), (v)))
+#define        bus_io_write_4(t, h, o, v)      ((void) t, outl((h) + (o), (v)))
 #if 0 /* Cause a link error for bus_io_write_8 */
 #define        bus_io_write_8(t, h, o, v)      !!! bus_io_write_8 unimplemented !!!
 #endif
 
 #define        bus_io_write_multi_1(t, h, o, a, c)     \
-                                       outsb((h) + (o), (a), (c))
+                                       ((void) t, outsb((h) + (o), (a), (c)))
 #define        bus_io_write_multi_2(t, h, o, a, c)     \
-                                       outsw((h) + (o), (a), (c))
+                                       ((void) t, outsw((h) + (o), (a), (c)))
 #define        bus_io_write_multi_4(t, h, o, a, c)     \
-                                       outsl((h) + (o), (a), (c))
+                                       ((void) t, outsl((h) + (o), (a), (c)))
 #if 0 /* Cause a link error for bus_io_write_multi_8 */
 #define        bus_io_write_multi_8(t, h, o, a, c)     \
                                !!! bus_io_write_multi_8 unimplimented !!!
@@ -100,19 +100,19 @@ int       bus_mem_map __P((bus_chipset_tag_t t, bus_mem_addr_t bpa,
 void   bus_mem_unmap __P((bus_chipset_tag_t t, bus_mem_handle_t memh,
            bus_mem_size_t size));
 
-#define        bus_mem_read_1(t, h, o)         (*(volatile u_int8_t *)((h) + (o)))
-#define        bus_mem_read_2(t, h, o)         (*(volatile u_int16_t *)((h) + (o)))
-#define        bus_mem_read_4(t, h, o)         (*(volatile u_int32_t *)((h) + (o)))
-#define        bus_mem_read_8(t, h, o)         (*(volatile u_int64_t *)((h) + (o)))
+#define        bus_mem_read_1(t, h, o) ((void) t, (*(volatile u_int8_t *)((h) + (o))))
+#define        bus_mem_read_2(t, h, o) ((void) t, (*(volatile u_int16_t *)((h) + (o))))
+#define        bus_mem_read_4(t, h, o) ((void) t, (*(volatile u_int32_t *)((h) + (o))))
+#define        bus_mem_read_8(t, h, o) ((void) t, (*(volatile u_int64_t *)((h) + (o))))
 
 #define        bus_mem_write_1(t, h, o, v)                                     \
-    ((void)(*(volatile u_int8_t *)((h) + (o)) = (v)))
+    ((void) t, ((void)(*(volatile u_int8_t *)((h) + (o)) = (v))))
 #define        bus_mem_write_2(t, h, o, v)                                     \
-    ((void)(*(volatile u_int16_t *)((h) + (o)) = (v)))
+    ((void) t, ((void)(*(volatile u_int16_t *)((h) + (o)) = (v))))
 #define        bus_mem_write_4(t, h, o, v)                                     \
-    ((void)(*(volatile u_int32_t *)((h) + (o)) = (v)))
+    ((void) t, ((void)(*(volatile u_int32_t *)((h) + (o)) = (v))))
 #define        bus_mem_write_8(t, h, o, v)                                     \
-    ((void)(*(volatile u_int64_t *)((h) + (o)) = (v)))
+    ((void) t, ((void)(*(volatile u_int64_t *)((h) + (o)) = (v))))
 
 /* These are extensions to the general NetBSD bus interface.  */
 #define bus_to_host_2(t, v) (v)
diff --git a/sys/arch/i386/include/conf.h b/sys/arch/i386/include/conf.h
new file mode 100644 (file)
index 0000000..2b9ef1b
--- /dev/null
@@ -0,0 +1,62 @@
+/*     $NetBSD: conf.h,v 1.1 1996/05/03 19:34:11 christos Exp $        */
+
+/*
+ * Copyright (c) 1996 Christos Zoulas.  All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. All advertising materials mentioning features or use of this software
+ *    must display the following acknowledgement:
+ *     This product includes software developed by Christos Zoulas.
+ * 4. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#include <sys/conf.h>
+
+#define        mmread  mmrw
+#define        mmwrite mmrw
+cdev_decl(mm);
+cdev_decl(pms);
+
+bdev_decl(fd);
+cdev_decl(fd);
+
+/* open, close, read, write, ioctl, tty, mmap */
+#define cdev_pc_init(c,n) { \
+       dev_init(c,n,open), dev_init(c,n,close), dev_init(c,n,read), \
+       dev_init(c,n,write), dev_init(c,n,ioctl), dev_init(c,n,stop), \
+       dev_init(c,n,tty), ttselect, dev_init(c,n,mmap), D_TTY }
+
+cdev_decl(pc);
+
+/* open, close, write, ioctl */
+#define        cdev_spkr_init(c,n) { \
+       dev_init(c,n,open), dev_init(c,n,close), (dev_type_read((*))) enodev, \
+       dev_init(c,n,write), dev_init(c,n,ioctl), (dev_type_stop((*))) enodev, \
+       0, seltrue, (dev_type_mmap((*))) enodev }
+
+cdev_decl(spkr);
+
+cdev_decl(mms);
+
+cdev_decl(lms);
+
+cdev_decl(pms);
index 373fc86..00810f8 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: cpu.h,v 1.33 1996/03/29 00:23:28 mycroft Exp $ */
+/*     $NetBSD: cpu.h,v 1.34 1996/05/03 19:22:49 christos Exp $        */
 
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
@@ -141,8 +141,63 @@ extern struct cpu_nameclass i386_cpus[];
 #ifdef I586_CPU
 extern int pentium_mhz;
 #endif
+
+/* autoconf.c */
+void   configure __P((void));
+
+/* machdep.c */
+void   delay __P((int));
+void   dumpconf __P((void));
+void   cpu_reset __P((void));
+
+/* locore.s */
+struct region_descriptor;
+void   lgdt __P((struct region_descriptor *));
+void   fillw __P((int, caddr_t, size_t));
+
+struct pcb;
+void   savectx __P((struct pcb *));
+void   switch_exit __P((struct proc *));
+void   proc_trampoline __P((void));
+
+/* clock.c */
+void   startrtclock __P((void));
+
+/* npx.c */
+void   npxdrop __P((void));
+void   npxsave __P((void));
+
+#ifdef MATH_EMULATE
+/* math_emulate.c */
+int    math_emulate __P((struct trapframe *));
 #endif
 
+#ifdef USER_LDT
+/* sys_machdep.h */
+void   i386_user_cleanup __P((struct pcb *));
+int    i386_get_ldt __P((struct proc *, char *, register_t *));
+int    i386_set_ldt __P((struct proc *, char *, register_t *));
+#endif
+
+/* isa_machdep.c */
+void   isa_defaultirq __P((void));
+int    isa_nmi __P((void));
+
+#ifdef VM86
+/* vm86.c */
+void   vm86_gpfault __P((struct proc *, int));
+#endif /* VM86 */
+
+/* trap.c */
+void   child_return __P((struct proc *, struct trapframe));
+
+#ifdef GENERIC
+/* swapgeneric.c */
+void   setconf __P((void));
+#endif /* GENERIC */
+
+#endif /* _KERNEL */
+
 /* 
  * CTL_MACHDEP definitions.
  */
index 45ddf8c..a2d26de 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: db_machdep.h,v 1.8 1994/10/27 04:16:02 cgd Exp $       */
+/*     $NetBSD: db_machdep.h,v 1.9 1996/05/03 19:23:59 christos Exp $  */
 
 /* 
  * Mach Operating System
@@ -85,8 +85,10 @@ db_regs_t    ddb_regs;       /* register state */
        ((!(user) && DB_VALID_KERN_ADDR(addr)) ||               \
         ((user) && (addr) < VM_MAX_ADDRESS))
 
-boolean_t      db_check_access(/* vm_offset_t, int, task_t */);
-boolean_t      db_phys_eq(/* task_t, vm_offset_t, task_t, vm_offset_t */);
+#if 0
+boolean_t      db_check_access __P((vm_offset_t, int, task_t));
+boolean_t      db_phys_eq __P((task_t, vm_offset_t, task_t, vm_offset_t));
+#endif
 
 /* macros for printing OS server dependent task name */
 
@@ -95,10 +97,14 @@ boolean_t   db_phys_eq(/* task_t, vm_offset_t, task_t, vm_offset_t */);
 #define DB_TASK_NAME_LEN       23
 #define DB_NULL_TASK_NAME      "?                      "
 
+#if 0
 void           db_task_name(/* task_t */);
+#endif
 
 /* macro for checking if a thread has used floating-point */
 
 #define db_thread_fp_used(thread)      ((thread)->pcb->ims.ifps != 0)
 
+int kdb_trap __P((int, int, db_regs_t *));
+
 #endif /* _I386_DB_MACHDEP_H_ */
index 056a456..73581fa 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: endian.h,v 1.16 1995/06/01 17:19:18 mycroft Exp $      */
+/*     $NetBSD: endian.h,v 1.17 1996/05/03 19:25:23 christos Exp $     */
 
 /*
  * Copyright (c) 1995 Charles M. Hannum.  All rights reserved.
 #include <sys/cdefs.h>
 
 __BEGIN_DECLS
-unsigned long   htonl __P((unsigned long));
-unsigned short  htons __P((unsigned short));
-unsigned long   ntohl __P((unsigned long));
-unsigned short  ntohs __P((unsigned short));
+u_int32_t   htonl __P((u_int32_t));
+u_int16_t  htons __P((u_int16_t));
+u_int32_t   ntohl __P((u_int32_t));
+u_int16_t  ntohs __P((u_int16_t));
 __END_DECLS
 
 
@@ -71,14 +71,14 @@ __END_DECLS
 
 #if defined(_KERNEL) && !defined(I386_CPU)
 #define        __byte_swap_long_variable(x) \
-({ register unsigned long __x = (x); \
+({ register u_int32_t __x = (x); \
    __asm ("bswap %1" \
        : "=r" (__x) \
        : "0" (__x)); \
    __x; })
 #else
 #define        __byte_swap_long_variable(x) \
-({ register unsigned long __x = (x); \
+({ register u_int32_t __x = (x); \
    __asm ("rorw $8, %w1\n\trorl $16, %1\n\trorw $8, %w1" \
        : "=r" (__x) \
        : "0" (__x)); \
@@ -86,7 +86,7 @@ __END_DECLS
 #endif /* _KERNEL && ... */
 
 #define        __byte_swap_word_variable(x) \
-({ register unsigned short __x = (x); \
+({ register u_int16_t __x = (x); \
    __asm ("rorw $8, %w1" \
        : "=r" (__x) \
        : "0" (__x)); \
@@ -127,10 +127,10 @@ __END_DECLS
 /*
  * Macros for network/external number representation conversion.
  */
-#define        NTOHL(x)        (x) = ntohl((unsigned long)(x))
-#define        NTOHS(x)        (x) = ntohs((unsigned short)(x))
-#define        HTONL(x)        (x) = htonl((unsigned long)(x))
-#define        HTONS(x)        (x) = htons((unsigned short)(x))
+#define        NTOHL(x)        (x) = ntohl((u_int32_t)(x))
+#define        NTOHS(x)        (x) = ntohs((u_int16_t)(x))
+#define        HTONL(x)        (x) = htonl((u_int32_t)(x))
+#define        HTONS(x)        (x) = htons((u_int16_t)(x))
 
 #endif /* _POSIX_SOURCE */
 
index 4b81bec..1c26026 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: linux_machdep.h,v 1.4 1995/08/27 20:57:18 fvdl Exp $   */
+/*     $NetBSD: linux_machdep.h,v 1.5 1996/05/03 19:26:28 christos Exp $       */
 
 /*
  * Copyright (c) 1995 Frank van der Linden
@@ -77,6 +77,7 @@ struct linux_sigframe {
 };
 
 void linux_sendsig __P((sig_t, int, int, u_long));
+dev_t linux_fakedev __P((dev_t));
 
 /*
  * Major device numbers of VT device on both Linux and NetBSD. Used in
index af53627..157c6f5 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: pmap.h,v 1.3 1996/03/19 21:09:27 mickey Exp $ */
-/*     $NetBSD: pmap.h,v 1.22 1996/02/12 21:12:29 christos Exp $       */
+/*     $OpenBSD: pmap.h,v 1.4 1996/05/07 07:22:09 deraadt Exp $        */
+/*     $NetBSD: pmap.h,v 1.23 1996/05/03 19:26:30 christos Exp $       */
 
 /* 
  * Copyright (c) 1995 Charles M. Hannum.  All rights reserved.
  */
 #define        PTDPTDI         0x3df           /* ptd entry that points to ptd! */
 #define        KPTDI           0x3e0           /* start of kernel virtual pde's */
+#ifdef BABY
+#define        NKPDE           31
+#else
 #define        NKPDE           12
+#endif
 #define        APTDPTDI        0x3ff           /* start of alternate page directory */
 
 /*
@@ -160,6 +164,8 @@ struct pv_entry             *pv_table;      /* array of entries, one per page */
 #define        pmap_resident_count(pmap)       ((pmap)->pm_stats.resident_count)
 #define        pmap_update()                   tlbflush()
 
+vm_offset_t reserve_dumppages __P((vm_offset_t));
+
 static __inline void
 pmap_clear_modify(vm_offset_t pa)
 {
@@ -196,6 +202,8 @@ pmap_phys_address(int ppn)
        return i386_ptob(ppn);
 }
 
+void pmap_activate __P((pmap_t, struct pcb *));
+
 #endif /* _KERNEL */
 
 #endif /* _I386_PMAP_H_ */
index 20e1d3f..bf8f761 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: pmap.old.h,v 1.3 1996/03/19 21:09:27 mickey Exp $     */
-/*     $NetBSD: pmap.h,v 1.22 1996/02/12 21:12:29 christos Exp $       */
+/*     $OpenBSD: pmap.old.h,v 1.4 1996/05/07 07:22:09 deraadt Exp $    */
+/*     $NetBSD: pmap.h,v 1.23 1996/05/03 19:26:30 christos Exp $       */
 
 /* 
  * Copyright (c) 1995 Charles M. Hannum.  All rights reserved.
  */
 #define        PTDPTDI         0x3df           /* ptd entry that points to ptd! */
 #define        KPTDI           0x3e0           /* start of kernel virtual pde's */
+#ifdef BABY
+#define        NKPDE           31
+#else
 #define        NKPDE           12
+#endif
 #define        APTDPTDI        0x3ff           /* start of alternate page directory */
 
 /*
@@ -160,6 +164,8 @@ struct pv_entry             *pv_table;      /* array of entries, one per page */
 #define        pmap_resident_count(pmap)       ((pmap)->pm_stats.resident_count)
 #define        pmap_update()                   tlbflush()
 
+vm_offset_t reserve_dumppages __P((vm_offset_t));
+
 static __inline void
 pmap_clear_modify(vm_offset_t pa)
 {
@@ -196,6 +202,8 @@ pmap_phys_address(int ppn)
        return i386_ptob(ppn);
 }
 
+void pmap_activate __P((pmap_t, struct pcb *));
+
 #endif /* _KERNEL */
 
 #endif /* _I386_PMAP_H_ */
index 8f9fbd8..b0041b9 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: psl.h,v 1.27 1996/02/01 22:30:56 mycroft Exp $ */
+/*     $NetBSD: psl.h,v 1.28 1996/05/03 19:26:31 christos Exp $        */
 
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
@@ -104,6 +104,11 @@ int imask[5];
 
 extern void Xspllower __P((void));
 
+static __inline int splraise __P((int));
+static __inline int spllower __P((int));
+static __inline void splx __P((int));
+static __inline void softintr __P((int));
+
 /*
  * Add a mask to cpl, and return the old value of cpl.
  */
index 93e3f5a..58069b3 100644 (file)
@@ -1,7 +1,7 @@
-/*     $OpenBSD: vm86.h,v 1.5 1996/05/02 13:44:03 deraadt Exp $        */
-/*     $NetBSD: vm86.h,v 1.6 1996/04/18 10:04:32 mycroft Exp $ */
+/*     $OpenBSD: vm86.h,v 1.6 1996/05/07 07:22:11 deraadt Exp $        */
+/*     $NetBSD: vm86.h,v 1.8 1996/05/03 19:26:32 christos Exp $        */
 
-#define        VM86_USE_VIF
+#undef VM86_USE_VIF
 
 /*-
  * Copyright (c) 1996 The NetBSD Foundation, Inc.
@@ -76,8 +76,6 @@ struct vm86_struct {
        unsigned char int21_byuser[32]; /* otherwise, handle directly */
 };
 
-#define BIOSSEG                0x0f000
-
 #define VCPU_086               0
 #define VCPU_186               1
 #define VCPU_286               2
@@ -89,8 +87,14 @@ struct vm86_struct {
 int i386_vm86 __P((struct proc *, char *, register_t *));
 void vm86_gpfault __P((struct proc *, int));
 void vm86_return __P((struct proc *, int));
-
-static __inline__ void
+static __inline void clr_vif __P((struct proc *));
+static __inline void set_vif __P((struct proc *));
+static __inline void set_vflags __P((struct proc *, int));
+static __inline int get_vflags __P((struct proc *));
+static __inline void set_vflags_short __P((struct proc *, int));
+static __inline int get_vflags_short __P((struct proc *));
+
+static __inline void
 clr_vif(p)
        struct proc *p;
 {
@@ -103,7 +107,7 @@ clr_vif(p)
 #endif
 }
 
-static __inline__ void
+static __inline void
 set_vif(p)
        struct proc *p;
 {
@@ -119,7 +123,7 @@ set_vif(p)
                vm86_return(p, VM86_STI);
 }
 
-static __inline__ void
+static __inline void
 set_vflags(p, flags)
        struct proc *p;
        int flags;
@@ -138,7 +142,7 @@ set_vflags(p, flags)
                vm86_return(p, VM86_STI);
 }
 
-static __inline__ int
+static __inline int
 get_vflags(p)
        struct proc *p;
 {
@@ -151,7 +155,7 @@ get_vflags(p)
        return (flags);
 }
 
-static __inline__ void
+static __inline void
 set_vflags_short(p, flags)
        struct proc *p;
        int flags;
@@ -168,7 +172,7 @@ set_vflags_short(p, flags)
 #endif
 }
 
-static __inline__ int
+static __inline int
 get_vflags_short(p)
        struct proc *p;
 {
index 8d09949..05c8d06 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: clock.c,v 1.37 1996/04/11 22:15:13 cgd Exp $   */
+/*     $NetBSD: clock.c,v 1.38 1996/05/03 19:14:50 christos Exp $      */
 
 /*-
  * Copyright (c) 1993, 1994 Charles Hannum.
@@ -105,8 +105,22 @@ WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
 #include <i386/isa/timerreg.h>
 #include <i386/isa/spkrreg.h>
 
-void spinwait __P((int));
-void findcpuspeed __P((void));
+void   spinwait __P((int));
+void   findcpuspeed __P((void));
+int    clockintr __P((void *));
+int    gettick __P((void));
+void   sysbeepstop __P((void *));
+void   sysbeep __P((int, int));
+void   rtcinit __P((void));
+int    rtcget __P((mc_todregs *));
+void   rtcput __P((mc_todregs *));
+static int yeartoday __P((int));
+int    hexdectodec __P((int));
+int    dectohexdec __P((int));
+
+
+__inline u_int mc146818_read __P((void *, u_int));
+__inline void mc146818_write __P((void *, u_int, u_int));
 
 #ifdef I586_CPU
 int pentium_mhz;
@@ -152,8 +166,9 @@ startrtclock()
        outb(IO_TIMER1, TIMER_DIV(hz) / 256);
 
        /* Check diagnostic status */
-       if (s = mc146818_read(NULL, NVRAM_DIAG))        /* XXX softc */
-               printf("RTC BIOS diagnostic error %b\n", s, NVRAM_DIAG_BITS);
+       if ((s = mc146818_read(NULL, NVRAM_DIAG)) != 0) /* XXX softc */
+               printf("RTC BIOS diagnostic error %b\n", (unsigned int) s, 
+                   NVRAM_DIAG_BITS);
 }
 
 int
@@ -287,7 +302,7 @@ sysbeep(pitch, period)
 
 unsigned int delaycount;       /* calibrated loop variable (1 millisecond) */
 
-#define FIRST_GUESS    0x2000
+#define FIRST_GUESS   0x2000
 
 void
 findcpuspeed()
@@ -355,7 +370,7 @@ rtcget(regs)
 {
 
        rtcinit();
-       if (mc146818_read(NULL, MC_REGD) & MC_REGD_VRT == 0) /* XXX softc */
+       if ((mc146818_read(NULL, MC_REGD) & MC_REGD_VRT) == 0) /* XXX softc */
                return (-1);
        MC146818_GETTOD(NULL, regs);                    /* XXX softc */
        return (0);
@@ -382,18 +397,18 @@ yeartoday(year)
 
 int
 hexdectodec(n)
-       char n;
+       int n;
 {
 
        return (((n >> 4) & 0x0f) * 10 + (n & 0x0f));
 }
 
-char
+int
 dectohexdec(n)
        int n;
 {
 
-       return ((char)(((n / 10) << 4) & 0xf0) | ((n % 10) & 0x0f));
+       return ((u_char)(((n / 10) << 4) & 0xf0) | ((n % 10) & 0x0f));
 }
 
 static int timeset;
index a7b07df..0120048 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: fd.c,v 1.13 1996/04/21 22:16:52 deraadt Exp $ */
-/*     $NetBSD: fd.c,v 1.87 1996/04/11 22:15:16 cgd Exp $      */
+/*     $OpenBSD: fd.c,v 1.14 1996/05/07 07:22:16 deraadt Exp $ */
+/*     $NetBSD: fd.c,v 1.88 1996/05/03 19:14:53 christos Exp $ */
 
 /*-
  * Copyright (c) 1993, 1994, 1995 Charles Hannum.
@@ -43,7 +43,6 @@
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
-#include <sys/conf.h>
 #include <sys/file.h>
 #include <sys/ioctl.h>
 #include <sys/device.h>
@@ -57,6 +56,7 @@
 
 #include <machine/cpu.h>
 #include <machine/pio.h>
+#include <machine/conf.h>
 
 #include <dev/isa/isavar.h>
 #include <dev/isa/isadmavar.h>
@@ -107,6 +107,7 @@ struct fdc_softc {
 
 /* controller driver configuration */
 int fdcprobe __P((struct device *, void *, void *));
+int fdprint __P((void *, char *));
 #ifdef NEWCONFIG
 void fdcforceintr __P((void *));
 #endif
@@ -211,6 +212,7 @@ void fdcpseudointr __P((void *arg));
 int fdcintr __P((void *));
 void fdcretry __P((struct fdc_softc *fdc));
 void fdfinish __P((struct fd_softc *fd, struct buf *bp));
+__inline struct fd_type *fd_dev_to_type __P((struct fd_softc *, dev_t));
 
 int
 fdcprobe(parent, match, aux)
@@ -463,7 +465,7 @@ fd_nvtotype(fdc, nvraminfo, drive)
        }
 }
 
-inline struct fd_type *
+__inline struct fd_type *
 fd_dev_to_type(fd, dev)
        struct fd_softc *fd;
        dev_t dev;
@@ -595,18 +597,20 @@ fdfinish(fd, bp)
 }
 
 int
-fdread(dev, uio)
+fdread(dev, uio, flags)
        dev_t dev;
        struct uio *uio;
+       int flags;
 {
 
        return (physio(fdstrategy, NULL, dev, B_READ, minphys, uio));
 }
 
 int
-fdwrite(dev, uio)
+fdwrite(dev, uio, flags)
        dev_t dev;
        struct uio *uio;
+       int flags;
 {
 
        return (physio(fdstrategy, NULL, dev, B_WRITE, minphys, uio));
@@ -621,7 +625,7 @@ fd_set_motor(fdc, reset)
        u_char status;
        int n;
 
-       if (fd = fdc->sc_drives.tqh_first)
+       if ((fd = fdc->sc_drives.tqh_first) != NULL)
                status = fd->sc_drive;
        else
                status = 0;
@@ -704,9 +708,11 @@ out_fdc(iobase, x)
 }
 
 int
-Fdopen(dev, flags)
+fdopen(dev, flags, mode, p)
        dev_t dev;
        int flags;
+       int mode;
+       struct proc *p;
 {
        int unit;
        struct fd_softc *fd;
@@ -734,9 +740,11 @@ Fdopen(dev, flags)
 }
 
 int
-fdclose(dev, flags)
+fdclose(dev, flags, mode, p)
        dev_t dev;
        int flags;
+       int mode;
+       struct proc *p;
 {
        struct fd_softc *fd = fd_cd.cd_devs[FDUNIT(dev)];
 
@@ -767,7 +775,6 @@ fdcstatus(dv, n, s)
        char *s;
 {
        struct fdc_softc *fdc = (void *)dv->dv_parent;
-       int iobase = fdc->sc_iobase;
 
        if (n == 0) {
                out_fdc(fdc->sc_iobase, NE7CMD_SENSEI);
@@ -843,7 +850,7 @@ fdcintr(arg)
        struct fd_softc *fd;
        struct buf *bp;
        int iobase = fdc->sc_iobase;
-       int read, head, trac, sec, i, s, nblks;
+       int read, head, sec, i, nblks;
        struct fd_type *type;
 
 loop:
@@ -1171,11 +1178,12 @@ fddump(dev, blkno, va, size)
 }
 
 int
-fdioctl(dev, cmd, addr, flag)
+fdioctl(dev, cmd, addr, flag, p)
        dev_t dev;
        u_long cmd;
        caddr_t addr;
        int flag;
+       struct proc *p;
 {
        struct fd_softc *fd = fd_cd.cd_devs[FDUNIT(dev)];
        struct disklabel buffer;
index cbf5756..eeecec8 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: isa_machdep.c,v 1.13 1996/04/22 20:03:07 hannken Exp $        */
-/*     $NetBSD: isa_machdep.c,v 1.12 1996/04/11 22:11:32 cgd Exp $     */
+/*     $OpenBSD: isa_machdep.c,v 1.14 1996/05/07 07:22:17 deraadt Exp $        */
+/*     $NetBSD: isa_machdep.c,v 1.13 1996/05/03 19:14:55 christos Exp $        */
 
 /*-
  * Copyright (c) 1993, 1994 Charles Hannum.
@@ -41,6 +41,7 @@
  */
 
 #include <sys/param.h>
+#include <sys/systm.h>
 #include <sys/syslog.h>
 #include <sys/device.h>
 #include <sys/malloc.h>
 
 #define        IDTVEC(name)    __CONCAT(X,name)
 /* default interrupt vector table entries */
-typedef (*vector)();
+typedef (*vector) __P((void));
 extern vector IDTVEC(intr)[], IDTVEC(fast)[];
 extern struct gate_descriptor idt[];
+void isa_strayintr __P((int));
+void intr_calculatemasks __P((void));
+int fakeintr __P((void *));
 
 /*
  * Fill in default interrupt table (in case of spuruious interrupt
index 756221c..6476195 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: isa_machdep.h,v 1.5 1996/04/11 22:10:11 cgd Exp $      */
+/*     $NetBSD: isa_machdep.h,v 1.6 1996/05/03 19:14:56 christos Exp $ */
 
 /*-
  * Copyright (c) 1990 The Regents of the University of California.
@@ -111,7 +111,7 @@ void        isa_intr_disestablish __P((isa_chipset_tag_t ic, void *handler));
  */
 
 struct intrhand {
-       int     (*ih_fun)();
+       int     (*ih_fun) __P((void *));
        void    *ih_arg;
        u_long  ih_count;
        struct  intrhand *ih_next;
index efd2430..70f5438 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: lms.c,v 1.24 1996/04/11 22:15:18 cgd Exp $     */
+/*     $NetBSD: lms.c,v 1.25 1996/05/03 20:12:01 christos Exp $        */
 
 /*-
  * Copyright (c) 1993, 1994 Charles Hannum.
@@ -39,6 +39,7 @@
 #include <machine/cpu.h>
 #include <machine/bus.h>
 #include <machine/mouse.h>
+#include <machine/conf.h>
 
 #include <dev/isa/isavar.h>
 
@@ -129,7 +130,6 @@ lmsattach(parent, self, aux)
 {
        struct lms_softc *sc = (void *)self;
        struct isa_attach_args *ia = aux;
-       int iobase = ia->ia_iobase;
 
        printf("\n");
 
@@ -143,9 +143,11 @@ lmsattach(parent, self, aux)
 }
 
 int
-lmsopen(dev, flag)
+lmsopen(dev, flag, mode, p)
        dev_t dev;
        int flag;
+       int mode;
+       struct proc *p;
 {
        int unit = LMSUNIT(dev);
        struct lms_softc *sc;
@@ -173,9 +175,11 @@ lmsopen(dev, flag)
 }
 
 int
-lmsclose(dev, flag)
+lmsclose(dev, flag, mode, p)
        dev_t dev;
        int flag;
+       int mode;
+       struct proc *p;
 {
        struct lms_softc *sc = lms_cd.cd_devs[LMSUNIT(dev)];
 
@@ -197,7 +201,7 @@ lmsread(dev, uio, flag)
 {
        struct lms_softc *sc = lms_cd.cd_devs[LMSUNIT(dev)];
        int s;
-       int error;
+       int error = 0;
        size_t length;
        u_char buffer[LMS_CHUNK];
 
@@ -210,7 +214,8 @@ lmsread(dev, uio, flag)
                        return EWOULDBLOCK;
                }
                sc->sc_state |= LMS_ASLP;
-               if (error = tsleep((caddr_t)sc, PZERO | PCATCH, "lmsrea", 0)) {
+               error = tsleep((caddr_t)sc, PZERO | PCATCH, "lmsrea", 0);
+               if (error) {
                        sc->sc_state &= ~LMS_ASLP;
                        splx(s);
                        return error;
@@ -229,7 +234,7 @@ lmsread(dev, uio, flag)
                (void) q_to_b(&sc->sc_q, buffer, length);
 
                /* Copy the data to the user process. */
-               if (error = uiomove(buffer, length, uio))
+               if ((error = uiomove(buffer, length, uio)) != 0)
                        break;
        }
 
@@ -237,11 +242,12 @@ lmsread(dev, uio, flag)
 }
 
 int
-lmsioctl(dev, cmd, addr, flag)
+lmsioctl(dev, cmd, addr, flag, p)
        dev_t dev;
        u_long cmd;
        caddr_t addr;
        int flag;
+       struct proc *p;
 {
        struct lms_softc *sc = lms_cd.cd_devs[LMSUNIT(dev)];
        struct mouseinfo info;
index 6dc4a53..36382e3 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: mms.c,v 1.22 1996/04/11 22:15:20 cgd Exp $     */
+/*     $NetBSD: mms.c,v 1.23 1996/05/03 20:11:57 christos Exp $        */
 
 /*-
  * Copyright (c) 1993, 1994 Charles Hannum.
@@ -39,6 +39,7 @@
 #include <machine/cpu.h>
 #include <machine/pio.h>
 #include <machine/mouse.h>
+#include <machine/conf.h>
 
 #include <dev/isa/isavar.h>
 
@@ -118,9 +119,11 @@ mmsattach(parent, self, aux)
 }
 
 int
-mmsopen(dev, flag)
+mmsopen(dev, flag, mode, p)
        dev_t dev;
        int flag;
+       int mode;
+       struct proc *p;
 {
        int unit = MMSUNIT(dev);
        struct mms_softc *sc;
@@ -149,9 +152,11 @@ mmsopen(dev, flag)
 }
 
 int
-mmsclose(dev, flag)
+mmsclose(dev, flag, mode, p)
        dev_t dev;
        int flag;
+       int mode;
+       struct proc *p;
 {
        struct mms_softc *sc = mms_cd.cd_devs[MMSUNIT(dev)];
 
@@ -173,7 +178,7 @@ mmsread(dev, uio, flag)
 {
        struct mms_softc *sc = mms_cd.cd_devs[MMSUNIT(dev)];
        int s;
-       int error;
+       int error = 0;
        size_t length;
        u_char buffer[MMS_CHUNK];
 
@@ -186,7 +191,8 @@ mmsread(dev, uio, flag)
                        return EWOULDBLOCK;
                }
                sc->sc_state |= MMS_ASLP;
-               if (error = tsleep((caddr_t)sc, PZERO | PCATCH, "mmsrea", 0)) {
+               error = tsleep((caddr_t)sc, PZERO | PCATCH, "mmsrea", 0);
+               if (error) {
                        sc->sc_state &= ~MMS_ASLP;
                        splx(s);
                        return error;
@@ -205,7 +211,7 @@ mmsread(dev, uio, flag)
                (void) q_to_b(&sc->sc_q, buffer, length);
 
                /* Copy the data to the user process. */
-               if (error = uiomove(buffer, length, uio))
+               if ((error = uiomove(buffer, length, uio)) != 0)
                        break;
        }
 
@@ -213,11 +219,12 @@ mmsread(dev, uio, flag)
 }
 
 int
-mmsioctl(dev, cmd, addr, flag)
+mmsioctl(dev, cmd, addr, flag, p)
        dev_t dev;
        u_long cmd;
        caddr_t addr;
        int flag;
+       struct proc *p;
 {
        struct mms_softc *sc = mms_cd.cd_devs[MMSUNIT(dev)];
        struct mouseinfo info;
index 1eac3fc..1ffa070 100644 (file)
@@ -1,4 +1,4 @@
-/*     $NetBSD: npx.c,v 1.55 1996/04/11 22:15:22 cgd Exp $     */
+/*     $NetBSD: npx.c,v 1.56 1996/05/03 19:14:58 christos Exp $        */
 
 #if 0
 #define iprintf(x)     printf x
@@ -104,7 +104,6 @@ int npxdna __P((struct proc *));
 void npxexit __P((void));
 int npxintr __P((void *));
 static int npxprobe1 __P((struct isa_attach_args *));
-void npxsave __P((void));
 static void npxsave1 __P((void));
 
 struct npx_softc {
@@ -339,6 +338,8 @@ npxattach(parent, self, aux)
                printf(": error reporting broken; not using\n");
                npx_type = NPX_NONE;
                return;
+       case NPX_NONE:
+               return;
        }
 
        lcr0(rcr0() & ~(CR0_EM|CR0_TS));
index 70c5032..e0cd329 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: pccons.c,v 1.11 1996/04/24 18:16:55 mickey Exp $      */
-/*     $NetBSD: pccons.c,v 1.96 1996/04/11 22:15:25 cgd Exp $  */
+/*     $OpenBSD: pccons.c,v 1.12 1996/05/07 07:22:23 deraadt Exp $     */
+/*     $NetBSD: pccons.c,v 1.97 1996/05/03 19:15:00 christos Exp $     */
 
 /*-
  * Copyright (c) 1993, 1994, 1995 Charles Hannum.  All rights reserved.
@@ -46,7 +46,6 @@
 
 #include <sys/param.h>
 #include <sys/systm.h>
-#include <sys/conf.h>
 #include <sys/ioctl.h>
 #include <sys/proc.h>
 #include <sys/user.h>
@@ -64,6 +63,7 @@
 #include <machine/pio.h>
 #include <machine/pc/display.h>
 #include <machine/pccons.h>
+#include <machine/conf.h>
 
 #include <dev/isa/isareg.h>
 #include <dev/isa/isavar.h>
@@ -140,19 +140,36 @@ void sput __P((u_char *, int));
 void pc_xmode_on __P((void));
 void pc_xmode_off __P((void));
 
-void   pcstart();
-int    pcparam();
+void   pcstart __P((struct tty *));
+int    pcparam __P((struct tty *, struct termios *));
+
 char   partab[];
 
-extern pcopen(dev_t, int, int, struct proc *);
+int kbd_cmd __P((u_char, u_char));
+void set_cursor_shape __P((void));
+void get_cursor_shape __P((void));
+void do_async_update __P((void *));
+void async_update __P((void));
+
+static __inline int kbd_wait_output __P((void));
+static __inline int kbd_wait_input __P((void));
+static __inline void kbd_flush_input __P((void));
+static u_char kbc_get8042cmd __P((void));
+static int kbc_put8042cmd __P((u_char));
+
+void pccnprobe __P((struct consdev *));
+void pccninit __P((struct consdev *));
+void pccnputc __P((dev_t, char));
+int pccngetc __P((dev_t));
+void pccnpollc __P((dev_t, int));
 
 #define        KBD_DELAY \
-       { u_char x = inb(0x84); } \
-       { u_char x = inb(0x84); } \
-       { u_char x = inb(0x84); } \
-       { u_char x = inb(0x84); }
+       { u_char x = inb(0x84); (void) x; } \
+       { u_char x = inb(0x84); (void) x; } \
+       { u_char x = inb(0x84); (void) x; } \
+       { u_char x = inb(0x84); (void) x; }
 
-static inline int
+static __inline int
 kbd_wait_output()
 {
        u_int i;
@@ -165,7 +182,7 @@ kbd_wait_output()
        return 0;
 }
 
-static inline int
+static __inline int
 kbd_wait_input()
 {
        u_int i;
@@ -178,7 +195,7 @@ kbd_wait_input()
        return 0;
 }
 
-static inline void
+static __inline void
 kbd_flush_input()
 {
        u_int i;
@@ -311,9 +328,10 @@ get_cursor_shape()
 }
 
 void
-do_async_update(poll)
-       u_char poll;
+do_async_update(v)
+       void *v;
 {
+       u_char poll = v ? 1 : 0;
        int pos;
        static int old_pos = -1;
 
@@ -359,7 +377,7 @@ async_update()
        if (kernel || polling) {
                if (async)
                        untimeout(do_async_update, NULL);
-               do_async_update(1);
+               do_async_update((void *)1);
        } else {
                if (async)
                        return;
@@ -462,7 +480,7 @@ pcattach(parent, self, aux)
        struct isa_attach_args *ia = aux;
 
        printf(": %s\n", vs.color ? "color" : "mono");
-       do_async_update(1);
+       do_async_update((void *)1);
        screen_restore(0);
 
        sc->sc_ih = isa_intr_establish(ia->ia_ic, ia->ia_irq, IST_EDGE,
@@ -688,7 +706,7 @@ pcstart(tp)
        struct tty *tp;
 {
        struct clist *cl;
-       int s, len, n;
+       int s, len;
        u_char buf[PCBURST];
 
        s = spltty();
@@ -720,12 +738,12 @@ out:
        splx(s);
 }
 
-void
+int
 pcstop(tp, flag)
        struct tty *tp;
        int flag;
 {
-
+       return 0;
 }
 
 void
@@ -967,7 +985,7 @@ sput(cp, n)
                else
                        vs.so_at = FG_YELLOW | BG_BLACK;
 
-               fillw((vs.at << 8) | ' ', crtat, vs.nchr - cursorat);
+               fillw((vs.at << 8) | ' ', (caddr_t) crtat, vs.nchr - cursorat);
        }
 
        while (n--) {
@@ -1015,7 +1033,6 @@ sput(cp, n)
                        break;
 
                default:
-               bypass:
                        switch (vs.state) {
                        case 0:
                                if (c == '\a')
@@ -1054,8 +1071,8 @@ sput(cp, n)
                                        vs.cx = vs.cy = 0;
                                        vs.state = VSS_EBRACE;
                                } else if (c == 'c') { /* Clear screen & home */
-                                       fillw((vs.at << 8) | ' ', Crtat,
-                                           vs.nchr);
+                                       fillw((vs.at << 8) | ' ',
+                                           (caddr_t) Crtat, vs.nchr);
                                        crtat = Crtat;
                                        vs.col = 0;
                                        vs.state = 0;
@@ -1145,17 +1162,20 @@ sput(cp, n)
                                        switch (vs.cx) {
                                        case 0:
                                                /* ... to end of display */
-                                               fillw((vs.at << 8) | ' ', crtat,
+                                               fillw((vs.at << 8) | ' ', 
+                                                   (caddr_t) crtat,
                                                    Crtat + vs.nchr - crtat);
                                                break;
                                        case 1:
                                                /* ... to next location */
-                                               fillw((vs.at << 8) | ' ', Crtat,
+                                               fillw((vs.at << 8) | ' ',
+                                                   (caddr_t) Crtat,
                                                    crtat - Crtat + 1);
                                                break;
                                        case 2:
                                                /* ... whole display */
-                                               fillw((vs.at << 8) | ' ', Crtat,
+                                               fillw((vs.at << 8) | ' ',
+                                                   (caddr_t) Crtat,
                                                    vs.nchr);
                                                break;
                                        }
@@ -1165,19 +1185,21 @@ sput(cp, n)
                                        switch (vs.cx) {
                                        case 0:
                                                /* ... current to EOL */
-                                               fillw((vs.at << 8) | ' ', crtat,
+                                               fillw((vs.at << 8) | ' ',
+                                                   (caddr_t) crtat,
                                                    vs.ncol - vs.col);
                                                break;
                                        case 1:
                                                /* ... beginning to next */
                                                fillw((vs.at << 8) | ' ',
-                                                   crtat - vs.col,
+                                                   (caddr_t) (crtat - vs.col),
                                                    vs.col + 1);
                                                break;
                                        case 2:
                                                /* ... entire line */
                                                fillw((vs.at << 8) | ' ',
-                                                   crtat - vs.col, vs.ncol);
+                                                   (caddr_t) (crtat - vs.col),
+                                                   vs.ncol);
                                                break;
                                        }
                                        vs.state = 0;
@@ -1215,7 +1237,7 @@ sput(cp, n)
                                                    crtAt, vs.ncol * (nrow -
                                                    cx) * CHR);
                                        fillw((vs.at << 8) | ' ',
-                                           crtAt + vs.ncol * (nrow - cx),
+                                           (caddr_t) (crtAt + vs.ncol * (nrow - cx)),
                                            vs.ncol * cx);
                                        vs.state = 0;
                                        break;
@@ -1231,9 +1253,11 @@ sput(cp, n)
                                                    Crtat, vs.ncol * (vs.nrow -
                                                    cx) * CHR);
                                        fillw((vs.at << 8) | ' ',
-                                           Crtat + vs.ncol * (vs.nrow - cx),
+                                           (caddr_t) (Crtat + vs.ncol * (vs.nrow - cx)),
                                            vs.ncol * cx);
-                                       /* crtat -= vs.ncol * cx; /* XXX */
+#if 0
+                                       crtat -= vs.ncol * cx; /* XXX */
+#endif
                                        vs.state = 0;
                                        break;
                                }
@@ -1251,7 +1275,8 @@ sput(cp, n)
                                                    crtAt + vs.ncol * cx,
                                                    vs.ncol * (nrow - cx) *
                                                    CHR);
-                                       fillw((vs.at << 8) | ' ', crtAt,
+                                       fillw((vs.at << 8) | ' ', 
+                                           (caddr_t) crtAt,
                                            vs.ncol * cx);
                                        vs.state = 0;
                                        break;
@@ -1267,9 +1292,12 @@ sput(cp, n)
                                                    Crtat + vs.ncol * cx,
                                                    vs.ncol * (vs.nrow - cx) *
                                                    CHR);
-                                       fillw((vs.at << 8) | ' ', Crtat,
+                                       fillw((vs.at << 8) | ' ', 
+                                           (caddr_t) Crtat,
                                            vs.ncol * cx);
-                                       /* crtat += vs.ncol * cx; /* XXX */
+#if 0
+                                       crtat += vs.ncol * cx; /* XXX */
+#endif
                                        vs.state = 0;
                                        break;
                                }
@@ -1339,7 +1367,8 @@ sput(cp, n)
                                bcopy(Crtat + vs.ncol, Crtat,
                                    (vs.nchr - vs.ncol) * CHR);
                                fillw((vs.at << 8) | ' ',
-                                   Crtat + vs.nchr - vs.ncol, vs.ncol);
+                                   (caddr_t) (Crtat + vs.nchr - vs.ncol),
+                                   vs.ncol);
                                crtat -= vs.ncol;
                        }
                }
index 23ef40a..52dbd89 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: pcvt_drv.c,v 1.11 1996/04/24 18:16:57 mickey Exp $    */
+/*     $OpenBSD: pcvt_drv.c,v 1.12 1996/05/07 07:22:26 deraadt Exp $   */
 
 /*
  * Copyright (c) 1992, 1995 Hellmuth Michaelis and Joerg Wunsch.
@@ -100,6 +100,7 @@ static              nrow;
 #endif
 
 static void vgapelinit(void);  /* read initial VGA DAC palette */
+int getchar(void);
 
 #if PCVT_FREEBSD > 205
 static struct kern_devconf kdc_vt[];
@@ -109,6 +110,17 @@ static char vt_description[];
 #define VT_DESCR_LEN 40
 #endif /* PCVT_FREEBSD > 205 */
 
+#if PCVT_NETBSD > 100
+void pccnpollc(Dev_t, int);
+#endif
+#if PCVT_NETBSD > 100
+int pcprobe(struct device *, void *, void *);
+#endif
+#if PCVT_NETBSD > 9
+void pcattach(struct device *, struct device *, void *);
+#endif
+
+
 #if PCVT_NETBSD > 100  /* NetBSD-current Feb 20 1995 */
 int
 pcprobe(struct device *parent, void *match, void *aux)
@@ -976,7 +988,7 @@ pcstart(register struct tty *tp)
         * expensive and we don't want our serial ports to overflow.
         */
 
-       while (len = q_to_b(&tp->t_outq, buf, PCVT_PCBURST))
+       while ((len = q_to_b(&tp->t_outq, buf, PCVT_PCBURST)) != 0)
                sput(&buf[0], 0, len, minor(tp->t_dev));
 
        s = spltty();
index 222d09e..53590fe 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: pcvt_hdr.h,v 1.7 1996/04/21 22:17:09 deraadt Exp $    */
+/*     $OpenBSD: pcvt_hdr.h,v 1.8 1996/05/07 07:22:27 deraadt Exp $    */
 
 /*
  * Copyright (c) 1992, 1995 Hellmuth Michaelis and Joerg Wunsch.
@@ -904,8 +904,12 @@ struct vt_softc {
 };
 #endif /* PCVT_NETBSD > 101 */
 
-int pcprobe ();
-void pcattach ();
+#if PCVT_NETBSD > 100
+int pcprobe(struct device *, void *, void *);
+#endif
+#if PCVT_NETBSD > 9
+void pcattach(struct device *, struct device *, void *);
+#endif
 
 #if PCVT_NETBSD > 110
 struct cfattach vt_ca = {
@@ -1400,12 +1404,12 @@ static __inline void vt_selattr(struct video_state *svsp)
                                /* 0x84 to produce keyboard controller    */
                                /* access delays                          */
 #define PCVT_KBD_DELAY()          \
-       { u_char x = inb(0x84); } \
-       { u_char x = inb(0x84); } \
-       { u_char x = inb(0x84); } \
-       { u_char x = inb(0x84); } \
-       { u_char x = inb(0x84); } \
-       { u_char x = inb(0x84); }
+       { volatile u_char x = inb(0x84); (void) &x;} \
+       { volatile u_char x = inb(0x84); (void) &x;} \
+       { volatile u_char x = inb(0x84); (void) &x;} \
+       { volatile u_char x = inb(0x84); (void) &x;} \
+       { volatile u_char x = inb(0x84); (void) &x;} \
+       { volatile u_char x = inb(0x84); (void) &x;}
 
 #else /* PCVT_PORTIO_DELAY */
                                /* use system supplied delay function for */
index e251249..e307429 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: pcvt_kbd.c,v 1.4 1996/04/18 17:48:33 niklas Exp $     */
+/*     $OpenBSD: pcvt_kbd.c,v 1.5 1996/05/07 07:22:30 deraadt Exp $    */
 
 /*
  * Copyright (c) 1992, 1995 Hellmuth Michaelis and Joerg Wunsch.
@@ -94,6 +94,11 @@ static void cfkey1(void), cfkey2(void),  cfkey3(void),  cfkey4(void);
 static void cfkey5(void), cfkey6(void),  cfkey7(void),  cfkey8(void);
 static void cfkey9(void), cfkey10(void), cfkey11(void), cfkey12(void);
 
+static inline int kbd_wait_output(void);
+static inline int kbd_wait_input(void);
+int kbd_response(void);
+
+
 static void    doreset ( void );
 static void    ovlinit ( int force );
 static void    settpmrate ( int rate );
@@ -714,7 +719,7 @@ xlatkey2ascii(U_short key)
 #endif
        static Ovl_tbl  thisdef;
        int             n;
-       void            (*fnc)();
+       void            (*fnc)(void);
 
        if(key==0)                      /* ignore the NON-KEY */
                return 0;
index d062142..7b80aa3 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: pcvt_kbd.h,v 1.2 1996/04/18 17:48:35 niklas Exp $     */
+/*     $OpenBSD: pcvt_kbd.h,v 1.3 1996/05/07 07:22:31 deraadt Exp $    */
 
 /*
  * Copyright (c) 1992, 1995 Hellmuth Michaelis and Joerg Wunsch.
@@ -68,7 +68,7 @@ typedef struct
        union what
        {
                u_char *string;         /* ptr to string, null terminated */
-               void (*func)();         /* ptr to function */
+               void (*func)(void);     /* ptr to function */
        } what;
 } entry;
 
@@ -207,144 +207,144 @@ static Keycap_def       key2ascii[] =
 #define F FNC
 #define I IDX0
 
-#define DFAULT  {S, 0, C ""}
+#define DFAULT  {S, 0,  { "" }}
 
 /* DONT EVER OVERLOAD KEY 0, THIS IS A KEY THAT MUSTN'T EXIST */
 
 /*      type   index  unshift            shift              ctrl               alt                alt_shift          alt_ctrl           alt_ctrl_shift     */
 /*      -------------------------------------------------------------------------------------------------------------------------------------------------- */
-/*  0*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*  1*/ KBD_ASCII, I, {S,1,C "`"},       {S,1,C "~"},       {S,1,C "`"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*  2*/ KBD_ASCII, I, {S,1,C "1"},       {S,1,C "!"},       {S,1,C "1"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*  3*/ KBD_ASCII, I, {S,1,C "2"},       {S,1,C "@"},       {S,1,C "\000"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*  4*/ KBD_ASCII, I, {S,1,C "3"},       {S,1,C "#"},       {S,1,C "3"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*  5*/ KBD_ASCII, I, {S,1,C "4"},       {S,1,C "$"},       {S,1,C "4"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*  6*/ KBD_ASCII, I, {S,1,C "5"},       {S,1,C "%"},       {S,1,C "5"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*  7*/ KBD_ASCII, I, {S,1,C "6"},       {S,1,C "^"},       {S,1,C "\036"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*  8*/ KBD_ASCII, I, {S,1,C "7"},       {S,1,C "&"},       {S,1,C "7"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*  9*/ KBD_ASCII, I, {S,1,C "8"},       {S,1,C "*"},       {S,1,C "8"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 10*/ KBD_ASCII, I, {S,1,C "9"},       {S,1,C "("},       {S,1,C "9"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 11*/ KBD_ASCII, I, {S,1,C "0"},       {S,1,C ")"},       {S,1,C "0"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 12*/ KBD_ASCII, I, {S,1,C "-"},       {S,1,C "_"},       {S,1,C "\037"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 13*/ KBD_ASCII, I, {S,1,C "="},       {S,1,C "+"},       {S,1,C "="},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 14*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 15*/ KBD_ASCII, I, {S,1,C "\177"},    {S,1,C "\010"},    {S,1,C "\177"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 16*/ KBD_ASCII, I, {S,1,C "\t"},      {S,1,C "\t"},      {S,1,C "\t"},      DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 17*/ KBD_ASCII, I, {S,1,C "q"},       {S,1,C "Q"},       {S,1,C "\021"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 18*/ KBD_ASCII, I, {S,1,C "w"},       {S,1,C "W"},       {S,1,C "\027"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 19*/ KBD_ASCII, I, {S,1,C "e"},       {S,1,C "E"},       {S,1,C "\005"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 20*/ KBD_ASCII, I, {S,1,C "r"},       {S,1,C "R"},       {S,1,C "\022"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 21*/ KBD_ASCII, I, {S,1,C "t"},       {S,1,C "T"},       {S,1,C "\024"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 22*/ KBD_ASCII, I, {S,1,C "y"},       {S,1,C "Y"},       {S,1,C "\031"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 23*/ KBD_ASCII, I, {S,1,C "u"},       {S,1,C "U"},       {S,1,C "\025"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 24*/ KBD_ASCII, I, {S,1,C "i"},       {S,1,C "I"},       {S,1,C "\011"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 25*/ KBD_ASCII, I, {S,1,C "o"},       {S,1,C "O"},       {S,1,C "\017"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 26*/ KBD_ASCII, I, {S,1,C "p"},       {S,1,C "P"},       {S,1,C "\020"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 27*/ KBD_ASCII, I, {S,1,C "["},       {S,1,C "{"},       {S,1,C "\033"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 28*/ KBD_ASCII, I, {S,1,C "]"},       {S,1,C "}"},       {S,1,C "\035"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 29*/ KBD_ASCII, I, {S,1,C "\\"},      {S,1,C "|"},       {S,1,C "\034"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 30*/ KBD_CAPS,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 31*/ KBD_ASCII, I, {S,1,C "a"},       {S,1,C "A"},       {S,1,C "\001"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 32*/ KBD_ASCII, I, {S,1,C "s"},       {S,1,C "S"},       {S,1,C "\023"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 33*/ KBD_ASCII, I, {S,1,C "d"},       {S,1,C "D"},       {S,1,C "\004"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 34*/ KBD_ASCII, I, {S,1,C "f"},       {S,1,C "F"},       {S,1,C "\006"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 35*/ KBD_ASCII, I, {S,1,C "g"},       {S,1,C "G"},       {S,1,C "\007"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 36*/ KBD_ASCII, I, {S,1,C "h"},       {S,1,C "H"},       {S,1,C "\010"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 37*/ KBD_ASCII, I, {S,1,C "j"},       {S,1,C "J"},       {S,1,C "\n"},      DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 38*/ KBD_ASCII, I, {S,1,C "k"},       {S,1,C "K"},       {S,1,C "\013"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 39*/ KBD_ASCII, I, {S,1,C "l"},       {S,1,C "L"},       {S,1,C "\014"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 40*/ KBD_ASCII, I, {S,1,C ";"},       {S,1,C ":"},       {S,1,C ";"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 41*/ KBD_ASCII, I, {S,1,C "'"},       {S,1,C "\""},      {S,1,C "'"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 42*/ KBD_ASCII, I, {S,1,C "\\"},      {S,1,C "|"},       {S,1,C "\034"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 43*/ KBD_RETURN,I, {S,1,C "\r"},      {S,1,C "\r"},      {S,1,C "\r"},      DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 44*/ KBD_SHIFT, I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 45*/ KBD_ASCII, I, {S,1,C "<"},       {S,1,C ">"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 46*/ KBD_ASCII, I, {S,1,C "z"},       {S,1,C "Z"},       {S,1,C "\032"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 47*/ KBD_ASCII, I, {S,1,C "x"},       {S,1,C "X"},       {S,1,C "\030"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 48*/ KBD_ASCII, I, {S,1,C "c"},       {S,1,C "C"},       {S,1,C "\003"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 49*/ KBD_ASCII, I, {S,1,C "v"},       {S,1,C "V"},       {S,1,C "\026"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 50*/ KBD_ASCII, I, {S,1,C "b"},       {S,1,C "B"},       {S,1,C "\002"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 51*/ KBD_ASCII, I, {S,1,C "n"},       {S,1,C "N"},       {S,1,C "\016"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 52*/ KBD_ASCII, I, {S,1,C "m"},       {S,1,C "M"},       {S,1,C "\r"},      DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 53*/ KBD_ASCII, I, {S,1,C ","},       {S,1,C "<"},       {S,1,C ","},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 54*/ KBD_ASCII, I, {S,1,C "."},       {S,1,C ">"},       {S,1,C "."},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 55*/ KBD_ASCII, I, {S,1,C "/"},       {S,1,C "?"},       {S,1,C "/"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 56*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 57*/ KBD_SHIFT, I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 58*/ KBD_CTL,   I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 59*/ KBD_ASCII, I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 60*/ KBD_META,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
+/*  0*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*  1*/ { KBD_ASCII, I, {S,1, { "`" }},       {S,1, { "~" }},       {S,1, { "`" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*  2*/ { KBD_ASCII, I, {S,1, { "1" }},       {S,1, { "!" }},       {S,1, { "1" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*  3*/ { KBD_ASCII, I, {S,1, { "2" }},       {S,1, { "@" }},       {S,1, { "\000" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*  4*/ { KBD_ASCII, I, {S,1, { "3" }},       {S,1, { "#" }},       {S,1, { "3" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*  5*/ { KBD_ASCII, I, {S,1, { "4" }},       {S,1, { "$" }},       {S,1, { "4" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*  6*/ { KBD_ASCII, I, {S,1, { "5" }},       {S,1, { "%" }},       {S,1, { "5" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*  7*/ { KBD_ASCII, I, {S,1, { "6" }},       {S,1, { "^" }},       {S,1, { "\036" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*  8*/ { KBD_ASCII, I, {S,1, { "7" }},       {S,1, { "&" }},       {S,1, { "7" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*  9*/ { KBD_ASCII, I, {S,1, { "8" }},       {S,1, { "*" }},       {S,1, { "8" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 10*/ { KBD_ASCII, I, {S,1, { "9" }},       {S,1, { "(" }},       {S,1, { "9" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 11*/ { KBD_ASCII, I, {S,1, { "0" }},       {S,1, { ")" }},       {S,1, { "0" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 12*/ { KBD_ASCII, I, {S,1, { "-" }},       {S,1, { "_" }},       {S,1, { "\037" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 13*/ { KBD_ASCII, I, {S,1, { "=" }},       {S,1, { "+" }},       {S,1, { "=" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 14*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 15*/ { KBD_ASCII, I, {S,1, { "\177" }},    {S,1, { "\010" }},    {S,1, { "\177" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 16*/ { KBD_ASCII, I, {S,1, { "\t" }},      {S,1, { "\t" }},      {S,1, { "\t" }},      DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 17*/ { KBD_ASCII, I, {S,1, { "q" }},       {S,1, { "Q" }},       {S,1, { "\021" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 18*/ { KBD_ASCII, I, {S,1, { "w" }},       {S,1, { "W" }},       {S,1, { "\027" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 19*/ { KBD_ASCII, I, {S,1, { "e" }},       {S,1, { "E" }},       {S,1, { "\005" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 20*/ { KBD_ASCII, I, {S,1, { "r" }},       {S,1, { "R" }},       {S,1, { "\022" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 21*/ { KBD_ASCII, I, {S,1, { "t" }},       {S,1, { "T" }},       {S,1, { "\024" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 22*/ { KBD_ASCII, I, {S,1, { "y" }},       {S,1, { "Y" }},       {S,1, { "\031" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 23*/ { KBD_ASCII, I, {S,1, { "u" }},       {S,1, { "U" }},       {S,1, { "\025" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 24*/ { KBD_ASCII, I, {S,1, { "i" }},       {S,1, { "I" }},       {S,1, { "\011" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 25*/ { KBD_ASCII, I, {S,1, { "o" }},       {S,1, { "O" }},       {S,1, { "\017" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 26*/ { KBD_ASCII, I, {S,1, { "p" }},       {S,1, { "P" }},       {S,1, { "\020" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 27*/ { KBD_ASCII, I, {S,1, { "[" }},       {S,1, { "{" }},       {S,1, { "\033" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 28*/ { KBD_ASCII, I, {S,1, { "]" }},       {S,1, { "}" }},       {S,1, { "\035" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 29*/ { KBD_ASCII, I, {S,1, { "\\" }},      {S,1, { "|" }},       {S,1, { "\034" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 30*/ { KBD_CAPS,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 31*/ { KBD_ASCII, I, {S,1, { "a" }},       {S,1, { "A" }},       {S,1, { "\001" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 32*/ { KBD_ASCII, I, {S,1, { "s" }},       {S,1, { "S" }},       {S,1, { "\023" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 33*/ { KBD_ASCII, I, {S,1, { "d" }},       {S,1, { "D" }},       {S,1, { "\004" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 34*/ { KBD_ASCII, I, {S,1, { "f" }},       {S,1, { "F" }},       {S,1, { "\006" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 35*/ { KBD_ASCII, I, {S,1, { "g" }},       {S,1, { "G" }},       {S,1, { "\007" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 36*/ { KBD_ASCII, I, {S,1, { "h" }},       {S,1, { "H" }},       {S,1, { "\010" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 37*/ { KBD_ASCII, I, {S,1, { "j" }},       {S,1, { "J" }},       {S,1, { "\n" }},      DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 38*/ { KBD_ASCII, I, {S,1, { "k" }},       {S,1, { "K" }},       {S,1, { "\013" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 39*/ { KBD_ASCII, I, {S,1, { "l" }},       {S,1, { "L" }},       {S,1, { "\014" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 40*/ { KBD_ASCII, I, {S,1, { ";" }},       {S,1, { ":" }},       {S,1, { ";" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 41*/ { KBD_ASCII, I, {S,1, { "'" }},       {S,1, { "\" }"},      {S,1, { "'" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 42*/ { KBD_ASCII, I, {S,1, { "\\" }},      {S,1, { "|" }},       {S,1, { "\034" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 43*/ { KBD_RETURN,I, {S,1, { "\r" }},      {S,1, { "\r" }},      {S,1, { "\r" }},      DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 44*/ { KBD_SHIFT, I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 45*/ { KBD_ASCII, I, {S,1, { "<" }},       {S,1, { ">" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 46*/ { KBD_ASCII, I, {S,1, { "z" }},       {S,1, { "Z" }},       {S,1, { "\032" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 47*/ { KBD_ASCII, I, {S,1, { "x" }},       {S,1, { "X" }},       {S,1, { "\030" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 48*/ { KBD_ASCII, I, {S,1, { "c" }},       {S,1, { "C" }},       {S,1, { "\003" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 49*/ { KBD_ASCII, I, {S,1, { "v" }},       {S,1, { "V" }},       {S,1, { "\026" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 50*/ { KBD_ASCII, I, {S,1, { "b" }},       {S,1, { "B" }},       {S,1, { "\002" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 51*/ { KBD_ASCII, I, {S,1, { "n" }},       {S,1, { "N" }},       {S,1, { "\016" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 52*/ { KBD_ASCII, I, {S,1, { "m" }},       {S,1, { "M" }},       {S,1, { "\r" }},      DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 53*/ { KBD_ASCII, I, {S,1, { "," }},       {S,1, { "<" }},       {S,1, { "," }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 54*/ { KBD_ASCII, I, {S,1, { "." }},       {S,1, { ">" }},       {S,1, { "." }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 55*/ { KBD_ASCII, I, {S,1, { "/" }},       {S,1, { "?" }},       {S,1, { "/" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 56*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 57*/ { KBD_SHIFT, I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 58*/ { KBD_CTL,   I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 59*/ { KBD_ASCII, I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 60*/ { KBD_META,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
 #if !PCVT_NULLCHARS
-/* 61*/ KBD_ASCII, I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
+/* 61*/ { KBD_ASCII, I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
 #else
-/* 61*/ KBD_ASCII, I, DFAULT,            DFAULT,            {S,1,C "\000"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
+/* 61*/ { KBD_ASCII, I, DFAULT,            DFAULT,            {S,1, { "\000" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
 #endif /* PCVT_NULLCHARS */
-/* 62*/ KBD_META,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 63*/ KBD_ASCII, I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 64*/ KBD_CTL,   I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 65*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 66*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 67*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 68*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 69*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 70*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 71*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 72*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 73*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 74*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 75*/ KBD_FUNC,  I, {S,4,C "\033[2~"}, {S,4,C "\033[2~"}, {S,4,C "\033[2~"}, DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 76*/ KBD_FUNC,  I, {S,4,C "\033[3~"}, {S,4,C "\033[3~"}, {S,4,C "\033[3~"}, DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 77*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 78*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 79*/ KBD_CURSOR,I, {S,4,C "\033[D"},  {S,4,C "\033OD"},  {S,4,C "\033[D"},  DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 80*/ KBD_FUNC,  I, {S,4,C "\033[1~"}, {S,4,C "\033[1~"}, {S,4,C "\033[1~"}, DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 81*/ KBD_FUNC,  I, {S,4,C "\033[4~"}, {S,4,C "\033[4~"}, {S,4,C "\033[4~"}, DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 82*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 83*/ KBD_CURSOR,I, {S,4,C "\033[A"},  {S,4,C "\033OA"},  {S,4,C "\033[A"},  DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 84*/ KBD_CURSOR,I, {S,4,C "\033[B"},  {S,4,C "\033OB"},  {S,4,C "\033[B"},  DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 85*/ KBD_FUNC,  I, {S,4,C "\033[5~"}, {S,4,C "\033[5~"}, {S,4,C "\033[5~"}, DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 86*/ KBD_FUNC,  I, {S,4,C "\033[6~"}, {S,4,C "\033[6~"}, {S,4,C "\033[6~"}, DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 87*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 88*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 89*/ KBD_CURSOR,I, {S,3,C "\033[C"},  {S,3,C "\033OC"},  {S,3,C "\033[C"},  DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 90*/ KBD_NUM,   I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 91*/ KBD_KP,    I, {S,1,C "7"},       {S,2,C "\033Ow"},  {S,1,C "7"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 92*/ KBD_KP,    I, {S,1,C "4"},       {S,2,C "\033Ot"},  {S,1,C "4"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 93*/ KBD_KP,    I, {S,1,C "1"},       {S,2,C "\033Oq"},  {S,1,C "1"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 94*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 95*/ KBD_KP,    I, {S,1,C "/"},       {S,1,C "/"},       {S,1,C "/"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 96*/ KBD_KP,    I, {S,1,C "8"},       {S,2,C "\033Ox"},  {S,1,C "8"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 97*/ KBD_KP,    I, {S,1,C "5"},       {S,2,C "\033Ou"},  {S,1,C "5"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 98*/ KBD_KP,    I, {S,1,C "2"},       {S,2,C "\033Or"},  {S,1,C "2"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/* 99*/ KBD_KP,    I, {S,1,C "0"},       {S,2,C "\033Op"},  {S,1,C "0"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*100*/ KBD_KP,    I, {S,1,C "*"},       {S,1,C "*"},       {S,1,C "*"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*101*/ KBD_KP,    I, {S,1,C "9"},       {S,2,C "\033Oy"},  {S,1,C "9"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*102*/ KBD_KP,    I, {S,1,C "6"},       {S,2,C "\033Ov"},  {S,1,C "6"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*103*/ KBD_KP,    I, {S,1,C "3"},       {S,2,C "\033Os"},  {S,1,C "3"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*104*/ KBD_KP,    I, {S,1,C "."},       {S,2,C "\033On"},  {S,1,C "."},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*105*/ KBD_KP,    I, {S,1,C "-"},       {S,2,C "\033Om"},  {S,1,C "-"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*106*/ KBD_KP,    I, {S,1,C "+"},       {S,1,C "+"},       {S,1,C "+"},       DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*107*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*108*/ KBD_RETURN,I, {S,1,C "\r"},      {S,2,C "\033OM"},  {S,1,C "\r"},      DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*109*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*110*/ KBD_ASCII, I, {S,1,C "\033"},    {S,2,C "\033"},    {S,1,C "\033"},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*111*/ KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*112*/ KBD_FUNC,  I, {F,0,V fkey1},     {F,0,V sfkey1},    {F,0,V cfkey1},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*113*/ KBD_FUNC,  I, {F,0,V fkey2},     {F,0,V sfkey2},    {F,0,V cfkey2},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*114*/ KBD_FUNC,  I, {F,0,V fkey3},     {F,0,V sfkey3},    {F,0,V cfkey3},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*115*/ KBD_FUNC,  I, {F,0,V fkey4},     {F,0,V sfkey4},    {F,0,V cfkey4},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*116*/ KBD_FUNC,  I, {F,0,V fkey5},     {F,0,V sfkey5},    {F,0,V cfkey5},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*117*/ KBD_FUNC,  I, {F,0,V fkey6},     {F,0,V sfkey6},    {F,0,V cfkey6},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*118*/ KBD_FUNC,  I, {F,0,V fkey7},     {F,0,V sfkey7},    {F,0,V cfkey7},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*119*/ KBD_FUNC,  I, {F,0,V fkey8},     {F,0,V sfkey8},    {F,0,V cfkey8},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*120*/ KBD_FUNC,  I, {F,0,V fkey9},     {F,0,V sfkey9},    {F,0,V cfkey9},    DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*121*/ KBD_FUNC,  I, {F,0,V fkey10},    {F,0,V sfkey10},   {F,0,V cfkey10},   DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*122*/ KBD_FUNC,  I, {F,0,V fkey11},    {F,0,V sfkey11},   {F,0,V cfkey11},   DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*123*/ KBD_FUNC,  I, {F,0,V fkey12},    {F,0,V sfkey12},   {F,0,V cfkey12},   DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*124*/ KBD_KP,    I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*125*/ KBD_SCROLL,I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*126*/ KBD_BREAK, I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
-/*127*/ KBD_FUNC,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,
+/* 62*/ { KBD_META,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 63*/ { KBD_ASCII, I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 64*/ { KBD_CTL,   I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 65*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 66*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 67*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 68*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 69*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 70*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 71*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 72*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 73*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 74*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 75*/ { KBD_FUNC,  I, {S,4, { "\033[2~" }}, {S,4, { "\033[2~" }}, {S,4, { "\033[2~" }}, DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 76*/ { KBD_FUNC,  I, {S,4, { "\033[3~" }}, {S,4, { "\033[3~" }}, {S,4, { "\033[3~" }}, DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 77*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 78*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 79*/ { KBD_CURSOR,I, {S,4, { "\033[D" }},  {S,4, { "\033OD" }},  {S,4, { "\033[D" }},  DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 80*/ { KBD_FUNC,  I, {S,4, { "\033[1~" }}, {S,4, { "\033[1~" }}, {S,4, { "\033[1~" }}, DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 81*/ { KBD_FUNC,  I, {S,4, { "\033[4~" }}, {S,4, { "\033[4~" }}, {S,4, { "\033[4~" }}, DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 82*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 83*/ { KBD_CURSOR,I, {S,4, { "\033[A" }},  {S,4, { "\033OA" }},  {S,4, { "\033[A" }},  DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 84*/ { KBD_CURSOR,I, {S,4, { "\033[B" }},  {S,4, { "\033OB" }},  {S,4, { "\033[B" }},  DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 85*/ { KBD_FUNC,  I, {S,4, { "\033[5~" }}, {S,4, { "\033[5~" }}, {S,4, { "\033[5~" }}, DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 86*/ { KBD_FUNC,  I, {S,4, { "\033[6~" }}, {S,4, { "\033[6~" }}, {S,4, { "\033[6~" }}, DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 87*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 88*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 89*/ { KBD_CURSOR,I, {S,3, { "\033[C" }},  {S,3, { "\033OC" }},  {S,3, { "\033[C" }},  DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 90*/ { KBD_NUM,   I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 91*/ { KBD_KP,    I, {S,1, { "7" }},       {S,2, { "\033Ow" }},  {S,1, { "7" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 92*/ { KBD_KP,    I, {S,1, { "4" }},       {S,2, { "\033Ot" }},  {S,1, { "4" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 93*/ { KBD_KP,    I, {S,1, { "1" }},       {S,2, { "\033Oq" }},  {S,1, { "1" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 94*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 95*/ { KBD_KP,    I, {S,1, { "/" }},       {S,1, { "/" }},       {S,1, { "/" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 96*/ { KBD_KP,    I, {S,1, { "8" }},       {S,2, { "\033Ox" }},  {S,1, { "8" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 97*/ { KBD_KP,    I, {S,1, { "5" }},       {S,2, { "\033Ou" }},  {S,1, { "5" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 98*/ { KBD_KP,    I, {S,1, { "2" }},       {S,2, { "\033Or" }},  {S,1, { "2" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/* 99*/ { KBD_KP,    I, {S,1, { "0" }},       {S,2, { "\033Op" }},  {S,1, { "0" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*100*/ { KBD_KP,    I, {S,1, { "*" }},       {S,1, { "*" }},       {S,1, { "*" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*101*/ { KBD_KP,    I, {S,1, { "9" }},       {S,2, { "\033Oy" }},  {S,1, { "9" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*102*/ { KBD_KP,    I, {S,1, { "6" }},       {S,2, { "\033Ov" }},  {S,1, { "6" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*103*/ { KBD_KP,    I, {S,1, { "3" }},       {S,2, { "\033Os" }},  {S,1, { "3" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*104*/ { KBD_KP,    I, {S,1, { "." }},       {S,2, { "\033On" }},  {S,1, { "." }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*105*/ { KBD_KP,    I, {S,1, { "-" }},       {S,2, { "\033Om" }},  {S,1, { "-" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*106*/ { KBD_KP,    I, {S,1, { "+" }},       {S,1, { "+" }},       {S,1, { "+" }},       DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*107*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*108*/ { KBD_RETURN,I, {S,1, { "\r" }},      {S,2, { "\033OM" }},  {S,1, { "\r" }},      DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*109*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*110*/ { KBD_ASCII, I, {S,1, { "\033" }},    {S,2, { "\033" }},    {S,1, { "\033" }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*111*/ { KBD_NONE,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*112*/ { KBD_FUNC,  I, {F,0, { C fkey1 }},     {F,0, { C sfkey1 }},    {F,0, { C cfkey1 }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*113*/ { KBD_FUNC,  I, {F,0, { C fkey2 }},     {F,0, { C sfkey2 }},    {F,0, { C cfkey2 }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*114*/ { KBD_FUNC,  I, {F,0, { C fkey3 }},     {F,0, { C sfkey3 }},    {F,0, { C cfkey3 }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*115*/ { KBD_FUNC,  I, {F,0, { C fkey4 }},     {F,0, { C sfkey4 }},    {F,0, { C cfkey4 }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*116*/ { KBD_FUNC,  I, {F,0, { C fkey5 }},     {F,0, { C sfkey5 }},    {F,0, { C cfkey5 }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*117*/ { KBD_FUNC,  I, {F,0, { C fkey6 }},     {F,0, { C sfkey6 }},    {F,0, { C cfkey6 }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*118*/ { KBD_FUNC,  I, {F,0, { C fkey7 }},     {F,0, { C sfkey7 }},    {F,0, { C cfkey7 }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*119*/ { KBD_FUNC,  I, {F,0, { C fkey8 }},     {F,0, { C sfkey8 }},    {F,0, { C cfkey8 }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*120*/ { KBD_FUNC,  I, {F,0, { C fkey9 }},     {F,0, { C sfkey9 }},    {F,0, { C cfkey9 }},    DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*121*/ { KBD_FUNC,  I, {F,0, { C fkey10 }},    {F,0, { C sfkey10 }},   {F,0, { C cfkey10 }},   DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*122*/ { KBD_FUNC,  I, {F,0, { C fkey11 }},    {F,0, { C sfkey11 }},   {F,0, { C cfkey11 }},   DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*123*/ { KBD_FUNC,  I, {F,0, { C fkey12 }},    {F,0, { C sfkey12 }},   {F,0, { C cfkey12 }},   DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*124*/ { KBD_KP,    I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*125*/ { KBD_SCROLL,I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*126*/ { KBD_BREAK, I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
+/*127*/ { KBD_FUNC,  I, DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT,            DFAULT },
 
 #undef C
 #undef U
@@ -368,138 +368,138 @@ static Keycap_def       key2ascii[] =
 
 /*      type   index   unshift        shift           ctrl         */
 /*      ---------------------------------------------------------- */
-/*  0*/ KBD_NONE,  I, {S,C "df"},    {S,C ""},      {S,C ""},
-/*  1*/ KBD_ASCII, I, {S,C "`"},     {S,C "~"},     {S,C "`"},
-/*  2*/ KBD_ASCII, I, {S,C "1"},     {S,C "!"},     {S,C "1"},
-/*  3*/ KBD_ASCII, I, {S,C "2"},     {S,C "@"},     {S,C "\000"},
-/*  4*/ KBD_ASCII, I, {S,C "3"},     {S,C "#"},     {S,C "3"},
-/*  5*/ KBD_ASCII, I, {S,C "4"},     {S,C "$"},     {S,C "4"},
-/*  6*/ KBD_ASCII, I, {S,C "5"},     {S,C "%"},     {S,C "5"},
-/*  7*/ KBD_ASCII, I, {S,C "6"},     {S,C "^"},     {S,C "\036"},
-/*  8*/ KBD_ASCII, I, {S,C "7"},     {S,C "&"},     {S,C "7"},
-/*  9*/ KBD_ASCII, I, {S,C "8"},     {S,C "*"},     {S,C "9"},
-/* 10*/ KBD_ASCII, I, {S,C "9"},     {S,C "("},     {S,C "9"},
-/* 11*/ KBD_ASCII, I, {S,C "0"},     {S,C ")"},     {S,C "0"},
-/* 12*/ KBD_ASCII, I, {S,C "-"},     {S,C "_"},     {S,C "\037"},
-/* 13*/ KBD_ASCII, I, {S,C "="},     {S,C "+"},     {S,C "="},
-/* 14*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 15*/ KBD_ASCII, I, {S,C "\177"},  {S,C "\010"},  {S,C "\177"}, /* BS */
-/* 16*/ KBD_ASCII, I, {S,C "\t"},    {S,C "\t"},    {S,C "\t"},   /* TAB */
-/* 17*/ KBD_ASCII, I, {S,C "q"},     {S,C "Q"},     {S,C "\021"},
-/* 18*/ KBD_ASCII, I, {S,C "w"},     {S,C "W"},     {S,C "\027"},
-/* 19*/ KBD_ASCII, I, {S,C "e"},     {S,C "E"},     {S,C "\005"},
-/* 20*/ KBD_ASCII, I, {S,C "r"},     {S,C "R"},     {S,C "\022"},
-/* 21*/ KBD_ASCII, I, {S,C "t"},     {S,C "T"},     {S,C "\024"},
-/* 22*/ KBD_ASCII, I, {S,C "y"},     {S,C "Y"},     {S,C "\031"},
-/* 23*/ KBD_ASCII, I, {S,C "u"},     {S,C "U"},     {S,C "\025"},
-/* 24*/ KBD_ASCII, I, {S,C "i"},     {S,C "I"},     {S,C "\011"},
-/* 25*/ KBD_ASCII, I, {S,C "o"},     {S,C "O"},     {S,C "\017"},
-/* 26*/ KBD_ASCII, I, {S,C "p"},     {S,C "P"},     {S,C "\020"},
-/* 27*/ KBD_ASCII, I, {S,C "["},     {S,C "{"},     {S,C "\033"},
-/* 28*/ KBD_ASCII, I, {S,C "]"},     {S,C "}"},     {S,C "\035"},
-/* 29*/ KBD_ASCII, I, {S,C "\\"},    {S,C "|"},     {S,C "\034"},
-/* 30*/ KBD_CAPS,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 31*/ KBD_ASCII, I, {S,C "a"},     {S,C "A"},     {S,C "\001"},
-/* 32*/ KBD_ASCII, I, {S,C "s"},     {S,C "S"},     {S,C "\023"},
-/* 33*/ KBD_ASCII, I, {S,C "d"},     {S,C "D"},     {S,C "\004"},
-/* 34*/ KBD_ASCII, I, {S,C "f"},     {S,C "F"},     {S,C "\006"},
-/* 35*/ KBD_ASCII, I, {S,C "g"},     {S,C "G"},     {S,C "\007"},
-/* 36*/ KBD_ASCII, I, {S,C "h"},     {S,C "H"},     {S,C "\010"},
-/* 37*/ KBD_ASCII, I, {S,C "j"},     {S,C "J"},     {S,C "\n"},
-/* 38*/ KBD_ASCII, I, {S,C "k"},     {S,C "K"},     {S,C "\013"},
-/* 39*/ KBD_ASCII, I, {S,C "l"},     {S,C "L"},     {S,C "\014"},
-/* 40*/ KBD_ASCII, I, {S,C ";"},     {S,C ":"},     {S,C ";"},
-/* 41*/ KBD_ASCII, I, {S,C "'"},     {S,C "\""},    {S,C "'"},
-/* 42*/ KBD_ASCII, I, {S,C "\\"},    {S,C "|"},     {S,C "\034"}, /* special */
-/* 43*/ KBD_RETURN,I, {S,C "\r"},    {S,C "\r"},    {S,C "\r"},    /* RETURN */
-/* 44*/ KBD_SHIFT, I, {S,C ""},      {S,C ""},      {S,C ""},  /* SHIFT left */
-/* 45*/ KBD_ASCII, I, {S,C "<"},     {S,C ">"},     {S,C ""},
-/* 46*/ KBD_ASCII, I, {S,C "z"},     {S,C "Z"},     {S,C "\032"},
-/* 47*/ KBD_ASCII, I, {S,C "x"},     {S,C "X"},     {S,C "\030"},
-/* 48*/ KBD_ASCII, I, {S,C "c"},     {S,C "C"},     {S,C "\003"},
-/* 49*/ KBD_ASCII, I, {S,C "v"},     {S,C "V"},     {S,C "\026"},
-/* 50*/ KBD_ASCII, I, {S,C "b"},     {S,C "B"},     {S,C "\002"},
-/* 51*/ KBD_ASCII, I, {S,C "n"},     {S,C "N"},     {S,C "\016"},
-/* 52*/ KBD_ASCII, I, {S,C "m"},     {S,C "M"},     {S,C "\r"},
-/* 53*/ KBD_ASCII, I, {S,C ","},     {S,C "<"},     {S,C ","},
-/* 54*/ KBD_ASCII, I, {S,C "."},     {S,C ">"},     {S,C "."},
-/* 55*/ KBD_ASCII, I, {S,C "/"},     {S,C "?"},     {S,C "/"},
-/* 56*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 57*/ KBD_SHIFT, I, {S,C ""},      {S,C ""},      {S,C ""}, /* SHIFT right */
-/* 58*/ KBD_CTL,   I, {S,C ""},      {S,C ""},      {S,C ""},    /* CTL left */
-/* 59*/ KBD_ASCII, I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 60*/ KBD_META,  I, {S,C ""},      {S,C ""},      {S,C ""},    /* ALT left */
+/*  0*/ { KBD_NONE,  I, {S, { "df" }},    {S, { "" }},      {S, { "" }} },
+/*  1*/ { KBD_ASCII, I, {S, { "`" }},     {S, { "~" }},     {S, { "`" }} },
+/*  2*/ { KBD_ASCII, I, {S, { "1" }},     {S, { "!" }},     {S, { "1" }} },
+/*  3*/ { KBD_ASCII, I, {S, { "2" }},     {S, { "@" }},     {S, { "\000" }} },
+/*  4*/ { KBD_ASCII, I, {S, { "3" }},     {S, { "#" }},     {S, { "3" }} },
+/*  5*/ { KBD_ASCII, I, {S, { "4" }},     {S, { "$" }},     {S, { "4" }} },
+/*  6*/ { KBD_ASCII, I, {S, { "5" }},     {S, { "%" }},     {S, { "5" }} },
+/*  7*/ { KBD_ASCII, I, {S, { "6" }},     {S, { "^" }},     {S, { "\036" }} },
+/*  8*/ { KBD_ASCII, I, {S, { "7" }},     {S, { "&" }},     {S, { "7" }} },
+/*  9*/ { KBD_ASCII, I, {S, { "8" }},     {S, { "*" }},     {S, { "9" }} },
+/* 10*/ { KBD_ASCII, I, {S, { "9" }},     {S, { "(" }},     {S, { "9" }} },
+/* 11*/ { KBD_ASCII, I, {S, { "0" }},     {S, { ")" }},     {S, { "0" }} },
+/* 12*/ { KBD_ASCII, I, {S, { "-" }},     {S, { "_" }},     {S, { "\037" }} },
+/* 13*/ { KBD_ASCII, I, {S, { "=" }},     {S, { "+" }},     {S, { "=" }} },
+/* 14*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 15*/ { KBD_ASCII, I, {S, { "\177" }},  {S, { "\010" }},  {S, { "\177" }} }, /* BS */
+/* 16*/ { KBD_ASCII, I, {S, { "\t" }},    {S, { "\t" }},    {S, { "\t" }} },   /* TAB */
+/* 17*/ { KBD_ASCII, I, {S, { "q" }},     {S, { "Q" }},     {S, { "\021" }} },
+/* 18*/ { KBD_ASCII, I, {S, { "w" }},     {S, { "W" }},     {S, { "\027" }} },
+/* 19*/ { KBD_ASCII, I, {S, { "e" }},     {S, { "E" }},     {S, { "\005" }} },
+/* 20*/ { KBD_ASCII, I, {S, { "r" }},     {S, { "R" }},     {S, { "\022" }} },
+/* 21*/ { KBD_ASCII, I, {S, { "t" }},     {S, { "T" }},     {S, { "\024" }} },
+/* 22*/ { KBD_ASCII, I, {S, { "y" }},     {S, { "Y" }},     {S, { "\031" }} },
+/* 23*/ { KBD_ASCII, I, {S, { "u" }},     {S, { "U" }},     {S, { "\025" }} },
+/* 24*/ { KBD_ASCII, I, {S, { "i" }},     {S, { "I" }},     {S, { "\011" }} },
+/* 25*/ { KBD_ASCII, I, {S, { "o" }},     {S, { "O" }},     {S, { "\017" }} },
+/* 26*/ { KBD_ASCII, I, {S, { "p" }},     {S, { "P" }},     {S, { "\020" }} },
+/* 27*/ { KBD_ASCII, I, {S, { "[" }},     {S, { "{" }},     {S, { "\033" }} },
+/* 28*/ { KBD_ASCII, I, {S, { "]" }},     {S, { "}" }},     {S, { "\035" }} },
+/* 29*/ { KBD_ASCII, I, {S, { "\\" }},    {S, { "|" }},     {S, { "\034" }} },
+/* 30*/ { KBD_CAPS,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 31*/ { KBD_ASCII, I, {S, { "a" }},     {S, { "A" }},     {S, { "\001" }} },
+/* 32*/ { KBD_ASCII, I, {S, { "s" }},     {S, { "S" }},     {S, { "\023" }} },
+/* 33*/ { KBD_ASCII, I, {S, { "d" }},     {S, { "D" }},     {S, { "\004" }} },
+/* 34*/ { KBD_ASCII, I, {S, { "f" }},     {S, { "F" }},     {S, { "\006" }} },
+/* 35*/ { KBD_ASCII, I, {S, { "g" }},     {S, { "G" }},     {S, { "\007" }} },
+/* 36*/ { KBD_ASCII, I, {S, { "h" }},     {S, { "H" }},     {S, { "\010" }} },
+/* 37*/ { KBD_ASCII, I, {S, { "j" }},     {S, { "J" }},     {S, { "\n" }} },
+/* 38*/ { KBD_ASCII, I, {S, { "k" }},     {S, { "K" }},     {S, { "\013" }} },
+/* 39*/ { KBD_ASCII, I, {S, { "l" }},     {S, { "L" }},     {S, { "\014" }} },
+/* 40*/ { KBD_ASCII, I, {S, { ";" }},     {S, { ":" }},     {S, { ";" }} },
+/* 41*/ { KBD_ASCII, I, {S, { "'" }},     {S, { "\"" }},    {S, { "'" }} },
+/* 42*/ { KBD_ASCII, I, {S, { "\\" }},    {S, { "|" }},     {S, { "\034" }} }, /* special */
+/* 43*/ { KBD_RETURN,I, {S, { "\r" }},    {S, { "\r" }},    {S, { "\r" }} },    /* RETURN */
+/* 44*/ { KBD_SHIFT, I, {S, { "" }},      {S, { "" }},      {S, { "" }} },  /* SHIFT left */
+/* 45*/ { KBD_ASCII, I, {S, { "<" }},     {S, { ">" }},     {S, { "" }} },
+/* 46*/ { KBD_ASCII, I, {S, { "z" }},     {S, { "Z" }},     {S, { "\032" }} },
+/* 47*/ { KBD_ASCII, I, {S, { "x" }},     {S, { "X" }},     {S, { "\030" }} },
+/* 48*/ { KBD_ASCII, I, {S, { "c" }},     {S, { "C" }},     {S, { "\003" }} },
+/* 49*/ { KBD_ASCII, I, {S, { "v" }},     {S, { "V" }},     {S, { "\026" }} },
+/* 50*/ { KBD_ASCII, I, {S, { "b" }},     {S, { "B" }},     {S, { "\002" }} },
+/* 51*/ { KBD_ASCII, I, {S, { "n" }},     {S, { "N" }},     {S, { "\016" }} },
+/* 52*/ { KBD_ASCII, I, {S, { "m" }},     {S, { "M" }},     {S, { "\r" }} },
+/* 53*/ { KBD_ASCII, I, {S, { "," }},     {S, { "<" }},     {S, { "," }} },
+/* 54*/ { KBD_ASCII, I, {S, { "." }},     {S, { ">" }},     {S, { "." }} },
+/* 55*/ { KBD_ASCII, I, {S, { "/" }},     {S, { "?" }},     {S, { "/" }} },
+/* 56*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 57*/ { KBD_SHIFT, I, {S, { "" }},      {S, { "" }},      {S, { "" }} }, /* SHIFT right */
+/* 58*/ { KBD_CTL,   I, {S, { "" }},      {S, { "" }},      {S, { "" }} },    /* CTL left */
+/* 59*/ { KBD_ASCII, I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 60*/ { KBD_META,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },    /* ALT left */
 #if !PCVT_NULLCHARS
-/* 61*/ KBD_ASCII, I, {S,C " "},     {S,C " "},     {S,C " "},      /* SPACE */
+/* 61*/ { KBD_ASCII, I, {S, { " " }},     {S, { " " }},     {S, { " " }} },      /* SPACE */
 #else
-/* 61*/ KBD_ASCII, I, {S,C " "},     {S,C " "},     {S,C "\000"},   /* SPACE */
+/* 61*/ { KBD_ASCII, I, {S, { " " }},     {S, { " " }},     {S, { "\000" }} },   /* SPACE */
 #endif /* PCVT_NULLCHARS */
-/* 62*/ KBD_META,  I, {S,C ""},      {S,C ""},      {S,C ""},   /* ALT right */
-/* 63*/ KBD_ASCII, I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 64*/ KBD_CTL,   I, {S,C ""},      {S,C ""},      {S,C ""},   /* CTL right */
-/* 65*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 66*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 67*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 68*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 69*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 70*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 71*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 72*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 73*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 74*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 75*/ KBD_FUNC,  I, {S,C "\033[2~"},{S,C "\033[2~"},{S,C "\033[2~"},/* INS */
-/* 76*/ KBD_FUNC,  I, {S,C "\033[3~"},{S,C "\033[3~"},{S,C "\033[3~"},/* DEL */
-/* 77*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 78*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 79*/ KBD_CURSOR,I, {S,C "\033[D"},{S,C "\033OD"},{S,C "\033[D"}, /* CU <- */
-/* 80*/ KBD_FUNC,  I, {S,C "\033[1~"},{S,C "\033[1~"},{S,C "\033[1~"},/* HOME = FIND*/
-/* 81*/ KBD_FUNC,  I, {S,C "\033[4~"},{S,C "\033[4~"},{S,C "\033[4~"},/* END = SELECT */
-/* 82*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 83*/ KBD_CURSOR,I, {S,C "\033[A"},{S,C "\033OA"},{S,C "\033[A"}, /* CU ^ */
-/* 84*/ KBD_CURSOR,I, {S,C "\033[B"},{S,C "\033OB"},{S,C "\033[B"}, /* CU v */
-/* 85*/ KBD_FUNC,  I, {S,C "\033[5~"},{S,C "\033[5~"},{S,C "\033[5~"},/*PG UP*/
-/* 86*/ KBD_FUNC,  I, {S,C "\033[6~"},{S,C "\033[6~"},{S,C "\033[6~"},/*PG DN*/
-/* 87*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 88*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 89*/ KBD_CURSOR,I, {S,C "\033[C"},{S,C "\033OC"},{S,C "\033[C"}, /* CU -> */
-/* 90*/ KBD_NUM,   I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 91*/ KBD_KP,    I, {S,C "7"},     {S,C "\033Ow"},{S,C "7"},
-/* 92*/ KBD_KP,    I, {S,C "4"},     {S,C "\033Ot"},{S,C "4"},
-/* 93*/ KBD_KP,    I, {S,C "1"},     {S,C "\033Oq"},{S,C "1"},
-/* 94*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/* 95*/ KBD_KP,    I, {S,C "/"},     {S,C "/"},     {S,C "/"},
-/* 96*/ KBD_KP,    I, {S,C "8"},     {S,C "\033Ox"},{S,C "8"},
-/* 97*/ KBD_KP,    I, {S,C "5"},     {S,C "\033Ou"},{S,C "5"},
-/* 98*/ KBD_KP,    I, {S,C "2"},     {S,C "\033Or"},{S,C "2"},
-/* 99*/ KBD_KP,    I, {S,C "0"},     {S,C "\033Op"},{S,C "0"},
-/*100*/ KBD_KP,    I, {S,C "*"},     {S,C "*"},     {S,C "*"},
-/*101*/ KBD_KP,    I, {S,C "9"},     {S,C "\033Oy"},{S,C "9"},
-/*102*/ KBD_KP,    I, {S,C "6"},     {S,C "\033Ov"},{S,C "6"},
-/*103*/ KBD_KP,    I, {S,C "3"},     {S,C "\033Os"},{S,C "3"},
-/*104*/ KBD_KP,    I, {S,C "."},     {S,C "\033On"},{S,C "."},
-/*105*/ KBD_KP,    I, {S,C "-"},     {S,C "\033Om"},{S,C "-"},
-/*106*/ KBD_KP,    I, {S,C "+"},     {S,C "+"},     {S,C "+"},
-/*107*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/*108*/ KBD_RETURN,I, {S,C "\r"},    {S,C "\033OM"},{S,C "\r"},  /* KP ENTER */
-/*109*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/*110*/ KBD_ASCII, I, {S,C "\033"},  {S,C "\033"},  {S,C "\033"},
-/*111*/ KBD_NONE,  I, {S,C ""},      {S,C ""},      {S,C ""},
-/*112*/ KBD_FUNC,  I, {F,V fkey1},   {F,V sfkey1},  {F,V cfkey1},  /* F1 */
-/*113*/ KBD_FUNC,  I, {F,V fkey2},   {F,V sfkey2},  {F,V cfkey2},  /* F2 */
-/*114*/ KBD_FUNC,  I, {F,V fkey3},   {F,V sfkey3},  {F,V cfkey3},  /* F3 */
-/*115*/ KBD_FUNC,  I, {F,V fkey4},   {F,V sfkey4},  {F,V cfkey4},  /* F4 */
-/*116*/ KBD_FUNC,  I, {F,V fkey5},   {F,V sfkey5},  {F,V cfkey5},  /* F5 */
-/*117*/ KBD_FUNC,  I, {F,V fkey6},   {F,V sfkey6},  {F,V cfkey6},  /* F6 */
-/*118*/ KBD_FUNC,  I, {F,V fkey7},   {F,V sfkey7},  {F,V cfkey7},  /* F7 */
-/*119*/ KBD_FUNC,  I, {F,V fkey8},   {F,V sfkey8},  {F,V cfkey8},  /* F8 */
-/*120*/ KBD_FUNC,  I, {F,V fkey9},   {F,V sfkey9},  {F,V cfkey9},  /* F9 */
-/*121*/ KBD_FUNC,  I, {F,V fkey10},  {F,V sfkey10}, {F,V cfkey10}, /* F10 */
-/*122*/ KBD_FUNC,  I, {F,V fkey11},  {F,V sfkey11}, {F,V cfkey11}, /* F11 */
-/*123*/ KBD_FUNC,  I, {F,V fkey12},  {F,V sfkey12}, {F,V cfkey12}, /* F12 */
-/*124*/ KBD_KP,    I, {S,C ""},      {S,C ""},      {S,C ""},
-/*125*/ KBD_SCROLL,I, {S,C ""},      {S,C ""},      {S,C ""},
-/*126*/ KBD_BREAK, I, {S,C ""},      {S,C ""},      {S,C ""},
-/*127*/ KBD_FUNC,  I, {S,C ""},      {S,C ""},      {S,C ""},      /* SysRq */
+/* 62*/ { KBD_META,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },   /* ALT right */
+/* 63*/ { KBD_ASCII, I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 64*/ { KBD_CTL,   I, {S, { "" }},      {S, { "" }},      {S, { "" }} },   /* CTL right */
+/* 65*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 66*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 67*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 68*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 69*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 70*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 71*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 72*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 73*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 74*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 75*/ { KBD_FUNC,  I, {S, { "\033[2~" }},{S, { "\033[2~" }},{S, { "\033[2~" }} },/* INS */
+/* 76*/ { KBD_FUNC,  I, {S, { "\033[3~" }},{S, { "\033[3~" }},{S, { "\033[3~" }} },/* DEL */
+/* 77*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 78*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 79*/ { KBD_CURSOR,I, {S, { "\033[D" }},{S, { "\033OD" }},{S, { "\033[D" }} }, /* CU <- */
+/* 80*/ { KBD_FUNC,  I, {S, { "\033[1~" }},{S, { "\033[1~" }},{S, { "\033[1~" }} },/* HOME = FIND*/
+/* 81*/ { KBD_FUNC,  I, {S, { "\033[4~" }},{S, { "\033[4~" }},{S, { "\033[4~" }} },/* END = SELECT */
+/* 82*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 83*/ { KBD_CURSOR,I, {S, { "\033[A" }},{S, { "\033OA" }},{S, { "\033[A" }} }, /* CU ^ */
+/* 84*/ { KBD_CURSOR,I, {S, { "\033[B" }},{S, { "\033OB" }},{S, { "\033[B" }} }, /* CU v */
+/* 85*/ { KBD_FUNC,  I, {S, { "\033[5~" }},{S, { "\033[5~" }},{S, { "\033[5~" }} },/*PG UP*/
+/* 86*/ { KBD_FUNC,  I, {S, { "\033[6~" }},{S, { "\033[6~" }},{S, { "\033[6~" }} },/*PG DN*/
+/* 87*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 88*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 89*/ { KBD_CURSOR,I, {S, { "\033[C" }},{S, { "\033OC" }},{S, { "\033[C" }} }, /* CU -> */
+/* 90*/ { KBD_NUM,   I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 91*/ { KBD_KP,    I, {S, { "7" }},     {S, { "\033Ow" }},{S, { "7" }} },
+/* 92*/ { KBD_KP,    I, {S, { "4" }},     {S, { "\033Ot" }},{S, { "4" }} },
+/* 93*/ { KBD_KP,    I, {S, { "1" }},     {S, { "\033Oq" }},{S, { "1" }} },
+/* 94*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/* 95*/ { KBD_KP,    I, {S, { "/" }},     {S, { "/" }},     {S, { "/" }} },
+/* 96*/ { KBD_KP,    I, {S, { "8" }},     {S, { "\033Ox" }},{S, { "8" }} },
+/* 97*/ { KBD_KP,    I, {S, { "5" }},     {S, { "\033Ou" }},{S, { "5" }} },
+/* 98*/ { KBD_KP,    I, {S, { "2" }},     {S, { "\033Or" }},{S, { "2" }} },
+/* 99*/ { KBD_KP,    I, {S, { "0" }},     {S, { "\033Op" }},{S, { "0" }} },
+/*100*/ { KBD_KP,    I, {S, { "*" }},     {S, { "*" }},     {S, { "*" }} },
+/*101*/ { KBD_KP,    I, {S, { "9" }},     {S, { "\033Oy" }},{S, { "9" }} },
+/*102*/ { KBD_KP,    I, {S, { "6" }},     {S, { "\033Ov" }},{S, { "6" }} },
+/*103*/ { KBD_KP,    I, {S, { "3" }},     {S, { "\033Os" }},{S, { "3" }} },
+/*104*/ { KBD_KP,    I, {S, { "." }},     {S, { "\033On" }},{S, { "." }} },
+/*105*/ { KBD_KP,    I, {S, { "-" }},     {S, { "\033Om" }},{S, { "-" }} },
+/*106*/ { KBD_KP,    I, {S, { "+" }},     {S, { "+" }},     {S, { "+" }} },
+/*107*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/*108*/ { KBD_RETURN,I, {S, { "\r" }},    {S, { "\033OM" }},{S, { "\r" }} },  /* KP ENTER */
+/*109*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/*110*/ { KBD_ASCII, I, {S, { "\033" }},  {S, { "\033" }},  {S, { "\033" }} },
+/*111*/ { KBD_NONE,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/*112*/ { KBD_FUNC,  I, {F, { C fkey1 }},   {F, { C sfkey1 }},  {F, { C cfkey1 }} },  /* F1 */
+/*113*/ { KBD_FUNC,  I, {F, { C fkey2 }},   {F, { C sfkey2 }},  {F, { C cfkey2 }} },  /* F2 */
+/*114*/ { KBD_FUNC,  I, {F, { C fkey3 }},   {F, { C sfkey3 }},  {F, { C cfkey3 }} },  /* F3 */
+/*115*/ { KBD_FUNC,  I, {F, { C fkey4 }},   {F, { C sfkey4 }},  {F, { C cfkey4 }} },  /* F4 */
+/*116*/ { KBD_FUNC,  I, {F, { C fkey5 }},   {F, { C sfkey5 }},  {F, { C cfkey5 }} },  /* F5 */
+/*117*/ { KBD_FUNC,  I, {F, { C fkey6 }},   {F, { C sfkey6 }},  {F, { C cfkey6 }} },  /* F6 */
+/*118*/ { KBD_FUNC,  I, {F, { C fkey7 }},   {F, { C sfkey7 }},  {F, { C cfkey7 }} },  /* F7 */
+/*119*/ { KBD_FUNC,  I, {F, { C fkey8 }},   {F, { C sfkey8 }},  {F, { C cfkey8 }} },  /* F8 */
+/*120*/ { KBD_FUNC,  I, {F, { C fkey9 }},   {F, { C sfkey9 }},  {F, { C cfkey9 }} },  /* F9 */
+/*121*/ { KBD_FUNC,  I, {F, { C fkey10 }},  {F, { C sfkey10 }}, {F, { C cfkey10 }} }, /* F10 */
+/*122*/ { KBD_FUNC,  I, {F, { C fkey11 }},  {F, { C sfkey11 }}, {F, { C cfkey11 }} }, /* F11 */
+/*123*/ { KBD_FUNC,  I, {F, { C fkey12 }},  {F, { C sfkey12 }}, {F, { C cfkey12 }} }, /* F12 */
+/*124*/ { KBD_KP,    I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/*125*/ { KBD_SCROLL,I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/*126*/ { KBD_BREAK, I, {S, { "" }},      {S, { "" }},      {S, { "" }} },
+/*127*/ { KBD_FUNC,  I, {S, { "" }},      {S, { "" }},      {S, { "" }} },      /* SysRq */
 
 #undef C
 #undef V
index 167dd8f..cdee550 100644 (file)
@@ -76,6 +76,7 @@ static void check_scroll ( struct video_state *svsp );
 static void hp_entry ( U_char ch, struct video_state *svsp );
 static void wrfkl ( int num, u_char *string, struct video_state *svsp );
 static void writefkl ( int num, u_char *string, struct video_state *svsp );
+static __inline void write_char (struct        video_state *, u_short, u_short ch);
 
 
 /*---------------------------------------------------------------------------*
@@ -171,7 +172,7 @@ sput (u_char *s, U_char kernel, int len, int page)
     attrib = kernel ? kern_attr : svsp->c_attr;
 
     while (len-- > 0)
-    if (ch = (*(s++)))
+    if ((ch = (*(s++))) != 0)
     {
        if(svsp->sevenbit)
                ch &= 0x7f;
index a7b07df..0120048 100644 (file)
@@ -1,5 +1,5 @@
-/*     $OpenBSD: fd.c,v 1.13 1996/04/21 22:16:52 deraadt Exp $ */
-/*     $NetBSD: fd.c,v 1.87 1996/04/11 22:15:16 cgd Exp $      */
+/*     $OpenBSD: fd.c,v 1.14 1996/05/07 07:22:16 deraadt Exp $ */
+/*     $NetBSD: fd.c,v 1.88 1996/05/03 19:14:53 christos Exp $ */
 
 /*-
  * Copyright (c) 1993, 1994, 1995 Charles Hannum.
@@ -43,7 +43,6 @@
 #include <sys/param.h>
 #include <sys/systm.h>
 #include <sys/kernel.h>
-#include <sys/conf.h>
 #include <sys/file.h>
 #include <sys/ioctl.h>
 #include <sys/device.h>
@@ -57,6 +56,7 @@
 
 #include <machine/cpu.h>
 #include <machine/pio.h>
+#include <machine/conf.h>
 
 #include <dev/isa/isavar.h>
 #include <dev/isa/isadmavar.h>
@@ -107,6 +107,7 @@ struct fdc_softc {
 
 /* controller driver configuration */
 int fdcprobe __P((struct device *, void *, void *));
+int fdprint __P((void *, char *));
 #ifdef NEWCONFIG
 void fdcforceintr __P((void *));
 #endif
@@ -211,6 +212,7 @@ void fdcpseudointr __P((void *arg));
 int fdcintr __P((void *));
 void fdcretry __P((struct fdc_softc *fdc));
 void fdfinish __P((struct fd_softc *fd, struct buf *bp));
+__inline struct fd_type *fd_dev_to_type __P((struct fd_softc *, dev_t));
 
 int
 fdcprobe(parent, match, aux)
@@ -463,7 +465,7 @@ fd_nvtotype(fdc, nvraminfo, drive)
        }
 }
 
-inline struct fd_type *
+__inline struct fd_type *
 fd_dev_to_type(fd, dev)
        struct fd_softc *fd;
        dev_t dev;
@@ -595,18 +597,20 @@ fdfinish(fd, bp)
 }
 
 int
-fdread(dev, uio)
+fdread(dev, uio, flags)
        dev_t dev;
        struct uio *uio;
+       int flags;
 {
 
        return (physio(fdstrategy, NULL, dev, B_READ, minphys, uio));
 }
 
 int
-fdwrite(dev, uio)
+fdwrite(dev, uio, flags)
        dev_t dev;
        struct uio *uio;
+       int flags;
 {
 
        return (physio(fdstrategy, NULL, dev, B_WRITE, minphys, uio));
@@ -621,7 +625,7 @@ fd_set_motor(fdc, reset)
        u_char status;
        int n;
 
-       if (fd = fdc->sc_drives.tqh_first)
+       if ((fd = fdc->sc_drives.tqh_first) != NULL)
                status = fd->sc_drive;
        else
                status = 0;
@@ -704,9 +708,11 @@ out_fdc(iobase, x)
 }
 
 int
-Fdopen(dev, flags)
+fdopen(dev, flags, mode, p)
        dev_t dev;
        int flags;
+       int mode;
+       struct proc *p;
 {
        int unit;
        struct fd_softc *fd;
@@ -734,9 +740,11 @@ Fdopen(dev, flags)
 }
 
 int
-fdclose(dev, flags)
+fdclose(dev, flags, mode, p)
        dev_t dev;
        int flags;
+       int mode;
+       struct proc *p;
 {
        struct fd_softc *fd = fd_cd.cd_devs[FDUNIT(dev)];
 
@@ -767,7 +775,6 @@ fdcstatus(dv, n, s)
        char *s;
 {
        struct fdc_softc *fdc = (void *)dv->dv_parent;
-       int iobase = fdc->sc_iobase;
 
        if (n == 0) {
                out_fdc(fdc->sc_iobase, NE7CMD_SENSEI);
@@ -843,7 +850,7 @@ fdcintr(arg)
        struct fd_softc *fd;
        struct buf *bp;
        int iobase = fdc->sc_iobase;
-       int read, head, trac, sec, i, s, nblks;
+       int read, head, sec, i, nblks;
        struct fd_type *type;
 
 loop:
@@ -1171,11 +1178,12 @@ fddump(dev, blkno, va, size)
 }
 
 int
-fdioctl(dev, cmd, addr, flag)
+fdioctl(dev, cmd, addr, flag, p)
        dev_t dev;
        u_long cmd;
        caddr_t addr;
        int flag;
+       struct proc *p;
 {
        struct fd_softc *fd = fd_cd.cd_devs[FDUNIT(dev)];
        struct disklabel buffer;