> [moved to -hackers; this is an in-depth technical question]
> 
> On Friday,  9 June 2000 at  0:28:04 -0700, NandaKumar P.K. wrote:
> > Hi,
> >
> > I am in the process of debugging my character driver
> > interface to the RAID controller card. Lots of my
> > IOCTLs i sent from the user code works with the driver
> > but some IOCTLs are not reaching the driver. I found
> > that one of the IOCTL that failed is having a size of
> > data as 8096 bytes. Does FreeBSD has got any size
> > restriction in IOCTL data size ? I know that there is
> > no problem with Linux and Windows NT.
> 
> Indeed, you're limited to 4096 bytes.  From sys/ioccom.h:
> 
> #define       IOCPARM_MASK    0x1fff          /* parameter length, at most 13 bits */
> #define       IOCPARM_MAX     PAGE_SIZE               /* max size of ioctl, mult. of 
>PAGE_SIZE */
> 
> >From sys/param.h:
> 
> #define PAGE_SHIFT    12              /* LOG2(PAGE_SIZE) */
> #define PAGE_SIZE     (1<<PAGE_SHIFT) /* bytes/page */
> 
> Even that is probably too big.  What are you trying to transfer that's
> so big?

NB. if you want to move more than 4k, you should pass a pointer to the 
buffer in userspace and use copyin/copyout.

-- 
\\ Give a man a fish, and you feed him for a day. \\  Mike Smith
\\ Tell him he should learn how to fish himself,  \\  [EMAIL PROTECTED]
\\ and he'll hate you for a lifetime.             \\  [EMAIL PROTECTED]




To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-hackers" in the body of the message

Reply via email to