equal
deleted
inserted
replaced
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 |