madwifi: fix various noderef/memleak issues
[openwrt-10.03/.git] / package / swconfig / src / swlib.h
index e00ff47a51d3d943eefc1202c074d6cf93411fe0..b3c6769de19831711cae92090f8c6aeb64c4b89e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * swlib.h: Switch configuration API (user space part)
  *
- * Copyright (C) 2008 Felix Fietkau <nbd@openwrt.org>
+ * Copyright (C) 2008-2009 Felix Fietkau <nbd@openwrt.org>
  *
  * 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;
@@ -199,6 +200,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 +222,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