Page MenuHomeFreeBSD

D52313.1775322827.diff
No OneTemporary

Size
2 KB
Referenced Files
None
Subscribers
None

D52313.1775322827.diff

diff --git a/share/man/man4/pci.4 b/share/man/man4/pci.4
--- a/share/man/man4/pci.4
+++ b/share/man/man4/pci.4
@@ -22,7 +22,7 @@
.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
.\" SUCH DAMAGE.
.\"
-.Dd August 20, 2025
+.Dd August 31, 2025
.Dt PCI 4
.Os
.Sh NAME
@@ -237,6 +237,15 @@
Driver unit number.
.It pd_numa_domain
Driver NUMA domain.
+.It pc_reported_len
+Length of the valid portion of the encompassing
+.Vt pci_conf
+structure.
+This should always be equivalent to the offset of the
+.Va pc_spare
+member.
+.It pc_spare
+Reserved for future use.
.El
.It offset
The offset is passed in by the user to tell the kernel where it should
diff --git a/sys/dev/pci/pci_user.c b/sys/dev/pci/pci_user.c
--- a/sys/dev/pci/pci_user.c
+++ b/sys/dev/pci/pci_user.c
@@ -80,6 +80,8 @@
char pd_name[PCI_MAXNAMELEN + 1]; /* device name */
u_int32_t pd_unit; /* device unit number */
int pd_numa_domain; /* device NUMA domain */
+ u_int32_t pc_reported_len;/* length of PCI data reported */
+ char pc_spare[64]; /* space for future fields */
};
struct pci_match_conf32 {
@@ -885,8 +887,11 @@
strlcpy(pcup->pc32.pd_name, pcp->pd_name,
sizeof(pcup->pc32.pd_name));
pcup->pc32.pd_unit = (uint32_t)pcp->pd_unit;
- if (cmd == PCIOCGETCONF32)
+ if (cmd == PCIOCGETCONF32) {
pcup->pc32.pd_numa_domain = pcp->pd_numa_domain;
+ pcup->pc32.pc_reported_len =
+ (uint32_t)offsetof(struct pci_conf32, pc_spare);
+ }
return;
#endif /* COMPAT_FREEBSD32 */
@@ -1326,6 +1331,9 @@
break;
}
+ dinfo->conf.pc_reported_len =
+ offsetof(struct pci_conf, pc_spare);
+
pci_conf_for_copyout(&dinfo->conf, &pcu, cmd);
error = copyout(&pcu,
(caddr_t)cio->matches +
diff --git a/sys/sys/pciio.h b/sys/sys/pciio.h
--- a/sys/sys/pciio.h
+++ b/sys/sys/pciio.h
@@ -78,6 +78,8 @@
char pd_name[PCI_MAXNAMELEN + 1]; /* device name */
u_long pd_unit; /* device unit number */
int pd_numa_domain; /* device NUMA domain */
+ size_t pc_reported_len;/* length of PCI data reported */
+ char pc_spare[64]; /* space for future fields */
};
struct pci_match_conf {

File Metadata

Mime Type
text/plain
Expires
Sat, Apr 4, 5:13 PM (7 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28260525
Default Alt Text
D52313.1775322827.diff (2 KB)

Event Timeline