18
18
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
21
#ifndef MYSYS_MY_SYS_H
22
#define MYSYS_MY_SYS_H
21
#ifndef DRIZZLED_INTERNAL_MY_SYS_H
22
#define DRIZZLED_INTERNAL_MY_SYS_H
25
#define my_errno (errno)
27
#include <mysys/my_pthread.h>
29
#include <mystrings/m_ctype.h> /* for CHARSET_INFO */
32
#include "drizzled/internal/my_pthread.h"
34
#include "drizzled/charset_info.h" /* for CHARSET_INFO */
30
35
#include <stdarg.h>
31
#include <mysys/typelib.h>
32
#include <mysys/aio_result.h>
34
#include <mysys/my_alloc.h>
36
#include "drizzled/typelib.h"
37
#include "drizzled/internal/aio_result.h"
39
#include "drizzled/memory/root.h"
40
#include "drizzled/my_error.h"
42
#ifndef errno /* did we already get it? */
43
#ifdef HAVE_ERRNO_AS_DEFINE
44
#include <errno.h> /* errno is a define */
46
extern int errno; /* declare errno */
48
#endif /* #ifndef errno */
50
#include <drizzled/dynamic_array.h>
54
#include "drizzled/qsort_cmp.h"
60
#define MAP_NORESERVE 0 /* For irix and AIX */
36
64
/* Sun Studio does not inject this into main namespace yet */
37
65
#if defined(__cplusplus)
119
typedef int (*qsort_cmp)(const void *,const void *);
120
typedef int (*qsort_cmp2)(void*, const void *,const void *);
137
typedef uint64_t my_off_t;
122
139
#define TRASH(A,B) /* nothing */
124
#ifndef errno /* did we already get it? */
125
#ifdef HAVE_ERRNO_AS_DEFINE
126
#include <errno.h> /* errno is a define */
128
extern int errno; /* declare errno */
130
#endif /* #ifndef errno */
131
141
extern char *home_dir; /* Home directory for user */
132
142
extern const char *my_progname; /* program-name (printed in errors) */
133
typedef void (*error_handler_func)(uint32_t my_err, const char *str,myf MyFlags);
134
extern error_handler_func error_handler_hook;
135
143
extern uint32_t my_file_limit;
138
extern const CHARSET_INFO *default_charset_info;
139
extern CHARSET_INFO *all_charsets[256];
140
extern CHARSET_INFO compiled_charsets[];
143
146
extern uint32_t my_file_opened,my_stream_opened, my_tmp_file_created;
144
147
extern uint32_t my_file_total_opened;
145
148
extern uint mysys_usage_id;
146
149
extern bool my_init_done;
148
typedef void (*void_ptr_func)(void);
149
typedef void (*void_ptr_int_func)(int);
151
/* Point to current my_message() */
152
extern void_ptr_func my_sigtstp_cleanup,
153
/* Executed before jump to shell */
155
151
/* Executed when comming from shell */
156
152
extern int my_umask, /* Default creation mask */
251
239
int handle_default_option(void *in_ctx, const char *group_name,
252
240
const char *option);
254
#include <mysys/my_alloc.h>
257
244
/* Prototypes for mysys and my_func functions */
259
246
extern int my_copy(const char *from,const char *to,myf MyFlags);
260
247
extern int my_delete(const char *name,myf MyFlags);
261
extern File my_open(const char *FileName,int Flags,myf MyFlags);
262
extern File my_register_filename(File fd, const char *FileName,
248
extern int my_open(const char *FileName,int Flags,myf MyFlags);
249
extern int my_register_filename(int fd, const char *FileName,
263
250
uint32_t error_message_number, myf MyFlags);
264
extern File my_create(const char *FileName,int CreateFlags,
251
extern int my_create(const char *FileName,int CreateFlags,
265
252
int AccessFlags, myf MyFlags);
266
extern int my_close(File Filedes,myf MyFlags);
253
extern int my_close(int Filedes,myf MyFlags);
267
254
extern int my_mkdir(const char *dir, int Flags, myf MyFlags);
268
255
extern int my_realpath(char *to, const char *filename, myf MyFlags);
269
extern File my_create_with_symlink(const char *linkname, const char *filename,
256
extern int my_create_with_symlink(const char *linkname, const char *filename,
270
257
int createflags, int access_flags,
272
259
extern int my_delete_with_symlink(const char *name, myf MyFlags);
273
260
extern int my_rename_with_symlink(const char *from,const char *to,myf MyFlags);
274
extern size_t my_read(File Filedes,unsigned char *Buffer,size_t Count,myf MyFlags);
261
extern size_t my_read(int Filedes,unsigned char *Buffer,size_t Count,myf MyFlags);
275
262
extern int my_rename(const char *from,const char *to,myf MyFlags);
276
extern size_t my_write(File Filedes,const unsigned char *Buffer,size_t Count,
263
extern size_t my_write(int Filedes,const unsigned char *Buffer,size_t Count,
278
265
extern int _sanity(const char *sFile, uint32_t uLine);
280
#define my_access access
281
267
extern int check_if_legal_filename(const char *path);
282
268
extern int check_if_legal_tablename(const char *path);
284
270
#define my_delete_allow_opened(fname,flags) my_delete((fname),(flags))
286
extern void init_glob_errs(void);
287
extern int my_sync(File fd, myf my_flags);
272
extern int my_sync(int fd, myf my_flags);
288
273
extern int my_sync_dir(const char *dir_name, myf my_flags);
289
274
extern int my_sync_dir_by_file(const char *file_name, myf my_flags);
290
extern void my_error(int nr,myf MyFlags, ...);
291
extern void my_printf_error(uint32_t my_err, const char *format,
293
__attribute__((format(printf, 2, 4)));
294
extern int my_error_register(const char **errmsgs, int first, int last);
295
extern const char **my_error_unregister(int first, int last);
296
extern void my_message(uint32_t my_err, const char *str,myf MyFlags);
297
extern void my_message_no_curses(uint32_t my_err, const char *str,myf MyFlags);
298
275
extern bool my_init(void);
299
276
extern void my_end(void);
300
277
extern int my_redel(const char *from, const char *to, int MyFlags);
301
278
extern int my_copystat(const char *from, const char *to, int MyFlags);
302
extern char * my_filename(File fd);
279
extern char * my_filename(int fd);
304
281
extern void my_remember_signal(int signal_number,void (*func)(int));
305
282
extern size_t dirname_part(char * to,const char *name, size_t *to_res_length);
349
326
extern qsort2_cmp get_ptr_compare(size_t);
350
327
void my_store_ptr(unsigned char *buff, size_t pack_length, my_off_t pos);
351
328
my_off_t my_get_ptr(unsigned char *ptr, size_t pack_length);
352
File create_temp_file(char *to, const char *dir, const char *pfx, myf MyFlags);
354
#include <mysys/dynamic_array.h>
356
#define alloc_root_inited(A) ((A)->min_malloc != 0)
357
#define ALLOC_ROOT_MIN_BLOCK_SIZE (MALLOC_OVERHEAD + sizeof(USED_MEM) + 8)
329
int create_temp_file(char *to, const char *dir, const char *pfx, myf MyFlags);
358
331
extern int get_defaults_options(int argc, char **argv,
359
332
char **defaults, char **extra_defaults,
360
333
char **group_suffix);
371
344
extern void my_sleep(uint32_t m_seconds);
373
extern uint64_t my_getsystime(void);
374
extern uint64_t my_micro_time(void);
375
extern uint64_t my_micro_time_and_time(time_t *time_arg);
377
#ifdef HAVE_SYS_MMAN_H
378
#include <sys/mman.h>
383
#ifndef MAP_NORESERVE
384
#define MAP_NORESERVE 0 /* For irix and AIX */
388
#define my_mmap(a,b,c,d,e,f) mmap64(a,b,c,d,e,f)
390
#define my_mmap(a,b,c,d,e,f) mmap(a,b,c,d,e,f)
392
#define my_munmap(a,b) munmap((a),(b))
395
/* not a complete set of mmap() flags, but only those that nesessary */
398
#define MAP_NORESERVE 0
399
#define MAP_SHARED 0x0001
400
#define MAP_PRIVATE 0x0002
401
#define MAP_NOSYNC 0x0800
402
#define MAP_FAILED ((void *)-1)
403
#define MS_SYNC 0x0000
406
void *my_mmap(void *, size_t, int, int, int, my_off_t);
407
int my_munmap(void *, size_t);
411
void *cs_alloc(size_t size);
413
extern uint32_t get_charset_number(const char *cs_name, uint32_t cs_flags);
414
extern uint32_t get_collation_number(const char *name);
415
extern const char *get_charset_name(uint32_t cs_number);
417
extern const CHARSET_INFO *get_charset(uint32_t cs_number);
418
extern const CHARSET_INFO *get_charset_by_name(const char *cs_name);
419
extern const CHARSET_INFO *get_charset_by_csname(const char *cs_name, uint32_t cs_flags);
421
extern bool resolve_charset(const char *cs_name,
422
const CHARSET_INFO *default_cs,
423
const CHARSET_INFO **cs);
424
extern bool resolve_collation(const char *cl_name,
425
const CHARSET_INFO *default_cl,
426
const CHARSET_INFO **cl);
428
extern void free_charsets(void);
429
extern char *get_charsets_dir(char *buf);
430
extern bool my_charset_same(const CHARSET_INFO *cs1, const CHARSET_INFO *cs2);
431
extern bool init_compiled_charsets(myf flags);
432
extern void add_compiled_collation(CHARSET_INFO *cs);
433
extern size_t escape_string_for_drizzle(const CHARSET_INFO *charset_info,
434
char *to, size_t to_length,
435
const char *from, size_t length);
436
extern size_t escape_quotes_for_drizzle(const CHARSET_INFO *charset_info,
437
char *to, size_t to_length,
438
const char *from, size_t length);
440
348
extern void thd_increment_bytes_sent(uint32_t length);
441
349
extern void thd_increment_bytes_received(uint32_t length);