|
|
|
|
/*-----------------------------------------------------------------------------
|
|
|
|
|
platform_def.h <EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD>ض<EFBFBD><EFBFBD><EFBFBD> zl 2002.11.5
|
|
|
|
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>кͲ<EFBFBD><EFBFBD><EFBFBD>ϵͳƽ̨<EFBFBD><EFBFBD><EFBFBD>صij<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>͡<EFBFBD><EFBFBD>꼰ͷ<EFBFBD>ļ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
-----------------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/*-----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>볣<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Լ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
(1) Windows<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ: OS_WINDOWS
|
|
|
|
|
|
|
|
|
|
(2) Unix(ͳ<EFBFBD><EFBFBD>)<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ: OS_UNIX
|
|
|
|
|
(3) Linux<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ: _OS_UNIX_LINUX_
|
|
|
|
|
(4) True64<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ: _OS_UNIX_TRUR64_
|
|
|
|
|
(5) Solaris<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ: _OS_UNIX_SOLARIS_
|
|
|
|
|
|
|
|
|
|
(6) 64λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ: _OS_64BIT_
|
|
|
|
|
|
|
|
|
|
(7) Windows<EFBFBD>ֽ<EFBFBD>˳<EFBFBD><EFBFBD>: _OS_WINDOWS_BYTEORDER_
|
|
|
|
|
(8) Solaris<EFBFBD>ֽ<EFBFBD>˳<EFBFBD><EFBFBD>: _OS_SOLARIS_BYTEORDER_
|
|
|
|
|
|
|
|
|
|
[˵<EFBFBD><EFBFBD>]<EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
a. 64λ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD>Ҫ<EFBFBD>У<EFBFBD>DEC True64, solaris(<EFBFBD><EFBFBD>ʱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>32λϵͳ,<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͨ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>sizeof
|
|
|
|
|
(long)<EFBFBD>Ƿ<EFBFBD>=8<EFBFBD><EFBFBD><EFBFBD>ж<EFBFBD>)
|
|
|
|
|
|
|
|
|
|
b. windows, linux, true64 <EFBFBD>Ȳ<EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>˳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>solaris<EFBFBD>෴,<EFBFBD><EFBFBD><EFBFBD>˷ֱ<EFBFBD><EFBFBD><EFBFBD>Windows
|
|
|
|
|
<EFBFBD><EFBFBD>solarisΪ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>岻ͬ<EFBFBD><EFBFBD><EFBFBD>ֽ<EFBFBD>˳<EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
c. Unix<EFBFBD><EFBFBD><EFBFBD><EFBFBD>ϵͳ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>࣬ÿ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD><EFBFBD>IJ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>unixϵͳÿ<EFBFBD>ֶ<EFBFBD><EFBFBD><EFBFBD>һ<EFBFBD><EFBFBD>
|
|
|
|
|
<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>볣<EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
-----------------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
#ifndef PLATFORM_DEF_H
|
|
|
|
|
#define PLATFORM_DEF_H
|
|
|
|
|
|
|
|
|
|
/*------------------------------------ ͷ<>ļ<EFBFBD><C4BC><EFBFBD><EFBFBD><EFBFBD> --------------------------------*/
|
|
|
|
|
|
|
|
|
|
#ifdef OS_WINDOWS //windows
|
|
|
|
|
#include <windows.h>
|
|
|
|
|
#include <dos.h>
|
|
|
|
|
#include <direct.h>
|
|
|
|
|
#include <time.h>
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef OS_UNIX //unix
|
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
#include <sys/ipc.h>
|
|
|
|
|
#include <sys/sem.h>
|
|
|
|
|
#include <sys/msg.h>
|
|
|
|
|
#include <sys/shm.h>
|
|
|
|
|
#include <sys/time.h>
|
|
|
|
|
#include <sys/select.h>
|
|
|
|
|
#include <sys/socket.h>
|
|
|
|
|
#include <sys/stat.h>
|
|
|
|
|
#include <arpa/inet.h> //inet<65><74>ַ<EFBFBD><D6B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>нṹ<D0BD>ͳ<EFBFBD><CDB3><EFBFBD><EFBFBD><EFBFBD><EFBFBD>嶼<EFBFBD><E5B6BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#include <netinet/in.h>
|
|
|
|
|
#include <errno.h>
|
|
|
|
|
// #include <stropts.h>
|
|
|
|
|
#include <stddef.h>
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
#include <unistd.h>
|
|
|
|
|
#include <fcntl.h>
|
|
|
|
|
#include <signal.h>
|
|
|
|
|
#include <pthread.h>
|
|
|
|
|
#include <string.h>
|
|
|
|
|
// #include <time.h>
|
|
|
|
|
#include <netdb.h> //<2F><><EFBFBD><EFBFBD>bsd socket<65><74>gethostbyname()<29><><EFBFBD><EFBFBD>
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/*------------------------------------ <20><><EFBFBD>ֶ<EFBFBD><D6B6><EFBFBD> --------------------------------*/
|
|
|
|
|
|
|
|
|
|
//ȫ<><C8AB><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>滻<EFBFBD><E6BBBB><EFBFBD><EFBFBD>,Ϊ<><CEAA><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ֲʱ<D6B2><CAB1><EFBFBD><EFBFBD><EFBFBD>Ľṹ<C4BD><E1B9B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ĺ<EFBFBD><C4B9><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
#ifdef OS_UNIX
|
|
|
|
|
#define SYSTEMTIME QSYSTEMTIME
|
|
|
|
|
#define GetLocalTime QGetLocalTime
|
|
|
|
|
#define SetLocalTime QSetLocalTime
|
|
|
|
|
|
|
|
|
|
#define GetPrivateProfileString QGetPrivateProfileString
|
|
|
|
|
#define GetPrivateProfileInt QGetPrivateProfileInt
|
|
|
|
|
#define WritePrivateProfileString QWritePrivateProfileString
|
|
|
|
|
|
|
|
|
|
#define closesocket close //winsock<63>йر<D0B9>socket<65><74>closesocket(),<2C><>bsd socket<65><74><EFBFBD><EFBFBD>close()
|
|
|
|
|
#define _strdup strdup
|
|
|
|
|
#define lstrcpyn strncpy
|
|
|
|
|
#define _getcwd getcwd
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/*-------------------------------- <20><><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD> ------------------------------------*/
|
|
|
|
|
|
|
|
|
|
#ifdef OS_UNIX
|
|
|
|
|
|
|
|
|
|
typedef unsigned char BYTE;
|
|
|
|
|
typedef unsigned char u_char;
|
|
|
|
|
typedef unsigned char UCHAR;
|
|
|
|
|
|
|
|
|
|
typedef unsigned long DWORD;
|
|
|
|
|
typedef unsigned short WORD;
|
|
|
|
|
typedef unsigned short u_short;
|
|
|
|
|
typedef unsigned short USHORT;
|
|
|
|
|
|
|
|
|
|
typedef int BOOL;
|
|
|
|
|
typedef int INT;
|
|
|
|
|
|
|
|
|
|
typedef unsigned int u_int;
|
|
|
|
|
typedef unsigned int UINT;
|
|
|
|
|
typedef unsigned int SOCKET; //Ϊ<><CEAA><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Winsock.h<><68><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>
|
|
|
|
|
|
|
|
|
|
typedef unsigned long u_long;
|
|
|
|
|
typedef unsigned long ULONG;
|
|
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef _OS_64BIT_
|
|
|
|
|
typedef int i_32; //<2F>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD>Ϊ4<CEAA><34><EFBFBD>ֽڵ<D6BD><DAB5>з<EFBFBD><D0B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
typedef unsigned int u_32; //<2F>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD>Ϊ4<CEAA><34><EFBFBD>ֽڵ<D6BD><DAB5><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
|
|
|
|
|
typedef long _int64; //Vc<56><63>64λ<34><CEBB><EFBFBD><EFBFBD>_int64<36><34>64λunix<69>¶<EFBFBD>Ӧlong(8<><38><EFBFBD>ֽ<EFBFBD>), dnp30.cpp<70><70><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#else
|
|
|
|
|
typedef long i_32;
|
|
|
|
|
typedef unsigned long u_32;
|
|
|
|
|
|
|
|
|
|
#ifdef OS_UNIX
|
|
|
|
|
typedef int64_t _int64; //Vc<56><63>64λ<34><CEBB><EFBFBD><EFBFBD>_int64<36><34>32λunix<69>¶<EFBFBD>Ӧint64_t,<2C><>sys/types.h<>ж<EFBFBD><D0B6><EFBFBD>
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#ifdef OS_UNIX
|
|
|
|
|
typedef u_32 DWORD; //DWORDΪ<44>̶<EFBFBD><CCB6><EFBFBD><EFBFBD><EFBFBD>4<EFBFBD><34><EFBFBD>ֽڵ<D6BD><DAB5><EFBFBD><DEB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/*----------------------------------- <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> ----------------------------------*/
|
|
|
|
|
|
|
|
|
|
#ifdef OS_UNIX
|
|
|
|
|
#define TRUE 1
|
|
|
|
|
#define FALSE 0
|
|
|
|
|
#define NULL 0
|
|
|
|
|
|
|
|
|
|
#define INVALID_SOCKET (SOCKET)(~0) //Ϊ<><CEAA><EFBFBD><EFBFBD>ͨ<EFBFBD><CDA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ʱ<EFBFBD><CAB1>Winsock.h<><68><EFBFBD><EFBFBD>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD>Ͷ<EFBFBD><CDB6><EFBFBD>
|
|
|
|
|
#define SOCKET_ERROR (-1)
|
|
|
|
|
#define INADDR_NONE 0xffffffff
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/*------------------------------------ <20>궨<EFBFBD><EAB6A8> -----------------------------------*/
|
|
|
|
|
|
|
|
|
|
#ifdef OS_UNIX
|
|
|
|
|
#define MAKEWORD(a, b) ((WORD)(((BYTE)(a)) | ((WORD)((BYTE)(b))) << 8))
|
|
|
|
|
#define MAKELONG(a, b) ((LONG)(((WORD)(a)) | ((DWORD)((WORD)(b))) << 16))
|
|
|
|
|
#define LOWORD(l) ((WORD)(l))
|
|
|
|
|
#define HIWORD(l) ((WORD)(((DWORD)(l) >> 16) & 0xFFFF))
|
|
|
|
|
#define LOBYTE(w) ((BYTE)(w))
|
|
|
|
|
#define HIBYTE(w) ((BYTE)(((WORD)(w) >> 8) & 0xFF))
|
|
|
|
|
#define max(a,b) (((a) > (b)) ? (a) : (b))
|
|
|
|
|
#define min(a,b) (((a) < (b)) ? (a) : (b))
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
/*-------------------------------------------------------------------------------*/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#endif //PLATFORM_DEF_H
|