The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/etherswitch/etherswitch_if.m

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 # $FreeBSD$
    2 
    3 #include <sys/bus.h>
    4 
    5 # Needed for ifreq/ifmediareq
    6 #include <sys/socket.h>
    7 #include <net/if.h>
    8 
    9 #include <dev/etherswitch/etherswitch.h>
   10 
   11 INTERFACE etherswitch;
   12 
   13 #
   14 # Default implementation
   15 #
   16 CODE {
   17         static void
   18         null_etherswitch_lock(device_t dev)
   19         {
   20         }
   21 
   22         static void
   23         null_etherswitch_unlock(device_t dev)
   24         {
   25         }
   26 
   27         static int
   28         null_etherswitch_getconf(device_t dev, etherswitch_conf_t *conf)
   29         {
   30                 return (0);
   31         }
   32 
   33         static int
   34         null_etherswitch_setconf(device_t dev, etherswitch_conf_t *conf)
   35         {
   36                 return (0);
   37         }
   38 
   39         static int
   40         null_etherswitch_flush_all(device_t dev)
   41         {
   42 
   43                 return (ENXIO);
   44         }
   45 
   46         static int
   47         null_etherswitch_flush_port(device_t dev, int port)
   48         {
   49 
   50                 return (ENXIO);
   51         }
   52 
   53         static int
   54         null_etherswitch_flush_mac(device_t dev,
   55             etherswitch_atu_flush_macentry_t *e)
   56         {
   57 
   58                 return (ENXIO);
   59         }
   60 
   61         static int
   62         null_etherswitch_fetch_table(device_t dev,
   63             etherswitch_atu_table_t *table)
   64         {
   65 
   66                 table->es_nitems = 0;
   67                 return (ENXIO);
   68         }
   69 
   70         static int
   71         null_etherswitch_fetch_entry(device_t dev,
   72             etherswitch_atu_entry_t *e)
   73         {
   74 
   75                 return (ENXIO);
   76         }
   77 };
   78 
   79 #
   80 # Return device info
   81 #
   82 METHOD etherswitch_info_t* getinfo {
   83         device_t        dev;
   84 }
   85 
   86 #
   87 # Lock access to switch registers
   88 #
   89 METHOD void lock {
   90         device_t        dev;
   91 } DEFAULT null_etherswitch_lock;
   92 
   93 #
   94 # Unlock access to switch registers
   95 #
   96 METHOD void unlock {
   97         device_t        dev;
   98 } DEFAULT null_etherswitch_unlock;
   99 
  100 #
  101 # Read switch register
  102 #
  103 METHOD int readreg {
  104         device_t        dev;
  105         int             reg;
  106 };
  107 
  108 #
  109 # Write switch register
  110 #
  111 METHOD int writereg {
  112         device_t        dev;
  113         int             reg;
  114         int             value;
  115 };
  116 
  117 #
  118 # Read PHY register
  119 #
  120 METHOD int readphyreg {
  121         device_t        dev;
  122         int             phy;
  123         int             reg;
  124 };
  125 
  126 #
  127 # Write PHY register
  128 #
  129 METHOD int writephyreg {
  130         device_t        dev;
  131         int             phy;
  132         int             reg;
  133         int             value;
  134 };
  135 
  136 #
  137 # Get port configuration
  138 #
  139 METHOD int getport {
  140         device_t        dev;
  141         etherswitch_port_t *vg;
  142 }
  143 
  144 #
  145 # Set port configuration
  146 #
  147 METHOD int setport {
  148         device_t        dev;
  149         etherswitch_port_t *vg;
  150 }
  151 
  152 #
  153 # Get VLAN group configuration
  154 #
  155 METHOD int getvgroup {
  156         device_t        dev;
  157         etherswitch_vlangroup_t *vg;
  158 }
  159 
  160 #
  161 # Set VLAN group configuration
  162 #
  163 METHOD int setvgroup {
  164         device_t        dev;
  165         etherswitch_vlangroup_t *vg;
  166 }
  167 
  168 #
  169 # Get the Switch configuration
  170 #
  171 METHOD int getconf {
  172         device_t        dev;
  173         etherswitch_conf_t      *conf;
  174 } DEFAULT null_etherswitch_getconf;
  175 
  176 #
  177 # Set the Switch configuration
  178 #
  179 METHOD int setconf {
  180         device_t        dev;
  181         etherswitch_conf_t      *conf;
  182 } DEFAULT null_etherswitch_setconf;
  183 
  184 #
  185 # Flush all of the programmed/learnt MAC addresses
  186 #
  187 METHOD int flush_all {
  188         device_t dev;
  189 } DEFAULT null_etherswitch_flush_all;
  190 
  191 #
  192 # Flush a single MAC address entry
  193 #
  194 METHOD int flush_mac {
  195         device_t dev;
  196         etherswitch_atu_flush_macentry_t *entry;
  197 } DEFAULT null_etherswitch_flush_mac;
  198 
  199 #
  200 # Flush all of the dynamic MAC addresses on a given port
  201 #
  202 METHOD int flush_port {
  203         device_t dev;
  204         int port;
  205 } DEFAULT null_etherswitch_flush_port;
  206 
  207 #
  208 # Fetch the address table from the ethernet switch.
  209 #
  210 METHOD int fetch_table {
  211         device_t dev;
  212         etherswitch_atu_table_t *table;
  213 } DEFAULT null_etherswitch_fetch_table;
  214 
  215 #
  216 # Fetch a single entry from the ethernet switch table.
  217 #
  218 METHOD int fetch_table_entry {
  219         device_t dev;
  220         etherswitch_atu_entry_t *entry;
  221 } DEFAULT null_etherswitch_fetch_entry;

Cache object: 90fbd63a9a5649736b27cb9ce78461dd


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.