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

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

?? oal_kitl.h.svn-base

?? 這是三星的2443的wince的bootloader
?? SVN-BASE
字號:
//
// Copyright (c) Microsoft Corporation.  All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
//------------------------------------------------------------------------------
//
//  File:  oal_kitl.h
//
//  This header file defines KITL OAL module. This module implements debug
//  communication over KITL protocol.
//
#ifndef __OAL_KITL_H
#define __OAL_KITL_H

#if __cplusplus
extern "C" {
#endif

//------------------------------------------------------------------------------

#include <kitl.h>

//------------------------------------------------------------------------------
//
//  Define:  OAL_KITL_ID_SIZE
//
//  This value defines maximal length of KITL device name.
//
#define OAL_KITL_ID_SIZE                16

//------------------------------------------------------------------------------
//
//  Define:  OAL_KITL_WINDOW_SIZE
//
//  This value is used in KITL initialization structure as KITL protocol window
//  size.
//
#define OAL_KITL_WINDOW_SIZE            8

//------------------------------------------------------------------------------
//
//  Define:  OAL_KITL_BUFFER_SIZE
//
//  This value defines buffer size used by KITL protocol implementation. 
//  For ethernet protocol this buffer is used as network card driver
//  DMA buffer.
//
#define OAL_KITL_BUFFER_SIZE            0x10000

//------------------------------------------------------------------------------
//
//  Enum:  OAL_KITL_TYPE
//
//  This enumeration specifies boot/KITL protocol type. 
//
typedef enum {
    OAL_KITL_TYPE_NONE = 0,
    OAL_KITL_TYPE_SERIAL,               // Serial
    OAL_KITL_TYPE_ETH,                  // UDP/IP4/Ethernet
    OAL_KITL_TYPE_FLASH                 // Flash memory (boot only)
} OAL_KITL_TYPE;

//------------------------------------------------------------------------------
//
//  Enum:  OAL_KITL_FLAGS
//
//  This enumeration specifies optional flags passed as part of OAL_KITL_ARGS
//  structure.
//  
typedef enum {
    OAL_KITL_FLAGS_ENABLED  = 0x0001,   // Kitl enable
    OAL_KITL_FLAGS_PASSIVE  = 0x0002,   // Kitl passive mode
    OAL_KITL_FLAGS_DHCP     = 0x0004,   // DHCP enable
    OAL_KITL_FLAGS_VMINI    = 0x0008,   // VMINI enable
    OAL_KITL_FLAGS_POLL     = 0x0010,   // Use polling (no interrupt)
    OAL_KITL_FLAGS_EXTNAME  = 0x0020    // Extend device name
} OAL_KITL_FLAGS;

//------------------------------------------------------------------------------
//
//  Type:  OAL_KITL_ARGS
//
//  This type is used to pass parameters to OALKitlInit function. When
//  another KITL transport protocol is added this structure can change by 
//  adding new structure in union.
//
typedef struct {
    UINT32 flags;
    DEVICE_LOCATION devLoc;             // KITL device location
    union {
        struct {                        // Serial class parameters
            UINT32 baudRate;
            UINT32 dataBits;
            UINT32 stopBits;
            UINT32 parity;
        };         
        struct {                        // Ether class parameters
            UINT16 mac[3];
            UINT32 ipAddress;
            UINT32 ipMask;
            UINT32 ipRoute;
        };
    };
} OAL_KITL_ARGS;

//------------------------------------------------------------------------------
//
//  Type:  KITL_SERIAL_INFO
//
//  This structure is passed to KITL serial driver for initialization. Driver
//  should set bestSize parameter. It is used by KITL framework when it send
//  data to driver. For example, USB serial can set it to 64, and KITL
//  framework will call send/receive with size request of 64 except for the 
//  last packet.
//
typedef struct {
    UINT8* pAddress;                    // Base address
    UINT32 baudRate;                    // Baud rate
    UINT32 dataBits;                    // Data bits
    UINT32 stopBits;                    // Stop bits
    UINT32 parity;                      // Parity
    UINT32 bestSize;                    // Best size to send/receive
} KITL_SERIAL_INFO;

//------------------------------------------------------------------------------
//
//  Interface:  KITL serial driver
//
//  This interface specifies device driver for KITL serial device driver.
//
typedef BOOL (*OAL_KITLSERIAL_INIT)(KITL_SERIAL_INFO *pInfo);
typedef VOID (*OAL_KITLSERIAL_DEINIT)();
typedef UINT16 (*OAL_KITLSERIAL_RECV)(UINT8 *pData, UINT16 size);
typedef UINT16 (*OAL_KITLSERIAL_SEND)(UINT8 *pData, UINT16 size);
typedef VOID (*OAL_KITLSERIAL_SENDCOMPLETE)(UINT16 size);
typedef VOID (*OAL_KITLSERIAL_ENABLE_INTS)();
typedef VOID (*OAL_KITLSERIAL_DISABLE_INTS)();
typedef VOID (*OAL_KITLSERIAL_POWER_OFF)();
typedef VOID (*OAL_KITLSERIAL_POWER_ON)();
typedef VOID (*OAL_KITLSERIAL_FLOW_CONTROL) (BOOL fOn);

typedef struct {
    OAL_KITLSERIAL_INIT pfnInit;
    OAL_KITLSERIAL_DEINIT pfnDeinit;
    OAL_KITLSERIAL_SEND pfnSend;
    OAL_KITLSERIAL_SENDCOMPLETE pfnSendComplete;
    OAL_KITLSERIAL_RECV pfnRecv;
    OAL_KITLSERIAL_ENABLE_INTS pfnEnableInts;
    OAL_KITLSERIAL_DISABLE_INTS pfnDisableInts;
    OAL_KITLSERIAL_POWER_OFF pfnPowerOff;
    OAL_KITLSERIAL_POWER_ON pfnPowerOn;
    OAL_KITLSERIAL_FLOW_CONTROL pfnFlowControl;
} OAL_KITL_SERIAL_DRIVER;

//------------------------------------------------------------------------------
//
//  Interface:  KITL ethernet driver
//
//  This interface specifies device driver for KITL ethernet device driver.
//
typedef BOOL (*OAL_KITLETH_INIT)(UINT8 *pAddress, UINT32 offset, UINT16 mac[3]);
typedef BOOL (*OAL_KITLETH_INIT_DMABUFFER)(UINT32 address, UINT32 size);
typedef BOOL (*OAL_KITLETH_DEINIT)();
typedef UINT16 (*OAL_KITLETH_SEND_FRAME)(UINT8 *pData, UINT32 size);
typedef UINT16 (*OAL_KITLETH_GET_FRAME)(UINT8 *pData, UINT16 *pSize);
typedef VOID (*OAL_KITLETH_ENABLE_INTS)();
typedef VOID (*OAL_KITLETH_DISABLE_INTS)();
typedef VOID (*OAL_KITLETH_POWER_OFF)();
typedef VOID (*OAL_KITLETH_POWER_ON)();
typedef VOID (*OAL_KITLETH_CURRENT_PACKET_FILTER)(UINT32 filter);
typedef BOOL (*OAL_KITLETH_MULTICAST_LIST)(UINT8 *pAddresses, UINT32 count);

typedef struct {
    OAL_KITLETH_INIT pfnInit;
    OAL_KITLETH_INIT_DMABUFFER pfnInitDmaBuffer;
    OAL_KITLETH_DEINIT pfnDeinit;
    OAL_KITLETH_SEND_FRAME pfnSendFrame;
    OAL_KITLETH_GET_FRAME pfnGetFrame;
    OAL_KITLETH_ENABLE_INTS pfnEnableInts;
    OAL_KITLETH_DISABLE_INTS pfnDisableInts;
    OAL_KITLETH_POWER_OFF pfnPowerOff;
    OAL_KITLETH_POWER_ON pfnPowerOn;
    OAL_KITLETH_CURRENT_PACKET_FILTER pfnCurrentPacketFilter;
    OAL_KITLETH_MULTICAST_LIST pfnMulticastList;
} OAL_KITL_ETH_DRIVER;

//------------------------------------------------------------------------------
//
//  OAL_KITL_DEVICE
//
//  This structure defines KITL device. First parameter is user readable 
//  device name. Second determine interface type on which device is located.
//  Together with third parameter it is used to identify device.
//
typedef struct {
    LPCWSTR name;           // Device/driver name
    UINT32 ifcType;         // Interface name
    UINT32 id;              // Device identification (depends on interface type)
    UINT32 resource;        // Resource to be used as base address
    OAL_KITL_TYPE type;     // KITL driver type (ethernet, serial, ...)
    VOID *pDriver;          // KITL driver (depends on driver type)
} OAL_KITL_DEVICE;    
    
//------------------------------------------------------------------------------
//
//  Global:  g_oalKitlBuffer
//
//  This global variable is intended to be used by KITL protocol
//  implementation. For ethernet/IP4 it is used as network driver DMA buffer.
//
extern UINT8 g_oalKitlBuffer[OAL_KITL_BUFFER_SIZE];

//------------------------------------------------------------------------------
//
//  Function:  OALKitlStart
//
//  This function is called to start KITL module. On image without KITL support
//  it is stubbed. 
//
BOOL OALKitlStart();

//------------------------------------------------------------------------------
//
//  Function:  OALKitlInit
//
//  This function is called from OALKitlStart to initialize KITL subsystem.
//
BOOL OALKitlInit(
    LPCSTR deviceId, OAL_KITL_ARGS *pArgs, OAL_KITL_DEVICE *pDevice
);

//------------------------------------------------------------------------------
//
//  Function:  OALKitlFindDevice
//
//  This function finds KITL device in device table based on device location.
//  It also updated device location structure members (logical address) 
//  based on device location (bus) and other information.
//
OAL_KITL_DEVICE* OALKitlFindDevice(
    DEVICE_LOCATION *pDevLoc, OAL_KITL_DEVICE *pDevices
);

//------------------------------------------------------------------------------
//
//  Function:  OALKitlDeviceName
//
//  This function returns device/driver name based on device location and
//  KITL devices table.
LPCWSTR OALKitlDeviceName(
    DEVICE_LOCATION *pDevLoc, OAL_KITL_DEVICE *pDevices
);

//------------------------------------------------------------------------------
//
//  Function:  OALKitlDeviceType
//
//  This function returns KITL device type (ethernet, serial, flash, ...)
//  based on device location and KITL devices table.
//
OAL_KITL_TYPE OALKitlDeviceType(
    DEVICE_LOCATION *pDevLoc, OAL_KITL_DEVICE *pDevices
);

//------------------------------------------------------------------------------
//
//  Function:  OALKitlInitRegistry
//
//  This function should be called from IOCTL_HAL_INITREGISTRY handler. It is
//  used to intialize registry in way it dissable use of KITL device by OS
//  device driver.
//
VOID OALKitlInitRegistry();

//------------------------------------------------------------------------------
//
//  Function:  OALKitlPowerOff
//
//  This function is called by power handler (from OEMPowerOff) befor device
//  is mover to suspend. It should set KITL device to power off state.
//
VOID OALKitlPowerOff();

//------------------------------------------------------------------------------
//
//  Function:  OALKitlPowerOn
//
//  This function is called by power handler (from OEMPowerOff) after device
//  recover from suspend. It should restore KITL device to functional state.
//
VOID OALKitlPowerOn();

//------------------------------------------------------------------------------
//
//  Function:  OALIoCtlVBridge
//
//  This is IOCTL handler for VBridge related IOCTL codes. It should be added
//  to g_oalIoCtlTable as handler for IOCTL_VBRIDGE_802_3_MULTICAST_LIST, 
//  IOCTL_VBRIDGE_ADD_MAC, IOCTL_VBRIDGE_CURRENT_PACKET_FILTER, 
//  IOCTL_VBRIDGE_GET_ETHERNET_MAC, IOCTL_VBRIDGE_GET_RX_PACKET,
//  IOCTL_VBRIDGE_GET_RX_PACKET_COMPLETE, IOCTL_VBRIDGE_GET_TX_PACKET,
//  IOCTL_VBRIDGE_GET_TX_PACKET_COMPLETE, IOCTL_VBRIDGE_SHARED_ETHERNET,
//  IOCTL_VBRIDGE_WILD_CARD, IOCTL_VBRIDGE_WILD_CARD_RESET_BUFFER and 
//  IOCTL_VBRIDGE_WILD_CARD_VB_INITIALIZED codes.
//
BOOL OALIoCtlVBridge(
    UINT32 code, VOID *pInpBuffer, UINT32 inpSize, VOID *pOutBuffer,
    UINT32 outSize, UINT32 *pOutSize
);    

//------------------------------------------------------------------------------
//
//  Function:  OALKitlCreateName
//
//  This function create KITL device name from prefix and MAC address. Result
//  is put to szBuffer. The buffer must have OAL_KITL_ID_SIZE size.
//
VOID OALKitlCreateName(LPSTR szPrefix, UINT16 mac[3], LPSTR szBuffer);

//------------------------------------------------------------------------------
//
//  Function:  OALKitlGetDevLoc
//
//  This function returns KITL device location. It is used by some KITL
//  optional functions.
//
BOOL OALKitlGetDevLoc(DEVICE_LOCATION *pDevLoc);

//------------------------------------------------------------------------------
//
//  Function:  OALKitlIPtoString
//
//  This function converts IP address to string. It is using internal static
//  buffer, so it isn't reentrant.
//
LPWSTR OALKitlIPtoString(UINT32 ip4);

//------------------------------------------------------------------------------
//
//  Function:  OALKitlMACtoString
//
//  This function converts MAC address to string. It is using internal static
//  buffer, so it isn't reentrant.
//
LPWSTR OALKitlMACtoString(UINT16 mac[]);

//------------------------------------------------------------------------------
//
//  Function:  OALKitlStringToIP
//
//  This function converts string to IP address. When string is incorrect it
//  returns 0 as result.
//
UINT32 OALKitlStringToIP(LPCWSTR szIP);

//------------------------------------------------------------------------------
//
//  Function:  OALKitlStringToMAC
//
//  This function converts string to MAC address. It returns TRUE when
//  conversion was sucessful and FALSE otherwise.
//
BOOL OALKitlStringToMAC(LPCWSTR szMAC, UINT16 mac[]);

//------------------------------------------------------------------------------

#if __cplusplus
}
#endif

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产成人综合亚洲网站| 一本色道久久综合亚洲aⅴ蜜桃 | 国产精品久久久久aaaa樱花| 国产精品久久久久久久浪潮网站| 亚洲免费观看高清完整版在线观看| 中文字幕欧美激情一区| 亚洲电影激情视频网站| 久久精品国产99国产精品| www.日本不卡| 在线91免费看| 国产精品伦一区二区三级视频| 亚洲国产精品久久久久婷婷884| 麻豆精品一区二区| 日本韩国欧美一区二区三区| 精品国产乱码久久久久久牛牛| 国产精品女上位| 日韩主播视频在线| 91在线视频播放地址| 欧美欧美欧美欧美| 亚洲精品一二三| 国产剧情在线观看一区二区| 色欧美88888久久久久久影院| 色综合久久综合网欧美综合网| 精品国产亚洲一区二区三区在线观看| 国产精品天干天干在线综合| 丝瓜av网站精品一区二区| 91美女片黄在线| 中文字幕av一区二区三区免费看 | 欧美日韩国产不卡| 中文字幕精品一区二区三区精品| 免费亚洲电影在线| 欧美日韩激情一区二区三区| 精品福利av导航| 午夜精品久久久久久久久久久| av在线一区二区三区| 久久久www成人免费毛片麻豆| 麻豆精品一区二区| 欧美一区二区三区免费大片 | 国产精华液一区二区三区| 91精品国产综合久久久久久久 | 91日韩一区二区三区| 国产日产欧美精品一区二区三区| 日本色综合中文字幕| 欧美日韩一区三区| 亚洲一区二区三区激情| 91久久精品一区二区| 亚洲精品日韩专区silk| 色综合一个色综合| 亚洲乱码国产乱码精品精的特点| 97久久超碰国产精品电影| 欧美成人在线直播| 麻豆国产精品官网| 精品粉嫩aⅴ一区二区三区四区| 麻豆精品一区二区| www激情久久| 粉嫩久久99精品久久久久久夜| 久久精品亚洲国产奇米99| 国产一区二区在线观看视频| 精品国产乱码久久久久久久久 | 欧美精选午夜久久久乱码6080| 亚洲一区二区三区中文字幕 | 久久国产精品99精品国产| 精品国产免费视频| 国产精选一区二区三区| 日韩一区二区三区免费观看| 捆绑变态av一区二区三区| 精品少妇一区二区三区日产乱码 | 在线免费观看一区| 亚洲国产wwwccc36天堂| 色综合欧美在线| 亚洲va在线va天堂| 精品国产91亚洲一区二区三区婷婷| 免费成人结看片| 国产欧美在线观看一区| 97精品国产97久久久久久久久久久久| 亚洲另类在线制服丝袜| 日韩一区二区三区视频在线 | 亚洲欧美国产三级| 91精品国产欧美日韩| 国产电影一区二区三区| 亚洲乱码国产乱码精品精小说| 4438x成人网最大色成网站| 国产在线精品一区二区 | 91视频国产资源| 日本va欧美va精品| 中文字幕乱码一区二区免费| 欧美性猛交xxxx乱大交退制版| 亚洲va在线va天堂| 国产亚洲成av人在线观看导航| 97久久久精品综合88久久| 日韩精品国产欧美| 久久夜色精品国产噜噜av| 91福利在线导航| 久久99精品国产麻豆婷婷| 亚洲男人天堂一区| 国产亚洲综合av| 欧美疯狂性受xxxxx喷水图片| 大白屁股一区二区视频| 首页综合国产亚洲丝袜| 亚洲精品视频在线观看免费| 国产精品成人免费在线| 久久久国产午夜精品| 精品久久99ma| 欧美电影免费观看高清完整版在 | 麻豆精品在线播放| 五月激情综合婷婷| 一区二区三区四区在线播放| 日韩一区在线看| 亚洲免费大片在线观看| 亚洲三级在线看| 亚洲天天做日日做天天谢日日欢 | 久久久99精品免费观看不卡| 精品日产卡一卡二卡麻豆| 欧美xxxx在线观看| 欧美mv和日韩mv的网站| 精品久久久三级丝袜| 久久先锋影音av鲁色资源网| 久久精品人人做人人爽97| 欧美国产综合一区二区| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 日本一区二区综合亚洲| 久久日一线二线三线suv| 久久九九99视频| 中文字幕精品在线不卡| 国产精品国产自产拍高清av王其 | 久久久久久一二三区| 国产亚洲精品久| 亚洲天堂福利av| 亚洲成人www| 蜜臀精品一区二区三区在线观看| 老色鬼精品视频在线观看播放| 韩国女主播一区二区三区| 国产美女精品在线| 99久免费精品视频在线观看| 欧美伊人久久久久久午夜久久久久| 欧美日韩国产三级| 精品国产乱子伦一区| 一区精品在线播放| 香蕉成人啪国产精品视频综合网| 日韩av电影免费观看高清完整版| 蜜桃av噜噜一区二区三区小说| 国产成人在线免费| 色域天天综合网| 欧美一区二区日韩| 日本一区二区久久| 午夜电影久久久| 成熟亚洲日本毛茸茸凸凹| 欧美午夜精品一区二区三区| 欧美sm极限捆绑bd| 亚洲视频一二三区| 极品美女销魂一区二区三区免费| 成人理论电影网| 日韩欧美在线观看一区二区三区| 国产日韩精品久久久| 视频一区视频二区在线观看| 国产一区二区精品久久| 欧洲色大大久久| 欧美高清在线一区二区| 日韩av中文在线观看| 92精品国产成人观看免费 | 在线一区二区三区做爰视频网站| 精品久久久久久久一区二区蜜臀| 亚洲人妖av一区二区| 麻豆精品久久精品色综合| 色综合久久六月婷婷中文字幕| 欧美成人vr18sexvr| 亚洲午夜精品17c| 成人高清视频在线观看| 日韩欧美国产精品| 亚洲国产人成综合网站| av午夜一区麻豆| 久久综合给合久久狠狠狠97色69| 亚洲国产美国国产综合一区二区| 成人一区在线看| 欧美一区二区不卡视频| 亚洲精品视频观看| av亚洲精华国产精华| 国产日韩欧美麻豆| 久久99精品久久久久久| 6080日韩午夜伦伦午夜伦| 夜夜操天天操亚洲| 99精品1区2区| 中文字幕一区二区三区色视频 | 美女被吸乳得到大胸91| 欧美主播一区二区三区| 亚洲欧美怡红院| av不卡在线播放| 中文字幕一区二区三区蜜月| 国产精品一级二级三级| 精品国产1区2区3区| 美国精品在线观看| 日韩亚洲欧美成人一区| 日本欧美在线观看| 欧美在线不卡一区| 亚洲综合色婷婷| 在线观看av一区二区| 亚洲一区视频在线| 在线观看免费亚洲| 亚洲乱码中文字幕综合| 欧美在线不卡一区|