This is the mail archive of the libc-alpha@sources.redhat.com mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: tc[gs]etattr and PPC


On Sun, Feb 10, Andreas Schwab wrote:

> Ulrich Drepper <drepper@redhat.com> writes:
> 
> |> Thorsten Kukuk <kukuk@suse.de> writes:
> |> 
> |> > Some programs like xterm makes TCSETS-ioctls (and don't call 
> |> > tcsetattr), but we call tcsetattr which fails and return a wrong
> |> > error code to the caller.
> |> > 
> |> > POSIX says:
> |> > 
> |> >     The tcsetattr() function shall return successfully if it was able to
> |> >     perform any of the requested actions, even if some of the requested
> |> >     actions could not be performed.
> |> > 
> |> > so the wrapper in the current implementation is not correct.
> |> > 
> |> > How can we fix this? One suggestion is to add an internal flag so
> |> > that our tcsetattr does not perform the check, the other is to
> |> > remove or fix the wrapper.
> |> 
> |> You haven't given an example why you think it's wrong.  Not calling
> |> the kernel for unimplemented functionality and failing is correct.
> |> What the text above means is that is any of the defined actions fail
> |> (like changing the baud rate if supported) tcsetattr() still returns
> |> successfully.  What exactly do you have in mind?
> 
> The tcsetattr wrapper checks if any of CSIZE, PARENB, CREAD have not been
> performed.  But it does not take into account that there might be other
> changes that do have been performed, and thus tcsetattr should return
> sucessfully anyway.  The following program reports an error although
> TOSTOP has been successfully modified:

This is one problem. The other problem is, that the ioctl call on
PPC thinks it has to fail, because tcsetattr fails. But we only call
tcsetattr to convert the data structs, the ioctl itself must not
fail.

  Thorsten

-- 
Thorsten Kukuk       http://www.suse.de/~kukuk/        kukuk@suse.de
SuSE GmbH            Deutschherrenstr. 15-19       D-90429 Nuernberg
--------------------------------------------------------------------    
Key fingerprint = A368 676B 5E1B 3E46 CFCE  2D97 F8FD 4E23 56C6 FB4B


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]