201 lines
7.9 KiB
C
201 lines
7.9 KiB
C
/*
|
|
*********************************************************************************************************
|
|
* uC/USB-Device
|
|
* The Embedded USB Device Stack
|
|
*
|
|
* Copyright 2004-2021 Silicon Laboratories Inc. www.silabs.com
|
|
*
|
|
* SPDX-License-Identifier: APACHE-2.0
|
|
*
|
|
* This software is subject to an open source license and is distributed by
|
|
* Silicon Laboratories Inc. pursuant to the terms of the Apache License,
|
|
* Version 2.0 available at www.apache.org/licenses/LICENSE-2.0.
|
|
*
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
*
|
|
* USB DEVICE CORE INTERNAL FUNCTIONS
|
|
*
|
|
* Filename : usbd_internal.h
|
|
* Version : V4.06.01
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* MODULE
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
#ifndef USBD_INTERNAL_MODULE_PRESENT
|
|
#define USBD_INTERNAL_MODULE_PRESENT
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* INCLUDE FILES
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
#include "usbd_core.h"
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* EXTERNS
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* DEFINES
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* DATA TYPES
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* GLOBAL VARIABLES
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* MACRO'S
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* INTERNAL FUNCTION PROTOTYPES
|
|
*********************************************************************************************************
|
|
*/
|
|
/* ------------ DEVICE INTERNAL FUNCTIONS ------------ */
|
|
USBD_DRV *USBD_DrvRefGet (CPU_INT08U dev_nbr);
|
|
|
|
void USBD_CoreTaskHandler (void);
|
|
|
|
void USBD_DbgTaskHandler (void);
|
|
|
|
/* ------------ ENDPOINT INTERNAL FUNCTIONS ----------- */
|
|
void USBD_EP_Init (void);
|
|
|
|
void USBD_EventEP (USBD_DRV *p_drv,
|
|
CPU_INT08U ep_addr,
|
|
USBD_ERR err);
|
|
|
|
void USBD_CtrlOpen (CPU_INT08U dev_nbr,
|
|
CPU_INT16U max_pkt_size,
|
|
USBD_ERR *p_err);
|
|
|
|
void USBD_CtrlClose (CPU_INT08U dev_nbr,
|
|
USBD_ERR *p_err);
|
|
|
|
void USBD_CtrlStall (CPU_INT08U dev_nbr,
|
|
USBD_ERR *p_err);
|
|
|
|
void USBD_CtrlRxStatus (CPU_INT08U dev_nbr,
|
|
CPU_INT16U timeout_ms,
|
|
USBD_ERR *p_err);
|
|
|
|
void USBD_CtrlTxStatus (CPU_INT08U dev_nbr,
|
|
CPU_INT16U timeout_ms,
|
|
USBD_ERR *p_err);
|
|
|
|
void USBD_EP_Open (USBD_DRV *p_drv,
|
|
CPU_INT08U ep_addr,
|
|
CPU_INT16U max_pkt_size,
|
|
CPU_INT08U attrib,
|
|
CPU_INT08U interval,
|
|
USBD_ERR *p_err);
|
|
|
|
void USBD_EP_Close (USBD_DRV *p_drv,
|
|
CPU_INT08U ep_addr,
|
|
USBD_ERR *p_err);
|
|
|
|
void USBD_EP_XferAsyncProcess(USBD_DRV *p_drv,
|
|
CPU_INT08U ep_addr,
|
|
USBD_ERR xfer_err);
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* FUNCTION PROTOTYPES
|
|
* DEFINED IN OS'S usbd_os.c
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
void USBD_OS_Init (USBD_ERR *p_err);
|
|
|
|
void USBD_OS_EP_SignalCreate(CPU_INT08U dev_nbr,
|
|
CPU_INT08U ep_ix,
|
|
USBD_ERR *p_err);
|
|
|
|
void USBD_OS_EP_SignalDel (CPU_INT08U dev_nbr,
|
|
CPU_INT08U ep_ix);
|
|
|
|
void USBD_OS_EP_SignalPend (CPU_INT08U dev_nbr,
|
|
CPU_INT08U ep_ix,
|
|
CPU_INT16U timeout_ms,
|
|
USBD_ERR *p_err);
|
|
|
|
void USBD_OS_EP_SignalAbort (CPU_INT08U dev_nbr,
|
|
CPU_INT08U ep_ix,
|
|
USBD_ERR *p_err);
|
|
|
|
void USBD_OS_EP_SignalPost (CPU_INT08U dev_nbr,
|
|
CPU_INT08U ep_ix,
|
|
USBD_ERR *p_err);
|
|
|
|
void USBD_OS_EP_LockCreate (CPU_INT08U dev_nbr,
|
|
CPU_INT08U ep_ix,
|
|
USBD_ERR *p_err);
|
|
|
|
void USBD_OS_EP_LockDel (CPU_INT08U dev_nbr,
|
|
CPU_INT08U ep_ix);
|
|
|
|
void USBD_OS_EP_LockAcquire (CPU_INT08U dev_nbr,
|
|
CPU_INT08U ep_ix,
|
|
CPU_INT16U timeout_ms,
|
|
USBD_ERR *p_err);
|
|
|
|
void USBD_OS_EP_LockRelease (CPU_INT08U dev_nbr,
|
|
CPU_INT08U ep_ix);
|
|
|
|
void USBD_OS_DbgEventRdy (void);
|
|
void USBD_OS_DbgEventWait (void);
|
|
|
|
void *USBD_OS_CoreEventGet (CPU_INT32U timeout_ms,
|
|
USBD_ERR *p_err);
|
|
|
|
void USBD_OS_CoreEventPut (void *p_event);
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* CONFIGURATION ERRORS
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
|
|
/*
|
|
*********************************************************************************************************
|
|
* MODULE END
|
|
*********************************************************************************************************
|
|
*/
|
|
|
|
#endif
|
|
|