ether: Port the Linux MII code
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 1 Nov 2017 15:09:17 +0000 (11:09 -0400)
committerBarret Rhoden <brho@cs.berkeley.edu>
Thu, 16 Nov 2017 15:46:55 +0000 (10:46 -0500)
Unfortunately, I had to comment out most of the file: all ethtool and ioctl
stuff.

Maybe the next step will be to port the ethtool interfaces.

Signed-off-by: Barret Rhoden <brho@cs.berkeley.edu>
kern/drivers/net/Kbuild
kern/drivers/net/linux_mii.c
kern/drivers/net/linux_mii.h
kern/drivers/net/linux_uapi_mii.h

index 6b57bb7..703dab6 100644 (file)
@@ -9,3 +9,4 @@ obj-y                                                   += ether8169.o
 obj-y                                                  += ether82563.o
 obj-y                                                  += ethermii.o
 obj-y                                                  += etherigbe.o
+obj-y                                                  += linux_mii.o
index a4abced..7eeaf40 100644 (file)
 
  */
 
-#include <linux/kernel.h>
-#include <linux/module.h>
-#include <linux/netdevice.h>
-#include <linux/ethtool.h>
-#include <linux/mii.h>
+#include "linux_mii.h"
 
 static uint32_t mii_get_an(struct mii_if_info *mii, uint16_t addr)
 {
@@ -42,6 +38,7 @@ static uint32_t mii_get_an(struct mii_if_info *mii, uint16_t addr)
        return mii_lpa_to_ethtool_lpa_t(advert);
 }
 
+#if 0 // AKAROS_PORT
 /**
  * mii_ethtool_gset - get settings that are specified in @ecmd
  * @mii: MII interface
@@ -416,6 +413,7 @@ int mii_ethtool_set_link_ksettings(struct mii_if_info *mii,
        }
        return 0;
 }
+#endif
 
 /**
  * mii_check_gmii_support - check if the MII supports Gb interfaces
@@ -571,6 +569,7 @@ unsigned int mii_check_media (struct mii_if_info *mii,
        return 0; /* duplex did not change */
 }
 
+#if 0 // AKAROS_PORT
 /**
  * generic_mii_ioctl - main MII ioctl interface
  * @mii_if: the MII interface
@@ -649,19 +648,4 @@ int generic_mii_ioctl(struct mii_if_info *mii_if,
 
        return rc;
 }
-
-MODULE_AUTHOR ("Jeff Garzik <jgarzik@pobox.com>");
-MODULE_DESCRIPTION ("MII hardware support library");
-MODULE_LICENSE("GPL");
-
-EXPORT_SYMBOL(mii_link_ok);
-EXPORT_SYMBOL(mii_nway_restart);
-EXPORT_SYMBOL(mii_ethtool_gset);
-EXPORT_SYMBOL(mii_ethtool_get_link_ksettings);
-EXPORT_SYMBOL(mii_ethtool_sset);
-EXPORT_SYMBOL(mii_ethtool_set_link_ksettings);
-EXPORT_SYMBOL(mii_check_link);
-EXPORT_SYMBOL(mii_check_media);
-EXPORT_SYMBOL(mii_check_gmii_support);
-EXPORT_SYMBOL(generic_mii_ioctl);
-
+#endif
index 6ef6e8e..f0fced8 100644 (file)
@@ -4,12 +4,10 @@
  *
  * Copyright (C) 1996, 1999, 2001 David S. Miller (davem@redhat.com)
  */
-#ifndef __LINUX_MII_H__
-#define __LINUX_MII_H__
 
+#pragma once
 
-#include <linux/if.h>
-#include <uapi/linux/mii.h>
+#include "linux_uapi_mii.h"
 
 struct ethtool_cmd;
 
@@ -31,12 +29,14 @@ struct mii_if_info {
 
 extern int mii_link_ok (struct mii_if_info *mii);
 extern int mii_nway_restart (struct mii_if_info *mii);
+#if 0 // AKAROS_PORT
 extern int mii_ethtool_gset(struct mii_if_info *mii, struct ethtool_cmd *ecmd);
 extern void mii_ethtool_get_link_ksettings(
        struct mii_if_info *mii, struct ethtool_link_ksettings *cmd);
 extern int mii_ethtool_sset(struct mii_if_info *mii, struct ethtool_cmd *ecmd);
 extern int mii_ethtool_set_link_ksettings(
        struct mii_if_info *mii, const struct ethtool_link_ksettings *cmd);
+#endif
 extern int mii_check_gmii_support(struct mii_if_info *mii);
 extern void mii_check_link (struct mii_if_info *mii);
 extern unsigned int mii_check_media (struct mii_if_info *mii,
@@ -47,10 +47,12 @@ extern int generic_mii_ioctl(struct mii_if_info *mii_if,
                             unsigned int *duplex_changed);
 
 
+#if 0 // AKAROS_PORT
 static inline struct mii_ioctl_data *if_mii(struct ifreq *rq)
 {
        return (struct mii_ioctl_data *) &rq->ifr_ifru;
 }
+#endif
 
 /**
  * mii_nway_result
@@ -341,5 +343,3 @@ static inline uint8_t mii_resolve_flowctrl_fdx(uint16_t lcladv,
 
        return cap;
 }
-
-#endif /* __LINUX_MII_H__ */
index beca9fe..663ece9 100644 (file)
@@ -5,11 +5,9 @@
  * Copyright (C) 1996, 1999, 2001 David S. Miller (davem@redhat.com)
  */
 
-#ifndef _UAPI__LINUX_MII_H__
-#define _UAPI__LINUX_MII_H__
+#pragma once
 
-#include <linux/types.h>
-#include <linux/ethtool.h>
+#include <linux_compat.h>
 
 /* Generic MII registers. */
 #define MII_BMCR               0x00    /* Basic mode control register */
@@ -158,5 +156,3 @@ struct mii_ioctl_data {
        uint16_t                val_in;
        uint16_t                val_out;
 };
-
-#endif /* _UAPI__LINUX_MII_H__ */