Messages in this thread | | | Date | Thu, 23 Mar 2006 08:30:49 +0200 | From | "Michael S. Tsirkin" <> | Subject | Re: [PATCH 8 of 18] ipath - sysfs and ipathfs support for core driver |
| |
Quoting r. Bryan O'Sullivan <bos@pathscale.com>: > Subject: [PATCH 8 of 18] ipath - sysfs and ipathfs support for core driver > > The ipathfs filesystem contains files that are not appropriate for > sysfs, because they contain binary data. The hierarchy is simple; the > top-level directory contains driver-wide attribute files, while numbered > subdirectories contain per-device attribute files. > > Signed-off-by: Bryan O'Sullivan <bos@pathscale.com>
.....
> +static ssize_t atomic_node_info_read(struct file *file, char __user *buf, > + size_t count, loff_t *ppos) > +{ > + u32 nodeinfo[10]; > + struct ipath_devdata *dd; > + > + dd = file->f_dentry->d_inode->u.generic_ip; > + > + nodeinfo[0] = /* BaseVersion is SMA */ > + /* ClassVersion is SMA */ > + (1 << 8) /* NodeType */ > + | (1 << 0); /* NumPorts */ > + nodeinfo[1] = (u32) (dd->ipath_guid >> 32); > + nodeinfo[2] = (u32) (dd->ipath_guid & 0xffffffff); > + /* PortGUID == SystemImageGUID for us */ > + nodeinfo[3] = nodeinfo[1]; > + /* PortGUID == SystemImageGUID for us */ > + nodeinfo[4] = nodeinfo[2]; > + /* PortGUID == NodeGUID for us */ > + nodeinfo[5] = nodeinfo[3]; > + /* PortGUID == NodeGUID for us */ > + nodeinfo[6] = nodeinfo[4]; > + nodeinfo[7] = (4 << 16) /* we support 4 pkeys */ > + | (dd->ipath_deviceid << 0); > + /* our chip version as 16 bits major, 16 bits minor */ > + nodeinfo[8] = dd->ipath_minrev | (dd->ipath_majrev << 16); > + nodeinfo[9] = (dd->ipath_unit << 24) | (dd->ipath_vendorid << 0); > + > + return simple_read_from_buffer(buf, count, ppos, nodeinfo, > + sizeof nodeinfo);
InfiniBand core already exposes these attributes to userspace, see drivers/infiniband/core/sysfs.c
-- Michael S. Tsirkin Staff Engineer, Mellanox Technologies - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |