Lines Matching refs:door_dp
284 static int32_t raw_read(door_data_t *door_dp, smedia_services_t *req);
285 static int32_t raw_write(door_data_t *door_dp, smedia_services_t *req);
286 static int32_t reassign_block(door_data_t *door_dp, smedia_services_t *req);
287 static int32_t set_protection_status(door_data_t *door_dp,
289 static int32_t set_shfd(door_data_t *door_dp, int32_t fd,
302 invalid_uscsi_operation(door_data_t *door_dp, struct uscsi_cmd *ucmd) in invalid_uscsi_operation() argument
305 if (door_dp->dd_dkinfo.dki_ctype != DKC_CDROM) { in invalid_uscsi_operation()
308 door_dp->dd_dkinfo.dki_ctype); in invalid_uscsi_operation()
1330 door_data_t *door_dp; in sm_server_thread() local
1335 door_dp = (door_data_t *)arg; in sm_server_thread()
1337 if (door_dp == NULL) { in sm_server_thread()
1344 (void) mutex_lock(&door_dp->dd_lock); in sm_server_thread()
1345 if (door_dp->dd_cdoor_descriptor < 0) { in sm_server_thread()
1348 (void) mutex_unlock(&door_dp->dd_lock); in sm_server_thread()
1351 (void) mutex_unlock(&door_dp->dd_lock); in sm_server_thread()
1361 if (sigemptyset(&door_dp->dd_newset) != 0) in sm_server_thread()
1364 if ((err = pthread_sigmask(SIG_BLOCK, &door_dp->dd_newset, NULL)) != 0) in sm_server_thread()
1369 if (door_bind(door_dp->dd_cdoor_descriptor) < 0) { in sm_server_thread()
1374 door_dp->dd_cdoor_descriptor); in sm_server_thread()
1392 (void) cond_signal(&door_dp->dd_cv_bind); in sm_server_thread()
1413 cleanup(door_data_t *door_dp) in cleanup() argument
1416 if (door_dp->dd_ddoor_descriptor >= 0) { in cleanup()
1418 pthread_self(), door_dp->dd_ddoor_descriptor); in cleanup()
1420 if (door_revoke(door_dp->dd_ddoor_descriptor) < 0) { in cleanup()
1423 door_dp->dd_ddoor_descriptor, errno); in cleanup()
1425 door_dp->dd_ddoor_descriptor = -1; in cleanup()
1430 if (door_dp->dd_buffd >= 0) { in cleanup()
1432 (void) munmap(door_dp->dd_buf, door_dp->dd_buf_len); in cleanup()
1433 (void) close(door_dp->dd_buffd); in cleanup()
1435 door_dp->dd_buffd = -1; in cleanup()
1436 door_dp->dd_buf = NULL; in cleanup()
1437 door_dp->dd_buf_len = 0; in cleanup()
1441 if (door_dp->dd_fd >= 0) { in cleanup()
1443 door_dp->dd_fd); in cleanup()
1444 if (close(door_dp->dd_fd) < 0) { in cleanup()
1455 pthread_self(), door_dp->dd_cdoor_descriptor); in cleanup()
1458 "%d", door_dp->dd_cdoor_descriptor, errno); in cleanup()
1461 if (door_dp->dd_cdoor_descriptor >= 0) { in cleanup()
1463 pthread_self(), door_dp->dd_cdoor_descriptor); in cleanup()
1465 if (door_revoke(door_dp->dd_cdoor_descriptor) < 0) { in cleanup()
1468 door_dp->dd_cdoor_descriptor, errno); in cleanup()
1472 free(door_dp); in cleanup()
1508 door_data_t *door_dp; in sm_door_server_create() local
1517 door_dp = (door_data_t *)(uintptr_t)dip->di_data; in sm_door_server_create()
1523 (void) mutex_lock(&door_dp->dd_threadlock); in sm_door_server_create()
1525 if (door_dp->dd_thread != 0) { in sm_door_server_create()
1528 (void) mutex_unlock(&door_dp->dd_threadlock); in sm_door_server_create()
1546 (void) mutex_unlock(&door_dp->dd_threadlock); in sm_door_server_create()
1551 door_dp->dd_thread = tid; in sm_door_server_create()
1553 (void) mutex_unlock(&door_dp->dd_threadlock); in sm_door_server_create()
1574 raw_read(door_data_t *door_dp, smedia_services_t *req) in raw_read() argument
1587 if (door_dp->dd_sector_size == 0) { in raw_read()
1588 sector_size = get_sector_size(door_dp->dd_fd); in raw_read()
1589 door_dp->dd_sector_size = sector_size; in raw_read()
1590 } else sector_size = door_dp->dd_sector_size; in raw_read()
1592 if ((req->reqraw_read.nbytes > door_dp->dd_buf_len) || in raw_read()
1593 (door_dp->dd_buf == NULL)) { in raw_read()
1612 ucmd.uscsi_bufaddr = (caddr_t)door_dp->dd_buf; in raw_read()
1617 ret_val = do_uscsi_cmd(door_dp->dd_fd, in raw_read()
1635 raw_write(door_data_t *door_dp, smedia_services_t *req) in raw_write() argument
1648 if (door_dp->dd_sector_size == 0) { in raw_write()
1649 sector_size = get_sector_size(door_dp->dd_fd); in raw_write()
1650 door_dp->dd_sector_size = sector_size; in raw_write()
1651 } else sector_size = door_dp->dd_sector_size; in raw_write()
1654 if ((req->reqraw_write.nbytes > door_dp->dd_buf_len) || in raw_write()
1655 (door_dp->dd_buf == NULL)) { in raw_write()
1673 ucmd.uscsi_bufaddr = (caddr_t)door_dp->dd_buf; in raw_write()
1678 ret_val = do_uscsi_cmd(door_dp->dd_fd, in raw_write()
1696 set_protection_status(door_data_t *door_dp, smedia_services_t *req) in set_protection_status() argument
1710 switch (get_device_type_scsi(door_dp->dd_fd, &inq)) { in set_protection_status()
1712 status = scsi_zip_media_status(door_dp->dd_fd); in set_protection_status()
1713 ret_val = scsi_zip_write_protect(door_dp->dd_fd, in set_protection_status()
1718 status = scsi_floppy_media_status(door_dp->dd_fd); in set_protection_status()
1719 ret_val = scsi_floppy_write_protect(door_dp->dd_fd, in set_protection_status()
1723 status = scsi_media_status(door_dp->dd_fd); in set_protection_status()
1724 ret_val = scsi_write_protect(door_dp->dd_fd, in set_protection_status()
1735 (void) audit_save_me(door_dp); in set_protection_status()
1736 door_dp->audit_text[0] = 0; in set_protection_status()
1737 door_dp->audit_text1[0] = 0; in set_protection_status()
1738 door_dp->audit_event = AUE_smserverd; in set_protection_status()
1744 pwd = getpwuid(door_dp->dd_cred.dc_ruid); in set_protection_status()
1751 (void) snprintf(door_dp->audit_text, in set_protection_status()
1752 sizeof (door_dp->audit_text), in set_protection_status()
1756 (void) snprintf(door_dp->audit_text1, in set_protection_status()
1757 sizeof (door_dp->audit_text1), in set_protection_status()
1759 (int)major(door_dp->dd_stat.st_rdev), in set_protection_status()
1760 (int)minor(door_dp->dd_stat.st_rdev)); in set_protection_status()
1762 door_dp->audit_sorf = 1; in set_protection_status()
1763 if (audit_audit(door_dp) == -1) in set_protection_status()
1771 (void) snprintf(door_dp->audit_text, in set_protection_status()
1772 sizeof (door_dp->audit_text), in set_protection_status()
1776 (void) snprintf(door_dp->audit_text1, in set_protection_status()
1777 sizeof (door_dp->audit_text1), in set_protection_status()
1779 (int)major(door_dp->dd_stat.st_rdev), in set_protection_status()
1780 (int)minor(door_dp->dd_stat.st_rdev)); in set_protection_status()
1782 door_dp->audit_sorf = 0; in set_protection_status()
1783 if (audit_audit(door_dp) == -1) in set_protection_status()
1791 set_shfd(door_data_t *door_dp, int32_t fd, smedia_services_t *req) in set_shfd() argument
1796 if ((door_dp->dd_buffd != -1) && (door_dp->dd_buf != NULL)) { in set_shfd()
1797 ret_val = munmap(door_dp->dd_buf, door_dp->dd_buf_len); in set_shfd()
1801 (void) close(door_dp->dd_buffd); in set_shfd()
1803 door_dp->dd_buffd = -1; in set_shfd()
1804 door_dp->dd_buf = 0; in set_shfd()
1805 door_dp->dd_buf_len = 0; in set_shfd()
1815 door_dp->dd_buffd = fd; in set_shfd()
1816 door_dp->dd_buf = fbuf; in set_shfd()
1817 door_dp->dd_buf_len = req->reqset_shfd.fdbuf_len; in set_shfd()
1823 reassign_block(door_data_t *door_dp, smedia_services_t *req) in reassign_block() argument
1832 if (get_mode_page(door_dp->dd_fd, 0, 1, in reassign_block()
1835 ret_val = scsi_reassign_block(door_dp->dd_fd, in reassign_block()
1849 ret_val = scsi_reassign_block(door_dp->dd_fd, in reassign_block()
1863 ret_val = scsi_reassign_block(door_dp->dd_fd, in reassign_block()
1887 (void) do_uscsi_cmd(door_dp->dd_fd, &ucmd, USCSI_READ); in reassign_block()
1905 ret_val = do_uscsi_cmd(door_dp->dd_fd, &ucmd, USCSI_WRITE); in reassign_block()
1910 ret_val = scsi_reassign_block(door_dp->dd_fd, in reassign_block()
1971 door_data_t *door_dp; in client_servproc() local
1981 door_dp = (door_data_t *)cookie; in client_servproc()
1995 cleanup(door_dp); in client_servproc()
2030 ret_val = set_shfd(door_dp, dp->d_data.d_desc.d_descriptor, in client_servproc()
2057 ret_val = raw_read(door_dp, req); in client_servproc()
2071 ucmd.uscsi_bufaddr = (caddr_t)door_dp->dd_buf; in client_servproc()
2082 errno = invalid_uscsi_operation(door_dp, &ucmd); in client_servproc()
2088 ((req->requscsi_cmd.uscsi_buflen > door_dp->dd_buf_len) || in client_servproc()
2089 (door_dp->dd_buf == NULL))) { in client_servproc()
2093 door_dp->dd_buf_len, in client_servproc()
2094 door_dp->dd_buf); in client_servproc()
2098 ret_val = do_uscsi_cmd(door_dp->dd_fd, in client_servproc()
2120 ret_val = raw_write(door_dp, req); in client_servproc()
2142 ret_val = do_uscsi_cmd(door_dp->dd_fd, in client_servproc()
2185 ret_val = ioctl(door_dp->dd_fd, DKIOCGMEDIAINFO, &media_info); in client_servproc()
2198 ret_val = get_media_capacity(door_dp->dd_fd, in client_servproc()
2220 if (get_device_type_scsi(door_dp->dd_fd, &inq) == SCSI_FLOPPY) { in client_servproc()
2226 ret_val = ioctl(door_dp->dd_fd, DKIOCGEXTVTOC, &extvtoc); in client_servproc()
2228 ret_val = ioctl(door_dp->dd_fd, DKIOCGVTOC, &vtoc); in client_servproc()
2231 ret_val = ioctl(door_dp->dd_fd, DKIOCGGEOM, &dkgeom); in client_servproc()
2241 door_dp->dd_fd, in client_servproc()
2257 ret_val = ioctl(door_dp->dd_fd, in client_servproc()
2296 switch (get_device_type_scsi(door_dp->dd_fd, &inq)) { in client_servproc()
2298 status = scsi_floppy_media_status(door_dp->dd_fd); in client_servproc()
2301 status = scsi_zip_media_status(door_dp->dd_fd); in client_servproc()
2304 status = scsi_media_status(door_dp->dd_fd); in client_servproc()
2321 ret_val = set_protection_status(door_dp, req); in client_servproc()
2331 switch (get_device_type_scsi(door_dp->dd_fd, &inq)) { in client_servproc()
2334 err = scsi_floppy_format(door_dp->dd_fd, in client_servproc()
2339 err = scsi_zip_format(door_dp->dd_fd, in client_servproc()
2343 err = scsi_format(door_dp->dd_fd, in client_servproc()
2371 ret_val = do_uscsi_cmd(door_dp->dd_fd, in client_servproc()
2400 ret_val = reassign_block(door_dp, req); in client_servproc()