1 | /* SPDX-License-Identifier: GPL-2.0 */ |
2 | #ifndef _COMEDI_INTERNAL_H |
3 | #define _COMEDI_INTERNAL_H |
4 | |
5 | #include <linux/compiler.h> |
6 | #include <linux/types.h> |
7 | |
8 | /* |
9 | * various internal comedi stuff |
10 | */ |
11 | |
12 | struct comedi_buf_map; |
13 | struct comedi_devconfig; |
14 | struct comedi_device; |
15 | struct comedi_insn; |
16 | struct comedi_rangeinfo; |
17 | struct comedi_subdevice; |
18 | struct device; |
19 | |
20 | int do_rangeinfo_ioctl(struct comedi_device *dev, |
21 | struct comedi_rangeinfo *it); |
22 | struct comedi_device *comedi_alloc_board_minor(struct device *hardware_device); |
23 | void comedi_release_hardware_device(struct device *hardware_device); |
24 | int comedi_alloc_subdevice_minor(struct comedi_subdevice *s); |
25 | void comedi_free_subdevice_minor(struct comedi_subdevice *s); |
26 | |
27 | int comedi_buf_alloc(struct comedi_device *dev, struct comedi_subdevice *s, |
28 | unsigned long new_size); |
29 | void comedi_buf_reset(struct comedi_subdevice *s); |
30 | bool comedi_buf_is_mmapped(struct comedi_subdevice *s); |
31 | void comedi_buf_map_get(struct comedi_buf_map *bm); |
32 | int comedi_buf_map_put(struct comedi_buf_map *bm); |
33 | int comedi_buf_map_access(struct comedi_buf_map *bm, unsigned long offset, |
34 | void *buf, int len, int write); |
35 | struct comedi_buf_map * |
36 | comedi_buf_map_from_subdev_get(struct comedi_subdevice *s); |
37 | unsigned int comedi_buf_write_n_available(struct comedi_subdevice *s); |
38 | unsigned int comedi_buf_write_n_allocated(struct comedi_subdevice *s); |
39 | void comedi_device_cancel_all(struct comedi_device *dev); |
40 | bool comedi_can_auto_free_spriv(struct comedi_subdevice *s); |
41 | |
42 | extern unsigned int comedi_default_buf_size_kb; |
43 | extern unsigned int comedi_default_buf_maxsize_kb; |
44 | |
45 | /* drivers.c */ |
46 | |
47 | extern struct comedi_driver *comedi_drivers; |
48 | extern struct mutex comedi_drivers_list_lock; |
49 | |
50 | int insn_inval(struct comedi_device *dev, struct comedi_subdevice *s, |
51 | struct comedi_insn *insn, unsigned int *data); |
52 | |
53 | void comedi_device_detach(struct comedi_device *dev); |
54 | int comedi_device_attach(struct comedi_device *dev, |
55 | struct comedi_devconfig *it); |
56 | |
57 | #ifdef CONFIG_PROC_FS |
58 | |
59 | /* proc.c */ |
60 | |
61 | void comedi_proc_init(void); |
62 | void comedi_proc_cleanup(void); |
63 | #else |
64 | static inline void comedi_proc_init(void) |
65 | { |
66 | } |
67 | |
68 | static inline void comedi_proc_cleanup(void) |
69 | { |
70 | } |
71 | #endif |
72 | |
73 | #endif /* _COMEDI_INTERNAL_H */ |
74 | |