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.

