>I have code making an ioctl call on a STREAMS device, (/dev/ttyp0) to
>flush the io buffers.
>ioctl (fd, TCFLSH, 2);
>It works fine on Solaris 2.5.1 !!
>But does not work under Solaris 2.7 ( Solaris 7) even after a recompile.
TCFLSH is implemented by the ldterm module.
Have you popped that off the stream? If so and you are using telnet or
rlogin, I would not be surprised to see different behaviour as I suspect
the unhandled ioctl would end up at a stream head in 2.5.1 and at the
in-kernel telnet/rlogin processing >= 2.6, and they might handle the
unexpected ioctl differently. In any case, if ldterm has been popped,
then the TCFLSH will not actually flush anything. You can probably use
ioctl(fd, I_FLUSH, FLUSHRW) to achieve the desired effect.
Consultant Software Engineer