-PCI scanning
[pintos-anon] / src / devices / usb.c
1 #include <list.h>
2 #include <stdio.h>
3 #include "devices/pci.h"
4 #include "devices/usb.h"
5
6 extern struct list pci_dev_list;
7
8 void usb_init(void)
9 {
10   printf ("USB: Initializing\n");
11
12   /* Scan PCI devices for USB controllers */
13   struct list_elem *e;
14
15   for (e = list_begin (&pci_dev_list); e != list_end (&pci_dev_list);
16        e = list_next (e))
17     {
18       struct pci_dev *dev = list_entry (e, struct pci_dev, elem);
19
20       if (dev->base_class == USB_BASE_CLASS &&
21           dev->sub_class == USB_SUB_CLASS)
22         {
23           printf ("USB: Found controller at %04x:%02x:%02x.%x\n",
24                   0, dev->bus_id, dev->devfn >> 4, dev->devfn & 0xf);
25         }
26     }
27   printf ("USB: Initialization done\n");
28 }