replace the "locdesc_t" structure carrying the number of locators

explicitely by a plain integer array
the length in now known to all relevant parties, so this avoids
duplication of information, and we can allocate that thing in
drivers without hacks
This commit is contained in:
drochner 2005-08-25 18:35:38 +00:00
parent ede55d75e5
commit fa3cb84d62
43 changed files with 365 additions and 473 deletions

View File

@ -1,4 +1,4 @@
/* $NetBSD: jensenio.c,v 1.10 2004/09/14 19:57:37 drochner Exp $ */
/* $NetBSD: jensenio.c,v 1.11 2005/08/25 18:35:38 drochner Exp $ */
/*-
* Copyright (c) 1999, 2000 The NetBSD Foundation, Inc.
@ -50,7 +50,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: jensenio.c,v 1.10 2004/09/14 19:57:37 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: jensenio.c,v 1.11 2005/08/25 18:35:38 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -158,8 +158,7 @@ jensenio_attach(struct device *parent, struct device *self, void *aux)
struct jensenio_attach_args ja;
struct jensenio_config *jcp = &jensenio_configuration;
int i;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[JENSENIOCF_NLOCS];
printf("\n");
@ -193,9 +192,8 @@ jensenio_attach(struct device *parent, struct device *self, void *aux)
ja.ja_iot = &jcp->jc_internal_iot;
ja.ja_ec = &jcp->jc_ec;
ldesc->len = 1;
ldesc->locs[JENSENIOCF_PORT] = jensenio_devs[i].jd_ioaddr;
(void) config_found_sm_loc(self, "jensenio", ldesc, &ja,
locs[JENSENIOCF_PORT] = jensenio_devs[i].jd_ioaddr;
(void) config_found_sm_loc(self, "jensenio", locs, &ja,
jensenio_print, jensenio_submatch);
}
@ -225,11 +223,11 @@ jensenio_attach(struct device *parent, struct device *self, void *aux)
int
jensenio_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[JENSENIOCF_PORT] != JENSENIOCF_PORT_DEFAULT &&
cf->cf_loc[JENSENIOCF_PORT] != ldesc->locs[JENSENIOCF_PORT])
cf->cf_loc[JENSENIOCF_PORT] != locs[JENSENIOCF_PORT])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: mcbus.c,v 1.15 2005/06/02 13:17:45 drochner Exp $ */
/* $NetBSD: mcbus.c,v 1.16 2005/08/25 18:35:38 drochner Exp $ */
/*
* Copyright (c) 1998 by Matthew Jacob
@ -37,7 +37,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: mcbus.c,v 1.15 2005/06/02 13:17:45 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: mcbus.c,v 1.16 2005/08/25 18:35:38 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -103,15 +103,15 @@ mcbusprint(aux, cp)
}
static int
mcbussbm(parent, cf, ldesc, aux)
mcbussbm(parent, cf, locs, aux)
struct device *parent;
struct cfdata *cf;
const locdesc_t *ldesc;
const locdesc_t *locs;
void *aux;
{
if (cf->cf_loc[MCBUSCF_MID] != MCBUSCF_MID_DEFAULT &&
cf->cf_loc[MCBUSCF_MID] != ldesc->locs[MCBUSCF_MID])
cf->cf_loc[MCBUSCF_MID] != locs[MCBUSCF_MID])
return (0);
return (config_match(parent, cf, aux));
@ -149,8 +149,7 @@ mcbusattach(parent, self, aux)
struct mcbus_dev_attach_args ta;
mcbus_softc_t *mbp = (mcbus_softc_t *)self;
int i, mid;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[MCBUSCF_NLOCS];
printf(": %s BCache\n", mcbus_primary.mcbus_valid ?
bcs[mcbus_primary.mcbus_bcache] : "Unknown");
@ -172,9 +171,8 @@ mcbusattach(parent, self, aux)
ta.ma_mid = 1;
ta.ma_type = MCBUS_TYPE_MEM;
mbp->mcbus_types[1] = MCBUS_TYPE_MEM;
ldesc->len = 1;
ldesc->locs[MCBUSCF_MID] = 1;
(void) config_found_sm_loc(self, "mcbus", ldesc, &ta,
locs[MCBUSCF_MID] = 1;
(void) config_found_sm_loc(self, "mcbus", locs, &ta,
mcbusprint, mcbussbm);
/*
@ -190,10 +188,9 @@ mcbusattach(parent, self, aux)
ta.ma_gid = MCBUS_GID_FROM_INSTANCE(0);
ta.ma_mid = mid;
ta.ma_type = MCBUS_TYPE_PCI;
ldesc->len = 1;
ldesc->locs[MCBUSCF_MID] = mid;
locs[MCBUSCF_MID] = mid;
if (MCPCIA_EXISTS(ta.ma_mid, ta.ma_gid))
(void) config_found_sm_loc(self, "mcbus", ldesc, &ta,
(void) config_found_sm_loc(self, "mcbus", locs, &ta,
mcbusprint, mcbussbm);
}
@ -220,9 +217,8 @@ mcbusattach(parent, self, aux)
ta.ma_mid = mid;
ta.ma_type = MCBUS_TYPE_CPU;
mbp->mcbus_types[mid] = MCBUS_TYPE_CPU;
ldesc->len = 1;
ldesc->locs[MCBUSCF_MID] = mid;
(void) config_found_sm_loc(self, "mcbus", ldesc, &ta,
locs[MCBUSCF_MID] = mid;
(void) config_found_sm_loc(self, "mcbus", locs, &ta,
mcbusprint, mcbussbm);
}
#endif

View File

@ -1,4 +1,4 @@
/* $NetBSD: sableio.c,v 1.8 2004/09/13 14:57:31 drochner Exp $ */
/* $NetBSD: sableio.c,v 1.9 2005/08/25 18:35:38 drochner Exp $ */
/*-
* Copyright (c) 1999, 2000 The NetBSD Foundation, Inc.
@ -55,7 +55,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: sableio.c,v 1.8 2004/09/13 14:57:31 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: sableio.c,v 1.9 2005/08/25 18:35:38 drochner Exp $");
#include "isadma.h"
@ -148,8 +148,7 @@ sableio_attach(struct device *parent, struct device *self, void *aux)
struct sableio_attach_args sa;
bus_dma_tag_t dmat;
int i;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[SABLEIOCF_NLOCS];
printf(": Sable STDIO module\n");
@ -176,21 +175,20 @@ sableio_attach(struct device *parent, struct device *self, void *aux)
sa.sa_ic = &sc->sc_isa_chipset;
sa.sa_pc = pba->pba_pc;
ldesc->len = 1;
ldesc->locs[SABLEIOCF_PORT] = sableio_devs[i].sd_ioaddr;
locs[SABLEIOCF_PORT] = sableio_devs[i].sd_ioaddr;
(void) config_found_sm_loc(self, "sableio", ldesc, &sa,
(void) config_found_sm_loc(self, "sableio", locs, &sa,
sableio_print, sableio_submatch);
}
}
int
sableio_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[SABLEIOCF_PORT] != SABLEIOCF_PORT_DEFAULT &&
cf->cf_loc[SABLEIOCF_PORT] != ldesc->locs[SABLEIOCF_PORT])
cf->cf_loc[SABLEIOCF_PORT] != locs[SABLEIOCF_PORT])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: gbus.c,v 1.15 2004/09/13 14:57:31 drochner Exp $ */
/* $NetBSD: gbus.c,v 1.16 2005/08/25 18:35:38 drochner Exp $ */
/*
* Copyright (c) 1997 by Matthew Jacob
@ -37,7 +37,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: gbus.c,v 1.15 2004/09/13 14:57:31 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: gbus.c,v 1.16 2005/08/25 18:35:38 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -123,8 +123,7 @@ gbusattach(parent, self, aux)
struct gbus_softc *sc = (struct gbus_softc *)self;
struct tlsb_dev_attach_args *ta = aux;
struct gbus_attach_args *ga;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[GBUSCF_NLOCS];
printf("\n");
@ -132,23 +131,22 @@ gbusattach(parent, self, aux)
/* Attach the children. */
for (ga = gbus_children; ga->ga_name != NULL; ga++) {
ldesc->len = 1;
ldesc->locs[GBUSCF_OFFSET] = ga->ga_offset;
(void) config_found_sm_loc(self, "gbus", ldesc, ga,
locs[GBUSCF_OFFSET] = ga->ga_offset;
(void) config_found_sm_loc(self, "gbus", locs, ga,
gbusprint, gbussubmatch);
}
}
static int
gbussubmatch(parent, cf, ldesc, aux)
gbussubmatch(parent, cf, locs, aux)
struct device *parent;
struct cfdata *cf;
const locdesc_t *ldesc;
const locdesc_t *locs;
void *aux;
{
if (cf->cf_loc[GBUSCF_OFFSET] != GBUSCF_OFFSET_DEFAULT &&
cf->cf_loc[GBUSCF_OFFSET] != ldesc->locs[GBUSCF_OFFSET])
cf->cf_loc[GBUSCF_OFFSET] != locs[GBUSCF_OFFSET])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: tlsb.c,v 1.28 2005/06/02 13:17:45 drochner Exp $ */
/* $NetBSD: tlsb.c,v 1.29 2005/08/25 18:35:38 drochner Exp $ */
/*
* Copyright (c) 1997 by Matthew Jacob
* NASA AMES Research Center.
@ -39,7 +39,7 @@
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: tlsb.c,v 1.28 2005/06/02 13:17:45 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: tlsb.c,v 1.29 2005/08/25 18:35:38 drochner Exp $");
#include "opt_multiprocessor.h"
@ -104,18 +104,18 @@ tlsbprint(aux, pnp)
}
static int
tlsbsubmatch(parent, cf, ldesc, aux)
tlsbsubmatch(parent, cf, locs, aux)
struct device *parent;
struct cfdata *cf;
const locdesc_t *ldesc;
const locdesc_t *locs;
void *aux;
{
if (cf->cf_loc[TLSBCF_NODE] != TLSBCF_NODE_DEFAULT &&
cf->cf_loc[TLSBCF_NODE] != ldesc->locs[TLSBCF_NODE])
cf->cf_loc[TLSBCF_NODE] != locs[TLSBCF_NODE])
return (0);
if (cf->cf_loc[TLSBCF_OFFSET] != TLSBCF_OFFSET_DEFAULT &&
cf->cf_loc[TLSBCF_OFFSET] != ldesc->locs[TLSBCF_OFFSET])
cf->cf_loc[TLSBCF_OFFSET] != locs[TLSBCF_OFFSET])
return (0);
return (config_match(parent, cf, aux));
@ -153,8 +153,7 @@ tlsbattach(parent, self, aux)
struct tlsb_dev_attach_args ta;
u_int32_t tldev;
int node;
int help[3];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[TLSBCF_NLOCS];
printf("\n");
@ -206,11 +205,10 @@ tlsbattach(parent, self, aux)
/*
* Attach any children nodes, including a CPU's GBus
*/
ldesc->len = 2;
ldesc->locs[TLSBCF_NODE] = node;
ldesc->locs[TLSBCF_OFFSET] = 0; /* XXX unused? */
locs[TLSBCF_NODE] = node;
locs[TLSBCF_OFFSET] = 0; /* XXX unused? */
config_found_sm_loc(self, "tlsb", ldesc, &ta,
config_found_sm_loc(self, "tlsb", locs, &ta,
tlsbprint, tlsbsubmatch);
}
/*
@ -253,11 +251,10 @@ tlsbattach(parent, self, aux)
ta.ta_swrev = TLDEV_SWREV(tldev);
ta.ta_hwrev = TLDEV_HWREV(tldev);
ldesc->len = 2;
ldesc->locs[TLSBCF_NODE] = node;
ldesc->locs[TLSBCF_OFFSET] = 0; /* XXX unused? */
locs[TLSBCF_NODE] = node;
locs[TLSBCF_OFFSET] = 0; /* XXX unused? */
config_found_sm_loc(self, "tlsb", ldesc, &ta,
config_found_sm_loc(self, "tlsb", locs, &ta,
tlsbprint, tlsbsubmatch);
}
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: pnpbios.c,v 1.49 2005/06/01 16:49:14 drochner Exp $ */
/* $NetBSD: pnpbios.c,v 1.50 2005/08/25 18:35:38 drochner Exp $ */
/*
* Copyright (c) 2000 Jason R. Thorpe. All rights reserved.
@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: pnpbios.c,v 1.49 2005/06/01 16:49:14 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: pnpbios.c,v 1.50 2005/08/25 18:35:38 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -768,11 +768,11 @@ pnpbios_print_devres(struct device *dev, struct pnpbiosdev_attach_args *aa)
static int
pnpbios_submatch(struct device *parent, struct cfdata *match,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (match->cf_loc[PNPBIOSCF_INDEX] != PNPBIOSCF_INDEX_DEFAULT &&
match->cf_loc[PNPBIOSCF_INDEX] != ldesc->locs[PNPBIOSCF_INDEX])
match->cf_loc[PNPBIOSCF_INDEX] != locs[PNPBIOSCF_INDEX])
return (0);
return (config_match(parent, match, aux));
@ -782,18 +782,16 @@ static int
pnpbios_attachchild(struct pnpbios_softc *sc,
struct pnpbiosdev_attach_args *aa, int matchonly)
{
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[PNPBIOSCF_NLOCS];
ldesc->len = 1;
ldesc->locs[PNPBIOSCF_INDEX] = aa->idx;
locs[PNPBIOSCF_INDEX] = aa->idx;
if (matchonly)
return (config_search_loc(pnpbios_submatch, (struct device *)sc,
"pnpbios", ldesc, aa) != NULL);
"pnpbios", locs, aa) != NULL);
else
return (config_found_sm_loc((struct device *)sc, "pnpbios",
ldesc, aa, pnpbios_print, pnpbios_submatch)
locs, aa, pnpbios_print, pnpbios_submatch)
!= NULL);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: aubus.c,v 1.13 2005/06/28 19:46:47 drochner Exp $ */
/* $NetBSD: aubus.c,v 1.14 2005/08/25 18:35:39 drochner Exp $ */
/*
* Copyright 2001 Wasabi Systems, Inc.
@ -66,7 +66,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: aubus.c,v 1.13 2005/06/28 19:46:47 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: aubus.c,v 1.14 2005/08/25 18:35:39 drochner Exp $");
#include "locators.h"
@ -181,11 +181,11 @@ aubus_match(struct device *parent, struct cfdata *match, void *aux)
static int
aubus_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[AUBUSCF_ADDR] != AUBUSCF_ADDR_DEFAULT &&
cf->cf_loc[AUBUSCF_ADDR] != ldesc->locs[AUBUSCF_ADDR])
cf->cf_loc[AUBUSCF_ADDR] != locs[AUBUSCF_ADDR])
return (0);
return (config_match(parent, cf, aux));
@ -200,8 +200,7 @@ aubus_attach(struct device *parent, struct device *self, void *aux)
struct aubus_attach_args aa;
struct device *sc = (struct device *)self;
const struct au1x00_dev *ad;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[AUBUSCF_NLOCS];
printf("\n");
@ -231,10 +230,9 @@ aubus_attach(struct device *parent, struct device *self, void *aux)
aa.aa_irq[0] = ad->irq[0];
aa.aa_irq[1] = ad->irq[1];
ldesc->len = 1;
ldesc->locs[AUBUSCF_ADDR] = ad->addr[0];
locs[AUBUSCF_ADDR] = ad->addr[0];
(void) config_found_sm_loc(self, "aubus", ldesc, &aa,
(void) config_found_sm_loc(self, "aubus", locs, &aa,
aubus_print, aubus_submatch);
}
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: sbobio.c,v 1.13 2004/09/13 14:57:31 drochner Exp $ */
/* $NetBSD: sbobio.c,v 1.14 2005/08/25 18:35:39 drochner Exp $ */
/*
* Copyright 2000, 2001
@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: sbobio.c,v 1.13 2004/09/13 14:57:31 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: sbobio.c,v 1.14 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/device.h>
@ -137,8 +137,7 @@ sbobio_attach(struct device *parent, struct device *self, void *aux)
const struct sbobio_attach_locs *devs;
uint64_t sysrev;
int i, devcount;
int help[4];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[SBOBIOCF_NLOCS];
sysrev = mips3_ld((u_int64_t *)MIPS_PHYS_TO_KSEG1(A_SCD_SYSTEM_REVISION));
switch (SYS_SOC_TYPE(sysrev)) {
@ -175,12 +174,11 @@ sbobio_attach(struct device *parent, struct device *self, void *aux)
sa.sa_base = A_PHYS_IO_SYSTEM;
sa.sa_locs = devs[i];
ldesc->len = 3;
ldesc->locs[SBOBIOCF_OFFSET] = devs[i].sa_offset;
ldesc->locs[SBOBIOCF_INTR + 0] = devs[i].sa_intr[0];
ldesc->locs[SBOBIOCF_INTR + 1] = devs[i].sa_intr[1];
locs[SBOBIOCF_OFFSET] = devs[i].sa_offset;
locs[SBOBIOCF_INTR + 0] = devs[i].sa_intr[0];
locs[SBOBIOCF_INTR + 1] = devs[i].sa_intr[1];
config_found_sm_loc(self, "sbobio", ldesc, &sa,
config_found_sm_loc(self, "sbobio", locs, &sa,
sbobio_print, sbobio_submatch);
}
return;
@ -206,18 +204,18 @@ sbobio_print(void *aux, const char *pnp)
static int
sbobio_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
int i;
if (cf->cf_loc[SBOBIOCF_OFFSET] != SBOBIOCF_OFFSET_DEFAULT &&
cf->cf_loc[SBOBIOCF_OFFSET] != ldesc->locs[SBOBIOCF_OFFSET])
cf->cf_loc[SBOBIOCF_OFFSET] != locs[SBOBIOCF_OFFSET])
return (0);
for (i = 0; i < 2; i++) {
if (cf->cf_loc[SBOBIOCF_INTR + i] != SBOBIOCF_INTR_DEFAULT &&
cf->cf_loc[SBOBIOCF_INTR + i]
!= ldesc->locs[SBOBIOCF_INTR + i])
!= locs[SBOBIOCF_INTR + i])
return (0);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: sbscd.c,v 1.9 2004/09/13 14:57:31 drochner Exp $ */
/* $NetBSD: sbscd.c,v 1.10 2005/08/25 18:35:39 drochner Exp $ */
/*
* Copyright 2000, 2001
@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: sbscd.c,v 1.9 2004/09/13 14:57:31 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: sbscd.c,v 1.10 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/device.h>
@ -87,8 +87,7 @@ sbscd_attach(struct device *parent, struct device *self, void *aux)
{
struct sbscd_attach_args sa;
int i;
int help[4];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[SBSCDCF_NLOCS];
printf("\n");
@ -97,14 +96,13 @@ sbscd_attach(struct device *parent, struct device *self, void *aux)
sa.sa_base = 0x10000000; /* XXXCGD */
sa.sa_locs = sb1250_sbscd_devs[i];
ldesc->len = 3;
ldesc->locs[SBSCDCF_OFFSET] = sb1250_sbscd_devs[i].sa_offset;
ldesc->locs[SBSCDCF_INTR + 0] =
locs[SBSCDCF_OFFSET] = sb1250_sbscd_devs[i].sa_offset;
locs[SBSCDCF_INTR + 0] =
sb1250_sbscd_devs[i].sa_intr[0];
ldesc->locs[SBSCDCF_INTR + 1] =
locs[SBSCDCF_INTR + 1] =
sb1250_sbscd_devs[i].sa_intr[1];
config_found_sm_loc(self, "sbscd", ldesc, &sa,
config_found_sm_loc(self, "sbscd", locs, &sa,
sbscd_print, sbscd_submatch);
}
return;
@ -130,18 +128,18 @@ sbscd_print(void *aux, const char *pnp)
static int
sbscd_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
int i;
if (cf->cf_loc[SBSCDCF_OFFSET] != SBSCDCF_OFFSET_DEFAULT &&
cf->cf_loc[SBSCDCF_OFFSET] != ldesc->locs[SBSCDCF_OFFSET])
cf->cf_loc[SBSCDCF_OFFSET] != locs[SBSCDCF_OFFSET])
return (0);
for (i = 0; i < 2; i++) {
if (cf->cf_loc[SBSCDCF_INTR + i] != SBSCDCF_INTR_DEFAULT &&
cf->cf_loc[SBSCDCF_INTR + i]
!= ldesc->locs[SBSCDCF_INTR + i])
!= locs[SBSCDCF_INTR + i])
return (0);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: sbsmbus.c,v 1.9 2004/09/13 14:57:31 drochner Exp $ */
/* $NetBSD: sbsmbus.c,v 1.10 2005/08/25 18:35:39 drochner Exp $ */
/*
* Copyright 2002 Wasabi Systems, Inc.
@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: sbsmbus.c,v 1.9 2004/09/13 14:57:31 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: sbsmbus.c,v 1.10 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/device.h>
@ -87,8 +87,7 @@ smbus_attach(struct device *parent, struct device *self, void *aux)
{
struct smbus_attach_args sa;
int i;
int help[3];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[SMBUSCF_NLOCS];
found++;
printf("\n");
@ -101,11 +100,10 @@ smbus_attach(struct device *parent, struct device *self, void *aux)
sa.sa_interface = smbus_devs[i].sa_interface;
sa.sa_device = smbus_devs[i].sa_device;
ldesc->len = 2;
ldesc->locs[SMBUSCF_CHAN] = 0; /* XXX */
ldesc->locs[SMBUSCF_DEV] = smbus_devs[i].sa_device;
locs[SMBUSCF_CHAN] = 0; /* XXX */
locs[SMBUSCF_DEV] = smbus_devs[i].sa_device;
config_found_sm_loc(self, "smbus", ldesc, &sa,
config_found_sm_loc(self, "smbus", locs, &sa,
smbus_print, smbus_submatch);
}
}
@ -125,14 +123,14 @@ smbus_print(void *aux, const char *pnp)
static int
smbus_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[SMBUSCF_CHAN] != SMBUSCF_CHAN_DEFAULT &&
cf->cf_loc[SMBUSCF_CHAN] != ldesc->locs[SMBUSCF_CHAN])
cf->cf_loc[SMBUSCF_CHAN] != locs[SMBUSCF_CHAN])
return (0);
if (cf->cf_loc[SMBUSCF_DEV] != SMBUSCF_DEV_DEFAULT &&
cf->cf_loc[SMBUSCF_DEV] != ldesc->locs[SMBUSCF_DEV])
cf->cf_loc[SMBUSCF_DEV] != locs[SMBUSCF_DEV])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: ibus.c,v 1.10 2004/09/13 14:57:31 drochner Exp $ */
/* $NetBSD: ibus.c,v 1.11 2005/08/25 18:35:39 drochner Exp $ */
/*
* Copyright (c) 1998 Jonathan Stone. All rights reserved.
@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h> /* RCS ID & Copyright macro defns */
__KERNEL_RCSID(0, "$NetBSD: ibus.c,v 1.10 2004/09/13 14:57:31 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: ibus.c,v 1.11 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -53,8 +53,7 @@ ibusattach(parent, self, aux)
struct ibus_dev_attach_args *ida = aux;
struct ibus_attach_args *ia;
int i;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[IBUSCF_NLOCS];
printf("\n");
@ -69,24 +68,23 @@ ibusattach(parent, self, aux)
badaddr((caddr_t)ia->ia_addr, ia->ia_basz) != 0)
continue;
ldesc->len = 1;
ldesc->locs[IBUSCF_ADDR] = MIPS_KSEG1_TO_PHYS(ia->ia_addr);
locs[IBUSCF_ADDR] = MIPS_KSEG1_TO_PHYS(ia->ia_addr);
config_found_sm_loc(self, "ibus", ldesc, ia,
config_found_sm_loc(self, "ibus", locs, ia,
ibusprint, ibussubmatch);
}
}
static int
ibussubmatch(parent, cf, ldesc, aux)
ibussubmatch(parent, cf, locs, aux)
struct device *parent;
struct cfdata *cf;
const locdesc_t *ldesc;
const locdesc_t *locs;
void *aux;
{
if (cf->cf_loc[IBUSCF_ADDR] != IBUSCF_ADDR_DEFAULT &&
cf->cf_loc[IBUSCF_ADDR] != ldesc->locs[IBUSCF_ADDR])
cf->cf_loc[IBUSCF_ADDR] != locs[IBUSCF_ADDR])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: sab.c,v 1.21 2005/05/31 00:50:28 christos Exp $ */
/* $NetBSD: sab.c,v 1.22 2005/08/25 18:35:39 drochner Exp $ */
/* $OpenBSD: sab.c,v 1.7 2002/04/08 17:49:42 jason Exp $ */
/*
@ -42,7 +42,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: sab.c,v 1.21 2005/05/31 00:50:28 christos Exp $");
__KERNEL_RCSID(0, "$NetBSD: sab.c,v 1.22 2005/08/25 18:35:39 drochner Exp $");
#include <sys/types.h>
#include <sys/param.h>
@ -242,8 +242,7 @@ sab_attach(parent, self, aux)
struct ebus_attach_args *ea = aux;
u_int8_t r;
u_int i;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[SABCF_NLOCS];
sc->sc_bt = ea->ea_bustag;
sc->sc_node = ea->ea_node;
@ -303,12 +302,11 @@ sab_attach(parent, self, aux)
stax.sbt_portno = i;
ldesc->len = 1;
ldesc->locs[SABCF_CHANNEL] = i;
locs[SABCF_CHANNEL] = i;
sc->sc_child[i] =
(struct sabtty_softc *)config_found_sm_loc(self,
"sab", ldesc, &stax, sab_print, sab_submatch);
"sab", locs, &stax, sab_print, sab_submatch);
if (sc->sc_child[i] != NULL)
sc->sc_nchild++;
}
@ -316,11 +314,11 @@ sab_attach(parent, self, aux)
int
sab_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[SABCF_CHANNEL] != SABCF_CHANNEL_DEFAULT &&
cf->cf_loc[SABCF_CHANNEL] != ldesc->locs[SABCF_CHANNEL])
cf->cf_loc[SABCF_CHANNEL] != locs[SABCF_CHANNEL])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: ata_raid.c,v 1.14 2005/07/18 15:21:48 briggs Exp $ */
/* $NetBSD: ata_raid.c,v 1.15 2005/08/25 18:35:39 drochner Exp $ */
/*
* Copyright (c) 2003 Wasabi Systems, Inc.
@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: ata_raid.c,v 1.14 2005/07/18 15:21:48 briggs Exp $");
__KERNEL_RCSID(0, "$NetBSD: ata_raid.c,v 1.15 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/buf.h>
@ -191,8 +191,7 @@ static void
ataraid_attach(struct device *parent, struct device *self, void *aux)
{
struct ataraid_array_info *aai;
int help[3];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[ATARAIDCF_NLOCS];
/*
* We're a pseudo-device, so we get to announce our own
@ -203,11 +202,10 @@ ataraid_attach(struct device *parent, struct device *self, void *aux)
ataraid_array_info_count == 1 ? "" : "s");
TAILQ_FOREACH(aai, &ataraid_array_info_list, aai_list) {
ldesc->len = 2;
ldesc->locs[ATARAIDCF_VENDTYPE] = aai->aai_type;
ldesc->locs[ATARAIDCF_UNIT] = aai->aai_arrayno;
locs[ATARAIDCF_VENDTYPE] = aai->aai_type;
locs[ATARAIDCF_UNIT] = aai->aai_arrayno;
config_found_sm_loc(self, "ataraid", NULL, aai,
config_found_sm_loc(self, "ataraid", locs, aai,
ataraid_print, ataraid_submatch);
}
}
@ -235,15 +233,15 @@ ataraid_print(void *aux, const char *pnp)
*/
static int
ataraid_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[ATARAIDCF_VENDTYPE] != ATARAIDCF_VENDTYPE_DEFAULT &&
cf->cf_loc[ATARAIDCF_VENDTYPE] != ldesc->locs[ATARAIDCF_VENDTYPE])
cf->cf_loc[ATARAIDCF_VENDTYPE] != locs[ATARAIDCF_VENDTYPE])
return (0);
if (cf->cf_loc[ATARAIDCF_UNIT] != ATARAIDCF_UNIT_DEFAULT &&
cf->cf_loc[ATARAIDCF_UNIT] != ldesc->locs[ATARAIDCF_UNIT])
cf->cf_loc[ATARAIDCF_UNIT] != locs[ATARAIDCF_UNIT])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: cardbus.c,v 1.61 2005/02/27 00:26:59 perry Exp $ */
/* $NetBSD: cardbus.c,v 1.62 2005/08/25 18:35:39 drochner Exp $ */
/*
* Copyright (c) 1997, 1998, 1999 and 2000
@ -33,7 +33,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: cardbus.c,v 1.61 2005/02/27 00:26:59 perry Exp $");
__KERNEL_RCSID(0, "$NetBSD: cardbus.c,v 1.62 2005/08/25 18:35:39 drochner Exp $");
#include "opt_cardbus.h"
@ -477,8 +477,7 @@ cardbus_rescan(struct device *self, const char *ifattr, const int *locators)
for (function = 0; function < nfunction; function++) {
struct cardbus_attach_args ca;
int help[3];
locdesc_t *ldesc = (void *)&help; /* XXX */
int locs[CARDBUSCF_NLOCS];
if (locators[CARDBUSCF_FUNCTION] !=
CARDBUSCF_FUNCTION_DEFAULT &&
@ -592,11 +591,10 @@ cardbus_rescan(struct device *self, const char *ifattr, const int *locators)
}
}
ldesc->len = 2;
ldesc->locs[CARDBUSCF_DEV] = sc->sc_device; /* always 0 */
ldesc->locs[CARDBUSCF_FUNCTION] = function;
locs[CARDBUSCF_DEV] = sc->sc_device; /* always 0 */
locs[CARDBUSCF_FUNCTION] = function;
if ((csc = config_found_sm_loc((void *)sc, "cardbus", ldesc,
if ((csc = config_found_sm_loc((void *)sc, "cardbus", locs,
&ca, cardbusprint, cardbussubmatch)) == NULL) {
/* do not match */
disable_function(sc, function);
@ -618,16 +616,16 @@ cardbus_rescan(struct device *self, const char *ifattr, const int *locators)
static int
cardbussubmatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
/* ldesc->locs[CARDBUSCF_DEV] is always 0 */
if (cf->cf_loc[CARDBUSCF_DEV] != CARDBUSCF_DEV_DEFAULT &&
cf->cf_loc[CARDBUSCF_DEV] != ldesc->locs[CARDBUSCF_DEV]) {
cf->cf_loc[CARDBUSCF_DEV] != locs[CARDBUSCF_DEV]) {
return (0);
}
if (cf->cf_loc[CARDBUSCF_FUNCTION] != CARDBUSCF_FUNCTION_DEFAULT &&
cf->cf_loc[CARDBUSCF_FUNCTION] != ldesc->locs[CARDBUSCF_FUNCTION]) {
cf->cf_loc[CARDBUSCF_FUNCTION] != locs[CARDBUSCF_FUNCTION]) {
return (0);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: eisa.c,v 1.36 2005/02/27 00:26:59 perry Exp $ */
/* $NetBSD: eisa.c,v 1.37 2005/08/25 18:35:39 drochner Exp $ */
/*
* Copyright (c) 1995, 1996 Christopher G. Demetriou
@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: eisa.c,v 1.36 2005/02/27 00:26:59 perry Exp $");
__KERNEL_RCSID(0, "$NetBSD: eisa.c,v 1.37 2005/08/25 18:35:39 drochner Exp $");
#include "opt_eisaverbose.h"
@ -90,11 +90,11 @@ eisaprint(void *aux, const char *pnp)
static int
eisasubmatch(struct device *parent, struct cfdata *cf,
const locdesc_t * ldesc, void *aux)
const locdesc_t * locs, void *aux)
{
if (cf->cf_loc[EISACF_SLOT] != EISACF_SLOT_DEFAULT &&
cf->cf_loc[EISACF_SLOT] != ldesc->locs[EISACF_SLOT])
cf->cf_loc[EISACF_SLOT] != locs[EISACF_SLOT])
return (0);
return (config_match(parent, cf, aux));
}
@ -128,8 +128,7 @@ eisaattach(struct device *parent, struct device *self, void *aux)
u_int slotaddr;
bus_space_handle_t slotioh;
int i;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[EISACF_NLOCS];
ea.ea_iot = iot;
ea.ea_memt = memt;
@ -192,11 +191,10 @@ eisaattach(struct device *parent, struct device *self, void *aux)
/* We no longer need the I/O handle; free it. */
bus_space_unmap(iot, slotioh, EISA_SLOT_SIZE);
ldesc->len = 1;
ldesc->locs[EISACF_SLOT] = slot;
locs[EISACF_SLOT] = slot;
/* Attach matching device. */
config_found_sm_loc(self, "eisa", ldesc, &ea,
config_found_sm_loc(self, "eisa", locs, &ea,
eisaprint, eisasubmatch);
}
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: iop.c,v 1.48 2005/05/30 04:37:42 christos Exp $ */
/* $NetBSD: iop.c,v 1.49 2005/08/25 18:35:39 drochner Exp $ */
/*-
* Copyright (c) 2000, 2001, 2002 The NetBSD Foundation, Inc.
@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: iop.c,v 1.48 2005/05/30 04:37:42 christos Exp $");
__KERNEL_RCSID(0, "$NetBSD: iop.c,v 1.49 2005/08/25 18:35:39 drochner Exp $");
#include "opt_i2o.h"
#include "iop.h"
@ -486,8 +486,7 @@ iop_config_interrupts(struct device *self)
struct iop_softc *sc, *iop;
struct i2o_systab_entry *ste;
int rv, i, niop;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[IOPCF_NLOCS];
sc = (struct iop_softc *)self;
LIST_INIT(&sc->sc_iilist);
@ -591,9 +590,8 @@ iop_config_interrupts(struct device *self)
*/
ia.ia_class = I2O_CLASS_ANY;
ia.ia_tid = I2O_TID_IOP;
ldesc->len = 1;
ldesc->locs[IOPCF_TID] = I2O_TID_IOP;
config_found_sm_loc(self, "iop", ldesc, &ia, iop_print, iop_submatch);
locs[IOPCF_TID] = I2O_TID_IOP;
config_found_sm_loc(self, "iop", locs, &ia, iop_print, iop_submatch);
/*
* Start device configuration.
@ -803,8 +801,7 @@ iop_configure_devices(struct iop_softc *sc, int mask, int maskval)
struct device *dv;
int i, j, nent;
u_int usertid;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[IOPCF_NLOCS];
nent = sc->sc_nlctent;
for (i = 0, le = sc->sc_lct->entry; i < nent; i++, le++) {
@ -841,10 +838,9 @@ iop_configure_devices(struct iop_softc *sc, int mask, int maskval)
if (ii != NULL)
continue;
ldesc->len = 1;
ldesc->locs[IOPCF_TID] = ia.ia_tid;
locs[IOPCF_TID] = ia.ia_tid;
dv = config_found_sm_loc(&sc->sc_dv, "iop", ldesc, &ia,
dv = config_found_sm_loc(&sc->sc_dv, "iop", locs, &ia,
iop_print, iop_submatch);
if (dv != NULL) {
sc->sc_tidmap[i].it_flags |= IT_CONFIGURED;
@ -904,11 +900,11 @@ iop_print(void *aux, const char *pnp)
static int
iop_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[IOPCF_TID] != IOPCF_TID_DEFAULT &&
cf->cf_loc[IOPCF_TID] != ldesc->locs[IOPCF_TID])
cf->cf_loc[IOPCF_TID] != locs[IOPCF_TID])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: aac.c,v 1.21 2005/06/20 20:40:21 darcy Exp $ */
/* $NetBSD: aac.c,v 1.22 2005/08/25 18:35:39 drochner Exp $ */
/*-
* Copyright (c) 2002 The NetBSD Foundation, Inc.
@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: aac.c,v 1.21 2005/06/20 20:40:21 darcy Exp $");
__KERNEL_RCSID(0, "$NetBSD: aac.c,v 1.22 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -154,13 +154,7 @@ aac_attach(struct aac_softc *sc)
struct aac_ccb *ac;
struct aac_fib *fib;
bus_addr_t fibpa;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX - Not clean
The big plan is to let config(8) issue information
about the length of the locator array in a useful way.
Then the allocation can be centralized. See also
http://mail-index.netbsd.org/tech-kern/2005/02/09/0025.html
*/
int locs[AACCF_NLOCS];
SIMPLEQ_INIT(&sc->sc_ccb_free);
SIMPLEQ_INIT(&sc->sc_ccb_queue);
@ -259,10 +253,9 @@ aac_attach(struct aac_softc *sc)
continue;
aaca.aaca_unit = i;
ldesc->len = 1;
ldesc->locs[AACCF_UNIT] = i;
locs[AACCF_UNIT] = i;
config_found_sm_loc(&sc->sc_dv, "aac", ldesc, &aaca,
config_found_sm_loc(&sc->sc_dv, "aac", locs, &aaca,
aac_print, aac_submatch);
}
@ -316,14 +309,11 @@ aac_print(void *aux, const char *pnp)
*/
static int
aac_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
struct aac_attach_args *aaca;
aaca = aux;
if (cf->cf_loc[AACCF_UNIT] != AACCF_UNIT_DEFAULT &&
cf->cf_loc[AACCF_UNIT] != ldesc->locs[AACCF_UNIT])
cf->cf_loc[AACCF_UNIT] != locs[AACCF_UNIT])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: cac.c,v 1.30 2005/05/30 04:43:46 christos Exp $ */
/* $NetBSD: cac.c,v 1.31 2005/08/25 18:35:39 drochner Exp $ */
/*-
* Copyright (c) 2000 The NetBSD Foundation, Inc.
@ -41,7 +41,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: cac.c,v 1.30 2005/05/30 04:43:46 christos Exp $");
__KERNEL_RCSID(0, "$NetBSD: cac.c,v 1.31 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -101,8 +101,7 @@ cac_init(struct cac_softc *sc, const char *intrstr, int startfw)
int error, rseg, size, i;
bus_dma_segment_t seg;
struct cac_ccb *ccb;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[CACCF_NLOCS];
if (intrstr != NULL)
aprint_normal("%s: interrupting at %s\n", sc->sc_dv.dv_xname,
@ -185,10 +184,9 @@ cac_init(struct cac_softc *sc, const char *intrstr, int startfw)
for (i = 0; i < cinfo.num_drvs; i++) {
caca.caca_unit = i;
ldesc->len = 1;
ldesc->locs[CACCF_UNIT] = i;
locs[CACCF_UNIT] = i;
config_found_sm_loc(&sc->sc_dv, "cac", ldesc, &caca,
config_found_sm_loc(&sc->sc_dv, "cac", locs, &caca,
cac_print, cac_submatch);
}
@ -242,11 +240,11 @@ cac_print(void *aux, const char *pnp)
*/
static int
cac_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[CACCF_UNIT] != CACCF_UNIT_DEFAULT &&
cf->cf_loc[CACCF_UNIT] != ldesc->locs[CACCF_UNIT])
cf->cf_loc[CACCF_UNIT] != locs[CACCF_UNIT])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: i82365.c,v 1.90 2005/05/30 04:43:46 christos Exp $ */
/* $NetBSD: i82365.c,v 1.91 2005/08/25 18:35:39 drochner Exp $ */
/*
* Copyright (c) 2004 Charles M. Hannum. All rights reserved.
@ -49,7 +49,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: i82365.c,v 1.90 2005/05/30 04:43:46 christos Exp $");
__KERNEL_RCSID(0, "$NetBSD: i82365.c,v 1.91 2005/08/25 18:35:39 drochner Exp $");
#define PCICDEBUG
@ -396,8 +396,7 @@ pcic_attach_socket(h)
{
struct pcmciabus_attach_args paa;
struct pcic_softc *sc = (struct pcic_softc *)h->ph_parent;
int help[3];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[PCMCIABUSCF_NLOCS];
/* initialize the rest of the handle */
@ -414,11 +413,10 @@ pcic_attach_socket(h)
paa.iobase = sc->iobase;
paa.iosize = sc->iosize;
ldesc->len = 2;
ldesc->locs[PCMCIABUSCF_CONTROLLER] = h->chip;
ldesc->locs[PCMCIABUSCF_SOCKET] = h->socket;
locs[PCMCIABUSCF_CONTROLLER] = h->chip;
locs[PCMCIABUSCF_SOCKET] = h->socket;
h->pcmcia = config_found_sm_loc(&sc->dev, "pcmciabus", ldesc, &paa,
h->pcmcia = config_found_sm_loc(&sc->dev, "pcmciabus", locs, &paa,
pcic_print, pcic_submatch);
if (h->pcmcia == NULL) {
h->flags &= ~PCIC_FLAG_SOCKETP;
@ -642,18 +640,18 @@ pcic_event_thread(arg)
}
int
pcic_submatch(parent, cf, ldesc, aux)
pcic_submatch(parent, cf, locs, aux)
struct device *parent;
struct cfdata *cf;
const locdesc_t *ldesc;
const locdesc_t *locs;
void *aux;
{
if (cf->cf_loc[PCMCIABUSCF_CONTROLLER] != PCMCIABUSCF_CONTROLLER_DEFAULT &&
cf->cf_loc[PCMCIABUSCF_CONTROLLER] != ldesc->locs[PCMCIABUSCF_CONTROLLER])
cf->cf_loc[PCMCIABUSCF_CONTROLLER] != locs[PCMCIABUSCF_CONTROLLER])
return 0;
if (cf->cf_loc[PCMCIABUSCF_SOCKET] != PCMCIABUSCF_SOCKET_DEFAULT &&
cf->cf_loc[PCMCIABUSCF_SOCKET] != ldesc->locs[PCMCIABUSCF_SOCKET])
cf->cf_loc[PCMCIABUSCF_SOCKET] != locs[PCMCIABUSCF_SOCKET])
return 0;
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: icp.c,v 1.14 2005/02/27 00:27:01 perry Exp $ */
/* $NetBSD: icp.c,v 1.15 2005/08/25 18:35:39 drochner Exp $ */
/*-
* Copyright (c) 2002, 2003 The NetBSD Foundation, Inc.
@ -83,7 +83,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: icp.c,v 1.14 2005/02/27 00:27:01 perry Exp $");
__KERNEL_RCSID(0, "$NetBSD: icp.c,v 1.15 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -141,8 +141,7 @@ icp_init(struct icp_softc *icp, const char *intrstr)
struct icp_ccb *ic;
u_int16_t cdev_cnt;
int i, j, state, feat, nsegs, rv;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[ICPCF_NLOCS];
state = 0;
@ -385,11 +384,10 @@ icp_init(struct icp_softc *icp, const char *intrstr)
icpa.icpa_unit = j + ICPA_UNIT_SCSI;
ldesc->len = 1;
ldesc->locs[ICPCF_UNIT] = j + ICPA_UNIT_SCSI;
locs[ICPCF_UNIT] = j + ICPA_UNIT_SCSI;
icp->icp_children[icpa.icpa_unit] =
config_found_sm_loc(&icp->icp_dv, "icp", ldesc,
config_found_sm_loc(&icp->icp_dv, "icp", locs,
&icpa, icp_print, icp_submatch);
}
}
@ -404,11 +402,10 @@ icp_init(struct icp_softc *icp, const char *intrstr)
icpa.icpa_unit = j;
ldesc->len = 1;
ldesc->locs[ICPCF_UNIT] = j;
locs[ICPCF_UNIT] = j;
icp->icp_children[icpa.icpa_unit] =
config_found_sm_loc(&icp->icp_dv, "icp", ldesc,
config_found_sm_loc(&icp->icp_dv, "icp", locs,
&icpa, icp_print, icp_submatch);
}
}
@ -457,8 +454,7 @@ icp_rescan(struct icp_softc *icp, int unit)
{
struct icp_attach_args icpa;
u_int newsize, newtype;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[ICPCF_NLOCS];
/*
* NOTE: It is very important that the queue be frozen and not
@ -531,11 +527,10 @@ icp_rescan(struct icp_softc *icp, int unit)
icpa.icpa_unit = unit;
ldesc->len = 1;
ldesc->locs[ICPCF_UNIT] = unit;
locs[ICPCF_UNIT] = unit;
icp->icp_children[unit] = config_found_sm_loc(&icp->icp_dv,
"icp", ldesc, &icpa, icp_print, icp_submatch);
"icp", locs, &icpa, icp_print, icp_submatch);
}
icp_recompute_openings(icp);
@ -649,11 +644,11 @@ icp_print(void *aux, const char *pnp)
int
icp_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[ICPCF_UNIT] != ICPCF_UNIT_DEFAULT &&
cf->cf_loc[ICPCF_UNIT] != ldesc->locs[ICPCF_UNIT])
cf->cf_loc[ICPCF_UNIT] != locs[ICPCF_UNIT])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: mlx.c,v 1.34 2005/07/30 17:37:11 mhitch Exp $ */
/* $NetBSD: mlx.c,v 1.35 2005/08/25 18:35:39 drochner Exp $ */
/*-
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@ -74,7 +74,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: mlx.c,v 1.34 2005/07/30 17:37:11 mhitch Exp $");
__KERNEL_RCSID(0, "$NetBSD: mlx.c,v 1.35 2005/08/25 18:35:39 drochner Exp $");
#include "ld.h"
@ -577,8 +577,7 @@ mlx_configure(struct mlx_softc *mlx, int waitok)
struct mlx_attach_args mlxa;
int i, nunits;
u_int size;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[MLXCF_NLOCS];
mlx->mlx_flags |= MLXF_RESCANNING;
@ -643,11 +642,10 @@ mlx_configure(struct mlx_softc *mlx, int waitok)
*/
mlxa.mlxa_unit = i;
ldesc->len = 1;
ldesc->locs[MLXCF_UNIT] = i;
locs[MLXCF_UNIT] = i;
ms->ms_dv = config_found_sm_loc(&mlx->mlx_dv, "mlx", NULL, &mlxa, mlx_print,
mlx_submatch);
ms->ms_dv = config_found_sm_loc(&mlx->mlx_dv, "mlx", locs,
&mlxa, mlx_print, mlx_submatch);
nunits += (ms->ms_dv != NULL);
}
@ -681,11 +679,11 @@ mlx_print(void *aux, const char *pnp)
*/
static int
mlx_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[MLXCF_UNIT] != MLXCF_UNIT_DEFAULT &&
cf->cf_loc[MLXCF_UNIT] != ldesc->locs[MLXCF_UNIT])
cf->cf_loc[MLXCF_UNIT] != locs[MLXCF_UNIT])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: tcic2.c,v 1.20 2005/05/30 04:43:47 christos Exp $ */
/* $NetBSD: tcic2.c,v 1.21 2005/08/25 18:35:39 drochner Exp $ */
/*
* Copyright (c) 1998, 1999 Christoph Badura. All rights reserved.
@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: tcic2.c,v 1.20 2005/05/30 04:43:47 christos Exp $");
__KERNEL_RCSID(0, "$NetBSD: tcic2.c,v 1.21 2005/08/25 18:35:39 drochner Exp $");
#undef TCICDEBUG
@ -412,8 +412,7 @@ tcic_attach_socket(h)
struct tcic_handle *h;
{
struct pcmciabus_attach_args paa;
int help[3];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[PCMCIABUSCF_NLOCS];
/* initialize the rest of the handle */
@ -430,11 +429,10 @@ tcic_attach_socket(h)
paa.iobase = h->sc->iobase;
paa.iosize = h->sc->iosize;
ldesc->len = 2;
ldesc->locs[PCMCIABUSCF_CONTROLLER] = 0;
ldesc->locs[PCMCIABUSCF_SOCKET] = h->sock;
locs[PCMCIABUSCF_CONTROLLER] = 0;
locs[PCMCIABUSCF_SOCKET] = h->sock;
h->pcmcia = config_found_sm_loc(&h->sc->dev, "pcmciabus", ldesc, &paa,
h->pcmcia = config_found_sm_loc(&h->sc->dev, "pcmciabus", locs, &paa,
tcic_print, tcic_submatch);
/* if there's actually a pcmcia device attached, initialize the slot */
@ -538,18 +536,18 @@ tcic_init_socket(h)
}
int
tcic_submatch(parent, cf, ldesc, aux)
tcic_submatch(parent, cf, locs, aux)
struct device *parent;
struct cfdata *cf;
const locdesc_t *ldesc;
const locdesc_t *locs;
void *aux;
{
if (cf->cf_loc[PCMCIABUSCF_CONTROLLER] != PCMCIABUSCF_CONTROLLER_DEFAULT &&
cf->cf_loc[PCMCIABUSCF_CONTROLLER] != ldesc->locs[PCMCIABUSCF_CONTROLLER])
cf->cf_loc[PCMCIABUSCF_CONTROLLER] != locs[PCMCIABUSCF_CONTROLLER])
return 0;
if (cf->cf_loc[PCMCIABUSCF_SOCKET] != PCMCIABUSCF_SOCKET_DEFAULT &&
cf->cf_loc[PCMCIABUSCF_SOCKET] != ldesc->locs[PCMCIABUSCF_SOCKET])
cf->cf_loc[PCMCIABUSCF_SOCKET] != locs[PCMCIABUSCF_SOCKET])
return 0;
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: upc.c,v 1.9 2005/02/27 00:27:03 perry Exp $ */
/* $NetBSD: upc.c,v 1.10 2005/08/25 18:35:39 drochner Exp $ */
/*-
* Copyright (c) 2000, 2003 Ben Harris
* All rights reserved.
@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: upc.c,v 1.9 2005/02/27 00:27:03 perry Exp $");
__KERNEL_RCSID(0, "$NetBSD: upc.c,v 1.10 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/device.h>
@ -211,8 +211,7 @@ upc_found(struct upc_softc *sc, char const *devtype, int offset, int size,
struct upc_irqhandle *uih)
{
struct upc_attach_args ua;
int help[2];
locdesc_t *ldesc = (void *)help;
int locs[UPCCF_NLOCS];
ua.ua_devtype = devtype;
ua.ua_offset = offset;
@ -220,10 +219,9 @@ upc_found(struct upc_softc *sc, char const *devtype, int offset, int size,
bus_space_subregion(sc->sc_iot, sc->sc_ioh, offset, size, &ua.ua_ioh);
ua.ua_irqhandle = uih;
ldesc->len = 1;
ldesc->locs[UPCCF_OFFSET] = offset;
locs[UPCCF_OFFSET] = offset;
config_found_sm_loc(&sc->sc_dev, "upc", ldesc, &ua,
config_found_sm_loc(&sc->sc_dev, "upc", locs, &ua,
upc_print, upc_submatch);
}
@ -232,8 +230,7 @@ upc_found2(struct upc_softc *sc, char const *devtype, int offset, int size,
int offset2, int size2, struct upc_irqhandle *uih)
{
struct upc_attach_args ua;
int help[2];
locdesc_t *ldesc = (void *)help;
int locs[UPCCF_NLOCS];
ua.ua_devtype = devtype;
ua.ua_offset = offset;
@ -243,10 +240,9 @@ upc_found2(struct upc_softc *sc, char const *devtype, int offset, int size,
&ua.ua_ioh2);
ua.ua_irqhandle = uih;
ldesc->len = 1;
ldesc->locs[UPCCF_OFFSET] = offset;
locs[UPCCF_OFFSET] = offset;
config_found_sm_loc(&sc->sc_dev, "upc", ldesc, &ua,
config_found_sm_loc(&sc->sc_dev, "upc", locs, &ua,
upc_print, upc_submatch);
}
@ -307,13 +303,13 @@ upc_print(void *aux, char const *pnp)
static int
upc_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
struct upc_attach_args *ua = aux;
if (strcmp(cf->cf_name, ua->ua_devtype) == 0 &&
(cf->cf_loc[UPCCF_OFFSET] == UPCCF_OFFSET_DEFAULT ||
cf->cf_loc[UPCCF_OFFSET] == ldesc->locs[UPCCF_OFFSET]))
cf->cf_loc[UPCCF_OFFSET] == locs[UPCCF_OFFSET]))
return config_match(parent, cf, aux);
return 0;
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: firewire.c,v 1.2 2005/07/20 15:11:57 drochner Exp $ */
/* $NetBSD: firewire.c,v 1.3 2005/08/25 18:35:39 drochner Exp $ */
/*-
* Copyright (c) 2003 Hidetoshi Shimokawa
* Copyright (c) 1998-2002 Katsushi Kobayashi and Hidetoshi Shimokawa
@ -558,14 +558,14 @@ firewire_resume(device_t dev)
#elif defined(__NetBSD__)
static int
firewiresubmatch(
struct device *parent, struct cfdata *cf, const locdesc_t *ldesc, void *aux)
struct device *parent, struct cfdata *cf, const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[IEEE1394IFCF_EUIHI] != IEEE1394IFCF_EUIHI_DEFAULT &&
cf->cf_loc[IEEE1394IFCF_EUIHI] != ldesc->locs[0])
cf->cf_loc[IEEE1394IFCF_EUIHI] != locs[IEEE1394IFCF_EUIHI])
return (0);
if (cf->cf_loc[IEEE1394IFCF_EUILO] != IEEE1394IFCF_EUILO_DEFAULT &&
cf->cf_loc[IEEE1394IFCF_EUILO] != ldesc->locs[1])
cf->cf_loc[IEEE1394IFCF_EUILO] != locs[IEEE1394IFCF_EUILO])
return (0);
return (config_match(parent, cf, aux));
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: isa.c,v 1.120 2005/05/29 22:12:37 christos Exp $ */
/* $NetBSD: isa.c,v 1.121 2005/08/25 18:35:39 drochner Exp $ */
/*-
* Copyright (c) 1998, 2001 The NetBSD Foundation, Inc.
@ -37,7 +37,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: isa.c,v 1.120 2005/05/29 22:12:37 christos Exp $");
__KERNEL_RCSID(0, "$NetBSD: isa.c,v 1.121 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -139,11 +139,9 @@ isaattach(struct device *parent, struct device *self, void *aux)
int
isarescan(struct device *self, const char *ifattr, const int *locators)
{
int help[8];
locdesc_t *ldesc = (void *)help; /* XXX */;
int locs[ISACF_NLOCS];
ldesc->len = 7;
memcpy(&ldesc->locs, locators, 7 * sizeof(int));
memcpy(locs, locators, sizeof(locs));
/*
* XXX Bus independant code calling this function does not
@ -151,12 +149,12 @@ isarescan(struct device *self, const char *ifattr, const int *locators)
* (should be made available by "config" one day)
* So fixup where the "-1" is not correct.
*/
if (ldesc->locs[ISACF_SIZE] == -1)
ldesc->locs[ISACF_SIZE] = ISACF_SIZE_DEFAULT;
if (ldesc->locs[ISACF_IOSIZ] == -1)
ldesc->locs[ISACF_IOSIZ] = ISACF_IOSIZ_DEFAULT;
if (locs[ISACF_SIZE] == -1)
locs[ISACF_SIZE] = ISACF_SIZE_DEFAULT;
if (locs[ISACF_IOSIZ] == -1)
locs[ISACF_IOSIZ] = ISACF_IOSIZ_DEFAULT;
config_search_loc(isasearch, self, ifattr, ldesc, NULL);
config_search_loc(isasearch, self, ifattr, locs, NULL);
return (0);
}
@ -390,8 +388,7 @@ isasearch(struct device *parent, struct cfdata *cf,
struct isa_drq res_drq[2];
struct isa_softc *sc = (struct isa_softc *)parent;
struct isa_attach_args ia;
int help[8];
locdesc_t *locs = (void *)&help; /* XXX */
int locs[ISACF_NLOCS];
int tryagain;
do {
@ -427,7 +424,7 @@ isasearch(struct device *parent, struct cfdata *cf,
ia.ia_drq = res_drq;
ia.ia_ndrq = 2;
if (!checkattachargs(&ia, ldesc->locs))
if (!checkattachargs(&ia, locs))
return (0);
tryagain = 0;
@ -436,14 +433,13 @@ isasearch(struct device *parent, struct cfdata *cf,
* This is not necessary for detach, but might
* still be useful to collect device information.
*/
locs->len = 7;
locs->locs[ISACF_PORT] = ia.ia_io[0].ir_addr;
locs->locs[ISACF_SIZE] = ia.ia_io[0].ir_size;
locs->locs[ISACF_IOMEM] = ia.ia_iomem[0].ir_addr;
locs->locs[ISACF_IOSIZ] = ia.ia_iomem[0].ir_size;
locs->locs[ISACF_IRQ] = ia.ia_irq[0].ir_irq;
locs->locs[ISACF_DRQ] = ia.ia_drq[0].ir_drq;
locs->locs[ISACF_DRQ2] = ia.ia_drq[1].ir_drq;
locs[ISACF_PORT] = ia.ia_io[0].ir_addr;
locs[ISACF_SIZE] = ia.ia_io[0].ir_size;
locs[ISACF_IOMEM] = ia.ia_iomem[0].ir_addr;
locs[ISACF_IOSIZ] = ia.ia_iomem[0].ir_size;
locs[ISACF_IRQ] = ia.ia_irq[0].ir_irq;
locs[ISACF_DRQ] = ia.ia_drq[0].ir_drq;
locs[ISACF_DRQ2] = ia.ia_drq[1].ir_drq;
config_attach_loc(parent, cf, locs, &ia, isaprint);
tryagain = (cf->cf_fstate == FSTATE_STAR);
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: edc_mca.c,v 1.28 2005/02/27 00:27:21 perry Exp $ */
/* $NetBSD: edc_mca.c,v 1.29 2005/08/25 18:35:39 drochner Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@ -50,7 +50,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: edc_mca.c,v 1.28 2005/02/27 00:27:21 perry Exp $");
__KERNEL_RCSID(0, "$NetBSD: edc_mca.c,v 1.29 2005/08/25 18:35:39 drochner Exp $");
#include "rnd.h"
@ -153,11 +153,11 @@ edc_mca_probe(parent, match, aux)
static int
edcsubmatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[EDCCF_DRIVE] != EDCCF_DRIVE_DEFAULT &&
cf->cf_loc[EDCCF_DRIVE] != ldesc->locs[EDCCF_DRIVE])
cf->cf_loc[EDCCF_DRIVE] != locs[EDCCF_DRIVE])
return (0);
return (config_match(parent, cf, aux));
@ -175,8 +175,7 @@ edc_mca_attach(parent, self, aux)
int irq, drq, iobase;
const char *typestr;
int devno, error;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[EDCCF_NLOCS];
pos2 = mca_conf_read(ma->ma_mc, ma->ma_slot, 2);
pos3 = mca_conf_read(ma->ma_mc, ma->ma_slot, 3);
@ -324,10 +323,9 @@ edc_mca_attach(parent, self, aux)
/* check for attached disks */
for (devno = 0; devno < sc->sc_maxdevs; devno++) {
eda.edc_drive = devno;
ldesc->len = 1;
ldesc->locs[EDCCF_DRIVE] = devno;
locs[EDCCF_DRIVE] = devno;
sc->sc_ed[devno] =
(void *) config_found_sm_loc(self, "edc", ldesc, &eda,
(void *) config_found_sm_loc(self, "edc", locs, &eda,
NULL, edcsubmatch);
/* If initialization did not succeed, NULL the pointer. */

View File

@ -1,4 +1,4 @@
/* $NetBSD: mca.c,v 1.17 2005/02/04 02:10:43 perry Exp $ */
/* $NetBSD: mca.c,v 1.18 2005/08/25 18:35:39 drochner Exp $ */
/*-
* Copyright (c) 2000, 2001 The NetBSD Foundation, Inc.
@ -42,7 +42,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: mca.c,v 1.17 2005/02/04 02:10:43 perry Exp $");
__KERNEL_RCSID(0, "$NetBSD: mca.c,v 1.18 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -118,15 +118,15 @@ mca_print(aux, pnp)
}
int
mca_submatch(parent, cf, ldesc, aux)
mca_submatch(parent, cf, locs, aux)
struct device *parent;
struct cfdata *cf;
const locdesc_t *ldesc;
const locdesc_t *locs;
void *aux;
{
if (cf->cf_loc[MCACF_SLOT] != MCACF_SLOT_DEFAULT &&
cf->cf_loc[MCACF_SLOT] != ldesc->locs[MCACF_SLOT])
cf->cf_loc[MCACF_SLOT] != locs[MCACF_SLOT])
return 0;
return (config_match(parent, cf, aux));
}
@ -162,8 +162,7 @@ mca_attach(parent, self, aux)
for (slot = 0; slot < MCA_MAX_SLOTS; slot++) {
struct mca_attach_args ma;
int reg;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[MCACF_NLOCS];
ma.ma_iot = iot;
ma.ma_memt = memt;
@ -178,12 +177,11 @@ mca_attach(parent, self, aux)
if (ma.ma_id == 0xffff) /* no adapter here */
continue;
ldesc->len = 1;
ldesc->locs[MCACF_SLOT] = slot;
locs[MCACF_SLOT] = slot;
if (ma.ma_pos[2] & MCA_POS2_ENABLE
|| mca_match_disabled(ma.ma_id))
config_found_sm_loc(self, "mca", ldesc, &ma,
config_found_sm_loc(self, "mca", locs, &ma,
mca_print, mca_submatch);
else {
mca_print(&ma, self->dv_xname);

View File

@ -1,4 +1,4 @@
/* $NetBSD: mii.c,v 1.37 2004/09/13 12:55:48 drochner Exp $ */
/* $NetBSD: mii.c,v 1.38 2005/08/25 18:35:39 drochner Exp $ */
/*-
* Copyright (c) 1998, 2000 The NetBSD Foundation, Inc.
@ -43,7 +43,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: mii.c,v 1.37 2004/09/13 12:55:48 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: mii.c,v 1.38 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/device.h>
@ -74,8 +74,7 @@ mii_attach(struct device *parent, struct mii_data *mii, int capmask,
struct mii_softc *child;
int bmsr, offset = 0;
int phymin, phymax;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[MIICF_NLOCS];
if (phyloc != MII_PHY_ANY && offloc != MII_OFFSET_ANY)
panic("mii_attach: phyloc and offloc specified");
@ -144,11 +143,10 @@ mii_attach(struct device *parent, struct mii_data *mii, int capmask,
ma.mii_capmask = capmask;
ma.mii_flags = flags | (mii->mii_flags & MIIF_INHERIT_MASK);
ldesc->len = 1;
ldesc->locs[MIICF_PHY] = ma.mii_phyno;
locs[MIICF_PHY] = ma.mii_phyno;
child = (struct mii_softc *)config_found_sm_loc(parent, "mii",
ldesc, &ma, mii_print, mii_submatch);
locs, &ma, mii_print, mii_submatch);
if (child) {
/*
* Link it up in the parent's MII data.
@ -239,11 +237,11 @@ mii_print(void *aux, const char *pnp)
static int
mii_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[MIICF_PHY] != MIICF_PHY_DEFAULT &&
cf->cf_loc[MIICF_PHY] != ldesc->locs[MIICF_PHY])
cf->cf_loc[MIICF_PHY] != locs[MIICF_PHY])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: amr.c,v 1.27 2005/06/28 00:28:41 thorpej Exp $ */
/* $NetBSD: amr.c,v 1.28 2005/08/25 18:35:39 drochner Exp $ */
/*-
* Copyright (c) 2002, 2003 The NetBSD Foundation, Inc.
@ -71,7 +71,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: amr.c,v 1.27 2005/06/28 00:28:41 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: amr.c,v 1.28 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -257,8 +257,7 @@ amr_attach(struct device *parent, struct device *self, void *aux)
pcireg_t reg;
int rseg, i, j, size, rv, memreg, ioreg;
struct amr_ccb *ac;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[AMRCF_NLOCS];
aprint_naive(": RAID controller\n");
@ -464,11 +463,10 @@ amr_attach(struct device *parent, struct device *self, void *aux)
continue;
amra.amra_unit = j;
ldesc->len = 1;
ldesc->locs[AMRCF_UNIT] = j;
locs[AMRCF_UNIT] = j;
amr->amr_drive[j].al_dv = config_found_sm_loc(&amr->amr_dv,
"amr", ldesc, &amra, amr_print, amr_submatch);
"amr", locs, &amra, amr_print, amr_submatch);
}
SIMPLEQ_INIT(&amr->amr_ccb_queue);
@ -539,14 +537,14 @@ amr_print(void *aux, const char *pnp)
*/
static int
amr_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
struct amr_attach_args *amra;
amra = (struct amr_attach_args *)aux;
if (cf->cf_loc[AMRCF_UNIT] != AMRCF_UNIT_DEFAULT &&
cf->cf_loc[AMRCF_UNIT] != ldesc->locs[AMRCF_UNIT])
cf->cf_loc[AMRCF_UNIT] != locs[AMRCF_UNIT])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: pci.c,v 1.93 2005/06/28 00:28:42 thorpej Exp $ */
/* $NetBSD: pci.c,v 1.94 2005/08/25 18:35:39 drochner Exp $ */
/*
* Copyright (c) 1995, 1996, 1997, 1998
@ -36,7 +36,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: pci.c,v 1.93 2005/06/28 00:28:42 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: pci.c,v 1.94 2005/08/25 18:35:39 drochner Exp $");
#include "opt_pci.h"
@ -245,14 +245,14 @@ pciprint(void *aux, const char *pnp)
int
pcisubmatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[PCICF_DEV] != PCICF_DEV_DEFAULT &&
cf->cf_loc[PCICF_DEV] != ldesc->locs[PCICF_DEV])
cf->cf_loc[PCICF_DEV] != locs[PCICF_DEV])
return (0);
if (cf->cf_loc[PCICF_FUNCTION] != PCICF_FUNCTION_DEFAULT &&
cf->cf_loc[PCICF_FUNCTION] != ldesc->locs[PCICF_FUNCTION])
cf->cf_loc[PCICF_FUNCTION] != locs[PCICF_FUNCTION])
return (0);
return (config_match(parent, cf, aux));
}
@ -265,8 +265,7 @@ pci_probe_device(struct pci_softc *sc, pcitag_t tag,
struct pci_attach_args pa;
pcireg_t id, csr, class, intr, bhlcr;
int ret, pin, bus, device, function;
int help[3];
locdesc_t *ldp = (void *)&help; /* XXX XXX */
int locs[PCICF_NLOCS];
struct device *subdev;
pci_decompose_tag(pc, tag, &bus, &device, &function);
@ -350,11 +349,10 @@ pci_probe_device(struct pci_softc *sc, pcitag_t tag,
if (ret != 0 && pap != NULL)
*pap = pa;
} else {
ldp->len = 2;
ldp->locs[PCICF_DEV] = device;
ldp->locs[PCICF_FUNCTION] = function;
locs[PCICF_DEV] = device;
locs[PCICF_FUNCTION] = function;
subdev = config_found_sm_loc(&sc->sc_dev, "pci", ldp, &pa,
subdev = config_found_sm_loc(&sc->sc_dev, "pci", locs, &pa,
pciprint, pcisubmatch);
sc->PCI_SC_DEVICESC(device, function) = subdev;
ret = (subdev != NULL);

View File

@ -1,4 +1,4 @@
/* $NetBSD: puc.c,v 1.24 2005/06/28 00:28:42 thorpej Exp $ */
/* $NetBSD: puc.c,v 1.25 2005/08/25 18:35:39 drochner Exp $ */
/*
* Copyright (c) 1996, 1998, 1999
@ -53,7 +53,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: puc.c,v 1.24 2005/06/28 00:28:42 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: puc.c,v 1.25 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -155,8 +155,7 @@ puc_attach(struct device *parent, struct device *self, void *aux)
#ifdef PUCCN
bus_space_handle_t ioh;
#endif
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[PUCCF_NLOCS];
subsys = pci_conf_read(pa->pa_pc, pa->pa_tag, PCI_SUBSYS_ID_REG);
sc->sc_desc = puc_find_description(PCI_VENDOR(pa->pa_id),
@ -301,11 +300,10 @@ puc_attach(struct device *parent, struct device *self, void *aux)
(long)paa.t, (long)paa.h);
#endif
ldesc->len = 1;
ldesc->locs[PUCCF_PORT] = i;
locs[PUCCF_PORT] = i;
/* and configure it */
sc->sc_ports[i].dev = config_found_sm_loc(self, "puc", ldesc,
sc->sc_ports[i].dev = config_found_sm_loc(self, "puc", locs,
&paa, puc_print, puc_submatch);
}
}
@ -326,11 +324,11 @@ puc_print(void *aux, const char *pnp)
static int
puc_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[PUCCF_PORT] != PUCCF_PORT_DEFAULT &&
cf->cf_loc[PUCCF_PORT] != ldesc->locs[PUCCF_PORT])
cf->cf_loc[PUCCF_PORT] != locs[PUCCF_PORT])
return 0;
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: twe.c,v 1.68 2005/06/28 00:28:42 thorpej Exp $ */
/* $NetBSD: twe.c,v 1.69 2005/08/25 18:35:39 drochner Exp $ */
/*-
* Copyright (c) 2000, 2001, 2002, 2003, 2004 The NetBSD Foundation, Inc.
@ -70,7 +70,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: twe.c,v 1.68 2005/06/28 00:28:42 thorpej Exp $");
__KERNEL_RCSID(0, "$NetBSD: twe.c,v 1.69 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -551,8 +551,7 @@ twe_add_unit(struct twe_softc *sc, int unit)
int rv;
uint16_t dsize;
uint8_t newtype, newstripe;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[TWECF_NLOCS];
if (unit < 0 || unit >= TWE_MAX_UNITS)
return (EINVAL);
@ -640,10 +639,9 @@ twe_add_unit(struct twe_softc *sc, int unit)
twea.twea_unit = unit;
ldesc->len = 1;
ldesc->locs[TWECF_UNIT] = unit;
locs[TWECF_UNIT] = unit;
td->td_dev = config_found_sm_loc(&sc->sc_dv, "twe", NULL, &twea,
td->td_dev = config_found_sm_loc(&sc->sc_dv, "twe", locs, &twea,
twe_print, twe_submatch);
rv = 0;
@ -780,11 +778,11 @@ twe_print(void *aux, const char *pnp)
*/
static int
twe_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[TWECF_UNIT] != TWECF_UNIT_DEFAULT &&
cf->cf_loc[TWECF_UNIT] != ldesc->locs[TWECF_UNIT])
cf->cf_loc[TWECF_UNIT] != locs[TWECF_UNIT])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: pckbport.c,v 1.4 2004/09/13 12:55:48 drochner Exp $ */
/* $NetBSD: pckbport.c,v 1.5 2005/08/25 18:35:39 drochner Exp $ */
/*
* Copyright (c) 2004 Ben Harris
@ -27,7 +27,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: pckbport.c,v 1.4 2004/09/13 12:55:48 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: pckbport.c,v 1.5 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -120,11 +120,11 @@ pckbport_send_devcmd(struct pckbport_tag *t, pckbport_slot_t slot, u_char val)
static int
pckbport_submatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[PCKBPORTCF_SLOT] != PCKBPORTCF_SLOT_DEFAULT &&
cf->cf_loc[PCKBPORTCF_SLOT] != ldesc->locs[PCKBPORTCF_SLOT])
cf->cf_loc[PCKBPORTCF_SLOT] != locs[PCKBPORTCF_SLOT])
return 0;
return config_match(parent, cf, aux);
}
@ -152,8 +152,7 @@ pckbport_attach_slot(struct device *dev, pckbport_tag_t t,
void *sdata;
struct device *found;
int alloced = 0;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[PCKBPORTCF_NLOCS];
pa.pa_tag = t;
pa.pa_slot = slot;
@ -170,10 +169,9 @@ pckbport_attach_slot(struct device *dev, pckbport_tag_t t,
alloced++;
}
ldesc->len = 1;
ldesc->locs[PCKBPORTCF_SLOT] = slot;
locs[PCKBPORTCF_SLOT] = slot;
found = config_found_sm_loc(dev, "pckbport", ldesc, &pa,
found = config_found_sm_loc(dev, "pckbport", locs, &pa,
pckbportprint, pckbport_submatch);
if (found == NULL && alloced) {

View File

@ -1,4 +1,4 @@
/* $NetBSD: pcmcia.c,v 1.74 2005/08/15 18:58:24 christos Exp $ */
/* $NetBSD: pcmcia.c,v 1.75 2005/08/25 18:35:39 drochner Exp $ */
/*
* Copyright (c) 2004 Charles M. Hannum. All rights reserved.
@ -48,7 +48,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: pcmcia.c,v 1.74 2005/08/15 18:58:24 christos Exp $");
__KERNEL_RCSID(0, "$NetBSD: pcmcia.c,v 1.75 2005/08/25 18:35:39 drochner Exp $");
#include "opt_pcmciaverbose.h"
@ -214,8 +214,7 @@ pcmcia_rescan(struct device *self, const char *ifattr, const int *locators)
struct pcmcia_softc *sc = (struct pcmcia_softc *)self;
struct pcmcia_function *pf;
struct pcmcia_attach_args paa;
int help[3];
locdesc_t *ldesc = (void *)&help; /* XXX */
int locs[PCMCIACF_NLOCS];
if (sc->card.error ||
SIMPLEQ_EMPTY(&sc->card.pf_head)) {
@ -234,16 +233,15 @@ pcmcia_rescan(struct device *self, const char *ifattr, const int *locators)
if (pf->child)
continue;
ldesc->len = 2;
ldesc->locs[PCMCIACF_FUNCTION] = pf->number;
ldesc->locs[PCMCIACF_IRQ] = PCMCIACF_IRQ_DEFAULT;
locs[PCMCIACF_FUNCTION] = pf->number;
locs[PCMCIACF_IRQ] = PCMCIACF_IRQ_DEFAULT;
paa.manufacturer = sc->card.manufacturer;
paa.product = sc->card.product;
paa.card = &sc->card;
paa.pf = pf;
pf->child = config_found_sm_loc(self, "pcmcia", ldesc, &paa,
pf->child = config_found_sm_loc(self, "pcmcia", locs, &paa,
pcmcia_print, pcmcia_submatch);
}
@ -332,15 +330,15 @@ pcmcia_card_deactivate(dev)
}
int
pcmcia_submatch(parent, cf, ldesc, aux)
pcmcia_submatch(parent, cf, locs, aux)
struct device *parent;
const locdesc_t *ldesc;
const locdesc_t *locs;
struct cfdata *cf;
void *aux;
{
if (cf->cf_loc[PCMCIACF_FUNCTION] != PCMCIACF_FUNCTION_DEFAULT &&
cf->cf_loc[PCMCIACF_FUNCTION] != ldesc->locs[PCMCIACF_FUNCTION])
cf->cf_loc[PCMCIACF_FUNCTION] != locs[PCMCIACF_FUNCTION])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: pcmcom.c,v 1.22 2005/02/27 00:27:43 perry Exp $ */
/* $NetBSD: pcmcom.c,v 1.23 2005/08/25 18:35:39 drochner Exp $ */
/*-
* Copyright (c) 1998, 2000, 2004 The NetBSD Foundation, Inc.
@ -51,7 +51,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: pcmcom.c,v 1.22 2005/02/27 00:27:43 perry Exp $");
__KERNEL_RCSID(0, "$NetBSD: pcmcom.c,v 1.23 2005/08/25 18:35:39 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -154,8 +154,7 @@ pcmcom_attach(parent, self, aux)
struct pcmcia_config_entry *cfe;
int slave;
int error;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[PCMCOMCF_NLOCS];
sc->sc_pf = pa->pf;
@ -183,11 +182,10 @@ pcmcom_attach(parent, self, aux)
pca.pca_ioh = cfe->iospace[slave].handle.ioh;
pca.pca_slave = slave;
ldesc->len = 1;
ldesc->locs[PCMCOMCF_SLAVE] = slave;
locs[PCMCOMCF_SLAVE] = slave;
sc->sc_slaves[slave] = config_found_sm_loc(&sc->sc_dev,
"pcmcom", ldesc,
"pcmcom", locs,
&pca, pcmcom_print, pcmcom_submatch);
}
@ -275,15 +273,15 @@ pcmcom_print(aux, pnp)
}
int
pcmcom_submatch(parent, cf, ldesc, aux)
pcmcom_submatch(parent, cf, locs, aux)
struct device *parent;
struct cfdata *cf;
const locdesc_t *ldesc;
const locdesc_t *locs;
void *aux;
{
if (cf->cf_loc[PCMCOMCF_SLAVE] != PCMCOMCF_SLAVE_DEFAULT &&
cf->cf_loc[PCMCOMCF_SLAVE] != ldesc->locs[PCMCOMCF_SLAVE]);
cf->cf_loc[PCMCOMCF_SLAVE] != locs[PCMCOMCF_SLAVE]);
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: scsiconf.c,v 1.230 2005/05/30 04:25:32 christos Exp $ */
/* $NetBSD: scsiconf.c,v 1.231 2005/08/25 18:35:40 drochner Exp $ */
/*-
* Copyright (c) 1998, 1999, 2004 The NetBSD Foundation, Inc.
@ -55,7 +55,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: scsiconf.c,v 1.230 2005/05/30 04:25:32 christos Exp $");
__KERNEL_RCSID(0, "$NetBSD: scsiconf.c,v 1.231 2005/08/25 18:35:40 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -244,14 +244,14 @@ scsibus_config(struct scsipi_channel *chan, void *arg)
static int
scsibussubmatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if (cf->cf_loc[SCSIBUSCF_TARGET] != SCSIBUSCF_TARGET_DEFAULT &&
cf->cf_loc[SCSIBUSCF_TARGET] != ldesc->locs[0])
cf->cf_loc[SCSIBUSCF_TARGET] != locs[SCSIBUSCF_TARGET])
return (0);
if (cf->cf_loc[SCSIBUSCF_LUN] != SCSIBUSCF_LUN_DEFAULT &&
cf->cf_loc[SCSIBUSCF_LUN] != ldesc->locs[1])
cf->cf_loc[SCSIBUSCF_LUN] != locs[SCSIBUSCF_LUN])
return (0);
return (config_match(parent, cf, aux));
}
@ -739,8 +739,7 @@ scsi_probe_device(struct scsibus_softc *sc, int target, int lun)
int checkdtype, priority, docontinue, quirks;
struct scsipibus_attach_args sa;
struct cfdata *cf;
int help[3];
locdesc_t *locd = (void *)&help;
int locs[SCSIBUSCF_NLOCS];
struct device *chld;
/*
@ -954,19 +953,18 @@ scsi_probe_device(struct scsibus_softc *sc, int target, int lun)
if ((periph->periph_quirks & PQUIRK_NOLUNS) == 0)
docontinue = 1;
locd->len = 2;
locd->locs[0] = target;
locd->locs[1] = lun;
locs[SCSIBUSCF_TARGET] = target;
locs[SCSIBUSCF_LUN] = lun;
if ((cf = config_search_loc(scsibussubmatch, &sc->sc_dev,
"scsibus", locd, &sa)) != NULL) {
"scsibus", locs, &sa)) != NULL) {
scsipi_insert_periph(chan, periph);
/*
* XXX Can't assign periph_dev here, because we'll
* XXX need it before config_attach() returns. Must
* XXX assign it in periph driver.
*/
chld = config_attach_loc(&sc->sc_dev, cf, locd, &sa,
chld = config_attach_loc(&sc->sc_dev, cf, locs, &sa,
scsibusprint);
} else {
scsibusprint(&sa, sc->sc_dev.dv_xname);

View File

@ -1,4 +1,4 @@
/* $NetBSD: ioasic_subr.c,v 1.8 2005/02/27 00:27:49 perry Exp $ */
/* $NetBSD: ioasic_subr.c,v 1.9 2005/08/25 18:35:40 drochner Exp $ */
/*
* Copyright (c) 1994, 1995, 1996 Carnegie-Mellon University.
@ -29,7 +29,7 @@
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: ioasic_subr.c,v 1.8 2005/02/27 00:27:49 perry Exp $");
__KERNEL_RCSID(0, "$NetBSD: ioasic_subr.c,v 1.9 2005/08/25 18:35:40 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -58,11 +58,11 @@ ioasicprint(aux, pnp)
int
ioasicsubmatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
if ((cf->cf_loc[IOASICCF_OFFSET] != IOASICCF_OFFSET_DEFAULT) &&
(cf->cf_loc[IOASICCF_OFFSET] != ldesc->locs[IOASICCF_OFFSET]))
(cf->cf_loc[IOASICCF_OFFSET] != locs[IOASICCF_OFFSET]))
return (0);
return (config_match(parent, cf, aux));
@ -76,8 +76,7 @@ ioasic_attach_devs(sc, ioasic_devs, ioasic_ndevs)
{
struct ioasicdev_attach_args idev;
int i;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[IOASICCF_NLOCS];
/*
* Try to configure each device.
@ -90,9 +89,8 @@ ioasic_attach_devs(sc, ioasic_devs, ioasic_ndevs)
idev.iada_cookie = ioasic_devs[i].iad_cookie;
/* Tell the autoconfig machinery we've found the hardware. */
ldesc->len = 1;
ldesc->locs[IOASICCF_OFFSET] = ioasic_devs[i].iad_offset;
config_found_sm_loc(&sc->sc_dv, "ioasic", ldesc, &idev,
locs[IOASICCF_OFFSET] = ioasic_devs[i].iad_offset;
config_found_sm_loc(&sc->sc_dv, "ioasic", locs, &idev,
ioasicprint, ioasicsubmatch);
}
}

View File

@ -1,4 +1,4 @@
/* $NetBSD: tc.c,v 1.40 2005/02/04 02:10:48 perry Exp $ */
/* $NetBSD: tc.c,v 1.41 2005/08/25 18:35:40 drochner Exp $ */
/*
* Copyright (c) 1994, 1995 Carnegie-Mellon University.
@ -28,7 +28,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: tc.c,v 1.40 2005/02/04 02:10:48 perry Exp $");
__KERNEL_RCSID(0, "$NetBSD: tc.c,v 1.41 2005/08/25 18:35:40 drochner Exp $");
#include "opt_tcverbose.h"
@ -82,8 +82,7 @@ tcattach(parent, self, aux)
struct tc_slotdesc *slot;
tc_addr_t tcaddr;
int i;
int help[3];
locdesc_t *ldesc = (void *)&help; /* XXX */
int locs[TCCF_NLOCS];
printf(": %s MHz clock\n",
tba->tba_speed == TC_SPEED_25_MHZ ? "25" : "12.5");
@ -136,13 +135,12 @@ tcattach(parent, self, aux)
*/
sc->sc_slots[builtin->tcb_slot].tcs_used = 1;
ldesc->len = 2;
ldesc->locs[TCCF_SLOT] = builtin->tcb_slot;
ldesc->locs[TCCF_OFFSET] = builtin->tcb_offset;
locs[TCCF_SLOT] = builtin->tcb_slot;
locs[TCCF_OFFSET] = builtin->tcb_offset;
/*
* Attach the device.
*/
config_found_sm_loc(self, "tc", ldesc, &ta,
config_found_sm_loc(self, "tc", locs, &ta,
tcprint, tcsubmatch);
}
@ -180,13 +178,12 @@ tcattach(parent, self, aux)
*/
slot->tcs_used = 1;
ldesc->len = 2;
ldesc->locs[TCCF_SLOT] = i;
ldesc->locs[TCCF_OFFSET] = 0;
locs[TCCF_SLOT] = i;
locs[TCCF_OFFSET] = 0;
/*
* Attach the device.
*/
config_found_sm_loc(self, "tc", ldesc, &ta,
config_found_sm_loc(self, "tc", locs, &ta,
tcprint, tcsubmatch);
}
}
@ -208,18 +205,18 @@ tcprint(aux, pnp)
}
int
tcsubmatch(parent, cf, ldesc, aux)
tcsubmatch(parent, cf, locs, aux)
struct device *parent;
struct cfdata *cf;
const locdesc_t *ldesc;
const locdesc_t *locs;
void *aux;
{
if ((cf->cf_loc[TCCF_SLOT] != TCCF_SLOT_DEFAULT) &&
(cf->cf_loc[TCCF_SLOT] != ldesc->locs[TCCF_SLOT]))
(cf->cf_loc[TCCF_SLOT] != locs[TCCF_SLOT]))
return 0;
if ((cf->cf_loc[TCCF_OFFSET] != TCCF_OFFSET_DEFAULT) &&
(cf->cf_loc[TCCF_OFFSET] != ldesc->locs[TCCF_OFFSET]))
(cf->cf_loc[TCCF_OFFSET] != locs[TCCF_OFFSET]))
return 0;
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: tcds.c,v 1.14 2005/02/27 00:27:49 perry Exp $ */
/* $NetBSD: tcds.c,v 1.15 2005/08/25 18:35:40 drochner Exp $ */
/*-
* Copyright (c) 1998 The NetBSD Foundation, Inc.
@ -65,7 +65,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: tcds.c,v 1.14 2005/02/27 00:27:49 perry Exp $");
__KERNEL_RCSID(0, "$NetBSD: tcds.c,v 1.15 2005/08/25 18:35:40 drochner Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@ -171,8 +171,7 @@ tcdsattach(parent, self, aux)
bus_space_handle_t sbsh[2];
int i, gpi2;
const struct evcnt *pevcnt;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[TCDSCF_NLOCS];
td = tcds_lookup(ta->ta_modname);
if (td == NULL)
@ -308,10 +307,9 @@ tcdsattach(parent, self, aux)
tcds_scsi_reset(tcdsdev.tcdsda_sc);
ldesc->len = 1;
ldesc->locs[TCDSCF_CHIP] = i;
locs[TCDSCF_CHIP] = i;
config_found_sm_loc(self, "tcds", ldesc, &tcdsdev,
config_found_sm_loc(self, "tcds", locs, &tcdsdev,
tcdsprint, tcdssubmatch);
#ifdef __alpha__
/*
@ -326,15 +324,15 @@ tcdsattach(parent, self, aux)
}
int
tcdssubmatch(parent, cf, ldesc, aux)
tcdssubmatch(parent, cf, locs, aux)
struct device *parent;
struct cfdata *cf;
const locdesc_t *ldesc;
const locdesc_t *locs;
void *aux;
{
if (cf->cf_loc[TCDSCF_CHIP] != TCDSCF_CHIP_DEFAULT &&
cf->cf_loc[TCDSCF_CHIP] != ldesc->locs[TCDSCF_CHIP])
cf->cf_loc[TCDSCF_CHIP] != locs[TCDSCF_CHIP])
return (0);
return (config_match(parent, cf, aux));

View File

@ -1,4 +1,4 @@
/* $NetBSD: zs_ioasic.c,v 1.26 2005/06/02 13:11:39 drochner Exp $ */
/* $NetBSD: zs_ioasic.c,v 1.27 2005/08/25 18:35:40 drochner Exp $ */
/*-
* Copyright (c) 1996, 1998 The NetBSD Foundation, Inc.
@ -48,7 +48,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: zs_ioasic.c,v 1.26 2005/06/02 13:11:39 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: zs_ioasic.c,v 1.27 2005/08/25 18:35:40 drochner Exp $");
#include "opt_ddb.h"
#include "opt_kgdb.h"
@ -249,8 +249,7 @@ zs_ioasic_attach(parent, self, aux)
struct zshan *zc;
int s, channel;
u_long zflg;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[ZSCCF_NLOCS];
printf("\n");
@ -319,14 +318,13 @@ zs_ioasic_attach(parent, self, aux)
else
cs->cs_ctl_chan = NULL;
ldesc->len = 1;
ldesc->locs[ZSCCF_CHANNEL] = channel;
locs[ZSCCF_CHANNEL] = channel;
/*
* Look for a child driver for this channel.
* The child attach will setup the hardware.
*/
if (config_found_sm_loc(self, "zsc", ldesc, (void *)&zs_args,
if (config_found_sm_loc(self, "zsc", locs, (void *)&zs_args,
zs_ioasic_print, zs_ioasic_submatch) == NULL) {
/* No sub-driver. Just reset it. */
u_char reset = (channel == 0) ?
@ -386,10 +384,10 @@ zs_ioasic_print(aux, name)
}
int
zs_ioasic_submatch(parent, cf, ldesc, aux)
zs_ioasic_submatch(parent, cf, locs, aux)
struct device *parent;
struct cfdata *cf;
const locdesc_t *ldesc;
const locdesc_t *locs;
void *aux;
{
struct zsc_softc *zs = (void *)parent;
@ -397,7 +395,7 @@ zs_ioasic_submatch(parent, cf, ldesc, aux)
const char *defname = "";
if (cf->cf_loc[ZSCCF_CHANNEL] != ZSCCF_CHANNEL_DEFAULT &&
cf->cf_loc[ZSCCF_CHANNEL] != ldesc->locs[ZSCCF_CHANNEL])
cf->cf_loc[ZSCCF_CHANNEL] != locs[ZSCCF_CHANNEL])
return (0);
if (cf->cf_loc[ZSCCF_CHANNEL] == ZSCCF_CHANNEL_DEFAULT) {

View File

@ -1,4 +1,4 @@
/* $NetBSD: uhidev.c,v 1.27 2005/06/19 10:29:47 augustss Exp $ */
/* $NetBSD: uhidev.c,v 1.28 2005/08/25 18:35:40 drochner Exp $ */
/*
* Copyright (c) 2001 The NetBSD Foundation, Inc.
@ -42,7 +42,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: uhidev.c,v 1.27 2005/06/19 10:29:47 augustss Exp $");
__KERNEL_RCSID(0, "$NetBSD: uhidev.c,v 1.28 2005/08/25 18:35:40 drochner Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@ -117,8 +117,7 @@ USB_ATTACH(uhidev)
const void *descptr;
usbd_status err;
char *devinfop;
int help[2];
locdesc_t *ldesc = (void *)help; /* XXX */
int locs[UHIDBUSCF_NLOCS];
sc->sc_udev = uaa->device;
sc->sc_iface = iface;
@ -286,11 +285,10 @@ USB_ATTACH(uhidev)
; /* already NULL in sc->sc_subdevs[repid] */
} else {
uha.reportid = repid;
ldesc->len = 1;
ldesc->locs[UHIDBUSCF_REPORTID] = repid;
locs[UHIDBUSCF_REPORTID] = repid;
dev = (struct uhidev *)config_found_sm_loc(self,
"uhidbus", ldesc, &uha,
"uhidbus", locs, &uha,
uhidevprint, uhidevsubmatch);
sc->sc_subdevs[repid] = dev;
if (dev != NULL) {
@ -346,15 +344,15 @@ uhidevprint(void *aux, const char *pnp)
int
uhidevsubmatch(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux)
const locdesc_t *locs, void *aux)
{
struct uhidev_attach_arg *uha = aux;
if (cf->cf_loc[UHIDBUSCF_REPORTID] != UHIDBUSCF_REPORTID_DEFAULT &&
cf->cf_loc[UHIDBUSCF_REPORTID] != ldesc->locs[UHIDBUSCF_REPORTID])
cf->cf_loc[UHIDBUSCF_REPORTID] != locs[UHIDBUSCF_REPORTID])
return (0);
if (cf->cf_loc[UHIDBUSCF_REPORTID] == ldesc->locs[UHIDBUSCF_REPORTID])
if (cf->cf_loc[UHIDBUSCF_REPORTID] == locs[UHIDBUSCF_REPORTID])
uha->matchlvl = UMATCH_VENDOR_PRODUCT;
else
uha->matchlvl = 0;

View File

@ -1,4 +1,4 @@
/* $NetBSD: subr_autoconf.c,v 1.96 2005/08/25 15:06:28 drochner Exp $ */
/* $NetBSD: subr_autoconf.c,v 1.97 2005/08/25 18:35:40 drochner Exp $ */
/*
* Copyright (c) 1996, 2000 Christopher G. Demetriou
@ -77,7 +77,7 @@
*/
#include <sys/cdefs.h>
__KERNEL_RCSID(0, "$NetBSD: subr_autoconf.c,v 1.96 2005/08/25 15:06:28 drochner Exp $");
__KERNEL_RCSID(0, "$NetBSD: subr_autoconf.c,v 1.97 2005/08/25 18:35:40 drochner Exp $");
#include "opt_ddb.h"
@ -855,7 +855,7 @@ config_makeroom(int n, struct cfdriver *cd)
*/
struct device *
config_attach_loc(struct device *parent, struct cfdata *cf,
const locdesc_t *ldesc, void *aux, cfprint_t print)
const locdesc_t *locs, void *aux, cfprint_t print)
{
struct device *dev;
struct cftable *ct;
@ -923,15 +923,13 @@ config_attach_loc(struct device *parent, struct cfdata *cf,
memcpy(dev->dv_xname + lname, xunit, lunit);
dev->dv_parent = parent;
dev->dv_flags = DVF_ACTIVE; /* always initially active */
if (ldesc) {
if (locs) {
KASSERT(parent); /* no locators at root */
ia = cfiattr_lookup(cf->cf_pspec->cfp_iattr,
parent->dv_cfdriver);
KASSERT(ldesc->len == ia->ci_loclen); /* XXX will go away */
dev->dv_locators = malloc(ia->ci_loclen * sizeof(int),
M_DEVBUF, cold ? M_NOWAIT : M_WAITOK);
memcpy(dev->dv_locators, ldesc->locs,
ia->ci_loclen * sizeof(int));
memcpy(dev->dv_locators, locs, ia->ci_loclen * sizeof(int));
}
if (config_do_twiddle)

View File

@ -1,4 +1,4 @@
/* $NetBSD: device.h,v 1.76 2005/08/25 15:06:28 drochner Exp $ */
/* $NetBSD: device.h,v 1.77 2005/08/25 18:35:40 drochner Exp $ */
/*
* Copyright (c) 1996, 2000 Christopher G. Demetriou
@ -232,14 +232,9 @@ struct cftable {
TAILQ_HEAD(cftablelist, cftable);
/*
* XXX the "locdesc_t" is unnecessary; the len is known to "config" and
* available through cfdata->cf_pspec->cfp_iattr.
* So just an "int *" should do it.
* XXX the "locdesc_t" is unnecessary
*/
typedef struct {
int len;
int locs[1];
} locdesc_t;
typedef int locdesc_t;
typedef int (*cfsubmatch_t)(struct device *, struct cfdata *,
const locdesc_t *, void *);