Lines Matching refs:id

152 usb_sort_entries(struct usb_device_id *id, uint32_t nid)
154 qsort(id, nid, sizeof(*id), &usb_compare);
158 usb_import_entry(struct usb_device_id *id, const char *type,
170 strlcpy(id->module_name, module, sizeof(id->module_name));
171 strlcpy(id->module_mode, mode, sizeof(id->module_mode));
176 id->match_flag_vendor = 1;
178 id->match_flag_product = 1;
180 id->match_flag_dev_lo = 1;
182 id->match_flag_dev_hi = 1;
184 id->match_flag_dev_class = 1;
186 id->match_flag_dev_subclass = 1;
188 id->match_flag_dev_protocol = 1;
190 id->match_flag_int_class = 1;
192 id->match_flag_int_subclass = 1;
194 id->match_flag_int_protocol = 1;
196 id->idVendor = format_get_field(type, "idVendor[0]", ptr, size) |
198 id->idProduct = format_get_field(type, "idProduct[0]", ptr, size) |
201 id->bcdDevice_lo = format_get_field(type, "bcdDevice_lo[0]", ptr, size) |
204 id->bcdDevice_hi = format_get_field(type, "bcdDevice_hi[0]", ptr, size) |
207 id->bDeviceClass = format_get_field(type, "bDeviceClass", ptr, size);
208 id->bDeviceSubClass = format_get_field(type, "bDeviceSubClass", ptr, size);
209 id->bDeviceProtocol = format_get_field(type, "bDeviceProtocol", ptr, size);
211 id->bInterfaceClass = format_get_field(type, "bInterfaceClass", ptr, size);
212 id->bInterfaceSubClass = format_get_field(type, "bInterfaceSubClass", ptr, size);
213 id->bInterfaceProtocol = format_get_field(type, "bInterfaceProtocol", ptr, size);
216 id->match_flag_vendor = 1;
218 id->match_flag_product = 1;
220 id->match_flag_dev_lo = 1;
222 id->match_flag_dev_hi = 1;
224 id->match_flag_dev_class = 1;
226 id->match_flag_dev_subclass = 1;
228 id->match_flag_dev_protocol = 1;
230 id->match_flag_int_class = 1;
232 id->match_flag_int_subclass = 1;
234 id->match_flag_int_protocol = 1;
237 id->is_iface = id->match_flag_int_class |
238 id->match_flag_int_protocol |
239 id->match_flag_int_subclass;
241 id->is_dev = id->match_flag_dev_class |
242 id->match_flag_dev_subclass;
244 id->is_vp = id->match_flag_vendor |
245 id->match_flag_product;
247 id->is_any = id->is_vp + id->is_dev + id->is_iface;
251 usb_dump(struct usb_device_id *id, uint32_t nid)
255 if (id->is_any) {
258 " match \"mode\" \"%s\";\n", id->module_mode);
261 id->module_name);
265 if (id->match_flag_vendor) {
267 id->idVendor);
269 if (id->match_flag_product) {
272 if (id->is_any == 1 && id->is_vp == 1) {
275 if (id[n].is_any != 1 || id[n].is_vp != 1)
277 if (id[n].idVendor != id[0].idVendor)
279 if (strcmp(id[n].module_name, id[0].module_name))
281 if (strcmp(id[n].module_mode, id[0].module_mode))
288 id->idProduct);
293 printf("0x%04x%s", id[x].idProduct,
300 if (id->match_flag_dev_class) {
302 id->bDeviceClass);
304 if (id->match_flag_dev_subclass) {
306 id->bDeviceSubClass);
308 if (id->match_flag_int_class) {
310 id->bInterfaceClass);
312 if (id->match_flag_int_subclass) {
314 id->bInterfaceSubClass);
316 if (id->match_flag_int_protocol) {
318 id->bInterfaceProtocol);
321 "};\n\n", id->module_name);
366 struct usb_device_id *id;
369 id = malloc(usb_blob_count * sizeof(*id));
370 if (id == NULL)
376 id[x++] = pub->temp;
378 usb_sort_entries(id, usb_blob_count);
381 x += usb_dump(id + x, usb_blob_count - x);
383 free(id);