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

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

?? cs8900sw.h

?? s3c2440 WINCE 5.00 官方bsp
?? 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) 1998 Samsung Electronics.

Module Name:

    cs8900sw.h

Abstract:

    The main header for an Cirrus Logic CS8900 Miniport driver.

Notes:

--*/

#ifndef _CS8900SFT_
#define _CS8900SFT_


#define DRIVER_MAJOR_VERSION        0x01
#define DRIVER_MINOR_VERSION        0x00

#define CS8900_NDIS_MAJOR_VERSION 5
#define CS8900_NDIS_MINOR_VERSION 1

#define	MAXLOOP						0x8888

//
// This macro is used along with the flags to selectively
// turn on debugging.
//

#if DBG

#define IF_CS8900DEBUG(f) if (Ne2000DebugFlag & (f))
extern ULONG Ne2000DebugFlag;

#define CS8900_DEBUG_LOUD               0x00000001  // debugging info
#define CS8900_DEBUG_VERY_LOUD          0x00000002  // excessive debugging info
#define CS8900_DEBUG_LOG                0x00000004  // enable Ne2000Log
#define CS8900_DEBUG_CHECK_DUP_SENDS    0x00000008  // check for duplicate sends
#define CS8900_DEBUG_TRACK_PACKET_LENS  0x00000010  // track directed packet lens
#define CS8900_DEBUG_WORKAROUND1        0x00000020  // drop DFR/DIS packets
#define CS8900_DEBUG_CARD_BAD           0x00000040  // dump data if CARD_BAD
#define CS8900_DEBUG_CARD_TESTS         0x00000080  // print reason for failing

//
// Macro for deciding whether to print a lot of debugging information.
//

#define IF_LOUD(A) IF_CS8900DEBUG( CS8900_DEBUG_LOUD ) { A }
#define IF_VERY_LOUD(A) IF_CS8900DEBUG( CS8900_DEBUG_VERY_LOUD ) { A }

//
// Whether to use the Ne2000Log buffer to record a trace of the driver.
//
#define IF_LOG(A) IF_CS8900DEBUG( CS8900_DEBUG_LOG ) { A }
extern VOID Ne2000Log(UCHAR);

//
// Whether to do loud init failure
//
#define IF_INIT(A) A

//
// Whether to do loud card test failures
//
#define IF_TEST(A) IF_CS8900DEBUG( CS8900_DEBUG_CARD_TESTS ) { A }

//
// Windows CE debug zones
//
#define ZONE_ERROR      DEBUGZONE(0)
#define ZONE_WARN       DEBUGZONE(1)
#define ZONE_FUNCTION   DEBUGZONE(2)
#define ZONE_INIT       DEBUGZONE(3)
#define ZONE_INTR       DEBUGZONE(4)
#define ZONE_RCV        DEBUGZONE(5)
#define ZONE_XMIT       DEBUGZONE(6)

#else

//
// This is not a debug build, so make everything quiet.
//
#define IF_LOUD(A)
#define IF_VERY_LOUD(A)
#define IF_LOG(A)
#define IF_INIT(A)
#define IF_TEST(A)

#endif

//
// Create a macro for moving memory from place to place.  Makes
// the code more readable and portable in case we ever support
// a shared memory CS8900 adapter.
//
#define CS8900_MOVE_MEM(dest,src,size) NdisMoveMemory(dest,src,size)

//
// The status of transmit buffers.
//

typedef enum {
    EMPTY = 0x00,
    FULL = 0x02
} BUFFER_STATUS;

//
// Type of an interrupt.
//

typedef enum {
    RECEIVE     = 0x01,
    TRANSMIT    = 0x02,
    BUFOVERFLOW = 0x04,
    COUNTER     = 0x08,
    UNKNOWN     = 0x10
} INTERRUPT_TYPE;

//
// Size of the ethernet header
//
#define	CS8900_HEADER_SIZE		14

//
// Size of the ethernet address
//
#define	CS8900_LENGTH_OF_ADDRESS 6

//
// Number of bytes allowed in a lookahead (max)
//
#define CS8900_MAX_LOOKAHEAD (1514 - CS8900_HEADER_SIZE)

//
// Maximum number of transmit buffers on the card.
//
//#define MAX_XMIT_BUFS   12

//
// Definition of a transmit buffer.
//
//typedef UINT XMIT_BUF;

//
// Number of 256-byte buffers in a transmit buffer.
//
#define BUFS_PER_TX 1

//
// Size of a single transmit buffer.
//
#define TX_BUF_SIZE (BUFS_PER_TX*256)

//
// This structure contains information about the driver
// itself.  There is only have one of these structures.
//
typedef struct _DRIVER_BLOCK {

    //
    // NDIS wrapper information.
    //
    NDIS_HANDLE NdisMacHandle;          // returned from NdisRegisterMac
    NDIS_HANDLE NdisWrapperHandle;      // returned from NdisInitializeWrapper

    //
    // Adapters registered for this Miniport driver.
    //
    struct _CS8900_ADAPTER * AdapterQueue;

} DRIVER_BLOCK, * PDRIVER_BLOCK;



//
// This structure contains all the information about a single
// adapter that this driver is controlling.
//
typedef struct _CS8900_ADAPTER {

    //
    // This is the handle given by the wrapper for calling ndis
    // functions.
    //
    NDIS_HANDLE MiniportAdapterHandle;

    //
    // Interrupt object.
    //
    NDIS_MINIPORT_INTERRUPT Interrupt;

    //
    // used by DriverBlock->AdapterQueue
    //
    struct _CS8900_ADAPTER * NextAdapter;

    //
    // This is a count of the number of receives that have been
    // indicated in a row.  This is used to limit the number
    // of sequential receives so that one can periodically check
    // for transmit complete interrupts.
    //
    ULONG ReceivePacketCount;

    //
    // Configuration information
    //

    //
    // Physical address of the IoBaseAddress
    //
    PVOID IoBaseAddr;

    //
    // Interrupt number this adapter is using.
    //
    CHAR InterruptNumber;

    //
    // Number of multicast addresses that this adapter is to support.
    //
    UINT MulticastListMax;

    //
    // The type of bus that this adapter is running on.  Either ISA or
    // MCA.
    //
    UCHAR BusType;

    //
    // InterruptType is the next interrupt that should be serviced.
    //
    UCHAR InterruptType;

    //
    //  Type of CS8900 card.
    //
    UINT    CardType;

    //
    //  Address of the memory window.
    //
    ULONG   AttributeMemoryAddress;
    ULONG   AttributeMemorySize;

    //
    // Operational information.
    //

    //
    // Mapped address of the base io port.
    //
    ULONG IoPAddr;
  
    //
    // InterruptStatus tracks interrupt sources that still need to be serviced,
    // it is the logical OR of all card interrupts that have been received and not
    // processed and cleared. (see also INTERRUPT_TYPE definition in cs8900.h)
    //
    UCHAR InterruptStatus;

    //
    // The ethernet address currently in use.
    //
    UCHAR StationAddress[CS8900_LENGTH_OF_ADDRESS];

    //
    // The ethernet address that is burned into the adapter.
    //
    UCHAR PermanentAddress[CS8900_LENGTH_OF_ADDRESS];

    //
    // The current packet filter in use.
    //
    ULONG PacketFilter;

    //
    // Flag that is set when we are shutting down the interface
    //
	BOOLEAN ShuttingDown;
    
    //
    // Statistics used by Set/QueryInformation.
    //

    ULONG FramesXmitGood;               // Good Frames Transmitted
    ULONG FramesRcvGood;                // Good Frames Received
    ULONG FramesXmitBad;                // Bad Frames Transmitted
    ULONG FramesXmitOneCollision;       // Frames Transmitted with one collision
    ULONG FramesXmitManyCollisions;     // Frames Transmitted with > 1 collision
    ULONG FrameAlignmentErrors;         // FAE errors counted
    ULONG CrcErrors;                    // CRC errors counted
    ULONG MissedPackets;                // missed packet counted

    //
    // Reset information.
    //

    UCHAR NicMulticastRegs[8];          // contents of card multicast registers
    UCHAR NicReceiveConfig;             // contents of NIC RCR
    UCHAR NicInterruptMask;             // contents of NIC IMR

    //
    // The lookahead buffer size in use.
    //
    ULONG MaxLookAhead;

    //
    // CS8900 address of the beginning of the packet.
    //
    PUCHAR PacketHeaderLoc;

    //
    // Lookahead buffer
    //
    UCHAR Lookahead[CS8900_MAX_LOOKAHEAD + CS8900_HEADER_SIZE];

    //
    // List of multicast addresses in use.
    //
    CHAR Addresses[DEFAULT_MULTICASTLISTMAX][CS8900_LENGTH_OF_ADDRESS];

} CS8900_ADAPTER, * PCS8900_ADAPTER;



//
// Given a MiniportContextHandle return the PCS8900_ADAPTER
// it represents.
//
#define PCS8900_ADAPTER_FROM_CONTEXT_HANDLE(Handle) \
    ((PCS8900_ADAPTER)(Handle))

//
// Given a pointer to a CS8900_ADAPTER return the
// proper MiniportContextHandle.
//
#define CONTEXT_HANDLE_FROM_PCS8900_ADAPTER(Ptr) \
    ((NDIS_HANDLE)(Ptr))

//
// Macros to extract high and low bytes of a word.
//
#define MSB(Value) ((UCHAR)((((ULONG)Value) >> 8) & 0xff))
#define LSB(Value) ((UCHAR)(((ULONG)Value) & 0xff))

//
// What we map into the reserved section of a packet.
// Cannot be more than 8 bytes (see ASSERT in cs8900.c).
//
typedef struct _MINIPORT_RESERVED {
    PNDIS_PACKET Next;    // used to link in the queues (4 bytes)
} MINIPORT_RESERVED, * PMINIPORT_RESERVED;


//
// Retrieve the MINIPORT_RESERVED structure from a packet.
//
#define RESERVED(Packet) ((PMINIPORT_RESERVED)((Packet)->MiniportReserved))

//
// Procedures which log errors.
//

typedef enum _CS8900_PROC_ID {
    cardReset,
    cardCopyDownPacket,
    cardCopyDownBuffer,
    cardCopyUp
} CS8900_PROC_ID;


//
// Special error log codes.
//
#define CS8900_ERRMSG_CARD_SETUP          (ULONG)0x01
#define CS8900_ERRMSG_DATA_PORT_READY     (ULONG)0x02
#define CS8900_ERRMSG_HANDLE_XMIT_COMPLETE (ULONG)0x04

//
// Declarations for functions in cs8900.c.
//

NDIS_STATUS
CS8900SetInformation(
    IN NDIS_HANDLE MiniportAdapterContext,
    IN NDIS_OID Oid,
    IN PVOID InformationBuffer,
    IN ULONG InformationBufferLength,
    OUT PULONG BytesRead,
    OUT PULONG BytesNeeded
    );

VOID
CS8900Shutdown(
    IN NDIS_HANDLE MiniportAdapterContext
    );

VOID
CS8900Halt(
    IN NDIS_HANDLE MiniportAdapterContext
    );

NDIS_STATUS
CS8900RegisterAdapter(
    IN PCS8900_ADAPTER Adapter,
    IN NDIS_HANDLE ConfigurationHandle,
    IN BOOLEAN ConfigError,
    IN ULONG ConfigErrorValue
    );

NDIS_STATUS
MiniportInitialize(
    OUT PNDIS_STATUS OpenErrorStatus,
    OUT PUINT SelectedMediumIndex,
    IN PNDIS_MEDIUM MediumArray,
    IN UINT MediumArraySize,
    IN NDIS_HANDLE MiniportAdapterHandle,
    IN NDIS_HANDLE ConfigurationHandle
    );

NDIS_STATUS
CS8900TransferData(
    OUT PNDIS_PACKET Packet,
    OUT PUINT BytesTransferred,
    IN NDIS_HANDLE MiniportAdapterContext,
    IN NDIS_HANDLE MiniportReceiveContext,
    IN UINT ByteOffset,
    IN UINT BytesToTransfer
    );

NDIS_STATUS
CS8900Send(
    IN NDIS_HANDLE MiniportAdapterContext,
    IN PNDIS_PACKET Packet,
    IN UINT Flags
    );

NDIS_STATUS
CS8900Reset(
    OUT PBOOLEAN AddressingReset,
    IN NDIS_HANDLE MiniportAdapterContext
    );

NDIS_STATUS
CS8900QueryInformation(
    IN NDIS_HANDLE MiniportAdapterContext,
    IN NDIS_OID Oid,
    IN PVOID InformationBuffer,
    IN ULONG InformationBufferLength,
    OUT PULONG BytesWritten,
    OUT PULONG BytesNeeded
    );

VOID
CS8900Halt(
    IN NDIS_HANDLE MiniportAdapterContext
    );

VOID
CS8900CancelSendPackets(
   IN NDIS_HANDLE hMiniportAdapterContext,
   IN PVOID pvCancelId
);

VOID
CS8900DevicePnPEvent(
   IN NDIS_HANDLE hMiniportAdapterContext,
   IN NDIS_DEVICE_PNP_EVENT  devicePnPEvent,
   IN PVOID pvInformationBuffer,
   IN ULONG ulInformationBufferLength
);

VOID
CS8900AdapterShutdown(
   IN NDIS_HANDLE hMiniportAdapterContext
);

//
// Interrup.c
//

void CS8900ReceiveEvent(PCS8900_ADAPTER Adapter, unsigned short RxEvent);

//VOID
//CS8900EnableInterrupt(
//    IN NDIS_HANDLE MiniportAdapterContext
//    );

//VOID
//CS8900DisableInterrupt(
//    IN NDIS_HANDLE MiniportAdapterContext
//    );

VOID
CS8900Isr(
    OUT PBOOLEAN InterruptRecognized,
    OUT PBOOLEAN QueueDpc,
    IN PVOID Context
    );

VOID
CS8900HandleInterrupt(
    IN NDIS_HANDLE MiniportAdapterContext
    );

//
// Declarations of functions in cs8900.c.
//

unsigned short
CS8900ReadRegister(
	unsigned short offset
	);

void
CS8900WriteRegister(
	unsigned short offset,
	unsigned short data
	);

BOOLEAN
CS8900Initialize(
    IN PCS8900_ADAPTER Adapter
    );

BOOLEAN
CS8900ReadEthernetAddress(
    IN PCS8900_ADAPTER Adapter
    );

unsigned short CS8900RequestTransmit
(
	UINT PacketLength
    );

void CS8900CopyTxFrame
(
	PCHAR pPacket,
	UINT PacketLength
    );

#endif // CS8900SFT

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲另类在线视频| 日韩欧美在线综合网| 中文无字幕一区二区三区| 一区二区三区四区精品在线视频| 国产成人免费xxxxxxxx| 久久人人97超碰com| 国产一区二区在线观看免费 | 国产精品乱码一区二三区小蝌蚪| 蜜桃av一区二区三区电影| 欧美一区二区三区免费大片 | 日韩在线播放一区二区| 欧美日韩国产乱码电影| 亚洲福利国产精品| 欧美日韩不卡在线| 日韩和欧美一区二区三区| 91精品国产综合久久久久久漫画 | 91色婷婷久久久久合中文| 亚洲欧洲精品天堂一级| 久草中文综合在线| 2024国产精品| 国产91精品一区二区麻豆网站 | 国产色产综合色产在线视频| 日韩精品色哟哟| 精品福利视频一区二区三区| 麻豆视频一区二区| 精品理论电影在线观看 | 一区精品在线播放| 91原创在线视频| 婷婷六月综合亚洲| 欧美日韩在线三级| 免费观看日韩电影| 国产精品理论在线观看| 国产一区二区三区久久久 | 中文字幕不卡在线播放| 色哟哟国产精品免费观看| 视频在线在亚洲| 亚洲国产精品成人综合色在线婷婷| 色诱视频网站一区| 日本不卡免费在线视频| 国产欧美日韩激情| 欧美日韩免费电影| 国产精品一级在线| 一区二区三区不卡视频在线观看| 日韩一区二区免费视频| eeuss鲁片一区二区三区| 午夜视频一区二区| 亚洲精品在线观看视频| 91久久精品国产91性色tv| 日本sm残虐另类| 国产精品美女久久福利网站| 99久久精品国产网站| 日韩电影网1区2区| 国产精品区一区二区三区| 欧美日韩一区三区| 粉嫩高潮美女一区二区三区| 五月婷婷激情综合网| 国产日韩欧美精品在线| 色诱视频网站一区| 国产1区2区3区精品美女| 亚洲成人7777| 国产欧美日韩久久| 欧美一级艳片视频免费观看| 成a人片国产精品| 九九热在线视频观看这里只有精品| 亚洲午夜一区二区| 欧美激情一二三区| 精品久久国产97色综合| 欧美色偷偷大香| 不卡视频一二三| 午夜久久久影院| |精品福利一区二区三区| 精品日韩一区二区三区| 欧美久久久久久久久中文字幕| 91国偷自产一区二区三区成为亚洲经典 | 一区二区三区免费网站| 国产精品久久久久久户外露出| 亚洲精品一区二区三区精华液| 日韩一区二区三区视频| 欧美一区二区黄| 日韩免费高清视频| 欧美精品一区二区三| 精品剧情在线观看| 久久久精品综合| 国产精品乱人伦| 洋洋成人永久网站入口| 午夜国产精品一区| 美日韩一级片在线观看| 国产在线国偷精品免费看| 国产精品123| 99久久免费视频.com| 在线欧美日韩精品| 欧美精品日日鲁夜夜添| 欧美电视剧在线观看完整版| 久久精品一区四区| 国产精品久久久久久久久快鸭| 国产精品理伦片| 亚洲一区在线观看网站| 日本不卡视频在线观看| 国产在线播放一区二区三区| caoporn国产精品| 欧美老肥妇做.爰bbww视频| 日韩一区二区三区视频| 欧美国产97人人爽人人喊| 亚洲另类一区二区| 美美哒免费高清在线观看视频一区二区| 美女高潮久久久| 成年人国产精品| 91精品国产综合久久久蜜臀粉嫩 | 国产精品入口麻豆原神| 一区二区高清免费观看影视大全| 亚洲成人综合在线| 国模无码大尺度一区二区三区| 99国产精品国产精品毛片| 欧美剧情电影在线观看完整版免费励志电影| 欧美一区二区啪啪| 国产精品九色蝌蚪自拍| 水野朝阳av一区二区三区| 国产精品一区二区91| 在线观看国产一区二区| 久久亚洲欧美国产精品乐播| 亚洲久本草在线中文字幕| 麻豆精品新av中文字幕| 日本韩国精品一区二区在线观看| 91精品国产色综合久久| 亚洲视频免费在线| 激情久久五月天| 欧美性大战xxxxx久久久| 国产日韩欧美电影| 天天操天天干天天综合网| 久久国内精品视频| 亚洲激情成人在线| 亚洲va韩国va欧美va精品| 国产精品一区二区久久精品爱涩 | 国产精品美女久久久久久久| 成人激情动漫在线观看| 九一九一国产精品| 日韩和的一区二区| 亚洲午夜一区二区三区| 亚洲精品视频在线| 成人免费视频在线观看| 中文无字幕一区二区三区 | 一本色道久久综合狠狠躁的推荐 | 久久品道一品道久久精品| 欧美一区二区三级| 欧美绝品在线观看成人午夜影视| 在线视频你懂得一区| 99精品久久只有精品| 丁香六月综合激情| 国产精品伊人色| 国产一区二区三区四 | 国产精品久久久一区麻豆最新章节| 欧美一级片在线| 欧美变态tickle挠乳网站| 欧美一区二区三区影视| 欧美人牲a欧美精品| 欧美人牲a欧美精品| 欧美一区二区视频免费观看| 日韩视频一区在线观看| 欧美成人欧美edvon| 精品嫩草影院久久| 国产亚洲午夜高清国产拍精品| 国产日产欧产精品推荐色| 欧美激情在线免费观看| **网站欧美大片在线观看| 亚洲人亚洲人成电影网站色| 亚洲乱码国产乱码精品精的特点 | 久久国产精品第一页| 九九精品一区二区| 成人国产一区二区三区精品| 日本高清成人免费播放| 欧美人与z0zoxxxx视频| 精品久久久久一区二区国产| 久久精品欧美日韩| 亚洲精品国产一区二区三区四区在线| 夜夜嗨av一区二区三区网页| 美女脱光内衣内裤视频久久网站| 狠狠色丁香久久婷婷综合_中| 高清久久久久久| 欧美性色黄大片手机版| 欧美岛国在线观看| 中文字幕一区二区三区四区不卡 | 久久婷婷国产综合精品青草| 国产精品毛片大码女人| 亚洲国产wwwccc36天堂| 精品午夜一区二区三区在线观看| 97se亚洲国产综合在线| 欧美一区二区在线播放| 国产精品女主播av| 日本成人在线视频网站| 成人美女视频在线观看| 欧美精品乱人伦久久久久久| 国产日韩欧美高清| 青青草国产精品97视觉盛宴| 99国产精品99久久久久久| 久久久久久夜精品精品免费| 久久日一线二线三线suv| 亚洲黄一区二区三区| 精彩视频一区二区三区| 欧美色综合天天久久综合精品| 2023国产一二三区日本精品2022|