I'm trying to compile the userspace standalone version of testbios and I'm getting errors in all of the pciReadByte, Word and Long functions.
'too many arguments to function pci_get_dev'
Anyone else have this issue?
V1 testbios on the same machine compiles fine.
On Sat, 2005-01-15 at 17:17, Richard Smith wrote:
I'm trying to compile the userspace standalone version of testbios and I'm getting errors in all of the pciReadByte, Word and Long functions.
'too many arguments to function pci_get_dev'
Anyone else have this issue?
V1 testbios on the same machine compiles fine.
the new pcilib have a PCI domain parameter in additional to the BUS:DEV:FN. I think you are using old pcilib, just removed the 0x00 parameter.
BTW, the int1a implementation in testbios (both V1 and V2) is not necessary correct. Yout should take a look at src/device/emulator/pcbios/pcibios.c in V2 tree.
Ollie
the new pcilib have a PCI domain parameter in additional to the BUS:DEV:FN. I think you are using old pcilib, just removed the 0x00 parameter.
When you say "new" pcilib you are talking the _alpha_ pcilib 2.1.99. The latest stable version does not have this domain parameter.
The 2.1.99 alpha is not backwards compatible with the stable so you can't just update your libs since it causes lots of other things to break.
What I ended up doing was creating a private pcilib lib in the vgabios dir and have testbios use that rather than the system library.
What was the a reason you had to move to the alpha version for the userspace program in V2? Seems like a lot of trouble for not much real gain.
BTW, the int1a implementation in testbios (both V1 and V2) is not necessary correct. Yout should take a look at src/device/emulator/pcbios/pcibios.c in V2 tree.
What parts exactly did you fix? I took a brief look. The lack of source names for the pci commands in testbios maks it hard to do a comparison without translating them to symbolics first.
the new pcilib have a PCI domain parameter in additional to the BUS:DEV:FN. I think you are using old pcilib, just removed the 0x00 parameter.
When you say "new" pcilib you are talking the _alpha_ pcilib 2.1.99. The latest stable version does not have this domain parameter.
The 2.1.99 alpha is not backwards compatible with the stable so you can't just update your libs since it causes lots of other things to break.
What I ended up doing was creating a private pcilib lib in the vgabios dir and have testbios use that rather than the system library.
What was the a reason you had to move to the alpha version for the userspace program in V2? Seems like a lot of trouble for not much real gain.
It is used because it is in FC2. I believe it is in recent SuSe too. I think it is requred for x86_64.
BTW, the int1a implementation in testbios (both V1 and V2) is not necessary correct. Yout should take a look at src/device/emulator/pcbios/pcibios.c in V2 tree.
What parts exactly did you fix? I took a brief look. The lack of source names for the pci commands in testbios maks it hard to do a comparison without translating them to symbolics first.
I don't remember. The one in emulator/pcbios is reimplemented from scratch by reading the PCI BIOS spec.
Ollie
* ollie@lanl.gov ollie@lanl.gov [050118 02:06]:
What was the a reason you had to move to the alpha version for the userspace program in V2? Seems like a lot of trouble for not much real gain.
It is used because it is in FC2. I believe it is in recent SuSe too. I think it is requred for x86_64.
I changed it to be configurable in the Makefile. Just enter your libpci version there and it will compile. Unfortunately there is no simple way to find out the version of libpci yet. There was discussion on the linux pci mailinglist so this is likely to change in near future.
Stefan
It is used because it is in FC2. I believe it is in recent SuSe too. I think it is requred for x86_64.
I changed it to be configurable in the Makefile. Just enter your libpci version there and it will compile. Unfortunately there is no simple way
I didn't see that in V2 makefile I was using. All it had was a hardcoded path /usr/lib/libpci.a
Both the #include statements in the .c files and the path to the library had to be changed.
* Richard Smith smithbone@gmail.com [050118 17:40]:
It is used because it is in FC2. I believe it is in recent SuSe too. I think it is requred for x86_64.
I changed it to be configurable in the Makefile. Just enter your libpci version there and it will compile. Unfortunately there is no simple way
I didn't see that in V2 makefile I was using. All it had was a hardcoded path /usr/lib/libpci.a
Do cvs update. The path is still hardcoded.
Both the #include statements in the .c files and the path to the library had to be changed.
Why did you have to change the #include statements?!?
Do cvs update. The path is still hardcoded.
Both the #include statements in the .c files and the path to the library had to be changed.
Why did you have to change the #include statements?!?
The include is <linux/pci> so it will grab my system copy of the headers.. I can't update the system copy of the headers since it breaks everything else that uses those headers.
The include is <linux/pci> so it will grab my system copy of the
Oops that should have been <pci/pci.h>
I see you tweaked on the source a bit. Yeah this was not present in the stuff I was working with.
It compiles fine now. Thanks.