#include "perl_sysfs.h" MODULE = Linux::Sysfs::Bus PACKAGE = Linux::Sysfs::Bus struct sysfs_bus* open(class, name) const char* name CODE: RETVAL = sysfs_open_bus(name); OUTPUT: RETVAL void close(bus) struct sysfs_bus* bus CODE: sysfs_close_bus(bus); void get_devices(bus) struct sysfs_bus* bus PREINIT: struct dlist* dev_list = NULL; struct sysfs_device* dev = NULL; PPCODE: dev_list = sysfs_get_bus_devices(bus); if (dev_list == NULL) XSRETURN_EMPTY; EXTEND(SP, dev_list->count); dlist_for_each_data(dev_list, dev, struct sysfs_device) { PUSHs(sv_2mortal( perl_sysfs_new_sv_from_ptr(dev, "Linux::Sysfs::Device") )); } void get_drivers(bus) struct sysfs_bus* bus PREINIT: struct dlist* drv_list = NULL; struct sysfs_driver* drv = NULL; PPCODE: drv_list = sysfs_get_bus_drivers(bus); if (drv_list == NULL) XSRETURN_EMPTY; EXTEND(SP, drv_list->count); dlist_for_each_data(drv_list, drv, struct sysfs_driver) { PUSHs(sv_2mortal( perl_sysfs_new_sv_from_ptr(drv, "Linux::Sysfs::Driver") )); } struct sysfs_device* get_device(bus, id) struct sysfs_bus* bus const char* id CODE: RETVAL = sysfs_get_bus_device(bus, id); OUTPUT: RETVAL struct sysfs_driver* get_driver(bus, drvname) struct sysfs_bus* bus const char* drvname CODE: RETVAL = sysfs_get_bus_driver(bus, drvname); OUTPUT: RETVAL char* name(bus) struct sysfs_bus* bus CODE: RETVAL = bus->name; OUTPUT: RETVAL char* path(bus) struct sysfs_bus* bus CODE: RETVAL = bus->path; OUTPUT: RETVAL