diff options
author | jhb <jhb@FreeBSD.org> | 2002-11-07 21:13:15 +0000 |
---|---|---|
committer | jhb <jhb@FreeBSD.org> | 2002-11-07 21:13:15 +0000 |
commit | b79b5c3b5583e03230f8db18d972673b2f4a7bd6 (patch) | |
tree | a4913cc041c80bb9a4a20b1b4b83ba2dba328614 /sys | |
parent | 987979669bd3606bc546f273aedb0755128ab842 (diff) | |
download | FreeBSD-src-b79b5c3b5583e03230f8db18d972673b2f4a7bd6.zip FreeBSD-src-b79b5c3b5583e03230f8db18d972673b2f4a7bd6.tar.gz |
Fix lots of places that assume sizeof(int) == sizeof(void *). Most of
these were cosmetic. However, at least two of these changes fix bugs
where a (fake) pointer to a RX descriptor was added to the physical
memory start address with the cast in the wrong place resulting in
rxdesc[pmem_start] instead of (uintptr_t)rxdesc + pmem_start.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/dev/sr/if_sr.c | 36 |
1 files changed, 18 insertions, 18 deletions
diff --git a/sys/dev/sr/if_sr.c b/sys/dev/sr/if_sr.c index 636618c..0552b5a 100644 --- a/sys/dev/sr/if_sr.c +++ b/sys/dev/sr/if_sr.c @@ -387,9 +387,9 @@ sr_attach(device_t device) * Report Card configuration information before we start configuring * each channel on the card... */ - printf("src%d: %uK RAM (%d mempages) @ %08x-%08x, %u ports.\n", + printf("src%d: %uK RAM (%d mempages) @ %p-%p, %u ports.\n", hc->cunit, hc->memsize / 1024, hc->mempages, - (u_int)hc->mem_start, (u_int)hc->mem_end, hc->numports); + hc->mem_start, hc->mem_end, hc->numports); src_init(hc); sr_init_sca(hc); @@ -967,8 +967,8 @@ top_srstart: * can record this in the structure and fire it off w/ the DMA * processor of the serial chip... */ - txdesc = (sca_descriptor *)blkp->txdesc; - blkp->txeda = (u_short)((u_int)&txdesc[i]); + txdesc = (sca_descriptor *)(uintptr_t)blkp->txdesc; + blkp->txeda = (u_short)((uintptr_t)&txdesc[i]); sc->txb_inuse++; /* update inuse status */ sc->txb_new++; /* new traffic wuz added */ @@ -1634,7 +1634,7 @@ sr_init_rx_dmac(struct sr_softc *sc) * needed to construct a circular buffer... */ rxd = (sca_descriptor *)(hc->mem_start + (sc->rxdesc & hc->winmsk)); - rxda_d = (u_int) hc->mem_start - (sc->rxdesc & ~hc->winmsk); + rxda_d = (uintptr_t) hc->mem_start - (sc->rxdesc & ~hc->winmsk); for (rxbuf = sc->rxstart; rxbuf < sc->rxend; @@ -1642,7 +1642,7 @@ sr_init_rx_dmac(struct sr_softc *sc) /* * construct the circular chain... */ - rxda = (u_int) & rxd[1] - rxda_d + hc->mem_pstart; + rxda = (uintptr_t) &rxd[1] - rxda_d + hc->mem_pstart; rxd->cp = (u_short)(rxda & 0xffff); /* @@ -1682,10 +1682,10 @@ sr_init_rx_dmac(struct sr_softc *sc) SRC_PUT16(hc->sca_base, dmac->cda, cda_v); SRC_PUT8(hc->sca_base, dmac->sarb, sarb_v); - rxd = (sca_descriptor *)sc->rxstart; + rxd = (sca_descriptor *)(uintptr_t)sc->rxstart; SRC_PUT16(hc->sca_base, dmac->eda, - (u_short)((u_int) & rxd[sc->rxmax - 1] & 0xffff)); + (u_short)((uintptr_t) &rxd[sc->rxmax - 1] & 0xffff)); SRC_PUT8(hc->sca_base, dmac->dir, 0xF0); @@ -1726,13 +1726,13 @@ sr_init_tx_dmac(struct sr_softc *sc) blkp = &sc->block[blk]; txd = (sca_descriptor *)(hc->mem_start + (blkp->txdesc & hc->winmsk)); - txda_d = (u_int) hc->mem_start + txda_d = (uintptr_t) hc->mem_start - (blkp->txdesc & ~hc->winmsk); x = 0; txbuf = blkp->txstart; for (; txbuf < blkp->txend; txbuf += SR_BUF_SIZ, txd++) { - txda = (u_int) & txd[1] - txda_d + hc->mem_pstart; + txda = (uintptr_t) &txd[1] - txda_d + hc->mem_pstart; txd->cp = (u_short)(txda & 0xffff); txd->bp = (u_short)((txbuf + hc->mem_pstart) @@ -1748,7 +1748,7 @@ sr_init_tx_dmac(struct sr_softc *sc) txd->cp = (u_short)((blkp->txdesc + hc->mem_pstart) & 0xffff); - blkp->txtail = (u_int)txd - (u_int)hc->mem_start; + blkp->txtail = (uintptr_t)txd - (uintptr_t)hc->mem_start; } SRC_PUT8(hc->sca_base, dmac->dsr, 0); /* Disable DMA */ @@ -1980,9 +1980,9 @@ sr_eat_packet(struct sr_softc *sc, int single) loopcnt++; if (loopcnt > sc->rxmax) { - printf("sr%d: eat pkt %d loop, cda %x, " - "rxdesc %x, stat %x.\n", - sc->unit, loopcnt, (u_int) cda, (u_int) rxdesc, + printf("sr%d: eat pkt %d loop, cda %p, " + "rxdesc %p, stat %x.\n", + sc->unit, loopcnt, cda, rxdesc, rxdesc->stat); break; } @@ -2006,12 +2006,12 @@ sr_eat_packet(struct sr_softc *sc, int single) /* * Update the eda to the previous descriptor. */ - rxdesc = (sca_descriptor *)sc->rxdesc; + rxdesc = (sca_descriptor *)(uintptr_t)sc->rxdesc; rxdesc = &rxdesc[(sc->rxhind + sc->rxmax - 2) % sc->rxmax]; SRC_PUT16(hc->sca_base, hc->sca->dmac[DMAC_RXCH(sc->scachan)].eda, - (u_short)((u_int)(rxdesc + hc->mem_pstart) & 0xffff)); + (u_short)(((uintptr_t)rxdesc + hc->mem_pstart) & 0xffff)); } /* @@ -2167,13 +2167,13 @@ sr_get_packets(struct sr_softc *sc) i = (len + SR_BUF_SIZ - 1) / SR_BUF_SIZ; sc->rxhind = (sc->rxhind + i) % sc->rxmax; - rxdesc = (sca_descriptor *)sc->rxdesc; + rxdesc = (sca_descriptor *)(uintptr_t)sc->rxdesc; rxndx = (sc->rxhind + sc->rxmax - 2) % sc->rxmax; rxdesc = &rxdesc[rxndx]; SRC_PUT16(hc->sca_base, hc->sca->dmac[DMAC_RXCH(sc->scachan)].eda, - (u_short)((u_int)(rxdesc + hc->mem_pstart) + (u_short)(((uintptr_t)rxdesc + hc->mem_pstart) & 0xffff)); } else { |