Lines Matching refs:mdsp

184 	struct mdesc_state *mdsp;
191 mdsp = ddi_get_soft_state(mdesc_state_head,
193 if (mdsp != NULL) {
261 mdesc_destroy_state(mdesc_state_t *mdsp)
263 minor_t minor = getminor(mdsp->dev);
265 if (mdsp->flags & MDESC_GOT_HANDLE)
266 (void) md_fini_handle(mdsp->mdesc);
268 cv_destroy(&mdsp->cv);
269 mutex_destroy(&mdsp->lock);
279 mdesc_state_t *mdsp;
292 mdsp = ddi_get_soft_state(mdesc_state_head, minor);
300 mdsp->dev = makedevice(major, minor);
303 *devp = mdsp->dev;
305 mdsp->instance = minor;
307 mutex_init(&mdsp->lock, NULL, MUTEX_DRIVER, NULL);
309 cv_init(&mdsp->cv, NULL, CV_DRIVER, NULL);
311 mdsp->mdesc = md_get_handle();
313 if (mdsp->mdesc == NULL) {
314 mdesc_destroy_state(mdsp);
317 mdsp->flags |= MDESC_GOT_HANDLE;
319 mdsp->mdesc_len = md_get_bin_size(mdsp->mdesc);
321 if (mdsp->mdesc_len == 0) {
322 mdesc_destroy_state(mdsp);
323 mdsp = NULL;
326 return (mdsp);
334 struct mdesc_state *mdsp;
348 mdsp = mdesc_create_state(devp);
350 if (mdsp == NULL) {
366 struct mdesc_state *mdsp;
379 if ((mdsp = ddi_get_soft_state(mdesc_state_head, instance)) == NULL)
382 ASSERT(mdsp->instance == instance);
384 mdesc_destroy_state(mdsp);
418 struct mdesc_state *mdsp;
426 if ((mdsp = ddi_get_soft_state(mdesc_state_head, instance)) == NULL)
429 ASSERT(mdsp->instance == instance);
434 mutex_enter(&mdsp->lock);
436 while (mdsp->flags & MDESC_BUSY) {
437 if (cv_wait_sig(&mdsp->cv, &mdsp->lock) == 0) {
438 mutex_exit(&mdsp->lock);
443 if (uiop->uio_offset < 0 || uiop->uio_offset > mdsp->mdesc_len) {
444 mutex_exit(&mdsp->lock);
448 if (len > (mdsp->mdesc_len - uiop->uio_offset))
449 len = mdsp->mdesc_len - uiop->uio_offset;
453 mutex_exit(&mdsp->lock);
457 mdsp->flags |= MDESC_BUSY;
458 mutex_exit(&mdsp->lock);
460 buf = md_get_md_raw(mdsp->mdesc);
467 mutex_enter(&mdsp->lock);
468 mdsp->flags &= ~MDESC_BUSY;
469 cv_broadcast(&mdsp->cv);
470 mutex_exit(&mdsp->lock);
483 struct mdesc_state *mdsp;
486 if ((mdsp = ddi_get_soft_state(mdesc_state_head, instance)) == NULL)
489 ASSERT(mdsp->instance == instance);
498 size_t sz = mdsp->mdesc_len;