freebsd-dev/sys/dev/etherswitch/etherswitch_if.m
Adrian Chadd a48a9355ef Add the ability to change the vlan operation mode.
This adds a vlan capability field to etherswitch_info structure and some
definitions of ports flags.

It adds the support to global config parameters which right now is used
only to switch between the vlan modes, but it is intended to be extended
to support the setup of others parameters (STP, mirror, etc.).

Submitted by:	Luiz Otavio O Souza <loos.br@gmail.com>
Reviewed by:	ray
2013-05-08 20:46:54 +00:00

144 lines
1.8 KiB
Objective-C

# $FreeBSD$
#include <sys/bus.h>
# Needed for ifreq/ifmediareq
#include <sys/socket.h>
#include <net/if.h>
#include <dev/etherswitch/etherswitch.h>
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;