drivers/hv/mshv_eventfd.h
Source file repositories/reference/linux-study-clean/drivers/hv/mshv_eventfd.h
File Facts
- System
- Linux kernel
- Corpus path
drivers/hv/mshv_eventfd.h- Extension
.h- Size
- 2223 bytes
- Lines
- 71
- Domain
- Driver Families
- Bucket
- drivers/hv
- Inferred role
- Driver Families: implementation source
- Status
- source implementation candidate
Why This File Exists
Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Repeatable hardware-adapter layer. Deep compatibility for every driver is out of scope; this atlas records patterns, probe lifecycles, bus glue, IRQ/DMA usage, and links back to core abstractions.
- Defines or uses C structs; map object ownership, embedded links, reference counts, and lock ownership.
Dependency Surface
linux/poll.hmshv.hmshv_root.h
Detected Declarations
struct mshv_irqfd_resamplerstruct mshv_irqfdstruct mshv_ioeventfd
Annotated Snippet
struct mshv_irqfd_resampler {
struct mshv_partition *rsmplr_partn;
struct hlist_head rsmplr_irqfd_list;
struct mshv_irq_ack_notifier rsmplr_notifier;
struct hlist_node rsmplr_hnode;
};
struct mshv_irqfd {
struct mshv_partition *irqfd_partn;
struct eventfd_ctx *irqfd_eventfd_ctx;
struct mshv_guest_irq_ent irqfd_girq_ent;
seqcount_spinlock_t irqfd_irqe_sc;
u32 irqfd_irqnum;
struct mshv_lapic_irq irqfd_lapic_irq;
struct hlist_node irqfd_hnode;
poll_table irqfd_polltbl;
wait_queue_entry_t irqfd_wait;
struct work_struct irqfd_shutdown;
struct mshv_irqfd_resampler *irqfd_resampler;
struct eventfd_ctx *irqfd_resamplefd;
struct hlist_node irqfd_resampler_hnode;
};
void mshv_eventfd_init(struct mshv_partition *partition);
void mshv_eventfd_release(struct mshv_partition *partition);
void mshv_register_irq_ack_notifier(struct mshv_partition *partition,
struct mshv_irq_ack_notifier *mian);
void mshv_unregister_irq_ack_notifier(struct mshv_partition *partition,
struct mshv_irq_ack_notifier *mian);
bool mshv_notify_acked_gsi(struct mshv_partition *partition, int gsi);
int mshv_set_unset_irqfd(struct mshv_partition *partition,
struct mshv_user_irqfd *args);
int mshv_irqfd_wq_init(void);
void mshv_irqfd_wq_cleanup(void);
struct mshv_ioeventfd {
struct hlist_node iovntfd_hnode;
u64 iovntfd_addr;
int iovntfd_length;
struct eventfd_ctx *iovntfd_eventfd;
u64 iovntfd_datamatch;
int iovntfd_doorbell_id;
bool iovntfd_wildcard;
};
int mshv_set_unset_ioeventfd(struct mshv_partition *pt,
struct mshv_user_ioeventfd *args);
#endif /* __LINUX_MSHV_EVENTFD_H */
Annotation
- Immediate include surface: `linux/poll.h`, `mshv.h`, `mshv_root.h`.
- Detected declarations: `struct mshv_irqfd_resampler`, `struct mshv_irqfd`, `struct mshv_ioeventfd`.
- Atlas domain: Driver Families / drivers/hv.
- 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.