30 #include <sys/types.h>
33 #include <drizzled/internal/my_pthread.h>
38 #ifdef HAVE_ERRNO_AS_DEFINE
45 #ifdef HAVE_SYS_MMAN_H
49 #include <drizzled/qsort_cmp.h>
60 #define MAP_NORESERVE 0
77 #define MY_WAIT_IF_FULL 32
78 #define MY_IGNORE_BADFD 32
79 #define MY_SYNC_DIR 1024
80 #define MY_FULL_IO 512
81 #define MY_DONT_CHECK_FILESIZE 128
82 #define MY_LINK_WARNING 32
83 #define MY_COPYTIME 64
84 #define MY_DELETE_OLD 256
85 #define MY_HOLD_ORIGINAL_MODES 128
86 #define MY_DONT_WAIT 64
87 #define MY_DONT_OVERWRITE_FILE 1024
88 #define MY_THREADSAFE 2048
92 #define ME_WAITTANG 32
93 #define ME_NOREFRESH 64
94 #define ME_NOINPUT 128
97 #define MY_REPLACE_DIR 1
98 #define MY_REPLACE_EXT 2
99 #define MY_UNPACK_FILENAME 4
100 #define MY_RESOLVE_SYMLINKS 16
101 #define MY_RETURN_REAL_PATH 32
102 #define MY_SAFE_PATH 64
103 #define MY_RELATIVE_PATH 128
104 #define MY_APPEND_EXT 256
106 typedef uint64_t my_off_t;
108 extern char *home_dir;
109 extern const char *my_progname;
113 extern bool my_use_symdir;
115 extern uint32_t my_default_record_cache_size;
116 extern bool my_disable_symlinks;
117 extern const char wild_many, wild_one, wild_prefix;
118 extern const char *charsets_dir;
120 extern bool timed_mutexes;
136 int rc_seek,error,inited;
137 uint rc_length,read_length,reclength;
138 my_off_t rc_record_pos,end_of_file;
139 unsigned char *rc_buff,*rc_buff2,*rc_pos,*rc_end,*rc_request_pos;
140 enum cache_type type;
163 extern int my_copy(
const char *from,
const char *to,myf MyFlags);
164 DRIZZLED_API int my_delete(
const char *name,myf MyFlags);
165 DRIZZLED_API int my_open(
const char *FileName,
int Flags,myf MyFlags);
166 extern int my_register_filename(
int fd,
const char *FileName, uint32_t error_message_number, myf MyFlags);
167 DRIZZLED_API int my_create(
const char *FileName,
int CreateFlags,
int AccessFlags, myf MyFlags);
169 extern int my_mkdir(
const char *dir,
int Flags, myf MyFlags);
170 extern int my_realpath(
char *to,
const char *filename, myf MyFlags);
171 extern int my_create_with_symlink(
const char *linkname,
const char *filename,
172 int createflags,
int access_flags, myf MyFlags);
173 DRIZZLED_API int my_delete_with_symlink(
const char *name, myf MyFlags);
174 extern int my_rename_with_symlink(
const char *from,
const char *to,myf MyFlags);
175 DRIZZLED_API size_t my_read(
int Filedes,
unsigned char *Buffer,
size_t Count,myf MyFlags);
176 DRIZZLED_API int my_rename(
const char *from,
const char *to,myf MyFlags);
177 DRIZZLED_API size_t my_write(
int Filedes,
const unsigned char *Buffer,
size_t Count, myf MyFlags);
179 extern int check_if_legal_tablename(
const char *path);
182 extern int my_sync_dir(
const char *dir_name, myf my_flags);
183 extern int my_sync_dir_by_file(
const char *file_name, myf my_flags);
184 extern void my_init();
185 extern void my_end();
186 extern int my_redel(
const char *from,
const char *to,
int MyFlags);
187 extern int my_copystat(
const char *from,
const char *to,
int MyFlags);
189 extern void my_remember_signal(
int signal_number,
void (*func)(
int));
190 extern size_t dirname_part(
char * to,
const char *name,
size_t *to_res_length);
191 extern size_t dirname_length(
const char *name);
192 #define base_name(A) (A+dirname_length(A))
193 bool test_if_hard_path(
const char *dir_name);
195 extern char *convert_dirname(
char *to,
const char *from,
const char *from_end);
196 extern char * fn_ext(
const char *name);
197 extern char * fn_same(
char * toname,
const char *name,
int flag);
198 DRIZZLED_API char * fn_format(
char * to,
const char *name,
const char *dir,
const char *form, uint32_t flag);
199 extern size_t unpack_dirname(
char * to,
const char *from);
200 extern size_t unpack_filename(
char * to,
const char *from);
201 extern char * intern_filename(
char * to,
const char *from);
202 extern int pack_filename(
char * to,
const char *name,
size_t max_length);
203 extern char * my_load_path(
char * to,
const char *path,
const char *own_path_prefix);
204 extern void my_string_ptr_sort(
unsigned char *base,uint32_t items,
size_t size);
205 extern void radixsort_for_str_ptr(
unsigned char* base[], uint32_t number_of_elements,
size_t size_of_element,
unsigned char *buffer[]);
206 extern void my_qsort(
void *base_ptr,
size_t total_elems,
size_t size,
qsort_cmp cmp);
207 extern void my_qsort2(
void *base_ptr,
size_t total_elems,
size_t size, qsort2_cmp cmp,
void *cmp_argument);
208 extern qsort2_cmp get_ptr_compare(
size_t);
209 DRIZZLED_API void my_store_ptr(
unsigned char *buff,
size_t pack_length, my_off_t pos);
210 DRIZZLED_API my_off_t my_get_ptr(
unsigned char *ptr,
size_t pack_length);
211 int create_temp_file(
char *to,
const char *dir,
const char *pfx, myf MyFlags);