#include "perl_sysfs.h"
MODULE = Linux::Sysfs::Driver PACKAGE = Linux::Sysfs::Driver
struct sysfs_driver*
open(class, bus_name, drv_name)
const char* bus_name
const char* drv_name
CODE:
RETVAL = sysfs_open_driver(bus_name, drv_name);
OUTPUT:
RETVAL
struct sysfs_driver*
open_path(class, path)
const char* path
CODE:
RETVAL = sysfs_open_driver_path(path);
OUTPUT:
RETVAL
void
close(driver)
struct sysfs_driver* driver
CODE:
sysfs_close_driver(driver);
struct sysfs_attribute*
get_attr(driver, name)
struct sysfs_driver* driver
const char* name
ALIAS:
get_attribute = 1
CODE:
PERL_UNUSED_VAR(ix);
RETVAL = sysfs_get_driver_attr(driver, name);
OUTPUT:
RETVAL
void
get_attrs(driver)
struct sysfs_driver* driver
ALIAS:
get_attributes = 1
PREINIT:
struct dlist* attr_list = NULL;
struct sysfs_attribute* attr = NULL;
PPCODE:
PERL_UNUSED_VAR(ix);
attr_list = sysfs_get_driver_attributes(driver);
if (attr_list == NULL)
XSRETURN_EMPTY;
EXTEND(SP, attr_list->count);
dlist_for_each_data(attr_list, attr, struct sysfs_attribute) {
PUSHs(sv_2mortal( perl_sysfs_new_sv_from_ptr(attr, "Linux::Sysfs::Attribute") ));
}
void
get_devices(driver)
struct sysfs_driver* driver
PREINIT:
struct dlist* dev_list = NULL;
struct sysfs_device* dev = NULL;
PPCODE:
dev_list = sysfs_get_driver_devices(driver);
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") ));
}
struct sysfs_module*
get_module(driver)
struct sysfs_driver* driver
CODE:
RETVAL = sysfs_get_driver_module(driver);
OUTPUT:
RETVAL
char*
name(driver)
struct sysfs_driver* driver
CODE:
RETVAL = driver->name;
OUTPUT:
RETVAL
char*
path(driver)
struct sysfs_driver* driver
CODE:
RETVAL = driver->path;
OUTPUT:
RETVAL
char*
bus(driver)
struct sysfs_driver* driver
CODE:
RETVAL = driver->bus;
OUTPUT:
RETVAL