21#ifndef WINPR_COMM_PRIVATE_H
22#define WINPR_COMM_PRIVATE_H
25#define WINPR_HAVE_COMM_COUNTERS
26#include <linux/serial.h>
29#include <winpr/comm.h>
31#include "../handle/handle.h"
32#include <winpr/config.h>
34#if defined(WINPR_HAVE_SYS_EVENTFD_H)
35#include <sys/eventfd.h>
66 SERIAL_DRIVER_ID serverSerialDriverId;
72#if defined(WINPR_HAVE_COMM_COUNTERS)
73 struct serial_icounter_struct counters;
83#if defined(WINPR_HAVE_COMM_COUNTERS)
84 BOOL TIOCGICOUNTSupported;
90#define SERIAL_EV_RXCHAR 0x0001
91#define SERIAL_EV_RXFLAG 0x0002
92#define SERIAL_EV_TXEMPTY 0x0004
93#define SERIAL_EV_CTS 0x0008
94#define SERIAL_EV_DSR 0x0010
95#define SERIAL_EV_RLSD 0x0020
96#define SERIAL_EV_BREAK 0x0040
97#define SERIAL_EV_ERR 0x0080
98#define SERIAL_EV_RING 0x0100
99#define SERIAL_EV_PERR 0x0200
100#define SERIAL_EV_RX80FULL 0x0400
101#define SERIAL_EV_EVENT1 0x0800
102#define SERIAL_EV_EVENT2 0x1000
103#define SERIAL_EV_WINPR_WAITING 0x4000
104#define SERIAL_EV_WINPR_STOP 0x8000
106#define WINPR_PURGE_TXABORT 0x00000001
107#define WINPR_PURGE_RXABORT 0x00000002
109#define CommLog_Print(level, ...) CommLog_PrintEx(level, __FILE__, __LINE__, __func__, __VA_ARGS__)
110void CommLog_PrintEx(DWORD wlog_level,
const char* file,
size_t line,
const char* fkt, ...);
112BOOL CommIsHandled(HANDLE handle);
113BOOL CommIsHandleValid(HANDLE handle);
114BOOL CommCloseHandle(HANDLE handle);
117#define CommIoCtl(pComm, ctl, data) \
118 CommIoCtl_int((pComm), (ctl), (data), __FILE__, __func__, __LINE__)
119BOOL CommIoCtl_int(WINPR_COMM* pComm,
unsigned long int ctl,
void* data,
const char* file,
120 const char* fkt,
size_t line);
121BOOL CommUpdateIOCount(HANDLE handle, BOOL checkSupportStatus);
123const char* CommSerialEvString(ULONG status,
char* buffer,
size_t size);
125#if defined(WINPR_HAVE_SYS_EVENTFD_H)
126#ifndef WITH_EVENTFD_READ_WRITE
127int eventfd_read(
int fd, eventfd_t* value);
128int eventfd_write(
int fd, eventfd_t value);