summaryrefslogtreecommitdiffstats
path: root/include/param.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/param.h')
-rw-r--r--include/param.h66
1 files changed, 51 insertions, 15 deletions
diff --git a/include/param.h b/include/param.h
index 3a585cd193..4af2d09c4c 100644
--- a/include/param.h
+++ b/include/param.h
@@ -15,6 +15,8 @@ struct param_d {
unsigned int flags;
char *name;
char *value;
+ struct device_d *dev;
+ void *driver_priv;
struct list_head list;
};
@@ -28,18 +30,33 @@ int dev_add_param(struct device_d *dev, const char *name,
const char *(*get)(struct device_d *, struct param_d *p),
unsigned long flags);
+struct param_d *dev_add_param_int(struct device_d *dev, const char *name,
+ int (*set)(struct param_d *p, void *priv),
+ int (*get)(struct param_d *p, void *priv),
+ int *value, const char *format, void *priv);
+
+struct param_d *dev_add_param_bool(struct device_d *dev, const char *name,
+ int (*set)(struct param_d *p, void *priv),
+ int (*get)(struct param_d *p, void *priv),
+ int *value, void *priv);
+
+struct param_d *dev_add_param_int_ro(struct device_d *dev, const char *name,
+ int value, const char *format);
+
+struct param_d *dev_add_param_ip(struct device_d *dev, const char *name,
+ int (*set)(struct param_d *p, void *priv),
+ int (*get)(struct param_d *p, void *priv),
+ IPaddr_t *ip, void *priv);
+
int dev_add_param_fixed(struct device_d *dev, char *name, char *value);
-void dev_remove_param(struct device_d *dev, char *name);
+void dev_remove_param(struct param_d *p);
void dev_remove_parameters(struct device_d *dev);
int dev_param_set_generic(struct device_d *dev, struct param_d *p,
const char *val);
-/* Convenience functions to handle a parameter as an ip address */
-int dev_set_param_ip(struct device_d *dev, char *name, IPaddr_t ip);
-IPaddr_t dev_get_param_ip(struct device_d *dev, char *name);
#else
static inline const char *dev_get_param(struct device_d *dev, const char *name)
{
@@ -64,31 +81,50 @@ static inline int dev_add_param(struct device_d *dev, char *name,
return 0;
}
-static inline int dev_add_param_fixed(struct device_d *dev, char *name, char *value)
+static inline struct param_d *dev_add_param_int(struct device_d *dev, const char *name,
+ int (*set)(struct param_d *p, void *priv),
+ int (*get)(struct param_d *p, void *priv),
+ int *value, const char *format, void *priv)
{
- return 0;
+ return NULL;
}
-static inline void dev_remove_param(struct device_d *dev, char *name) {}
+static inline struct param_d *dev_add_param_bool(struct device_d *dev, const char *name,
+ int (*set)(struct param_d *p, void *priv),
+ int (*get)(struct param_d *p, void *priv),
+ int *value, void *priv)
+{
+ return NULL;
+}
-static inline void dev_remove_parameters(struct device_d *dev) {}
+static inline struct param_d *dev_add_param_int_ro(struct device_d *dev, const char *name,
+ int value, const char *format)
+{
+ return NULL;
+}
-static inline int dev_param_set_generic(struct device_d *dev, struct param_d *p,
- const char *val)
+static inline struct param_d *dev_add_param_ip(struct device_d *dev, const char *name,
+ int (*set)(struct param_d *p, void *priv),
+ int (*get)(struct param_d *p, void *priv),
+ IPaddr_t *ip, void *priv)
{
- return 0;
+ return NULL;
}
-/* Convenience functions to handle a parameter as an ip address */
-static inline int dev_set_param_ip(struct device_d *dev, char *name, IPaddr_t ip)
+static inline int dev_add_param_fixed(struct device_d *dev, char *name, char *value)
{
return 0;
}
-static inline IPaddr_t dev_get_param_ip(struct device_d *dev, char *name)
+
+static inline void dev_remove_param(struct param_d *p) {}
+
+static inline void dev_remove_parameters(struct device_d *dev) {}
+
+static inline int dev_param_set_generic(struct device_d *dev, struct param_d *p,
+ const char *val)
{
return 0;
}
#endif
#endif /* PARAM_H */
-