Print this page
patch tsoome-feedback


1727         err = nvlist_add_string(attr_list, "fob",
1728             ((pdp->xd_xsdev.frontend == 1) ? "frontend" : "backend"));
1729         if (err != DDI_SUCCESS)
1730                 goto failure;
1731 
1732         switch (hpc) {
1733         case XEN_HP_ADD:
1734                 err = ddi_log_sysevent(dip, DDI_VENDOR_SUNW, "EC_xendev",
1735                     "add", attr_list, &eid, DDI_NOSLEEP);
1736                 break;
1737         case XEN_HP_REMOVE:
1738                 err = ddi_log_sysevent(dip, DDI_VENDOR_SUNW, "EC_xendev",
1739                     "remove", attr_list, &eid, DDI_NOSLEEP);
1740                 break;
1741         default:
1742                 err = DDI_FAILURE;
1743                 goto failure;
1744         }
1745 
1746 failure:
1747         if (attr_list != NULL)
1748                 nvlist_free(attr_list);
1749 
1750         return (err);
1751 }
1752 
1753 /* ARGSUSED */
1754 static void
1755 i_xvdi_probe_path_cb(struct xenbus_watch *w, const char **vec,
1756     unsigned int len)
1757 {
1758         char *path;
1759 
1760         if (xendev_dip == NULL)
1761                 xendev_dip = ddi_find_devinfo("xpvd", -1, 0);
1762 
1763         path = i_ddi_strdup((char *)vec[XS_WATCH_PATH], KM_SLEEP);
1764 
1765         (void) ddi_taskq_dispatch(DEVI(xendev_dip)->devi_taskq,
1766             i_xvdi_probe_path_handler, (void *)path, DDI_SLEEP);
1767 }




1727         err = nvlist_add_string(attr_list, "fob",
1728             ((pdp->xd_xsdev.frontend == 1) ? "frontend" : "backend"));
1729         if (err != DDI_SUCCESS)
1730                 goto failure;
1731 
1732         switch (hpc) {
1733         case XEN_HP_ADD:
1734                 err = ddi_log_sysevent(dip, DDI_VENDOR_SUNW, "EC_xendev",
1735                     "add", attr_list, &eid, DDI_NOSLEEP);
1736                 break;
1737         case XEN_HP_REMOVE:
1738                 err = ddi_log_sysevent(dip, DDI_VENDOR_SUNW, "EC_xendev",
1739                     "remove", attr_list, &eid, DDI_NOSLEEP);
1740                 break;
1741         default:
1742                 err = DDI_FAILURE;
1743                 goto failure;
1744         }
1745 
1746 failure:

1747         nvlist_free(attr_list);
1748 
1749         return (err);
1750 }
1751 
1752 /* ARGSUSED */
1753 static void
1754 i_xvdi_probe_path_cb(struct xenbus_watch *w, const char **vec,
1755     unsigned int len)
1756 {
1757         char *path;
1758 
1759         if (xendev_dip == NULL)
1760                 xendev_dip = ddi_find_devinfo("xpvd", -1, 0);
1761 
1762         path = i_ddi_strdup((char *)vec[XS_WATCH_PATH], KM_SLEEP);
1763 
1764         (void) ddi_taskq_dispatch(DEVI(xendev_dip)->devi_taskq,
1765             i_xvdi_probe_path_handler, (void *)path, DDI_SLEEP);
1766 }