ds_svcs
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
ASSERT(MUTEX_HELD(&ds_svcs.lock));
for (idx = 0; idx < ds_svcs.maxsvcs; idx++) {
svc = ds_svcs.tbl[idx];
ASSERT(MUTEX_HELD(&ds_svcs.lock));
for (idx = 0; idx < ds_svcs.maxsvcs; idx++) {
svc = ds_svcs.tbl[idx];
ASSERT(MUTEX_HELD(&ds_svcs.lock));
ASSERT(MUTEX_HELD(&ds_svcs.lock));
ASSERT(MUTEX_HELD(&ds_svcs.lock));
ASSERT(MUTEX_HELD(&ds_svcs.lock));
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
ASSERT(MUTEX_HELD(&ds_svcs.lock));
if (idx != ds_svcs.maxsvcs) {
newmaxsvcs = ds_svcs.maxsvcs * 2;
(void) memcpy(newtbl, ds_svcs.tbl,
ds_svcs.maxsvcs * sizeof (ds_svc_t *));
DS_FREE(ds_svcs.tbl, ds_svcs.maxsvcs * sizeof (ds_svc_t *));
ds_svcs.tbl = newtbl;
ds_svcs.maxsvcs = newmaxsvcs;
ASSERT(idx != ds_svcs.maxsvcs);
if ((newsvc = ds_svcs.tbl[idx]) == NULL) {
ds_svcs.tbl[idx] = newsvc;
ASSERT(MUTEX_HELD(&ds_svcs.lock));
ASSERT(MUTEX_HELD(&ds_svcs.lock));
if ((idx < 0) || (idx >= ds_svcs.maxsvcs))
svc = ds_svcs.tbl[idx];
ASSERT(MUTEX_HELD(&ds_svcs.lock));
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
ds_svcs.nsvcs++;
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
ds_svcs.maxsvcs = nentries;
tblsz = ds_svcs.maxsvcs * sizeof (ds_svc_t *);
ds_svcs.tbl = (ds_svc_t **)DS_MALLOC(tblsz);
ds_svcs.nsvcs = 0;
ASSERT(MUTEX_HELD(&ds_svcs.lock));
ASSERT(MUTEX_HELD(&ds_svcs.lock));
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
ASSERT(MUTEX_HELD(&ds_svcs.lock));
for (idx = 0; idx < ds_svcs.maxsvcs; idx++) {
svc = ds_svcs.tbl[idx];
ASSERT(MUTEX_HELD(&ds_svcs.lock));
for (idx = 0; idx < ds_svcs.maxsvcs && nhdls < maxhdls; idx++) {
svc = ds_svcs.tbl[idx];
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
ASSERT(MUTEX_HELD(&ds_svcs.lock));
ds_svcs.nsvcs--;
ds_svcs_t ds_svcs;
ASSERT(MUTEX_HELD(&ds_svcs.lock));
for (idx = 0; idx < ds_svcs.maxsvcs; idx++) {
svc = ds_svcs.tbl[idx];
mutex_enter(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
DS_FREE(ds_svcs.tbl, ds_svcs.maxsvcs * sizeof (ds_svc_t *));
mutex_destroy(&ds_svcs.lock);
bzero(&ds_svcs, sizeof (ds_svcs));
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
for (idx = 0; idx < ds_svcs.maxsvcs; idx++) {
svc = ds_svcs.tbl[idx];
mutex_exit(&ds_svcs.lock);
mutex_enter(&ds_svcs.lock);
mutex_exit(&ds_svcs.lock);
extern ds_svcs_t ds_svcs;