Changeset d48fcc0 in mainline for uspace/lib/usb/src/pipepriv.c


Ignore:
Timestamp:
2011-04-09T09:45:14Z (13 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
e9ce696
Parents:
a546687
Message:

Fine grain locking of USB pipes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/lib/usb/src/pipepriv.c

    ra546687 rd48fcc0  
    4242 * @param pipe Pipe to be exclusively accessed.
    4343 */
    44 void pipe_acquire(usb_pipe_t *pipe)
     44void pipe_start_transaction(usb_pipe_t *pipe)
    4545{
    4646        fibril_mutex_lock(&pipe->hc_phone_mutex);
     
    5151 * @param pipe Pipe to be released from exclusive usage.
    5252 */
     53void pipe_end_transaction(usb_pipe_t *pipe)
     54{
     55        fibril_mutex_unlock(&pipe->hc_phone_mutex);
     56}
     57
     58/** Ensure exclusive access to the pipe as a whole.
     59 *
     60 * @param pipe Pipe to be exclusively accessed.
     61 */
     62void pipe_acquire(usb_pipe_t *pipe)
     63{
     64        fibril_mutex_lock(&pipe->guard);
     65}
     66
     67/** Terminate exclusive access to the pipe as a whole.
     68 *
     69 * @param pipe Pipe to be released from exclusive usage.
     70 */
    5371void pipe_release(usb_pipe_t *pipe)
    5472{
    55         fibril_mutex_unlock(&pipe->hc_phone_mutex);
     73        fibril_mutex_unlock(&pipe->guard);
    5674}
    5775
     
    7694                        goto another_try;
    7795                }
     96                /*
     97                 * No locking is needed, refcount is zero and whole pipe
     98                 * mutex is locked.
     99                 */
    78100                pipe->hc_phone = phone;
    79101        }
Note: See TracChangeset for help on using the changeset viewer.