Subversion Repositories HelenOS

Rev

Rev 1302 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. /*
  2.  *  The PCI Library -- Internal Stuff
  3.  *
  4.  *  Copyright (c) 1997--2004 Martin Mares <mj@ucw.cz>
  5.  *
  6.  *  Modified and ported to HelenOS by Jakub Jermar.
  7.  *
  8.  *  Can be freely distributed and used under the terms of the GNU GPL.
  9.  */
  10.  
  11. #include "pci.h"
  12. #include "sysdep.h"
  13.  
  14. struct pci_methods {
  15.   char *name;
  16.   void (*config)(struct pci_access *);
  17.   int (*detect)(struct pci_access *);
  18.   void (*init)(struct pci_access *);
  19.   void (*cleanup)(struct pci_access *);
  20.   void (*scan)(struct pci_access *);
  21.   int (*fill_info)(struct pci_dev *, int flags);
  22.   int (*read)(struct pci_dev *, int pos, byte *buf, int len);
  23.   int (*write)(struct pci_dev *, int pos, byte *buf, int len);
  24.   void (*init_dev)(struct pci_dev *);
  25.   void (*cleanup_dev)(struct pci_dev *);
  26. };
  27.  
  28. void pci_generic_scan_bus(struct pci_access *, byte *busmap, int bus);
  29. void pci_generic_scan(struct pci_access *);
  30. int pci_generic_fill_info(struct pci_dev *, int flags);
  31. int pci_generic_block_read(struct pci_dev *, int pos, byte *buf, int len);
  32. int pci_generic_block_write(struct pci_dev *, int pos, byte *buf, int len);
  33.  
  34. void *pci_malloc(struct pci_access *, int);
  35. void pci_mfree(void *);
  36.  
  37. struct pci_dev *pci_alloc_dev(struct pci_access *);
  38. int pci_link_dev(struct pci_access *, struct pci_dev *);
  39.  
  40. extern struct pci_methods pm_intel_conf1, pm_intel_conf2, pm_linux_proc,
  41.     pm_fbsd_device, pm_aix_device, pm_nbsd_libpci, pm_obsd_device,
  42.     pm_dump, pm_linux_sysfs;
  43.