Changeset View
Changeset View
Standalone View
Standalone View
sys/dev/pccard/pccard.c
Show First 20 Lines • Show All 1,016 Lines • ▼ Show 20 Lines | pccard_probe_nomatch(device_t bus, device_t child) | ||||
device_printf(bus, " CIS info: "); | device_printf(bus, " CIS info: "); | ||||
for (i = 0; sc->card.cis1_info[i] != NULL && i < 4; i++) | for (i = 0; sc->card.cis1_info[i] != NULL && i < 4; i++) | ||||
printf("%s%s", i > 0 ? ", " : "", sc->card.cis1_info[i]); | printf("%s%s", i > 0 ? ", " : "", sc->card.cis1_info[i]); | ||||
printf("\n"); | printf("\n"); | ||||
return; | return; | ||||
} | } | ||||
static int | static int | ||||
pccard_child_location_str(device_t bus, device_t child, char *buf, | pccard_child_location(device_t bus, device_t child, struct sbuf *sb) | ||||
size_t buflen) | |||||
{ | { | ||||
struct pccard_ivar *devi = PCCARD_IVAR(child); | struct pccard_ivar *devi = PCCARD_IVAR(child); | ||||
struct pccard_function *pf = devi->pf; | struct pccard_function *pf = devi->pf; | ||||
snprintf(buf, buflen, "function=%d", pf->number); | sbuf_printf(sb, "function=%d", pf->number); | ||||
return (0); | return (0); | ||||
} | } | ||||
static int | static int | ||||
pccard_child_pnpinfo_str(device_t bus, device_t child, char *buf, | pccard_child_pnpinfo(device_t bus, device_t child, struct sbuf *sb) | ||||
size_t buflen) | |||||
{ | { | ||||
struct pccard_ivar *devi = PCCARD_IVAR(child); | struct pccard_ivar *devi = PCCARD_IVAR(child); | ||||
struct pccard_function *pf = devi->pf; | struct pccard_function *pf = devi->pf; | ||||
struct pccard_softc *sc = PCCARD_SOFTC(bus); | struct pccard_softc *sc = PCCARD_SOFTC(bus); | ||||
struct sbuf sb; | |||||
sbuf_new(&sb, buf, buflen, SBUF_FIXEDLEN | SBUF_INCLUDENUL); | sbuf_printf(sb, "manufacturer=0x%04x product=0x%04x " | ||||
sbuf_printf(&sb, "manufacturer=0x%04x product=0x%04x " | |||||
"cisvendor=\"", sc->card.manufacturer, sc->card.product); | "cisvendor=\"", sc->card.manufacturer, sc->card.product); | ||||
devctl_safe_quote_sb(&sb, sc->card.cis1_info[0]); | devctl_safe_quote_sb(sb, sc->card.cis1_info[0]); | ||||
sbuf_printf(&sb, "\" cisproduct=\""); | sbuf_printf(sb, "\" cisproduct=\""); | ||||
devctl_safe_quote_sb(&sb, sc->card.cis1_info[1]); | devctl_safe_quote_sb(sb, sc->card.cis1_info[1]); | ||||
sbuf_printf(&sb, "\" function_type=%d", pf->function); | sbuf_printf(sb, "\" function_type=%d", pf->function); | ||||
sbuf_finish(&sb); | |||||
sbuf_delete(&sb); | |||||
return (0); | return (0); | ||||
} | } | ||||
static int | static int | ||||
pccard_read_ivar(device_t bus, device_t child, int which, uintptr_t *result) | pccard_read_ivar(device_t bus, device_t child, int which, uintptr_t *result) | ||||
{ | { | ||||
struct pccard_ivar *devi = PCCARD_IVAR(child); | struct pccard_ivar *devi = PCCARD_IVAR(child); | ||||
▲ Show 20 Lines • Show All 389 Lines • ▼ Show 20 Lines | static device_method_t pccard_methods[] = { | ||||
DEVMETHOD(bus_deactivate_resource, pccard_deactivate_resource), | DEVMETHOD(bus_deactivate_resource, pccard_deactivate_resource), | ||||
DEVMETHOD(bus_setup_intr, pccard_setup_intr), | DEVMETHOD(bus_setup_intr, pccard_setup_intr), | ||||
DEVMETHOD(bus_teardown_intr, pccard_teardown_intr), | DEVMETHOD(bus_teardown_intr, pccard_teardown_intr), | ||||
DEVMETHOD(bus_set_resource, pccard_set_resource), | DEVMETHOD(bus_set_resource, pccard_set_resource), | ||||
DEVMETHOD(bus_get_resource, pccard_get_resource), | DEVMETHOD(bus_get_resource, pccard_get_resource), | ||||
DEVMETHOD(bus_delete_resource, pccard_delete_resource), | DEVMETHOD(bus_delete_resource, pccard_delete_resource), | ||||
DEVMETHOD(bus_probe_nomatch, pccard_probe_nomatch), | DEVMETHOD(bus_probe_nomatch, pccard_probe_nomatch), | ||||
DEVMETHOD(bus_read_ivar, pccard_read_ivar), | DEVMETHOD(bus_read_ivar, pccard_read_ivar), | ||||
DEVMETHOD(bus_child_pnpinfo_str, pccard_child_pnpinfo_str), | DEVMETHOD(bus_child_pnpinfo, pccard_child_pnpinfo), | ||||
DEVMETHOD(bus_child_location_str, pccard_child_location_str), | DEVMETHOD(bus_child_location, pccard_child_location), | ||||
/* Card Interface */ | /* Card Interface */ | ||||
DEVMETHOD(card_set_res_flags, pccard_set_res_flags), | DEVMETHOD(card_set_res_flags, pccard_set_res_flags), | ||||
DEVMETHOD(card_set_memory_offset, pccard_set_memory_offset), | DEVMETHOD(card_set_memory_offset, pccard_set_memory_offset), | ||||
DEVMETHOD(card_attach_card, pccard_attach_card), | DEVMETHOD(card_attach_card, pccard_attach_card), | ||||
DEVMETHOD(card_detach_card, pccard_detach_card), | DEVMETHOD(card_detach_card, pccard_detach_card), | ||||
DEVMETHOD(card_do_product_lookup, pccard_do_product_lookup), | DEVMETHOD(card_do_product_lookup, pccard_do_product_lookup), | ||||
DEVMETHOD(card_cis_scan, pccard_scan_cis), | DEVMETHOD(card_cis_scan, pccard_scan_cis), | ||||
Show All 19 Lines |