Lines Matching refs:a
28 sysfs_config(struct pci_access *a) in sysfs_config() argument
30 pci_define_param(a, "sysfs.path", PCI_PATH_SYS_BUS_PCI, "Path to the sysfs device tree"); in sysfs_config()
34 sysfs_name(struct pci_access *a) in sysfs_name() argument
36 return pci_get_param(a, "sysfs.path"); in sysfs_name()
40 sysfs_detect(struct pci_access *a) in sysfs_detect() argument
42 if (access(sysfs_name(a), R_OK)) in sysfs_detect()
44 a->debug("...cannot open %s", sysfs_name(a)); in sysfs_detect()
47 a->debug("...using %s", sysfs_name(a)); in sysfs_detect()
52 sysfs_init(struct pci_access *a) in sysfs_init() argument
54 a->fd = -1; in sysfs_init()
55 a->fd_vpd = -1; in sysfs_init()
59 sysfs_flush_cache(struct pci_access *a) in sysfs_flush_cache() argument
61 if (a->fd >= 0) in sysfs_flush_cache()
63 close(a->fd); in sysfs_flush_cache()
64 a->fd = -1; in sysfs_flush_cache()
66 if (a->fd_vpd >= 0) in sysfs_flush_cache()
68 close(a->fd_vpd); in sysfs_flush_cache()
69 a->fd_vpd = -1; in sysfs_flush_cache()
71 a->cached_dev = NULL; in sysfs_flush_cache()
75 sysfs_cleanup(struct pci_access *a) in sysfs_cleanup() argument
77 sysfs_flush_cache(a); in sysfs_cleanup()
95 struct pci_access *a = d->access; in sysfs_get_string() local
98 void (*warn)(char *msg, ...) = (mandatory ? a->error : a->warning); in sysfs_get_string()
157 struct pci_access *a = d->access; in sysfs_get_resources() local
168 a->error("Cannot open %s: %s", namebuf, strerror(errno)); in sysfs_get_resources()
175 a->error("Syntax error in %s", namebuf); in sysfs_get_resources()
237 static void sysfs_scan(struct pci_access *a) in sysfs_scan() argument
244 n = snprintf(dirname, sizeof(dirname), "%s/devices", sysfs_name(a)); in sysfs_scan()
246 a->error("Directory name too long"); in sysfs_scan()
249 a->error("Cannot open %s", dirname); in sysfs_scan()
259 d = pci_alloc_dev(a); in sysfs_scan()
261 a->error("sysfs_scan: Couldn't parse entry name %s", entry->d_name); in sysfs_scan()
265 a->error("sysfs_scan: Invalid domain %x", dom); in sysfs_scan()
271 pci_link_dev(a, d); in sysfs_scan()
277 sysfs_fill_slots(struct pci_access *a) in sysfs_fill_slots() argument
284 n = snprintf(dirname, sizeof(dirname), "%s/slots", sysfs_name(a)); in sysfs_fill_slots()
286 a->error("Directory name too long"); in sysfs_fill_slots()
305 a->error("File name too long"); in sysfs_fill_slots()
323 a->warning("sysfs_fill_slots: Couldn't parse entry address %s", buf); in sysfs_fill_slots()
327 for (d = a->devices; d; d = d->next) in sysfs_fill_slots()
512 struct pci_access *a = d->access; in sysfs_setup() local
515 if (a->cached_dev != d || (intent == SETUP_WRITE_CONFIG && !a->fd_rw)) in sysfs_setup()
517 sysfs_flush_cache(a); in sysfs_setup()
518 a->cached_dev = d; in sysfs_setup()
523 if (a->fd_vpd < 0) in sysfs_setup()
526 a->fd_vpd = open(namebuf, O_RDONLY); in sysfs_setup()
529 return a->fd_vpd; in sysfs_setup()
532 if (a->fd < 0) in sysfs_setup()
535 a->fd_rw = a->writeable || intent == SETUP_WRITE_CONFIG; in sysfs_setup()
536 a->fd = open(namebuf, a->fd_rw ? O_RDWR : O_RDONLY); in sysfs_setup()
537 if (a->fd < 0) in sysfs_setup()
538 a->warning("Cannot open %s", namebuf); in sysfs_setup()
540 return a->fd; in sysfs_setup()
602 struct pci_access *a = d->access; in sysfs_cleanup_dev() local
604 if (a->cached_dev == d) in sysfs_cleanup_dev()
605 sysfs_flush_cache(a); in sysfs_cleanup_dev()