hv_driver
static struct hv_driver hyperv_hv_driver = {
static struct hv_driver mousevsc_drv = {
static struct hv_driver balloon_drv = {
static struct hv_driver util_drv = {
int __vmbus_driver_register(struct hv_driver *hv_driver, struct module *owner, const char *mod_name)
pr_info("registering driver %s\n", hv_driver->name);
hv_driver->driver.name = hv_driver->name;
hv_driver->driver.owner = owner;
hv_driver->driver.mod_name = mod_name;
hv_driver->driver.bus = &hv_bus;
spin_lock_init(&hv_driver->dynids.lock);
INIT_LIST_HEAD(&hv_driver->dynids.list);
ret = driver_register(&hv_driver->driver);
void vmbus_driver_unregister(struct hv_driver *hv_driver)
pr_info("unregistering driver %s\n", hv_driver->name);
driver_unregister(&hv_driver->driver);
vmbus_free_dynids(hv_driver);
hv_vmbus_dynid_match(struct hv_driver *drv, const guid_t *guid)
static const struct hv_vmbus_device_id *hv_vmbus_get_id(const struct hv_driver *drv,
id = hv_vmbus_dynid_match((struct hv_driver *)drv, guid);
static int vmbus_add_dynid(struct hv_driver *drv, guid_t *guid)
static void vmbus_free_dynids(struct hv_driver *drv)
struct hv_driver *drv = drv_to_hv_drv(driver);
struct hv_driver *drv = drv_to_hv_drv(driver);
const struct hv_driver *drv = drv_to_hv_drv(driver);
struct hv_driver *drv =
struct hv_driver *drv;
struct hv_driver *drv;
struct hv_driver *drv;
struct hv_driver *drv;
static struct hv_driver hv_kbd_drv = {
static struct hv_driver netvsc_drv = {
static struct hv_driver hv_pci_drv = {
static struct hv_driver storvsc_drv = {
static struct platform_driver hv_driver = {
return platform_driver_register(&hv_driver);
static struct hv_driver hv_uio_drv = {
#define drv_to_hv_drv(d) container_of_const(d, struct hv_driver, driver)
int __must_check __vmbus_driver_register(struct hv_driver *hv_driver,
void vmbus_driver_unregister(struct hv_driver *hv_driver);
static struct hv_driver hvs_drv = {