2 * Copyright 2013, Jérôme Duval, korli@users.berlios.de.
3 * Copyright 2010, Michael Lotz, mmlr@mlotz.ch. All Rights Reserved.
4 * Distributed under the terms of the MIT License.
10 #include <SupportDefs.h>
13 // Message Signaled Interrupts
19 typedef struct msi_info
{
21 uint8 capability_offset
;
23 uint8 configured_count
;
31 uint8
pci_get_msi_count(uint8 virtualBus
, uint8 _device
, uint8 function
);
32 status_t
pci_configure_msi(uint8 virtualBus
, uint8 _device
, uint8 function
,
33 uint8 count
, uint8
*startVector
);
34 status_t
pci_unconfigure_msi(uint8 virtualBus
, uint8 device
, uint8 function
);
35 status_t
pci_enable_msi(uint8 virtualBus
, uint8 device
, uint8 function
);
36 status_t
pci_disable_msi(uint8 virtualBus
, uint8 device
, uint8 function
);
37 void pci_read_msi_info(PCIDev
*device
);
41 typedef struct msix_info
{
43 uint8 capability_offset
;
47 area_id table_area_id
;
53 uint8 configured_count
;
61 uint8
pci_get_msix_count(uint8 virtualBus
, uint8 _device
, uint8 function
);
62 status_t
pci_configure_msix(uint8 virtualBus
, uint8 _device
, uint8 function
,
63 uint8 count
, uint8
*startVector
);
64 status_t
pci_enable_msix(uint8 virtualBus
, uint8 _device
, uint8 function
);
65 void pci_read_msix_info(PCIDev
*device
);
67 // HyperTransport MSI mapping
68 typedef struct ht_mapping_info
{
69 bool ht_mapping_capable
;
70 uint8 capability_offset
;
76 void pci_read_ht_mapping_info(PCIDev
*device
);
79 #endif // _PCI_x86_MSI_H