Nebojsa's answer is good, but here is a bit more information and an answer to magmabyte's comment.
dmidecode gives you the number of slots, however, these slots are not the only things using the PCI bridge, so you see much more devices than slots.
Secondly, you can see several βdevicesβ on each slot, but they are probably just several ports on the same card. To give you an example of using network interface cards (NICs):
megaman@someserver $ lspci | grep 10Gb 07:00.0 Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (rev 02) 07:00.1 Ethernet controller: Emulex Corporation OneConnect 10Gb NIC (rev 02)
dmidecode indicates that this server has three slots (and it does). Slot 1 has a 10Gb NIC above (you can see that it has 2 ports), slot 2 has a fiber optic channel card (which also has 2 ports), and finally slot 3 is empty.
There are three physical slots in the server: one is empty, two are filled with cards with several ports (HBA and network adapter).
To answer your question in a comment, 3 slots you have are those indicated by dmidecode , and they are probably filled with interface cards of several ports.
source share