Lines Matching refs:ea
246 struct ebus_attach_args ea;
314 if (ebus_setup_attach_args(sc, sbt, dmatag, node, &ea) != 0) {
319 ("- found child `%s', attaching\n", ea.ea_name));
320 (void)config_found(self, &ea, ebus_print,
322 ebus_destroy_attach_args(&ea);
329 struct ebus_attach_args *ea)
333 memset(ea, 0, sizeof(struct ebus_attach_args));
335 err = prom_getprop(node, "name", 1, &n, &ea->ea_name);
338 KASSERT(ea->ea_name[n-1] == '\0');
340 ea->ea_node = node;
341 ea->ea_bustag = bustag;
342 ea->ea_dmatag = dmatag;
345 &ea->ea_nreg, &ea->ea_reg);
355 for (n = 0; n < ea->ea_nreg; ++n)
356 if (ea->ea_reg[n].hi < PCI_MAPREG_START) {
357 ea->ea_reg[n].hi = PCI_MAPREG_START
358 + ea->ea_reg[n].hi * sizeof(pcireg_t);
362 &ea->ea_nvaddr, &ea->ea_vaddr);
367 if (ea->ea_nreg != ea->ea_nvaddr)
369 ea->ea_name, ea->ea_nreg, ea->ea_nvaddr);
371 ea->ea_nvaddr = 0;
376 if (strcmp(w->name, ea->ea_name) == 0) {
377 ea->ea_intr = malloc(sizeof(uint32_t),
379 ea->ea_intr[0] = w->line;
380 ea->ea_nintr = 1;
389 ebus_destroy_attach_args(struct ebus_attach_args *ea)
392 if (ea->ea_name)
393 free((void *)ea->ea_name, M_DEVBUF);
394 if (ea->ea_reg)
395 free((void *)ea->ea_reg, M_DEVBUF);
396 if (ea->ea_intr)
397 free((void *)ea->ea_intr, M_DEVBUF);
398 if (ea->ea_vaddr)
399 free((void *)ea->ea_vaddr, M_DEVBUF);
405 struct ebus_attach_args *ea = aux;
409 aprint_normal("%s at %s", ea->ea_name, p);
410 for (i = 0; i < ea->ea_nreg; ++i)
412 ea->ea_reg[i].hi, ea->ea_reg[i].lo);
413 for (i = 0; i < ea->ea_nintr; ++i)
414 aprint_normal(" line %d", ea->ea_intr[i]);