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