304e13439b
* add lock/unlock methods; * add lock/unlock default implementation; * surround switch IOCTLs with locking; * add lock/unlock implementation for arswitch; Submitted by: Luiz Otavio O Souza Approved by: adrian (mentor)
116 lines
1.4 KiB
Objective-C
116 lines
1.4 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)
|
|
{
|
|
}
|
|
};
|
|
|
|
#
|
|
# 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;
|
|
}
|