tags 324342 +patch
thanks

Hi,

On Thu, Aug 25, 2005 at 03:37:18PM +0200, Love Hörnquist Åstrand wrote:
> Michael Banck <[EMAIL PROTECTED]> writes:
> > There is no kernel AFS support in the Hurd yet (though this issue might
> > have stirred up some interest to write a translator for it), so the
> > syscalls in afssys.c fail.
> >
> > I am not sure what should be done in the generic case (I saw there is
> > some code for various other operating systems), but I think it makes no
> > sense to call these syscalls without kernel support?  There was quite a
> > discussion whether a bogus ioctl should be added to glibc on the Hurd
> > for this issue, but this got (rightfully, IMHO) discarded by the
> > maintainers.
> 
> I agree that the ioctl should not be added to the glibc just for this, that
> why we define the cpp symbols ourself in kafs.h/afssys.c.
> 
> In other unixes _IOW creates something standalone, apprently Hurd is born
> diffrently.
> 
> In case of hurd we can use something other then _IOW and things will work
> jus fine, the resulting numbers from _IOW are used in pioctl calls and can
> overlap with ioctl numbers.
> 
> So defineing _VICEIOCTL to 
> 
> #define _VICEIOCTL(v)   ((unsigned int ) (0x56000000 | v)
> #define VIOC_SYSCALL  ((unsigned int ) (0x43000000 | 1)
> 
> for Hurd should work just fine.
> 
> #define _(v)   ((unsigned int ) (0x56000000 | v)

Thanks, I was able to build heimdal successfully with the attached
patch, though I am not sure this is the most elegant way to put those
defines, or how the resulting libkafs will react.


cheers,

Michael

-- 
Michael Banck
Debian Developer
[EMAIL PROTECTED]
http://www.advogato.org/person/mbanck/diary.html
--- heimdal-0.7.1/lib/kafs/kafs.h     2005-11-02 00:43:06.000000000 +0100
+++ heimdal-0.7.1.new/lib/kafs/kafs.h 2005-11-02 00:43:27.000000000 +0100
@@ -46,7 +46,11 @@
 #define AFSCALL_SETPAG 21
 
 #ifndef _VICEIOCTL
+#ifdef __GNU__
+#define _VICEIOCTL(v)   ((unsigned int ) (0x56000000 | v))
+#else
 #define _VICEIOCTL(id)  ((unsigned int ) _IOW('V', id, struct ViceIoctl))
+#endif /* __GNU__ */
 #endif /* _VICEIOCTL */
 
 #define VIOCSETAL              _VICEIOCTL(1)
--- heimdal-0.7.1/lib/kafs/afssys.c     2005-11-02 00:43:06.000000000 +0100
+++ heimdal-0.7.1.new/lib/kafs/afssys.c 2005-11-02 00:43:27.000000000 +0100
@@ -42,7 +42,11 @@
     unsigned long param1;
     unsigned long syscall;
 };
+#ifdef __GNU__
+#define VIOC_SYSCALL    (unsigned int ) (0x43000000 | 1)
+#else
 #define VIOC_SYSCALL _IOW('C', 1, void *)
+#endif
 
 
 int _kafs_debug; /* this should be done in a better way */

Reply via email to