10318
10319 if (!found) {
10320 mutex_exit(mutex);
10321 return (0);
10322 }
10323
10324 /* did we just delete the last set in this resource group? */
10325 if (!(*head)->lst_start) {
10326 oldhead = *head;
10327 *head = (*head)->lst_next;
10328 kmem_free(oldhead, sizeof (_ii_lsthead_t));
10329 }
10330 mutex_exit(mutex);
10331
10332 *key = NULL;
10333
10334 return (0);
10335 }
10336
10337 static nsc_def_t _ii_fd_def[] = {
10338 "Pinned", (uintptr_t)_ii_pinned, 0,
10339 "Unpinned", (uintptr_t)_ii_unpinned, 0,
10340 0, 0, 0
10341 };
10342
10343
10344 static nsc_def_t _ii_io_def[] = {
10345 "Open", (uintptr_t)_ii_openc, 0,
10346 "Close", (uintptr_t)_ii_close, 0,
10347 "Attach", (uintptr_t)_ii_attach, 0,
10348 "Detach", (uintptr_t)_ii_detach, 0,
10349 "AllocHandle", (uintptr_t)_ii_alloc_handle, 0,
10350 "FreeHandle", (uintptr_t)_ii_free_handle, 0,
10351 "AllocBuf", (uintptr_t)_ii_alloc_buf, 0,
10352 "FreeBuf", (uintptr_t)_ii_free_buf, 0,
10353 "GetPinned", (uintptr_t)_ii_get_pinned, 0,
10354 "Discard", (uintptr_t)_ii_discard_pinned, 0,
10355 "PartSize", (uintptr_t)_ii_partsize, 0,
10356 "MaxFbas", (uintptr_t)_ii_maxfbas, 0,
10357 "Read", (uintptr_t)_ii_read, 0,
10358 "Write", (uintptr_t)_ii_write, 0,
10359 "Zero", (uintptr_t)_ii_zero, 0,
10360 "Uncommit", (uintptr_t)_ii_uncommit, 0,
10361 "TrackSize", (uintptr_t)_ii_trksize, 0,
10362 "Provide", 0, 0,
10363 0, 0, 0
10364 };
10365
10366 static nsc_def_t _ii_ior_def[] = {
10367 "Open", (uintptr_t)_ii_openr, 0,
10368 "Close", (uintptr_t)_ii_close, 0,
10369 "Attach", (uintptr_t)_ii_attach, 0,
10370 "Detach", (uintptr_t)_ii_detach, 0,
10371 "AllocHandle", (uintptr_t)_ii_alloc_handle, 0,
10372 "FreeHandle", (uintptr_t)_ii_free_handle, 0,
10373 "AllocBuf", (uintptr_t)_ii_alloc_buf, 0,
10374 "FreeBuf", (uintptr_t)_ii_free_buf, 0,
10375 "GetPinned", (uintptr_t)_ii_get_pinned, 0,
10376 "Discard", (uintptr_t)_ii_discard_pinned, 0,
10377 "PartSize", (uintptr_t)_ii_partsize, 0,
10378 "MaxFbas", (uintptr_t)_ii_maxfbas, 0,
10379 "Read", (uintptr_t)_ii_read, 0,
10380 "Write", (uintptr_t)_ii_write, 0,
10381 "Zero", (uintptr_t)_ii_zero, 0,
10382 "Uncommit", (uintptr_t)_ii_uncommit, 0,
10383 "TrackSize", (uintptr_t)_ii_trksize, 0,
10384 "Provide", 0, 0,
10385 0, 0, 0
10386 };
|
10318
10319 if (!found) {
10320 mutex_exit(mutex);
10321 return (0);
10322 }
10323
10324 /* did we just delete the last set in this resource group? */
10325 if (!(*head)->lst_start) {
10326 oldhead = *head;
10327 *head = (*head)->lst_next;
10328 kmem_free(oldhead, sizeof (_ii_lsthead_t));
10329 }
10330 mutex_exit(mutex);
10331
10332 *key = NULL;
10333
10334 return (0);
10335 }
10336
10337 static nsc_def_t _ii_fd_def[] = {
10338 { "Pinned", (uintptr_t)_ii_pinned, 0 },
10339 { "Unpinned", (uintptr_t)_ii_unpinned, 0 },
10340 { NULL, (uintptr_t)NULL, 0 }
10341 };
10342
10343
10344 static nsc_def_t _ii_io_def[] = {
10345 { "Open", (uintptr_t)_ii_openc, 0 },
10346 { "Close", (uintptr_t)_ii_close, 0 },
10347 { "Attach", (uintptr_t)_ii_attach, 0 },
10348 { "Detach", (uintptr_t)_ii_detach, 0 },
10349 { "AllocHandle", (uintptr_t)_ii_alloc_handle, 0 },
10350 { "FreeHandle", (uintptr_t)_ii_free_handle, 0 },
10351 { "AllocBuf", (uintptr_t)_ii_alloc_buf, 0 },
10352 { "FreeBuf", (uintptr_t)_ii_free_buf, 0 },
10353 { "GetPinned", (uintptr_t)_ii_get_pinned, 0 },
10354 { "Discard", (uintptr_t)_ii_discard_pinned, 0 },
10355 { "PartSize", (uintptr_t)_ii_partsize, 0 },
10356 { "MaxFbas", (uintptr_t)_ii_maxfbas, 0 },
10357 { "Read", (uintptr_t)_ii_read, 0 },
10358 { "Write", (uintptr_t)_ii_write, 0 },
10359 { "Zero", (uintptr_t)_ii_zero, 0 },
10360 { "Uncommit", (uintptr_t)_ii_uncommit, 0 },
10361 { "TrackSize", (uintptr_t)_ii_trksize, 0 },
10362 { "Provide", (uintptr_t)NULL, 0 },
10363 { NULL, (uintptr_t)NULL, 0 }
10364 };
10365
10366 static nsc_def_t _ii_ior_def[] = {
10367 { "Open", (uintptr_t)_ii_openr, 0 },
10368 { "Close", (uintptr_t)_ii_close, 0 },
10369 { "Attach", (uintptr_t)_ii_attach, 0 },
10370 { "Detach", (uintptr_t)_ii_detach, 0 },
10371 { "AllocHandle", (uintptr_t)_ii_alloc_handle, 0 },
10372 { "FreeHandle", (uintptr_t)_ii_free_handle, 0 },
10373 { "AllocBuf", (uintptr_t)_ii_alloc_buf, 0 },
10374 { "FreeBuf", (uintptr_t)_ii_free_buf, 0 },
10375 { "GetPinned", (uintptr_t)_ii_get_pinned, 0 },
10376 { "Discard", (uintptr_t)_ii_discard_pinned, 0 },
10377 { "PartSize", (uintptr_t)_ii_partsize, 0 },
10378 { "MaxFbas", (uintptr_t)_ii_maxfbas, 0 },
10379 { "Read", (uintptr_t)_ii_read, 0 },
10380 { "Write", (uintptr_t)_ii_write, 0 },
10381 { "Zero", (uintptr_t)_ii_zero, 0 },
10382 { "Uncommit", (uintptr_t)_ii_uncommit, 0 },
10383 { "TrackSize", (uintptr_t)_ii_trksize, 0 },
10384 { "Provide", (uintptr_t)NULL, 0 },
10385 { NULL, (uintptr_t)NULL, 0 }
10386 };
|