Lines Matching refs:vcp

60         struct venus_comm *vcp = (struct venus_comm *) file->private_data;  in coda_psdev_poll()  local
63 poll_wait(file, &vcp->vc_waitq, wait); in coda_psdev_poll()
64 mutex_lock(&vcp->vc_mutex); in coda_psdev_poll()
65 if (!list_empty(&vcp->vc_pending)) in coda_psdev_poll()
67 mutex_unlock(&vcp->vc_mutex); in coda_psdev_poll()
94 struct venus_comm *vcp = (struct venus_comm *) file->private_data; in coda_psdev_write() local
133 error = coda_downcall(vcp, hdr.opcode, dcbuf, nbytes); in coda_psdev_write()
147 mutex_lock(&vcp->vc_mutex); in coda_psdev_write()
148 list_for_each(lh, &vcp->vc_processing) { in coda_psdev_write()
156 mutex_unlock(&vcp->vc_mutex); in coda_psdev_write()
208 struct venus_comm *vcp = (struct venus_comm *) file->private_data; in coda_psdev_read() local
215 mutex_lock(&vcp->vc_mutex); in coda_psdev_read()
217 add_wait_queue(&vcp->vc_waitq, &wait); in coda_psdev_read()
220 while (list_empty(&vcp->vc_pending)) { in coda_psdev_read()
229 mutex_unlock(&vcp->vc_mutex); in coda_psdev_read()
231 mutex_lock(&vcp->vc_mutex); in coda_psdev_read()
235 remove_wait_queue(&vcp->vc_waitq, &wait); in coda_psdev_read()
240 req = list_entry(vcp->vc_pending.next, struct upc_req,uc_chain); in coda_psdev_read()
257 list_add_tail(&(req->uc_chain), &vcp->vc_processing); in coda_psdev_read()
264 mutex_unlock(&vcp->vc_mutex); in coda_psdev_read()
270 struct venus_comm *vcp; in coda_psdev_open() local
284 vcp = &coda_comms[idx]; in coda_psdev_open()
285 mutex_lock(&vcp->vc_mutex); in coda_psdev_open()
287 if (!vcp->vc_inuse) { in coda_psdev_open()
288 vcp->vc_inuse++; in coda_psdev_open()
290 INIT_LIST_HEAD(&vcp->vc_pending); in coda_psdev_open()
291 INIT_LIST_HEAD(&vcp->vc_processing); in coda_psdev_open()
292 init_waitqueue_head(&vcp->vc_waitq); in coda_psdev_open()
293 vcp->vc_sb = NULL; in coda_psdev_open()
294 vcp->vc_seq = 0; in coda_psdev_open()
296 file->private_data = vcp; in coda_psdev_open()
300 mutex_unlock(&vcp->vc_mutex); in coda_psdev_open()
307 struct venus_comm *vcp = (struct venus_comm *) file->private_data; in coda_psdev_release() local
310 if (!vcp || !vcp->vc_inuse ) { in coda_psdev_release()
315 mutex_lock(&vcp->vc_mutex); in coda_psdev_release()
318 list_for_each_entry_safe(req, tmp, &vcp->vc_pending, uc_chain) { in coda_psdev_release()
331 list_for_each_entry_safe(req, tmp, &vcp->vc_processing, uc_chain) { in coda_psdev_release()
339 vcp->vc_inuse--; in coda_psdev_release()
340 mutex_unlock(&vcp->vc_mutex); in coda_psdev_release()