Lines Matching defs:file_ext

118 		struct heci_file_private *file_ext);
607 struct heci_file_private *file_ext = NULL;
631 file_ext = heci_alloc_file_private(NULL);
632 if (file_ext == NULL)
638 kmem_free(file_ext, sizeof (struct heci_file_private));
639 file_ext = NULL;
644 kmem_free(file_ext, sizeof (struct heci_file_private));
645 file_ext = NULL;
649 list_add_tail(&file_ext->link, &dev->file_list);
661 file_ext->host_client_id = dev->current_host_client_id;
665 dev->heci_host_clients[file_ext->host_client_id / 8] |=
666 (1 << (file_ext->host_client_id % 8));
668 mutex_enter(&file_ext->file_lock);
669 file_ext->state = HECI_FILE_INITIALIZING;
670 file_ext->sm_state = 0;
672 file->private_data = file_ext;
673 mutex_exit(&file_ext->file_lock);
686 struct heci_file_private *file_ext;
701 file_ext = file->private_data;
703 if ((if_num < HECI_MINOR_NUMBER) || (!dev) || (!file_ext))
706 if (file_ext != &dev->iamthif_file_ext) {
707 mutex_enter(&file_ext->file_lock);
708 if (file_ext->state == HECI_FILE_CONNECTED) {
709 file_ext->state = HECI_FILE_DISCONNECTING;
710 mutex_exit(&file_ext->file_lock);
713 file_ext->host_client_id,
714 file_ext->me_client_id);
715 rets = heci_disconnect_host_client(dev, file_ext);
716 mutex_enter(&file_ext->file_lock);
719 heci_flush_queues(dev, file_ext);
721 file_ext->host_client_id,
722 file_ext->me_client_id);
725 dev->heci_host_clients[file_ext->host_client_id / 8] &=
726 ~(1 << (file_ext->host_client_id % 8));
730 file_ext->host_client_id);
733 if (file_ext->read_cb != NULL) {
734 priv_cb = find_read_list_entry(dev, file_ext);
739 priv_cb = file_ext->read_cb;
740 file_ext->read_cb = NULL;
745 mutex_exit(&file_ext->file_lock);
750 heci_free_file_private(file_ext);
778 struct heci_file_private *file_ext)
797 heci_fe_same_id(file_ext, file_ext_list_temp))
815 struct heci_file_private *file_ext;
831 file_ext = file->private_data;
833 if ((if_num < HECI_MINOR_NUMBER) || (!dev) || (!file_ext))
842 if (!file_ext)
845 mutex_enter(&file_ext->file_lock);
846 if ((file_ext->sm_state & HECI_WD_STATE_INDEPENDENCE_MSG_SENT) == 0) {
847 mutex_exit(&file_ext->file_lock);
853 if (file_ext->me_client_id ==
859 file_ext->sm_state &= ~HECI_WD_STATE_INDEPENDENCE_MSG_SENT;
860 mutex_exit(&file_ext->file_lock);
863 if (file_ext == &dev->iamthif_file_ext) {
868 if (file_ext->read_cb &&
869 file_ext->read_cb->information > UIO_OFFSET(uio_p)) {
870 priv_cb = file_ext->read_cb;
872 } else if (file_ext->read_cb && file_ext->read_cb->information > 0 &&
873 file_ext->read_cb->information <= UIO_OFFSET(uio_p)) {
874 priv_cb = file_ext->read_cb;
878 (!file_ext->read_cb || file_ext->read_cb->information == 0) &&
886 mutex_enter(&file_ext->read_io_lock);
887 err = heci_start_read(dev, if_num, file_ext);
890 mutex_exit(&file_ext->read_io_lock);
894 while (HECI_READ_COMPLETE != file_ext->reading_state &&
895 HECI_FILE_INITIALIZING != file_ext->state &&
896 HECI_FILE_DISCONNECTED != file_ext->state &&
897 HECI_FILE_DISCONNECTING != file_ext->state) {
898 mutex_exit(&file_ext->read_io_lock);
900 if (cv_wait_sig(&file_ext->rx_wait, &dev->device_lock) == 0) {
902 priv_cb = file_ext->read_cb;
909 if (HECI_FILE_INITIALIZING == file_ext->state ||
910 HECI_FILE_DISCONNECTED == file_ext->state ||
911 HECI_FILE_DISCONNECTING == file_ext->state) {
915 mutex_enter(&file_ext->read_io_lock);
918 priv_cb = file_ext->read_cb;
921 mutex_exit(&file_ext->read_io_lock);
924 if (file_ext->reading_state != HECI_READ_COMPLETE) {
925 mutex_exit(&file_ext->read_io_lock);
928 mutex_exit(&file_ext->read_io_lock);
952 priv_cb_pos = find_read_list_entry(dev, file_ext);
958 mutex_enter(&file_ext->read_io_lock);
959 file_ext->reading_state = HECI_IDLE;
960 file_ext->read_cb = NULL;
961 file_ext->read_pending = 0;
962 mutex_exit(&file_ext->read_io_lock);
976 struct heci_file_private *file_ext;
994 file_ext = file->private_data;
995 if ((if_num < HECI_MINOR_NUMBER) || (!dev) || (!file_ext))
1004 if (file_ext == &dev->iamthif_file_ext) {
1009 (file_ext->reading_state == HECI_READ_COMPLETE))) {
1018 if (file_ext->reading_state == HECI_READ_COMPLETE) {
1020 priv_write_cb = find_read_list_entry(dev, file_ext);
1025 mutex_enter(&file_ext->read_io_lock);
1026 file_ext->reading_state = HECI_IDLE;
1027 file_ext->read_cb = NULL;
1028 file_ext->read_pending = 0;
1029 mutex_exit(&file_ext->read_io_lock);
1031 } else if (file_ext->reading_state == HECI_IDLE &&
1032 file_ext->read_pending == 0)
1042 priv_write_cb->file_private = file_ext;
1061 mutex_enter(&file_ext->file_lock);
1062 file_ext->sm_state = 0;
1068 file_ext->sm_state |= HECI_WD_STATE_INDEPENDENCE_MSG_SENT;
1070 mutex_exit(&file_ext->file_lock);
1073 if (file_ext == &dev->iamthif_file_ext) {
1092 ASSERT(dev->me_clients[i].client_id == file_ext->me_client_id);
1149 mutex_enter(&file_ext->write_io_lock);
1151 file_ext->host_client_id, file_ext->me_client_id);
1152 if (file_ext->state != HECI_FILE_CONNECTED) {
1155 file_ext->host_client_id,
1156 file_ext->me_client_id);
1162 file_ext->me_client_id)
1165 ASSERT(dev->me_clients[i].client_id == file_ext->me_client_id);
1174 priv_write_cb->file_private = file_ext;
1176 if (flow_ctrl_creds(dev, file_ext) &&
1191 heci_hdr.host_addr = file_ext->host_client_id;
1192 heci_hdr.me_addr = file_ext->me_client_id;
1201 mutex_exit(&file_ext->write_io_lock);
1208 file_ext->writing_state = HECI_WRITING;
1211 flow_ctrl_reduce(dev, file_ext);
1222 file_ext->writing_state = HECI_WRITING;
1226 mutex_exit(&file_ext->write_io_lock);
1231 mutex_exit(&file_ext->write_io_lock);
1246 struct heci_file_private *file_ext;
1264 file_ext = file->private_data;
1266 if ((if_num < HECI_MINOR_NUMBER) || (!dev) || (!file_ext))
1294 file_ext, mode);
1305 rets = heci_ioctl_wd(dev, if_num, k_msg, file_ext, mode);
1310 rets = heci_ioctl_bypass_wd(dev, if_num, k_msg, file_ext, mode);