Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 09 Jun 2000 22:52:00 -0700
From:      Mike Smith <msmith@freebsd.org>
To:        Greg Lehey <grog@lemis.com>
Cc:        "NandaKumar P.K." <p_k_nandan@yahoo.com>, FreeBSD Hackers <hackers@freebsd.org>
Subject:   Re: IOCTL to the character driver is failing 
Message-ID:  <200006100552.WAA01236@mass.cdrom.com>
In-Reply-To: Your message of "Sat, 10 Jun 2000 10:40:03 %2B0930." <20000610104003.B81728@wantadilla.lemis.com> 

next in thread | previous in thread | raw e-mail | index | archive | help
> [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,  \\  msmith@freebsd.org
\\ and he'll hate you for a lifetime.             \\  msmith@cdrom.com




To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200006100552.WAA01236>