mirror of
https://gitee.com/ldcsaa/HP-Socket.git
synced 2024-12-02 11:47:39 +08:00
279 lines
7.0 KiB
C
279 lines
7.0 KiB
C
/*
|
|
* Copyright: JessMA Open Source (ldcsaa@gmail.com)
|
|
*
|
|
* Author : Bruce Liang
|
|
* Website : https://github.com/ldcsaa
|
|
* Project : https://github.com/ldcsaa/HP-Socket
|
|
* Blog : http://www.cnblogs.com/ldcsaa
|
|
* Wiki : http://www.oschina.net/p/hp-socket
|
|
* QQ Group : 44636872, 75375912
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
#pragma once
|
|
|
|
#include <sys/types.h>
|
|
|
|
typedef int BOOL;
|
|
typedef float FLOAT;
|
|
typedef FLOAT *PFLOAT, *LPFLOAT;
|
|
typedef double DOUBLE;
|
|
typedef DOUBLE *PDOUBLE, *LPDOUBLE;
|
|
typedef short SHORT, INT16;
|
|
typedef SHORT *PSHORT, *LPSHORT;
|
|
typedef unsigned short USHORT, UINT16;
|
|
typedef USHORT *PUSHORT, *LPUSHORT;
|
|
typedef unsigned short WORD;
|
|
typedef WORD *PWORD, *LPWORD;
|
|
typedef unsigned int DWORD;
|
|
typedef DWORD *PDWORD, *LPDWORD;
|
|
typedef long LONG, LID;
|
|
typedef LONG *PLONG, *LPLONG;
|
|
typedef unsigned long ULONG, ULID;
|
|
typedef ULONG *PULONG, *LPULONG;
|
|
typedef long long LONGLONG, LLONG, INT64;
|
|
typedef LONGLONG *PLONGLONG, *LPLONGLONG, *PLLONG, *LPLLONG;
|
|
typedef unsigned long long ULONGLONG, ULLONG, UINT64;
|
|
typedef ULONGLONG *PULONGLONG, *LPULONGLONG, *PULLONG, *LPULLONG;
|
|
typedef int INT, IID, INT32;
|
|
typedef INT *PINT, *LPINT;
|
|
typedef unsigned int UINT, UIID, UINT32;
|
|
typedef UINT *PUINT, *LPUINT;
|
|
typedef void VOID;
|
|
typedef VOID *PVOID, *LPVOID;
|
|
typedef char CHAR, INT8;
|
|
typedef CHAR *PCHAR, *LPCHAR, *PSTR, *LPSTR;
|
|
typedef const char *PCSTR, *LPCSTR;
|
|
typedef unsigned char BYTE, UINT8;
|
|
typedef BYTE *PBYTE, *LPBYTE;
|
|
typedef const BYTE *PCBYTE, *LPCBYTE;
|
|
typedef wchar_t WCHAR;
|
|
typedef WCHAR *PWSTR, *LPWSTR;
|
|
typedef const WCHAR *PCWSTR, *LPCWSTR;
|
|
typedef LONG INT_PTR, LONG_PTR, LPARAM;
|
|
typedef ULONG UINT_PTR, ULONG_PTR, DWORD_PTR, WPARAM;
|
|
|
|
typedef IID FD, HANDLE, SOCKET;
|
|
typedef INT LRESULT, HRESULT;
|
|
|
|
typedef LLONG __time64_t;
|
|
typedef INT __time32_t;
|
|
|
|
typedef LID NTHR_ID;
|
|
|
|
#ifdef __ANDROID__
|
|
typedef LID THR_ID;
|
|
#else
|
|
typedef ULID THR_ID;
|
|
#endif
|
|
|
|
typedef size_t SIZE_T;
|
|
typedef ssize_t SSIZE_T;
|
|
|
|
#ifdef _UNICODE
|
|
typedef WCHAR TCHAR;
|
|
#else
|
|
typedef CHAR TCHAR;
|
|
#endif
|
|
|
|
typedef TCHAR *PTSTR, *LPTSTR;
|
|
typedef const TCHAR *PCTSTR, *LPCTSTR;
|
|
|
|
#define MAXUINT8 ((UINT8)~((UINT8)0))
|
|
#define MAXINT8 ((INT8)(MAXUINT8 >> 1))
|
|
#define MININT8 ((INT8)~MAXINT8)
|
|
|
|
#define MAXUINT16 ((UINT16)~((UINT16)0))
|
|
#define MAXINT16 ((INT16)(MAXUINT16 >> 1))
|
|
#define MININT16 ((INT16)~MAXINT16)
|
|
|
|
#define MAXUINT32 ((UINT32)~((UINT32)0))
|
|
#define MAXINT32 ((INT32)(MAXUINT32 >> 1))
|
|
#define MININT32 ((INT32)~MAXINT32)
|
|
|
|
#define MAXUINT64 ((UINT64)~((UINT64)0))
|
|
#define MAXINT64 ((INT64)(MAXUINT64 >> 1))
|
|
#define MININT64 ((INT64)~MAXINT64)
|
|
|
|
#define MAXULONG ((ULONG)~((ULONG)0))
|
|
#define MAXLONG ((LONG)(MAXULONG >> 1))
|
|
#define MINLONG ((LONG)~MAXLONG)
|
|
|
|
#define MAXULONGLONG ((ULONGLONG)~((ULONGLONG)0))
|
|
#define MINLONGLONG ((LONGLONG)~MAXLONGLONG)
|
|
|
|
#define MAXSIZE_T ((SIZE_T)~((SIZE_T)0))
|
|
#define MAXSSIZE_T ((SSIZE_T)(MAXSIZE_T >> 1))
|
|
#define MINSSIZE_T ((SSIZE_T)~MAXSSIZE_T)
|
|
|
|
#define MAXUINT ((UINT)~((UINT)0))
|
|
#define MAXINT ((INT)(MAXUINT >> 1))
|
|
#define MININT ((INT)~MAXINT)
|
|
|
|
#define MAXDWORD32 ((DWORD32)~((DWORD32)0))
|
|
#define MAXDWORD64 ((DWORD64)~((DWORD64)0))
|
|
|
|
#define MINBYTE 0x00
|
|
#define MAXBYTE 0xFF
|
|
#define MINCHAR 0x80
|
|
#define MAXCHAR 0x7F
|
|
#define MINSHORT 0x8000
|
|
#define MAXSHORT 0x7FFF
|
|
#define MINUSHORT 0x0000
|
|
#define MAXUSHORT 0xFFFF
|
|
#define MINWORD 0x0000
|
|
#define MAXWORD 0xFFFF
|
|
#define MINDWORD 0x00000000
|
|
#define MAXDWORD 0xFFFFFFFF
|
|
|
|
#ifdef _UNICODE
|
|
#define __T(x) L ## x
|
|
#else
|
|
#define __T(x) x
|
|
#define T2A(p) (p)
|
|
#define A2T(p) (p)
|
|
#define A2CT(p) (p)
|
|
#define T2CA(p) (p)
|
|
#define CT2A(p) (p)
|
|
#define CA2T(p) (p)
|
|
#define CA2CT(p) (p)
|
|
#endif
|
|
|
|
#define _T(x) __T(x)
|
|
#define _TEXT(x) __T(x)
|
|
|
|
#define _In_
|
|
#define _Out_
|
|
#define _Inout_
|
|
#define _In_opt_
|
|
#define _Out_opt_
|
|
#define _Inout_opt_
|
|
#define USES_CONVERSION
|
|
|
|
#define INFINITE -1
|
|
#define NO_ERROR 0
|
|
#define HAS_ERROR -1
|
|
#define TIMEOUT 0
|
|
#define RS_OK NO_ERROR
|
|
#define RS_FAIL HAS_ERROR
|
|
#define RS_TIMEOUT TIMEOUT
|
|
#define INVALID_FD -1
|
|
#define INVALID_HANDLE_VALUE INVALID_FD
|
|
#define INVALID_PVOID ((PVOID)-1)
|
|
#define _MAX_PATH 256
|
|
#define MAX_PATH _MAX_PATH
|
|
#define TRUE 1
|
|
#define FALSE 0
|
|
#define CONST const
|
|
|
|
#define MAKEWORD(a, b) ((WORD)(((BYTE)(((DWORD_PTR)(a)) & 0xff)) | ((WORD)((BYTE)(((DWORD_PTR)(b)) & 0xff))) << 8))
|
|
#define MAKELONG(a, b) ((LONG)(((WORD)(((DWORD_PTR)(a)) & 0xffff)) | ((DWORD)((WORD)(((DWORD_PTR)(b)) & 0xffff))) << 16))
|
|
#define LOWORD(l) ((WORD)(((DWORD_PTR)(l)) & 0xffff))
|
|
#define HIWORD(l) ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff))
|
|
#define LOBYTE(w) ((BYTE)(((DWORD_PTR)(w)) & 0xff))
|
|
#define HIBYTE(w) ((BYTE)((((DWORD_PTR)(w)) >> 8) & 0xff))
|
|
|
|
#if !defined(MAX)
|
|
#define MAX(a,b) (((a) >= (b)) ? (a) : (b))
|
|
#endif
|
|
|
|
#if !defined(MIN)
|
|
#define MIN(a,b) (((a) <= (b)) ? (a) : (b))
|
|
#endif
|
|
|
|
#if !defined(_max)
|
|
#define _max(a,b) MAX(a,b)
|
|
#endif
|
|
|
|
#if !defined(_min)
|
|
#define _min(a,b) MIN(a,b)
|
|
#endif
|
|
|
|
#if defined(NDEBUG)
|
|
#if !defined(_NDEBUG)
|
|
#define _NDEBUG
|
|
#endif
|
|
#if defined(DEBUG)
|
|
#undef DEBUG
|
|
#endif
|
|
#if defined(_DEBUG)
|
|
#undef _DEBUG
|
|
#endif
|
|
#if defined(DEBUG_TRACE)
|
|
#undef DEBUG_TRACE
|
|
#endif
|
|
#else
|
|
#if defined(_NDEBUG)
|
|
#undef _NDEBUG
|
|
#endif
|
|
#if !defined(DEBUG)
|
|
#define DEBUG
|
|
#endif
|
|
#if !defined(_DEBUG)
|
|
#define _DEBUG
|
|
#endif
|
|
#endif
|
|
|
|
#if defined(__arm64__) && !defined(__aarch64__)
|
|
#define __aarch64__ __arm64__
|
|
#elif defined(__aarch64__) && !defined(__arm64__)
|
|
#define __arm64__ __aarch64__
|
|
#endif
|
|
|
|
#ifdef __cplusplus
|
|
#define EXTERN_C extern "C"
|
|
#define EXTERN_C_BEGIN EXTERN_C {
|
|
#define EXTERN_C_END }
|
|
#else
|
|
#define EXTERN_C extern
|
|
#define EXTERN_C_BEGIN
|
|
#define EXTERN_C_END
|
|
#endif
|
|
|
|
#if !defined(__stdcall)
|
|
#define __stdcall __attribute__ ((__stdcall__))
|
|
#endif
|
|
|
|
#if !defined(__cdecl)
|
|
#define __cdecl __attribute__ ((__cdecl__))
|
|
#endif
|
|
|
|
#if !defined(_GNU_SOURCE)
|
|
#define _GNU_SOURCE
|
|
#endif
|
|
|
|
#if !defined(CALLBACK)
|
|
#define CALLBACK
|
|
#endif
|
|
|
|
#if !defined(WINAPI)
|
|
#define WINAPI
|
|
#endif
|
|
|
|
#if !defined(FORCEINLINE)
|
|
#ifdef __GNUC__
|
|
#define FORCEINLINE __attribute__ ((always_inline))
|
|
#else
|
|
#define FORCEINLINE inline
|
|
#endif
|
|
#endif
|
|
|
|
#if !defined(STATIC_FORCEINLINE)
|
|
#define STATIC_FORCEINLINE static FORCEINLINE
|
|
#endif
|
|
|
|
#if !defined(EXTERN_FORCEINLINE)
|
|
#define EXTERN_FORCEINLINE extern FORCEINLINE
|
|
#endif
|