USBD_OS_EP_LockCreate

Description

Create an OS resource to use as an endpoint lock.

Files

usbd_internal.h/usbd_os.c

Prototype

void  USBD_OS_EP_LockCreate (CPU_INT08U   dev_nbr,
                             CPU_INT08U   ep_ix,
                             USBD_ERR    *p_err);


Arguments

dev_nbr

Device number.

ep_ix

Endpoint index.

p_err

Pointer to variable that will receive the return error code from this function.

Returned Value

None.

Callers

Endpoints open functions.

Implementation guidelines

  1. The purpose of this function is to allocate a lock (mutex or semaphore) for the specified endpoint.
  2. Typically, the RTOS layer code should create a two-dimensional array to store the lock handlers. The dev_nbr and ep_ix are used to index this array.
  3. dev_nbr ranges between 0 and USBD_CFG_MAX_NBR_DEV.
  4. ep_ix ranges between 0 and USBD_CFG_MAX_NBR_EP_OPEN.
  5. In case the creation fails, USBD_ERR_OS_SIGNAL_CREATE should be assigned to p_err. Otherwise, USBD_ERR_NONE should be assigned to p_err.