You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

166 lines
4.8 KiB
C

2 years ago
/*-----------------------------------------------------------------------------
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>
2 years ago
#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
2 years ago
#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