Subversion Repositories HelenOS

Rev

Rev 2479 | 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.  *  May 8, 2006 - 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,
  33.                 int len);
  34.  
  35. void *pci_malloc(struct pci_access *, int);
  36. void pci_mfree(void *);
  37.  
  38. struct pci_dev *pci_alloc_dev(struct pci_access *);
  39. int pci_link_dev(struct pci_access *, struct pci_dev *);
  40.  
  41. extern struct pci_methods pm_intel_conf1, pm_intel_conf2, pm_linux_proc,
  42.     pm_fbsd_device, pm_aix_device, pm_nbsd_libpci, pm_obsd_device,
  43.     pm_dump, pm_linux_sysfs;
  44.