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

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

?? phcdinc.hpp

?? ISP1161 USB Driver under WinCE for StrongARM processor implementation
?? HPP
?? 第 1 頁 / 共 2 頁
字號:
/*++
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) 1995, 1996, 1997, 1998  Microsoft Corporation

Module Name:  
    phcdinc.hpp
    
Abstract:  
    
Notes: 
--*/
#ifndef __PHCDINC_HPP__
#define __PHCDINC_HPP__

#include <usb100.h>

const UINT gcInvalidHubNum = 0xFF;
const UINT gcUnusedPort = 0;
const UINT gcInvalidPort = 0xFF;
const UINT gcFirstRootPortNum = 1;

//Zouying
//const UINT gcMaxTransferSize                = 4 * 1024; // 4K
const UINT gcMaxTransferSize                = 896;//1023; // 1K-1, cause of PTD length is 1023

const UINT gcMaxOffsetsPerTd                = 4;
const UINT gcIsochTdErrorShift              = 12;
const UINT gcRequiredAdjustmentWait         = 6;

// Registers

// constants used to check if HC is present

const DWORD gcHcFmIntervalNominal           = 0x00002EDF;
const DWORD gcHcLSThresholdNominal          = 0x00000628;
const DWORD gcHcRevisonNominal              = 0x00000010;

// Command And Status Partition

const DWORD gcHcRevisonMask                 = 0x000000FF;

inline PULONG HcRevision(REGISTER regBase)
{       
	regBase = regBase;
	//	return((PULONG)regBase);   
	return	0;
}

//frame number mask
const DWORD gcHcFrameNumberMask             = 0x00008000;

// Control Register Bit Masks
const DWORD gcHcControlCBSRmask             = 0x00000003;
const DWORD gcHcControlCBSR1to1             = 0x00000000;
const DWORD gcHcControlCBSR2to1             = 0x00000001;
const DWORD gcHcControlCBSR3to1             = 0x00000002;
const DWORD gcHcControlCBSR4to1             = 0x00000003;

const DWORD gcHcControlPLEmask              = 0x00000004;
const DWORD gcHcControlIEmask               = 0x00000008;
const DWORD gcHcControlCLEmask              = 0x00000010;
const DWORD gcHcControlBLEmask              = 0x00000020;

const DWORD gcHcControlHCFSmask             = 0x000000C0;
const DWORD gcHcControlFSReset              = 0x00000000;
const DWORD gcHcControlFSResume             = 0x00000040;
const DWORD gcHcControlFSOperational        = 0x00000080;
const DWORD gcHcControlFSSuspend            = 0x000000C0;

const DWORD gcHcControlIRmask               = 0x00000100;
const DWORD gcHcControlRWCmask              = 0x00000200;
const DWORD gcHcControlRWEmask              = 0x00000400;
const DWORD gcHcControlReservedmask         = 0xFFFFF800;

inline PULONG HcControl(REGISTER regBase)
{       
	//return((PULONG)(regBase + 0x4));   
	regBase = regBase;
	return (PULONG)0x4;
}


// Command Register Bit Masks
const DWORD gcHcCommandStatusHCRmask        = 0x00000001;
const DWORD gcHcCommandStatusCLFmask        = 0x00000002;
const DWORD gcHcCommandStatusBLFmask        = 0x00000004;
const DWORD gcHcCommandStatusOCRmask        = 0x00000008;
const DWORD gcHcCommandStatusSOCmask        = 0x00030000;
const DWORD gcHcCommandStatusReservedmask   = 0xFFFCFFF0;

inline PULONG HcCommandStatus(REGISTER regBase)
{       
	//return((PULONG)(regBase + 0x8));   
	regBase = regBase;
	return (PULONG)0x8;   
}


// Interrupt Status Register Bit Masks
const DWORD gcHcInterruptStatusSOmask       = 0x00000001;
const DWORD gcHcInterruptStatusWDHmask      = 0x00000002;
const DWORD gcHcInterruptStatusSFmask       = 0x00000004;
const DWORD gcHcInterruptStatusRDmask       = 0x00000008;
const DWORD gcHcInterruptStatusUEmask       = 0x00000010;
const DWORD gcHcInterruptStatusFNOmask      = 0x00000020;
const DWORD gcHcInterruptStatusRHSCmask     = 0x00000040;
const DWORD gcHcInterruptStatusOCmask       = 0x40000000;
const DWORD gcHcInterruptStatusMIEmask      = 0x80000000;
const DWORD gcHcInterruptStatusReservedmask = 0x3FFFFF00;

/*
#define READ_REGISTER_ULONG(reg) \
    (*(volatile unsigned long * const)(reg))

#define WRITE_REGISTER_ULONG(reg, val) \
    (*(volatile unsigned long * const)(reg)) = (val)
*/


//	Isp-PIO Interrupt Enable Mask
const WORD gcISPSOFITLIntmask				= 0x0001;
const WORD gcISPATLIntmask					= 0x0002;
const WORD gcISPAllEOTInterrupt				= 0x0004;
const WORD gcISPOPR_RegIntmask				= 0x0010;

//	Isp-PIO Buffer Status Mask
const WORD gcISPBufferStatusISOABufferFull  = 0x0001;
const WORD gcISPBufferStatusISOBBufferFull  = 0x0002;
const WORD gcISPBufferStatusATLBufferFull   = 0x0004;
const WORD gcISPBufferStatusISOABufferDone  = 0x0008;
const WORD gcISPBufferStatusISOBBufferDone  = 0x0010;
const WORD gcISPBufferStatusATLBufferDone   = 0x0020;

//  Isp Completioncode mask
const WORD gcPTDCompletionCodemask			= 0x3;
const DWORD gcGTDDataToggleMSBmask			= 0x2;


extern "C" ULONG READ_ISP1161_REGISTER_ULONG(PULONG);
extern "C" ULONG WRITE_ISP1161_REGISTER_ULONG(PULONG, ULONG);

#define READ_REGISTER_ULONG(reg) \
    READ_ISP1161_REGISTER_ULONG(reg)

#define WRITE_REGISTER_ULONG(reg, val) \
    WRITE_ISP1161_REGISTER_ULONG(reg, (val))


inline PULONG HcInterruptStatus(REGISTER regBase)
{       
//	return((PULONG)(regBase + 0xC));   
	regBase = regBase;;
	return	(PULONG)0xC;   
}

inline PULONG HcInterruptEnable(REGISTER regBase)
{
//	return((PULONG)(regBase + 0x10));   
	regBase = regBase;
	return	(PULONG)0x10;   
}

inline PULONG HcInterruptDisable(REGISTER regBase)
{       
	//return((PULONG)(regBase + 0x14));   
	regBase = regBase;
	return	(PULONG)0x14;   
}

// Memory Pointer Partition
inline PULONG HcHCCA(REGISTER regBase)
{       
//	return((PULONG)(regBase + 0x18));   
	regBase = regBase;
	return	(PULONG)0x18;   
}

inline PULONG HcPeriodCurrentEd(REGISTER regBase)
{   
	//return((PULONG)(regBase + 0x1C));   
	regBase = regBase;
	return (PULONG)0x1C;
}

inline PULONG HcControlHeadEd(REGISTER regBase)
{
//	return((PULONG)(regBase + 0x20));   
	regBase = regBase;
	return (PULONG)0x20;
}

inline PULONG HcControlCurrentEd(REGISTER regBase)
{
//	return((PULONG)(regBase + 0x24));   
	regBase = regBase;
	return (PULONG)0x24;
}

inline PULONG HcBulkHeadEd(REGISTER regBase)
{
//	return((PULONG)(regBase + 0x28));   
	regBase = regBase;
	return (PULONG)0x28;
}

inline PULONG HcBulkCurrentEd(REGISTER regBase)
{
//	return((PULONG)(regBase + 0x2C));   
	regBase = regBase;
	return (PULONG)0x2C;
}

inline PULONG HcDoneHead(REGISTER regBase)
{
//	return((PULONG)(regBase + 0x30));   
	regBase = regBase;
	return (PULONG)0x30;
}


// Frame Counter Partition

// Frame Interval Register Bit Masks
const DWORD gcHcFmIntervalFImask            = 0x00003FFF;
const DWORD gcHcFmIntervalFSMPSmask         = 0x7FFF0000;
const DWORD gcHcFmIntervalFITmask           = 0x80000000;
const DWORD gcHcFmIntervalReservedmask      = 0x0000C000;
const DWORD gcHcFmIntervalMaxOverhead       = 210;


// max transfer possible is 1023 bytes.
const DWORD gcHcFmIntervalFSMPSsetting      = (1023 * 8) << 16;

inline PULONG HcFmInterval(REGISTER regBase)
{
//	return((PULONG)(regBase + 0x34));   
	regBase = regBase;
	return (PULONG)0x34;
}


// Frame Remaining Register Bit Masks
const DWORD gcHcFmRemainingFRmask           = 0x00003FFF;
const DWORD gcHcFmRemainingFRTmask          = 0x80000000;
const DWORD gcHcFmRemainingReservedmask     = 0x3FFFC000;

inline PULONG HcFmRemaining(REGISTER regBase)
{
//	return((PULONG)(regBase + 0x38));   
	regBase = regBase;
	return (PULONG)0x38;
}


// Frame Number Register Bit Masks
const DWORD gcHcFmNumberFNmask              = 0x0000FFFF;
const DWORD gcHcFmNumberReservedmask        = 0xFFFF0000;

inline PULONG HcFmNumber(REGISTER regBase)
{
//	return((PULONG)(regBase + 0x3C));   
	regBase = regBase;
	return (PULONG)0x3C;
}


// Periodic Start Register Bit Masks
const DWORD gcHcPeriodicStartPSmask         = 0x00003FFF;
const DWORD gcHcPeriodicStartReservedmask   = 0xFFFFC000;

inline PULONG HcPeriodicStart(REGISTER regBase)
{
//	return((PULONG)(regBase + 0x40));   
	regBase = regBase;
	return (PULONG)0x40;
}


// LS Threshold Register Bit Masks
const DWORD gcHcLSThresholdLSTmask          = 0x00000FFF;
const DWORD gcHcLSThresholdReservedmask     = 0xFFFFF000;

inline PULONG HcLSThreshold(REGISTER regBase)
{
//	return((PULONG)(regBase + 0x44));   
	regBase = regBase;
	return (PULONG)0x44;
}

// Root Hub Partition

// Root Hub Descriptor A Bit Masks;
const DWORD gcRhDescriptorANDPmask          = 0x000000FF;
const DWORD gcRhDescriptorAPSMmask          = 0x00000100;
const DWORD gcRhDescriptorANPSmask          = 0x00000200;
const DWORD gcRhDescriptorADTmask           = 0x00000400;
const DWORD gcRhDescriptorAOCPMmask         = 0x00000800;
const DWORD gcRhDescriptorANOCPmask         = 0x00001000;
const DWORD gcRhDescriptorAPOTPGTmask       = 0xFF000000;
const DWORD gcRhDescriptorAReservedmask     = 0x00FFE000;

inline PULONG HcRhDescriptorA(REGISTER regBase)
{
//	return((PULONG)(regBase + 0x48));   
	regBase = regBase;
	return (PULONG)0x48;
}


// Root Hub Descriptor B Bit Masks
const DWORD gcRhDescriptorBDRmask           = 0x0000FFFF;
const DWORD gcRhDescriptorBPPCMmask         = 0xFFFF0000;

inline PULONG HcRhDescriptorB(REGISTER regBase)
{
//	return((PULONG)(regBase + 0x4C));   
	regBase = regBase;
	return (PULONG)0x4C;
}


// Root Hub Status Register Bit Masks
const DWORD gcRhStatusLPSmask               = 0x00000001;
const DWORD gcRhStatusOCImask               = 0x00000002;
const DWORD gcRhStatusDRWEmask              = 0x00008000;
const DWORD gcRhStatusLPSCmask              = 0x00010000;
const DWORD gcRhStatusOCICmask              = 0x00020000;
const DWORD gcRhStatusCRWEmask              = 0x80000000;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品无人码麻豆乱码1区2区 | 亚洲另类在线视频| 欧美日韩在线观看一区二区| 蜜臀va亚洲va欧美va天堂 | 久久亚洲精华国产精华液 | 成人激情午夜影院| 亚洲在线视频一区| 欧美日韩在线播放| 丁香一区二区三区| 香蕉久久夜色精品国产使用方法| 久久久99精品免费观看| 欧美美女黄视频| 在线视频国内自拍亚洲视频| 国产在线国偷精品产拍免费yy| 欧美国产综合一区二区| 欧美男人的天堂一二区| 成人毛片视频在线观看| 男人的天堂久久精品| 一区二区三区视频在线看| wwwwww.欧美系列| 欧美乱妇23p| 福利一区二区在线观看| 奇米在线7777在线精品| 夜夜精品视频一区二区| 欧美激情中文字幕一区二区| 91精品国产综合久久久久久久久久| 99re这里都是精品| 国产黄色精品网站| 麻豆国产精品官网| 午夜精品在线视频一区| 亚洲乱码国产乱码精品精98午夜 | 欧美日产在线观看| 在线观看日韩国产| 97久久超碰国产精品| 国产成人无遮挡在线视频| 日韩成人一级片| 亚洲色图欧洲色图婷婷| 亚洲视频在线一区二区| 国产精品你懂的| 国产欧美综合在线观看第十页| 欧美美女直播网站| 欧美日精品一区视频| 欧美影院一区二区三区| 99精品国产热久久91蜜凸| 高清在线不卡av| 国产一区二区三区高清播放| www.日韩精品| jlzzjlzz亚洲日本少妇| 久久99精品国产麻豆不卡| 蜜桃av一区二区三区电影| 偷拍与自拍一区| 国产精品色婷婷久久58| 国产精品蜜臀在线观看| 国产精品视频yy9299一区| 国产精品网站在线观看| 中文字幕av免费专区久久| 中文字幕一区在线| 制服.丝袜.亚洲.中文.综合| 色综合咪咪久久| 亚洲成人激情自拍| 亚洲欧美综合色| 久久婷婷一区二区三区| 欧洲国内综合视频| 91丨九色丨国产丨porny| 美女视频黄a大片欧美| 尤物在线观看一区| 亚洲综合无码一区二区| 亚洲国产精品影院| 亚洲一区av在线| 亚洲一区二区三区四区在线| 亚洲国产美女搞黄色| 亚洲成人免费看| 丝袜诱惑制服诱惑色一区在线观看| 亚洲精品大片www| 欧美aaaaaa午夜精品| 免费看欧美美女黄的网站| 国产成人av影院| 欧美变态tickling挠脚心| 国产女人水真多18毛片18精品视频| 日本高清视频一区二区| 91官网在线免费观看| 欧美精品粉嫩高潮一区二区| 亚洲精品成a人| 日韩午夜在线观看| 色婷婷精品大在线视频| 国产不卡在线一区| 欧美一a一片一级一片| 亚洲精品一区在线观看| 亚洲免费av高清| 韩国v欧美v亚洲v日本v| 欧美性色黄大片手机版| 久久久久久97三级| 午夜精品一区二区三区免费视频| 日韩一区二区影院| 国产精品视频你懂的| 免费成人av在线播放| 99热精品一区二区| 欧美一级黄色片| 国产日韩精品一区二区三区| 五月激情丁香一区二区三区| 欧美一区二区久久久| 欧美日韩一区二区在线观看| 欧美一级在线免费| 成人免费在线视频| 国产在线精品视频| 欧美久久婷婷综合色| 亚洲欧洲精品成人久久奇米网| 久草精品在线观看| 欧美美女黄视频| 亚洲综合网站在线观看| 99久久国产综合色|国产精品| 久久久久久久久久久99999| 日本在线不卡视频一二三区| 欧美影院午夜播放| 亚洲精品美国一| 岛国精品在线播放| 久久青草欧美一区二区三区| 亚洲嫩草精品久久| 99国产精品国产精品久久| 欧美—级在线免费片| 国产精品综合二区| 精品国产一区久久| 美国十次综合导航| 欧美一二三区在线| 日韩综合小视频| 欧美精品vⅰdeose4hd| 亚洲精品中文在线影院| 国产99久久久精品| 欧美tickling网站挠脚心| 丰满少妇久久久久久久| 亚洲小说欧美激情另类| 亚洲午夜免费电影| 中文子幕无线码一区tr| 欧美在线一二三四区| 日本亚洲最大的色成网站www| 欧美精品一区二区三区蜜桃视频 | 成人动漫视频在线| 久久99精品国产麻豆不卡| 91精品国产麻豆| 国产精品久久久久久户外露出| 国产成人午夜电影网| 欧美国产精品一区| 不卡av在线网| 亚洲欧美区自拍先锋| 91国偷自产一区二区使用方法| 亚洲激情在线激情| 欧美日韩一级片网站| 偷拍与自拍一区| 精品美女在线观看| 国产成人精品影院| 最新欧美精品一区二区三区| 色婷婷狠狠综合| 午夜电影一区二区| 精品国精品国产| 福利一区二区在线观看| 亚洲另类中文字| 91精品欧美久久久久久动漫| 美美哒免费高清在线观看视频一区二区 | 制服.丝袜.亚洲.另类.中文| 一区二区三区国产精华| 9191成人精品久久| 狠狠色2019综合网| 国产精品久久久久四虎| 91精品福利在线| 日韩av高清在线观看| 日韩电影在线观看一区| 久久一日本道色综合| 99re在线精品| 青草av.久久免费一区| 国产午夜精品一区二区三区四区| 99久久精品国产精品久久| 五月天丁香久久| 久久久久久久免费视频了| 色综合久久九月婷婷色综合| 日韩综合一区二区| 国产精品久久久久久久久快鸭| 欧美日本一道本在线视频| 国产成人福利片| 午夜精品久久久久久久蜜桃app| 精品999久久久| 欧美日韩三级一区二区| 国产成人av一区二区三区在线 | 丰满少妇久久久久久久| 欧美一级国产精品| 亚洲国产精品黑人久久久| 一级特黄大欧美久久久| 欧美三级在线看| 国产女人18毛片水真多成人如厕| 欧美国产激情一区二区三区蜜月| 亚洲天堂成人在线观看| 天天综合日日夜夜精品| 日本成人在线网站| 成人高清免费在线播放| 欧美日韩国产小视频| 日韩欧美一区二区不卡| 国产日韩欧美精品综合| 亚洲一区二区高清| 成人18精品视频| 制服丝袜中文字幕一区| 北条麻妃一区二区三区|