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

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

?? sc2440_usb_ser.h

?? SMDK2440 友善之臂MINI2440使用
?? 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:

    S3C2440 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 SC2440USB_REG_IOBASE_VAL_NAME TEXT("IoBase") 
#define SC2440USB_REG_IOBASE_VAL_LEN  sizeof( DWORD )

#define SC2440USB_REG_IOLEN_VAL_NAME TEXT("IoLen") 
#define SC2440USB_REG_IOLEN_VAL_LEN  sizeof( DWORD )

#define SC2440USB_REG_IRQ_VAL_NAME TEXT("Irq") 
#define SC2440USB_REG_IRQ_VAL_LEN  sizeof( DWORD )

#define SC2440USB_REG_DEVINDEX_VAL_NAME TEXT("DeviceArrayIndex") 
#define SC2440USB_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 SC2440_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 SC2440_USB_POLL_RATE 1000
#define SC2440_USB_POLL_RATE 500
// 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 SC2440_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 SC2440_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 SC2440_USB HW support file
//*********************************************************
    void SC2440_USB_DoEndpoint0(
	PSER_INFO pHWHead,
	PDWORD pModemStatus
	);
    INTERRUPT_TYPE SC2440_USB_GetInterruptType(
	PSER_INFO pHWHead
	);
    void SC2440_USB_Init(
	PSER_INFO pHWHead
	);
    void SC2440_USB_LineIntHandler(
	PSER_INFO pHWHead
	);
    BOOL SC2440_USB_RxIntHandler(
	PSER_INFO pHWHead,
	PUCHAR pRxBuffer,
	ULONG *pBuffLen
	);
    void SC2440_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一区二区三区免费野_久草精品视频
亚洲欧美日本在线| 欧美日韩在线观看一区二区| 日韩欧美一区中文| 精品一区二区三区欧美| 日韩欧美123| 国产在线精品免费| 欧美经典一区二区| 99久久精品免费看| 亚洲成人自拍偷拍| 欧美一二三四区在线| 韩国精品主播一区二区在线观看| 久久香蕉国产线看观看99| 国产激情一区二区三区四区 | 精品久久一二三区| 国产jizzjizz一区二区| 1024国产精品| 在线电影一区二区三区| 国产精品911| 亚洲欧美国产毛片在线| 欧美一区二区三区不卡| 国产精品一区二区久激情瑜伽 | 91在线观看视频| 亚洲国产aⅴ天堂久久| 日韩视频在线永久播放| 不卡av电影在线播放| 亚洲国产aⅴ天堂久久| 久久天天做天天爱综合色| 91天堂素人约啪| 蜜臀av性久久久久蜜臀aⅴ流畅| 久久精品视频在线看| 91激情五月电影| 精品一区二区三区免费观看| 一区二区视频免费在线观看| 日韩亚洲欧美综合| 欧美高清视频不卡网| 激情五月婷婷综合| 亚洲一区二区三区四区中文字幕| 精品少妇一区二区三区视频免付费 | 欧美精品一级二级三级| 国产乱子轮精品视频| 亚洲国产毛片aaaaa无费看| 久久精品亚洲麻豆av一区二区| 欧美色涩在线第一页| 盗摄精品av一区二区三区| 免费人成在线不卡| 亚洲国产日韩精品| 亚洲免费av在线| 中文在线一区二区| 精品国产精品一区二区夜夜嗨| 欧美性受xxxx| 不卡欧美aaaaa| 国产一区二区三区久久久| 亚洲超碰精品一区二区| 一区二区三区四区激情| 国产精品网曝门| 精品处破学生在线二十三| 4438成人网| 欧美日韩一卡二卡三卡| 色综合久久88色综合天天| 成人午夜免费视频| 国产激情精品久久久第一区二区| 蜜桃精品视频在线| 欧美96一区二区免费视频| 亚洲gay无套男同| 夜夜嗨av一区二区三区中文字幕| 国产精品你懂的在线| 久久精品欧美一区二区三区麻豆 | 91国偷自产一区二区开放时间 | 亚洲福利一区二区三区| 亚洲码国产岛国毛片在线| 国产精品国产三级国产aⅴ原创| 久久久综合视频| 久久青草国产手机看片福利盒子| 欧美一区二区三区小说| 69堂亚洲精品首页| 3d动漫精品啪啪| 欧美浪妇xxxx高跟鞋交| 欧美日韩久久一区| 欧美久久久久中文字幕| 777奇米成人网| 日韩视频免费观看高清完整版 | 97精品久久久午夜一区二区三区| 国产69精品久久久久毛片 | 青椒成人免费视频| 男人的天堂久久精品| 久久99精品一区二区三区| 久久国产精品99久久久久久老狼| 岛国精品在线播放| 97成人超碰视| 色呦呦一区二区三区| 欧美性受极品xxxx喷水| 91精品久久久久久久99蜜桃| 日韩一区二区不卡| 久久久久久电影| 亚洲同性gay激情无套| 亚洲一区视频在线| 老司机精品视频一区二区三区| 国内久久精品视频| eeuss鲁片一区二区三区| 一本大道久久a久久精品综合| 欧美日韩精品欧美日韩精品| 日韩欧美久久一区| 国产精品欧美久久久久一区二区| 一区二区三区视频在线看| 日本成人在线视频网站| 国产精品正在播放| 91丨porny丨国产入口| 欧美一区二区在线播放| 国产亚洲短视频| 亚洲精品国产一区二区精华液| 亚洲大片精品永久免费| 国内精品久久久久影院一蜜桃| 成人h动漫精品一区二| 欧美亚洲综合久久| 久久你懂得1024| 亚洲综合色网站| 国产一区二区在线视频| 日本黄色一区二区| 精品美女一区二区三区| 亚洲精品中文在线影院| 黑人巨大精品欧美一区| 91美女精品福利| 欧美成人一区二区三区| 亚洲一区二区三区在线| 国产成人日日夜夜| 日韩一区二区三区四区| 亚洲欧美日韩国产手机在线| 国内成+人亚洲+欧美+综合在线| 一本久久精品一区二区| 久久精品亚洲麻豆av一区二区 | 日韩一区二区三免费高清| 国产精品国产a级| 蜜臂av日日欢夜夜爽一区| 日本韩国一区二区三区视频| 国产亚洲综合性久久久影院| 日韩激情中文字幕| 一本大道综合伊人精品热热| 久久综合国产精品| 日产精品久久久久久久性色| 99九九99九九九视频精品| 久久天堂av综合合色蜜桃网| 日韩精品一级二级| 欧美艳星brazzers| 亚洲乱码国产乱码精品精小说 | 91原创在线视频| 国产清纯白嫩初高生在线观看91 | 久久久五月婷婷| 免费观看在线色综合| 欧美日韩国产区一| 一区二区三区在线高清| 97精品国产97久久久久久久久久久久 | 中文文精品字幕一区二区| 久久国内精品视频| 91麻豆精品国产91久久久使用方法| 综合欧美一区二区三区| www.欧美精品一二区| 亚洲国产精品成人久久综合一区| 精品亚洲国内自在自线福利| 欧美一级久久久久久久大片| 性欧美大战久久久久久久久| 色偷偷一区二区三区| 亚洲美女免费视频| 欧美在线一二三| 亚洲综合999| 欧美亚洲综合在线| 亚洲成av人片一区二区梦乃| 欧美视频日韩视频在线观看| 亚洲已满18点击进入久久| 欧美性感一区二区三区| 亚洲一区二区在线视频| 91国偷自产一区二区三区成为亚洲经典| 国产精品久线在线观看| 成人午夜电影网站| 综合电影一区二区三区 | 天天色综合天天| 欧美理论在线播放| 欧美aaaaa成人免费观看视频| 日韩欧美一区二区久久婷婷| 激情图片小说一区| 欧美极品xxx| 91丨九色丨尤物| 午夜在线电影亚洲一区| 3751色影院一区二区三区| 蜜桃视频在线观看一区| 2024国产精品| 成人一道本在线| 亚洲精品五月天| 欧美久久高跟鞋激| 国产精品一区二区91| 国产精品欧美一区喷水| 色94色欧美sute亚洲线路二| 丝袜亚洲另类欧美综合| 日韩精品自拍偷拍| av亚洲精华国产精华| 日本不卡一区二区三区高清视频| 精品国产乱码久久久久久免费| 成人黄色在线看| 亚洲va中文字幕| 国产午夜精品一区二区三区四区 | 色悠悠久久综合|