Lines Matching defs:handle

80 is_server_running(rmedia_handle_t *handle)
189 handle->sm_clnt = clnt;
196 void *handle;
234 handle = dlopen(pathname, RTLD_LAZY);
235 if (handle == NULL) {
239 d_fcn_ptr = (int32_t (*)(ushort_t, ushort_t))dlsym(handle,
243 (void) dlclose(handle);
249 v_fcn_ptr = (int32_t (*)(void))dlsym(handle,
253 (void) dlclose(handle);
261 old_handle = handle;
264 (void) dlclose(handle);
267 (void) dlclose(handle);
276 call_function(rmedia_handle_t *handle, void *ip, char *func_name)
280 int32_t (*fcn_ptr)(rmedia_handle_t *handle, void *ip);
283 if (handle == NULL) {
288 lib_handle = handle->sm_lib_handle;
289 if (handle->sm_signature != LIBSMEDIA_SIGNATURE) {
291 LIBSMEDIA_SIGNATURE, handle->sm_signature);
303 ret_val = (*fcn_ptr)(handle, ip);
308 release_handle(rmedia_handle_t *handle)
310 if (handle == NULL) {
315 if ((handle->sm_dkinfo.dki_ctype == DKC_SCSI_CCS) ||
316 (handle->sm_dkinfo.dki_ctype == DKC_MD21) ||
317 (handle->sm_dkinfo.dki_ctype == DKC_CDROM)) {
318 (void) close(handle->sm_door);
319 (void) close(handle->sm_death_door);
320 if (handle->sm_buf != NULL)
321 (void) munmap(handle->sm_buf, handle->sm_bufsize);
322 if (handle->sm_clnt != NULL)
323 clnt_destroy(handle->sm_clnt);
325 (void) close(handle->sm_buffd);
326 handle->sm_signature = 0;
327 (void) dlclose(handle->sm_lib_handle);
328 free(handle);
335 rmedia_handle_t *handle;
347 handle = (rmedia_handle_t *)malloc(sizeof (rmedia_handle_t));
348 if (handle == NULL) {
349 DPRINTF("Could not allocate memory for handle\n");
352 (void) memset((void *) handle, 0, sizeof (rmedia_handle_t));
353 handle->sm_fd = -1;
354 handle->sm_door = -1;
355 handle->sm_death_door = -1;
356 handle->sm_buffd = -1;
357 handle->sm_buf = NULL;
358 handle->sm_bufsize = 0;
360 if (ioctl(fd, DKIOCINFO, &handle->sm_dkinfo) == -1) {
361 free(handle);
367 free(handle);
373 /* Initialise the handle elements */
374 handle->sm_lib_handle = lib_handle;
375 handle->sm_signature = LIBSMEDIA_SIGNATURE;
376 DPRINTF2("fd=%d signature=0x%x\n", handle->sm_fd, handle->sm_signature);
378 if ((handle->sm_dkinfo.dki_ctype == DKC_SCSI_CCS) ||
379 (handle->sm_dkinfo.dki_ctype == DKC_MD21) ||
380 (handle->sm_dkinfo.dki_ctype == DKC_CDROM)) {
382 ret_val = is_server_running(handle);
384 (void) dlclose(handle->sm_lib_handle);
385 free(handle);
390 (void) dlclose(handle->sm_lib_handle);
391 free(handle);
392 if (handle->sm_clnt)
393 clnt_destroy(handle->sm_clnt);
413 (void) dlclose(handle->sm_lib_handle);
414 free(handle);
415 if (handle->sm_clnt)
416 clnt_destroy(handle->sm_clnt);
425 (void) dlclose(handle->sm_lib_handle);
426 free(handle);
427 if (handle->sm_clnt)
428 clnt_destroy(handle->sm_clnt);
438 * associated with this door to handle client calls.
444 (void) dlclose(handle->sm_lib_handle);
445 free(handle);
446 if (handle->sm_clnt)
447 clnt_destroy(handle->sm_clnt);
459 (void) dlclose(handle->sm_lib_handle);
460 free(handle);
461 if (handle->sm_clnt)
462 clnt_destroy(handle->sm_clnt);
468 (void) dlclose(handle->sm_lib_handle);
469 free(handle);
470 if (handle->sm_clnt)
471 clnt_destroy(handle->sm_clnt);
474 handle->sm_door = door_server;
475 handle->sm_fd = fd;
477 handle->sm_death_door =
480 return ((smedia_handle_t)handle);
483 handle->sm_fd = fd;
484 return ((smedia_handle_t)handle);