⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 udihost.h

📁 SAMSUNG 5009的源代码
💻 H
字号:
/* udiHost.h - SAMSUNG S5L5005 Uniform Driver Interface header */

/* Copyright 2005 TAEBAEK Soft Corp. */

/*
modification history
--------------------
02e,28nov05,jmLee   version control sync.
01a,21sep05,jmLee   created.
*/


#ifndef __INCudiHosth
#define __INCudiHosth


#include "API/LAPI/USB/CONFIG/_s5l5005.h"


#ifdef  __cplusplus
extern "C" {
#endif


#undef  PORT_RESET_DURATION_SHORTER_THAN_10MS

#define INCLUDE_HUB_CLASS               1
#define INCLUDE_BULK_PIPE               1
#define INCLUDE_ISO_PIPE                0
#if     INCLUDE_HUB_CLASS
#define INCLUDE_INTERRUPT_PIPE          1
#else   /* INCLUDE_HUB_CLASS */
#define INCLUDE_INTERRUPT_PIPE          0
#endif  /* INCLUDE_HUB_CLASS */
#if     INCLUDE_ISO_PIPE || INCLUDE_INTERRUPT_PIPE
#define INCLUDE_PERIODIC_LIST           1
#else   /* INCLUDE_ISO_PIPE || INCLUDE_INTERRUPT_PIPE */
#define INCLUDE_PERIODIC_LIST           0
#endif  /* INCLUDE_ISO_PIPE || INCLUDE_INTERRUPT_PIPE */

/* UDI Definitions */

#define UDI_NUM_CONTROLLERS             1                   /* Number of HC */
#if     INCLUDE_HUB_CLASS
#define UDI_NUM_DEVICES                 4                   /* Number of Devices, include Root Hub */
#define UDI_NUM_HUBS                    2                   /* Number of Hubs, include Root Hub */
#else   /* INCLUDE_HUB_CLASS */
#define UDI_NUM_DEVICES                 2                   /* Number of Devices, include Root Hub */
#define UDI_NUM_HUBS                    1                   /* Number of Hubs, include Root Hub */
#endif  /* INCLUDE_HUB_CLASS */

#define OHCI_OPR_BASE                   0x3A600000          /* OHCI Operational Register Base Address */

#define V2P(_p)                         ((ULONG)(_p))
#define P2V(_p)                         ((ULONG)(_p))

#define OHCI_READ_REG(_off)             (*((VUINT32 *)(OHCI_OPR_BASE + (_off))))
#define OHCI_WRITE_REG(_off, _val)      (*((VUINT32 *)(OHCI_OPR_BASE + (_off))) = (ULONG)(_val))

#define CORE_PLL_FREQ                   130

/* Macros */

#ifndef LIST_ENTRY
/* Doubly-Linked List */

typedef struct _LIST_ENTRY {
    struct _LIST_ENTRY *Flink;
    struct _LIST_ENTRY *Blink;
} LIST_ENTRY, *PLIST_ENTRY;

/* Doubly-Linked List Manipulation Routines */

#define InitializeListHead(ListHead) (\
    (ListHead)->Flink = (ListHead)->Blink = (ListHead))

#define IsListEmpty(ListHead) \
    ((ListHead)->Flink == (ListHead))

#define GetHeadList(ListHead) \
    (ListHead)->Flink;

#define GetTailList(ListHead) \
    (ListHead)->Blink;

#define RemoveEntryList(Entry) {\
    PLIST_ENTRY _EX_Blink;\
    PLIST_ENTRY _EX_Flink;\
    _EX_Flink = (Entry)->Flink;\
    _EX_Blink = (Entry)->Blink;\
    _EX_Blink->Flink = _EX_Flink;\
    _EX_Flink->Blink = _EX_Blink;\
    }

#define RemoveHeadList(ListHead) \
    (ListHead)->Flink;\
    {RemoveEntryList((ListHead)->Flink)}

#define RemoveTailList(ListHead) \
    (ListHead)->Blink;\
    {RemoveEntryList((ListHead)->Blink)}

#define InsertHeadList(ListHead,Entry) {\
    PLIST_ENTRY _EX_Flink;\
    PLIST_ENTRY _EX_ListHead;\
    _EX_ListHead = (ListHead);\
    _EX_Flink = _EX_ListHead->Flink;\
    (Entry)->Flink = _EX_Flink;\
    (Entry)->Blink = _EX_ListHead;\
    _EX_Flink->Blink = (Entry);\
    _EX_ListHead->Flink = (Entry);\
}

#define InsertTailList(ListHead,Entry) {\
    PLIST_ENTRY _EX_Blink;\
    PLIST_ENTRY _EX_ListHead;\
    _EX_ListHead = (ListHead);\
    _EX_Blink = _EX_ListHead->Blink;\
    (Entry)->Flink = _EX_ListHead;\
    (Entry)->Blink = _EX_Blink;\
    _EX_Blink->Flink = (Entry);\
    _EX_ListHead->Blink = (Entry);\
    }
#endif  /* LIST_ENTRY */

#define GET_ALIGNED_ADDRESS(p, a)       ((p + (a - 1)) & (~(a - 1)))

#ifndef offsetof
#define offsetof(s, m)                  ((UCHAR *)&(((s *)0)->m))
#endif  /* offsetof */


/* Function Prototypes */

#if defined(__STDC__) || defined(__cplusplus)

IMPORT VOID UDI_HOST_UDELAY(ULONG us);
IMPORT PVOID UDI_HOST_MALLOC_NONCACHED(UINT len);
IMPORT VOID UDI_HOST_FREE_NONCACHED(PVOID ptr);

#else  /* defined(__STDC__) || defined(__cplusplus) */

IMPORT VOID UDI_HOST_UDELAY();
IMPORT PVOID UDI_HOST_MALLOC_NONCACHED();
IMPORT VOID UDI_HOST_FREE_NONCACHED();

#endif  /* defined(__STDC__) || defined(__cplusplus) */


#ifdef __cplusplus
}
#endif


#endif  /* __INCudiHosth */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -