Changeset 92b41f33 in mainline for uspace/lib/usb/src/pipesinit.c


Ignore:
Timestamp:
2011-03-13T22:54:33Z (13 years ago)
Author:
Vojtech Horky <vojtechhorky@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b711f62
Parents:
deb4ba7 (diff), 5fd22d8 (diff)
Note: this is a merge changeset, the changes displayed below correspond to the merge itself.
Use the (diff) links above to see all the changes relative to each parent.
Message:

Add library layer for bandwidth reservation

See ticket #121.

File:
1 edited

Legend:

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

    rdeb4ba7 r92b41f33  
    3838#include <usb/dp.h>
    3939#include <usb/request.h>
     40#include <usbhc_iface.h>
    4041#include <errno.h>
    4142#include <assert.h>
     
    393394}
    394395
     396/** Register endpoint with the host controller.
     397 *
     398 * @param pipe Pipe to be registered.
     399 * @param interval Polling interval.
     400 * @param hc_connection Connection to the host controller (must be opened).
     401 * @return Error code.
     402 */
     403int usb_endpoint_pipe_register(usb_endpoint_pipe_t *pipe,
     404    unsigned int interval,
     405    usb_hc_connection_t *hc_connection)
     406{
     407        assert(pipe);
     408        assert(hc_connection);
     409
     410        if (!usb_hc_connection_is_opened(hc_connection)) {
     411                return EBADF;
     412        }
     413
     414#define _PACK(high, low) ((high) * 256 + (low))
     415
     416        return async_req_5_0(hc_connection->hc_phone,
     417            DEV_IFACE_ID(USBHC_DEV_IFACE), IPC_M_USBHC_REGISTER_ENDPOINT,
     418            _PACK(pipe->wire->address, pipe->endpoint_no),
     419            _PACK(pipe->transfer_type, pipe->direction),
     420            pipe->max_packet_size, interval);
     421
     422#undef _PACK
     423}
     424
     425/** Revert endpoint registration with the host controller.
     426 *
     427 * @param pipe Pipe to be unregistered.
     428 * @param hc_connection Connection to the host controller (must be opened).
     429 * @return Error code.
     430 */
     431int usb_endpoint_pipe_unregister(usb_endpoint_pipe_t *pipe,
     432    usb_hc_connection_t *hc_connection)
     433{
     434        assert(pipe);
     435        assert(hc_connection);
     436
     437        if (!usb_hc_connection_is_opened(hc_connection)) {
     438                return EBADF;
     439        }
     440
     441        return async_req_4_0(hc_connection->hc_phone,
     442            DEV_IFACE_ID(USBHC_DEV_IFACE), IPC_M_USBHC_UNREGISTER_ENDPOINT,
     443            pipe->wire->address, pipe->endpoint_no, pipe->direction);
     444}
     445
    395446/**
    396447 * @}
Note: See TracChangeset for help on using the changeset viewer.