# $FreeBSD$ #include # Needed for ifreq/ifmediareq #include #include #include INTERFACE etherswitch; # # Default implementation # CODE { static void null_etherswitch_lock(device_t dev) { } static void null_etherswitch_unlock(device_t dev) { } static int null_etherswitch_getconf(device_t dev, etherswitch_conf_t *conf) { return (0); } static int null_etherswitch_setconf(device_t dev, etherswitch_conf_t *conf) { return (0); } }; # # Return device info # METHOD etherswitch_info_t* getinfo { device_t dev; } # # Lock access to switch registers # METHOD void lock { device_t dev; } DEFAULT null_etherswitch_lock; # # Unlock access to switch registers # METHOD void unlock { device_t dev; } DEFAULT null_etherswitch_unlock; # # Read switch register # METHOD int readreg { device_t dev; int reg; }; # # Write switch register # METHOD int writereg { device_t dev; int reg; int value; }; # # Read PHY register # METHOD int readphyreg { device_t dev; int phy; int reg; }; # # Write PHY register # METHOD int writephyreg { device_t dev; int phy; int reg; int value; }; # # Get port configuration # METHOD int getport { device_t dev; etherswitch_port_t *vg; } # # Set port configuration # METHOD int setport { device_t dev; etherswitch_port_t *vg; } # # Get VLAN group configuration # METHOD int getvgroup { device_t dev; etherswitch_vlangroup_t *vg; } # # Set VLAN group configuration # METHOD int setvgroup { device_t dev; etherswitch_vlangroup_t *vg; } # # Get the Switch configuration # METHOD int getconf { device_t dev; etherswitch_conf_t *conf; } DEFAULT null_etherswitch_getconf; # # Set the Switch configuration # METHOD int setconf { device_t dev; etherswitch_conf_t *conf; } DEFAULT null_etherswitch_setconf;