Lines Matching full:backend
11 #include "hw/xen/xen-backend.h"
62 error_report("attempt to register duplicate Xen backend type '%s'", in xen_backend_register()
68 error_report("backend type '%s' has no creator", info->type); in xen_backend_register()
86 static void xen_backend_list_add(XenBackendInstance *backend) in xen_backend_list_add() argument
88 QLIST_INSERT_HEAD(&backend_list, backend, entry); in xen_backend_list_add()
93 XenBackendInstance *backend; in xen_backend_list_find() local
95 QLIST_FOREACH(backend, &backend_list, entry) { in xen_backend_list_find()
96 if (backend->xendev == xendev) { in xen_backend_list_find()
97 return backend; in xen_backend_list_find()
107 XenBackendInstance *backend; in xen_backend_exists() local
113 QLIST_FOREACH(backend, &backend_list, entry) { in xen_backend_exists()
114 if (backend->impl == impl && !strcmp(backend->name, name)) { in xen_backend_exists()
122 static void xen_backend_list_remove(XenBackendInstance *backend) in xen_backend_list_remove() argument
124 QLIST_REMOVE(backend, entry); in xen_backend_list_remove()
132 XenBackendInstance *backend; in xen_backend_device_create() local
138 backend = g_new0(XenBackendInstance, 1); in xen_backend_device_create()
139 backend->xenbus = xenbus; in xen_backend_device_create()
140 backend->name = g_strdup(name); in xen_backend_device_create()
142 impl->create(backend, opts, errp); in xen_backend_device_create()
144 backend->impl = impl; in xen_backend_device_create()
145 xen_backend_list_add(backend); in xen_backend_device_create()
148 XenBus *xen_backend_get_bus(XenBackendInstance *backend) in xen_backend_get_bus() argument
150 return backend->xenbus; in xen_backend_get_bus()
153 const char *xen_backend_get_name(XenBackendInstance *backend) in xen_backend_get_name() argument
155 return backend->name; in xen_backend_get_name()
158 void xen_backend_set_device(XenBackendInstance *backend, in xen_backend_set_device() argument
161 g_assert(!backend->xendev); in xen_backend_set_device()
162 backend->xendev = xendev; in xen_backend_set_device()
165 XenDevice *xen_backend_get_device(XenBackendInstance *backend) in xen_backend_get_device() argument
167 return backend->xendev; in xen_backend_get_device()
173 XenBackendInstance *backend = xen_backend_list_find(xendev); in xen_backend_try_device_destroy() local
176 if (!backend) { in xen_backend_try_device_destroy()
180 impl = backend->impl; in xen_backend_try_device_destroy()
181 if (backend->xendev) { in xen_backend_try_device_destroy()
182 impl->destroy(backend, errp); in xen_backend_try_device_destroy()
185 xen_backend_list_remove(backend); in xen_backend_try_device_destroy()
186 g_free(backend->name); in xen_backend_try_device_destroy()
187 g_free(backend); in xen_backend_try_device_destroy()