00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036
00042 #ifndef __DRIZZLE_CONSTANTS_H
00043 #define __DRIZZLE_CONSTANTS_H
00044
00045 #ifdef __cplusplus
00046 extern "C" {
00047 #endif
00048
00059 #define DRIZZLE_RETURN_SERVER_GONE DRIZZLE_RETURN_LOST_CONNECTION
00060 #define DRIZZLE_RETURN_EOF DRIZZLE_RETURN_LOST_CONNECTION
00061 #define DRIZZLE_COLUMN_TYPE_VIRTUAL 17
00062
00063
00064 #define DRIZZLE_DEFAULT_TCP_HOST "127.0.0.1"
00065 #define DRIZZLE_DEFAULT_TCP_PORT 4427
00066 #define DRIZZLE_DEFAULT_TCP_PORT_MYSQL 4427
00067 #define DRIZZLE_DEFAULT_UDS "/tmp/drizzle.sock"
00068 #define DRIZZLE_DEFAULT_UDS_MYSQL "/tmp/mysql.sock"
00069 #define DRIZZLE_DEFAULT_BACKLOG 64
00070 #define DRIZZLE_MAX_ERROR_SIZE 2048
00071 #define DRIZZLE_MAX_USER_SIZE 64
00072 #define DRIZZLE_MAX_PASSWORD_SIZE 32
00073 #define DRIZZLE_MAX_DB_SIZE 64
00074 #define DRIZZLE_MAX_INFO_SIZE 2048
00075 #define DRIZZLE_MAX_SQLSTATE_SIZE 5
00076 #define DRIZZLE_MAX_CATALOG_SIZE 128
00077 #define DRIZZLE_MAX_TABLE_SIZE 128
00078 #define DRIZZLE_MAX_COLUMN_NAME_SIZE 2048
00079 #define DRIZZLE_MAX_DEFAULT_VALUE_SIZE 2048
00080 #define DRIZZLE_MAX_PACKET_SIZE UINT32_MAX
00081 #define DRIZZLE_MAX_BUFFER_SIZE 32768
00082 #define DRIZZLE_BUFFER_COPY_THRESHOLD 8192
00083 #define DRIZZLE_MAX_SERVER_VERSION_SIZE 32
00084 #define DRIZZLE_MAX_SERVER_EXTRA_SIZE 32
00085 #define DRIZZLE_MAX_SCRAMBLE_SIZE 20
00086 #define DRIZZLE_STATE_STACK_SIZE 8
00087 #define DRIZZLE_ROW_GROW_SIZE 8192
00088 #define DRIZZLE_DEFAULT_SOCKET_TIMEOUT 10
00089 #define DRIZZLE_DEFAULT_SOCKET_SEND_SIZE 32768
00090 #define DRIZZLE_DEFAULT_SOCKET_RECV_SIZE 32768
00091 #define DRIZZLE_MYSQL_PASSWORD_HASH 41
00092
00096 typedef enum
00097 {
00098 DRIZZLE_RETURN_OK,
00099 DRIZZLE_RETURN_IO_WAIT,
00100 DRIZZLE_RETURN_PAUSE,
00101 DRIZZLE_RETURN_ROW_BREAK,
00102 DRIZZLE_RETURN_MEMORY,
00103 DRIZZLE_RETURN_ERRNO,
00104 DRIZZLE_RETURN_INTERNAL_ERROR,
00105 DRIZZLE_RETURN_GETADDRINFO,
00106 DRIZZLE_RETURN_NOT_READY,
00107 DRIZZLE_RETURN_BAD_PACKET_NUMBER,
00108 DRIZZLE_RETURN_BAD_HANDSHAKE_PACKET,
00109 DRIZZLE_RETURN_BAD_PACKET,
00110 DRIZZLE_RETURN_PROTOCOL_NOT_SUPPORTED,
00111 DRIZZLE_RETURN_UNEXPECTED_DATA,
00112 DRIZZLE_RETURN_NO_SCRAMBLE,
00113 DRIZZLE_RETURN_AUTH_FAILED,
00114 DRIZZLE_RETURN_NULL_SIZE,
00115 DRIZZLE_RETURN_ERROR_CODE,
00116 DRIZZLE_RETURN_TOO_MANY_COLUMNS,
00117 DRIZZLE_RETURN_ROW_END,
00118 DRIZZLE_RETURN_LOST_CONNECTION,
00119 DRIZZLE_RETURN_COULD_NOT_CONNECT,
00120 DRIZZLE_RETURN_NO_ACTIVE_CONNECTIONS,
00121 DRIZZLE_RETURN_HANDSHAKE_FAILED,
00122 DRIZZLE_RETURN_TIMEOUT,
00123 DRIZZLE_RETURN_MAX
00124 } drizzle_return_t;
00125
00129 typedef enum
00130 {
00131 DRIZZLE_VERBOSE_NEVER,
00132 DRIZZLE_VERBOSE_FATAL,
00133 DRIZZLE_VERBOSE_ERROR,
00134 DRIZZLE_VERBOSE_INFO,
00135 DRIZZLE_VERBOSE_DEBUG,
00136 DRIZZLE_VERBOSE_CRAZY,
00137 DRIZZLE_VERBOSE_MAX
00138 } drizzle_verbose_t;
00139
00146 typedef enum
00147 {
00148 DRIZZLE_NONE= 0,
00149 DRIZZLE_ALLOCATED= (1 << 0),
00150 DRIZZLE_NON_BLOCKING= (1 << 1),
00151 DRIZZLE_FREE_OBJECTS= (1 << 2),
00152 DRIZZLE_ASSERT_DANGLING= (1 << 3)
00153 } drizzle_options_t;
00154
00159 typedef enum
00160 {
00161 DRIZZLE_CON_NONE= 0,
00162 DRIZZLE_CON_ALLOCATED= (1 << 0),
00163 DRIZZLE_CON_MYSQL= (1 << 1),
00164 DRIZZLE_CON_RAW_PACKET= (1 << 2),
00165 DRIZZLE_CON_RAW_SCRAMBLE= (1 << 3),
00166 DRIZZLE_CON_READY= (1 << 4),
00167 DRIZZLE_CON_NO_RESULT_READ= (1 << 5),
00168 DRIZZLE_CON_IO_READY= (1 << 6),
00169 DRIZZLE_CON_LISTEN= (1 << 7),
00170 DRIZZLE_CON_EXPERIMENTAL= (1 << 8),
00171 DRIZZLE_CON_FOUND_ROWS= (1 << 9),
00172 DRIZZLE_CON_ADMIN= (1 << 10),
00173 DRIZZLE_CON_INTERACTIVE= (1 << 11),
00174 DRIZZLE_CON_MULTI_STATEMENTS= (1 << 12),
00175 DRIZZLE_CON_AUTH_PLUGIN= (1 << 13)
00176 } drizzle_con_options_t;
00177
00182 typedef enum
00183 {
00184 DRIZZLE_CON_SOCKET_TCP= 0,
00185 DRIZZLE_CON_SOCKET_UDS= (1 << 0)
00186 } drizzle_con_socket_t;
00187
00192 typedef enum
00193 {
00194 DRIZZLE_CON_STATUS_NONE= 0,
00195 DRIZZLE_CON_STATUS_IN_TRANS= (1 << 0),
00196 DRIZZLE_CON_STATUS_AUTOCOMMIT= (1 << 1),
00197 DRIZZLE_CON_STATUS_MORE_RESULTS_EXISTS= (1 << 3),
00198 DRIZZLE_CON_STATUS_QUERY_NO_GOOD_INDEX_USED= (1 << 4),
00199 DRIZZLE_CON_STATUS_QUERY_NO_INDEX_USED= (1 << 5),
00200 DRIZZLE_CON_STATUS_CURSOR_EXISTS= (1 << 6),
00201 DRIZZLE_CON_STATUS_LAST_ROW_SENT= (1 << 7),
00202 DRIZZLE_CON_STATUS_DB_DROPPED= (1 << 8),
00203 DRIZZLE_CON_STATUS_NO_BACKSLASH_ESCAPES= (1 << 9),
00204 DRIZZLE_CON_STATUS_QUERY_WAS_SLOW= (1 << 10)
00205 } drizzle_con_status_t;
00206
00211 typedef enum
00212 {
00213 DRIZZLE_CAPABILITIES_NONE= 0,
00214 DRIZZLE_CAPABILITIES_LONG_PASSWORD= (1 << 0),
00215 DRIZZLE_CAPABILITIES_FOUND_ROWS= (1 << 1),
00216 DRIZZLE_CAPABILITIES_LONG_FLAG= (1 << 2),
00217 DRIZZLE_CAPABILITIES_CONNECT_WITH_DB= (1 << 3),
00218 DRIZZLE_CAPABILITIES_NO_SCHEMA= (1 << 4),
00219 DRIZZLE_CAPABILITIES_COMPRESS= (1 << 5),
00220 DRIZZLE_CAPABILITIES_ODBC= (1 << 6),
00221 DRIZZLE_CAPABILITIES_LOCAL_FILES= (1 << 7),
00222 DRIZZLE_CAPABILITIES_IGNORE_SPACE= (1 << 8),
00223 DRIZZLE_CAPABILITIES_PROTOCOL_41= (1 << 9),
00224 DRIZZLE_CAPABILITIES_INTERACTIVE= (1 << 10),
00225 DRIZZLE_CAPABILITIES_SSL= (1 << 11),
00226 DRIZZLE_CAPABILITIES_IGNORE_SIGPIPE= (1 << 12),
00227 DRIZZLE_CAPABILITIES_TRANSACTIONS= (1 << 13),
00228 DRIZZLE_CAPABILITIES_RESERVED= (1 << 14),
00229 DRIZZLE_CAPABILITIES_SECURE_CONNECTION= (1 << 15),
00230 DRIZZLE_CAPABILITIES_MULTI_STATEMENTS= (1 << 16),
00231 DRIZZLE_CAPABILITIES_MULTI_RESULTS= (1 << 17),
00232 DRIZZLE_CAPABILITIES_PS_MULTI_RESULTS= (1 << 18),
00233 DRIZZLE_CAPABILITIES_PLUGIN_AUTH= (1 << 19),
00234 DRIZZLE_CAPABILITIES_ADMIN= (1 << 25),
00235 DRIZZLE_CAPABILITIES_SSL_VERIFY_SERVER_CERT= (1 << 30),
00236 DRIZZLE_CAPABILITIES_REMEMBER_OPTIONS= (1 << 31),
00237 DRIZZLE_CAPABILITIES_CLIENT= (DRIZZLE_CAPABILITIES_LONG_PASSWORD |
00238 DRIZZLE_CAPABILITIES_FOUND_ROWS |
00239 DRIZZLE_CAPABILITIES_LONG_FLAG |
00240 DRIZZLE_CAPABILITIES_CONNECT_WITH_DB |
00241 DRIZZLE_CAPABILITIES_PLUGIN_AUTH |
00242 DRIZZLE_CAPABILITIES_TRANSACTIONS |
00243 DRIZZLE_CAPABILITIES_PROTOCOL_41 |
00244 DRIZZLE_CAPABILITIES_SECURE_CONNECTION |
00245 DRIZZLE_CAPABILITIES_ADMIN)
00246 } drizzle_capabilities_t;
00247
00252 typedef enum
00253 {
00254 DRIZZLE_COMMAND_SLEEP,
00255 DRIZZLE_COMMAND_QUIT,
00256 DRIZZLE_COMMAND_INIT_DB,
00257 DRIZZLE_COMMAND_QUERY,
00258 DRIZZLE_COMMAND_FIELD_LIST,
00259 DRIZZLE_COMMAND_CREATE_DB,
00260 DRIZZLE_COMMAND_DROP_DB,
00261 DRIZZLE_COMMAND_REFRESH,
00262 DRIZZLE_COMMAND_SHUTDOWN,
00263 DRIZZLE_COMMAND_STATISTICS,
00264 DRIZZLE_COMMAND_PROCESS_INFO,
00265 DRIZZLE_COMMAND_CONNECT,
00266 DRIZZLE_COMMAND_PROCESS_KILL,
00267 DRIZZLE_COMMAND_DEBUG,
00268 DRIZZLE_COMMAND_PING,
00269 DRIZZLE_COMMAND_TIME,
00270 DRIZZLE_COMMAND_DELAYED_INSERT,
00271 DRIZZLE_COMMAND_CHANGE_USER,
00272 DRIZZLE_COMMAND_BINLOG_DUMP,
00273 DRIZZLE_COMMAND_TABLE_DUMP,
00274 DRIZZLE_COMMAND_CONNECT_OUT,
00275 DRIZZLE_COMMAND_REGISTER_SLAVE,
00276 DRIZZLE_COMMAND_STMT_PREPARE,
00277 DRIZZLE_COMMAND_STMT_EXECUTE,
00278 DRIZZLE_COMMAND_STMT_SEND_LONG_DATA,
00279 DRIZZLE_COMMAND_STMT_CLOSE,
00280 DRIZZLE_COMMAND_STMT_RESET,
00281 DRIZZLE_COMMAND_SET_OPTION,
00282 DRIZZLE_COMMAND_STMT_FETCH,
00283 DRIZZLE_COMMAND_DAEMON,
00284 DRIZZLE_COMMAND_END
00285 } drizzle_command_t;
00286
00291 typedef enum
00292 {
00293 DRIZZLE_COMMAND_DRIZZLE_SLEEP,
00294 DRIZZLE_COMMAND_DRIZZLE_QUIT,
00295 DRIZZLE_COMMAND_DRIZZLE_INIT_DB,
00296 DRIZZLE_COMMAND_DRIZZLE_QUERY,
00297 DRIZZLE_COMMAND_DRIZZLE_SHUTDOWN,
00298 DRIZZLE_COMMAND_DRIZZLE_CONNECT,
00299 DRIZZLE_COMMAND_DRIZZLE_PING,
00300 DRIZZLE_COMMAND_DRIZZLE_KILL,
00301 DRIZZLE_COMMAND_DRIZZLE_END
00302 } drizzle_command_drizzle_t;
00303
00308 typedef enum
00309 {
00310 DRIZZLE_QUERY_NONE,
00311 DRIZZLE_QUERY_ALLOCATED= (1 << 0)
00312 } drizzle_query_options_t;
00313
00318 typedef enum
00319 {
00320 DRIZZLE_QUERY_STATE_INIT,
00321 DRIZZLE_QUERY_STATE_QUERY,
00322 DRIZZLE_QUERY_STATE_RESULT,
00323 DRIZZLE_QUERY_STATE_DONE
00324 } drizzle_query_state_t;
00325
00330 typedef enum
00331 {
00332 DRIZZLE_RESULT_NONE= 0,
00333 DRIZZLE_RESULT_ALLOCATED= (1 << 0),
00334 DRIZZLE_RESULT_SKIP_COLUMN= (1 << 1),
00335 DRIZZLE_RESULT_BUFFER_COLUMN= (1 << 2),
00336 DRIZZLE_RESULT_BUFFER_ROW= (1 << 3),
00337 DRIZZLE_RESULT_EOF_PACKET= (1 << 4),
00338 DRIZZLE_RESULT_ROW_BREAK= (1 << 5)
00339 } drizzle_result_options_t;
00340
00345 typedef enum
00346 {
00347 DRIZZLE_COLUMN_ALLOCATED= (1 << 0)
00348 } drizzle_column_options_t;
00349
00354 typedef enum
00355 {
00356 DRIZZLE_COLUMN_TYPE_DECIMAL,
00357 DRIZZLE_COLUMN_TYPE_TINY,
00358 DRIZZLE_COLUMN_TYPE_SHORT,
00359 DRIZZLE_COLUMN_TYPE_LONG,
00360 DRIZZLE_COLUMN_TYPE_FLOAT,
00361 DRIZZLE_COLUMN_TYPE_DOUBLE,
00362 DRIZZLE_COLUMN_TYPE_NULL,
00363 DRIZZLE_COLUMN_TYPE_TIMESTAMP,
00364 DRIZZLE_COLUMN_TYPE_LONGLONG,
00365 DRIZZLE_COLUMN_TYPE_INT24,
00366 DRIZZLE_COLUMN_TYPE_DATE,
00367 DRIZZLE_COLUMN_TYPE_TIME,
00368 DRIZZLE_COLUMN_TYPE_DATETIME,
00369 DRIZZLE_COLUMN_TYPE_YEAR,
00370 DRIZZLE_COLUMN_TYPE_NEWDATE,
00371 DRIZZLE_COLUMN_TYPE_VARCHAR,
00372 DRIZZLE_COLUMN_TYPE_BIT,
00373 DRIZZLE_COLUMN_TYPE_NEWDECIMAL= 246,
00374 DRIZZLE_COLUMN_TYPE_ENUM= 247,
00375 DRIZZLE_COLUMN_TYPE_SET= 248,
00376 DRIZZLE_COLUMN_TYPE_TINY_BLOB= 249,
00377 DRIZZLE_COLUMN_TYPE_MEDIUM_BLOB= 250,
00378 DRIZZLE_COLUMN_TYPE_LONG_BLOB= 251,
00379 DRIZZLE_COLUMN_TYPE_BLOB= 252,
00380 DRIZZLE_COLUMN_TYPE_VAR_STRING= 253,
00381 DRIZZLE_COLUMN_TYPE_STRING= 254,
00382 DRIZZLE_COLUMN_TYPE_GEOMETRY= 255
00383 } drizzle_column_type_t;
00384
00389 typedef enum
00390 {
00391 DRIZZLE_COLUMN_TYPE_DRIZZLE_TINY,
00392 DRIZZLE_COLUMN_TYPE_DRIZZLE_LONG,
00393 DRIZZLE_COLUMN_TYPE_DRIZZLE_DOUBLE,
00394 DRIZZLE_COLUMN_TYPE_DRIZZLE_NULL,
00395 DRIZZLE_COLUMN_TYPE_DRIZZLE_TIMESTAMP,
00396 DRIZZLE_COLUMN_TYPE_DRIZZLE_LONGLONG,
00397 DRIZZLE_COLUMN_TYPE_DRIZZLE_DATETIME,
00398 DRIZZLE_COLUMN_TYPE_DRIZZLE_DATE,
00399 DRIZZLE_COLUMN_TYPE_DRIZZLE_VARCHAR,
00400 DRIZZLE_COLUMN_TYPE_DRIZZLE_NEWDECIMAL,
00401 DRIZZLE_COLUMN_TYPE_DRIZZLE_ENUM,
00402 DRIZZLE_COLUMN_TYPE_DRIZZLE_BLOB,
00403 DRIZZLE_COLUMN_TYPE_DRIZZLE_TIME,
00404 DRIZZLE_COLUMN_TYPE_DRIZZLE_BOOLEAN,
00405 DRIZZLE_COLUMN_TYPE_DRIZZLE_UUID,
00406 DRIZZLE_COLUMN_TYPE_DRIZZLE_MICROTIME,
00407 DRIZZLE_COLUMN_TYPE_DRIZZLE_MAX=DRIZZLE_COLUMN_TYPE_DRIZZLE_MICROTIME
00408 } drizzle_column_type_drizzle_t;
00409
00414 typedef enum
00415 {
00416 DRIZZLE_COLUMN_FLAGS_NONE= 0,
00417 DRIZZLE_COLUMN_FLAGS_NOT_NULL= (1 << 0),
00418 DRIZZLE_COLUMN_FLAGS_PRI_KEY= (1 << 1),
00419 DRIZZLE_COLUMN_FLAGS_UNIQUE_KEY= (1 << 2),
00420 DRIZZLE_COLUMN_FLAGS_MULTIPLE_KEY= (1 << 3),
00421 DRIZZLE_COLUMN_FLAGS_BLOB= (1 << 4),
00422 DRIZZLE_COLUMN_FLAGS_UNSIGNED= (1 << 5),
00423 DRIZZLE_COLUMN_FLAGS_ZEROFILL= (1 << 6),
00424 DRIZZLE_COLUMN_FLAGS_BINARY= (1 << 7),
00425 DRIZZLE_COLUMN_FLAGS_ENUM= (1 << 8),
00426 DRIZZLE_COLUMN_FLAGS_AUTO_INCREMENT= (1 << 9),
00427 DRIZZLE_COLUMN_FLAGS_TIMESTAMP= (1 << 10),
00428 DRIZZLE_COLUMN_FLAGS_SET= (1 << 11),
00429 DRIZZLE_COLUMN_FLAGS_NO_DEFAULT_VALUE= (1 << 12),
00430 DRIZZLE_COLUMN_FLAGS_ON_UPDATE_NOW= (1 << 13),
00431 DRIZZLE_COLUMN_FLAGS_PART_KEY= (1 << 14),
00432 DRIZZLE_COLUMN_FLAGS_NUM= (1 << 15),
00433 DRIZZLE_COLUMN_FLAGS_GROUP= (1 << 15),
00434 DRIZZLE_COLUMN_FLAGS_UNIQUE= (1 << 16),
00435 DRIZZLE_COLUMN_FLAGS_BINCMP= (1 << 17),
00436 DRIZZLE_COLUMN_FLAGS_GET_FIXED_FIELDS= (1 << 18),
00437 DRIZZLE_COLUMN_FLAGS_IN_PART_FUNC= (1 << 19),
00438 DRIZZLE_COLUMN_FLAGS_IN_ADD_INDEX= (1 << 20),
00439 DRIZZLE_COLUMN_FLAGS_RENAMED= (1 << 21)
00440 } drizzle_column_flags_t;
00441
00449
00450 typedef struct drizzle_st drizzle_st;
00451 typedef struct drizzle_con_tcp_st drizzle_con_tcp_st;
00452 typedef struct drizzle_con_uds_st drizzle_con_uds_st;
00453 typedef struct drizzle_con_st drizzle_con_st;
00454 typedef struct drizzle_query_st drizzle_query_st;
00455 typedef struct drizzle_result_st drizzle_result_st;
00456 typedef struct drizzle_column_st drizzle_column_st;
00457 typedef char *drizzle_field_t;
00458 typedef drizzle_field_t *drizzle_row_t;
00459 typedef uint8_t drizzle_charset_t;
00460
00461
00462 typedef void (drizzle_context_free_fn)(drizzle_st *drizzle,
00463 void *context);
00464 typedef void (drizzle_log_fn)(const char *line, drizzle_verbose_t verbose,
00465 void *context);
00466 typedef drizzle_return_t (drizzle_state_fn)(drizzle_con_st *con);
00467 typedef void (drizzle_con_context_free_fn)(drizzle_con_st *con,
00468 void *context);
00469 typedef void (drizzle_query_context_free_fn)(drizzle_query_st *query,
00470 void *context);
00483 typedef drizzle_return_t (drizzle_event_watch_fn)(drizzle_con_st *con,
00484 short events,
00485 void *context);
00486
00496
00497 #define drizzle_get_byte2(__buffer) \
00498 (uint16_t)((__buffer)[0] | \
00499 ((__buffer)[1] << 8))
00500 #define drizzle_get_byte3(__buffer) \
00501 (uint32_t)((__buffer)[0] | \
00502 ((__buffer)[1] << 8) | \
00503 ((__buffer)[2] << 16))
00504 #define drizzle_get_byte4(__buffer) \
00505 (uint32_t)((__buffer)[0] | \
00506 ((__buffer)[1] << 8) | \
00507 ((__buffer)[2] << 16) | \
00508 ((__buffer)[3] << 24))
00509 #define drizzle_get_byte8(__buffer) \
00510 ((uint64_t)(__buffer)[0] | \
00511 ((uint64_t)(__buffer)[1] << 8) | \
00512 ((uint64_t)(__buffer)[2] << 16) | \
00513 ((uint64_t)(__buffer)[3] << 24) | \
00514 ((uint64_t)(__buffer)[4] << 32) | \
00515 ((uint64_t)(__buffer)[5] << 40) | \
00516 ((uint64_t)(__buffer)[6] << 48) | \
00517 ((uint64_t)(__buffer)[7] << 56))
00518
00519
00520 #define drizzle_set_byte2(__buffer, __int) do { \
00521 (__buffer)[0]= (uint8_t)((__int) & 0xFF); \
00522 (__buffer)[1]= (uint8_t)(((__int) >> 8) & 0xFF); } while (0)
00523 #define drizzle_set_byte3(__buffer, __int) do { \
00524 (__buffer)[0]= (uint8_t)((__int) & 0xFF); \
00525 (__buffer)[1]= (uint8_t)(((__int) >> 8) & 0xFF); \
00526 (__buffer)[2]= (uint8_t)(((__int) >> 16) & 0xFF); } while (0)
00527 #define drizzle_set_byte4(__buffer, __int) do { \
00528 (__buffer)[0]= (uint8_t)((__int) & 0xFF); \
00529 (__buffer)[1]= (uint8_t)(((__int) >> 8) & 0xFF); \
00530 (__buffer)[2]= (uint8_t)(((__int) >> 16) & 0xFF); \
00531 (__buffer)[3]= (uint8_t)(((__int) >> 24) & 0xFF); } while (0)
00532 #define drizzle_set_byte8(__buffer, __int) do { \
00533 (__buffer)[0]= (uint8_t)((__int) & 0xFF); \
00534 (__buffer)[1]= (uint8_t)(((__int) >> 8) & 0xFF); \
00535 (__buffer)[2]= (uint8_t)(((__int) >> 16) & 0xFF); \
00536 (__buffer)[3]= (uint8_t)(((__int) >> 24) & 0xFF); \
00537 (__buffer)[4]= (uint8_t)(((__int) >> 32) & 0xFF); \
00538 (__buffer)[5]= (uint8_t)(((__int) >> 40) & 0xFF); \
00539 (__buffer)[6]= (uint8_t)(((__int) >> 48) & 0xFF); \
00540 (__buffer)[7]= (uint8_t)(((__int) >> 56) & 0xFF); } while (0)
00541
00542
00543 #define drizzle_mb_char(__c) (((__c) & 0x80) != 0)
00544 #define drizzle_mb_length(__c) \
00545 ((uint32_t)(__c) <= 0x7f ? 1 : \
00546 ((uint32_t)(__c) <= 0x7ff ? 2 : \
00547 ((uint32_t)(__c) <= 0xd7ff ? 3 : \
00548 ((uint32_t)(__c) <= 0xdfff || (uint32_t)(__c) > 0x10ffff ? 0 : \
00549 ((uint32_t)(__c) <= 0xffff ? 3 : 4)))))
00550
00553 #ifdef __cplusplus
00554 }
00555 #endif
00556
00557 #endif