1 #ifndef __ASM_GENERIC_MSI_H 2 #define __ASM_GENERIC_MSI_H 3 4 #include <linux/types.h> 5 6 #ifndef NUM_MSI_ALLOC_SCRATCHPAD_REGS 7 # define NUM_MSI_ALLOC_SCRATCHPAD_REGS 2 8 #endif 9 10 struct msi_desc; 11 12 /** 13 * struct msi_alloc_info - Default structure for MSI interrupt allocation. 14 * @desc: Pointer to msi descriptor 15 * @hwirq: Associated hw interrupt number in the domain 16 * @scratchpad: Storage for implementation specific scratch data 17 * 18 * Architectures can provide their own implementation by not including 19 * asm-generic/msi.h into their arch specific header file. 20 */ 21 typedef struct msi_alloc_info { 22 struct msi_desc *desc; 23 irq_hw_number_t hwirq; 24 union { 25 unsigned long ul; 26 void *ptr; 27 } scratchpad[NUM_MSI_ALLOC_SCRATCHPAD_REGS]; 28 } msi_alloc_info_t; 29 30 #define GENERIC_MSI_DOMAIN_OPS 1 31 32 #endif 33