Eine aufbereitete Darstellung der Quelle

 
     
 
 
Anforderungen  |   Konzepte  |   Entwurf  |   Entwicklung  |   Qualitätssicherung  |   Lebenszyklus  |   Steuerung
 
 
 
 

Benutzer

Quellverzeichnis  mshv_eventfd.h

  Interaktion und
PortierbarkeitC
 

/* SPDX-License-Identifier: GPL-2.0-only */
/*
 * irqfd: Allows an fd to be used to inject an interrupt to the guest.
 * ioeventfd: Allow an fd to be used to receive a signal from the guest.
 * All credit goes to kvm developers.
 */


#ifndef __LINUX_MSHV_EVENTFD_H
#define __LINUX_MSHV_EVENTFD_H

#include <linux/poll.h>

#include "mshv.h"
#include "mshv_root.h"

/* struct to contain list of irqfds sharing an irq. Updates are protected by
 * partition.irqfds.resampler_lock
 */

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_head_t      *irqfd_wqh;
 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 */

Messung V0.5 in Prozent
C=95 H=92 G=93

¤ Diese beiden folgenden Angebotsgruppen bietet das Unternehmen0.15Angebot  (Wie Sie bei der Firma Beratungs- und Dienstleistungen beauftragen können 2026-06-07) ¤

*Eine klare Vorstellung vom Zielzustand






Wurzel

Suchen

PVS Prover

Isabelle Prover

NIST Cobol Testsuite

Cephes Mathematical Library

Vienna Development Method

Haftungshinweis

Die Informationen auf dieser Webseite wurden nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit, noch Qualität der bereit gestellten Informationen zugesichert.

Bemerkung:

Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.






                                                                                                                                                                                                                                                                                                                                                                                                     


Neuigkeiten

     Aktuelles
     Motto des Tages

Open Source Software

     Quellcodebibliothek
     Eigene Quellcodes
     Fremde Quellcodes
     Suchen

Jenseits des Üblichen ....
    

Besucherstatistik

Besucherstatistik

Statistik
#Sources=277311
#Domains=752002