亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? sc2410_usb_ser.h

?? GEC2410開發(fā)板嵌如入式操作系統(tǒng)WinCE5.0
?? H
字號:
/*++
THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
PARTICULAR PURPOSE.
Copyright (c) 2001. Samsung Electronics, co. ltd  All rights reserved.

Module Name:  

Abstract:

    S3C2400 USB function(ACTIVE SYNC) device driver (wrapper Layer) header file
	Holds definitions for sample SA-11X0 USB serial interface

rev:
	2002.5.8	: Add to s3c2410_code (Seung-han, Lim)
	2002.1.22	: First release/no error recovery (kwangyoon LEE, kwangyoon@samsung.com)

Notes: 
--*/

#ifndef __SER_PDD_H__   
#define __SER_PDD_H__

#ifdef __cplusplus
extern "C" {
#endif

//Here are the names of the values stored in the registry
#define SC2400USB_REG_IOBASE_VAL_NAME TEXT("IoBase") 
#define SC2400USB_REG_IOBASE_VAL_LEN  sizeof( DWORD )

#define SC2400USB_REG_IOLEN_VAL_NAME TEXT("IoLen") 
#define SC2400USB_REG_IOLEN_VAL_LEN  sizeof( DWORD )

#define SC2400USB_REG_IRQ_VAL_NAME TEXT("Irq") 
#define SC2400USB_REG_IRQ_VAL_LEN  sizeof( DWORD )

#define SC2400USB_REG_DEVINDEX_VAL_NAME TEXT("DeviceArrayIndex") 
#define SC2400USB_REG_DEVINDEX_VAL_LEN  sizeof( DWORD )

// We can be built with a simple setting 0, or optionally add
// a second setting which includes an interrupt endpoint
// #define INT_SETTING 1

// Since SC2400_USB doesn't interrupt on disconnect, we have option to poll for this
// #define POLL_FOR_DISCONNECT 1


// Strict timing requirements at enumeration.  Use a relatively high priority
#define DEFAULT_THREAD_PRIO 100
    
// We poll for device detach at the following rate.
#define SC2400_USB_POLL_RATE 1000

// And simulate disconnect if SOF unchanged this many interations
#define SOF_STABLE_MAX 3

// Use this macro to determine if we are in Data0 or Data1 phase
// #define DATA1( dat_cnt ) ( ((dat_cnt) ^= 0x01) )
#define DATA1( dat_cnt ) ( ((++dat_cnt) & 0x01) )
    
// We use a callback for serial events
typedef VOID		(*EVENT_FUNC)(PVOID Arg1, ULONG Arg2);

// Here is the callback for serial events
typedef VOID (*PFN_SER_EVENT) (
              PVOID pHandle,      // PHW_INDEP_INFO, but pdd doesn't know it
	      UINT32 events       // What events where encountered?
	      );


typedef enum _USBD_STATE {
    OFF,
    SUSPEND,
    RESUME,
    IDLE,
    CONTROL,
    RX,
    PURGE_RX,
    ERR_RX,    
    TX,
    PURGE_TX,
    ERR_TX,
} USBD_STATE, *PUSBD_STATE;


/*
 * @doc HWINTERNAL
 * @struct SER_INFO | Private structure.
 */
typedef struct __SER_INFO {
	// Keep a copy of DCB since we rely on may of its parms
	DCB		dcb;		// @field Device Control Block (copy of DCB in MDD)

	// And the same thing applies for CommTimeouts
	COMMTIMEOUTS	CommTimeouts;	// @field Copy of CommTimeouts structure
	ULONG		CommErrors;	// @field Bitfield representing Win32 comm error status. 
	ULONG		ModemStatus;	// @field Bitfield representing Win32 modem status. 
	CRITICAL_SECTION HwRegCritSec;// @field Protects SC2400_USB registers from non-atomic
  				// access (addr/data pairs)
	CRITICAL_SECTION TransmitCritSec; // @field Protects UART TX FIFO from simultaneous access
	ULONG		OpenCount;	// @field Count of simultaneous opens. 
	ULONG		DroppedBytes;	// @field Number of dropped bytes 
	COMSTAT	Status; 	// @field Bitfield representing Win32 comm status. 
	HANDLE	FlushDone;	// @field Handle to flush done event.

	// We have our own dispatch thread.
	HANDLE	pDispatchThread;// @field ReceiveThread 
	DWORD		KillRxThread:1;	// @field Flag to terminate SC2400_USB_DispatchThread.
	HANDLE        hSerialEvent;   // @field Interrupt event
		
	// now hardware specific goodies
	DWORD		dwIOBase;       // @field IO Base Address - unmapped
	DWORD		dwIOLen;        // @field IO Length
	DWORD		dwIRQ;          // @field Interrupt number for this peripheral
	DWORD		dwDevIndex;     // @field Index of device
	WORD		wSOFStableCnt;  // @field How many iterations without SOF
	
	volatile IOPreg 		*pIrqCtrlAddr; // @field Interrupt base address
	volatile struct udcreg 	*pUSBCtrlAddr; // @field USB base address
	volatile CLKPWRreg    	*pCLKPWR;      // @field CLK/PWR base address

	SetupPKG	dReq;		// @field USB endpoint 0 command
	BYTE		cIntStat_eir;       // @field Last known interrupt status
	BYTE		cIntStat_uir;
	BYTE 		dConfIdx; 	// @field USB Configuration Index
	BYTE 		dInterface; 	// @field USB Interface Index
	BYTE 		dSetting; 	// @field USB Setting Index
	BYTE		dAddress;	// @field USB device Address
	UINT8		cOpenCount;     // @field Count of concurrent opens
	COMMPROP	CommProp;       // @field Pointer to CommProp structure.
	PVOID		pMddHead;       // @field First arg to mdd callbacks.
	PHWOBJ		pHWObj;         // @field Pointer to PDDs HWObj structure
	BOOL		fIRMode;        // @field Boolean, are we running in IR mode?

	WORD      wSOF;               // SOF count read in ISR
	WORD      wPrevSOF;

	USBD_STATE   State;
    
} SER_INFO, *PSER_INFO;

// And now, all the function prototypes
    PVOID
	SerInit(
        ULONG   Identifier,
        PVOID   pMddHead,
        PHWOBJ  pHWObj
        );
    BOOL SerPostInit(
        PVOID   pHead 
        );
    BOOL SerDeinit(
        PVOID   pHead 
        );
    BOOL SerOpen(
        PVOID   pHead 
        );
    ULONG SerClose(
        PVOID   pHead
        );
    VOID SerClearDTR(
        PVOID   pHead 
        );
    VOID SerSetDTR(
        PVOID   pHead 
        );
    VOID SerClearRTS(
        PVOID   pHead 
        );
    VOID SerSetRTS(
        PVOID   pHead 
        );
    VOID SerClearBreak(
        PVOID   pHead 
        );
    VOID SerSetBreak(
        PVOID   pHead 
        );
    VOID SerClearBreak(
        PVOID   pHead 
        );
    VOID SerSetBreak(
        PVOID   pHead
        );
    ULONG SerGetByteNumber(
        PVOID   pHead	     
        );
    VOID SerDisableXmit(
        PVOID   pHead	
        );
    VOID SerEnableXmit(
        PVOID   pHead	
        );
    BOOL SerSetBaudRate(
        PVOID   pHead,
        ULONG   BaudRate	//      ULONG representing decimal baud rate.
        );
    BOOL SerSetDCB(
        PVOID   pHead,	
        LPDCB   lpDCB		//     Pointer to DCB structure
        );
    ULONG SerSetCommTimeouts(
        PVOID   pHead,	
        LPCOMMTIMEOUTS   lpCommTimeouts //  Pointer to CommTimeout structure
        );
    ULONG SerGetRxBufferSize(
        PVOID pHead
        );
    INTERRUPT_TYPE SerGetInterruptType(
        PVOID pHead
        );
    ULONG SerRxIntr(
        PVOID pHead,
        PUCHAR pRxBuffer,       // Pointer to receive buffer
        ULONG *pBufflen         //  In = max bytes to read, out = bytes read
        );
    VOID SerTxIntr(
        PVOID pHead,
        PUCHAR pTxBuffer,
        ULONG *pBufflen
        );
    VOID SerLineIntr(
        PVOID pHead
        );
    VOID SerModemIntr(
        PVOID pHead 
        );
    ULONG SerGetStatus(
        PVOID	pHead,
        LPCOMSTAT lpStat	// Pointer to LPCOMMSTAT to hold status.
        );
    VOID SerReset(
        PVOID   pHead
        );
    VOID SerGetModemStatus(
        PVOID   pHead,
        PULONG  pModemStatus    //  PULONG passed in by user.
        );
    VOID SerPurgeComm(
        PVOID   pHead,
        DWORD   fdwAction	//  Action to take. 
        );
    BOOL SerXmitComChar(
        PVOID   pHead,
        UCHAR   ComChar		//  Character to transmit. 
        );
    BOOL SerPowerOn(
        PVOID   pHead
        );
    BOOL SerPowerOff(
        PVOID   pHead
        );
    BOOL SerIoctl(
        PVOID pHead,
        DWORD dwCode,
        PBYTE pBufIn,
        DWORD dwLenIn,
        PBYTE pBufOut,
        DWORD dwLenOut,
        PDWORD pdwActualOut
	);


    BOOL
    HW_PowerOff( 
        PSER_INFO pHWHead 
        );
    
    BOOL 
    HW_PowerOn(
        PSER_INFO pHWHead
        );


//*********************************************************
// Functions from the SC2400_USB HW support file
//*********************************************************
    void SC2400_USB_DoEndpoint0(
	PSER_INFO pHWHead,
	PDWORD pModemStatus
	);
    INTERRUPT_TYPE SC2400_USB_GetInterruptType(
	PSER_INFO pHWHead
	);
    void SC2400_USB_Init(
	PSER_INFO pHWHead
	);
    void SC2400_USB_LineIntHandler(
	PSER_INFO pHWHead
	);
    BOOL SC2400_USB_RxIntHandler(
	PSER_INFO pHWHead,
	PUCHAR pRxBuffer,
	ULONG *pBuffLen
	);
    void SC2400_USB_TxIntHandler(
	PSER_INFO pHWHead,
	PUCHAR pTxBuffer,
	ULONG *pBuffLen
	);

#ifdef __cplusplus
}
#endif

#endif __SER_PDD_H__

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91麻豆免费视频| 色婷婷av一区| 久久久久久综合| 国产精品一品二品| 国产日产欧美精品一区二区三区| 免费观看在线综合| 精品美女在线播放| 99riav一区二区三区| 亚洲国产精品一区二区www在线| 99精品热视频| 日韩av在线发布| 国产清纯美女被跳蛋高潮一区二区久久w | 精品一区二区三区免费毛片爱| 日韩欧美不卡一区| 国产91色综合久久免费分享| 一区二区三区电影在线播| 美女被吸乳得到大胸91| 欧美国产欧美综合| 日韩一二三区视频| 91视频免费看| 国产麻豆视频一区二区| 亚洲激情图片qvod| 欧美变态tickling挠脚心| 国产99久久久精品| 蜜桃视频一区二区三区| 亚洲啪啪综合av一区二区三区| 91精品国产综合久久久久久久| 精品在线免费视频| 亚洲午夜在线视频| 中文字幕一区二区5566日韩| 91精品国产91综合久久蜜臀| 91小宝寻花一区二区三区| 久久精品免费观看| 亚洲一区二区中文在线| 国产喂奶挤奶一区二区三区| 在线观看三级视频欧美| 成人精品一区二区三区四区| 麻豆国产欧美日韩综合精品二区| 亚洲综合激情小说| 一区二区三区在线播| 国产精品电影院| 国产精品久久久久久久久晋中 | 亚洲欧洲成人自拍| 国产精品欧美精品| 国产精品乱子久久久久| 一区在线观看免费| 国产欧美一区二区三区在线老狼| 精品国产一区二区三区久久久蜜月| 欧美一区二区三区视频免费播放| 欧美精选一区二区| 亚洲精品在线一区二区| 中文字幕免费观看一区| 亚洲视频在线观看三级| 亚洲最新视频在线观看| 五月天国产精品| 国产成人精品一区二| 99re热这里只有精品视频| 97国产一区二区| 欧美成人女星排名| 最新国产の精品合集bt伙计| 亚洲综合免费观看高清完整版在线 | 日韩午夜在线观看视频| 国产精品中文字幕一区二区三区| 风间由美中文字幕在线看视频国产欧美 | 午夜电影网一区| 国产麻豆日韩欧美久久| 欧美色图在线观看| 精品福利二区三区| 日韩电影在线一区二区三区| 成人动漫精品一区二区| 欧美一级夜夜爽| 亚洲人成人一区二区在线观看| 另类综合日韩欧美亚洲| 99久精品国产| 精品国产免费视频| 欧美一区二区三区公司| 亚洲欧美在线另类| 亚洲成人av一区| 国产一区福利在线| 在线播放91灌醉迷j高跟美女| 精品999久久久| 精品一二三四区| 日韩精品一区二区三区swag | 亚洲精品成人a在线观看| 国产精品一区二区无线| 欧美一区二区三区人| 亚洲成人激情综合网| 欧美日韩综合不卡| 亚洲自拍偷拍麻豆| 在线免费观看一区| 亚洲自拍都市欧美小说| 欧美精品久久99久久在免费线 | 91麻豆自制传媒国产之光| 久久久久久久国产精品影院| 极品少妇xxxx精品少妇| 欧美精品久久99| 爽爽淫人综合网网站| 成人国产一区二区三区精品| 国产欧美日韩另类一区| 成人av网址在线| 亚洲一卡二卡三卡四卡| 欧美日韩国产系列| 狠狠色2019综合网| 亚洲欧美日韩在线| 日韩欧美一级二级| 成人高清免费在线播放| 日韩成人精品在线| 国产免费成人在线视频| 欧美日韩一区视频| 国产成人综合视频| 天天色 色综合| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 亚洲精品五月天| 在线电影一区二区三区| 成人综合婷婷国产精品久久蜜臀| 亚洲精品你懂的| 国产三级精品视频| 91麻豆精品国产自产在线| 成人精品视频一区二区三区| 亚洲图片欧美一区| 成人免费一区二区三区在线观看| 日韩你懂的在线观看| 欧美日韩高清不卡| 欧美系列在线观看| aa级大片欧美| 91在线视频18| 色偷偷一区二区三区| 成人av综合一区| heyzo一本久久综合| 国产精品亚洲专一区二区三区| 九色综合国产一区二区三区| 美女www一区二区| 18欧美乱大交hd1984| 2020国产成人综合网| 亚洲精品一区二区三区在线观看 | 亚洲与欧洲av电影| 亚洲美女视频在线观看| 一区二区三区91| 亚洲第一av色| 狠狠色丁香婷综合久久| 国产电影精品久久禁18| 国产精品一区二区在线播放| 不卡一区二区在线| 欧美午夜精品一区二区三区 | 一区二区欧美精品| 亚洲成av人片www| 老色鬼精品视频在线观看播放| 麻豆精品视频在线观看| 福利视频网站一区二区三区| 日本大香伊一区二区三区| 欧美在线视频日韩| 在线播放国产精品二区一二区四区 | 欧美性色黄大片| 久久久www成人免费毛片麻豆| 亚洲欧美区自拍先锋| 精品在线播放午夜| 欧美日韩视频在线第一区 | 精品在线亚洲视频| 91福利区一区二区三区| 国产精品久久久久永久免费观看| 美日韩黄色大片| 欧美性大战久久久| 久久久高清一区二区三区| 综合欧美一区二区三区| 一区二区三区小说| 国产成人aaa| 欧美一级淫片007| 亚洲高清免费在线| 国产99精品视频| 欧美日韩亚洲综合| 国产精品青草综合久久久久99| 夜夜精品浪潮av一区二区三区 | 成人91在线观看| 欧美一级日韩不卡播放免费| 国产精品全国免费观看高清 | 国产一区日韩二区欧美三区| 色播五月激情综合网| 久久亚洲精华国产精华液 | 精品久久久久av影院 | 久久精品免费看| 欧美色偷偷大香| 精品成人在线观看| 日本亚洲三级在线| 欧美三级电影精品| 国产亚洲女人久久久久毛片| 婷婷开心激情综合| av电影在线观看不卡| 欧美激情资源网| jlzzjlzz亚洲女人18| 国产精品每日更新在线播放网址 | 风间由美一区二区av101| 精品福利一区二区三区免费视频| 麻豆久久久久久| 中文字幕 久热精品 视频在线| 国产精品一区二区无线| 国产精品高清亚洲| 一本色道综合亚洲| 日韩电影在线观看一区| 欧美一区二区精美| 美女视频黄a大片欧美|