pmax caddr_t fallouts

"Erik Bertelsen" <[email protected]>
Newsgroups gmane.os.netbsd.ports.pmax
Message-ID <[email protected]>
My DS5000/133 does not compile today after the caddr_t update.

Please consider something along the following which seems to make a
compilable and bootable kernel:

Index: pmax/disksubr.c
===================================================================
RCS file: /cvsroot/src/sys/arch/pmax/pmax/disksubr.c,v
retrieving revision 1.44
diff -u -r1.44 disksubr.c
--- pmax/disksubr.c     25 Nov 2006 11:59:57 -0000      1.44
+++ pmax/disksubr.c     6 Mar 2007 19:24:22 -0000
@@ -88,7 +88,7 @@
        if (biowait(bp)) {
                msg = "I/O error";
        } else for (dlp = (struct disklabel *)bp->b_data;
-           dlp <= (struct disklabel *)(bp->b_data+DEV_BSIZE-sizeof(*dlp));
+           dlp <= (struct disklabel *)((char
*)bp->b_data+DEV_BSIZE-sizeof(*dlp));
            dlp = (struct disklabel *)((char *)dlp + sizeof(long))) {
                if (dlp->d_magic != DISKMAGIC || dlp->d_magic2 != DISKMAGIC) {
                        if (msg == NULL)
@@ -274,7 +274,7 @@
                goto done;
        for (dlp = (struct disklabel *)bp->b_data;
            dlp <= (struct disklabel *)
-             (bp->b_data + lp->d_secsize - sizeof(*dlp));
+             ((char *)bp->b_data + lp->d_secsize - sizeof(*dlp));
            dlp = (struct disklabel *)((char *)dlp + sizeof(long))) {
                if (dlp->d_magic == DISKMAGIC && dlp->d_magic2 == DISKMAGIC &&
                    dkcksum(dlp) == 0) {
Index: pmax/machdep.c
===================================================================
RCS file: /cvsroot/src/sys/arch/pmax/pmax/machdep.c,v
retrieving revision 1.217
diff -u -r1.217 machdep.c
--- pmax/machdep.c      4 Mar 2007 06:00:33 -0000       1.217
+++ pmax/machdep.c      6 Mar 2007 19:24:22 -0000
@@ -251,7 +251,7 @@
 #endif
        {
                kernend = (void *)mips_round_page(end);
-               memset(edata, 0, kernend - edata);
+               memset(edata, 0, (char *)kernend - edata);
        }

        /* Initialize callv so we can do PROM output... */
@@ -343,12 +343,12 @@
         * Alloc u pages for proc0 stealing KSEG0 memory.
         */
        lwp0.l_addr = proc0paddr = (struct user *)kernend;
-       lwp0.l_md.md_regs = (struct frame *)(kernend + USPACE) - 1;
+       lwp0.l_md.md_regs = (struct frame *)((char *)kernend + USPACE) - 1;
        memset(lwp0.l_addr, 0, USPACE);
        curpcb = &lwp0.l_addr->u_pcb;
        curpcb->pcb_context[11] = MIPS_INT_MASK | MIPS_SR_INT_IE; /* SR */

-       kernend += USPACE;
+       kernend = (char *)kernend + USPACE;

        /*
         * Initialize physmem_boardmax; assume no SIMM-bank limits.
Index: tc/asc_ioasic.c
===================================================================
RCS file: /cvsroot/src/sys/arch/pmax/tc/asc_ioasic.c,v
retrieving revision 1.17
diff -u -r1.17 asc_ioasic.c
--- tc/asc_ioasic.c     4 Mar 2007 06:00:33 -0000       1.17
+++ tc/asc_ioasic.c     6 Mar 2007 19:24:23 -0000
@@ -407,7 +407,7 @@
        asc->sc_flags &= ~ASC_MAPLOADED;

        *asc->sc_dmalen -= trans;
-       *asc->sc_dmaaddr += trans;
+       *asc->sc_dmaaddr = (char *)(*asc->sc_dmaaddr) + trans;

        return 0;
 }


The changes are done quick&dirty and may not all be done optimally, so
please review before comitting :-)

- Erik
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.