ntdll/kernel32: SetupComm & SET_QUEUE_SIZE
- stubbed out ntdll's serial IOCTL SET_QUEUE_SIZE - implemented kernel32.SetupComm on top of it
This commit is contained in:
parent
b53e016925
commit
fcdc293bb0
|
@ -883,6 +883,11 @@ BOOL WINAPI ClearCommError(HANDLE handle, LPDWORD errors, LPCOMSTAT lpStat)
|
||||||
* Called after CreateFile to hint to the communication resource to use
|
* Called after CreateFile to hint to the communication resource to use
|
||||||
* specified sizes for input and output buffers rather than the default values.
|
* specified sizes for input and output buffers rather than the default values.
|
||||||
*
|
*
|
||||||
|
* PARAMS
|
||||||
|
* handle [in] The just created communication resource handle
|
||||||
|
* insize [in] The suggested size of the communication resources input buffer in bytes
|
||||||
|
* outsize [in] The suggested size of the communication resources output buffer in bytes
|
||||||
|
*
|
||||||
* RETURNS
|
* RETURNS
|
||||||
*
|
*
|
||||||
* True if successful, false if the communications resource handle is bad.
|
* True if successful, false if the communications resource handle is bad.
|
||||||
|
@ -891,18 +896,14 @@ BOOL WINAPI ClearCommError(HANDLE handle, LPDWORD errors, LPCOMSTAT lpStat)
|
||||||
*
|
*
|
||||||
* Stub.
|
* Stub.
|
||||||
*/
|
*/
|
||||||
BOOL WINAPI SetupComm(
|
BOOL WINAPI SetupComm(HANDLE handle, DWORD insize, DWORD outsize)
|
||||||
HANDLE handle, /* [in] The just created communication resource handle. */
|
|
||||||
DWORD insize, /* [in] The suggested size of the communication resources input buffer in bytes. */
|
|
||||||
DWORD outsize) /* [in] The suggested size of the communication resources output buffer in bytes. */
|
|
||||||
{
|
{
|
||||||
int fd;
|
SERIAL_QUEUE_SIZE sqs;
|
||||||
|
|
||||||
FIXME("insize %ld outsize %ld unimplemented stub\n", insize, outsize);
|
sqs.InSize = insize;
|
||||||
fd=get_comm_fd( handle, FILE_READ_DATA );
|
sqs.OutSize = outsize;
|
||||||
if(0>fd) return FALSE;
|
return DeviceIoControl(handle, IOCTL_SERIAL_SET_QUEUE_SIZE,
|
||||||
release_comm_fd( handle, fd );
|
&sqs, sizeof(sqs), NULL, 0, NULL, NULL);
|
||||||
return TRUE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************
|
/*****************************************************************************
|
||||||
|
|
|
@ -729,6 +729,12 @@ static NTSTATUS set_line_control(int fd, const SERIAL_LINE_CONTROL* slc)
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static NTSTATUS set_queue_size(int fd, const SERIAL_QUEUE_SIZE* sqs)
|
||||||
|
{
|
||||||
|
FIXME("insize %ld outsize %ld unimplemented stub\n", sqs->InSize, sqs->OutSize);
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
static NTSTATUS set_special_chars(int fd, const SERIAL_CHARS* sc)
|
static NTSTATUS set_special_chars(int fd, const SERIAL_CHARS* sc)
|
||||||
{
|
{
|
||||||
struct termios port;
|
struct termios port;
|
||||||
|
@ -985,6 +991,12 @@ NTSTATUS COMM_DeviceIoControl(HANDLE hDevice,
|
||||||
else
|
else
|
||||||
status = STATUS_INVALID_PARAMETER;
|
status = STATUS_INVALID_PARAMETER;
|
||||||
break;
|
break;
|
||||||
|
case IOCTL_SERIAL_SET_QUEUE_SIZE:
|
||||||
|
if (lpInBuffer && nInBufferSize == sizeof(SERIAL_QUEUE_SIZE))
|
||||||
|
status = set_queue_size(fd, (const SERIAL_QUEUE_SIZE*)lpInBuffer);
|
||||||
|
else
|
||||||
|
status = STATUS_INVALID_PARAMETER;
|
||||||
|
break;
|
||||||
case IOCTL_SERIAL_SET_TIMEOUTS:
|
case IOCTL_SERIAL_SET_TIMEOUTS:
|
||||||
if (lpInBuffer && nInBufferSize == sizeof(SERIAL_TIMEOUTS))
|
if (lpInBuffer && nInBufferSize == sizeof(SERIAL_TIMEOUTS))
|
||||||
status = set_timeouts(hDevice, fd, (const SERIAL_TIMEOUTS*)lpInBuffer);
|
status = set_timeouts(hDevice, fd, (const SERIAL_TIMEOUTS*)lpInBuffer);
|
||||||
|
|
Loading…
Reference in New Issue