include/linux/iio/events.h
Source file repositories/reference/linux-study-clean/include/linux/iio/events.h
File Facts
- System
- Linux kernel
- Corpus path
include/linux/iio/events.h- Extension
.h- Size
- 2843 bytes
- Lines
- 74
- 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.
Dependency Surface
linux/iio/types.huapi/linux/iio/events.h
Detected Declarations
- No top-level syscall, struct, function, initcall, or export declaration detected by the generator.
Annotated Snippet
#ifndef _IIO_EVENTS_H_
#define _IIO_EVENTS_H_
#include <linux/iio/types.h>
#include <uapi/linux/iio/events.h>
/**
* _IIO_EVENT_CODE() - create event identifier
* @chan_type: Type of the channel. Should be one of enum iio_chan_type.
* @diff: Whether the event is for an differential channel or not.
* @modifier: Modifier for the channel. Should be one of enum iio_modifier.
* @direction: Direction of the event. One of enum iio_event_direction.
* @type: Type of the event. Should be one of enum iio_event_type.
* @chan: Channel number for non-differential channels.
* @chan1: First channel number for differential channels.
* @chan2: Second channel number for differential channels.
*
* Drivers should use the specialized macros below instead of using this one
* directly.
*/
#define _IIO_EVENT_CODE(chan_type, diff, modifier, direction, \
type, chan, chan1, chan2) \
(((u64)type << 56) | ((u64)diff << 55) | \
((u64)direction << 48) | ((u64)modifier << 40) | \
((u64)chan_type << 32) | (((u16)chan2) << 16) | ((u16)chan1) | \
((u16)chan))
/**
* IIO_MOD_EVENT_CODE() - create event identifier for modified (non
* differential) channels
* @chan_type: Type of the channel. Should be one of enum iio_chan_type.
* @number: Channel number.
* @modifier: Modifier for the channel. Should be one of enum iio_modifier.
* @type: Type of the event. Should be one of enum iio_event_type.
* @direction: Direction of the event. One of enum iio_event_direction.
*/
#define IIO_MOD_EVENT_CODE(chan_type, number, modifier, \
type, direction) \
_IIO_EVENT_CODE(chan_type, 0, modifier, direction, type, number, 0, 0)
/**
* IIO_UNMOD_EVENT_CODE() - create event identifier for unmodified (non
* differential) channels
* @chan_type: Type of the channel. Should be one of enum iio_chan_type.
* @number: Channel number.
* @type: Type of the event. Should be one of enum iio_event_type.
* @direction: Direction of the event. One of enum iio_event_direction.
*/
#define IIO_UNMOD_EVENT_CODE(chan_type, number, type, direction) \
_IIO_EVENT_CODE(chan_type, 0, 0, direction, type, number, 0, 0)
/**
* IIO_DIFF_EVENT_CODE() - create event identifier for differential channels
* @chan_type: Type of the channel. Should be one of enum iio_chan_type.
* @chan1: First channel number for differential channels.
* @chan2: Second channel number for differential channels.
* @type: Type of the event. Should be one of enum iio_event_type.
* @direction: Direction of the event. One of enum iio_event_direction.
*/
#define IIO_DIFF_EVENT_CODE(chan_type, chan1, chan2, type, direction) \
_IIO_EVENT_CODE(chan_type, 1, 0, direction, type, 0, chan1, chan2)
#endif
Annotation
- Immediate include surface: `linux/iio/types.h`, `uapi/linux/iio/events.h`.
- 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.