get rid of u_error uses
authorMike Hibler <hibler@ucbvax.Berkeley.EDU>
Sat, 23 Jun 1990 00:26:27 +0000 (16:26 -0800)
committerMike Hibler <hibler@ucbvax.Berkeley.EDU>
Sat, 23 Jun 1990 00:26:27 +0000 (16:26 -0800)
SCCS-vsn: sys/hp/dev/grf.c 7.4
SCCS-vsn: sys/hp/dev/hil.c 7.4

usr/src/sys/hp/dev/grf.c
usr/src/sys/hp/dev/hil.c

index 34fb97e..9c10775 100644 (file)
@@ -11,7 +11,7 @@
  *
  * from: Utah $Hdr: grf.c 1.28 89/08/14$
  *
  *
  * from: Utah $Hdr: grf.c 1.28 89/08/14$
  *
- *     @(#)grf.c       7.3 (Berkeley) %G%
+ *     @(#)grf.c       7.4 (Berkeley) %G%
  */
 
 /*
  */
 
 /*
@@ -327,12 +327,9 @@ grflock(gp, block)
                        return(EAGAIN);
                do {
                        gp->g_flags |= GF_WANTED;
                        return(EAGAIN);
                do {
                        gp->g_flags |= GF_WANTED;
-                       sleep((caddr_t)&gp->g_flags, PZERO+1);
-
                        if (error = tsleep((caddr_t)&gp->g_flags,
                                           (PZERO+1) | PCATCH, devioc, 0))
                                return (error);
                        if (error = tsleep((caddr_t)&gp->g_flags,
                                           (PZERO+1) | PCATCH, devioc, 0))
                                return (error);
-
                } while (gp->g_lockp);
        }
        gp->g_lockp = p;
                } while (gp->g_lockp);
        }
        gp->g_lockp = p;
@@ -461,8 +458,17 @@ hpuxgrfioctl(dev, cmd, data, flag)
         */
        case IOMAPMAP:
                error = iommap(dev, (caddr_t *)data);
         */
        case IOMAPMAP:
                error = iommap(dev, (caddr_t *)data);
+#if 0
+               /*
+                * It may not be worth kludging this (using p_devtmp) to
+                * make this work.  It was an undocumented side-effect
+                * in HP-UX that the mapped address was the return value
+                * of the ioctl.  The only thing I remember that counted
+                * on this behavior was the rbox X10 server.
+                */
                if (!error)
                        u.u_r.r_val1 = *(int *)data;    /* XXX: this sux */
                if (!error)
                        u.u_r.r_val1 = *(int *)data;    /* XXX: this sux */
+#endif
                break;
 
        case IOMAPUNMAP:
                break;
 
        case IOMAPUNMAP:
@@ -586,20 +592,19 @@ grfmmap(dev, addrp)
        struct proc *p = u.u_procp;             /* XXX */
        struct grf_softc *gp = &grf_softc[GRFUNIT(dev)];
        struct mapmem *mp;
        struct proc *p = u.u_procp;             /* XXX */
        struct grf_softc *gp = &grf_softc[GRFUNIT(dev)];
        struct mapmem *mp;
-       int len, grfmapin();
+       int len, error, grfmapin();
 
 #ifdef DEBUG
        if (grfdebug & GDB_MMAP)
                printf("grfmmap(%d): addr %x\n", p->p_pid, *addrp);
 #endif
        len = gp->g_display.gd_regsize + gp->g_display.gd_fbsize;
 
 #ifdef DEBUG
        if (grfdebug & GDB_MMAP)
                printf("grfmmap(%d): addr %x\n", p->p_pid, *addrp);
 #endif
        len = gp->g_display.gd_regsize + gp->g_display.gd_fbsize;
-       if (u.u_error = mmalloc(p, minor(dev), addrp, len, MM_RW|MM_CI|MM_NOCORE, &grfops, &mp))
-               return(u.u_error);
-       if (!mmmapin(p, mp, grfmapin)) {
-               mmfree(p, mp);
-               return(u.u_error);
-       }
-       return(0);
+       error = mmalloc(p, minor(dev), addrp, len, MM_RW|MM_CI|MM_NOCORE,
+                       &grfops, &mp);
+       if (error == 0)
+               if (error = mmmapin(p, mp, grfmapin))
+                       (void) mmfree(p, mp);
+       return(error);
 }
 
 grfunmmap(dev, addr)
 }
 
 grfunmmap(dev, addr)
@@ -626,7 +631,7 @@ grfunmmap(dev, addr)
                        mpp = &mp->mm_next;
                        continue;
                }
                        mpp = &mp->mm_next;
                        continue;
                }
-               grfexit(mp);
+               (void) grfexit(mp);
                found++;
        }
        return(found ? 0 : EINVAL);
                found++;
        }
        return(found ? 0 : EINVAL);
@@ -648,7 +653,7 @@ grfexit(mp)
        grfrmpid(gp);
 #endif
        mmmapout(p, mp);
        grfrmpid(gp);
 #endif
        mmmapout(p, mp);
-       mmfree(p, mp);
+       return(mmfree(p, mp));
 }
 
 #ifdef HPUXCOMPAT
 }
 
 #ifdef HPUXCOMPAT
@@ -659,20 +664,19 @@ iommap(dev, addrp)
        struct proc *p = u.u_procp;             /* XXX */
        struct grf_softc *gp = &grf_softc[GRFUNIT(dev)];
        struct mapmem *mp;
        struct proc *p = u.u_procp;             /* XXX */
        struct grf_softc *gp = &grf_softc[GRFUNIT(dev)];
        struct mapmem *mp;
-       int len, grfmapin();
+       int len, error, grfmapin();
 
 #ifdef DEBUG
        if (grfdebug & (GDB_MMAP|GDB_IOMAP))
                printf("iommap(%d): addr %x\n", p->p_pid, *addrp);
 #endif
        len = gp->g_display.gd_regsize;
 
 #ifdef DEBUG
        if (grfdebug & (GDB_MMAP|GDB_IOMAP))
                printf("iommap(%d): addr %x\n", p->p_pid, *addrp);
 #endif
        len = gp->g_display.gd_regsize;
-       if (u.u_error = mmalloc(p, minor(dev), addrp, len, MM_RW|MM_CI|MM_NOCORE, &grfiomops, &mp))
-               return(u.u_error);
-       if (!mmmapin(p, mp, grfmapin)) {
-               mmfree(p, mp);
-               return(u.u_error);
-       }
-       return(0);
+       error = mmalloc(p, minor(dev), addrp, len, MM_RW|MM_CI|MM_NOCORE,
+                       &grfiomops, &mp);
+       if (error == 0)
+               if (error = mmmapin(p, mp, grfmapin))
+                       (void) mmfree(p, mp);
+       return(error);
 }
 
 iounmmap(dev, addr)
 }
 
 iounmmap(dev, addr)
@@ -702,7 +706,7 @@ iounmmap(dev, addr)
                        mpp = &mp->mm_next;
                        continue;
                }
                        mpp = &mp->mm_next;
                        continue;
                }
-               grfexit(mp);
+               (void) grfexit(mp);
                found++;
        }
        return(found ? 0 : EINVAL);
                found++;
        }
        return(found ? 0 : EINVAL);
@@ -802,7 +806,7 @@ grflckmmap(dev, addrp)
        struct proc *p = u.u_procp;             /* XXX */
        struct grf_softc *gp = &grf_softc[GRFUNIT(dev)];
        struct mapmem *mp;
        struct proc *p = u.u_procp;             /* XXX */
        struct grf_softc *gp = &grf_softc[GRFUNIT(dev)];
        struct mapmem *mp;
-       int grflckmapin();
+       int error, grflckmapin();
 
 #ifdef DEBUG
        if (grfdebug & (GDB_MMAP|GDB_LOCK))
 
 #ifdef DEBUG
        if (grfdebug & (GDB_MMAP|GDB_LOCK))
@@ -814,13 +818,12 @@ grflckmmap(dev, addrp)
                if (gp->g_locks == NULL)
                        return(ENOMEM);
        }
                if (gp->g_locks == NULL)
                        return(ENOMEM);
        }
-       if (u.u_error = mmalloc(p, minor(dev), addrp, NBPG, MM_RW|MM_CI, &grflckops, &mp))
-               return(u.u_error);
-       if (!mmmapin(p, mp, grflckmapin)) {
-               mmfree(p, mp);
-               return(u.u_error);
-       }
-       return(0);
+       error = mmalloc(p, minor(dev), addrp, NBPG, MM_RW|MM_CI,
+                       &grflckops, &mp);
+       if (error == 0)
+               if (error = mmmapin(p, mp, grflckmapin))
+                       (void) mmfree(p, mp);
+       return(error);
 }
 
 grflckunmmap(dev, addr)
 }
 
 grflckunmmap(dev, addr)
@@ -838,7 +841,7 @@ grflckunmmap(dev, addr)
        for (mp = u.u_mmap; mp; mp = mp->mm_next)
                if (mp->mm_ops == &grflckops && mp->mm_id == unit &&
                    mp->mm_uva == addr) {
        for (mp = u.u_mmap; mp; mp = mp->mm_next)
                if (mp->mm_ops == &grflckops && mp->mm_id == unit &&
                    mp->mm_uva == addr) {
-                       grfexit(mp);
+                       (void) grfexit(mp);
                        return(0);
                }
        return(EINVAL);
                        return(0);
                }
        return(EINVAL);
index 09fc157..3fd50fc 100644 (file)
@@ -11,7 +11,7 @@
  *
  * from: Utah $Hdr: hil.c 1.33 89/12/22$
  *
  *
  * from: Utah $Hdr: hil.c 1.33 89/12/22$
  *
- *     @(#)hil.c       7.3 (Berkeley) %G%
+ *     @(#)hil.c       7.4 (Berkeley) %G%
  */
 
 #include "param.h"
  */
 
 #include "param.h"
@@ -593,8 +593,8 @@ hilmap(dev, off, prot)
        dev_t dev;
        register int off;
 {
        dev_t dev;
        register int off;
 {
-       struct proc *p = u.u_procp;             /* XXX */
 #ifdef MMAP
 #ifdef MMAP
+       struct proc *p = u.u_procp;             /* XXX */
        register struct hilloop *hilp = &hil0;  /* XXX */
        register struct hiliqueue *qp;
        register int qnum;
        register struct hilloop *hilp = &hil0;  /* XXX */
        register struct hiliqueue *qp;
        register int qnum;
@@ -953,13 +953,13 @@ hpuxhilevent(hilp, dptr)
 hilqalloc(qip)
        struct hilqinfo *qip;
 {
 hilqalloc(qip)
        struct hilqinfo *qip;
 {
-       struct proc *p = u.u_procp;             /* XXX */
 #ifdef MAPMEM
 #ifdef MAPMEM
+       struct proc *p = u.u_procp;             /* XXX */
        register struct hilloop *hilp = &hil0;  /* XXX */
        register HILQ *hq;
        register int qnum;
        struct mapmem *mp;
        register struct hilloop *hilp = &hil0;  /* XXX */
        register HILQ *hq;
        register int qnum;
        struct mapmem *mp;
-       int hilqmapin();
+       int error, hilqmapin();
 
 #ifdef DEBUG
        if (hildebug & HDB_FOLLOW)
 
 #ifdef DEBUG
        if (hildebug & HDB_FOLLOW)
@@ -990,17 +990,19 @@ hilqalloc(qip)
        /*
         * Map queue into user address space as instructed
         */
        /*
         * Map queue into user address space as instructed
         */
-       if (u.u_error = mmalloc(p, qnum, &qip->addr, sizeof(HILQ), MM_RW|MM_CI, &hilqops, &mp)) {
+       error = mmalloc(p, qnum, &qip->addr, sizeof(HILQ), MM_RW|MM_CI,
+                       &hilqops, &mp);
+       if (error) {
                cifree((caddr_t)hq, sizeof(HILQ));
                hilp->hl_queue[qnum].hq_eventqueue = NULL;
                cifree((caddr_t)hq, sizeof(HILQ));
                hilp->hl_queue[qnum].hq_eventqueue = NULL;
-               return(u.u_error);
+               return(error);
        }
        qip->qid = qnum;
        }
        qip->qid = qnum;
-       if (!mmmapin(p, mp, hilqmapin)) {
-               mmfree(p, mp);
+       if (error = mmmapin(p, mp, hilqmapin)) {
+               (void) mmfree(p, mp);
                cifree((caddr_t)hq, sizeof(HILQ));
                hilp->hl_queue[qnum].hq_eventqueue = NULL;
                cifree((caddr_t)hq, sizeof(HILQ));
                hilp->hl_queue[qnum].hq_eventqueue = NULL;
-               return(u.u_error);
+               return(error);
        }
        hilp->hl_queue[qnum].hq_procp = p;
        hilp->hl_queue[qnum].hq_devmask = 0;
        }
        hilp->hl_queue[qnum].hq_procp = p;
        hilp->hl_queue[qnum].hq_devmask = 0;
@@ -1013,8 +1015,8 @@ hilqalloc(qip)
 hilqfree(qnum)
        register int qnum;
 {
 hilqfree(qnum)
        register int qnum;
 {
-       struct proc *p = u.u_procp;             /* XXX */
 #ifdef MAPMEM
 #ifdef MAPMEM
+       struct proc *p = u.u_procp;             /* XXX */
        register struct hilloop *hilp = &hil0;  /* XXX */
        register struct mapmem *mp;
 
        register struct hilloop *hilp = &hil0;  /* XXX */
        register struct mapmem *mp;
 
@@ -1027,7 +1029,7 @@ hilqfree(qnum)
                return(EINVAL);
        for (mp = u.u_mmap; mp; mp = mp->mm_next)
                if (qnum == mp->mm_id && mp->mm_ops == &hilqops) {
                return(EINVAL);
        for (mp = u.u_mmap; mp; mp = mp->mm_next)
                if (qnum == mp->mm_id && mp->mm_ops == &hilqops) {
-                       hilqexit(mp);
+                       (void) hilqexit(mp);
                        return(0);
                }
        panic("hilqfree");
                        return(0);
                }
        panic("hilqfree");
@@ -1128,7 +1130,7 @@ hilqfork(mp, ischild)
 #endif
        if (ischild) {
                mmmapout(p, mp);
 #endif
        if (ischild) {
                mmmapout(p, mp);
-               mmfree(p, mp);
+               (void) mmfree(p, mp);
        }
 }
 
        }
 }
 
@@ -1184,7 +1186,7 @@ hilqexit(mp)
        cifree((caddr_t)hilp->hl_queue[i].hq_eventqueue, sizeof(HILQ));
        hilp->hl_queue[i].hq_eventqueue = NULL;
        hilp->hl_queue[i].hq_procp = NULL;
        cifree((caddr_t)hilp->hl_queue[i].hq_eventqueue, sizeof(HILQ));
        hilp->hl_queue[i].hq_eventqueue = NULL;
        hilp->hl_queue[i].hq_procp = NULL;
-       mmfree(p, mp);
+       return(mmfree(p, mp));
 }
 #endif
 
 }
 #endif
 
@@ -1538,12 +1540,8 @@ hilreset(hilp)
        /*
         * At this point, the loop should have reconfigured.
         * The reconfiguration interrupt has already called hilconfig()
        /*
         * At this point, the loop should have reconfigured.
         * The reconfiguration interrupt has already called hilconfig()
-        * so the keyboard has been determined.  All that is left is
-        * 
+        * so the keyboard has been determined.
         */
         */
-#if 0
-       hilconfig(hilp);
-#endif
        send_hil_cmd(hildevice, HIL_INTON, NULL, 0, NULL);
 }
 
        send_hil_cmd(hildevice, HIL_INTON, NULL, 0, NULL);
 }