00001
00023 #ifndef __ANALOGY_DRIVER__
00024 #define __ANALOGY_DRIVER__
00025
00026 #ifdef __KERNEL__
00027
00028 #include <linux/list.h>
00029
00030 struct a4l_link_desc;
00031 struct a4l_device;
00032
00037
00038 struct a4l_driver {
00039
00040
00041 struct list_head list;
00044
00045 struct module *owner;
00047 unsigned int flags;
00049 char *board_name;
00051 int privdata_size;
00054
00055 int (*attach) (struct a4l_device *, struct a4l_link_desc *);
00057 int (*detach) (struct a4l_device *);
00060 };
00061 typedef struct a4l_driver a4l_drv_t;
00062
00063 #ifndef DOXYGEN_CPP
00064
00065
00066
00067 int a4l_register_drv(a4l_drv_t * drv);
00068 int a4l_unregister_drv(a4l_drv_t * drv);
00069 int a4l_lct_drv(char *pin, a4l_drv_t ** pio);
00070 #ifdef CONFIG_PROC_FS
00071 int a4l_rdproc_drvs(char *page,
00072 char **start,
00073 off_t off, int count, int *eof, void *data);
00074 #endif
00075
00076 #endif
00077
00078 #endif
00079
00080 #endif