summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-02-14 12:36:13 +0000
committerhauke <hauke@3c298f89-4303-0410-b956-a3cf2f4a3e73>2013-02-14 12:36:13 +0000
commit03eaf681abe52e6ea4bf52670f0a69baceb30245 (patch)
treece9c9bcfeb6f820d2ae41bdd95f23149279e62ce
parentcc66ec01bb6b7ff587c5d50fe3b3f160a81ccca4 (diff)
switch: export cpuport, ports and vlans via /proc
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@35595 3c298f89-4303-0410-b956-a3cf2f4a3e73
-rw-r--r--package/switch/src/switch-core.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/package/switch/src/switch-core.c b/package/switch/src/switch-core.c
index c77e4bba47..ab0754c94a 100644
--- a/package/switch/src/switch-core.c
+++ b/package/switch/src/switch-core.c
@@ -138,6 +138,24 @@ static int handle_driver_version(void *driver, char *buf, int nr)
return sprintf(buf, "%s\n", version);
}
+static int handle_driver_cpuport(void *driver, char *buf, int nr)
+{
+ int cpuport = ((switch_driver *) driver)->cpuport;
+ return sprintf(buf, "%i\n", cpuport);
+}
+
+static int handle_driver_ports(void *driver, char *buf, int nr)
+{
+ int ports = ((switch_driver *) driver)->ports;
+ return sprintf(buf, "%i\n", ports);
+}
+
+static int handle_driver_vlans(void *driver, char *buf, int nr)
+{
+ int vlans = ((switch_driver *) driver)->vlans;
+ return sprintf(buf, "%i\n", vlans);
+}
+
static void add_handler(switch_driver *driver, const switch_config *handler, struct proc_dir_entry *parent, int nr)
{
switch_priv *priv = (switch_priv *) driver->data;
@@ -221,6 +239,9 @@ static void do_unregister(switch_driver *driver)
switch_config global_driver_handlers[] = {
{"driver", handle_driver_name, NULL},
{"version", handle_driver_version, NULL},
+ {"cpuport", handle_driver_cpuport, NULL},
+ {"ports", handle_driver_ports, NULL},
+ {"vlans", handle_driver_vlans, NULL},
{NULL, NULL, NULL}
};