mirror of
https://github.com/ShaYmez/xlxd.git
synced 2024-11-17 21:51:49 -05:00
155 lines
5.2 KiB
C
155 lines
5.2 KiB
C
|
#ifndef __WINDOWS_TYPES__
|
||
|
#define __WINDOWS_TYPES__
|
||
|
|
||
|
#define WINAPI
|
||
|
|
||
|
typedef unsigned int DWORD;
|
||
|
typedef unsigned int ULONG;
|
||
|
typedef unsigned short USHORT;
|
||
|
typedef unsigned short SHORT;
|
||
|
typedef unsigned char UCHAR;
|
||
|
typedef unsigned short WORD;
|
||
|
typedef unsigned short WCHAR;
|
||
|
typedef unsigned char BYTE;
|
||
|
typedef BYTE *LPBYTE;
|
||
|
typedef unsigned int BOOL;
|
||
|
typedef unsigned char BOOLEAN;
|
||
|
typedef unsigned char CHAR;
|
||
|
typedef BOOL *LPBOOL;
|
||
|
typedef UCHAR *PUCHAR;
|
||
|
typedef const char *LPCSTR;
|
||
|
typedef char *PCHAR;
|
||
|
typedef void *PVOID;
|
||
|
typedef void *HANDLE;
|
||
|
typedef unsigned int LONG;
|
||
|
typedef int INT;
|
||
|
typedef unsigned int UINT;
|
||
|
typedef char *LPSTR;
|
||
|
typedef char *LPTSTR;
|
||
|
typedef const char *LPCTSTR;
|
||
|
typedef DWORD *LPDWORD;
|
||
|
typedef WORD *LPWORD;
|
||
|
typedef ULONG *PULONG;
|
||
|
typedef LONG *LPLONG;
|
||
|
typedef PVOID LPVOID;
|
||
|
typedef void VOID;
|
||
|
typedef USHORT *PUSHORT;
|
||
|
typedef unsigned long long int ULONGLONG;
|
||
|
|
||
|
typedef struct _OVERLAPPED {
|
||
|
DWORD Internal;
|
||
|
DWORD InternalHigh;
|
||
|
union {
|
||
|
struct{
|
||
|
DWORD Offset;
|
||
|
DWORD OffsetHigh;
|
||
|
};
|
||
|
PVOID Pointer;
|
||
|
};
|
||
|
HANDLE hEvent;
|
||
|
} OVERLAPPED, *LPOVERLAPPED;
|
||
|
|
||
|
typedef struct _SECURITY_ATTRIBUTES {
|
||
|
DWORD nLength;
|
||
|
LPVOID lpSecurityDescriptor;
|
||
|
BOOL bInheritHandle;
|
||
|
} SECURITY_ATTRIBUTES , *LPSECURITY_ATTRIBUTES;
|
||
|
|
||
|
#include <pthread.h>
|
||
|
// Substitute for HANDLE returned by Windows CreateEvent API.
|
||
|
// FT_SetEventNotification expects parameter 3 to be the address
|
||
|
// of one of these structures.
|
||
|
typedef struct _EVENT_HANDLE
|
||
|
{
|
||
|
pthread_cond_t eCondVar;
|
||
|
pthread_mutex_t eMutex;
|
||
|
int iVar;
|
||
|
} EVENT_HANDLE;
|
||
|
|
||
|
typedef struct timeval SYSTEMTIME;
|
||
|
typedef struct timeval FILETIME;
|
||
|
|
||
|
// WaitForSingleObject return values.
|
||
|
#define WAIT_ABANDONED 0x00000080L
|
||
|
#define WAIT_OBJECT_0 0x00000000L
|
||
|
#define WAIT_TIMEOUT 0x00000102L
|
||
|
#define WAIT_FAILED 0xFFFFFFFF
|
||
|
// Special value for WaitForSingleObject dwMilliseconds parameter
|
||
|
#define INFINITE 0xFFFFFFFF // Infinite timeout
|
||
|
|
||
|
#ifndef TRUE
|
||
|
#define TRUE 1
|
||
|
#endif
|
||
|
#ifndef FALSE
|
||
|
#define FALSE 0
|
||
|
#endif
|
||
|
#ifndef CONST
|
||
|
#define CONST const
|
||
|
#endif
|
||
|
//
|
||
|
// Modem Status Flags
|
||
|
//
|
||
|
#define MS_CTS_ON ((DWORD)0x0010)
|
||
|
#define MS_DSR_ON ((DWORD)0x0020)
|
||
|
#define MS_RING_ON ((DWORD)0x0040)
|
||
|
#define MS_RLSD_ON ((DWORD)0x0080)
|
||
|
|
||
|
//
|
||
|
// Error Flags
|
||
|
//
|
||
|
#define CE_RXOVER 0x0001 // Receive Queue overflow
|
||
|
#define CE_OVERRUN 0x0002 // Receive Overrun Error
|
||
|
#define CE_RXPARITY 0x0004 // Receive Parity Error
|
||
|
#define CE_FRAME 0x0008 // Receive Framing error
|
||
|
#define CE_BREAK 0x0010 // Break Detected
|
||
|
#define CE_TXFULL 0x0100 // TX Queue is full
|
||
|
#define CE_PTO 0x0200 // LPTx Timeout
|
||
|
#define CE_IOE 0x0400 // LPTx I/O Error
|
||
|
#define CE_DNS 0x0800 // LPTx Device not selected
|
||
|
#define CE_OOP 0x1000 // LPTx Out-Of-Paper
|
||
|
#define CE_MODE 0x8000 // Requested mode unsupported
|
||
|
|
||
|
//
|
||
|
// Events
|
||
|
//
|
||
|
#define EV_RXCHAR 0x0001 // Any Character received
|
||
|
#define EV_RXFLAG 0x0002 // Received certain character
|
||
|
#define EV_TXEMPTY 0x0004 // Transmit Queue Empty
|
||
|
#define EV_CTS 0x0008 // CTS changed state
|
||
|
#define EV_DSR 0x0010 // DSR changed state
|
||
|
#define EV_RLSD 0x0020 // RLSD changed state
|
||
|
#define EV_BREAK 0x0040 // BREAK received
|
||
|
#define EV_ERR 0x0080 // Line status error occurred
|
||
|
#define EV_RING 0x0100 // Ring signal detected
|
||
|
#define EV_PERR 0x0200 // Printer error occured
|
||
|
#define EV_RX80FULL 0x0400 // Receive buffer is 80 percent full
|
||
|
#define EV_EVENT1 0x0800 // Provider specific event 1
|
||
|
#define EV_EVENT2 0x1000 // Provider specific event 2
|
||
|
|
||
|
//
|
||
|
// Escape Functions
|
||
|
//
|
||
|
#define SETXOFF 1 // Simulate XOFF received
|
||
|
#define SETXON 2 // Simulate XON received
|
||
|
#define SETRTS 3 // Set RTS high
|
||
|
#define CLRRTS 4 // Set RTS low
|
||
|
#define SETDTR 5 // Set DTR high
|
||
|
#define CLRDTR 6 // Set DTR low
|
||
|
#define RESETDEV 7 // Reset device if possible
|
||
|
#define SETBREAK 8 // Set the device break line.
|
||
|
#define CLRBREAK 9 // Clear the device break line.
|
||
|
|
||
|
//
|
||
|
// PURGE function flags.
|
||
|
//
|
||
|
#define PURGE_TXABORT 0x0001 // Kill the pending/current writes to the comm port.
|
||
|
#define PURGE_RXABORT 0x0002 // Kill the pending/current reads to the comm port.
|
||
|
#define PURGE_TXCLEAR 0x0004 // Kill the transmit queue if there.
|
||
|
#define PURGE_RXCLEAR 0x0008 // Kill the typeahead buffer if there.
|
||
|
|
||
|
#ifndef INVALID_HANDLE_VALUE
|
||
|
#define INVALID_HANDLE_VALUE 0xFFFFFFFF
|
||
|
#endif
|
||
|
|
||
|
#endif /* __WINDOWS_TYPES__ */
|