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

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

?? dec21140.c

?? 基于psos操作系統的dec21140驅動
?? C
?? 第 1 頁 / 共 5 頁
字號:
  /*-------------------------------------------------------------------*/
  FlushFlag = 1;

  /*-------------------------------------------------------------------*/
  /* Stop Transmitter.                                                 */
  /*-------------------------------------------------------------------*/
  saved_csr6 = ioLongRead(CSR6) | LAN_CSR6_MBO;
  ioLongWrite(CSR6, saved_csr6 & ~LAN_CSR6_ST);

  /*-------------------------------------------------------------------*/
  /* Clear the status register CSR5                                    */
  /*-------------------------------------------------------------------*/
  ioLongWrite(CSR5, 0x0000FFFF);

  /*-------------------------------------------------------------------*/
  /* PCI Status Register - Clear                                       */
  /*-------------------------------------------------------------------*/
  WrPciCfg16(CF_STATUS, LAN_DS_PER | LAN_DS_SERR | LAN_DS_MA  |
                        LAN_DS_RTA | LAN_DS_STA  | LAN_DS_DPAR);

  /*-------------------------------------------------------------------*/
  /* Clean out the transmit buffer descriptor ring.                    */
  /*-------------------------------------------------------------------*/
  TxBufThrowAway();
  TxNewBD = TxUsedBD = TxDesc;
  ioLongWrite(CSR4, (ULONG)TxDesc);

  /*-------------------------------------------------------------------*/
  /* Turn off MAC interrupts.                                          */
  /*-------------------------------------------------------------------*/
  saved_csr7 = ioLongRead(CSR7);
  ioLongWrite(CSR7, 0);

  /*-------------------------------------------------------------------*/
  /* Setup transmit descriptor without turning interrupts on.  We will */
  /* poll the status until "transmission" is complete.                 */
  /*-------------------------------------------------------------------*/
  TxNewBD->buffAddr1 = EtherBlock;
  TxNewBD->ctrlNsize = LAN_XMTD_SET | 192;
  TxNewBD->status = MAC_OWNS_DESC;
  COPYBACK(TxNewBD->buffAddr1, 4);
  COPYBACK((void *)TxNewBD, 1);

  /*-------------------------------------------------------------------*/
  /* Start transmission and loop until MAC has processed setup frame.  */
  /*-------------------------------------------------------------------*/
  ioLongWrite(CSR6, saved_csr6 | LAN_CSR6_ST);
  do {
    microsleep(10);
    ioLongWrite(CSR5, 0x0000FFFF);
    command = RdPciCfg16(CF_STATUS);
    command &= LAN_DS_PER | LAN_DS_SERR | LAN_DS_MA |
               LAN_DS_RTA | LAN_DS_STA  | LAN_DS_DPAR;
    WrPciCfg16(CF_STATUS, command);
    INVALIDATE((void *)TxNewBD, 1);
  }
  while (TxNewBD->status != ~MAC_OWNS_DESC);

  /*-------------------------------------------------------------------*/
  /* Stop the transmitter and zero the descriptor's status.            */
  /*-------------------------------------------------------------------*/
  ioLongWrite(CSR6, saved_csr6 & ~LAN_CSR6_ST);
  TxNewBD->status = 0;

  /*-------------------------------------------------------------------*/
  /* Set transmitter back to the beginning of the buffer descriptor    */
  /* ring, restore LAN interrupt state and transmitter state.          */
  /*-------------------------------------------------------------------*/
  TxNewBD = TxUsedBD = TxDesc;
  ioLongWrite(CSR4, (ULONG)TxDesc);
  ioLongWrite(CSR7, saved_csr7);
  ioLongWrite(CSR6, saved_csr6);
  FlushFlag = 0;
}

/***********************************************************************/
/* ni_init: Initialize the network interface.                          */
/*                                                                     */
/* INPUTS: ap_addr: pNA+'s announce packet entry point.                */
/*         if_num:  Interface number                                   */
/*         funcs:   Pointer to pNA memory mgmnt functions              */
/*                                                                     */
/* RETURNS: Pointer to hardware address of NI or -1 if failure         */
/*                                                                     */
/***********************************************************************/
static long ni_init(void)
{
  int i;
  tmLibdevErr_t tm_err;
  intInstanceSetup_t iisetup;
  Bool ien;
  LAN_BUFF_DESC *descp;
  ULONG lword;

  ien = intCLEAR_IEN();

  /*-------------------------------------------------------------------*/
  /* Stop all LAN activity                                             */
  /*-------------------------------------------------------------------*/
  LanStop();

  /*-------------------------------------------------------------------*/
  /* Initialize the receive buffers and transmit headers.              */
  /*-------------------------------------------------------------------*/
  InitBuffers();

  /*-------------------------------------------------------------------*/
  /* Install the interrupt service routine.                            */
  /*-------------------------------------------------------------------*/
  iisetup.enabled = True;
  iisetup.handler = ni_isr;
  iisetup.priority = intPRIO_1;
  iisetup.level_triggered = True; 
  tm_err = intOpen(V_LAN);
  if (tm_err != TMLIBDEV_OK) {
    return -1;
  }

  tm_err = intInstanceSetup(V_LAN, &iisetup);
  if (tm_err != TMLIBDEV_OK) {
    intClose(V_LAN);
    return -1;
  }

  /*-------------------------------------------------------------------*/
  /* Get the Ethernet Address.  This is set in bpdialog.c.             */
  /* This is an interim solution till I get the roms working.          */
  /*-------------------------------------------------------------------*/
  for (i = 0; i < 6; ++i)
    OurAddress.byte[i] = EtherHwAddr[i];

  /*-------------------------------------------------------------------*/
  /* Initialize MIB variables.                                         */
  /*-------------------------------------------------------------------*/
  InErrors = outerrors = 0;
  InOctets = OutOctets = 0;
  InUcastPkts = OutUcastPkts = 0;
  innucastpkts = outnucastpkts = 0;
  ifadminstatus = 1;    /* up */
  InUnknownProtos = 0;
  lc_err = 0;

  /*-------------------------------------------------------------------*/
  /* Zero out transmit & receive descriptors                           */
  /*-------------------------------------------------------------------*/
  bzero((UCHAR *)TxDesc, sizeof(LAN_BUFF_DESC) * TxNumDesc);
  bzero((UCHAR *)RxDesc, sizeof(LAN_BUFF_DESC) * RxNumDesc);

  /*-------------------------------------------------------------------*/
  /* Initialize the transmit buffer descriptor ring.                   */
  /*-------------------------------------------------------------------*/
  for (descp = TxDesc; descp < TxDesc + TxNumDesc - 1; ++descp)
  {
    descp->nextDesc = descp + 1;
    COPYBACK((void *)descp, 1);
  }
  descp->nextDesc = TxDesc;
  COPYBACK((void *)descp, 1);

  /*-------------------------------------------------------------------*/
  /* Initialize the receive buffer descriptor ring.                    */
  /*-------------------------------------------------------------------*/
  for (descp = RxDesc; descp < RxDesc + TxNumDesc - 1; ++descp)
  {
    descp->nextDesc = descp + 1;
    COPYBACK((void *)descp, 1);
  }
  descp->nextDesc = RxDesc;
  COPYBACK((void *)descp, 1);

  /*-------------------------------------------------------------------*/
  /* Initialize buffer descriptor pointers.                            */
  /*-------------------------------------------------------------------*/
  RxUsedBD = RxNextBD = RxDesc;
  TxUsedBD = TxNewBD = TxDesc;
  TxFreeDesc = TxNumDesc;

  /*-------------------------------------------------------------------*/
  /* Link receive buffers with receive descriptors.                    */
  /*-------------------------------------------------------------------*/
  RxBufAttach();

  /*-------------------------------------------------------------------*/
  /* Initialize Lan chip in Ethernet mode in stopped mode.             */
  /*-------------------------------------------------------------------*/
  lanInit();

  /*-------------------------------------------------------------------*/
  /* Add our Ethernet address to MAC's list.                           */
  /*-------------------------------------------------------------------*/
  lan_addr_clear();
  lan_add_mcast((UCHAR *)&OurAddress.word1);

  /*-------------------------------------------------------------------*/
  /* Clear the status register - CSR5                                  */
  /*-------------------------------------------------------------------*/
  ioLongWrite(CSR5, 0x0000FFFF);

  /*-------------------------------------------------------------------*/
  /* PCI Status Register - Clear                                       */
  /*-------------------------------------------------------------------*/
  WrPciCfg16(CF_STATUS, LAN_DS_PER | LAN_DS_SERR | LAN_DS_MA  |
                        LAN_DS_RTA | LAN_DS_STA  | LAN_DS_DPAR);

  /*-------------------------------------------------------------------*/
  /* Interrupt Mask Register - CSR7                                    */
  /*-------------------------------------------------------------------*/
  ioLongWrite(CSR7, LAN_CSR7_TI  |  /* Tx Int enable */
                    LAN_CSR7_UN  |  /* underflow Int */
                    LAN_CSR7_RI  |  /* Rx Int */
                    LAN_CSR7_RU  |  /* Rx Buf unavailable */
                    LAN_CSR7_RS  |  /* Rx Stopped */
                    LAN_CSR7_FBE |  /* fatal bus error */
                    LAN_CSR7_AI  |  /* abnormal Int */
                    LAN_CSR7_GPT |  /* general purpose timer expired */
                    LAN_CSR7_NI);   /* normal int */

#if 0
  /*-------------------------------------------------------------------*/
  /* Start general purpose timer in continuous mode.                   */
  /*-------------------------------------------------------------------*/
  ioLongWrite(CSR11, 0x11FFF);
#endif

  /*-------------------------------------------------------------------*/
  /* Start transmitter and receiver in normal operation mode.          */
  /*-------------------------------------------------------------------*/
  lword = ioLongRead(CSR6);
  lword |= LAN_CSR6_MBO | LAN_CSR6_SR | LAN_CSR6_ST;
  ioLongWrite(CSR6, lword);

  /*-------------------------------------------------------------------*/
  /* No errors if we got here, so return pointer to Ethernet address.  */
  /*-------------------------------------------------------------------*/
  intRESTORE_IEN(ien);
  return (long)&OurAddress;
}

/***********************************************************************/
/* ni_send: Send a packet to another node                              */
/*                                                                     */
/* INPUTS: hwa_ptr = pointer to the destination hardware address       */
/*         pkb_ptr = pointer to packet (msg block triplet)             */
/*         type    = flag indicating either IP, ARP, or RARP           */
/*                                                                     */
/***********************************************************************/
static void ni_send(char *hwa_ptr, char *pkb_ptr, USHORT type)
{
  LAN_TX_HDR *tx_hdr;
  mblk_t     *msgBlk, *tmp, *prev;
  ULONG       i, numDesc;
  Bool ien;

  /*-------------------------------------------------------------------*/
  /* Try to keep the transmit descriptors full.                        */
  /*-------------------------------------------------------------------*/
  TxFillDesc();

  /*-------------------------------------------------------------------*/
  /* Compute the # of descriptors required to send this frame.         */
  /*-------------------------------------------------------------------*/
  msgBlk  = (mblk_t *)pkb_ptr;
  numDesc = 1;          /* 1 for the header */
  prev = NULL;
  while (msgBlk)
  {
    if (msgBlk->b_rptr != msgBlk->b_wptr)
    {
      ++numDesc;
    }
    else
    {
      tmp = msgBlk->b_cont;
      if (prev)
        prev->b_cont = tmp;
      msgBlk->b_cont = NULL;
      NiFuncs.freemsg(msgBlk);
      msgBlk = tmp;
      continue;
    }
    prev = msgBlk;
    msgBlk = msgBlk->b_cont;
  }

  msgBlk = (mblk_t *)pkb_ptr;

  /*----------------------------------------------------------------

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品丝袜一区| 国产99久久久国产精品免费看| 天天操天天干天天综合网| 国内精品久久久久影院色| 北条麻妃一区二区三区| 精品欧美乱码久久久久久1区2区| 成人欧美一区二区三区小说| 国产一区日韩二区欧美三区| 欧美日高清视频| 中文字幕一区视频| 狠狠狠色丁香婷婷综合久久五月| 欧美在线高清视频| 综合激情网...| 国产成人亚洲精品青草天美| 欧美福利一区二区| 一区二区三区在线视频免费观看 | 国产精品综合视频| 欧美日韩高清一区二区三区| 中文字幕一区免费在线观看| 国产福利91精品一区| 精品成人私密视频| 久久精品av麻豆的观看方式| 欧美精品在线一区二区三区| 亚洲综合网站在线观看| 91论坛在线播放| 中文字幕一区二| 不卡av在线网| 国产精品乱码人人做人人爱| 国产成人免费9x9x人网站视频| 精品国产一区二区三区四区四| 日本aⅴ免费视频一区二区三区| 欧美精品久久久久久久久老牛影院| 一区二区三区色| 欧美在线免费播放| 亚洲成人自拍一区| 3d成人动漫网站| 欧美成人aa大片| 国内精品不卡在线| 中文字幕免费在线观看视频一区| 国产一区高清在线| 国产精品毛片无遮挡高清| 成人h动漫精品| 亚洲免费观看高清| 欧美日韩在线三级| 蜜臀av一区二区在线免费观看| 欧美大片一区二区| 成人免费视频播放| 一区二区三区久久久| 在线综合亚洲欧美在线视频| 精品一区二区三区视频| 国产欧美精品在线观看| 91麻豆免费视频| 日本成人中文字幕在线视频 | 亚洲成人资源网| 日韩一级欧美一级| 国产91丝袜在线观看| 亚洲三级理论片| 欧美一区二区三区喷汁尤物| 激情六月婷婷综合| 亚洲欧美在线视频| 制服丝袜中文字幕亚洲| 国产精品亚洲专一区二区三区 | 欧美激情一区二区三区在线| 色综合久久久久| 日韩精品视频网| 欧美国产成人精品| 欧美福利一区二区| www.99精品| 免播放器亚洲一区| 亚洲精品国久久99热| 日韩精品中文字幕在线一区| 91在线观看污| 久久精品国产99国产精品| 亚洲精品videosex极品| 精品国产1区2区3区| 91久久免费观看| 国产一区欧美二区| 日本最新不卡在线| 亚洲精品中文字幕在线观看| 日韩欧美国产一二三区| 91免费国产在线观看| 国内精品第一页| 日韩精彩视频在线观看| 亚洲天堂av一区| 国产日产欧美一区二区三区| 91精选在线观看| 91精品福利在线| 成人小视频免费观看| 另类的小说在线视频另类成人小视频在线 | 欧美精品v日韩精品v韩国精品v| 国产99精品国产| 六月丁香综合在线视频| 亚洲成人黄色小说| 亚洲伦理在线精品| 亚洲欧美一区二区在线观看| 久久久www免费人成精品| 欧美一区二区三区四区高清| 在线免费精品视频| 91久久免费观看| 91久久精品网| 91精品91久久久中77777| 成人激情校园春色| 盗摄精品av一区二区三区| 国产一区二三区| 国产一区二区三区最好精华液| 欧美a级一区二区| 轻轻草成人在线| 日本成人在线不卡视频| 青青国产91久久久久久| 亚洲图片一区二区| 亚洲一区二区三区在线看| 亚洲精选免费视频| 亚洲国产精品久久艾草纯爱 | 欧美国产一区视频在线观看| 久久亚洲综合色一区二区三区| 精品日韩欧美一区二区| 精品99999| 久久蜜桃香蕉精品一区二区三区| 欧美精品一区男女天堂| 欧美精品一区二区三区在线播放| 久久免费国产精品| 欧美国产禁国产网站cc| 亚洲欧美福利一区二区| 亚洲午夜日本在线观看| 天天综合天天综合色| 欧美aⅴ一区二区三区视频| 麻豆成人综合网| 国产成人丝袜美腿| 99精品欧美一区二区蜜桃免费 | 日韩视频一区二区三区在线播放| 日韩视频不卡中文| 欧美肥妇毛茸茸| 69堂亚洲精品首页| 欧美大度的电影原声| 久久综合999| 亚洲特级片在线| 亚洲一区二区三区在线看| 日本在线观看不卡视频| 久久99精品国产麻豆婷婷洗澡| 国产精品资源在线看| 波多野洁衣一区| 制服丝袜av成人在线看| 国产丝袜欧美中文另类| 一区二区视频免费在线观看| 视频一区视频二区中文字幕| 国产精品18久久久久久久久久久久| 成人动漫av在线| 在线播放中文一区| 国产欧美日韩激情| 天天综合日日夜夜精品| 国产成人精品网址| 欧美三级韩国三级日本一级| 久久综合九色综合欧美98| 一区二区三区在线看| 极品少妇xxxx精品少妇偷拍 | 久久久亚洲精品一区二区三区| 国产精品第四页| 婷婷综合另类小说色区| 国产99一区视频免费| 日韩一区二区三区在线| 国产精品成人免费在线| 精品在线免费观看| 欧美色倩网站大全免费| 欧美激情一区二区在线| 日韩精品91亚洲二区在线观看| 99v久久综合狠狠综合久久| 日韩亚洲欧美高清| 亚洲综合一区在线| 成年人国产精品| 精品成人a区在线观看| 午夜精品国产更新| 91香蕉视频mp4| 日本一区二区视频在线| 美女脱光内衣内裤视频久久网站 | 国产亚洲欧美日韩在线一区| 性欧美疯狂xxxxbbbb| 99国产精品一区| 久久久久久久综合色一本| 婷婷综合在线观看| 欧美日韩久久久一区| 自拍偷拍亚洲欧美日韩| 丁香一区二区三区| 久久久久9999亚洲精品| 九九视频精品免费| 69精品人人人人| 天堂影院一区二区| 欧美日韩一区二区不卡| 亚洲一二三级电影| 欧美三级乱人伦电影| 一区二区三区欧美视频| 91啪在线观看| 亚洲欧洲av色图| 99精品久久免费看蜜臀剧情介绍| 亚洲国产精品传媒在线观看| 国产寡妇亲子伦一区二区| 久久日韩精品一区二区五区| 国产精品一级片| 久久精品夜色噜噜亚洲a∨| 国产一区二区不卡老阿姨| 久久久久成人黄色影片|