Commit | Line | Data |
---|---|---|
ed9eccbe DS |
1 | /* |
2 | linux/include/comedilib.h | |
3 | header file for kcomedilib | |
4 | ||
5 | COMEDI - Linux Control and Measurement Device Interface | |
6 | Copyright (C) 1998-2001 David A. Schleef <ds@schleef.org> | |
7 | ||
8 | This program is free software; you can redistribute it and/or modify | |
9 | it under the terms of the GNU General Public License as published by | |
10 | the Free Software Foundation; either version 2 of the License, or | |
11 | (at your option) any later version. | |
12 | ||
13 | This program is distributed in the hope that it will be useful, | |
14 | but WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
16 | GNU General Public License for more details. | |
17 | ||
18 | You should have received a copy of the GNU General Public License | |
19 | along with this program; if not, write to the Free Software | |
20 | Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. | |
21 | ||
22 | */ | |
23 | ||
24 | #ifndef _LINUX_COMEDILIB_H | |
25 | #define _LINUX_COMEDILIB_H | |
26 | ||
02ebd471 | 27 | #include "comedi.h" |
ed9eccbe DS |
28 | |
29 | /* Kernel internal stuff. Needed by real-time modules and such. */ | |
30 | ||
31 | #ifndef __KERNEL__ | |
32 | #error linux/comedilib.h should not be included by non-kernel-space code | |
33 | #endif | |
34 | ||
35 | /* exported functions */ | |
36 | ||
37 | #ifndef KCOMEDILIB_DEPRECATED | |
38 | ||
ed9eccbe DS |
39 | /* these functions may not be called at real-time priority */ |
40 | ||
0b3fb27f BP |
41 | void *comedi_open(const char *path); |
42 | int comedi_close(void *dev); | |
ed9eccbe DS |
43 | |
44 | /* these functions may be called at any priority, but may fail at | |
45 | real-time priority */ | |
46 | ||
0b3fb27f BP |
47 | int comedi_lock(void *dev, unsigned int subdev); |
48 | int comedi_unlock(void *dev, unsigned int subdev); | |
ed9eccbe DS |
49 | |
50 | /* these functions may be called at any priority, but you must hold | |
51 | the lock for the subdevice */ | |
52 | ||
53 | int comedi_loglevel(int loglevel); | |
54 | void comedi_perror(const char *s); | |
55 | char *comedi_strerror(int errnum); | |
56 | int comedi_errno(void); | |
0b3fb27f | 57 | int comedi_fileno(void *dev); |
ed9eccbe | 58 | |
0b3fb27f BP |
59 | int comedi_cancel(void *dev, unsigned int subdev); |
60 | int comedi_register_callback(void *dev, unsigned int subdev, | |
0a85b6f0 MT |
61 | unsigned int mask, int (*cb) (unsigned int, |
62 | void *), void *arg); | |
ed9eccbe | 63 | |
ea6d0d4c BP |
64 | int comedi_command(void *dev, struct comedi_cmd *cmd); |
65 | int comedi_command_test(void *dev, struct comedi_cmd *cmd); | |
b50d88d0 BP |
66 | int comedi_trigger(void *dev, unsigned int subdev, struct comedi_trig *it); |
67 | int __comedi_trigger(void *dev, unsigned int subdev, struct comedi_trig *it); | |
0b3fb27f | 68 | int comedi_data_write(void *dev, unsigned int subdev, unsigned int chan, |
0a85b6f0 | 69 | unsigned int range, unsigned int aref, unsigned int data); |
0b3fb27f | 70 | int comedi_data_read(void *dev, unsigned int subdev, unsigned int chan, |
0a85b6f0 | 71 | unsigned int range, unsigned int aref, unsigned int *data); |
0b3fb27f | 72 | int comedi_data_read_hint(void *dev, unsigned int subdev, |
0a85b6f0 MT |
73 | unsigned int chan, unsigned int range, |
74 | unsigned int aref); | |
75 | int comedi_data_read_delayed(void *dev, unsigned int subdev, unsigned int chan, | |
76 | unsigned int range, unsigned int aref, | |
77 | unsigned int *data, unsigned int nano_sec); | |
0b3fb27f | 78 | int comedi_dio_config(void *dev, unsigned int subdev, unsigned int chan, |
0a85b6f0 | 79 | unsigned int io); |
0b3fb27f | 80 | int comedi_dio_read(void *dev, unsigned int subdev, unsigned int chan, |
0a85b6f0 | 81 | unsigned int *val); |
0b3fb27f | 82 | int comedi_dio_write(void *dev, unsigned int subdev, unsigned int chan, |
0a85b6f0 | 83 | unsigned int val); |
0b3fb27f | 84 | int comedi_dio_bitfield(void *dev, unsigned int subdev, unsigned int mask, |
0a85b6f0 | 85 | unsigned int *bits); |
0b3fb27f BP |
86 | int comedi_get_n_subdevices(void *dev); |
87 | int comedi_get_version_code(void *dev); | |
88 | const char *comedi_get_driver_name(void *dev); | |
89 | const char *comedi_get_board_name(void *dev); | |
90 | int comedi_get_subdevice_type(void *dev, unsigned int subdevice); | |
91 | int comedi_find_subdevice_by_type(void *dev, int type, unsigned int subd); | |
92 | int comedi_get_n_channels(void *dev, unsigned int subdevice); | |
790c5541 | 93 | unsigned int comedi_get_maxdata(void *dev, unsigned int subdevice, unsigned |
0a85b6f0 MT |
94 | int chan); |
95 | int comedi_get_n_ranges(void *dev, unsigned int subdevice, unsigned int chan); | |
90035c08 | 96 | int comedi_do_insn(void *dev, struct comedi_insn *insn); |
0b3fb27f | 97 | int comedi_poll(void *dev, unsigned int subdev); |
ed9eccbe DS |
98 | |
99 | /* DEPRECATED functions */ | |
0a85b6f0 | 100 | int comedi_get_rangetype(void *dev, unsigned int subdevice, unsigned int chan); |
ed9eccbe DS |
101 | |
102 | /* ALPHA functions */ | |
0b3fb27f BP |
103 | unsigned int comedi_get_subdevice_flags(void *dev, unsigned int subdevice); |
104 | int comedi_get_len_chanlist(void *dev, unsigned int subdevice); | |
105 | int comedi_get_krange(void *dev, unsigned int subdevice, unsigned int | |
0a85b6f0 | 106 | chan, unsigned int range, struct comedi_krange *krange); |
0b3fb27f BP |
107 | unsigned int comedi_get_buf_head_pos(void *dev, unsigned int subdevice); |
108 | int comedi_set_user_int_count(void *dev, unsigned int subdevice, | |
0a85b6f0 | 109 | unsigned int buf_user_count); |
0b3fb27f BP |
110 | int comedi_map(void *dev, unsigned int subdev, void *ptr); |
111 | int comedi_unmap(void *dev, unsigned int subdev); | |
112 | int comedi_get_buffer_size(void *dev, unsigned int subdev); | |
113 | int comedi_mark_buffer_read(void *dev, unsigned int subdevice, | |
0a85b6f0 | 114 | unsigned int num_bytes); |
0b3fb27f | 115 | int comedi_mark_buffer_written(void *d, unsigned int subdevice, |
0a85b6f0 | 116 | unsigned int num_bytes); |
0b3fb27f BP |
117 | int comedi_get_buffer_contents(void *dev, unsigned int subdevice); |
118 | int comedi_get_buffer_offset(void *dev, unsigned int subdevice); | |
ed9eccbe DS |
119 | |
120 | #else | |
121 | ||
122 | /* these functions may not be called at real-time priority */ | |
123 | ||
124 | int comedi_open(unsigned int minor); | |
125 | void comedi_close(unsigned int minor); | |
126 | ||
127 | /* these functions may be called at any priority, but may fail at | |
128 | real-time priority */ | |
129 | ||
130 | int comedi_lock(unsigned int minor, unsigned int subdev); | |
131 | int comedi_unlock(unsigned int minor, unsigned int subdev); | |
132 | ||
133 | /* these functions may be called at any priority, but you must hold | |
134 | the lock for the subdevice */ | |
135 | ||
136 | int comedi_cancel(unsigned int minor, unsigned int subdev); | |
137 | int comedi_register_callback(unsigned int minor, unsigned int subdev, | |
0a85b6f0 MT |
138 | unsigned int mask, int (*cb) (unsigned int, |
139 | void *), void *arg); | |
ed9eccbe | 140 | |
ea6d0d4c BP |
141 | int comedi_command(unsigned int minor, struct comedi_cmd *cmd); |
142 | int comedi_command_test(unsigned int minor, struct comedi_cmd *cmd); | |
0a85b6f0 MT |
143 | int comedi_trigger(unsigned int minor, unsigned int subdev, |
144 | struct comedi_trig *it); | |
145 | int __comedi_trigger(unsigned int minor, unsigned int subdev, | |
146 | struct comedi_trig *it); | |
ed9eccbe | 147 | int comedi_data_write(unsigned int dev, unsigned int subdev, unsigned int chan, |
0a85b6f0 | 148 | unsigned int range, unsigned int aref, unsigned int data); |
ed9eccbe | 149 | int comedi_data_read(unsigned int dev, unsigned int subdev, unsigned int chan, |
0a85b6f0 | 150 | unsigned int range, unsigned int aref, unsigned int *data); |
ed9eccbe | 151 | int comedi_dio_config(unsigned int dev, unsigned int subdev, unsigned int chan, |
0a85b6f0 | 152 | unsigned int io); |
ed9eccbe | 153 | int comedi_dio_read(unsigned int dev, unsigned int subdev, unsigned int chan, |
0a85b6f0 | 154 | unsigned int *val); |
ed9eccbe | 155 | int comedi_dio_write(unsigned int dev, unsigned int subdev, unsigned int chan, |
0a85b6f0 | 156 | unsigned int val); |
ed9eccbe | 157 | int comedi_dio_bitfield(unsigned int dev, unsigned int subdev, |
0a85b6f0 | 158 | unsigned int mask, unsigned int *bits); |
ed9eccbe DS |
159 | int comedi_get_n_subdevices(unsigned int dev); |
160 | int comedi_get_version_code(unsigned int dev); | |
161 | char *comedi_get_driver_name(unsigned int dev); | |
162 | char *comedi_get_board_name(unsigned int minor); | |
163 | int comedi_get_subdevice_type(unsigned int minor, unsigned int subdevice); | |
164 | int comedi_find_subdevice_by_type(unsigned int minor, int type, | |
0a85b6f0 | 165 | unsigned int subd); |
ed9eccbe | 166 | int comedi_get_n_channels(unsigned int minor, unsigned int subdevice); |
790c5541 | 167 | unsigned int comedi_get_maxdata(unsigned int minor, unsigned int subdevice, unsigned |
0a85b6f0 | 168 | int chan); |
ed9eccbe | 169 | int comedi_get_n_ranges(unsigned int minor, unsigned int subdevice, unsigned int |
0a85b6f0 | 170 | chan); |
90035c08 | 171 | int comedi_do_insn(unsigned int minor, struct comedi_insn *insn); |
ed9eccbe DS |
172 | int comedi_poll(unsigned int minor, unsigned int subdev); |
173 | ||
174 | /* DEPRECATED functions */ | |
175 | int comedi_get_rangetype(unsigned int minor, unsigned int subdevice, | |
0a85b6f0 | 176 | unsigned int chan); |
ed9eccbe DS |
177 | |
178 | /* ALPHA functions */ | |
179 | unsigned int comedi_get_subdevice_flags(unsigned int minor, unsigned int | |
0a85b6f0 | 180 | subdevice); |
ed9eccbe DS |
181 | int comedi_get_len_chanlist(unsigned int minor, unsigned int subdevice); |
182 | int comedi_get_krange(unsigned int minor, unsigned int subdevice, unsigned int | |
0a85b6f0 | 183 | chan, unsigned int range, struct comedi_krange *krange); |
ed9eccbe | 184 | unsigned int comedi_get_buf_head_pos(unsigned int minor, unsigned int |
0a85b6f0 | 185 | subdevice); |
ed9eccbe | 186 | int comedi_set_user_int_count(unsigned int minor, unsigned int subdevice, |
0a85b6f0 | 187 | unsigned int buf_user_count); |
ed9eccbe DS |
188 | int comedi_map(unsigned int minor, unsigned int subdev, void **ptr); |
189 | int comedi_unmap(unsigned int minor, unsigned int subdev); | |
190 | ||
191 | #endif | |
192 | ||
193 | #endif |