1 #include "../comedidev.h"
4 #include "pcm_common.h"
6 int comedi_pcm_cmdtest(struct comedi_device
*dev
,
7 struct comedi_subdevice
*s
, struct comedi_cmd
*cmd
)
11 /* Step 1 : check if triggers are trivially valid */
13 err
|= cfc_check_trigger_src(&cmd
->start_src
, TRIG_NOW
| TRIG_INT
);
14 err
|= cfc_check_trigger_src(&cmd
->scan_begin_src
, TRIG_EXT
);
15 err
|= cfc_check_trigger_src(&cmd
->convert_src
, TRIG_NOW
);
16 err
|= cfc_check_trigger_src(&cmd
->scan_end_src
, TRIG_COUNT
);
17 err
|= cfc_check_trigger_src(&cmd
->stop_src
, TRIG_COUNT
| TRIG_NONE
);
22 /* Step 2a : make sure trigger sources are unique */
24 err
|= cfc_check_trigger_is_unique(cmd
->start_src
);
25 err
|= cfc_check_trigger_is_unique(cmd
->stop_src
);
27 /* Step 2b : and mutually compatible */
32 /* Step 3: check if arguments are trivially valid */
34 err
|= cfc_check_trigger_arg_is(&cmd
->start_arg
, 0);
35 err
|= cfc_check_trigger_arg_is(&cmd
->scan_begin_arg
, 0);
36 err
|= cfc_check_trigger_arg_is(&cmd
->convert_arg
, 0);
37 err
|= cfc_check_trigger_arg_is(&cmd
->scan_end_arg
, cmd
->chanlist_len
);
39 switch (cmd
->stop_src
) {
41 /* any count allowed */
44 err
|= cfc_check_trigger_arg_is(&cmd
->stop_arg
, 0);
53 /* step 4: fix up any arguments */
55 /* if (err) return 4; */
59 EXPORT_SYMBOL(comedi_pcm_cmdtest
);
61 MODULE_AUTHOR("Comedi http://www.comedi.org");
62 MODULE_DESCRIPTION("Comedi low-level driver");
63 MODULE_LICENSE("GPL");