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); pcicfgw16(p, PciPCR, p->pcr);
} }
static int int
enumcaps(Pcidev *p, int (*fmatch)(Pcidev*, int, int, int), int arg) pcienumcaps(Pcidev *p, int (*fmatch)(Pcidev*, int, int, int), int arg)
{ {
int i, r, cap, off; int i, r, cap, off;
@ -971,13 +971,13 @@ matchhtcap(Pcidev *p, int cap, int off, int arg)
int int
pcicap(Pcidev *p, int cap) pcicap(Pcidev *p, int cap)
{ {
return enumcaps(p, matchcap, cap); return pcienumcaps(p, matchcap, cap);
} }
int int
pcihtcap(Pcidev *p, int cap) pcihtcap(Pcidev *p, int cap)
{ {
return enumcaps(p, matchhtcap, cap); return pcienumcaps(p, matchhtcap, cap);
} }
static int static int

View file

@ -254,6 +254,7 @@ extern void pciclrmwi(Pcidev* p);
extern int pcicap(Pcidev *p, int cap); extern int pcicap(Pcidev *p, int cap);
extern int pcihtcap(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 pcimsienable(Pcidev *p, uvlong addr, ulong data);
extern int pcimsidisable(Pcidev *p); extern int pcimsidisable(Pcidev *p);