summaryrefslogtreecommitdiff
path: root/src/linux_sysfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/linux_sysfs.c')
-rw-r--r--src/linux_sysfs.c15
1 files changed, 13 insertions, 2 deletions
diff --git a/src/linux_sysfs.c b/src/linux_sysfs.c
index 1b4051b..d62f48c 100644
--- a/src/linux_sysfs.c
+++ b/src/linux_sysfs.c
@@ -742,7 +742,7 @@ pci_device_linux_sysfs_unmap_range(struct pci_device *dev,
return err;
}
-static void pci_device_linux_sysfs_enable(struct pci_device *dev)
+static void pci_device_linux_sysfs_set_enable(struct pci_device *dev, int enable)
{
char name[256];
int fd;
@@ -758,10 +758,20 @@ static void pci_device_linux_sysfs_enable(struct pci_device *dev)
if (fd == -1)
return;
- write( fd, "1", 1 );
+ write( fd, enable ? "1" : "0" , 1 );
close(fd);
}
+static void pci_device_linux_sysfs_enable(struct pci_device *dev)
+{
+ return pci_device_linux_sysfs_set_enable(dev, 1);
+}
+
+static void pci_device_linux_sysfs_disable(struct pci_device *dev)
+{
+ return pci_device_linux_sysfs_set_enable(dev, 0);
+}
+
static int pci_device_linux_sysfs_boot_vga(struct pci_device *dev)
{
char name[256];
@@ -1042,6 +1052,7 @@ static const struct pci_system_methods linux_sysfs_methods = {
.fill_capabilities = pci_fill_capabilities_generic,
.enable = pci_device_linux_sysfs_enable,
+ .disable = pci_device_linux_sysfs_disable,
.boot_vga = pci_device_linux_sysfs_boot_vga,
.has_kernel_driver = pci_device_linux_sysfs_has_kernel_driver,