Linux 64-bit Kernel mit 32-bit Userland

Dies ist das deutsche Forum für alle Themen um den IO-Warrior. Beiträge bitte nur in Deutsch.

Moderator: Guido Körber

Post Reply
stuermer
Posts: 1
Joined: Sat May 22, 2010 3:31 pm

Linux 64-bit Kernel mit 32-bit Userland

Post by stuermer »

Zur Info, falls jemand das gleiche Problem hat: wenn ein 64-bit Kernel mit 32-bit Userland betrieben wird, müssen die in IOCTLs verwendeten Strukturen umgesetzt werden.

Da beim IO-Warrior schon genau definierte Datentypen verwendet werden, ist wohl keine komplexe Umsetzung notwendig.

Ich habe es (siehe Patch für 2.6.32.9) mit dem COMPATIBLE_IOCTL-Mechanismus versucht, und es scheint (mit meinem IO-Warrior V1.0.0.3) zu funktionieren.

Code: Select all

*** linux-2.6.32.9/fs/compat_ioctl.c.orig       Sun May 16 19:13:12 2010
--- linux-2.6.32.9/fs/compat_ioctl.c    Fri May  7 01:23:22 2010
***************
*** 103,108 ****
--- 103,109 ----
  #include <linux/random.h>
  #include <linux/filter.h>
  #include <linux/pktcdvd.h>
+ #include <linux/usb/iowarrior.h>
  
  #include <linux/hiddev.h>
  
***************
*** 2423,2428 ****
--- 2424,2430 ----
  COMPATIBLE_IOCTL(USBDEVFS_REAPURB32)
  COMPATIBLE_IOCTL(USBDEVFS_REAPURBNDELAY32)
  COMPATIBLE_IOCTL(USBDEVFS_CLEAR_HALT)
+ COMPATIBLE_IOCTL(IOW_GETINFO)
  /* NBD */
  ULONG_IOCTL(NBD_SET_SOCK)
  ULONG_IOCTL(NBD_SET_BLKSIZE)
Post Reply