diff options
author | Sascha Hauer <s.hauer@pengutronix.de> | 2007-07-05 18:01:25 +0200 |
---|---|---|
committer | Sascha Hauer <sha@octopus.labnet.pengutronix.de> | 2007-07-05 18:01:25 +0200 |
commit | a0b0cfc5ed9759a50aefc264c7490b19d617d12b (patch) | |
tree | ad31938638788dd77bc56bad43987f5ea3203693 /include/driver.h | |
parent | 55ebf67d3ec2b0727f86a54157a2740e9e8472c3 (diff) | |
download | barebox-a0b0cfc5ed9759a50aefc264c7490b19d617d12b.tar.gz barebox-a0b0cfc5ed9759a50aefc264c7490b19d617d12b.tar.xz |
svn_rev_121
implement device parameters
Diffstat (limited to 'include/driver.h')
-rw-r--r-- | include/driver.h | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/include/driver.h b/include/driver.h index 848f844ec2..e8d185b016 100644 --- a/include/driver.h +++ b/include/driver.h @@ -6,7 +6,13 @@ #define MAP_READ 1 #define MAP_WRITE 2 -struct memarea_info; +struct param_d { + char *(*get)(struct device_d *, ulong cookie); + int (*set)(struct device_d *, ulong cookie, char *val); + char *name; + ulong cookie; + struct param_d *next; +}; #define DEVICE_TYPE_UNKNOWN 0 #define DEVICE_TYPE_ETHER 1 @@ -33,6 +39,8 @@ struct device_d { struct device_d *next; unsigned long type; + + struct param_d *param; }; struct driver_d { @@ -48,6 +56,9 @@ struct driver_d { void (*info) (struct device_d *); void (*shortinfo) (struct device_d *); + struct param_d* (*get) (struct device_d*, int no); + int (*set) (struct device_d*, struct param_d *, char *val); + unsigned long type; void *type_data; }; @@ -65,6 +76,10 @@ struct device_d *get_device_by_name(char *name); ssize_t read(struct device_d *dev, void *buf, size_t count, ulong offset, ulong flags); ssize_t write(struct device_d *dev, void *buf, size_t count, ulong offset, ulong flags); ssize_t erase(struct device_d *dev, size_t count, unsigned long offset); +char *dev_get_param(struct device_d *dev, char *name); +int dev_set_param(struct device_d *dev, char *name, char *val); + +int dev_add_parameter(struct device_d *dev, struct param_d *par); ssize_t mem_read(struct device_d *dev, void *buf, size_t count, ulong offset, ulong flags); ssize_t mem_write(struct device_d *dev, void *buf, size_t count, ulong offset, ulong flags); @@ -72,5 +87,9 @@ ssize_t mem_write(struct device_d *dev, void *buf, size_t count, ulong offset, u int register_device_type_handler(int(*handle)(struct device_d *), ulong device_type); //void unregister_device_type_handler(struct device_d *); +int dummy_probe(struct device_d *); + +int global_add_parameter(struct param_d *param); + #endif /* DRIVER_H */ |