On Tue, 2014-02-11 at 18:09 +0100, Samuel Thibault wrote: > Svante Signell, le Tue 11 Feb 2014 17:48:50 +0100, a écrit : > > uint64_t param1; > > uint64_t syscall; > > }; > > +#ifdef __GNU__ > > +/* FIXME: Enter the correct values here */ > > +#define _IOT_sundevdata _IOT(_IOTS(long), 7, 0, 0, 0, 0) > > Why long? The structure contains uint64_t, not longs. Did you read the > ioctl part of the porting guideline wiki page? > > Also, the _ILP32 case needs to be handled, too. > > > +#else > > #define VIOC_SUN_SYSCALL_DEV _IOW('C', 1, struct sundevdata) > > #endif > > +#endif /* __GNU__ */ > > Why not defining VIOC_SUN_SYSCALL_DEV in the GNU case? Also, take care > of the #ifdef/#endif parenthesing, GNU does not belong to where you have > put it.
New patch attached. Regarding the use of _IOT etc, I'm trying to follow the same construct as you and Pino did in bug#483281 Currently building again (takes a long time)
--- a/lib/kafs/afssys.c 2013-12-07 14:36:38.000000000 +0100 +++ b/lib/kafs/afssys.c 2014-02-11 18:35:53.000000000 +0100 @@ -76,6 +76,10 @@ struct sundevdata { uint32_t param1; uint32_t syscall; }; +#ifdef __GNU__ +/* FIXME: Enter the correct values here */ +#define _IOT_sundevdata _IOT(_IOTS(uint32_t), 7, 0, 0, 0, 0) +#endif #define VIOC_SUN_SYSCALL_DEV _IOW('C', 2, struct sundevdata) #else struct sundevdata { @@ -87,6 +91,10 @@ struct sundevdata { uint64_t param1; uint64_t syscall; }; +#ifdef __GNU__ +/* FIXME: Enter the correct values here */ +#define _IOT_sundevdata _IOT(_IOTS(uint64_t), 7, 0, 0, 0, 0) +#endif #define VIOC_SUN_SYSCALL_DEV _IOW('C', 1, struct sundevdata) #endif #endif /* _IOW */