master/debug.c
branchstable-1.1
changeset 1732 1cc865ba17c2
parent 294 feea8d850c65
child 1744 7bc131b92039
equal deleted inserted replaced
1731:60b2aad9d40b 1732:1cc865ba17c2
    47 /*****************************************************************************/
    47 /*****************************************************************************/
    48 
    48 
    49 // net_device functions
    49 // net_device functions
    50 int ec_dbgdev_open(struct net_device *);
    50 int ec_dbgdev_open(struct net_device *);
    51 int ec_dbgdev_stop(struct net_device *);
    51 int ec_dbgdev_stop(struct net_device *);
       
    52 int ec_dbgdev_tx(struct sk_buff *, struct net_device *);
    52 struct net_device_stats *ec_dbgdev_stats(struct net_device *);
    53 struct net_device_stats *ec_dbgdev_stats(struct net_device *);
    53 
    54 
    54 /*****************************************************************************/
    55 /*****************************************************************************/
    55 
    56 
    56 /**
    57 /**
    72     }
    73     }
    73 
    74 
    74     // initialize net_device
    75     // initialize net_device
    75     dbg->dev->open = ec_dbgdev_open;
    76     dbg->dev->open = ec_dbgdev_open;
    76     dbg->dev->stop = ec_dbgdev_stop;
    77     dbg->dev->stop = ec_dbgdev_stop;
       
    78     dbg->dev->hard_start_xmit = ec_dbgdev_tx;
    77     dbg->dev->get_stats = ec_dbgdev_stats;
    79     dbg->dev->get_stats = ec_dbgdev_stats;
    78 
    80 
    79     // initialize private data
    81     // initialize private data
    80     *((ec_debug_t **) netdev_priv(dbg->dev)) = dbg;
    82     *((ec_debug_t **) netdev_priv(dbg->dev)) = dbg;
    81 
    83 
   154 
   156 
   155 int ec_dbgdev_open(struct net_device *dev /**< debug net_device */)
   157 int ec_dbgdev_open(struct net_device *dev /**< debug net_device */)
   156 {
   158 {
   157     ec_debug_t *dbg = *((ec_debug_t **) netdev_priv(dev));
   159     ec_debug_t *dbg = *((ec_debug_t **) netdev_priv(dev));
   158     dbg->opened = 1;
   160     dbg->opened = 1;
   159     EC_INFO("debug interface %s opened.\n", dev->name);
   161     EC_INFO("Debug interface %s opened.\n", dev->name);
   160     return 0;
   162     return 0;
   161 }
   163 }
   162 
   164 
   163 /*****************************************************************************/
   165 /*****************************************************************************/
   164 
   166 
   168 
   170 
   169 int ec_dbgdev_stop(struct net_device *dev /**< debug net_device */)
   171 int ec_dbgdev_stop(struct net_device *dev /**< debug net_device */)
   170 {
   172 {
   171     ec_debug_t *dbg = *((ec_debug_t **) netdev_priv(dev));
   173     ec_debug_t *dbg = *((ec_debug_t **) netdev_priv(dev));
   172     dbg->opened = 0;
   174     dbg->opened = 0;
   173     EC_INFO("debug interface %s stopped.\n", dev->name);
   175     EC_INFO("Debug interface %s stopped.\n", dev->name);
       
   176     return 0;
       
   177 }
       
   178 
       
   179 /*****************************************************************************/
       
   180 
       
   181 /**
       
   182    Transmits data via the virtual network device.
       
   183 */
       
   184 
       
   185 int ec_dbgdev_tx(struct sk_buff *skb, /**< transmit socket buffer */
       
   186                  struct net_device *dev /**< EoE net_device */
       
   187                  )
       
   188 {
       
   189     ec_debug_t *dbg = *((ec_debug_t **) netdev_priv(dev));
       
   190 
       
   191     dev_kfree_skb(skb);
       
   192     dbg->stats.tx_dropped++;
   174     return 0;
   193     return 0;
   175 }
   194 }
   176 
   195 
   177 /*****************************************************************************/
   196 /*****************************************************************************/
   178 
   197