staging: comedi: comedi_fc: introduce cfc_check_trigger_is_unique
"Step 2" of each do_cmdtest checks that the trigger sources are unique by doing something like this for each trigger: if (cmd->start_src != TRIG_TIMER && cmd->start_src != TRIG_FOLLOW && cmd->start_src != TRIG_EXT) err++; /* Test the remaining triggers similarly */ if (err) return 2; Introduce a helper function in comedi_fc to handle this boilerplate. The drivers can then just do: err |= cfc_check_trigger_is_unique(cmd->start_src); /* Test the remaining triggers similarly */ if (err) return 2; Signed-off-by: H Hartley Sweeten <hsweeten@visionengravers.com> Cc: Ian Abbott <abbotti@mev.co.uk> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
6be4173b02
commit
6c39eed00c
|
@ -93,4 +93,16 @@ static inline int cfc_check_trigger_src(unsigned int *src, unsigned int flags)
|
|||
return 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* cfc_check_trigger_is_unique() - make sure a trigger source is unique
|
||||
* @src: the trigger source to check
|
||||
*/
|
||||
static inline int cfc_check_trigger_is_unique(unsigned int src)
|
||||
{
|
||||
/* this test is true if more than one _src bit is set */
|
||||
if ((src & (src - 1)) != 0)
|
||||
return -EINVAL;
|
||||
return 0;
|
||||
}
|
||||
|
||||
#endif /* _COMEDI_FC_H */
|
||||
|
|
Loading…
Reference in New Issue