include/uapi/linux/comedi.h
Source file repositories/reference/linux-study-clean/include/uapi/linux/comedi.h
File Facts
- System
- Linux kernel
- Corpus path
include/uapi/linux/comedi.h- Extension
.h- Size
- 55530 bytes
- Lines
- 1529
- Domain
- Core OS
- Bucket
- Core Kernel Interface
- Inferred role
- Core OS: implementation source
- Status
- source implementation candidate
Why This File Exists
Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Core operating-system implementation surface: boot, tasks, memory, VFS, syscall-facing interfaces, synchronization, credentials, and isolation.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
- No C-style include directives detected by the generator.
Detected Declarations
struct comedi_insnstruct comedi_insnliststruct comedi_cmdstruct comedi_chaninfostruct comedi_rangeinfostruct comedi_krangestruct comedi_subdinfostruct comedi_devinfostruct comedi_devconfigstruct comedi_bufconfigstruct comedi_bufinfoenum comedi_subdevice_typeenum comedi_io_directionenum configuration_idsenum device_config_route_idsenum comedi_digital_trig_openum comedi_support_levelenum comedi_counter_status_flagsenum i8254_modeenum ni_common_signal_namesenum ni_gpct_mode_bitsenum ni_gpct_clock_source_bitsenum ni_gpct_gate_selectenum ni_gpct_other_indexenum ni_gpct_other_selectenum ni_gpct_arm_sourceenum ni_gpct_filter_selectenum ni_pfi_filter_selectenum ni_mio_clock_sourceenum ni_rtsi_routingenum ni_pfi_routingenum ni_660x_pfi_routingenum ni_m_series_cdio_scan_begin_srcenum ni_freq_out_clock_source_bitsenum amplc_dio_clock_sourceenum amplc_dio_ts_clock_srcenum amplc_dio_gate_sourceenum ke_counter_clock_source
Annotated Snippet
struct comedi_insn {
unsigned int insn;
unsigned int n;
unsigned int __user *data;
unsigned int subdev;
unsigned int chanspec;
unsigned int unused[3];
};
/**
* struct comedi_insnlist - list of COMEDI instructions
* @n_insns: Number of COMEDI instructions.
* @insns: Pointer to array COMEDI instructions.
*
* This is used with the %COMEDI_INSNLIST ioctl.
*/
struct comedi_insnlist {
unsigned int n_insns;
struct comedi_insn __user *insns;
};
/**
* struct comedi_cmd - COMEDI asynchronous acquisition command details
* @subdev: Subdevice index.
* @flags: Command flags (%CMDF_xxx).
* @start_src: "Start acquisition" trigger source (%TRIG_xxx).
* @start_arg: "Start acquisition" trigger argument.
* @scan_begin_src: "Scan begin" trigger source.
* @scan_begin_arg: "Scan begin" trigger argument.
* @convert_src: "Convert" trigger source.
* @convert_arg: "Convert" trigger argument.
* @scan_end_src: "Scan end" trigger source.
* @scan_end_arg: "Scan end" trigger argument.
* @stop_src: "Stop acquisition" trigger source.
* @stop_arg: "Stop acquisition" trigger argument.
* @chanlist: Pointer to array of "chanspec" values, containing a
* sequence of channel numbers packed with analog range
* index, etc.
* @chanlist_len: Number of channels in sequence.
* @data: Pointer to miscellaneous set-up data (not used).
* @data_len: Length of miscellaneous set-up data.
*
* This is used with the %COMEDI_CMD or %COMEDI_CMDTEST ioctl to set-up
* or validate an asynchronous acquisition command. The ioctl may modify
* the &struct comedi_cmd and copy it back to the caller.
*
* Optional command @flags values that can be ORed together...
*
* %CMDF_BOGUS - makes %COMEDI_CMD ioctl return error %EAGAIN instead of
* starting the command.
*
* %CMDF_PRIORITY - requests "hard real-time" processing (which is not
* supported in this version of COMEDI).
*
* %CMDF_WAKE_EOS - requests the command makes data available for reading
* after every "scan" period.
*
* %CMDF_WRITE - marks the command as being in the "write" (to device)
* direction. This does not need to be specified by the caller unless the
* subdevice supports commands in either direction.
*
* %CMDF_RAWDATA - prevents the command from "munging" the data between the
* COMEDI sample format and the raw hardware sample format.
*
* %CMDF_ROUND_NEAREST - requests timing periods to be rounded to nearest
* supported values.
*
* %CMDF_ROUND_DOWN - requests timing periods to be rounded down to supported
* values (frequencies rounded up).
*
* %CMDF_ROUND_UP - requests timing periods to be rounded up to supported
* values (frequencies rounded down).
*
* Trigger source values for @start_src, @scan_begin_src, @convert_src,
* @scan_end_src, and @stop_src...
*
* %TRIG_ANY - "all ones" value used to test which trigger sources are
* supported.
*
* %TRIG_INVALID - "all zeroes" value used to indicate that all requested
* trigger sources are invalid.
*
* %TRIG_NONE - never trigger (often used as a @stop_src value).
*
* %TRIG_NOW - trigger after '_arg' nanoseconds.
*
* %TRIG_FOLLOW - trigger follows another event.
*
* %TRIG_TIMER - trigger every '_arg' nanoseconds.
*
Annotation
- Detected declarations: `struct comedi_insn`, `struct comedi_insnlist`, `struct comedi_cmd`, `struct comedi_chaninfo`, `struct comedi_rangeinfo`, `struct comedi_krange`, `struct comedi_subdinfo`, `struct comedi_devinfo`, `struct comedi_devconfig`, `struct comedi_bufconfig`.
- Atlas domain: Core OS / Core Kernel Interface.
- Implementation status: source implementation candidate.
Implementation Notes
- This generated page is the file-by-file coverage layer; curated subsystem chapters should link here when they synthesize a multi-file control flow.
- Core OS pages should be promoted from atlas-only to deep-reviewed when they explain data structures, invariants, locking, lifecycle, and C implementation snippets.
- Driver-family pages are intentionally pattern-oriented unless they are part of the selected PCIe/NVMe representative device path.