# HG changeset patch
# User Gianni Tedesco <gianni.tedesco@xxxxxxxxxx>
# Date 1280425787 -3600
# Node ID 1a92c888177004e77325fbf7827bf3d8d964970b
# Parent 3263d0ff9476f574961a3975897fe33601253b56
libxl: Move libxl_device_pci_reset to libxl_pci.c
Signed-off-by: Gianni Tedesco <gianni.tedesco@xxxxxxxxxx>
Committed-by: Ian Jackson <ian.jackson@xxxxxxxxxxxxx>
---
tools/libxl/libxl_device.c | 34 ----------------------------------
tools/libxl/libxl_pci.c | 33 +++++++++++++++++++++++++++++++++
2 files changed, 33 insertions(+), 34 deletions(-)
diff -r 3263d0ff9476 -r 1a92c8881770 tools/libxl/libxl_device.c
--- a/tools/libxl/libxl_device.c Thu Jul 29 16:53:40 2010 +0100
+++ b/tools/libxl/libxl_device.c Thu Jul 29 18:49:47 2010 +0100
@@ -377,40 +377,6 @@ int libxl_device_del(libxl_ctx *ctx, lib
return 0;
}
-int libxl_device_pci_reset(libxl_ctx *ctx, unsigned int domain, unsigned int
bus,
- unsigned int dev, unsigned int func)
-{
- char *reset = "/sys/bus/pci/drivers/pciback/do_flr";
- int fd, rc;
-
- fd = open(reset, O_WRONLY);
- if (fd > 0) {
- char *buf = libxl_sprintf(ctx, PCI_BDF, domain, bus, dev, func);
- rc = write(fd, buf, strlen(buf));
- if (rc < 0)
- XL_LOG(ctx, XL_LOG_ERROR, "write to %s returned %d", reset, rc);
- close(fd);
- return rc < 0 ? rc : 0;
- }
- if (errno != ENOENT)
- XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "Failed to access pciback path %s",
reset);
- reset = libxl_sprintf(ctx, "/sys/bus/pci/devices/"PCI_BDF"/reset", domain,
bus, dev, func);
- fd = open(reset, O_WRONLY);
- if (fd > 0) {
- rc = write(fd, "1", 1);
- if (rc < 0)
- XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "write to %s returned %d", reset,
rc);
- close(fd);
- return rc < 0 ? rc : 0;
- }
- if (errno == ENOENT) {
- XL_LOG(ctx, XL_LOG_ERROR, "The kernel doesn't support PCI device reset
from sysfs");
- } else {
- XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "Failed to access reset path %s",
reset);
- }
- return -1;
-}
-
int libxl_wait_for_device_model(libxl_ctx *ctx,
uint32_t domid, char *state,
int (*check_callback)(libxl_ctx *ctx,
diff -r 3263d0ff9476 -r 1a92c8881770 tools/libxl/libxl_pci.c
--- a/tools/libxl/libxl_pci.c Thu Jul 29 16:53:40 2010 +0100
+++ b/tools/libxl/libxl_pci.c Thu Jul 29 18:49:47 2010 +0100
@@ -536,3 +536,36 @@ int libxl_device_pci_init(libxl_device_p
return 0;
}
+int libxl_device_pci_reset(libxl_ctx *ctx, unsigned int domain, unsigned int
bus,
+ unsigned int dev, unsigned int func)
+{
+ char *reset = "/sys/bus/pci/drivers/pciback/do_flr";
+ int fd, rc;
+
+ fd = open(reset, O_WRONLY);
+ if (fd > 0) {
+ char *buf = libxl_sprintf(ctx, PCI_BDF, domain, bus, dev, func);
+ rc = write(fd, buf, strlen(buf));
+ if (rc < 0)
+ XL_LOG(ctx, XL_LOG_ERROR, "write to %s returned %d", reset, rc);
+ close(fd);
+ return rc < 0 ? rc : 0;
+ }
+ if (errno != ENOENT)
+ XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "Failed to access pciback path %s",
reset);
+ reset = libxl_sprintf(ctx, "/sys/bus/pci/devices/"PCI_BDF"/reset", domain,
bus, dev, func);
+ fd = open(reset, O_WRONLY);
+ if (fd > 0) {
+ rc = write(fd, "1", 1);
+ if (rc < 0)
+ XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "write to %s returned %d", reset,
rc);
+ close(fd);
+ return rc < 0 ? rc : 0;
+ }
+ if (errno == ENOENT) {
+ XL_LOG(ctx, XL_LOG_ERROR, "The kernel doesn't support PCI device reset
from sysfs");
+ } else {
+ XL_LOG_ERRNO(ctx, XL_LOG_ERROR, "Failed to access reset path %s",
reset);
+ }
+ return -1;
+}
_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog
|