|
@@ -0,0 +1,44 @@
|
|
1
|
+#ifndef ISA_IDS_H
|
|
2
|
+#define ISA_IDS_H
|
|
3
|
+
|
|
4
|
+/*
|
|
5
|
+ * This file defines IDs as used by ISAPnP and EISA devices. These
|
|
6
|
+ * IDs have the format:
|
|
7
|
+ *
|
|
8
|
+ * vendor byte 0 bit 7 must be zero
|
|
9
|
+ * bits 6-2 first vendor char in compressed ASCII
|
|
10
|
+ * bits 1-0 second vendor char in compressed ASCII (bits 4-3)
|
|
11
|
+ * byte 1 bits 7-5 second vendor char in compressed ASCII (bits 2-0)
|
|
12
|
+ * bits 4-0 third vendor char in compressed ASCII
|
|
13
|
+ * product byte 0 bits 7-4 first hex digit of product number
|
|
14
|
+ * bits 3-0 second hex digit of product number
|
|
15
|
+ * byte 1 bits 7-4 third hex digit of product number
|
|
16
|
+ * bits 3-0 hex digit of revision level
|
|
17
|
+ *
|
|
18
|
+ */
|
|
19
|
+
|
|
20
|
+#include "stdint.h"
|
|
21
|
+
|
|
22
|
+/*
|
|
23
|
+ * Construct a vendor ID from three ASCII characters
|
|
24
|
+ *
|
|
25
|
+ */
|
|
26
|
+#define ISA_VENDOR(a,b,c) (((((a)-'A'+1)&0x3f)<<2)|\
|
|
27
|
+ ((((b)-'A'+1)&0x18)>>3)|((((b)-'A'+1)&7)<<13)|\
|
|
28
|
+ ((((c)-'A'+1)&0x1f)<<8))
|
|
29
|
+#define ISAPNP_VENDOR(a,b,c) ISA_VENDOR(a,b,c)
|
|
30
|
+#define EISA_VENDOR(a,b,c) ISA_VENDOR(a,b,c)
|
|
31
|
+
|
|
32
|
+#define GENERIC_ISAPNP_VENDOR ISAPNP_VENDOR('P','N','P')
|
|
33
|
+
|
|
34
|
+/*
|
|
35
|
+ * Extract product ID and revision from combined product field
|
|
36
|
+ *
|
|
37
|
+ */
|
|
38
|
+#define ISA_PROD_ID(product) ( (product) & 0xf0ff )
|
|
39
|
+#define ISA_PROD_REV(product) ( ( (product) & 0x0f00 ) >> 8 )
|
|
40
|
+
|
|
41
|
+/* Functions in isa_ids.c */
|
|
42
|
+extern char * isa_id_string ( uint16_t vendor, uint16_t product );
|
|
43
|
+
|
|
44
|
+#endif /* ISA_IDS_H */
|