Annotation of embedaddon/php/ext/mysqlnd/config-win.h, revision 1.1
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: */
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>