X-Git-Url: http://git.rohieb.name/openwrt.git/blobdiff_plain/93a20dc6623973cf34db1f98bc014b3abc2b154d..c38001add97ad383f68f37d5d1ad7bbfd77af0c6:/target/linux/package/switch/src/switch-core.h diff --git a/target/linux/package/switch/src/switch-core.h b/target/linux/package/switch/src/switch-core.h index 9927e8519..a6621eed2 100644 --- a/target/linux/package/switch/src/switch-core.h +++ b/target/linux/package/switch/src/switch-core.h @@ -17,27 +17,34 @@ #define LINUX_2_4 #endif -typedef int (*switch_handler)(char *buf, int nr); +typedef int (*switch_handler)(void *driver, char *buf, int nr); typedef struct { char *name; switch_handler read, write; } switch_config; - typedef struct { struct list_head list; char *name; + char *version; + char *interface; + int cpuport; int ports; int vlans; switch_config *driver_handlers, *port_handlers, *vlan_handlers; void *data; + void *priv; } switch_driver; +typedef struct { + u32 port, untag, pvid; +} switch_vlan_config; + extern int switch_register_driver(switch_driver *driver); extern void switch_unregister_driver(char *name); -extern int switch_parse_vlan(char *buf); +extern switch_vlan_config *switch_parse_vlan(switch_driver *driver, char *buf); extern int switch_parse_media(char *buf); extern int switch_print_media(char *buf, int media);