int register_adapter_interrupt(struct airq_struct *airq); void unregister_adapter_interrupt(struct airq_struct *airq);
/* Adapter interrupt bit vector */ struct airq_iv { unsignedlong *vector; /* Adapter interrupt bit vector */
dma_addr_t vector_dma; /* Adapter interrupt bit vector dma */ unsignedlong *avail; /* Allocation bit mask for the bit vector */ unsignedlong *bitlock; /* Lock bit mask for the bit vector */ unsignedlong *ptr; /* Pointer associated with each bit */ unsignedint *data; /* 32 bit value associated with each bit */ unsignedlong bits; /* Number of bits in the vector */ unsignedlong end; /* Number of highest allocated bit + 1 */ unsignedlong flags; /* Allocation flags */
spinlock_t lock; /* Lock to protect alloc & free */
};
#define AIRQ_IV_ALLOC 1 /* Use an allocation bit mask */ #define AIRQ_IV_BITLOCK 2 /* Allocate the lock bit mask */ #define AIRQ_IV_PTR 4 /* Allocate the ptr array */ #define AIRQ_IV_DATA 8 /* Allocate the data array */ #define AIRQ_IV_CACHELINE 16 /* Cacheline alignment for the vector */ #define AIRQ_IV_GUESTVEC 32 /* Vector is a pinned guest page */
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.