mirror of
https://github.com/php/php-src.git
synced 2025-08-16 05:58:45 +02:00
Fix build of mysqli when libmysql is used, mysqlnd_portability.h
might not be available for some weird reasons. Added the macros that we need, in that case Code by Jess Portnoy
This commit is contained in:
parent
6a8d4c3287
commit
36a037d236
4 changed files with 84 additions and 7 deletions
|
@ -1,9 +1,9 @@
|
|||
/*
|
||||
+----------------------------------------------------------------------+
|
||||
----------------------------------------------------------------------
|
||||
| PHP Version 6 |
|
||||
+----------------------------------------------------------------------+
|
||||
----------------------------------------------------------------------
|
||||
| Copyright (c) 2007 The PHP Group |
|
||||
+----------------------------------------------------------------------+
|
||||
----------------------------------------------------------------------
|
||||
| This source file is subject to version 3.01 of the PHP license, |
|
||||
| that is bundled with this package in the file LICENSE, and is |
|
||||
| available through the world-wide-web at the following url: |
|
||||
|
@ -11,14 +11,17 @@
|
|||
| If you did not receive a copy of the PHP license and are unable to |
|
||||
| obtain it through the world-wide-web, please send a note to |
|
||||
| license@php.net so we can mail you a copy immediately. |
|
||||
+----------------------------------------------------------------------+
|
||||
----------------------------------------------------------------------
|
||||
| Authors: Georg Richter <georg@mysql.com> |
|
||||
| Andrey Hristov <andrey@mysql.com> |
|
||||
| Ulf Wendel <uwendel@mysql.com> |
|
||||
+----------------------------------------------------------------------+
|
||||
----------------------------------------------------------------------
|
||||
|
||||
*/
|
||||
|
||||
#ifndef MYSQLI_LIBMYSQL_H
|
||||
#define MYSQLI_LIBMYSQL_H
|
||||
|
||||
/* These are unused */
|
||||
#define MYSQLI_CLOSE_EXPLICIT 0
|
||||
#define MYSQLI_CLOSE_IMPLICIT 1
|
||||
|
@ -36,3 +39,78 @@
|
|||
#define mysqli_free_result(r, is_forced) mysql_free_result((r))
|
||||
#define mysqli_change_user_silent(c, u, p, d) mysql_change_user((c), (u), (p), (d))
|
||||
|
||||
|
||||
/*
|
||||
These functions also reside in ext/mysqlnd/mysqlnd_portability.h but since it is only made
|
||||
available if one wants to build mysqli against mysqlnd and they are useful for libmysql as
|
||||
well, we check whether they're not defined [build with libmysql is desired] and define them.
|
||||
|
||||
Bit values are sent in reverted order of bytes, compared to normal !!!
|
||||
*/
|
||||
|
||||
|
||||
#ifndef uint1korr
|
||||
#define uint1korr(A) (*(((uint8_t*)(A))))
|
||||
#endif
|
||||
|
||||
#ifndef bit_uint2korr
|
||||
#define bit_uint2korr(A) ((uint16_t) (((uint16_t) (((unsigned char*) (A))[1])) +\
|
||||
((uint16_t) (((unsigned char*) (A))[0]) << 8)))
|
||||
#endif
|
||||
|
||||
#ifndef bit_uint3korr
|
||||
#define bit_uint3korr(A) ((uint32_t) (((uint32_t) (((unsigned char*) (A))[2])) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[1])) << 8) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[0])) << 16)))
|
||||
#endif
|
||||
|
||||
#ifndef bit_uint4korr
|
||||
#define bit_uint4korr(A) ((uint32_t) (((uint32_t) (((unsigned char*) (A))[3])) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[2])) << 8) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[1])) << 16) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[0])) << 24)))
|
||||
#endif
|
||||
|
||||
#ifndef bit_uint5korr
|
||||
#define bit_uint5korr(A) ((uint64_t)(((uint32_t) (((unsigned char*) (A))[4])) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[3])) << 8) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[2])) << 16) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[1])) << 24)) +\
|
||||
(((uint64_t) (((unsigned char*) (A))[0])) << 32))
|
||||
#endif
|
||||
|
||||
#ifndef bit_uint6korr
|
||||
#define bit_uint6korr(A) ((uint64_t)(((uint32_t) (((unsigned char*) (A))[5])) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[4])) << 8) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[3])) << 16) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[2])) << 24)) +\
|
||||
(((uint64_t) (((uint32_t) (((unsigned char*) (A))[1])) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[0]) << 8)))) <<\
|
||||
32))
|
||||
#endif
|
||||
|
||||
#ifndef bit_uint7korr
|
||||
#define bit_uint7korr(A) ((uint64_t)(((uint32_t) (((unsigned char*) (A))[6])) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[5])) << 8) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[4])) << 16) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[3])) << 24)) +\
|
||||
(((uint64_t) (((uint32_t) (((unsigned char*) (A))[2])) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[1])) << 8) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[0])) << 16))) <<\
|
||||
32))
|
||||
#endif
|
||||
|
||||
#ifndef bit_uint8korr
|
||||
#define bit_uint8korr(A) ((uint64_t)(((uint32_t) (((unsigned char*) (A))[7])) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[6])) << 8) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[5])) << 16) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[4])) << 24)) +\
|
||||
(((uint64_t) (((uint32_t) (((unsigned char*) (A))[3])) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[2])) << 8) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[1])) << 16) +\
|
||||
(((uint32_t) (((unsigned char*) (A))[0])) << 24))) <<\
|
||||
32))
|
||||
#endif
|
||||
|
||||
#endif /* MYSQLI_LIBMYSQL_H */
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue