Re: [PATCH] remove TCGETS

Matthew Wilcox <[email protected]> Thu, 14 Aug 2003 02:43:45 +0100
Newsgroups gmane.linux.file-systems,gmane.comp.file-systems.intermezzo.devel
Message-ID <[email protected]>
On Wed, Aug 13, 2003 at 07:28:18PM -0600, Peter Braam wrote:
> In fact some part of POSIX says that ioctls should return EINVAL
> that's why I made that choice.  Anyway, the issue is moot.

Actually, it's an interesting point.  The relevant bit of SUSv3 says:

If an underlying device driver detects an error, then ioctl() shall fail if:

[EINVAL]
    The request or arg argument is not valid for this device.
[EIO]
    Some physical I/O error has occurred.
[ENOTTY]
    The fildes argument is not associated with a STREAMS device that
    accepts control functions.
[ENXIO]
    The request and arg arguments are valid for this device driver, but
    the service requested cannot be performed on this particular sub-device.
[ENODEV]
    The fildes argument refers to a valid STREAMS device, but the
    corresponding device driver does not support the ioctl() function.

SUSv2 agrees: http://www.opengroup.org/onlinepubs/007908799/xsh/ioctl.html

Maybe we need to start removing ENOTTY returns from ioctl handlers.
I know, we all find it funny when we're told that something isn't a
typewriter, but ...

-- 
"It's not Hollywood.  War is real, war is primarily not about defeat or
victory, it is about death.  I've seen thousands and thousands of dead bodies.
Do you think I want to have an academic debate on this subject?" -- Robert Fisk
-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html