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

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

?? etd.h

?? Usb Host/Periphel Control TD1120 codes
?? H
字號:
/*-----------------------------------------------------------------------------
$File: //hodad/usblink/3.4/source/hostctrl/otg242/etd.h $
$DateTime: 2003/09/08 15:17:45 $
$Revision: #1 $
Purpose:   OTG242 ETD data and macro definitions.

CONFIDENTIAL AND PROPRIETARY INFORMATION OF SOFTCONNEX TECHNOLOGIES, INC.

THIS NOTICE IS NOT TO BE DELETED, MODIFIED, MOVED OR CHANGED IN ANY WAY.

Copyright (c) 1999 - 2003 by SoftConnex Technologies, Inc. 

This software is protected by copyright laws and international copyright 
treaties, as well as other intellectual property laws and treaties.  This
software is a CONFIDENTIAL, unpublished work of authorship, and with portions 
constituting TRADE SECRETS of SoftConnex Technologies, Inc., a Delaware USA 
corporation.  Any unauthorized use, disclosure, and/or reproduction of this 
software, or any part of this software; or distribution of this software in any 
form or by any means; or storage of this software in any database or retrieval 
system, without the express written consent of, and license from, SoftConnex 
Technologies, Inc. is strictly prohibited.  This software is protected under the
copyright and/or trade secret laws in other countries in addition to USA.  All 
Rights Reserved.  Failure to abide by the use, disclosure and/or reproduction 
restrictions may result in civil and /or criminal penalties, and will be 
prosecuted to the maximum extent of the law.
-----------------------------------------------------------------------------*/

#ifndef _SOFTCONNEX_OTG242ETD_H_
#define _SOFTCONNEX_OTG242ETD_H_


#define OTG242ETD_FORMAT_CTRL            0x00000000
#define OTG242ETD_FORMAT_ISOC            0x00004000
#define OTG242ETD_FORMAT_BULK            0x00008000
#define OTG242ETD_FORMAT_INTR            0x0000C000


/* ED field definitions - dword 0, use as masks 
 ***********************************************/
#define OTG242ETD_FUNCTION_ADDRESS 0x0000007F
#define OTG242ETD_EP_NUMBER        0x00000780
#define OTG242ETD_DIRECTION        0x00001800
#define OTG242ETD_SPEED            0x00002000
#define OTG242ETD_MAX_PACKET_SIZE  0x03FF0000
#define OTG242ETD_HALTED           0x08000000
#define OTG242ETD_TOGGLE_CARRY     0x10000000
#define OTG242ETD_STOP_ON_NAK      0x40000000


/* Control,Bulk, Interrupt TD field definitions of dword1-dword2 
 ***************************************************************/ 
#define OTG242ETD_XBUFSTARTADDR    0x0000FFFF       /* dword 1 */
#define OTG242ETD_YBUFSTARTADDR    0xFFFF0000       /* dword 1 */
#define OTG242ETD_RETRY_DELAY      0x000000FF       /* dword 2 */
#define OTG242ETD_DIRECTION_PID    0x00030000       /* dword 2 */
#define OTG242ETD_BUFFER_ROUNDING  0x00040000       /* dword 2 */
#define OTG242ETD_DELAY_INTERRUPT  0x00380000       /* dword 2 */
#define OTG242ETD_DELAY_INTERRUPT_ISOC   0x00380000 /* dword 2 */
#define OTG242ETD_DATA_TOGGLE      0x00C00000       /* dword 2 */
#define OTG242ETD_ERROR_COUNT      0x0F000000       /* dword 2 */
#define OTG242ETD_COMPLETION_CODE  0xF0000000       /* dword 2 */

/* for interrupt TD, two more fields dword2 
 ******************************************/

#define OTG242ETD_POLLINGINTERVAL  0x000000FF       /* dword 2 */
#define OTG242ETD_RELPOLLINGPOS    0x0000FF00       /* dword 2 */

/* Iso TD field definitions dword2
 *********************************/

#define OTG242ETD_STARTING_FRAME   0x0000FFFF       /* dword 2 */
#define OTG242ETD_FRAME_COUNT      0x01000000       /* dword 2 */
#define OTG242ETD_ISO_AUTOISO      0x08000000       /* dword 2 */
#define OTG242ETD_ISO_NO_AUTOISO   0x00000000       /* dword 2 */


/* Control,Bulk, Interrupt TD field definitions of dword3 
 ***************************************************************/ 

#define OTG242ETD_TOTBYTECOUNT     0x001FFFFF       /* dword 3 */
#define OTG242ETD_BUFFSIZE         0xFFE00000       /* dword 3 */

/* Iso TD dword 3 info:  
 **********************/
#define OTG242ETD_ISO_PKTLEN0      0x000003FF       /* dword 3 */
#define OTG242ETD_ISO_COMPCODE0    0x0000F000       /* dword 3 */
#define OTG242ETD_ISO_PKTLEN1      0x03FF0000       /* dword 3 */
#define OTG242ETD_ISO_COMPCODE1    0xF0000000       /* dword 3 */


/* Completion Codes for the TDs 
 ******************************/

#define OTG242ETD_COMPLETION_CODE_NO_ERROR      0x00000000
#define OTG242ETD_CC_CRC                        0x10000000
#define OTG242ETD_CC_BITSTUFFING                0x20000000
#define OTG242ETD_CC_DATATOGGLEMISMATCH         0x30000000
#define OTG242ETD_CC_STALL                      0x40000000
#define OTG242ETD_CC_DEVICENOTRESPONDING        0x50000000
#define OTG242ETD_CC_PIDFAILURE                 0x60000000
#define OTG242ETD_COMPLETION_CODE_DATA_OVERRUN  0x80000000
#define OTG242ETD_COMPLETION_CODE_DATA_UNDERRUN 0x90000000
#define OTG242ETD_COMPLETION_CODE_ACK           0xA0000000       
#define OTG242ETD_COMPLETION_CODE_NAK           0xB0000000       
#define OTG242ETD_CC_BUFFEROVERRUN              0xC0000000
#define OTG242ETD_CC_BUFFERUNDERRUN             0xD0000000
#define OTG242ETD_CC_SCHEDULEOVERRUN            0xE0000000
#define OTG242ETD_COMPLETION_CODE_NOT_ACCESSED  0xF0000000    


#define OTG242ETD_FRAMECOUNT_PER_ETD            2
#define OTG242ETD_ETD_PER_OHCI                  (8/OTG242ETD_FRAMECOUNT_PER_ETD)



typedef struct _Otg242Etd
   {
   U32 desc;
   U32 buffer;
   U32 control;

   union
      {
      U32 packetControl;
      U32 packetStatus[OTG242ETD_FRAMECOUNT_PER_ETD/2];
      }
   td;

   }
Otg242Etd;

#define OTG242ETD_MAX      16

#define OTG242ETD_GetStatusLength(etd, i)      \
   ((i & 1)? ((etd->td.packetStatus[i >> 1] >> 16) & 0xFFFF) : (etd->td.packetStatus[i >> 1] & 0xFFFF))

void OTG242ETD_SetStatusLength(Otg242Etd* etd, int index, U32 val);


typedef enum _EpType
   {
   EpTypeUndefined,
   EpTypeCtrl,
   EpTypeBulk,
   EpTypeIntr,
   EpTypeIsoc
   }
EpType;

struct _Otg242Hc;

typedef struct _Otg242EtdBank
   {
   struct _Otg242Etd etd;

   OhciEd* ed;
   OhciTd* td;

   SctBool  filled;
   SctBool  isDirectionIn;
   SctBool  cancelled;
   EpType   type;
   S32   maxPacketSize;
   
   S32   totalLength;
   S32   finishedLength;
   S32   xBuffer;
   S32   yBuffer;
   S32   xBufferLength;
   S32   yBufferLength;
   U32   xPacketCount;
   U32   yPacketCount;

   U32   intrIndex; /* For check cancelled ED */

   /* These are for Isoc only */
   U32   totalFrameCount;
   U32   finishedFrameCount;

   U32   index;
   U32   memoryAddress;

   struct _Otg242EtdBank   *nextEtd;
   struct _Otg242Hc* hc;
   }
Otg242EtdBank;

#define OTG242ETD_ReadReg(etd, reg)            HW_ReadOtg242Register(etd->hc->regBase, reg)
#define OTG242ETD_WriteReg(etd, reg, val)      HW_WriteOtg242Register(etd->hc->regBase, reg, val)

#define OTG242ETD_EnableEtd(index)                (1 << index)
#define OTG242ETD_SetXBuffer(etd, addr)           { etd.buffer &= 0xFFFF0000; etd.buffer |= addr; }
#define OTG242ETD_SetYBuffer(etd, addr)           { etd.buffer &= 0x0000FFFF; etd.buffer |= addr << 16; }
#define OTG242ETD_XBufferFilled(index)            (1 << index)
#define OTG242ETD_YBufferFilled(index)            (1 << index)
#define OTG242ETD_XYIntrEnable(index)             (1 << index)



#define OTG242ETD_SetStartingFrame(etd, frame)    etd->control |= frame
#define OTG242ETD_SetFrameCount(etd, count)       etd->control |= count
#define OTG242ETD_SetFrameCountValue243(etd, count)  etd->control |= (count & 0xF) << 24
#define OTG242ETD_SetFrameCountValue(etd, count)  etd->control |= (count & 0x1) << 24
#define OTG242ETD_SetAutoISO(etd, iso)            etd->control |= iso << 27
#define OTG242ETD_SetDelayIntr(etd, di)           etd->control |= di >> 1
#define OTG242ETD_SetRetryDelay(etd, delay)       etd->control |= delay
#define OTG242ETD_SetDirectionPid(etd, pid)       etd->control |= pid >> 3
#define OTG242ETD_SetBufferRounding(etd, rounding) etd->control |= rounding
#define OTG242ETD_SetDelayIntrIsoc(etd, delay)    etd->control |= delay >> 2
#define OTG242ETD_SetDataToggle(etd, toggle)      etd->control |= toggle >> 2
#define OTG242ETD_SetErrorCount(etd, toggle)      etd->control |= toggle >> 2
#define OTG242ETD_SetCompletionCode(etd, code)    etd->control |= code
#define OTG242ETD_SetPollingInterval(etd, val)    etd->control |= val
#define OTG242ETD_SetPollingPos(etd, pos)         etd->control |= pos << 8


#define OTG242ETD_SetTotByteCount(etd, count)     etd->td.packetControl |= count
#define OTG242ETD_SetBufSize(etd, size)           etd->td.packetControl |= (size) << 21

#define OTG242ETD_SetFunctionAddress(etd, addr)   etd->desc |= addr
#define OTG242ETD_SetEpNumber(etd, ep)            etd->desc |= ep
#define OTG242ETD_SetDirection(etd, direction)    etd->desc |= direction
#define OTG242ETD_SetSpeed(etd, speed)            etd->desc |= speed
#define OTG242ETD_SetMaxPacketSize(etd, size)     etd->desc |= size
#define OTG242ETD_SetHalted(etd, halted)          etd->desc |= halted << 27
#define OTG242ETD_SetToggleCarry(etd, carry)      etd->desc |= carry << 27
#define OTG242ETD_SetFormat(etd, format)          etd->desc |= format
#define OTG242ETD_SetStopOnNak(etd)               etd->desc |= OTG242ETD_STOP_ON_NAK;

#define OTG242ETD_GetStopOnNak(etd)       (etd->desc & OTG242ETD_STOP_ON_NAK)
#define OTG242ETD_GetStartingFrame(etd)   (etd->control & OTG242ETD_STARTING_FRAME)
#define OTG242ETD_GetFrameCount(etd)      ((etd->control & OTG242ETD_FRAME_COUNT) >> 24)
#define OTG242ETD_GetDelayIntrIsoc(etd)   ((etd->control & OTG242ETD_DELAY_INTERRUPT_ISOC) << 1)
#define OTG242ETD_GetRetryDelay(etd)      (etd->control & OTG242ETD_RETRY_DELAY)
#define OTG242ETD_GetDirectionPid(etd)    ((etd->control & OTG242ETD_DIRECTION_PID) << 3)
#define OTG242ETD_GetBufferRounding(etd)  (etd->control & OTG242ETD_BUFFER_ROUNDING)
#define OTG242ETD_GetDelayIntr(etd)       ((etd->control & OTG242ETD_DELAY_INTERRUPT) << 2)
#define OTG242ETD_GetDataToggle(etd)      ((etd->control & OTG242ETD_DATA_TOGGLE) << 2)
#define OTG242ETD_GetErrorCount(etd)      ((etd->control & 0x03000000) << 2)


#define OTG242ETD_GetTotByteCount(etd)     (etd->td.packetControl & OTG242ETD_TOTBYTECOUNT)
#define OTG242ETD_GetBufSize(etd)         ((etd->td.packetControl & OTG242ETD_BUFFSIZE) >> 21)

#define OTG242ETD_GetFunctionAddress(etd) (etd->desc & OTG242ETD_FUNCTION_ADDRESS)
#define OTG242ETD_GetEpNumber(etd)        (etd->desc & OTG242ETD_EP_NUMBER)
#define OTG242ETD_GetDirection(etd)       (etd->desc & OTG242ETD_DIRECTION)
#define OTG242ETD_GetSpeed(etd)           (etd->desc & OTG242ETD_SPEED)
#define OTG242ETD_GetMaxPacketSize(etd)   (etd->desc & OTG242ETD_MAX_PACKET_SIZE)
#define OTG242ETD_GetHalted(etd)          ((etd->desc & OTG242ETD_HALTED) >> 27)
#define OTG242ETD_GetToggleCarry(etd)     ((etd->desc & OTG242ETD_TOGGLE_CARRY) >> 27)
#define OTG242ETD_GetCompletionCode(etd)  (etd->control & OTG242ETD_COMPLETION_CODE)

#define OTG242ETD_OverMaxErrorCount(etd)  ((etd->desc & OTG242ETD_ERROR_COUNT) > 0x02000000)

int OTG242ETD_Create(Otg242EtdBank* etdBank, struct _Otg242Hc *hc);
Otg242EtdBank* OTG242ETD_IsInChip(Otg242EtdBank* etdBank, OhciEd* ed);

SctBool OTG242ETD_FillEtd(Otg242EtdBank* etdBank);
SctBool OTG242ETD_FillEtdIsoc(Otg242EtdBank *etdBank);

SctBool OTG242ETD_FillTd(Otg242EtdBank *etdBank);
SctBool OTG242ETD_FillTdIsoc(Otg242EtdBank *etdBank);
SctBool OTG242ETD_FillEd(Otg242EtdBank* etdBank);

void OTG242ETD_EtdDone(Otg242EtdBank* etdBank);
void OTG242ETD_CtrlDone(Otg242EtdBank* etdBank);
void OTG242ETD_IsocDone(Otg242EtdBank* etdBank);
void OTG242ETD_NextPacket(Otg242EtdBank* etdBank);

SctBool OTG242ETD_DoXBufferOut(Otg242EtdBank* etdBank);
SctBool OTG242ETD_DoYBufferOut(Otg242EtdBank* etdBank);
SctBool OTG242ETD_DoXBufferIn(Otg242EtdBank* etdBank);
SctBool OTG242ETD_DoYBufferIn(Otg242EtdBank* etdBank);

void OTG242ETD_ReadData(Otg242EtdBank* etdBank, int actualLength, SctBool yBuffer);

Otg242EtdBank* OTG242ETD_Allocate(Otg242EtdBank* etdBank);
void OTG242ETD_Free(Otg242EtdBank* etdBank);
void OTG242ETD_Clean(Otg242EtdBank *etdBank);

SctBool OTG242ETD_UseTwoEtds(Otg242EtdBank* etdBank);

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美国产电影| 欧美午夜影院一区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 韩国v欧美v亚洲v日本v| 久久综合久久鬼色中文字| 国产成人亚洲精品青草天美| 中文字幕不卡在线播放| 波多野结衣在线一区| 亚洲欧美日韩国产手机在线| 欧美日韩免费高清一区色橹橹| 日韩高清欧美激情| 337p粉嫩大胆噜噜噜噜噜91av | 欧美不卡一区二区| 国产精品一线二线三线精华| 国产精品久久久久三级| 欧美日韩视频不卡| 国产尤物一区二区在线| 国产欧美日韩综合| 欧洲精品一区二区三区在线观看| 午夜精品福利一区二区蜜股av| 欧美一区二区三区免费观看视频| 国产精品资源网站| 亚洲一区在线播放| 久久精品男人的天堂| 在线一区二区视频| 国产乱色国产精品免费视频| 亚洲乱码中文字幕综合| 欧美mv日韩mv国产| 在线免费一区三区| 激情综合一区二区三区| 一区二区三区免费在线观看| 精品国产乱码久久| 在线观看国产一区二区| 国产露脸91国语对白| 石原莉奈在线亚洲三区| 国产精品入口麻豆原神| 欧美一级爆毛片| 91免费看`日韩一区二区| 日韩福利电影在线| 亚洲精品水蜜桃| 国产色91在线| 欧美一区二区三区视频免费 | 91丨九色丨黑人外教| 免费人成网站在线观看欧美高清| 综合自拍亚洲综合图不卡区| 久久日韩精品一区二区五区| 欧美三级日韩三级国产三级| k8久久久一区二区三区 | 91视频一区二区| 国产一区二区三区黄视频| 日韩国产欧美一区二区三区| 亚洲人成人一区二区在线观看| 国产丝袜欧美中文另类| 日韩视频一区二区三区| 欧美性受极品xxxx喷水| eeuss鲁片一区二区三区在线观看| 久久不见久久见免费视频1| 午夜精品福利视频网站| 亚洲综合丁香婷婷六月香| 国产精品看片你懂得| 日本一区二区免费在线| 久久精品亚洲乱码伦伦中文 | 成人高清免费观看| 精品一区二区三区免费播放 | 国产精品99久久不卡二区| 亚洲成av人片在线观看无码| 亚洲四区在线观看| 中文字幕巨乱亚洲| 国产女主播视频一区二区| 久久人人超碰精品| 精品免费99久久| 精品国产乱子伦一区| 日韩欧美色电影| 精品国产123| 亚洲精品一区二区三区影院| 精品欧美一区二区久久| 日韩欧美国产一区二区在线播放| 91精品国产色综合久久不卡蜜臀| 欧美老女人在线| 在线不卡一区二区| 欧美精品色一区二区三区| 欧美日本免费一区二区三区| 欧美精品黑人性xxxx| 欧美一区二区三区免费观看视频| 欧美精品tushy高清| 欧美丰满高潮xxxx喷水动漫| 91精品国产91久久久久久最新毛片 | 亚洲人成亚洲人成在线观看图片| 国产精品的网站| 亚洲欧美日韩成人高清在线一区| 亚洲另类中文字| 五月激情综合婷婷| 激情综合色综合久久| 国产精品一区二区久久精品爱涩 | 精品国产凹凸成av人导航| 日韩视频免费观看高清完整版在线观看 | 国产在线麻豆精品观看| 成人免费高清在线| 日本韩国精品在线| 欧美日韩国产综合草草| 精品国产乱码久久久久久久久| 国产亚洲欧美在线| 亚洲猫色日本管| 日韩av网站免费在线| 国产剧情一区二区| 91久久国产综合久久| 日韩欧美综合在线| 国产偷v国产偷v亚洲高清| 亚洲精品一二三| 美女脱光内衣内裤视频久久影院| 国产九色sp调教91| 欧洲一区二区三区在线| 日韩欧美123| 亚洲精品高清视频在线观看| 麻豆精品视频在线| 一本色道久久综合亚洲91| 日韩免费观看高清完整版 | 久久精品二区亚洲w码| 成人高清免费观看| 91精品久久久久久蜜臀| 国产精品私人自拍| 日本成人超碰在线观看| 成人av资源在线观看| 在线播放日韩导航| 国产精品福利一区| 久久精品国产99久久6| 91免费观看在线| 国产午夜精品久久久久久免费视 | 欧美巨大另类极品videosbest| 久久久噜噜噜久噜久久综合| 亚洲一区二区三区国产| 国产99久久久国产精品潘金 | 亚洲综合自拍偷拍| 欧美性猛交xxxxxxxx| 日韩欧美一级二级三级| 玉足女爽爽91| 国产精品一区二区你懂的| 91.麻豆视频| 激情综合五月婷婷| 欧美日韩国产系列| 亚洲美腿欧美偷拍| 高清久久久久久| 久久蜜臀中文字幕| 免播放器亚洲一区| 91麻豆精品91久久久久久清纯| 亚洲裸体在线观看| 成人av免费在线| 亚洲国产精品高清| 经典三级一区二区| 欧美一级视频精品观看| 亚洲高清中文字幕| 91搞黄在线观看| 亚洲女同ⅹxx女同tv| av一二三不卡影片| 国产精品久久久久久久久图文区 | 免费av成人在线| 欧美日韩高清不卡| 亚洲午夜在线视频| 欧亚一区二区三区| 亚洲欧美国产77777| 色先锋资源久久综合| 一区在线观看视频| 高清不卡在线观看| 国产精品麻豆欧美日韩ww| 波多野洁衣一区| 中文字幕在线不卡视频| 成人黄色软件下载| 一区免费观看视频| 91网页版在线| 亚洲一区二区三区爽爽爽爽爽| 色婷婷久久久综合中文字幕| 亚洲综合丝袜美腿| 欧美日韩在线免费视频| 日韩国产欧美三级| 日韩精品一区二区三区中文不卡| 精品一区二区三区免费观看| 久久先锋影音av鲁色资源| 国产不卡一区视频| 国产精品麻豆99久久久久久| av成人免费在线| 亚洲小说欧美激情另类| 91精品啪在线观看国产60岁| 乱中年女人伦av一区二区| 精品99久久久久久| 国产成人在线视频网站| 自拍偷拍国产精品| 欧美日韩一级片网站| 蜜臀av国产精品久久久久| 国产午夜久久久久| 色综合久久综合中文综合网| 亚洲福利一区二区三区| 日韩情涩欧美日韩视频| 成人午夜伦理影院| 亚洲午夜免费电影| 精品欧美一区二区在线观看| 成人午夜激情视频| 亚洲二区在线观看| 久久久久久久久久久久久久久99| aaa国产一区| 蜜桃av一区二区三区电影|