aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorBjoern B. Brandenburg <bbb@cs.unc.edu>2008-09-17 14:29:31 -0400
committerBjoern B. Brandenburg <bbb@cs.unc.edu>2008-09-17 14:29:31 -0400
commitaeb7a10b15401c80fc1c5ecf93b1e22240f046e6 (patch)
tree011952ec7f286dbea2316322394994c8ff1d5452 /include
parent364619e98672692ad1f58d96ffab531a304868e5 (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.h8
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;
16typedef int (*ftdev_alloc_t)(struct ftdev* dev, unsigned int buf_no); 16typedef int (*ftdev_alloc_t)(struct ftdev* dev, unsigned int buf_no);
17typedef void (*ftdev_free_t)(struct ftdev* dev, unsigned int buf_no); 17typedef void (*ftdev_free_t)(struct ftdev* dev, unsigned int buf_no);
18 18
19struct ftdev_event;
20
19struct ftdev_minor { 21struct 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
26struct ftdev { 29struct 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 {
36struct ft_buffer* alloc_ft_buffer(unsigned int count, size_t size); 38struct ft_buffer* alloc_ft_buffer(unsigned int count, size_t size);
37void free_ft_buffer(struct ft_buffer* buf); 39void free_ft_buffer(struct ft_buffer* buf);
38 40
39void ftdev_init(struct ftdev* ftdev); 41void ftdev_init(struct ftdev* ftdev, struct module* owner);
40int register_ftdev(struct ftdev* ftdev, const char* name, int major); 42int register_ftdev(struct ftdev* ftdev, const char* name, int major);
41 43
42#endif 44#endif