X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/a662d5b130a558956875dbe259c551b632abb0f4..5e10b16d95550d4656d8b594f3cbb6a3892db688:/package/swconfig/src/swlib.h diff --git a/package/swconfig/src/swlib.h b/package/swconfig/src/swlib.h index e00ff47a5..2c2fccd39 100644 --- a/package/swconfig/src/swlib.h +++ b/package/swconfig/src/swlib.h @@ -1,7 +1,7 @@ /* * swlib.h: Switch configuration API (user space part) * - * Copyright (C) 2008 Felix Fietkau + * Copyright (C) 2008-2009 Felix Fietkau * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License @@ -110,6 +110,7 @@ struct switch_dev; struct switch_attr; struct switch_port; struct switch_val; +struct uci_package; struct switch_dev { int id; @@ -117,6 +118,7 @@ struct switch_dev { const char *dev_name; int ports; int vlans; + int cpu_port; struct switch_attr *ops; struct switch_attr *port_ops; struct switch_attr *vlan_ops; @@ -199,6 +201,17 @@ struct switch_attr *swlib_lookup_attr(struct switch_dev *dev, int swlib_set_attr(struct switch_dev *dev, struct switch_attr *attr, struct switch_val *val); +/** + * swlib_set_attr_string: set the value for an attribute with type conversion + * @dev: switch device struct + * @attr: switch attribute struct + * @port_vlan: port or vlan (if applicable) + * @str: string value + * returns 0 on success + */ +int swlib_set_attr_string(struct switch_dev *dev, struct switch_attr *attr, + int port_vlan, const char *str); + /** * swlib_get_attr: get the value for an attribute * @dev: switch device struct @@ -210,4 +223,11 @@ int swlib_set_attr(struct switch_dev *dev, struct switch_attr *attr, int swlib_get_attr(struct switch_dev *dev, struct switch_attr *attr, struct switch_val *val); +/** + * swlib_apply_from_uci: set up the switch from a uci configuration + * @dev: switch device struct + * @p: uci package which contains the desired global config + */ +int swlib_apply_from_uci(struct switch_dev *dev, struct uci_package *p); + #endif