Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F137571037
D7400.id19009.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
4 KB
Referenced Files
None
Subscribers
None
D7400.id19009.diff
View Options
Index: head/share/man/man9/Makefile
===================================================================
--- head/share/man/man9/Makefile
+++ head/share/man/man9/Makefile
@@ -1303,6 +1303,7 @@
pci.9 pci_get_vpd_ident.9 \
pci.9 pci_get_vpd_readonly.9 \
pci.9 pci_iov_attach.9 \
+ pci.9 pci_iov_attach_name.9 \
pci.9 pci_iov_detach.9 \
pci.9 pci_msi_count.9 \
pci.9 pci_msix_count.9 \
Index: head/share/man/man9/pci.9
===================================================================
--- head/share/man/man9/pci.9
+++ head/share/man/man9/pci.9
@@ -25,7 +25,7 @@
.\"
.\" $FreeBSD$
.\"
-.Dd June 24, 2016
+.Dd August 3, 2016
.Dt PCI 9
.Os
.Sh NAME
@@ -50,6 +50,7 @@
.Nm pci_get_vpd_ident ,
.Nm pci_get_vpd_readonly ,
.Nm pci_iov_attach ,
+.Nm pci_iov_attach_name ,
.Nm pci_iov_detach ,
.Nm pci_msi_count ,
.Nm pci_msix_count ,
@@ -152,6 +153,14 @@
.Ft int
.Fn pci_iov_attach "device_t dev" "nvlist_t *pf_schema" "nvlist_t *vf_schema"
.Ft int
+.Fo pci_iov_attach_name
+.Fa "device_t dev"
+.Fa "nvlist_t *pf_schema"
+.Fa "nvlist_t *vf_schema"
+.Fa "const char *fmt"
+.Fa "..."
+.Fc
+.Ft int
.Fn pci_iov_detach "device_t dev"
.Sh DESCRIPTION
The
@@ -595,6 +604,20 @@
The driver must never free the schemas itself.
.Pp
The
+.Fn pci_iov_attach_name
+function is a variant of
+.Fn pci_iov_attach
+that allows the name of the associated character device in
+.Pa /dev/iov
+to be specified by
+.Fa fmt .
+The
+.Fn pci_iov_attach
+function uses the name of
+.Fa dev
+as the device name.
+.Pp
+The
.Fn pci_iov_detach
function is used to advise the SR-IOV infrastructure that the driver for the
given device is attempting to detach and that all SR-IOV resources for the
Index: head/sys/dev/pci/pci_if.m
===================================================================
--- head/sys/dev/pci/pci_if.m
+++ head/sys/dev/pci/pci_if.m
@@ -235,6 +235,7 @@
device_t child;
struct nvlist *pf_schema;
struct nvlist *vf_schema;
+ const char *name;
};
METHOD int iov_detach {
Index: head/sys/dev/pci/pci_iov.h
===================================================================
--- head/sys/dev/pci/pci_iov.h
+++ head/sys/dev/pci/pci_iov.h
@@ -33,11 +33,14 @@
struct nvlist;
+int pci_iov_attach_name(device_t dev, struct nvlist *pf_schema,
+ struct nvlist *vf_schema, const char *fmt, ...) __printflike(4, 5);
+
static __inline int
pci_iov_attach(device_t dev, struct nvlist *pf_schema, struct nvlist *vf_schema)
{
return (PCI_IOV_ATTACH(device_get_parent(dev), dev, pf_schema,
- vf_schema));
+ vf_schema, device_get_nameunit(dev)));
}
static __inline int
Index: head/sys/dev/pci/pci_iov.c
===================================================================
--- head/sys/dev/pci/pci_iov.c
+++ head/sys/dev/pci/pci_iov.c
@@ -98,8 +98,22 @@
static nvlist_t *pci_iov_get_vf_subsystem_schema(void);
int
+pci_iov_attach_name(device_t dev, struct nvlist *pf_schema,
+ struct nvlist *vf_schema, const char *fmt, ...)
+{
+ char buf[NAME_MAX + 1];
+ va_list ap;
+
+ va_start(ap, fmt);
+ vsnprintf(buf, sizeof(buf), fmt, ap);
+ va_end(ap);
+ return (PCI_IOV_ATTACH(device_get_parent(dev), dev, pf_schema,
+ vf_schema, buf));
+}
+
+int
pci_iov_attach_method(device_t bus, device_t dev, nvlist_t *pf_schema,
- nvlist_t *vf_schema)
+ nvlist_t *vf_schema, const char *name)
{
device_t pcib;
struct pci_devinfo *dinfo;
@@ -149,7 +163,7 @@
iov->iov_schema = schema;
iov->iov_cdev = make_dev(&iov_cdevsw, device_get_unit(dev),
- UID_ROOT, GID_WHEEL, 0600, "iov/%s", device_get_nameunit(dev));
+ UID_ROOT, GID_WHEEL, 0600, "iov/%s", name);
if (iov->iov_cdev == NULL) {
error = ENOMEM;
Index: head/sys/dev/pci/pci_private.h
===================================================================
--- head/sys/dev/pci/pci_private.h
+++ head/sys/dev/pci/pci_private.h
@@ -158,7 +158,8 @@
rman_res_t count, u_long num, u_int flags);
int pci_iov_attach_method(device_t bus, device_t dev,
- struct nvlist *pf_schema, struct nvlist *vf_schema);
+ struct nvlist *pf_schema, struct nvlist *vf_schema,
+ const char *name);
int pci_iov_detach_method(device_t bus, device_t dev);
device_t pci_create_iov_child_method(device_t bus, device_t pf,
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Tue, Nov 25, 9:29 AM (15 h, 41 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
26121688
Default Alt Text
D7400.id19009.diff (4 KB)
Attached To
Mode
D7400: Permit the name of the /dev/iov entry to be set by the driver.
Attached
Detach File
Event Timeline
Log In to Comment