WindowsXP-SP1/base/subsys/posix/psxss/srvtc.c
2020-09-30 16:53:49 +02:00

201 lines
3.0 KiB
C
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
tc.c
Abstract:
Implementation of PSX termical control
Author:
Ellen Aycock-Wright (ellena) 05-Aug-1991
Revision History:
--*/
#include "psxsrv.h"
BOOLEAN
PsxTcGetAttr (
IN PPSX_PROCESS p,
IN OUT PPSX_API_MSG m
)
{
PPSX_TCGETATTR_MSG args;
PFILEDESCRIPTOR Fd;
args = &m->u.TcGetAttr;
Fd = FdIndexToFd(p, args->FileDes);
if (!Fd) {
m->Error = EBADF;
return TRUE;
}
if (&ConVectors == Fd->SystemOpenFileDesc->IoNode->IoVectors) {
m->ReturnValue = 0;
return TRUE;
}
m->Error = ENOTTY;
return TRUE;
}
BOOLEAN
PsxTcSetAttr (
IN PPSX_PROCESS p,
IN OUT PPSX_API_MSG m
)
{
PPSX_TCSETATTR_MSG args;
PFILEDESCRIPTOR Fd;
args = &m->u.TcSetAttr;
Fd = FdIndexToFd(p, args->FileDes);
if (!Fd) {
m->Error = EBADF;
return TRUE;
}
if (&ConVectors == Fd->SystemOpenFileDesc->IoNode->IoVectors) {
m->ReturnValue = 0;
return TRUE;
}
m->Error = ENOTTY;
return TRUE;
}
BOOLEAN
PsxTcSendBreak (
IN PPSX_PROCESS p,
IN OUT PPSX_API_MSG m
)
{
PPSX_TCSENDBREAK_MSG args;
PFILEDESCRIPTOR Fd;
args = &m->u.TcSendBreak;
Fd = FdIndexToFd(p, args->FileDes);
if (!Fd) {
m->Error = EBADF;
return TRUE;
}
m->Error = ENOTTY;
return TRUE;
}
BOOLEAN
PsxTcDrain (
IN PPSX_PROCESS p,
IN OUT PPSX_API_MSG m
)
{
PPSX_TCDRAIN_MSG args;
PFILEDESCRIPTOR Fd;
args = &m->u.TcDrain;
Fd = FdIndexToFd(p, args->FileDes);
if (!Fd) {
m->Error = EBADF;
return TRUE;
}
m->Error = ENOTTY;
return TRUE;
}
BOOLEAN
PsxTcFlush (
IN PPSX_PROCESS p,
IN OUT PPSX_API_MSG m
)
{
PPSX_TCFLUSH_MSG args;
PFILEDESCRIPTOR Fd;
args = &m->u.TcFlush;
Fd = FdIndexToFd(p, args->FileDes);
if (!Fd) {
m->Error = EBADF;
return TRUE;
}
m->Error = ENOTTY;
return TRUE;
}
BOOLEAN
PsxTcFlow (
IN PPSX_PROCESS p,
IN OUT PPSX_API_MSG m
)
{
PPSX_TCFLOW_MSG args;
PFILEDESCRIPTOR Fd;
args = &m->u.TcFlow;
Fd = FdIndexToFd(p, args->FileDes);
if (!Fd) {
m->Error = EBADF;
return TRUE;
}
m->Error = ENOTTY;
return TRUE;
}
BOOLEAN
PsxTcGetPGrp (
IN PPSX_PROCESS p,
IN OUT PPSX_API_MSG m
)
{
PPSX_TCGETPGRP_MSG args;
PFILEDESCRIPTOR Fd;
args = &m->u.TcGetPGrp;
Fd = FdIndexToFd(p, args->FileDes);
if (!Fd) {
m->Error = EBADF;
return TRUE;
}
m->Error = ENOTTY;
return TRUE;
}
BOOLEAN
PsxTcSetPGrp (
IN PPSX_PROCESS p,
IN OUT PPSX_API_MSG m
)
{
PPSX_TCSETPGRP_MSG args;
PFILEDESCRIPTOR Fd;
args = &m->u.TcSetPGrp;
Fd = FdIndexToFd(p, args->FileDes);
if (!Fd) {
m->Error = EBADF;
return TRUE;
}
m->Error = ENOTTY;
return TRUE;
}