* enable_vlan: "0", "1"
* port/<port-number>/
* enabled: "0", "1"
- * media: "AUTO", "100FD", "100HD", "10FD", "10HD"
+ * media: "AUTO", "1000FD", "1000HD", "100FD", "100HD", "10FD", "10HD"
* vlan/<port-number>/
* ports: same syntax as for nvram's vlan*ports (eg. "1 2 3 4 5*")
*/
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 int handle_driver_dev_name(void *driver, char *buf, int nr)
+{
+ char *dev_name = ((switch_driver *) driver)->dev_name;
+ return sprintf(buf, "%s\n", dev_name);
+}
+
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;
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},
+ {"dev_name", handle_driver_dev_name, NULL},
{NULL, NULL, NULL}
};
if (strncmp(str, "AUTO", 4) == 0)
return SWITCH_MEDIA_AUTO;
+ else if (strncmp(str, "1000FD", 6) == 0)
+ return SWITCH_MEDIA_1000 | SWITCH_MEDIA_FD;
+ else if (strncmp(str, "1000HD", 6) == 0)
+ return SWITCH_MEDIA_1000;
else if (strncmp(str, "100FD", 5) == 0)
return SWITCH_MEDIA_100 | SWITCH_MEDIA_FD;
else if (strncmp(str, "100HD", 5) == 0)
if (media & SWITCH_MEDIA_AUTO)
len = sprintf(buf, "Auto");
+ else if (media == (SWITCH_MEDIA_1000 | SWITCH_MEDIA_FD))
+ len = sprintf(buf, "1000FD");
+ else if (media == SWITCH_MEDIA_1000)
+ len = sprintf(buf, "1000HD");
else if (media == (SWITCH_MEDIA_100 | SWITCH_MEDIA_FD))
len = sprintf(buf, "100FD");
else if (media == SWITCH_MEDIA_100)
- len = sprintf(buf, "100HD");
+ len = sprintf(buf, "100HD");
else if (media == SWITCH_MEDIA_FD)
- len = sprintf(buf, "10FD");
+ len = sprintf(buf, "10FD");
else if (media == 0)
- len = sprintf(buf, "10HD");
+ len = sprintf(buf, "10HD");
else
len = sprintf(buf, "Invalid");
switch_vlan_config *c;
int j, u, p, s;
- c = kmalloc(sizeof(switch_vlan_config), GFP_KERNEL);
+ c = kzalloc(sizeof(switch_vlan_config), GFP_KERNEL);
if (!c)
return NULL;
- memset(c, 0, sizeof(switch_vlan_config));
while (isspace(*buf)) buf++;
j = 0;
while (isspace(*buf)) buf++;
}
- if (*buf != 0) return NULL;
+ if (*buf != 0) {
+ kfree(c);
+ return NULL;
+ }
c->port &= (1 << driver->ports) - 1;
c->untag &= (1 << driver->ports) - 1;