ct_type
if (mdb_vread(&ctt, sizeof (ctt), (uintptr_t)ct.ct_type) !=
mdb_warn("error reading ct_type_t at %p", ct.ct_type);
ASSERT(parent->ct_type == process_type);
ASSERT(parent->ct_type == process_type);
cct->ct_type->ct_type_ops->contop_abandon(cct);
ct_type_t *type = ct->ct_type;
ct->ct_type->ct_type_name, (long)ct->ct_id) + 1;
ct->ct_type->ct_type_name, (long)ct->ct_id) < len);
strlen(ct->ct_type->ct_type_name);
ct->ct_type->ct_type_name, ct->ct_id);
int ct_type;
t = ct->ct_type;
ct->ct_type = t;
STRUCT_FSET(lstatus, ctst_type, ct->ct_type->ct_type_index);
evid = e->cte_id = atomic_inc_64_nv(&ct->ct_type->ct_type_evid);
mutex_enter(&ct->ct_type->ct_type_events.ctq_lock);
cte_publish(&ct->ct_type->ct_type_events, e, &ts, B_FALSE);
ASSERT(ct->ct_owner->p_ct_equeue[ct->ct_type->ct_type_index]);
q = ct->ct_owner->p_ct_equeue[ct->ct_type->ct_type_index];
temp->cte_contract->ct_type->ct_type_index);
ct->ct_type = type;
mutex_enter(&ct->ct_type->ct_type_lock);
avl_remove(&ct->ct_type->ct_type_avl, ct);
mutex_exit(&ct->ct_type->ct_type_lock);
ct->ct_type->ct_type_ops->contop_free(ct);
q = p->p_ct_equeue[ct->ct_type->ct_type_index];
ct->ct_type->ct_type_ops->contop_abandon(ct);
return (ct->ct_type->ct_type_ops->contop_newct(ct));
(void) contract_type_pbundle(ct->ct_type, p);
ASSERT(ct->ct_owner->p_ct_equeue[ct->ct_type->ct_type_index]);
q = ct->ct_owner->p_ct_equeue[ct->ct_type->ct_type_index];
error = ct->ct_type->ct_type_ops->contop_ack(ct, evtype, evid);
error = ct->ct_type->ct_type_ops->contop_nack(ct, evtype, evid);
return (ct->ct_type->ct_type_ops->contop_qack(ct, evtype, evid));
mutex_enter(&ct->ct_type->ct_type_events.ctq_lock);
cte_trim(&ct->ct_type->ct_type_events, ct);
mutex_exit(&ct->ct_type->ct_type_events.ctq_lock);
ct->ct_type->ct_type_ops->contop_destroy(ct);
uint_t ct_type; /* callout table type */
struct ct_type *ctmpl_type;
ct_type_t *ct_type; /* contract type information */