xref: /minix3/minix/lib/libsys/pci_next_dev.c (revision 433d6423c39e34ec4b79c950597bb2d236f886be)
1 /*
2 pci_next_dev.c
3 */
4 
5 #include "pci.h"
6 #include "syslib.h"
7 #include <minix/sysutil.h>
8 
9 /*===========================================================================*
10  *				pci_next_dev				     *
11  *===========================================================================*/
pci_next_dev(devindp,vidp,didp)12 int pci_next_dev(devindp, vidp, didp)
13 int *devindp;
14 u16_t *vidp;
15 u16_t *didp;
16 {
17 	int r;
18 	message m;
19 
20 	m.m_type= BUSC_PCI_NEXT_DEV;
21 	m.m1_i1= *devindp;
22 
23 	r= ipc_sendrec(pci_procnr, &m);
24 	if (r != 0)
25 		panic("pci_next_dev: can't talk to PCI: %d", r);
26 
27 	if (m.m_type == 1)
28 	{
29 		*devindp= m.m1_i1;
30 		*vidp= m.m1_i2;
31 		*didp= m.m1_i3;
32 #if 0
33 		printf("pci_next_dev: got device %d, %04x/%04x\n",
34 			*devindp, *vidp, *didp);
35 #endif
36 		return 1;
37 	}
38 	if (m.m_type != 0)
39 		panic("pci_next_dev: got bad reply from PCI: %d", m.m_type);
40 
41 	return 0;
42 }
43 
44