Subversion Repositories Kolibri OS

Rev

Rev 1246 | Rev 1404 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1246 Rev 1403
Line -... Line 1...
-
 
1
#include 
1
#include 
2
#include 
2
#include 
3
#include 
3
#include 
4
#include 
Line 4... Line 5...
4
 
5
 
Line 5... Line 6...
5
static LIST_HEAD(devices);
6
static LIST_HEAD(devices);
Line 6... Line 7...
6
 
7
 
7
static dev_t* pci_scan_device(u32_t bus, int devfn);
8
static pci_dev_t* pci_scan_device(u32_t bus, int devfn);
Line 307... Line 308...
307
 
308
 
Line 308... Line 309...
308
    return 0;
309
    return 0;
309
};
310
};
Line 310... Line 311...
310
 
311
 
311
static dev_t* pci_scan_device(u32_t bus, int devfn)
312
static pci_dev_t* pci_scan_device(u32_t bus, int devfn)
312
{
313
{
Line 313... Line 314...
313
    dev_t  *dev;
314
    pci_dev_t  *dev;
314
 
315
 
Line 315... Line 316...
315
    u32_t   id;
316
    u32_t   id;
Line 342... Line 343...
342
    };
343
    };
343
 
344
 
Line 344... Line 345...
344
    hdr = PciRead8(bus, devfn, PCI_HEADER_TYPE);
345
    hdr = PciRead8(bus, devfn, PCI_HEADER_TYPE);
Line 345... Line 346...
345
 
346
 
Line 346... Line 347...
346
    dev = (dev_t*)kzalloc(sizeof(dev_t), 0);
347
    dev = (pci_dev_t*)kzalloc(sizeof(dev_t), 0);
Line 347... Line 348...
347
 
348
 
348
    INIT_LIST_HEAD(&dev->link);
349
    INIT_LIST_HEAD(&dev->link);
Line 368... Line 369...
368
    int  func, nr = 0;
369
    int  func, nr = 0;
369
 
370
 
Line 370... Line 371...
370
    for (func = 0; func < 8; func++, devfn++)
371
    for (func = 0; func < 8; func++, devfn++)
371
    {
372
    {
372
        dev_t  *dev;
373
        pci_dev_t  *dev;
Line 373... Line 374...
373
 
374
 
374
        dev = pci_scan_device(bus, devfn);
375
        dev = pci_scan_device(bus, devfn);
375
        if( dev )
376
        if( dev )
376
        {
377
        {
Line 414... Line 415...
414
}
415
}
Line 415... Line 416...
415
 
416
 
416
int enum_pci_devices()
417
int enum_pci_devices()
417
{
418
{
418
    dev_t  *dev;
419
    pci_dev_t  *dev;
419
    u32_t   last_bus;
420
    u32_t       last_bus;
Line 420... Line 421...
420
    u32_t   bus = 0 , devfn = 0;
421
    u32_t       bus = 0 , devfn = 0;
Line 742... Line 743...
742
}
743
}
743
 
744
 
Line 744... Line 745...
744
 
745
 
745
 
746
 
746
struct pci_device_id* find_pci_device(dev_t* pdev, struct pci_device_id *idlist)
747
struct pci_device_id* find_pci_device(pci_dev_t* pdev, struct pci_device_id *idlist)
747
{
748
{
Line 748... Line 749...
748
    dev_t *dev;
749
    pci_dev_t *dev;
749
    struct pci_device_id *ent;
750
    struct pci_device_id *ent;
750
 
751
 
751
    for(dev = (dev_t*)devices.next;
752
    for(dev = (pci_dev_t*)devices.next;
752
        &dev->link != &devices;
753
        &dev->link != &devices;
753
        dev = (dev_t*)dev->link.next)
754
        dev = (pci_dev_t*)dev->link.next)
Line 754... Line 755...
754
    {
755
    {