Add qemu 2.4.0
[kvmfornfv.git] / qemu / roms / ipxe / src / include / ipxe / isa_ids.h
diff --git a/qemu/roms/ipxe/src/include/ipxe/isa_ids.h b/qemu/roms/ipxe/src/include/ipxe/isa_ids.h
new file mode 100644 (file)
index 0000000..1faf114
--- /dev/null
@@ -0,0 +1,51 @@
+#ifndef ISA_IDS_H
+#define ISA_IDS_H
+
+/* 
+ * This file defines IDs as used by ISAPnP and EISA devices.  These
+ * IDs have the format:
+ *
+ * vendor  byte 0 bit  7    must be zero
+ *               bits 6-2  first vendor char in compressed ASCII
+ *               bits 1-0  second vendor char in compressed ASCII (bits 4-3)
+ *        byte 1 bits 7-5  second vendor char in compressed ASCII (bits 2-0)
+ *                bits 4-0  third vendor char in compressed ASCII
+ * product byte 0 bits 7-4  first hex digit of product number
+ *               bits 3-0  second hex digit of product number
+ *        byte 1 bits 7-4  third hex digit of product number
+ *               bits 3-0  hex digit of revision level
+ *
+ * ISA IDs are always expressed in little-endian order, even though
+ * the underlying "meaning" is big-endian.
+ */
+
+FILE_LICENCE ( GPL2_OR_LATER );
+
+#include <byteswap.h>
+
+/*
+ * Construct a vendor ID from three ASCII characters
+ *
+ */
+#define ISA_VENDOR( a, b, c )                                  \
+       bswap_16 ( ( ( ( (a) - 'A' + 1 ) & 0x1f ) << 10 ) |     \
+                  ( ( ( (b) - 'A' + 1 ) & 0x1f ) << 5 ) |      \
+                  ( ( ( (c) - 'A' + 1 ) & 0x1f ) << 0 ) )
+
+#define ISAPNP_VENDOR( a, b, c )       ISA_VENDOR ( a, b, c )
+#define EISA_VENDOR( a, b, c )         ISA_VENDOR ( a, b, c )
+
+#define        GENERIC_ISAPNP_VENDOR           ISAPNP_VENDOR ( 'P','N','P' )
+
+/*
+ * Extract product ID and revision from combined product field
+ *
+ */
+#define ISA_PROD_ID_MASK       ( 0xf0ff )
+#define ISA_PROD_ID(product)   ( (product) & ISA_PROD_ID_MASK )
+#define ISA_PROD_REV(product)  ( ( (product) & ~ISA_PROD_ID_MASK ) >> 8 )
+
+/* Functions in isa_ids.c */
+extern char * isa_id_string ( unsigned int vendor, unsigned int product );
+
+#endif /* ISA_IDS_H */