Hi Brain, Alle sabato 28 maggio 2011, Brian May ha scritto: > As the contributor of the patch being discussed, can I please get > your opinion on this bug report?
Oh, sorry if it broke something, it was not intended. It part of the original patch set done by Samuel, which I trusted (as he is a Hurd developer and Debian/Hurd maintainer). > > I don't know if the GNU hurd folks have an opinion on the "proper" > > > > solution here, but here are a couple of options that I think will work: - do the semi-ugly solution an define VIOC_SYSCALL_PROC differently on Hurd (see also [1], "missing _IOT" section, for an explanation of what can and cannot be done in ioctl's on Hurd). I attached a new version of patch 043_hurd_ioctl. (to be honest, it would seem kind of weird to declare a void* as argument, while ioctl's in that file for devdata eclare explicitly the struct; I guess this is something that cannot be changed easily due to being already in use) [1] http://www.gnu.org/s/hurd/hurd/porting/guidelines.html Sorry again for the breakage, luckly has never been part of a stable release. -- Pino Toscano
--- a/lib/kafs/kafs.h +++ b/lib/kafs/kafs.h @@ -46,6 +46,9 @@ #define AFSCALL_SETPAG 21 #ifndef _VICEIOCTL +#ifdef __GNU__ +#define _IOT_ViceIoctl _IOT(_IOTS(caddr_t), 2, _IOTS(short), 2, 0, 0) +#endif #define _VICEIOCTL(id) ((unsigned int ) _IOW('V', id, struct ViceIoctl)) #define _AFSCIOCTL(id) ((unsigned int ) _IOW('C', id, struct ViceIoctl)) #endif /* _VICEIOCTL */ --- a/lib/kafs/afssys.c +++ b/lib/kafs/afssys.c @@ -40,7 +40,12 @@ struct procdata { unsigned long param1; unsigned long syscall; }; +#ifdef __GNU__ +#define _IOT_procdata _IOT(_IOTS(long), 5, 0, 0, 0, 0) +#define VIOC_SYSCALL_PROC _IOW('C', 1, struct procdata) +#else #define VIOC_SYSCALL_PROC _IOW('C', 1, void *) +#endif struct devdata { unsigned long syscall; @@ -52,6 +57,9 @@ struct devdata { unsigned long param6; unsigned long retval; }; +#ifdef __GNU__ +#define _IOT_devdata _IOT(_IOTS(long), 8, 0, 0, 0, 0) +#endif #ifdef _IOWR #define VIOC_SYSCALL_DEV _IOWR('C', 2, struct devdata) #define VIOC_SYSCALL_DEV_OPENAFS _IOWR('C', 1, struct devdata)
signature.asc
Description: This is a digitally signed message part.