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

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

?? etherne.c

?? 基于44b0的arpscan程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
/* NE2000-compatible net card drivers 
noice: this file only can work for "Byte-mode".*/

#include <stdio.h>
//#include <conio.h>
#include <stdlib.h>
#include <string.h>
#include "..\Target\44blib.h"

#include "ether.h"              /* Typedefs and function prototypes */
#include "netutil.h"
#include "net.h"

#define WORDMODE 0              /* Set to zero if using 8-bit XT-bus cards */
//---------8019 register define (ethernet.sch)------------------------------//
#define RTL8019_Base	0x08000000//Bank4 0x08000000~0x0c000000
#define RTL_Offset_00	0x0000    //Register (3 pages) 
#define RTL_Offset_01	0x0100
#define RTL_Offset_02	0x0200
#define RTL_Offset_03	0x0300
#define RTL_Offset_04	0x0400
#define RTL_Offset_05	0x0500
#define RTL_Offset_06	0x0600
#define RTL_Offset_07	0x0700
#define RTL_Offset_08	0x0800
#define RTL_Offset_09	0x0900
#define RTL_Offset_0a	0x0a00
#define RTL_Offset_0b	0x0b00
#define RTL_Offset_0c	0x0c00
#define RTL_Offset_0d	0x0d00
#define RTL_Offset_0e	0x0e00
#define RTL_Offset_0f	0x0f00
#define RTL_Offset_10	0x1000    //DMA address
#define RTL_Offset_18	0x1800    //Reset address
#define RTL8019_REG_0	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_00))
#define RTL8019_REG_1	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_01))
#define RTL8019_REG_2	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_02))
#define RTL8019_REG_3	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_03))
#define RTL8019_REG_4	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_04))
#define RTL8019_REG_5	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_05))
#define RTL8019_REG_6	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_06))
#define RTL8019_REG_7	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_07))
#define RTL8019_REG_8	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_08))
#define RTL8019_REG_9	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_09))
#define RTL8019_REG_A	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_0a))
#define RTL8019_REG_B	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_0b))
#define RTL8019_REG_C	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_0c))
#define RTL8019_REG_D	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_0d))
#define RTL8019_REG_E	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_0e))
#define RTL8019_REG_F	(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_0f))
#define RTL8019_REG_DMA		(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_10)) //1 byte
#define RTL8019_REG_DMA_HW	(*(volatile unsigned short*)(RTL8019_Base+RTL_Offset_10))//2 byte
#define RTL8019_REG_RST		(*(volatile unsigned char*)(RTL8019_Base+RTL_Offset_18))


/* NE2000 definitions */
#define DATAPORT RTL8019_REG_DMA//0x10
#define NE_RESET RTL8019_REG_RST//0x18

/* 8390 Network Interface Controller (NIC) page0 register offsets */
#define CMDR    RTL8019_REG_0//0x00            /* command register for read & write */
#define PSTART  RTL8019_REG_1//0x01            /* page start register for write */
#define PSTOP   RTL8019_REG_2//0x02            /* page stop register for write */
#define BNRY    RTL8019_REG_3//0x03            /* boundary reg for rd and wr */
#define TPSR    RTL8019_REG_4//0x04            /* tx start page start reg for wr */
#define TBCR0   RTL8019_REG_5//0x05            /* tx byte count 0 reg for wr */
#define TBCR1   RTL8019_REG_6//0x06            /* tx byte count 1 reg for wr */
#define ISR     RTL8019_REG_7//0x07            /* interrupt status reg for rd and wr */
#define RSAR0   RTL8019_REG_8//0x08            /* low byte of remote start addr */
#define RSAR1   RTL8019_REG_9//0x09            /* hi byte of remote start addr */
#define RBCR0   RTL8019_REG_A//0x0A            /* remote byte count reg 0 for wr */
#define RBCR1   RTL8019_REG_B//0x0B            /* remote byte count reg 1 for wr */
#define RCR     RTL8019_REG_C//0x0C            /* rx configuration reg for wr */
#define TCR     RTL8019_REG_D//0x0D            /* tx configuration reg for wr */
#define DCR     RTL8019_REG_E//0x0E            /* data configuration reg for wr */
#define IMR     RTL8019_REG_F//0x0F            /* interrupt mask reg for wr */

/* NIC page 1 register offsets */
#define PAR0    RTL8019_REG_1//0x01            /* physical addr reg 0 for rd and wr */
#define PAR1    RTL8019_REG_2//0x02
#define PAR2    RTL8019_REG_3//0x03
#define PAR3    RTL8019_REG_4//0x04
#define PAR4    RTL8019_REG_5//0x05
#define PAR5    RTL8019_REG_6//0x06
#define CURR    RTL8019_REG_7//0x07            /* current page reg for rd and wr */
#define MAR0    RTL8019_REG_8//0x08            /* multicast addr reg 0 for rd and WR */
#define MAR1    RTL8019_REG_9//0x08
#define MAR2    RTL8019_REG_A//0x08
#define MAR3    RTL8019_REG_B//0x08
#define MAR4    RTL8019_REG_C//0x08
#define MAR5    RTL8019_REG_D//0x08
#define MAR6    RTL8019_REG_E//0x08
#define MAR7    RTL8019_REG_F//0x08

/* Buffer Length and Field Definition Info */
#define TXSTART  0x40           /* Tx buffer start page */
#define TXPAGES  6              /* Pages for Tx buffer */
#define RXSTART  (TXSTART+TXPAGES)  /* Rx buffer start page */
#if WORDMODE
#define RXSTOP   0x7e           /* Rx buffer end page for word mode */
#define DCRVAL   0x49           /* DCR values for word mode */
#else
#define RXSTOP   0x5f           /* Ditto for byte mode */
#define DCRVAL   0x48
#endif
#define STARHACK 0              /* Set non-zero to enable Starlan length hack */

typedef struct                  /* Net driver configuration data */
{
    WORD dtype;                     /* Driver type */
    BYTE myeth[MACLEN];             /* MAC (Ethernet) addr */
    LWORD ebase;                    /* Card I/O base addr */
    WORD next_pkt;                  /* Next (current) Rx page */
} CONFIGNE;

static CONFIGNE configs[MAXNETS];   /* Driver configurations */

static LWORD ebase;              /* Temp I/O base addr; usually 280h for PC */
int promisc=0;                  /* Flag to enable promiscuous mode */

typedef struct {                /* NIC hardware packet header */
    BYTE stat;                  /*     Error status */
    BYTE next;                  /*     Pointer to next block */
    WORD len;                   /*     Length of this frame incl. CRC */
} NICHDR;
NICHDR nichdr;

BYTE MYMAC[MACLEN]={0x01,0x12,0x34,0x56,0x67,0x89};

/* Private prototypes */
void resetnic(CONFIGNE *cp, char cold);
void getnic(WORD addr, BYTE data[], WORD len);
void putnic(WORD addr, BYTE data[], WORD len);
BYTE nicwrap(int page);
//BYTE innic(int reg);
//void outnic(int reg, int b);
extern void Delay(int time);
extern void Uart_Printf(char *fmt,...);

/* Initialise card given driver type and base addr.
** Return driver type, 0 if error */
int init_etherne(WORD dtype, LWORD baseaddr)
{
    int ok=0;
    CONFIGNE *cp;
    
    cp = &configs[dtype & NETNUM_MASK]; /* Get pointer into driver data */
    cp->dtype = dtype;                  /* Set driver type */
    cp->ebase = ebase = baseaddr;       /* Set card I/O base address */
    //outnic(NE_RESET, innic(NE_RESET)); 
    NE_RESET=0x03;                      /* Write a random number, then do reset */
    Delay(100);
    //if ((innic(ISR) & 0x80) == 0)       /* Report if failed */
    if((ISR & 0x80)==0)
    {
        Uart_Printf("  Ethernet card failed to reset!\n");
    }
    else
    {
        Uart_Printf("\nEthernet card success to reset!\n");
        resetnic(cp, 1);                /* Reset Ethernet card, get my addr */
        ok = 1;
    }
    return(ok);
}

/* Close down ethernet controller */
void close_etherne(WORD dtype)
{
    ebase = configs[dtype & NETNUM_MASK].ebase;
    if (ebase)
    {
        //outnic(CMDR, 0x21);
        CMDR=0x21;             /* Stop, DMA abort, page 0 */
        configs[dtype & NETNUM_MASK].ebase = 0;
    }
}

/* Return pointer to my Ethernet addr, given driver type */
BYTE *etherne_addr(WORD dtype)
{
    return(configs[dtype & NETNUM_MASK].myeth);
}

/* Poll network interface to keep it alive; send & receive frames */
void poll_etherne(WORD dtype)
{
    WORD len;
    static BYTE ebuff[MAXFRAMEC];
    CONFIGNE *cp;

    cp = &configs[dtype & NETNUM_MASK];
    if (cp->ebase)                          /* If Ether card in use.. */
    {
        ebase = cp->ebase;                  /* Set card I/O address */
        //outnic(ISR, 0x01);
        ISR=0x01;                           /* Clear interrupt flag */
		/* Transmit */
        //while (!(innic(CMDR)&0x04) &&       /* While NIC ready & frame avail */
        while(!(CMDR&0x04)&&(len=transmit_upcall(cp->dtype, ebuff, MAXFRAME))>0)
        {                                   /* ..transmit frame */
            put_etherne(cp->dtype, ebuff, len);
        }
		Delay(500);
        /* Receive */
        while ((len=get_etherne(cp->dtype, ebuff))>0)
        {                                   /* Store frames in buff */
            receive_upcall(cp->dtype, ebuff, len);
        }
    }
}

/* Get packet into buffer, return length (excl CRC), or 0 if none available */
WORD get_etherne(WORD dtype, void *pkt)
{
    WORD len=0, curr;
    BYTE bnry;
    CONFIGNE *cp;
#if STARHACK
    int hilen, lolen;
#endif
    //Uart_Printf("\n Come to get_etherne");
    cp = &configs[dtype & NETNUM_MASK];
    ebase = cp->ebase;
    //if (innic(ISR) & 0x10)              /* If Rx overrun.. */
    if(ISR & 0x10)
    {
        Uart_Printf("  NIC Rx overrun\n");
        resetnic(cp, 0);                /* ..reset controller (drastic!) */
    }
    //outnic(CMDR, 0x60);
    CMDR=0x60;                          /* DMA abort, page 1 */
    curr = CURR;//innic(CURR);                 /* Get current page */
    //outnic(CMDR, 0x20);
    CMDR=0x20;                          /* DMA abort, page 0 */
    if (curr != cp->next_pkt)           /* If Rx packet.. */
    {
        //Uart_Printf("\n Rx packet");
        memset(&nichdr, 0xee, sizeof(nichdr));  /* ..get NIC header */
        getnic((WORD)(cp->next_pkt<<8), (BYTE *)&nichdr, sizeof(nichdr));
#if STARHACK
        hilen = nichdr.next - cp->next_pkt - 1;
        lolen = nichdr.len & 0xff;
        if (hilen < 0)                  /* Do len calc from NIC datasheet */
            hilen = RXSTOP - cp->next_pkt + nichdr.next - RXSTART - 1;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合天天做天天爱| 亚洲一区二区精品视频| 首页亚洲欧美制服丝腿| 播五月开心婷婷综合| 中文字幕乱码日本亚洲一区二区| 国产在线一区二区综合免费视频| 91精品国产福利| 日日骚欧美日韩| 欧美高清视频不卡网| 亚洲123区在线观看| 99免费精品视频| 欧美精品一区二区三区蜜桃 | caoporn国产一区二区| 国产精品美女一区二区三区| 国产91精品免费| 久久蜜桃香蕉精品一区二区三区| 国产成人亚洲综合a∨猫咪| 中文av一区二区| 色哟哟一区二区在线观看| 亚洲综合色婷婷| 91精品国产一区二区三区香蕉| 狠狠久久亚洲欧美| 亚洲国产精品av| 成人av动漫在线| 婷婷开心久久网| 精品少妇一区二区| 色乱码一区二区三区88| 肉色丝袜一区二区| 久久夜色精品一区| 在线观看日韩电影| 日本中文一区二区三区| 国产精品成人一区二区三区夜夜夜| 91免费在线播放| 亚洲一区在线电影| 日韩美女在线视频| 欧美性大战久久久久久久| 免费高清成人在线| 亚洲主播在线观看| 精品免费视频一区二区| 99re这里只有精品首页| 日韩电影在线一区二区| 中文乱码免费一区二区| 激情综合色播激情啊| 夜夜嗨av一区二区三区四季av| 欧美一区二区三区四区在线观看| www.成人网.com| 天堂精品中文字幕在线| 精品噜噜噜噜久久久久久久久试看| jizzjizzjizz欧美| 奇米精品一区二区三区在线观看一| 自拍视频在线观看一区二区| 欧美一级精品在线| 在线观看日韩av先锋影音电影院| 极品美女销魂一区二区三区免费| 一区二区三区不卡视频| 国产三级精品三级在线专区| 在线欧美日韩国产| 精品一区二区三区在线播放视频| 亚洲色图.com| 久久久久久久国产精品影院| 欧美亚洲动漫另类| a亚洲天堂av| 久久99精品国产麻豆婷婷 | 日韩美女视频一区二区在线观看| 成人av电影在线观看| 日韩经典一区二区| 亚洲精品菠萝久久久久久久| 久久色在线视频| 欧美另类变人与禽xxxxx| av一区二区不卡| 国产综合久久久久久鬼色 | 国产精品传媒入口麻豆| 日韩精品中文字幕在线一区| 在线看国产一区二区| 国产iv一区二区三区| 国内精品国产成人| 日本成人在线不卡视频| 一区二区三区免费网站| 国产精品嫩草99a| 久久久夜色精品亚洲| 777午夜精品免费视频| 欧美影视一区在线| 99九九99九九九视频精品| 国产在线精品不卡| 精品一区二区三区在线播放| 天堂精品中文字幕在线| 香蕉加勒比综合久久| 亚洲一级二级在线| 樱桃国产成人精品视频| 亚洲精品视频观看| 亚洲女子a中天字幕| 亚洲免费视频中文字幕| 亚洲同性gay激情无套| 亚洲视频一区在线观看| 亚洲天堂中文字幕| 亚洲精品视频免费观看| 一区二区三区在线高清| 一区二区三区日韩精品视频| 一区二区三区欧美| 一二三区精品福利视频| 丝袜亚洲另类欧美综合| 五月天网站亚洲| 蜜臀av性久久久久蜜臀av麻豆| 日韩影院免费视频| 麻豆精品国产传媒mv男同| 国产主播一区二区三区| 国产剧情av麻豆香蕉精品| 国产91综合一区在线观看| gogo大胆日本视频一区| 国产精品久久久久aaaa樱花| 欧美性猛交一区二区三区精品| 91精品福利视频| 91超碰这里只有精品国产| 欧美二区在线观看| 欧美一区二区大片| 久久精品无码一区二区三区| 国产精品久久久久久久久果冻传媒| 国产精品国产三级国产有无不卡| 亚洲色图视频网站| 亚洲国产成人91porn| 麻豆国产欧美日韩综合精品二区| 激情综合网av| 成人av在线网站| 欧美性受xxxx黑人xyx性爽| 91精品国产综合久久精品麻豆 | 欧美日韩激情一区二区三区| 日韩一卡二卡三卡国产欧美| 国产偷国产偷精品高清尤物| 亚洲精品国产第一综合99久久| 五月天婷婷综合| 国产suv一区二区三区88区| 91精品办公室少妇高潮对白| 欧美xxxx老人做受| 日韩理论片中文av| 久久66热re国产| 一本高清dvd不卡在线观看| 日韩亚洲欧美一区二区三区| 日本一区二区三区免费乱视频| 亚洲精品成人a在线观看| 国内精品嫩模私拍在线| 色婷婷综合久久久中文一区二区 | 日日夜夜一区二区| 国产成人一级电影| 欧美色精品在线视频| 秋霞影院一区二区| 国产精品一区二区在线观看不卡| 99精品一区二区| 日韩欧美成人激情| 久久久久97国产精华液好用吗 | 国产精品久久久久久久久晋中| 香蕉影视欧美成人| 成人av在线资源| 欧美一区二区三级| 一区二区中文字幕在线| 一区二区三区蜜桃| 国产成人鲁色资源国产91色综 | 亚洲二区视频在线| 国产乱人伦偷精品视频免下载| 懂色av一区二区夜夜嗨| 日韩午夜激情免费电影| 亚洲女同女同女同女同女同69| 国产乱国产乱300精品| 欧美一级久久久久久久大片| 亚洲国产日韩精品| av动漫一区二区| 国产精品五月天| 国产一区二区三区av电影| 欧美疯狂做受xxxx富婆| 亚洲国产成人va在线观看天堂| av激情亚洲男人天堂| 国产精品无圣光一区二区| 韩国av一区二区三区在线观看| 欧美精品高清视频| 亚洲一区二区视频在线观看| 91丨九色丨蝌蚪富婆spa| 久久久亚洲精品一区二区三区| 美女网站色91| 日韩一区二区免费电影| 美女一区二区视频| 欧美一二三四区在线| 日韩va亚洲va欧美va久久| 欧美群妇大交群中文字幕| 亚洲一区二区在线免费看| 日本精品视频一区二区| 亚洲日本乱码在线观看| 99精品久久久久久| 亚洲三级在线免费| 日本高清视频一区二区| 亚洲综合视频在线观看| 欧美日韩国产高清一区二区三区| 亚洲黄色小视频| 欧美日免费三级在线| 亚洲国产精品精华液网站| 欧美日韩不卡视频| 日本不卡的三区四区五区| 91精品国产欧美一区二区18| 久久精品国产**网站演员| 久久亚洲精华国产精华液 | 日韩精品视频网站| 日韩一区二区在线播放|