summaryrefslogtreecommitdiff
path: root/nuttx/TODO
diff options
context:
space:
mode:
authorGregory Nutt <gnutt@nuttx.org>2014-11-29 10:53:22 -0600
committerGregory Nutt <gnutt@nuttx.org>2014-11-29 10:53:22 -0600
commit6fa66b5a77300b73f40dbaae2bb831d92eaa8fe6 (patch)
tree64046c058f5f6e86d9f59dee44f9b6faba15d4cf /nuttx/TODO
parent7773304d911066ca3345eb295a944d949fd220c4 (diff)
downloadnuttx-6fa66b5a77300b73f40dbaae2bb831d92eaa8fe6.tar.gz
nuttx-6fa66b5a77300b73f40dbaae2bb831d92eaa8fe6.tar.bz2
nuttx-6fa66b5a77300b73f40dbaae2bb831d92eaa8fe6.zip
Add support for a variadic ioctl() function. The ioctl() interface is a non-standard, Unix interface. NuttX has always used the older, three-parameter version. Most contemporary systems now, however, use a variadic form of the ioctl() function. Added an option to insert a shim layer to adapt the three-parameter ioctl() to use the variadic interface form. Internally, the ioctl handling is the same three-parameter logic. The only real complexity to the shim is in how the system calls must be handled.
Diffstat (limited to 'nuttx/TODO')
-rw-r--r--nuttx/TODO42
1 files changed, 2 insertions, 40 deletions
diff --git a/nuttx/TODO b/nuttx/TODO
index 56f555da3..8ec8533ef 100644
--- a/nuttx/TODO
+++ b/nuttx/TODO
@@ -1,4 +1,4 @@
-NuttX TODO List (Last updated November 27, 2014)
+NuttX TODO List (Last updated November 29, 2014)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This file summarizes known NuttX bugs, limitations, inconsistencies with
@@ -18,7 +18,7 @@ nuttx/
(13) Network (net/, drivers/net)
(4) USB (drivers/usbdev, drivers/usbhost)
(10) Libraries (libc/, )
- (12) File system/Generic drivers (fs/, drivers/)
+ (11) File system/Generic drivers (fs/, drivers/)
(8) Graphics subystem (graphics/)
(1) Pascal add-on (pcode/)
(1) Documentation (Documentation/)
@@ -1172,44 +1172,6 @@ o File system / Generic drivers (fs/, drivers/)
Status: Open
Priority: Medium
- Title: IOCTL() IS NO LONGER STANDARD
- Description: The function prototype for ioctl() is no longer standard. It
- was more-or-less standard at one time. The NuttX ioctl is the
- historic System 7 Unix, three-parameter version.
-
- int ioctl(int fd, int req, unsigned long arg);
-
- Current definitions now allow for the third parameter to be
- optional (and, I suppose, could accept additional arguments).
- For example, OpenGroup
- (http://pubs.opengroup.org/onlinepubs/009695399/functions/ioctl.html):
-
- int ioctl(int fildes, int request, ... /* arg */);
-
- Linux man page:
-
- int ioctl(int d, unsigned long request, ...);
-
- FreeBSD:
-
- int ioctl(int fd, unsigned long request, ...);
-
- I imagine that making the thread argument variadic, the logic
- is rescued for the case with modern 64-bit computers where
- sizeof(long) < sizeof(pointer).
-
- Since NuttX relies on OpenGroup for interface definitions, the
- current NuttX definition is incompatible with the standard in
- any event.
-
- Unfortunately, the change would be very extensive. If the
- type of the argument depends on the 'request', then the third
- argument would have to be decoded by every device device
- driver. That would be an enormous job and will not happen soon.
- Status: Open
- Priority: Very low until I run into a machine with sizeof(long) <
- sizeof(pointer)
-
o Graphics subsystem (graphics/)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^