kernel: export pcienumcaps() for custom capability enumeration in drivers (virtio)

This used to be a internal function, but virtio
uses multiple structures with the same cap type
to indicate the location of various register
blocks in the pci bars so export it.
This commit is contained in:
cinap_lenrek 2021-07-10 18:34:22 +00:00
parent 51a351e845
commit c3589ef3cf
2 changed files with 5 additions and 4 deletions

View file

@ -910,8 +910,8 @@ pciclrmwi(Pcidev* p)
pcicfgw16(p, PciPCR, p->pcr);
}
static int
enumcaps(Pcidev *p, int (*fmatch)(Pcidev*, int, int, int), int arg)
int
pcienumcaps(Pcidev *p, int (*fmatch)(Pcidev*, int, int, int), int arg)
{
int i, r, cap, off;
@ -971,13 +971,13 @@ matchhtcap(Pcidev *p, int cap, int off, int arg)
int
pcicap(Pcidev *p, int cap)
{
return enumcaps(p, matchcap, cap);
return pcienumcaps(p, matchcap, cap);
}
int
pcihtcap(Pcidev *p, int cap)
{
return enumcaps(p, matchhtcap, cap);
return pcienumcaps(p, matchhtcap, cap);
}
static int

View file

@ -254,6 +254,7 @@ extern void pciclrmwi(Pcidev* p);
extern int pcicap(Pcidev *p, int cap);
extern int pcihtcap(Pcidev *p, int cap);
extern int pcienumcaps(Pcidev *p, int (*fmatch)(Pcidev*, int, int, int), int arg);
extern int pcimsienable(Pcidev *p, uvlong addr, ulong data);
extern int pcimsidisable(Pcidev *p);