zsd
"selected zones", zsd },
extern int zsd(uintptr_t, uint_t, int, const mdb_arg_t *);
struct zsd_entry *zsd;
for (zsd = list_head(l); zsd != NULL; zsd = list_next(l, zsd)) {
if (zsd->zsd_key == key) {
return (zsd);
struct zsd_entry *zsd;
for (zsd = list_head(l); zsd != NULL; zsd = list_next(l, zsd)) {
if (zsd->zsd_key == key) {
if (zsd != list_head(l)) {
list_remove(l, zsd);
list_insert_head(l, zsd);
return (zsd);
svc_gss_zsd_t *zsd = svc_gss_get_zsd();
taskq_t *tq = zsd->sgz_init_taskq;
mutex_enter(&zsd->sgz_lock);
if (zsd->sgz_init_taskq == NULL)
zsd->sgz_init_taskq = svc_gss_create_taskq(curzone);
tq = zsd->sgz_init_taskq;
mutex_exit(&zsd->sgz_lock);
svc_gss_zsd_t *zsd;
zsd = kmem_alloc(sizeof (*zsd), KM_SLEEP);
mutex_init(&zsd->sgz_lock, NULL, MUTEX_DEFAULT, NULL);
zsd->sgz_zoneid = zoneid;
zsd->sgz_init_taskq = svc_gss_create_taskq(zone);
return (zsd);
svc_gss_zsd_t *zsd = arg;
mutex_enter(&zsd->sgz_lock);
if (zsd->sgz_init_taskq != NULL) {
taskq_destroy(zsd->sgz_init_taskq);
zsd->sgz_init_taskq = NULL;
mutex_exit(&zsd->sgz_lock);
svc_gss_zsd_t *zsd = arg;
mutex_destroy(&zsd->sgz_lock);
kmem_free(zsd, sizeof (*zsd));
svc_gss_zsd_t *zsd;
zsd = tsd_get(svc_gss_tsd_key);
if (zsd == NULL) {
zsd = zone_getspecific(svc_gss_zone_key, curzone);
(void) tsd_set(svc_gss_tsd_key, zsd);
return (zsd);
list_remove(&zsd->vz_vmms, sc);
mutex_exit(&zsd->vz_lock);
vmm_zsd_t *zsd;
zsd = kmem_zalloc(sizeof (*zsd), KM_SLEEP);
list_create(&zsd->vz_vmms, sizeof (vmm_softc_t),
zsd->vz_zoneid = zid;
mutex_init(&zsd->vz_lock, NULL, MUTEX_DEFAULT, NULL);
zsd->vz_active = zone_status_get(zone) < ZONE_IS_SHUTTING_DOWN;
list_insert_tail(&vmm_zsd_list, zsd);
return (zsd);
vmm_zsd_t *zsd = data;
mutex_enter(&zsd->vz_lock);
zsd->vz_active = B_FALSE;
for (sc = list_head(&zsd->vz_vmms); sc != NULL;
sc = list_next(&zsd->vz_vmms, sc)) {
mutex_exit(&zsd->vz_lock);
vmm_zsd_t *zsd = data;
list_remove(&vmm_zsd_list, zsd);
mutex_enter(&zsd->vz_lock);
ASSERT(!zsd->vz_active);
while ((sc = list_remove_head(&zsd->vz_vmms)) != NULL) {
mutex_exit(&zsd->vz_lock);
mutex_destroy(&zsd->vz_lock);
kmem_free(zsd, sizeof (*zsd));
vmm_zsd_t *zsd;
for (zsd = list_head(&vmm_zsd_list); zsd != NULL;
zsd = list_next(&vmm_zsd_list, zsd)) {
if (zsd->vz_zoneid == sc->vmm_zone->zone_id) {
VERIFY(zsd != NULL);
mutex_enter(&zsd->vz_lock);
if (!zsd->vz_active) {
mutex_exit(&zsd->vz_lock);
sc->vmm_zsd = zsd;
list_insert_tail(&zsd->vz_vmms, sc);
mutex_exit(&zsd->vz_lock);
vmm_zsd_t *zsd = sc->vmm_zsd;
mutex_enter(&zsd->vz_lock);