From c1b2bf5a2971323981891e5f282e48f79687e33b Mon Sep 17 00:00:00 2001 From: tsutsui Date: Fri, 10 Jun 2011 09:27:51 +0000 Subject: [PATCH] Split device_t/softc. Compile test only. --- sys/arch/atari/dev/hdfd.c | 100 ++++++++++++++++--------------- sys/arch/atari/isa/isa_machdep.c | 32 +++++----- sys/arch/atari/vme/et4000.c | 22 +++---- 3 files changed, 81 insertions(+), 73 deletions(-) diff --git a/sys/arch/atari/dev/hdfd.c b/sys/arch/atari/dev/hdfd.c index 3c1af065ad6e..774ada2c9e4f 100644 --- a/sys/arch/atari/dev/hdfd.c +++ b/sys/arch/atari/dev/hdfd.c @@ -1,4 +1,4 @@ -/* $NetBSD: hdfd.c,v 1.73 2010/04/13 11:31:11 tsutsui Exp $ */ +/* $NetBSD: hdfd.c,v 1.74 2011/06/10 09:27:51 tsutsui Exp $ */ /*- * Copyright (c) 1996 Leo Weppelman @@ -91,7 +91,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: hdfd.c,v 1.73 2010/04/13 11:31:11 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hdfd.c,v 1.74 2011/06/10 09:27:51 tsutsui Exp $"); #include "opt_ddb.h" @@ -188,7 +188,7 @@ enum fdc_state { /* software state, per controller */ struct fdc_softc { - struct device sc_dev; /* boilerplate */ + device_t sc_dev; /* boilerplate */ struct callout sc_timo_ch; /* timeout callout */ struct callout sc_intr_ch; /* pseudo-intr callout */ @@ -202,11 +202,11 @@ struct fdc_softc { }; /* controller driver configuration */ -int fdcprobe(struct device *, struct cfdata *, void *); +int fdcprobe(device_t, cfdata_t, void *); int fdprint(void *, const char *); -void fdcattach(struct device *, struct device *, void *); +void fdcattach(device_t, device_t, void *); -CFATTACH_DECL(fdc, sizeof(struct fdc_softc), +CFATTACH_DECL_NEW(fdc, sizeof(struct fdc_softc), fdcprobe, fdcattach, NULL, NULL); /* @@ -246,7 +246,7 @@ struct fd_type fd_types[] = { /* software state, per disk (with up to 4 disks per ctlr) */ struct fd_softc { - struct device sc_dev; + device_t sc_dev; struct disk sc_dk; struct fd_type *sc_deftype; /* default type descriptor */ @@ -279,10 +279,10 @@ struct fd_softc { }; /* floppy driver configuration */ -int fdprobe(struct device *, struct cfdata *, void *); -void fdattach(struct device *, struct device *, void *); +int fdprobe(device_t, cfdata_t, void *); +void fdattach(device_t, device_t, void *); -CFATTACH_DECL(hdfd, sizeof(struct fd_softc), +CFATTACH_DECL_NEW(hdfd, sizeof(struct fd_softc), fdprobe, fdattach, NULL, NULL); const struct bdevsw fd_bdevsw = { @@ -298,29 +298,28 @@ void fdstart(struct fd_softc *); struct dkdriver fddkdriver = { fdstrategy }; -void fd_set_motor(struct fdc_softc *fdc, int reset); -void fd_motor_off(void *arg); -void fd_motor_on(void *arg); -int fdcresult(struct fdc_softc *fdc); -int out_fdc(u_char x); +void fd_set_motor(struct fdc_softc *, int); +void fd_motor_off(void *); +void fd_motor_on(void *); +int fdcresult(struct fdc_softc *); +int out_fdc(u_char); void fdc_ctrl_intr(struct clockframe); -void fdcstart(struct fdc_softc *fdc); -void fdcstatus(struct device *dv, int n, const char *s); -void fdctimeout(void *arg); -void fdcpseudointr(void *arg); +void fdcstart(struct fdc_softc *); +void fdcstatus(device_t, int, const char *); +void fdctimeout(void *); +void fdcpseudointr(void *); int fdcintr(void *); -void fdcretry(struct fdc_softc *fdc); -void fdfinish(struct fd_softc *fd, struct buf *bp); +void fdcretry(struct fdc_softc *); +void fdfinish(struct fd_softc *, struct buf *); int fdformat(dev_t, struct ne7_fd_formb *, struct proc *); static void fdgetdisklabel(struct fd_softc *, dev_t); -static void fdgetdefaultlabel(struct fd_softc *, struct disklabel *, - int); +static void fdgetdefaultlabel(struct fd_softc *, struct disklabel *, int); inline struct fd_type *fd_dev_to_type(struct fd_softc *, dev_t); int -fdcprobe(struct device *parent, struct cfdata *cfp, void *aux) +fdcprobe(device_t parent, cfdata_t cf, void *aux) { static int fdc_matched = 0; bus_space_tag_t mb_tag; @@ -395,14 +394,15 @@ fdprint(void *aux, const char *fdc) } void -fdcattach(struct device *parent, struct device *self, void *aux) +fdcattach(device_t parent, device_t self, void *aux) { - struct fdc_softc *fdc = (void *)self; + struct fdc_softc *fdc = device_private(self); struct fdc_attach_args fa; int has_fifo; has_fifo = 0; + fdc->sc_dev = self; fdc->sc_state = DEVIDLE; TAILQ_INIT(&fdc->sc_drives); @@ -450,22 +450,22 @@ fdcattach(struct device *parent, struct device *self, void *aux) } int -fdprobe(struct device *parent, struct cfdata *cfp, void *aux) +fdprobe(device_t parent, cfdata_t cf, void *aux) { - struct fdc_softc *fdc = (void *)parent; + struct fdc_softc *fdc = device_private(parent); struct fdc_attach_args *fa = aux; int drive = fa->fa_drive; int n; - if (cfp->cf_loc[FDCCF_UNIT] != FDCCF_UNIT_DEFAULT && - cfp->cf_loc[FDCCF_UNIT] != drive) + if (cf->cf_loc[FDCCF_UNIT] != FDCCF_UNIT_DEFAULT && + cf->cf_loc[FDCCF_UNIT] != drive) return 0; /* * XXX * This is to work around some odd interactions between this driver * and SMC Ethernet cards. */ - if (cfp->cf_loc[FDCCF_UNIT] == FDCCF_UNIT_DEFAULT && drive >= 2) + if (cf->cf_loc[FDCCF_UNIT] == FDCCF_UNIT_DEFAULT && drive >= 2) return 0; /* select drive and turn on motor */ @@ -503,14 +503,15 @@ fdprobe(struct device *parent, struct cfdata *cfp, void *aux) * Controller is working, and drive responded. Attach it. */ void -fdattach(struct device *parent, struct device *self, void *aux) +fdattach(device_t parent, device_t self, void *aux) { - struct fdc_softc *fdc = (void *)parent; - struct fd_softc *fd = (void *)self; + struct fdc_softc *fdc = device_private(parent); + struct fd_softc *fd = device_private(self); struct fdc_attach_args *fa = aux; struct fd_type *type = fa->fa_deftype; int drive = fa->fa_drive; + fd->sc_dev = self; callout_init(&fd->sc_motoron_ch, 0); callout_init(&fd->sc_motoroff_ch, 0); @@ -531,7 +532,7 @@ fdattach(struct device *parent, struct device *self, void *aux) /* * Initialize and attach the disk structure. */ - disk_init(&fd->sc_dk, fd->sc_dev.dv_xname, &fddkdriver); + disk_init(&fd->sc_dk, device_xname(self), &fddkdriver); disk_attach(&fd->sc_dk); /* Needed to power off if the motor is on when we halt. */ @@ -635,7 +636,9 @@ fdstrategy(struct buf *bp) fdstart(fd); #ifdef DIAGNOSTIC else { - struct fdc_softc *fdc = (void *) device_parent(&fd->sc_dev); + struct fdc_softc *fdc; + + fdc = device_private(device_parent(fd->sc_dev)); if (fdc->sc_state == DEVIDLE) { printf("fdstrategy: controller inactive\n"); fdcstart(fdc); @@ -654,7 +657,7 @@ done: void fdstart(struct fd_softc *fd) { - struct fdc_softc *fdc = (void *) device_parent(&fd->sc_dev); + struct fdc_softc *fdc = device_private(device_parent(fd->sc_dev)); int active = fdc->sc_drives.tqh_first != 0; /* Link into controller queue. */ @@ -669,7 +672,7 @@ fdstart(struct fd_softc *fd) void fdfinish(struct fd_softc *fd, struct buf *bp) { - struct fdc_softc *fdc = (void *) device_parent(&fd->sc_dev); + struct fdc_softc *fdc = device_private(device_parent(fd->sc_dev)); /* * Move this drive to the end of the queue to give others a `fair' @@ -732,11 +735,12 @@ void fd_motor_off(void *arg) { struct fd_softc *fd = arg; + struct fdc_softc *fdc = device_private(device_parent(fd->sc_dev)); int s; s = splbio(); fd->sc_flags &= ~(FD_MOTOR | FD_MOTOR_WAIT); - fd_set_motor((struct fdc_softc *) device_parent(&fd->sc_dev), 0); + fd_set_motor(fdc, 0); splx(s); } @@ -744,7 +748,7 @@ void fd_motor_on(void *arg) { struct fd_softc *fd = arg; - struct fdc_softc *fdc = (void *) device_parent(&fd->sc_dev); + struct fdc_softc *fdc = device_private(device_parent(fd->sc_dev)); int s; s = splbio(); @@ -858,9 +862,9 @@ fdcpstatus(struct fdc_softc *fdc) } void -fdcstatus(struct device *dv, int n, const char *s) +fdcstatus(device_t self, int n, const char *s) { - struct fdc_softc *fdc = (void *) device_parent(dv); + struct fdc_softc *fdc = device_private(device_parent(self)); char bits[64]; if (n == 0) { @@ -869,7 +873,7 @@ fdcstatus(struct device *dv, int n, const char *s) n = 2; } - printf("%s: %s", dv->dv_xname, s); + printf("%s: %s", device_xname(self), s); switch (n) { case 0: @@ -898,7 +902,7 @@ fdctimeout(void *arg) int s; s = splbio(); - fdcstatus(&fd->sc_dev, 0, "timeout"); + fdcstatus(fd->sc_dev, 0, "timeout"); if (bufq_peek(fd->sc_q) != NULL) fdc->sc_state++; @@ -1105,7 +1109,7 @@ loop: if (fdcresult(fdc) != 2 || (st0 & 0xf8) != 0x20 || cyl != bp->b_cylinder * fd->sc_type->step) { #ifdef FD_DEBUG - fdcstatus(&fd->sc_dev, 2, "seek failed"); + fdcstatus(fd->sc_dev, 2, "seek failed"); #endif fdcretry(fdc); goto loop; @@ -1136,7 +1140,7 @@ loop: goto loop; } #ifdef FD_DEBUG - fdcstatus(&fd->sc_dev, 7, bp->b_flags & B_READ ? + fdcstatus(fd->sc_dev, 7, bp->b_flags & B_READ ? "read failed" : "write failed"); printf("blkno %qd nblks %d\n", fd->sc_blkno, fd->sc_nblks); @@ -1199,7 +1203,7 @@ loop: out_fdc(NE7CMD_SENSEI); if (fdcresult(fdc) != 2 || (st0 & 0xf8) != 0x20 || cyl != 0) { #ifdef FD_DEBUG - fdcstatus(&fd->sc_dev, 2, "recalibrate failed"); + fdcstatus(fd->sc_dev, 2, "recalibrate failed"); #endif fdcretry(fdc); goto loop; @@ -1213,7 +1217,7 @@ loop: goto doseek; default: - fdcstatus(&fd->sc_dev, 0, "stray interrupt"); + fdcstatus(fd->sc_dev, 0, "stray interrupt"); return 1; } #ifdef DIAGNOSTIC diff --git a/sys/arch/atari/isa/isa_machdep.c b/sys/arch/atari/isa/isa_machdep.c index 7c1c3b385a48..8efeb2b12f85 100644 --- a/sys/arch/atari/isa/isa_machdep.c +++ b/sys/arch/atari/isa/isa_machdep.c @@ -1,4 +1,4 @@ -/* $NetBSD: isa_machdep.c,v 1.37 2010/04/13 11:31:11 tsutsui Exp $ */ +/* $NetBSD: isa_machdep.c,v 1.38 2011/06/10 09:27:51 tsutsui Exp $ */ /* * Copyright (c) 1997 Leo Weppelman. All rights reserved. @@ -32,7 +32,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: isa_machdep.c,v 1.37 2010/04/13 11:31:11 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: isa_machdep.c,v 1.38 2011/06/10 09:27:51 tsutsui Exp $"); #include #include @@ -67,16 +67,16 @@ struct atari_bus_dma_tag isa_bus_dma_tag = { }; #endif /* NISADMA == 0 */ -static int atariisabusprint(void *auxp, const char *); -static int isabusmatch(struct device *, struct cfdata *, void *); -static void isabusattach(struct device *, struct device *, void *); +static int atariisabusprint(void *, const char *); +static int isabusmatch(device_t, cfdata_t, void *); +static void isabusattach(device_t, device_t, void *); struct isabus_softc { - struct device sc_dev; + device_t sc_dev; struct atari_isa_chipset sc_chipset; }; -CFATTACH_DECL(isab, sizeof(struct isabus_softc), +CFATTACH_DECL_NEW(isab, sizeof(struct isabus_softc), isabusmatch, isabusattach, NULL, NULL); /* @@ -86,11 +86,11 @@ CFATTACH_DECL(isab, sizeof(struct isabus_softc), static struct atari_bus_space bs_storage[2]; /* 1 iot, 1 memt */ int -isabusmatch(struct device *pdp, struct cfdata *cfp, void *auxp) +isabusmatch(device_t parent, cfdata_t cf, void *aux) { static int nmatched = 0; - if (strcmp((char *)auxp, "isab")) + if (strcmp((char *)aux, "isab")) return 0; /* Wrong number... */ if (atari_realconfig == 0) @@ -109,13 +109,15 @@ isabusmatch(struct device *pdp, struct cfdata *cfp, void *auxp) } void -isabusattach(struct device *pdp, struct device *dp, void *auxp) +isabusattach(device_t parent, device_t self, void *aux) { - struct isabus_softc *sc = (struct isabus_softc *)dp; + struct isabus_softc *sc = device_private(self); struct isabus_attach_args iba; extern struct atari_bus_dma_tag isa_bus_dma_tag; extern void isa_bus_init(void); + sc->sc_dev = self; + iba.iba_dmat = &isa_bus_dma_tag; iba.iba_iot = leb_alloc_bus_space_tag(&bs_storage[0]); iba.iba_memt = leb_alloc_bus_space_tag(&bs_storage[1]); @@ -130,7 +132,7 @@ isabusattach(struct device *pdp, struct device *dp, void *auxp) if (machineid & ATARI_HADES) MFP->mf_aer |= (IO_ISA1|IO_ISA2); /* ISA interrupts: LOW->HIGH */ isa_bus_init(); - if (dp == NULL) { /* Early init */ + if (self == NULL) { /* Early init */ #if (NPCKBC > 0) pckbc_cnattach(iba.iba_iot, IO_KBD, KBCMDP, PCKBC_KBD_SLOT); #endif @@ -138,11 +140,11 @@ isabusattach(struct device *pdp, struct device *dp, void *auxp) } printf("\n"); - config_found_ia(dp, "isabus", &iba, atariisabusprint); + config_found_ia(self, "isabus", &iba, atariisabusprint); } int -atariisabusprint(void *auxp, const char *name) +atariisabusprint(void *aux, const char *name) { if (name == NULL) @@ -151,7 +153,7 @@ atariisabusprint(void *auxp, const char *name) } void -isa_attach_hook(struct device *parent, struct device *self, struct isabus_attach_args *iba) +isa_attach_hook(device_t parent, device_t self, struct isabus_attach_args *iba) { } diff --git a/sys/arch/atari/vme/et4000.c b/sys/arch/atari/vme/et4000.c index 0f2785e9bad7..3824fe338fad 100644 --- a/sys/arch/atari/vme/et4000.c +++ b/sys/arch/atari/vme/et4000.c @@ -1,4 +1,4 @@ -/* $NetBSD: et4000.c,v 1.23 2010/12/12 09:56:16 tsutsui Exp $ */ +/* $NetBSD: et4000.c,v 1.24 2011/06/10 09:27:51 tsutsui Exp $ */ /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. * All rights reserved. @@ -45,7 +45,7 @@ */ #include -__KERNEL_RCSID(0, "$NetBSD: et4000.c,v 1.23 2010/12/12 09:56:16 tsutsui Exp $"); +__KERNEL_RCSID(0, "$NetBSD: et4000.c,v 1.24 2011/06/10 09:27:51 tsutsui Exp $"); #include #include @@ -78,8 +78,8 @@ __KERNEL_RCSID(0, "$NetBSD: et4000.c,v 1.23 2010/12/12 09:56:16 tsutsui Exp $"); #define VGA_MAPPABLE (128 * 1024) /* 0x20000 */ #define VGA_BASE 0xa0000 -static int et4k_vme_match(struct device *, struct cfdata *, void *); -static void et4k_vme_attach(struct device *, struct device *, void *); +static int et4k_vme_match(device_t, cfdata_t, void *); +static void et4k_vme_attach(device_t, device_t, void *); static int et4k_probe_addresses(struct vme_attach_args *); static void et4k_start(bus_space_tag_t *, bus_space_handle_t *, int *, u_char *); @@ -113,7 +113,7 @@ struct grfabs_et4k_priv { } et4k_priv; struct et4k_softc { - struct device sc_dev; + device_t sc_dev; bus_space_tag_t sc_iot; bus_space_tag_t sc_memt; bus_space_handle_t sc_ioh; @@ -127,7 +127,7 @@ struct et4k_softc { #define ET_SC_FLAGS_INUSE 1 -CFATTACH_DECL(et4k, sizeof(struct et4k_softc), +CFATTACH_DECL_NEW(et4k, sizeof(struct et4k_softc), et4k_vme_match, et4k_vme_attach, NULL, NULL); dev_type_open(et4kopen); @@ -147,9 +147,9 @@ const struct cdevsw et4k_cdevsw = { * match Spektrum cards too (untested). */ int -et4k_vme_match(struct device *pdp, struct cfdata *cfp, void *auxp) +et4k_vme_match(device_t parent, cfdata_t cf, void *aux) { - struct vme_attach_args *va = auxp; + struct vme_attach_args *va = aux; return et4k_probe_addresses(va); } @@ -329,13 +329,15 @@ et4k_detect(bus_space_tag_t *iot, bus_space_tag_t *memt, bus_space_handle_t *ioh } static void -et4k_vme_attach(struct device *parent, struct device *self, void *aux) +et4k_vme_attach(device_t parent, device_t self, void *aux) { - struct et4k_softc *sc = (struct et4k_softc *)self; + struct et4k_softc *sc = device_private(self); struct vme_attach_args *va = aux; bus_space_handle_t ioh; bus_space_handle_t memh; + sc->sc_dev = self; + printf("\n"); if (bus_space_map(va->va_iot, va->va_iobase, va->va_iosize, 0, &ioh))