On Thu, 15 Jan 2009 10:57:13 +0200 Boaz Harrosh <bharrosh@xxxxxxxxxxx> wrote: > I've tested and linux/bsg.h is perfect for user-mode consumption. It > has a few kernel declarations protected by ifdef __KERNEL__ and exactly > what you have above. I did not change anything > > > We don't install any files in include/scsi/* to userspace. > > > > fujita@viola:~/git/linux-2.6$ cat include/Kbuild > > # Top-level Makefile calls into asm-$(ARCH) > > # List only non-arch directories below > > > > header-y += asm-generic/ > > header-y += linux/ > > header-y += sound/ > > header-y += mtd/ > > header-y += rdma/ > > header-y += video/ > > header-y += drm/ > > > > But that's fine then since bsg.h is in <linux/bsg.h> > not <scsi/bsg.h> what is the problem? Oops, somehow I placed bsg.h in include/scsi. Ignore the above my comments. > OK But you just explained how to do it patch below ... > > > I guess that SCSI header files for userspace > > (/usr/include/scsi/scsi.h, sg.h, etc) come from glibc (but I'm not > > sure). They are different from those in kernel. > > > > > >> Meanwhile I will manually copy it to /usr/include/linux/bsg.h and see > >> if I need to fix any thing so it can be compiled from user-mode. > >> > >> Also do you have a small libbsg or something to make it easier for > >> use by application? should we maintain such a package? > >> > >> Pete from the OSC osd project has his set of headers and library > >> which I used now. Should I clean it up and send it? Or should I just > >> keep it as part of the osd project for now? what are the sas and fc > >> guys using? > > > > Doug copies bsg.h to his smp_utils. I do the same thing for my own bsg > > programs. We need glibc (or someone) to install bsg.h properly. > > That is not acceptable for me since I will need to provide an open-osd-devel > package to distros and I might need bsg.h, which I cannot supply with my > package, what if someone else will need it too then we have a conflict. > > I'm sending a patch, please ACK? > Thanks > Boaz As I wrote in the previous mail, exporting some of bsg stuff for userspace is necessary, I think. But I have no idea about the correct way to do it. Seems the header files in /usr/include/linux/ are different from in kernel source code (pointless __KERNEL__ stuff are stripped): fujita@viola:~$ diff git/linux-2.6/include/linux/xattr.h /usr/include/linux/xattr.h 16,19d15 < #ifdef __KERNEL__ < < #include <linux/types.h> < 36,37d31 < struct inode; < struct dentry; 49,53c43,45 < ssize_t xattr_getsecurity(struct inode *, const char *, void *, size_t); < ssize_t vfs_getxattr(struct dentry *, const char *, void *, size_t); < ssize_t vfs_listxattr(struct dentry *d, char *list, size_t size); < int vfs_setxattr(struct dentry *, const char *, const void *, size_t, int); < int vfs_removexattr(struct dentry *, const char *); --- > ssize_t vfs_getxattr(struct dentry *, char *, void *, size_t); > int vfs_setxattr(struct dentry *, char *, void *, size_t, int); > int vfs_removexattr(struct dentry *, char *); 60,61d51 < #endif /* __KERNEL__ */ < Your patch does the right thing? > --- > From: Boaz Harrosh <bharrosh@xxxxxxxxxxx> > Date: Thu, 15 Jan 2009 10:43:17 +0200 > Subject: [PATCH] include/linux: Add bsg.h to the Kernel exported headers > > bsg.h in current form is perfectly suitable for user-mode > consumption. It is needed together with scsi/sg.h for applications > that want to interface with the bsg driver. > > Currently the few projects that use it would copy it over into > the projects. But that is not acceptable for projects that need > to provide a libxxx-devel package for distros. > > Signed-off-by: Boaz Harrosh <bharrosh@xxxxxxxxxxx> > --- > include/linux/Kbuild | 1 + > 1 files changed, 1 insertions(+), 0 deletions(-) > > diff --git a/include/linux/Kbuild b/include/linux/Kbuild > index 12e9a29..2124c06 100644 > --- a/include/linux/Kbuild > +++ b/include/linux/Kbuild > @@ -41,6 +41,7 @@ header-y += baycom.h > header-y += bfs_fs.h > header-y += blkpg.h > header-y += bpqether.h > +header-y += bsg.h > header-y += can.h > header-y += cdk.h > header-y += chio.h > -- > 1.6.0.1 > > > > > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-scsi" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html