diff options
| author | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2008-09-17 14:29:31 -0400 |
|---|---|---|
| committer | Bjoern B. Brandenburg <bbb@cs.unc.edu> | 2008-09-17 14:29:31 -0400 |
| commit | aeb7a10b15401c80fc1c5ecf93b1e22240f046e6 (patch) | |
| tree | 011952ec7f286dbea2316322394994c8ff1d5452 /include | |
| parent | 364619e98672692ad1f58d96ffab531a304868e5 (diff) | |
ftdev: don't forget to disable events
Otherwise required buffers may not be present anymore.
This patch also fixes some minor initialization issues.
Diffstat (limited to 'include')
| -rw-r--r-- | include/litmus/ftdev.h | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/include/litmus/ftdev.h b/include/litmus/ftdev.h index ac937fb733..8df916d1fc 100644 --- a/include/litmus/ftdev.h +++ b/include/litmus/ftdev.h | |||
| @@ -16,11 +16,14 @@ struct ftdev; | |||
| 16 | typedef int (*ftdev_alloc_t)(struct ftdev* dev, unsigned int buf_no); | 16 | typedef int (*ftdev_alloc_t)(struct ftdev* dev, unsigned int buf_no); |
| 17 | typedef void (*ftdev_free_t)(struct ftdev* dev, unsigned int buf_no); | 17 | typedef void (*ftdev_free_t)(struct ftdev* dev, unsigned int buf_no); |
| 18 | 18 | ||
| 19 | struct ftdev_event; | ||
| 20 | |||
| 19 | struct ftdev_minor { | 21 | struct ftdev_minor { |
| 20 | struct ft_buffer* buf; | 22 | struct ft_buffer* buf; |
| 21 | unsigned int readers; | 23 | unsigned int readers; |
| 22 | struct mutex lock; | 24 | struct mutex lock; |
| 23 | unsigned active_events; | 25 | /* FIXME: filter for authorized events */ |
| 26 | struct ftdev_event* events; | ||
| 24 | }; | 27 | }; |
| 25 | 28 | ||
| 26 | struct ftdev { | 29 | struct ftdev { |
| @@ -28,7 +31,6 @@ struct ftdev { | |||
| 28 | /* FIXME: don't waste memory, allocate dynamically */ | 31 | /* FIXME: don't waste memory, allocate dynamically */ |
| 29 | struct ftdev_minor minor[MAX_FTDEV_MINORS]; | 32 | struct ftdev_minor minor[MAX_FTDEV_MINORS]; |
| 30 | unsigned int minor_cnt; | 33 | unsigned int minor_cnt; |
| 31 | /* FIXME: track enabled/disabled events */ | ||
| 32 | ftdev_alloc_t alloc; | 34 | ftdev_alloc_t alloc; |
| 33 | ftdev_free_t free; | 35 | ftdev_free_t free; |
| 34 | }; | 36 | }; |
| @@ -36,7 +38,7 @@ struct ftdev { | |||
| 36 | struct ft_buffer* alloc_ft_buffer(unsigned int count, size_t size); | 38 | struct ft_buffer* alloc_ft_buffer(unsigned int count, size_t size); |
| 37 | void free_ft_buffer(struct ft_buffer* buf); | 39 | void free_ft_buffer(struct ft_buffer* buf); |
| 38 | 40 | ||
| 39 | void ftdev_init(struct ftdev* ftdev); | 41 | void ftdev_init(struct ftdev* ftdev, struct module* owner); |
| 40 | int register_ftdev(struct ftdev* ftdev, const char* name, int major); | 42 | int register_ftdev(struct ftdev* ftdev, const char* name, int major); |
| 41 | 43 | ||
| 42 | #endif | 44 | #endif |
