📄 udihost.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 + -