Date: Thu, 28 Apr 2005 19:39:33 +0200 From: "Cole" <cole@opteqint.net> To: <freebsd-hackers@freebsd.org> Subject: PCI Programming Message-ID: <000901c54c19$3dba2570$4206000a@deadmind>
next in thread | raw e-mail | index | archive | help
Hey Im currently trying to port some linux pci driver to FreeBSD code. But im running into a problem. Its using a function that I cant seem to find the equivalent of for FreeBSD. Heres the function up to the point where im getting stuck. int FindDevice( void ) { static struct pci_dev *pciptr; int pci_info_index = 0; U16 wDev; unsigned int tmp_addr; /*-----------------------------------------*/ #ifdef CONFIG_PCI // find the specified device and its configuration if( pcibios_present() ){ pci_for_each_dev( pciptr ){ if ((pciptr->vendor == VENDOR_ID) && \ (pciptr->device == DEVICE_ID) && \ (pciptr->subsystem_vendor == SUBSYSTEM_VID) && \ (pciptr->subsystem_device == SUBSYSTEM_DID) && \ (PCI_FUNC(pciptr->devfn) == 0) ) { DevExtension[pci_info_index].wBus= pciptr->bus->number; DevExtension[pci_info_index].wDevFunc= pciptr->devfn; DevExtension[pci_info_index].wCard = pci_info_index; tmp_addr = pci_resource_start( pciptr, 4 ); DevExtension[pci_info_index].func0_bar = (tmp_addr & ~0x03); now the function im getting stuck at, is the "tmp_addr = pci_resource_start(pciptr, 4). I was wondering if anyone knows of an equivalent under FreeBSD. Or if there is a way to obtain that value with some other method in FreeBSD. I am pretty much fine up until that point. If anyone has any sample code or anything that I could read to proceed any further, it would be greatly appreciated. Regards /Cole
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?000901c54c19$3dba2570$4206000a>