STRUCT IIO_EVENT_SPEC(9)
π NAME π
struct iio_event_spec β the spec sheet for a channel event, bestie β¨ (this one lives in the Kernel API Manual, section 9, if you're keeping track π)
πΈ SYNOPSIS πΈ
struct iio_event_spec {
enum iio_event_type type;
enum iio_event_direction dir;
unsigned long mask_separate;
unsigned long mask_shared_by_type;
unsigned long mask_shared_by_dir;
unsigned long mask_shared_by_all;
};
π¦ Members π¦
Ok so the struct is literally just six lil fields and every one of them matters, so let's go π
typeβ the type of the event. That's it, that's the whole job πdirβ the direction of the event. Where it's heading, bestie π§mask_separateβ a bit mask ofenum iio_event_infovalues. Any attributes you set in this mask get registered per channel π (so like, no sharing, everybody gets their own, main character energy fr)mask_shared_by_typeβ a bit mask ofenum iio_event_infovalues. Attributes you set in this mask get shared by channel type πmask_shared_by_dirβ a bit mask ofenum iio_event_infovalues. Attributes you set in this mask get shared by channel type and direction π₯mask_shared_by_allβ a bit mask ofenum iio_event_infovalues. Attributes you set in this mask get shared by all channels. Everybody, holding hands, one big group chat π«Ά
ngl the four masks all say "bit mask ofenum iio_event_infovalues" β that part is NOT a typo, it's just how it is. What changes is who ends up sharing the attributes: nobody (mask_separate), channel type, channel type + direction, or literally all channels. Know the difference, it's giving range π
β SEE ALSO β
Kernel file ./include/linux/iio/iio.h β plus the whole extended universe of related pages, and yes we're listing every single one because we don't gatekeep here π
struct iio_chan_spec_ext_info(9)struct iio_enum(9)IIO_ENUM(9)IIO_ENUM_AVAILABLE(9)struct iio_mount_matrix(9)IIO_MOUNT_MATRIX(9)IIO_SCAN_FORMAT_SIGNED_INT(9)IIO_SCAN_FORMAT_UNSIGNED_INT(9)IIO_SCAN_FORMAT_FLOAT(9)struct iio_scan_type(9)struct iio_chan_spec(9)iio_channel_has_info(9)iio_channel_has_available(9)struct iio_info(9)struct iio_buffer_setup_ops(9)struct iio_dev(9)iio_device_register(9)devm_iio_device_register(9)iio_device_claim_direct(9)iio_device_release_direct(9)iio_device_try_claim_buffer_mode(9)iio_device_release_buffer_mode(9)IIO_DEV_ACQUIRE_DIRECT_MODE(9)IIO_DEV_ACQUIRE_FAILED(9)IIO_DEV_GUARD_CURRENT_MODE(9)iio_device_put(9)dev_to_iio_dev(9)iio_device_get(9)iio_device_set_parent(9)iio_device_set_drvdata(9)iio_device_get_drvdata(9)IIO_DECLARE_BUFFER_WITH_TS(9)IIO_DECLARE_DMA_BUFFER_WITH_TS(9)IIO_DECLARE_QUATERNION(9)iio_get_debugfs_dentry(9)iio_device_suspend_triggering(9)iio_device_resume_triggering(9)iio_get_current_scan_type(9)iio_get_masklength(9)iio_for_each_active_channel(9)IIO_DEGREE_TO_RAD(9)IIO_RAD_TO_DEGREE(9)IIO_G_TO_M_S_2(9)IIO_M_S_2_TO_G(9)
β¨ that's the whole page, you ate it, go forth and register some events β¨
source location: ./include/linux/iio Β· dated: October 2026 Β· page: struct iio_event_spec(9) β mwah, ily, see u in the next manpage bestie ππ
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms