Subject: Re: sending a struct of size more than 0x1fff to ioctl()
To: Christos Zoulas <christos@zoulas.com>
From: Brian Buhrow <buhrow@cats.ucsc.edu>
List: tech-kern
Date: 12/15/1998 09:35:05
	What I did was write a driver with a special ioctl which took as its
parameters a structure containing the user-land address space of the buffer
to copy into the driver's card, the length, and, since it was executable
code which ran on the peripheral card itself, the load and start addresses
on the card itself.  Then, in the driver, I used uiomove to get data into
the kernel from user space.  I don't remember having a 65K limit here.
Would this not work for you?
-Brian

On Dec 11,  2:22pm, Christos Zoulas wrote:
} Subject: Re: sending a struct of size more than 0x1fff to ioctl()
} In article <3670F30A.3A05F46A@sharada.ncore.soft.net> esha@sharada.ncore.soft.net (Eshanye) writes:
} >Hi,
} >
} >I'm using syscall ioctl() to download parameters to EPLD. So as a ' in'
} >parameter i'm sending a structure which contains the EPLD file along
} >with some other information. The size of the structure is 65560
} >(0x10018). But  the cmd of  ioctl() has only at most 13 bits to encode
} >the size of the parameter. So i'm not able to send the structure without
} >which my card wont work at all. How do you solve this problem ?
} >
} 
} Either use more than one ioctl calls to pass in the data (ugly), or write
} a device driver that you open read/write close to write the data to the
} card (more work).
} 
} christos
>-- End of excerpt from Christos Zoulas