88 |
extern RDPDR_DEVICE g_rdpdr_device[]; |
extern RDPDR_DEVICE g_rdpdr_device[]; |
89 |
|
|
90 |
static SERIAL_DEVICE * |
static SERIAL_DEVICE * |
91 |
get_serial_info(HANDLE handle) |
get_serial_info(NTHANDLE handle) |
92 |
{ |
{ |
93 |
int index; |
int index; |
94 |
|
|
101 |
} |
} |
102 |
|
|
103 |
static BOOL |
static BOOL |
104 |
get_termios(SERIAL_DEVICE * pser_inf, HANDLE serial_fd) |
get_termios(SERIAL_DEVICE * pser_inf, NTHANDLE serial_fd) |
105 |
{ |
{ |
106 |
speed_t speed; |
speed_t speed; |
107 |
struct termios *ptermios; |
struct termios *ptermios; |
224 |
} |
} |
225 |
|
|
226 |
static void |
static void |
227 |
set_termios(SERIAL_DEVICE * pser_inf, HANDLE serial_fd) |
set_termios(SERIAL_DEVICE * pser_inf, NTHANDLE serial_fd) |
228 |
{ |
{ |
229 |
speed_t speed; |
speed_t speed; |
230 |
|
|
407 |
|
|
408 |
static NTSTATUS |
static NTSTATUS |
409 |
serial_create(uint32 device_id, uint32 access, uint32 share_mode, uint32 disposition, |
serial_create(uint32 device_id, uint32 access, uint32 share_mode, uint32 disposition, |
410 |
uint32 flags_and_attributes, char *filename, HANDLE * handle) |
uint32 flags_and_attributes, char *filename, NTHANDLE * handle) |
411 |
{ |
{ |
412 |
HANDLE serial_fd; |
NTHANDLE serial_fd; |
413 |
SERIAL_DEVICE *pser_inf; |
SERIAL_DEVICE *pser_inf; |
414 |
struct termios *ptermios; |
struct termios *ptermios; |
415 |
|
|
445 |
|
|
446 |
tcsetattr(serial_fd, TCSANOW, ptermios); |
tcsetattr(serial_fd, TCSANOW, ptermios); |
447 |
*/ |
*/ |
448 |
pser_inf->ptermios->c_iflag &= ~(IGNBRK|BRKINT|PARMRK|ISTRIP|INLCR|IGNCR|ICRNL|IXON); |
pser_inf->ptermios->c_iflag &= |
449 |
|
~(IGNBRK | BRKINT | PARMRK | ISTRIP | INLCR | IGNCR | ICRNL | IXON); |
450 |
pser_inf->ptermios->c_oflag &= ~OPOST; |
pser_inf->ptermios->c_oflag &= ~OPOST; |
451 |
pser_inf->ptermios->c_lflag &= ~(ECHO|ECHONL|ICANON|ISIG|IEXTEN); |
pser_inf->ptermios->c_lflag &= ~(ECHO | ECHONL | ICANON | ISIG | IEXTEN); |
452 |
pser_inf->ptermios->c_cflag &= ~(CSIZE|PARENB); |
pser_inf->ptermios->c_cflag &= ~(CSIZE | PARENB); |
453 |
pser_inf->ptermios->c_cflag |= CS8; |
pser_inf->ptermios->c_cflag |= CS8; |
454 |
tcsetattr(serial_fd, TCSANOW, pser_inf->ptermios); |
tcsetattr(serial_fd, TCSANOW, pser_inf->ptermios); |
455 |
|
|
463 |
} |
} |
464 |
|
|
465 |
static NTSTATUS |
static NTSTATUS |
466 |
serial_close(HANDLE handle) |
serial_close(NTHANDLE handle) |
467 |
{ |
{ |
468 |
int i = get_device_index(handle); |
int i = get_device_index(handle); |
469 |
if (i >= 0) |
if (i >= 0) |
473 |
} |
} |
474 |
|
|
475 |
static NTSTATUS |
static NTSTATUS |
476 |
serial_read(HANDLE handle, uint8 * data, uint32 length, uint32 offset, uint32 * result) |
serial_read(NTHANDLE handle, uint8 * data, uint32 length, uint32 offset, uint32 * result) |
477 |
{ |
{ |
478 |
long timeout; |
long timeout; |
479 |
SERIAL_DEVICE *pser_inf; |
SERIAL_DEVICE *pser_inf; |
520 |
} |
} |
521 |
|
|
522 |
static NTSTATUS |
static NTSTATUS |
523 |
serial_write(HANDLE handle, uint8 * data, uint32 length, uint32 offset, uint32 * result) |
serial_write(NTHANDLE handle, uint8 * data, uint32 length, uint32 offset, uint32 * result) |
524 |
{ |
{ |
525 |
*result = write(handle, data, length); |
*result = write(handle, data, length); |
526 |
return STATUS_SUCCESS; |
return STATUS_SUCCESS; |
527 |
} |
} |
528 |
|
|
529 |
static NTSTATUS |
static NTSTATUS |
530 |
serial_device_control(HANDLE handle, uint32 request, STREAM in, STREAM out) |
serial_device_control(NTHANDLE handle, uint32 request, STREAM in, STREAM out) |
531 |
{ |
{ |
532 |
#if 0 |
#if 0 |
533 |
int flush_mask, purge_mask; |
int flush_mask, purge_mask; |
685 |
|
|
686 |
/* Read timeout for a given file descripter (device) when adding fd's to select() */ |
/* Read timeout for a given file descripter (device) when adding fd's to select() */ |
687 |
BOOL |
BOOL |
688 |
serial_get_timeout(HANDLE handle, uint32 length, uint32 * timeout, uint32 * itv_timeout) |
serial_get_timeout(NTHANDLE handle, uint32 length, uint32 * timeout, uint32 * itv_timeout) |
689 |
{ |
{ |
690 |
int index; |
int index; |
691 |
SERIAL_DEVICE *pser_inf; |
SERIAL_DEVICE *pser_inf; |