Return to config-win.h CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / php / ext / mysqlnd |
1.1 ! misho 1: /* Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB ! 2: This file is public domain and comes with NO WARRANTY of any kind */ ! 3: ! 4: /* Defines for Win32 to make it compatible for MySQL */ ! 5: ! 6: #ifndef _MYSQLND_CONFIG_WIN_H ! 7: #define _MYSQLND_CONFIG_WIN_H ! 8: ! 9: #include <sys/locking.h> ! 10: #include <windows.h> ! 11: #include <math.h> /* Because of rint() */ ! 12: #include <fcntl.h> ! 13: #include <io.h> ! 14: #include <malloc.h> ! 15: ! 16: #include <win32/php_stdint.h> ! 17: ! 18: #ifndef HAVE_INT8_T ! 19: #define HAVE_INT8_T ! 20: #endif ! 21: #ifndef HAVE_UINT8_T ! 22: #define HAVE_UINT8_T ! 23: #endif ! 24: #ifndef HAVE_INT16_T ! 25: #define HAVE_INT16_T ! 26: #endif ! 27: #ifndef HAVE_UINT16_T ! 28: #define HAVE_UINT16_T ! 29: #endif ! 30: #ifndef HAVE_INT32_T ! 31: #define HAVE_INT32_T ! 32: #endif ! 33: #ifndef HAVE_UINT32_T ! 34: #define HAVE_UINT32_T ! 35: #endif ! 36: #ifndef HAVE_INT64_T ! 37: #define HAVE_INT64_T ! 38: #endif ! 39: #ifndef HAVE_UINT64_T ! 40: #define HAVE_UINT64_T ! 41: #endif ! 42: ! 43: ! 44: #ifndef _WIN64 ! 45: #ifndef _WIN32 ! 46: #define _WIN32 /* Compatible with old source */ ! 47: #endif ! 48: #ifndef __WIN32__ ! 49: #define __WIN32__ ! 50: #endif ! 51: #endif /* _WIN64 */ ! 52: #ifndef __WIN__ ! 53: #define __WIN__ /* To make it easier in VC++ */ ! 54: #endif ! 55: ! 56: /* Type information */ ! 57: ! 58: #define SIZEOF_CHAR 1 ! 59: #define SIZEOF_LONG 4 ! 60: #define SIZEOF_LONG_LONG 8 ! 61: ! 62: ! 63: #ifndef _WIN64 ! 64: /* Optimized store functions for Intel x86 */ ! 65: ! 66: #define sint2korr(A) (*((int16_t *) (A))) ! 67: #define sint3korr(A) ((int32_t) ((((zend_uchar) (A)[2]) & 128) ? \ ! 68: (((uint32_t) 255L << 24) | \ ! 69: (((uint32_t) (zend_uchar) (A)[2]) << 16) |\ ! 70: (((uint32_t) (zend_uchar) (A)[1]) << 8) | \ ! 71: ((uint32_t) (zend_uchar) (A)[0])) : \ ! 72: (((uint32_t) (zend_uchar) (A)[2]) << 16) |\ ! 73: (((uint32_t) (zend_uchar) (A)[1]) << 8) | \ ! 74: ((uint32_t) (zend_uchar) (A)[0]))) ! 75: #define sint4korr(A) (*((int32_t *) (A))) ! 76: #define uint2korr(A) (*((uint16_t *) (A))) ! 77: #define uint3korr(A) (int32_t) (*((uint32_t *) (A)) & 0xFFFFFF) ! 78: #define uint4korr(A) (*((uint32_t *) (A))) ! 79: #define uint5korr(A) ((uint64_t)(((uint32_t) ((zend_uchar) (A)[0])) +\ ! 80: (((uint32_t) ((zend_uchar) (A)[1])) << 8) +\ ! 81: (((uint32_t) ((zend_uchar) (A)[2])) << 16) +\ ! 82: (((uint32_t) ((zend_uchar) (A)[3])) << 24)) +\ ! 83: (((uint64_t) ((zend_uchar) (A)[4])) << 32)) ! 84: #define uint8korr(A) (*((uint64_t *) (A))) ! 85: #define sint8korr(A) (*((int64_t *) (A))) ! 86: #define int2store(T,A) *((uint16_t*) (T))= (uint16_t) (A) ! 87: #define int3store(T,A) { *(T)= (zend_uchar) ((A));\ ! 88: *(T+1)=(zend_uchar) (((uint32_t) (A) >> 8));\ ! 89: *(T+2)=(zend_uchar) (((A) >> 16)); } ! 90: #define int4store(T,A) *((int32_t *) (T))= (int32_t) (A) ! 91: #define int5store(T,A) { *(T)= (zend_uchar)((A));\ ! 92: *((T)+1)=(zend_uchar) (((A) >> 8));\ ! 93: *((T)+2)=(zend_uchar) (((A) >> 16));\ ! 94: *((T)+3)=(zend_uchar) (((A) >> 24)); \ ! 95: *((T)+4)=(zend_uchar) (((A) >> 32)); } ! 96: #define int8store(T,A) *((uint64_t *) (T))= (uint64_t) (A) ! 97: ! 98: #define float8get(V,M) { *((int32_t *) &V) = *((int32_t*) M); \ ! 99: *(((int32_t *) &V)+1) = *(((int32_t*) M)+1); } ! 100: #define float8store(T,V) { *((int32_t *) T) = *((int32_t*) &V); \ ! 101: *(((int32_t *) T)+1) = *(((int32_t*) &V)+1); } ! 102: #define float4get(V,M) { *((int32_t *) &(V)) = *((int32_t*) (M)); } ! 103: ! 104: #endif /* _WIN64 */ ! 105: ! 106: #endif /* _MYSQLND_CONFIG_WIN_H */ ! 107: ! 108: /* ! 109: * Local variables: ! 110: * tab-width: 4 ! 111: * c-basic-offset: 4 ! 112: * End: ! 113: * vim600: noet sw=4 ts=4 fdm=marker ! 114: * vim<600: noet sw=4 ts=4 ! 115: */