1 /**************************************************************************** 2 **************************************************************************** 3 *** 4 *** This header was automatically generated from a Linux kernel header 5 *** of the same name, to make information necessary for userspace to 6 *** call into the kernel available to libc. It contains only constants, 7 *** structures, and macros generated from the original header, and thus, 8 *** contains no copyrightable information. 9 *** 10 **************************************************************************** 11 ****************************************************************************/ 12 #ifndef LINUX_MOD_DEVICETABLE_H 13 #define LINUX_MOD_DEVICETABLE_H 14 15 #define PCI_ANY_ID (~0) 16 17 struct pci_device_id { 18 __u32 vendor, device; 19 __u32 subvendor, subdevice; 20 __u32 class, class_mask; 21 kernel_ulong_t driver_data; 22 }; 23 24 #define IEEE1394_MATCH_VENDOR_ID 0x0001 25 #define IEEE1394_MATCH_MODEL_ID 0x0002 26 #define IEEE1394_MATCH_SPECIFIER_ID 0x0004 27 #define IEEE1394_MATCH_VERSION 0x0008 28 29 struct ieee1394_device_id { 30 __u32 match_flags; 31 __u32 vendor_id; 32 __u32 model_id; 33 __u32 specifier_id; 34 __u32 version; 35 kernel_ulong_t driver_data 36 __attribute__((aligned(sizeof(kernel_ulong_t)))); 37 }; 38 39 struct usb_device_id { 40 41 __u16 match_flags; 42 43 __u16 idVendor; 44 __u16 idProduct; 45 __u16 bcdDevice_lo; 46 __u16 bcdDevice_hi; 47 48 __u8 bDeviceClass; 49 __u8 bDeviceSubClass; 50 __u8 bDeviceProtocol; 51 52 __u8 bInterfaceClass; 53 __u8 bInterfaceSubClass; 54 __u8 bInterfaceProtocol; 55 56 kernel_ulong_t driver_info; 57 }; 58 59 #define USB_DEVICE_ID_MATCH_VENDOR 0x0001 60 #define USB_DEVICE_ID_MATCH_PRODUCT 0x0002 61 #define USB_DEVICE_ID_MATCH_DEV_LO 0x0004 62 #define USB_DEVICE_ID_MATCH_DEV_HI 0x0008 63 #define USB_DEVICE_ID_MATCH_DEV_CLASS 0x0010 64 #define USB_DEVICE_ID_MATCH_DEV_SUBCLASS 0x0020 65 #define USB_DEVICE_ID_MATCH_DEV_PROTOCOL 0x0040 66 #define USB_DEVICE_ID_MATCH_INT_CLASS 0x0080 67 #define USB_DEVICE_ID_MATCH_INT_SUBCLASS 0x0100 68 #define USB_DEVICE_ID_MATCH_INT_PROTOCOL 0x0200 69 70 struct ccw_device_id { 71 __u16 match_flags; 72 73 __u16 cu_type; 74 __u16 dev_type; 75 __u8 cu_model; 76 __u8 dev_model; 77 78 kernel_ulong_t driver_info; 79 }; 80 81 #define CCW_DEVICE_ID_MATCH_CU_TYPE 0x01 82 #define CCW_DEVICE_ID_MATCH_CU_MODEL 0x02 83 #define CCW_DEVICE_ID_MATCH_DEVICE_TYPE 0x04 84 #define CCW_DEVICE_ID_MATCH_DEVICE_MODEL 0x08 85 86 #define PNP_ID_LEN 8 87 #define PNP_MAX_DEVICES 8 88 89 struct pnp_device_id { 90 __u8 id[PNP_ID_LEN]; 91 kernel_ulong_t driver_data; 92 }; 93 94 struct pnp_card_device_id { 95 __u8 id[PNP_ID_LEN]; 96 kernel_ulong_t driver_data; 97 struct { 98 __u8 id[PNP_ID_LEN]; 99 } devs[PNP_MAX_DEVICES]; 100 }; 101 102 #define SERIO_ANY 0xff 103 104 struct serio_device_id { 105 __u8 type; 106 __u8 extra; 107 __u8 id; 108 __u8 proto; 109 }; 110 111 struct of_device_id 112 { 113 char name[32]; 114 char type[32]; 115 char compatible[128]; 116 kernel_ulong_t data; 117 }; 118 119 struct vio_device_id { 120 char type[32]; 121 char compat[32]; 122 }; 123 124 struct pcmcia_device_id { 125 __u16 match_flags; 126 127 __u16 manf_id; 128 __u16 card_id; 129 130 __u8 func_id; 131 132 __u8 function; 133 134 __u8 device_no; 135 136 __u32 prod_id_hash[4] 137 __attribute__((aligned(sizeof(__u32)))); 138 139 kernel_ulong_t prod_id[4] 140 __attribute__((aligned(sizeof(kernel_ulong_t)))); 141 142 kernel_ulong_t driver_info; 143 kernel_ulong_t cisfile; 144 }; 145 146 #define PCMCIA_DEV_ID_MATCH_MANF_ID 0x0001 147 #define PCMCIA_DEV_ID_MATCH_CARD_ID 0x0002 148 #define PCMCIA_DEV_ID_MATCH_FUNC_ID 0x0004 149 #define PCMCIA_DEV_ID_MATCH_FUNCTION 0x0008 150 #define PCMCIA_DEV_ID_MATCH_PROD_ID1 0x0010 151 #define PCMCIA_DEV_ID_MATCH_PROD_ID2 0x0020 152 #define PCMCIA_DEV_ID_MATCH_PROD_ID3 0x0040 153 #define PCMCIA_DEV_ID_MATCH_PROD_ID4 0x0080 154 #define PCMCIA_DEV_ID_MATCH_DEVICE_NO 0x0100 155 #define PCMCIA_DEV_ID_MATCH_FAKE_CIS 0x0200 156 #define PCMCIA_DEV_ID_MATCH_ANONYMOUS 0x0400 157 158 struct i2c_device_id { 159 __u16 id; 160 }; 161 162 #define INPUT_DEVICE_ID_EV_MAX 0x1f 163 #define INPUT_DEVICE_ID_KEY_MAX 0x1ff 164 #define INPUT_DEVICE_ID_REL_MAX 0x0f 165 #define INPUT_DEVICE_ID_ABS_MAX 0x3f 166 #define INPUT_DEVICE_ID_MSC_MAX 0x07 167 #define INPUT_DEVICE_ID_LED_MAX 0x0f 168 #define INPUT_DEVICE_ID_SND_MAX 0x07 169 #define INPUT_DEVICE_ID_FF_MAX 0x7f 170 #define INPUT_DEVICE_ID_SW_MAX 0x0f 171 172 #define INPUT_DEVICE_ID_MATCH_BUS 1 173 #define INPUT_DEVICE_ID_MATCH_VENDOR 2 174 #define INPUT_DEVICE_ID_MATCH_PRODUCT 4 175 #define INPUT_DEVICE_ID_MATCH_VERSION 8 176 177 #define INPUT_DEVICE_ID_MATCH_EVBIT 0x0010 178 #define INPUT_DEVICE_ID_MATCH_KEYBIT 0x0020 179 #define INPUT_DEVICE_ID_MATCH_RELBIT 0x0040 180 #define INPUT_DEVICE_ID_MATCH_ABSBIT 0x0080 181 #define INPUT_DEVICE_ID_MATCH_MSCIT 0x0100 182 #define INPUT_DEVICE_ID_MATCH_LEDBIT 0x0200 183 #define INPUT_DEVICE_ID_MATCH_SNDBIT 0x0400 184 #define INPUT_DEVICE_ID_MATCH_FFBIT 0x0800 185 #define INPUT_DEVICE_ID_MATCH_SWBIT 0x1000 186 187 struct input_device_id { 188 189 kernel_ulong_t flags; 190 191 __u16 bustype; 192 __u16 vendor; 193 __u16 product; 194 __u16 version; 195 196 kernel_ulong_t evbit[INPUT_DEVICE_ID_EV_MAX / BITS_PER_LONG + 1]; 197 kernel_ulong_t keybit[INPUT_DEVICE_ID_KEY_MAX / BITS_PER_LONG + 1]; 198 kernel_ulong_t relbit[INPUT_DEVICE_ID_REL_MAX / BITS_PER_LONG + 1]; 199 kernel_ulong_t absbit[INPUT_DEVICE_ID_ABS_MAX / BITS_PER_LONG + 1]; 200 kernel_ulong_t mscbit[INPUT_DEVICE_ID_MSC_MAX / BITS_PER_LONG + 1]; 201 kernel_ulong_t ledbit[INPUT_DEVICE_ID_LED_MAX / BITS_PER_LONG + 1]; 202 kernel_ulong_t sndbit[INPUT_DEVICE_ID_SND_MAX / BITS_PER_LONG + 1]; 203 kernel_ulong_t ffbit[INPUT_DEVICE_ID_FF_MAX / BITS_PER_LONG + 1]; 204 kernel_ulong_t swbit[INPUT_DEVICE_ID_SW_MAX / BITS_PER_LONG + 1]; 205 206 kernel_ulong_t driver_info; 207 }; 208 209 #endif 210