Annotation of embedaddon/php/ext/mysqlnd/config-win.h, revision 1.1.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>