The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

Распечатка 5.7 Функции приёма и передачи

Распечатка 5.7 Функции приёма и передачи

Предыдущая  Содержание  Следующая V*D*V

Распечатка 5.7.

 

void LXNWIsr(int irq, void *id, struct pt_regs *regs)

{

  struct net_device *dev = id;

 

  switch (READ_INTERRUPT_CONDITION())

  {

    case TX_EVENT:

      netif_wake_queue(dev);

      break;

    case RX_Event:

      LXHWReceive(nCS);

      break;

  }

}

 

int LXNWSendPacket(struct sk_buff *skb, struct net_device *dev)

{

  /* Запрещаем прерывание, так как это может вызвать программное

   * прерывание

   */

  disable_irq(dev->irq);

  netif_stop_queue(dev);

  FILL_TX_NW(skb);

  enable_irq(dev->irq);

  dev_kfree_skb(skb);

 

  return 0;

}

 

void LXHWReceive(struct net_device *dev)

{

  struct sk_buff *skb;

 

  /*

   * После получения длины фрейма выделяем память для skb 

   */

  skb = dev_alloc_skb(READ_RX_LEN + 2);

 

  /* Это выполняется для выравнивания по границе 16 байт */

  skb_reserve(skb,2);

 

  skb->dev = dev;

  READ_RX_NW(skb);

  skb->protocol = eth_type_trans(skb,dev);

  netif_rx(skb);

}

 

Предыдущая  Содержание  Следующая