#
267654 |
|
19-Jun-2014 |
gjb |
Copy stable/9 to releng/9.3 as part of the 9.3-RELEASE cycle.
Approved by: re (implicit) Sponsored by: The FreeBSD Foundation |
#
225736 |
|
22-Sep-2011 |
kensmith |
Copy head to stable/9 as part of 9.0-RELEASE release cycle.
Approved by: re (implicit)
|
#
206051 |
|
01-Apr-2010 |
pjd |
IOCPARM_MAX defines maximum size of a structure that can be passed directly to ioctl(2). Because of how ioctl command is build using _IO*() macros we have only 13 bits to encode structure size. So the structure can be up to 8kB-1.
Currently we define IOCPARM_MAX as PAGE_SIZE.
This is IMHO wrong for three main reasons:
1. It is confusing on archs with page size larger than 8kB (not really sure if we support such archs (sparc64?)), as even if PAGE_SIZE is bigger than 8kB, we won't be able to encode anything larger in ioctl command.
2. It is a waste. Why the structure can be only 4kB on most archs if we have 13 bits dedicated for that, not 12?
3. It shouldn't depend on architecture and page size. My ioctl command can work on one arch, but can't on the other?
Increase IOCPARM_MAX to 8kB and make it independed of PAGE_SIZE and architecture it is compiled for. This allows to use all the bits on all the archs for size. Note that this doesn't mean we will copy more on every ioctl(2) call. No. We still copyin(9)/copyout(9) only exact number of bytes encoded in ioctl command.
Practical use for this change is ZFS. zfs_cmd_t structure used for ZFS ioctls is larger than 4kB.
Silence on: arch@ MFC after: 1 month
|
#
182391 |
|
28-Aug-2008 |
obrien |
Protect _IOC's 'len' and 'inout' parameters so that _IOC can be used in more flexible ways.
|
#
162711 |
|
27-Sep-2006 |
ru |
Fix our ioctl(2) implementation when the argument is "int". New ioctls passing integer arguments should use the _IOWINT() macro. This fixes a lot of ioctl's not working on sparc64, most notable being keyboard/syscons ioctls.
Full ABI compatibility is provided, with the bonus of fixing the handling of old ioctls on sparc64.
Reviewed by: bde (with contributions) Tested by: emax, marius MFC after: 1 week
|
#
127976 |
|
07-Apr-2004 |
imp |
Remove advertising clause from University of California Regent's license, per letter dated July 22, 1999.
Approved by: core
|
#
94345 |
|
10-Apr-2002 |
imp |
I've fixed the X11 port, so I can remove the (ioctl) hack.
This hack turns out to be a bad idea. Many auto configuration scripts will #include a bunch of system headers, run it through cpp and then grep/sed to see if there was really a prototype. The regular expressions that are used to test this didn't accept all possible legal ANSI-C prototypes. In particular, they didn't accept the () around ioctl. Several different programs do this, so eliminating the parans will keep FreeBSD maximally compatible with other systems.
Appologies to: obrien (he was right in the end)
This potentally breaks some ports (and fixes vim and others that haven't been fixed to deal with the parens).
|
#
94263 |
|
09-Apr-2002 |
obrien |
Back out rev 1.11. People want a FUBARed prototype that breaks many things.
|
#
94261 |
|
09-Apr-2002 |
obrien |
Back out revision 1.11 which wrapped the ioctl prototype w/()'s. While it may have allowed the XFree86 4 port to build; it killed TONS of other ports. The XFree86 4 can be patched to not use its macro a lot easier than figuring how to deal with 1000 other now-broken ports.
|
#
92988 |
|
22-Mar-2002 |
imp |
Use int (ioctl)(...) rather than int ioctl(...) so that ioctl can be defined as a macro w/o messing things up. This is really an abuse and we will back this out as soon as the abusers have been fixed. Add a comment to this effect.
With this change, the XFree86-4 port now builds.
|
#
92719 |
|
19-Mar-2002 |
alfred |
Remove __P
|
#
55205 |
|
29-Dec-1999 |
peter |
Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" is an application space macro and the applications are supposed to be free to use it as they please (but cannot). This is consistant with the other BSD's who made this change quite some time ago. More commits to come.
|
#
50477 |
|
27-Aug-1999 |
peter |
$Id$ -> $FreeBSD$
|
#
36735 |
|
07-Jun-1998 |
dfr |
This commit fixes various 64bit portability problems required for FreeBSD/alpha. The most significant item is to change the command argument to ioctl functions from int to u_long. This change brings us inline with various other BSD versions. Driver writers may like to use (__FreeBSD_version == 300003) to detect this change.
The prototype FreeBSD/alpha machdep will follow in a couple of days time.
|
#
22975 |
|
22-Feb-1997 |
peter |
Back out part 1 of the MCFH that changed $Id$ to $FreeBSD$. We are not ready for it yet.
|
#
21673 |
|
14-Jan-1997 |
jkh |
Make the long-awaited change from $Id$ to $FreeBSD$
This will make a number of things easier in the future, as well as (finally!) avoiding the Id-smashing problem which has plagued developers for so long.
Boy, I'm glad we're not using sup anymore. This update would have been insane otherwise.
|
#
18440 |
|
21-Sep-1996 |
bde |
Moved the prototype for ioctl() from <sys/ioctl.h> to <sys/ioccom.h> so that applications don't have to include <sys/ioctl.h> just to get a prototype for ioctl().
|
#
15543 |
|
02-May-1996 |
phk |
removed: CLBYTES PD_SHIFT PGSHIFT NBPG PGOFSET CLSIZELOG2 CLSIZE pdei() ptei() kvtopte() ptetov() ispt() ptetoav() &c &c new: NPDEPG
Major macro cleanup.
|
#
1817 |
|
02-Aug-1994 |
dg |
Added $Id$
|
#
1542 |
|
24-May-1994 |
rgrimes |
This commit was generated by cvs2svn to compensate for changes in r1541, which included commits to RCS files with non-trunk default branches.
|
#
1541 |
|
24-May-1994 |
rgrimes |
BSD 4.4 Lite Kernel Sources
|