From b88ab14ba38d0eb2123975ed78c8eb04ba13cf72 Mon Sep 17 00:00:00 2001 From: Michael Brown Date: Fri, 8 May 2015 14:54:12 +0100 Subject: [pci] Provide PCI_CLASS() to calculate a scalar PCI class value Rename PCI_CLASS() (which constructs a struct pci_class_id) to PCI_CLASS_ID(), and provide PCI_CLASS() as a macro which constructs the 24-bit scalar value of a PCI class code. Signed-off-by: Michael Brown --- src/include/ipxe/pci.h | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) (limited to 'src/include/ipxe/pci.h') diff --git a/src/include/ipxe/pci.h b/src/include/ipxe/pci.h index 976a37c5..ccc42fee 100644 --- a/src/include/ipxe/pci.h +++ b/src/include/ipxe/pci.h @@ -118,6 +118,16 @@ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); #define PCI_CLASS_SERIAL_USB_EHCI 0x20 /**< ECHI USB controller */ #define PCI_CLASS_SERIAL_USB_XHCI 0x30 /**< xHCI USB controller */ +/** Construct PCI class + * + * @v base Base class (or PCI_ANY_ID) + * @v sub Subclass (or PCI_ANY_ID) + * @v progif Programming interface (or PCI_ANY_ID) + */ +#define PCI_CLASS( base, sub, progif ) \ + ( ( ( (base) & 0xff ) << 16 ) | ( ( (sub) & 0xff ) << 8 ) | \ + ( ( (progif) & 0xff) << 0 ) ) + /** A PCI device ID list entry */ struct pci_device_id { /** Name */ @@ -147,10 +157,8 @@ struct pci_class_id { * @v sub Subclass (or PCI_ANY_ID) * @v progif Programming interface (or PCI_ANY_ID) */ -#define PCI_CLASS(base,sub,progif) { \ - .class = ( ( ( (base) & 0xff ) << 16 ) | \ - ( ( (sub) & 0xff ) << 8 ) | \ - ( ( (progif) & 0xff) << 0 ) ), \ +#define PCI_CLASS_ID( base, sub, progif ) { \ + .class = PCI_CLASS ( base, sub, progif ), \ .mask = ( ( ( ( (base) == PCI_ANY_ID ) ? 0x00 : 0xff ) << 16 ) | \ ( ( ( (sub) == PCI_ANY_ID ) ? 0x00 : 0xff ) << 8 ) | \ ( ( ( (progif) == PCI_ANY_ID ) ? 0x00 : 0xff ) << 0 ) ), \ -- cgit v1.2.3-55-g7522