1 /* 2 ---------------------------------------------------------------------- 3 | PHP Version 5 | 4 ---------------------------------------------------------------------- 5 | Copyright (c) 2007 The PHP Group | 6 ---------------------------------------------------------------------- 7 | This source file is subject to version 3.01 of the PHP license, | 8 | that is bundled with this package in the file LICENSE, and is | 9 | available through the world-wide-web at the following url: | 10 | http://www.php.net/license/3_01.txt | 11 | If you did not receive a copy of the PHP license and are unable to | 12 | obtain it through the world-wide-web, please send a note to | 13 | license@php.net so we can mail you a copy immediately. | 14 ---------------------------------------------------------------------- 15 | Authors: Georg Richter <georg@mysql.com> | 16 | Andrey Hristov <andrey@mysql.com> | 17 | Ulf Wendel <uwendel@mysql.com> | 18 ---------------------------------------------------------------------- 19 20 */ 21 22 #ifndef MYSQLI_LIBMYSQL_H 23 #define MYSQLI_LIBMYSQL_H 24 25 /* These are unused */ 26 #define MYSQLI_CLOSE_EXPLICIT 0 27 #define MYSQLI_CLOSE_IMPLICIT 1 28 #define MYSQLI_CLOSE_DISCONNECTED 2 29 #define MYSQLND_OPT_NUMERIC_AND_DATETIME_AS_UNICODE 200 30 #define MYSQLND_OPT_INT_AND_YEAR_AS_INT 201 31 32 #define mysqli_result_is_unbuffered(r) ((r)->handle && (r)->handle->status == MYSQL_STATUS_USE_RESULT && (r)->data == NULL) 33 #define mysqli_result_is_unbuffered_and_not_everything_is_fetched(r) mysqli_result_is_unbuffered(r) 34 #define mysqli_server_status(c) (c)->server_status 35 #define mysqli_stmt_get_id(s) ((s)->stmt_id) 36 #define mysqli_stmt_warning_count(s) mysql_warning_count((s)->mysql) 37 #define mysqli_stmt_server_status(s) (s)->mysql->server_status 38 #define mysqli_stmt_get_connection(s) (s)->mysql 39 #define mysqli_close(c, is_forced) mysql_close((c)) 40 #define mysqli_stmt_close(c, implicit) mysql_stmt_close((c)) 41 #define mysqli_free_result(r, is_forced) mysql_free_result((r)) 42 #define mysqli_change_user_silent(c, u, p, d) mysql_change_user((c), (u), (p), (d)) 43 44 45 /* 46 These functions also reside in ext/mysqlnd/mysqlnd_portability.h but since it is only made 47 available if one wants to build mysqli against mysqlnd and they are useful for libmysql as 48 well, we check whether they're not defined [build with libmysql is desired] and define them. 49 50 Bit values are sent in reverted order of bytes, compared to normal !!! 51 */ 52 53 54 #ifndef uint1korr 55 #define uint1korr(A) (*(((uint8_t*)(A)))) 56 #endif 57 58 #ifndef bit_uint2korr 59 #define bit_uint2korr(A) ((uint16_t) (((uint16_t) (((unsigned char*) (A))[1])) +\ 60 ((uint16_t) (((unsigned char*) (A))[0]) << 8))) 61 #endif 62 63 #ifndef bit_uint3korr 64 #define bit_uint3korr(A) ((uint32_t) (((uint32_t) (((unsigned char*) (A))[2])) +\ 65 (((uint32_t) (((unsigned char*) (A))[1])) << 8) +\ 66 (((uint32_t) (((unsigned char*) (A))[0])) << 16))) 67 #endif 68 69 #ifndef bit_uint4korr 70 #define bit_uint4korr(A) ((uint32_t) (((uint32_t) (((unsigned char*) (A))[3])) +\ 71 (((uint32_t) (((unsigned char*) (A))[2])) << 8) +\ 72 (((uint32_t) (((unsigned char*) (A))[1])) << 16) +\ 73 (((uint32_t) (((unsigned char*) (A))[0])) << 24))) 74 #endif 75 76 #ifndef bit_uint5korr 77 #define bit_uint5korr(A) ((uint64_t)(((uint32_t) (((unsigned char*) (A))[4])) +\ 78 (((uint32_t) (((unsigned char*) (A))[3])) << 8) +\ 79 (((uint32_t) (((unsigned char*) (A))[2])) << 16) +\ 80 (((uint32_t) (((unsigned char*) (A))[1])) << 24)) +\ 81 (((uint64_t) (((unsigned char*) (A))[0])) << 32)) 82 #endif 83 84 #ifndef bit_uint6korr 85 #define bit_uint6korr(A) ((uint64_t)(((uint32_t) (((unsigned char*) (A))[5])) +\ 86 (((uint32_t) (((unsigned char*) (A))[4])) << 8) +\ 87 (((uint32_t) (((unsigned char*) (A))[3])) << 16) +\ 88 (((uint32_t) (((unsigned char*) (A))[2])) << 24)) +\ 89 (((uint64_t) (((uint32_t) (((unsigned char*) (A))[1])) +\ 90 (((uint32_t) (((unsigned char*) (A))[0]) << 8)))) <<\ 91 32)) 92 #endif 93 94 #ifndef bit_uint7korr 95 #define bit_uint7korr(A) ((uint64_t)(((uint32_t) (((unsigned char*) (A))[6])) +\ 96 (((uint32_t) (((unsigned char*) (A))[5])) << 8) +\ 97 (((uint32_t) (((unsigned char*) (A))[4])) << 16) +\ 98 (((uint32_t) (((unsigned char*) (A))[3])) << 24)) +\ 99 (((uint64_t) (((uint32_t) (((unsigned char*) (A))[2])) +\ 100 (((uint32_t) (((unsigned char*) (A))[1])) << 8) +\ 101 (((uint32_t) (((unsigned char*) (A))[0])) << 16))) <<\ 102 32)) 103 #endif 104 105 #ifndef bit_uint8korr 106 #define bit_uint8korr(A) ((uint64_t)(((uint32_t) (((unsigned char*) (A))[7])) +\ 107 (((uint32_t) (((unsigned char*) (A))[6])) << 8) +\ 108 (((uint32_t) (((unsigned char*) (A))[5])) << 16) +\ 109 (((uint32_t) (((unsigned char*) (A))[4])) << 24)) +\ 110 (((uint64_t) (((uint32_t) (((unsigned char*) (A))[3])) +\ 111 (((uint32_t) (((unsigned char*) (A))[2])) << 8) +\ 112 (((uint32_t) (((unsigned char*) (A))[1])) << 16) +\ 113 (((uint32_t) (((unsigned char*) (A))[0])) << 24))) <<\ 114 32)) 115 #endif 116 117 #endif /* MYSQLI_LIBMYSQL_H */ 118 119