|
@@ -89,67 +89,6 @@
|
|
|
#include "et131x.h"
|
|
|
|
|
|
struct net_device_stats *et131x_stats(struct net_device *netdev);
|
|
|
-int et131x_open(struct net_device *netdev);
|
|
|
-int et131x_close(struct net_device *netdev);
|
|
|
-int et131x_ioctl(struct net_device *netdev, struct ifreq *reqbuf, int cmd);
|
|
|
-void et131x_multicast(struct net_device *netdev);
|
|
|
-int et131x_tx(struct sk_buff *skb, struct net_device *netdev);
|
|
|
-void et131x_tx_timeout(struct net_device *netdev);
|
|
|
-int et131x_change_mtu(struct net_device *netdev, int new_mtu);
|
|
|
-int et131x_set_mac_addr(struct net_device *netdev, void *new_mac);
|
|
|
-void et131x_vlan_rx_register(struct net_device *netdev, struct vlan_group *grp);
|
|
|
-void et131x_vlan_rx_add_vid(struct net_device *netdev, uint16_t vid);
|
|
|
-void et131x_vlan_rx_kill_vid(struct net_device *netdev, uint16_t vid);
|
|
|
-
|
|
|
-static const struct net_device_ops et131x_netdev_ops = {
|
|
|
- .ndo_open = et131x_open,
|
|
|
- .ndo_stop = et131x_close,
|
|
|
- .ndo_start_xmit = et131x_tx,
|
|
|
- .ndo_set_multicast_list = et131x_multicast,
|
|
|
- .ndo_tx_timeout = et131x_tx_timeout,
|
|
|
- .ndo_change_mtu = et131x_change_mtu,
|
|
|
- .ndo_set_mac_address = et131x_set_mac_addr,
|
|
|
- .ndo_validate_addr = eth_validate_addr,
|
|
|
- .ndo_get_stats = et131x_stats,
|
|
|
- .ndo_do_ioctl = et131x_ioctl,
|
|
|
-};
|
|
|
-
|
|
|
-/**
|
|
|
- * et131x_device_alloc
|
|
|
- *
|
|
|
- * Returns pointer to the allocated and initialized net_device struct for
|
|
|
- * this device.
|
|
|
- *
|
|
|
- * Create instances of net_device and wl_private for the new adapter and
|
|
|
- * register the device's entry points in the net_device structure.
|
|
|
- */
|
|
|
-struct net_device *et131x_device_alloc(void)
|
|
|
-{
|
|
|
- struct net_device *netdev;
|
|
|
-
|
|
|
- /* Alloc net_device and adapter structs */
|
|
|
- netdev = alloc_etherdev(sizeof(struct et131x_adapter));
|
|
|
-
|
|
|
- if (netdev == NULL) {
|
|
|
- printk(KERN_ERR "et131x: Alloc of net_device struct failed\n");
|
|
|
- return NULL;
|
|
|
- }
|
|
|
-
|
|
|
- /* Setup the function registration table (and other data) for a
|
|
|
- * net_device
|
|
|
- */
|
|
|
- /* netdev->init = &et131x_init; */
|
|
|
- /* netdev->set_config = &et131x_config; */
|
|
|
- netdev->watchdog_timeo = ET131X_TX_TIMEOUT;
|
|
|
- netdev->netdev_ops = &et131x_netdev_ops;
|
|
|
-
|
|
|
- /* netdev->ethtool_ops = &et131x_ethtool_ops; */
|
|
|
-
|
|
|
- /* Poll? */
|
|
|
- /* netdev->poll = &et131x_poll; */
|
|
|
- /* netdev->poll_controller = &et131x_poll_controller; */
|
|
|
- return netdev;
|
|
|
-}
|
|
|
|
|
|
/**
|
|
|
* et131x_stats - Return the current device statistics.
|
|
@@ -702,3 +641,54 @@ int et131x_set_mac_addr(struct net_device *netdev, void *new_mac)
|
|
|
netif_wake_queue(netdev);
|
|
|
return result;
|
|
|
}
|
|
|
+
|
|
|
+static const struct net_device_ops et131x_netdev_ops = {
|
|
|
+ .ndo_open = et131x_open,
|
|
|
+ .ndo_stop = et131x_close,
|
|
|
+ .ndo_start_xmit = et131x_tx,
|
|
|
+ .ndo_set_multicast_list = et131x_multicast,
|
|
|
+ .ndo_tx_timeout = et131x_tx_timeout,
|
|
|
+ .ndo_change_mtu = et131x_change_mtu,
|
|
|
+ .ndo_set_mac_address = et131x_set_mac_addr,
|
|
|
+ .ndo_validate_addr = eth_validate_addr,
|
|
|
+ .ndo_get_stats = et131x_stats,
|
|
|
+ .ndo_do_ioctl = et131x_ioctl,
|
|
|
+};
|
|
|
+
|
|
|
+/**
|
|
|
+ * et131x_device_alloc
|
|
|
+ *
|
|
|
+ * Returns pointer to the allocated and initialized net_device struct for
|
|
|
+ * this device.
|
|
|
+ *
|
|
|
+ * Create instances of net_device and wl_private for the new adapter and
|
|
|
+ * register the device's entry points in the net_device structure.
|
|
|
+ */
|
|
|
+struct net_device *et131x_device_alloc(void)
|
|
|
+{
|
|
|
+ struct net_device *netdev;
|
|
|
+
|
|
|
+ /* Alloc net_device and adapter structs */
|
|
|
+ netdev = alloc_etherdev(sizeof(struct et131x_adapter));
|
|
|
+
|
|
|
+ if (netdev == NULL) {
|
|
|
+ printk(KERN_ERR "et131x: Alloc of net_device struct failed\n");
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+
|
|
|
+ /* Setup the function registration table (and other data) for a
|
|
|
+ * net_device
|
|
|
+ */
|
|
|
+ /* netdev->init = &et131x_init; */
|
|
|
+ /* netdev->set_config = &et131x_config; */
|
|
|
+ netdev->watchdog_timeo = ET131X_TX_TIMEOUT;
|
|
|
+ netdev->netdev_ops = &et131x_netdev_ops;
|
|
|
+
|
|
|
+ /* netdev->ethtool_ops = &et131x_ethtool_ops; */
|
|
|
+
|
|
|
+ /* Poll? */
|
|
|
+ /* netdev->poll = &et131x_poll; */
|
|
|
+ /* netdev->poll_controller = &et131x_poll_controller; */
|
|
|
+ return netdev;
|
|
|
+}
|
|
|
+
|