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.