xref: /minix/minix/lib/libsys/pci_get_bar.c (revision 83133719)
1 /*
2 pci_get_bar.c
3 */
4 
5 #include "pci.h"
6 #include "syslib.h"
7 #include <minix/sysutil.h>
8 
9 /*===========================================================================*
10  *				pci_get_bar				     *
11  *===========================================================================*/
12 int pci_get_bar(devind, port, base, size, ioflag)
13 int devind;
14 int port;
15 u32_t *base;
16 u32_t *size;
17 int *ioflag;
18 {
19 	int r;
20 	message m;
21 
22 	m.m_type= BUSC_PCI_GET_BAR;
23 	m.m_lsys_pci_busc_get_bar.devind = devind;
24 	m.m_lsys_pci_busc_get_bar.port = port;
25 
26 	r= ipc_sendrec(pci_procnr, &m);
27 	if (r != 0)
28 		panic("pci_get_bar: can't talk to PCI: %d", r);
29 
30 	if (m.m_type == 0)
31 	{
32 		*base= m.m_pci_lsys_busc_get_bar.base;
33 		*size= m.m_pci_lsys_busc_get_bar.size;
34 		*ioflag= m.m_pci_lsys_busc_get_bar.flags;
35 	}
36 	return m.m_type;
37 }
38 
39