Go to:
Gentoo Home
Documentation
Forums
Lists
Bugs
Planet
Store
Wiki
Get Gentoo!
Gentoo's Bugzilla – Attachment 230389 Details for
Bug 318007
[4.3/4.4/ICE] dev-db/mysql fails on ppc64 with insn does not satisfy its constraints in copyprop_hardreg_forward_1, at regrename.c:1601
Home
|
New
–
[Ex]
|
Browse
|
Search
|
Privacy Policy
|
[?]
|
Reports
|
Requests
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
build log with -E option
build-E.log (text/plain), 568.23 KB, created by
Alexander Miroshnichenko
on 2010-05-05 06:20:17 UTC
(
hide
)
Description:
build log with -E option
Filename:
MIME Type:
Creator:
Alexander Miroshnichenko
Created:
2010-05-05 06:20:17 UTC
Size:
568.23 KB
patch
obsolete
># 1 "buf/buf0buf.c" ># 1 "<built-in>" ># 1 "<command-line>" ># 1 "buf/buf0buf.c" ># 23 "buf/buf0buf.c" ># 1 "./include/buf0buf.h" 1 ># 26 "./include/buf0buf.h" ># 1 "./include/univ.i" 1 ># 33 "./include/univ.i" ># 1 "./../include/my_global.h" 1 ># 83 "./../include/my_global.h" ># 1 "./../include/my_config.h" 1 ># 84 "./../include/my_global.h" 2 ># 241 "./../include/my_global.h" ># 1 "/usr/include/pthread.h" 1 3 4 ># 23 "/usr/include/pthread.h" 3 4 ># 1 "/usr/include/features.h" 1 3 4 ># 347 "/usr/include/features.h" 3 4 ># 1 "/usr/include/sys/cdefs.h" 1 3 4 ># 353 "/usr/include/sys/cdefs.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 354 "/usr/include/sys/cdefs.h" 2 3 4 ># 348 "/usr/include/features.h" 2 3 4 ># 371 "/usr/include/features.h" 3 4 ># 1 "/usr/include/gnu/stubs.h" 1 3 4 > > > ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 5 "/usr/include/gnu/stubs.h" 2 3 4 > > > > ># 1 "/usr/include/gnu/stubs-64.h" 1 3 4 ># 10 "/usr/include/gnu/stubs.h" 2 3 4 ># 372 "/usr/include/features.h" 2 3 4 ># 24 "/usr/include/pthread.h" 2 3 4 ># 1 "/usr/include/endian.h" 1 3 4 ># 37 "/usr/include/endian.h" 3 4 ># 1 "/usr/include/bits/endian.h" 1 3 4 ># 38 "/usr/include/endian.h" 2 3 4 ># 61 "/usr/include/endian.h" 3 4 ># 1 "/usr/include/bits/byteswap.h" 1 3 4 ># 62 "/usr/include/endian.h" 2 3 4 ># 25 "/usr/include/pthread.h" 2 3 4 ># 1 "/usr/include/sched.h" 1 3 4 ># 26 "/usr/include/sched.h" 3 4 ># 1 "/usr/include/bits/types.h" 1 3 4 ># 28 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 29 "/usr/include/bits/types.h" 2 3 4 > > >typedef unsigned char __u_char; >typedef unsigned short int __u_short; >typedef unsigned int __u_int; >typedef unsigned long int __u_long; > > >typedef signed char __int8_t; >typedef unsigned char __uint8_t; >typedef signed short int __int16_t; >typedef unsigned short int __uint16_t; >typedef signed int __int32_t; >typedef unsigned int __uint32_t; > >typedef signed long int __int64_t; >typedef unsigned long int __uint64_t; > > > > > > > >typedef long int __quad_t; >typedef unsigned long int __u_quad_t; ># 131 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/typesizes.h" 1 3 4 ># 132 "/usr/include/bits/types.h" 2 3 4 > > >typedef unsigned long int __dev_t; >typedef unsigned int __uid_t; >typedef unsigned int __gid_t; >typedef unsigned long int __ino_t; >typedef unsigned long int __ino64_t; >typedef unsigned int __mode_t; >typedef unsigned long int __nlink_t; >typedef long int __off_t; >typedef long int __off64_t; >typedef int __pid_t; >typedef struct { int __val[2]; } __fsid_t; >typedef long int __clock_t; >typedef unsigned long int __rlim_t; >typedef unsigned long int __rlim64_t; >typedef unsigned int __id_t; >typedef long int __time_t; >typedef unsigned int __useconds_t; >typedef long int __suseconds_t; > >typedef int __daddr_t; >typedef long int __swblk_t; >typedef int __key_t; > > >typedef int __clockid_t; > > >typedef void * __timer_t; > > >typedef long int __blksize_t; > > > > >typedef long int __blkcnt_t; >typedef long int __blkcnt64_t; > > >typedef unsigned long int __fsblkcnt_t; >typedef unsigned long int __fsblkcnt64_t; > > >typedef unsigned long int __fsfilcnt_t; >typedef unsigned long int __fsfilcnt64_t; > >typedef long int __ssize_t; > > > >typedef __off64_t __loff_t; >typedef __quad_t *__qaddr_t; >typedef char *__caddr_t; > > >typedef long int __intptr_t; > > >typedef unsigned int __socklen_t; ># 27 "/usr/include/sched.h" 2 3 4 > > ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4 ># 214 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 3 4 >typedef long unsigned int size_t; ># 30 "/usr/include/sched.h" 2 3 4 > > ># 1 "/usr/include/time.h" 1 3 4 ># 120 "/usr/include/time.h" 3 4 >struct timespec > { > __time_t tv_sec; > long int tv_nsec; > }; ># 33 "/usr/include/sched.h" 2 3 4 > > ># 1 "/usr/include/bits/sched.h" 1 3 4 ># 71 "/usr/include/bits/sched.h" 3 4 >struct sched_param > { > int __sched_priority; > }; > > > > > >extern int clone (int (*__fn) (void *__arg), void *__child_stack, > int __flags, void *__arg, ...) __attribute__ ((__nothrow__)); > > >extern int unshare (int __flags) __attribute__ ((__nothrow__)); > > >extern int sched_getcpu (void) __attribute__ ((__nothrow__)); > > > > > > > > > > >struct __sched_param > { > int __sched_priority; > }; ># 113 "/usr/include/bits/sched.h" 3 4 >typedef unsigned long int __cpu_mask; > > > > > > >typedef struct >{ > __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; >} cpu_set_t; ># 196 "/usr/include/bits/sched.h" 3 4 > > >extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) > __attribute__ ((__nothrow__)); >extern cpu_set_t *__sched_cpualloc (size_t __count) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); >extern void __sched_cpufree (cpu_set_t *__set) __attribute__ ((__nothrow__)); > > ># 36 "/usr/include/sched.h" 2 3 4 > > > > > > > >extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param) > __attribute__ ((__nothrow__)); > > >extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __attribute__ ((__nothrow__)); > > >extern int sched_setscheduler (__pid_t __pid, int __policy, > __const struct sched_param *__param) __attribute__ ((__nothrow__)); > > >extern int sched_getscheduler (__pid_t __pid) __attribute__ ((__nothrow__)); > > >extern int sched_yield (void) __attribute__ ((__nothrow__)); > > >extern int sched_get_priority_max (int __algorithm) __attribute__ ((__nothrow__)); > > >extern int sched_get_priority_min (int __algorithm) __attribute__ ((__nothrow__)); > > >extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __attribute__ ((__nothrow__)); ># 110 "/usr/include/sched.h" 3 4 >extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, > __const cpu_set_t *__cpuset) __attribute__ ((__nothrow__)); > > >extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, > cpu_set_t *__cpuset) __attribute__ ((__nothrow__)); > > > ># 26 "/usr/include/pthread.h" 2 3 4 ># 1 "/usr/include/time.h" 1 3 4 ># 30 "/usr/include/time.h" 3 4 > > > > > > > > ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4 ># 39 "/usr/include/time.h" 2 3 4 > > > ># 1 "/usr/include/bits/time.h" 1 3 4 ># 43 "/usr/include/time.h" 2 3 4 ># 58 "/usr/include/time.h" 3 4 > > >typedef __clock_t clock_t; > > > ># 74 "/usr/include/time.h" 3 4 > > >typedef __time_t time_t; > > > ># 92 "/usr/include/time.h" 3 4 >typedef __clockid_t clockid_t; ># 104 "/usr/include/time.h" 3 4 >typedef __timer_t timer_t; ># 131 "/usr/include/time.h" 3 4 > > >struct tm >{ > int tm_sec; > int tm_min; > int tm_hour; > int tm_mday; > int tm_mon; > int tm_year; > int tm_wday; > int tm_yday; > int tm_isdst; > > > long int tm_gmtoff; > __const char *tm_zone; > > > > >}; > > > > > > > > >struct itimerspec > { > struct timespec it_interval; > struct timespec it_value; > }; > > >struct sigevent; > > > > > >typedef __pid_t pid_t; > > > > > > > > >extern clock_t clock (void) __attribute__ ((__nothrow__)); > > >extern time_t time (time_t *__timer) __attribute__ ((__nothrow__)); > > >extern double difftime (time_t __time1, time_t __time0) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__)); > > > > > >extern size_t strftime (char *__restrict __s, size_t __maxsize, > __const char *__restrict __format, > __const struct tm *__restrict __tp) __attribute__ ((__nothrow__)); > > > > > >extern char *strptime (__const char *__restrict __s, > __const char *__restrict __fmt, struct tm *__tp) > __attribute__ ((__nothrow__)); > > > > > ># 1 "/usr/include/xlocale.h" 1 3 4 ># 28 "/usr/include/xlocale.h" 3 4 >typedef struct __locale_struct >{ > > struct locale_data *__locales[13]; > > > const unsigned short int *__ctype_b; > const int *__ctype_tolower; > const int *__ctype_toupper; > > > const char *__names[13]; >} *__locale_t; > > >typedef __locale_t locale_t; ># 216 "/usr/include/time.h" 2 3 4 > >extern size_t strftime_l (char *__restrict __s, size_t __maxsize, > __const char *__restrict __format, > __const struct tm *__restrict __tp, > __locale_t __loc) __attribute__ ((__nothrow__)); > > > >extern char *strptime_l (__const char *__restrict __s, > __const char *__restrict __fmt, struct tm *__tp, > __locale_t __loc) __attribute__ ((__nothrow__)); > > > > > > >extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__)); > > > >extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__)); > > > > > >extern struct tm *gmtime_r (__const time_t *__restrict __timer, > struct tm *__restrict __tp) __attribute__ ((__nothrow__)); > > > >extern struct tm *localtime_r (__const time_t *__restrict __timer, > struct tm *__restrict __tp) __attribute__ ((__nothrow__)); > > > > > >extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__)); > > >extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__)); > > > > > > > >extern char *asctime_r (__const struct tm *__restrict __tp, > char *__restrict __buf) __attribute__ ((__nothrow__)); > > >extern char *ctime_r (__const time_t *__restrict __timer, > char *__restrict __buf) __attribute__ ((__nothrow__)); > > > > >extern char *__tzname[2]; >extern int __daylight; >extern long int __timezone; > > > > >extern char *tzname[2]; > > > >extern void tzset (void) __attribute__ ((__nothrow__)); > > > >extern int daylight; >extern long int timezone; > > > > > >extern int stime (__const time_t *__when) __attribute__ ((__nothrow__)); ># 313 "/usr/include/time.h" 3 4 >extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__)); > > >extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__)); > > >extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); ># 328 "/usr/include/time.h" 3 4 >extern int nanosleep (__const struct timespec *__requested_time, > struct timespec *__remaining); > > > >extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__)); > > >extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__)); > > >extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) > __attribute__ ((__nothrow__)); > > > > > > >extern int clock_nanosleep (clockid_t __clock_id, int __flags, > __const struct timespec *__req, > struct timespec *__rem); > > >extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__)); > > > > >extern int timer_create (clockid_t __clock_id, > struct sigevent *__restrict __evp, > timer_t *__restrict __timerid) __attribute__ ((__nothrow__)); > > >extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__)); > > >extern int timer_settime (timer_t __timerid, int __flags, > __const struct itimerspec *__restrict __value, > struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__)); > > >extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) > __attribute__ ((__nothrow__)); > > >extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__)); ># 390 "/usr/include/time.h" 3 4 >extern int getdate_err; ># 399 "/usr/include/time.h" 3 4 >extern struct tm *getdate (__const char *__string); ># 413 "/usr/include/time.h" 3 4 >extern int getdate_r (__const char *__restrict __string, > struct tm *__restrict __resbufp); > > > ># 27 "/usr/include/pthread.h" 2 3 4 > > ># 1 "/usr/include/signal.h" 1 3 4 ># 31 "/usr/include/signal.h" 3 4 > > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 24 "/usr/include/bits/sigset.h" 3 4 >typedef int __sig_atomic_t; > > > > >typedef struct > { > unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; > } __sigset_t; ># 34 "/usr/include/signal.h" 2 3 4 ># 50 "/usr/include/signal.h" 3 4 >typedef __sigset_t sigset_t; ># 408 "/usr/include/signal.h" 3 4 > ># 30 "/usr/include/pthread.h" 2 3 4 ># 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 ># 24 "/usr/include/bits/pthreadtypes.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 25 "/usr/include/bits/pthreadtypes.h" 2 3 4 ># 51 "/usr/include/bits/pthreadtypes.h" 3 4 >typedef unsigned long int pthread_t; > > >typedef union >{ > char __size[56]; > long int __align; >} pthread_attr_t; > > > >typedef struct __pthread_internal_list >{ > struct __pthread_internal_list *__prev; > struct __pthread_internal_list *__next; >} __pthread_list_t; ># 77 "/usr/include/bits/pthreadtypes.h" 3 4 >typedef union >{ > struct __pthread_mutex_s > { > int __lock; > unsigned int __count; > int __owner; > > unsigned int __nusers; > > > > int __kind; > > int __spins; > __pthread_list_t __list; ># 102 "/usr/include/bits/pthreadtypes.h" 3 4 > } __data; > char __size[40]; > long int __align; >} pthread_mutex_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_mutexattr_t; > > > > >typedef union >{ > struct > { > int __lock; > unsigned int __futex; > __extension__ unsigned long long int __total_seq; > __extension__ unsigned long long int __wakeup_seq; > __extension__ unsigned long long int __woken_seq; > void *__mutex; > unsigned int __nwaiters; > unsigned int __broadcast_seq; > } __data; > char __size[48]; > __extension__ long long int __align; >} pthread_cond_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_condattr_t; > > > >typedef unsigned int pthread_key_t; > > > >typedef int pthread_once_t; > > > > > >typedef union >{ > > struct > { > int __lock; > unsigned int __nr_readers; > unsigned int __readers_wakeup; > unsigned int __writer_wakeup; > unsigned int __nr_readers_queued; > unsigned int __nr_writers_queued; > int __writer; > int __shared; > unsigned long int __pad1; > unsigned long int __pad2; > > > unsigned int __flags; > } __data; ># 188 "/usr/include/bits/pthreadtypes.h" 3 4 > char __size[56]; > long int __align; >} pthread_rwlock_t; > >typedef union >{ > char __size[8]; > long int __align; >} pthread_rwlockattr_t; > > > > > >typedef volatile int pthread_spinlock_t; > > > > >typedef union >{ > char __size[32]; > long int __align; >} pthread_barrier_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_barrierattr_t; ># 31 "/usr/include/pthread.h" 2 3 4 ># 1 "/usr/include/bits/setjmp.h" 1 3 4 ># 33 "/usr/include/bits/setjmp.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 34 "/usr/include/bits/setjmp.h" 2 3 4 ># 44 "/usr/include/bits/setjmp.h" 3 4 >typedef long int __jmp_buf[64] __attribute__ ((__aligned__ (16))); ># 32 "/usr/include/pthread.h" 2 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 33 "/usr/include/pthread.h" 2 3 4 > > > >enum >{ > PTHREAD_CREATE_JOINABLE, > > PTHREAD_CREATE_DETACHED > >}; > > > >enum >{ > PTHREAD_MUTEX_TIMED_NP, > PTHREAD_MUTEX_RECURSIVE_NP, > PTHREAD_MUTEX_ERRORCHECK_NP, > PTHREAD_MUTEX_ADAPTIVE_NP > > , > PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, > PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, > PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, > PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL > > > > , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP > >}; > > > > >enum >{ > PTHREAD_MUTEX_STALLED, > PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, > PTHREAD_MUTEX_ROBUST, > PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST >}; > > > > > >enum >{ > PTHREAD_PRIO_NONE, > PTHREAD_PRIO_INHERIT, > PTHREAD_PRIO_PROTECT >}; ># 117 "/usr/include/pthread.h" 3 4 >enum >{ > PTHREAD_RWLOCK_PREFER_READER_NP, > PTHREAD_RWLOCK_PREFER_WRITER_NP, > PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, > PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP >}; ># 149 "/usr/include/pthread.h" 3 4 >enum >{ > PTHREAD_INHERIT_SCHED, > > PTHREAD_EXPLICIT_SCHED > >}; > > > >enum >{ > PTHREAD_SCOPE_SYSTEM, > > PTHREAD_SCOPE_PROCESS > >}; > > > >enum >{ > PTHREAD_PROCESS_PRIVATE, > > PTHREAD_PROCESS_SHARED > >}; ># 184 "/usr/include/pthread.h" 3 4 >struct _pthread_cleanup_buffer >{ > void (*__routine) (void *); > void *__arg; > int __canceltype; > struct _pthread_cleanup_buffer *__prev; >}; > > >enum >{ > PTHREAD_CANCEL_ENABLE, > > PTHREAD_CANCEL_DISABLE > >}; >enum >{ > PTHREAD_CANCEL_DEFERRED, > > PTHREAD_CANCEL_ASYNCHRONOUS > >}; ># 222 "/usr/include/pthread.h" 3 4 > > > > > >extern int pthread_create (pthread_t *__restrict __newthread, > __const pthread_attr_t *__restrict __attr, > void *(*__start_routine) (void *), > void *__restrict __arg) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))); > > > > > >extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); > > > > > > > >extern int pthread_join (pthread_t __th, void **__thread_return); > > > > >extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __attribute__ ((__nothrow__)); > > > > > > > >extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, > __const struct timespec *__abstime); > > > > > > >extern int pthread_detach (pthread_t __th) __attribute__ ((__nothrow__)); > > > >extern pthread_t pthread_self (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) __attribute__ ((__nothrow__)); > > > > > > > >extern int pthread_attr_init (pthread_attr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_attr_destroy (pthread_attr_t *__attr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr, > int *__detachstate) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, > int __detachstate) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr, > size_t *__guardsize) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_attr_setguardsize (pthread_attr_t *__attr, > size_t __guardsize) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict > __attr, > struct sched_param *__restrict __param) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, > __const struct sched_param *__restrict > __param) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict > __attr, int *__restrict __policy) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict > __attr, int *__restrict __inherit) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, > int __inherit) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr, > int *__restrict __scope) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict > __attr, void **__restrict __stackaddr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); > > > > > >extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, > void *__stackaddr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); > > >extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict > __attr, size_t *__restrict __stacksize) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int pthread_attr_setstacksize (pthread_attr_t *__attr, > size_t __stacksize) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr, > void **__restrict __stackaddr, > size_t *__restrict __stacksize) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))); > > > > >extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, > size_t __stacksize) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, > size_t __cpusetsize, > __const cpu_set_t *__cpuset) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))); > > > >extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr, > size_t __cpusetsize, > cpu_set_t *__cpuset) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))); > > > > > >extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > > > > > >extern int pthread_setschedparam (pthread_t __target_thread, int __policy, > __const struct sched_param *__param) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); > > >extern int pthread_getschedparam (pthread_t __target_thread, > int *__restrict __policy, > struct sched_param *__restrict __param) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); > > >extern int pthread_setschedprio (pthread_t __target_thread, int __prio) > __attribute__ ((__nothrow__)); > > > > >extern int pthread_getconcurrency (void) __attribute__ ((__nothrow__)); > > >extern int pthread_setconcurrency (int __level) __attribute__ ((__nothrow__)); > > > > > > > >extern int pthread_yield (void) __attribute__ ((__nothrow__)); > > > > >extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, > __const cpu_set_t *__cpuset) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); > > >extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, > cpu_set_t *__cpuset) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); ># 468 "/usr/include/pthread.h" 3 4 >extern int pthread_once (pthread_once_t *__once_control, > void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); ># 480 "/usr/include/pthread.h" 3 4 >extern int pthread_setcancelstate (int __state, int *__oldstate); > > > >extern int pthread_setcanceltype (int __type, int *__oldtype); > > >extern int pthread_cancel (pthread_t __th); > > > > >extern void pthread_testcancel (void); > > > > >typedef struct >{ > struct > { > __jmp_buf __cancel_jmp_buf; > int __mask_was_saved; > } __cancel_jmp_buf[1]; > void *__pad[4]; >} __pthread_unwind_buf_t __attribute__ ((__aligned__)); ># 514 "/usr/include/pthread.h" 3 4 >struct __pthread_cleanup_frame >{ > void (*__cancel_routine) (void *); > void *__cancel_arg; > int __do_it; > int __cancel_type; >}; ># 654 "/usr/include/pthread.h" 3 4 >extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf) > ; ># 666 "/usr/include/pthread.h" 3 4 >extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf) > ; ># 689 "/usr/include/pthread.h" 3 4 >extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf) > ; ># 702 "/usr/include/pthread.h" 3 4 >extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf) > ; > > > >extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf) > __attribute__ ((__noreturn__)) > > __attribute__ ((__weak__)) > > ; > > > >struct __jmp_buf_tag; >extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __attribute__ ((__nothrow__)); > > > > > >extern int pthread_mutex_init (pthread_mutex_t *__mutex, > __const pthread_mutexattr_t *__mutexattr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_mutex_lock (pthread_mutex_t *__mutex) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, > __const struct timespec *__restrict > __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > >extern int pthread_mutex_getprioceiling (__const pthread_mutex_t * > __restrict __mutex, > int *__restrict __prioceiling) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, > int __prioceiling, > int *__restrict __old_ceiling) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))); > > > > > >extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > >extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 782 "/usr/include/pthread.h" 3 4 >extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t * > __restrict __attr, > int *__restrict __pshared) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, > int __pshared) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict > __attr, int *__restrict __kind) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t * > __restrict __attr, > int *__restrict __protocol) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, > int __protocol) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t * > __restrict __attr, > int *__restrict __prioceiling) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, > int __prioceiling) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > >extern int pthread_mutexattr_getrobust (__const pthread_mutexattr_t *__attr, > int *__robustness) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr, > int *__robustness) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, > int __robustness) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > >extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, > int __robustness) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 864 "/usr/include/pthread.h" 3 4 >extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, > __const pthread_rwlockattr_t *__restrict > __attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, > __const struct timespec *__restrict > __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, > __const struct timespec *__restrict > __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t * > __restrict __attr, > int *__restrict __pshared) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, > int __pshared) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t * > __restrict __attr, > int *__restrict __pref) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, > int __pref) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int pthread_cond_init (pthread_cond_t *__restrict __cond, > __const pthread_condattr_t *__restrict > __cond_attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_cond_destroy (pthread_cond_t *__cond) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_cond_signal (pthread_cond_t *__cond) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_cond_broadcast (pthread_cond_t *__cond) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, > pthread_mutex_t *__restrict __mutex) > __attribute__ ((__nonnull__ (1, 2))); ># 976 "/usr/include/pthread.h" 3 4 >extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, > pthread_mutex_t *__restrict __mutex, > __const struct timespec *__restrict > __abstime) __attribute__ ((__nonnull__ (1, 2, 3))); > > > > >extern int pthread_condattr_init (pthread_condattr_t *__attr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_condattr_destroy (pthread_condattr_t *__attr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_condattr_getpshared (__const pthread_condattr_t * > __restrict __attr, > int *__restrict __pshared) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, > int __pshared) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_condattr_getclock (__const pthread_condattr_t * > __restrict __attr, > __clockid_t *__restrict __clock_id) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_condattr_setclock (pthread_condattr_t *__attr, > __clockid_t __clock_id) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 1020 "/usr/include/pthread.h" 3 4 >extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_spin_destroy (pthread_spinlock_t *__lock) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_spin_lock (pthread_spinlock_t *__lock) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_spin_trylock (pthread_spinlock_t *__lock) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_spin_unlock (pthread_spinlock_t *__lock) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, > __const pthread_barrierattr_t *__restrict > __attr, unsigned int __count) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_barrier_wait (pthread_barrier_t *__barrier) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t * > __restrict __attr, > int *__restrict __pshared) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, > int __pshared) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 1087 "/usr/include/pthread.h" 3 4 >extern int pthread_key_create (pthread_key_t *__key, > void (*__destr_function) (void *)) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int pthread_key_delete (pthread_key_t __key) __attribute__ ((__nothrow__)); > > >extern void *pthread_getspecific (pthread_key_t __key) __attribute__ ((__nothrow__)); > > >extern int pthread_setspecific (pthread_key_t __key, > __const void *__pointer) __attribute__ ((__nothrow__)) ; > > > > >extern int pthread_getcpuclockid (pthread_t __thread_id, > __clockid_t *__clock_id) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); ># 1121 "/usr/include/pthread.h" 3 4 >extern int pthread_atfork (void (*__prepare) (void), > void (*__parent) (void), > void (*__child) (void)) __attribute__ ((__nothrow__)); > > > > >extern __inline int >__attribute__ ((__nothrow__)) pthread_equal (pthread_t __thread1, pthread_t __thread2) >{ > return __thread1 == __thread2; >} > > > ># 242 "./../include/my_global.h" 2 ># 311 "./../include/my_global.h" ># 1 "/usr/include/stdio.h" 1 3 4 ># 30 "/usr/include/stdio.h" 3 4 > > > > ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4 ># 35 "/usr/include/stdio.h" 2 3 4 ># 45 "/usr/include/stdio.h" 3 4 >struct _IO_FILE; > > > >typedef struct _IO_FILE FILE; > > > > > ># 65 "/usr/include/stdio.h" 3 4 >typedef struct _IO_FILE __FILE; ># 75 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/libio.h" 1 3 4 ># 32 "/usr/include/libio.h" 3 4 ># 1 "/usr/include/_G_config.h" 1 3 4 ># 15 "/usr/include/_G_config.h" 3 4 ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4 ># 16 "/usr/include/_G_config.h" 2 3 4 > > > > ># 1 "/usr/include/wchar.h" 1 3 4 ># 83 "/usr/include/wchar.h" 3 4 >typedef struct >{ > int __count; > union > { > > unsigned int __wch; > > > > char __wchb[4]; > } __value; >} __mbstate_t; ># 21 "/usr/include/_G_config.h" 2 3 4 > >typedef struct >{ > __off_t __pos; > __mbstate_t __state; >} _G_fpos_t; >typedef struct >{ > __off64_t __pos; > __mbstate_t __state; >} _G_fpos64_t; ># 53 "/usr/include/_G_config.h" 3 4 >typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); >typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); ># 33 "/usr/include/libio.h" 2 3 4 ># 53 "/usr/include/libio.h" 3 4 ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stdarg.h" 1 3 4 ># 43 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stdarg.h" 3 4 >typedef __builtin_va_list __gnuc_va_list; ># 54 "/usr/include/libio.h" 2 3 4 ># 170 "/usr/include/libio.h" 3 4 >struct _IO_jump_t; struct _IO_FILE; ># 180 "/usr/include/libio.h" 3 4 >typedef void _IO_lock_t; > > > > > >struct _IO_marker { > struct _IO_marker *_next; > struct _IO_FILE *_sbuf; > > > > int _pos; ># 203 "/usr/include/libio.h" 3 4 >}; > > >enum __codecvt_result >{ > __codecvt_ok, > __codecvt_partial, > __codecvt_error, > __codecvt_noconv >}; ># 271 "/usr/include/libio.h" 3 4 >struct _IO_FILE { > int _flags; > > > > > char* _IO_read_ptr; > char* _IO_read_end; > char* _IO_read_base; > char* _IO_write_base; > char* _IO_write_ptr; > char* _IO_write_end; > char* _IO_buf_base; > char* _IO_buf_end; > > char *_IO_save_base; > char *_IO_backup_base; > char *_IO_save_end; > > struct _IO_marker *_markers; > > struct _IO_FILE *_chain; > > int _fileno; > > > > int _flags2; > > __off_t _old_offset; > > > > unsigned short _cur_column; > signed char _vtable_offset; > char _shortbuf[1]; > > > > _IO_lock_t *_lock; ># 319 "/usr/include/libio.h" 3 4 > __off64_t _offset; ># 328 "/usr/include/libio.h" 3 4 > void *__pad1; > void *__pad2; > void *__pad3; > void *__pad4; > size_t __pad5; > > int _mode; > > char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; > >}; > > >typedef struct _IO_FILE _IO_FILE; > > >struct _IO_FILE_plus; > >extern struct _IO_FILE_plus _IO_2_1_stdin_; >extern struct _IO_FILE_plus _IO_2_1_stdout_; >extern struct _IO_FILE_plus _IO_2_1_stderr_; ># 364 "/usr/include/libio.h" 3 4 >typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); > > > > > > > >typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, > size_t __n); > > > > > > > >typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); > > >typedef int __io_close_fn (void *__cookie); > > > > >typedef __io_read_fn cookie_read_function_t; >typedef __io_write_fn cookie_write_function_t; >typedef __io_seek_fn cookie_seek_function_t; >typedef __io_close_fn cookie_close_function_t; > > >typedef struct >{ > __io_read_fn *read; > __io_write_fn *write; > __io_seek_fn *seek; > __io_close_fn *close; >} _IO_cookie_io_functions_t; >typedef _IO_cookie_io_functions_t cookie_io_functions_t; > >struct _IO_cookie_file; > > >extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, > void *__cookie, _IO_cookie_io_functions_t __fns); > > > > > > > >extern int __underflow (_IO_FILE *); >extern int __uflow (_IO_FILE *); >extern int __overflow (_IO_FILE *, int); ># 458 "/usr/include/libio.h" 3 4 >extern int _IO_getc (_IO_FILE *__fp); >extern int _IO_putc (int __c, _IO_FILE *__fp); >extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__)); >extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__)); > >extern int _IO_peekc_locked (_IO_FILE *__fp); > > > > > >extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__)); >extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__)); >extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__)); ># 488 "/usr/include/libio.h" 3 4 >extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, > __gnuc_va_list, int *__restrict); >extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, > __gnuc_va_list); >extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); >extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); > >extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); >extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); > >extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__)); ># 76 "/usr/include/stdio.h" 2 3 4 > > > > >typedef __gnuc_va_list va_list; ># 89 "/usr/include/stdio.h" 3 4 > > >typedef _G_fpos_t fpos_t; > > > > > >typedef _G_fpos64_t fpos64_t; ># 141 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 142 "/usr/include/stdio.h" 2 3 4 > > > >extern struct _IO_FILE *stdin; >extern struct _IO_FILE *stdout; >extern struct _IO_FILE *stderr; > > > > > > > >extern int remove (__const char *__filename) __attribute__ ((__nothrow__)); > >extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__)); > > > > >extern int renameat (int __oldfd, __const char *__old, int __newfd, > __const char *__new) __attribute__ ((__nothrow__)); > > > > > > > > >extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__)); ># 182 "/usr/include/stdio.h" 3 4 >extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__)); > > > >extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > > >extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); ># 204 "/usr/include/stdio.h" 3 4 >extern char *tempnam (__const char *__dir, __const char *__pfx) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > > > > > > > > >extern int fclose (FILE *__stream); > > > > >extern int fflush (FILE *__stream); > ># 229 "/usr/include/stdio.h" 3 4 >extern int fflush_unlocked (FILE *__stream); ># 239 "/usr/include/stdio.h" 3 4 >extern int fcloseall (void); > > > > > > > > > >extern FILE *fopen (__const char *__restrict __filename, > __const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); > > > > >extern FILE *freopen (__const char *__restrict __filename, > __const char *__restrict __modes, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); ># 272 "/usr/include/stdio.h" 3 4 > > >extern FILE *fopen64 (__const char *__restrict __filename, > __const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); >extern FILE *freopen64 (__const char *__restrict __filename, > __const char *__restrict __modes, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); > > > > >extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > > >extern FILE *fopencookie (void *__restrict __magic_cookie, > __const char *__restrict __modes, > _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > >extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) > __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > >extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > > > >extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__)); > > > >extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, > int __modes, size_t __n) __attribute__ ((__nothrow__)); > > > > > >extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, > size_t __size) __attribute__ ((__nothrow__)); > > >extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__)); > > > > > > > > >extern int fprintf (FILE *__restrict __stream, > __const char *__restrict __format, ...); > > > > >extern int printf (__const char *__restrict __format, ...); > >extern int sprintf (char *__restrict __s, > __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); > > > > > >extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg); > > > > >extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); > >extern int vsprintf (char *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) __attribute__ ((__nothrow__)); > > > > > >extern int snprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))); > >extern int vsnprintf (char *__restrict __s, size_t __maxlen, > __const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))); > > > > > > >extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, > __gnuc_va_list __arg) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__)); >extern int __asprintf (char **__restrict __ptr, > __const char *__restrict __fmt, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); >extern int asprintf (char **__restrict __ptr, > __const char *__restrict __fmt, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); ># 394 "/usr/include/stdio.h" 3 4 >extern int vdprintf (int __fd, __const char *__restrict __fmt, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__printf__, 2, 0))); >extern int dprintf (int __fd, __const char *__restrict __fmt, ...) > __attribute__ ((__format__ (__printf__, 2, 3))); > > > > > > > > >extern int fscanf (FILE *__restrict __stream, > __const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); > > > > >extern int scanf (__const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); > >extern int sscanf (__const char *__restrict __s, > __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); ># 445 "/usr/include/stdio.h" 3 4 > > > > > > > > >extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, > __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); > > > > > >extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); > > >extern int vsscanf (__const char *__restrict __s, > __const char *__restrict __format, __gnuc_va_list __arg) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0))); ># 504 "/usr/include/stdio.h" 3 4 > > > > > > > > > >extern int fgetc (FILE *__stream); >extern int getc (FILE *__stream); > > > > > >extern int getchar (void); > ># 532 "/usr/include/stdio.h" 3 4 >extern int getc_unlocked (FILE *__stream); >extern int getchar_unlocked (void); ># 543 "/usr/include/stdio.h" 3 4 >extern int fgetc_unlocked (FILE *__stream); > > > > > > > > > > > >extern int fputc (int __c, FILE *__stream); >extern int putc (int __c, FILE *__stream); > > > > > >extern int putchar (int __c); > ># 576 "/usr/include/stdio.h" 3 4 >extern int fputc_unlocked (int __c, FILE *__stream); > > > > > > > >extern int putc_unlocked (int __c, FILE *__stream); >extern int putchar_unlocked (int __c); > > > > > > >extern int getw (FILE *__stream); > > >extern int putw (int __w, FILE *__stream); > > > > > > > > >extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) > __attribute__ ((__warn_unused_result__)); > > > > > > >extern char *gets (char *__s) __attribute__ ((__warn_unused_result__)); > ># 622 "/usr/include/stdio.h" 3 4 >extern char *fgets_unlocked (char *__restrict __s, int __n, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); ># 638 "/usr/include/stdio.h" 3 4 >extern __ssize_t __getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); >extern __ssize_t getdelim (char **__restrict __lineptr, > size_t *__restrict __n, int __delimiter, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); > > > > > > > >extern __ssize_t getline (char **__restrict __lineptr, > size_t *__restrict __n, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); > > > > > > > > >extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); > > > > > >extern int puts (__const char *__s); > > > > > > >extern int ungetc (int __c, FILE *__stream); > > > > > > >extern size_t fread (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); > > > > >extern size_t fwrite (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __s) __attribute__ ((__warn_unused_result__)); > ># 699 "/usr/include/stdio.h" 3 4 >extern int fputs_unlocked (__const char *__restrict __s, > FILE *__restrict __stream); ># 710 "/usr/include/stdio.h" 3 4 >extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); >extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, > size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); > > > > > > > > >extern int fseek (FILE *__stream, long int __off, int __whence); > > > > >extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__)); > > > > >extern void rewind (FILE *__stream); > ># 746 "/usr/include/stdio.h" 3 4 >extern int fseeko (FILE *__stream, __off_t __off, int __whence); > > > > >extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__)); ># 765 "/usr/include/stdio.h" 3 4 > > > > > > >extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos); > > > > >extern int fsetpos (FILE *__stream, __const fpos_t *__pos); ># 788 "/usr/include/stdio.h" 3 4 > > > >extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); >extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__)); >extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); >extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); > > > > >extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__)); > >extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > >extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > >extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__)); >extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); >extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > > > > > >extern void perror (__const char *__s); > > > > > > ># 1 "/usr/include/bits/sys_errlist.h" 1 3 4 ># 27 "/usr/include/bits/sys_errlist.h" 3 4 >extern int sys_nerr; >extern __const char *__const sys_errlist[]; > > >extern int _sys_nerr; >extern __const char *__const _sys_errlist[]; ># 827 "/usr/include/stdio.h" 2 3 4 > > > > >extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > >extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); ># 846 "/usr/include/stdio.h" 3 4 >extern FILE *popen (__const char *__command, __const char *__modes) __attribute__ ((__warn_unused_result__)); > > > > > >extern int pclose (FILE *__stream); > > > > > >extern char *ctermid (char *__s) __attribute__ ((__nothrow__)); > > > > > >extern char *cuserid (char *__s); > > > > >struct obstack; > > >extern int obstack_printf (struct obstack *__restrict __obstack, > __const char *__restrict __format, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); >extern int obstack_vprintf (struct obstack *__restrict __obstack, > __const char *__restrict __format, > __gnuc_va_list __args) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))); > > > > > > > >extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__)); > > > >extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > >extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__)); ># 907 "/usr/include/stdio.h" 3 4 ># 1 "/usr/include/bits/stdio.h" 1 3 4 ># 44 "/usr/include/bits/stdio.h" 3 4 >extern __inline int >getchar (void) >{ > return _IO_getc (stdin); >} > > > > >extern __inline int >fgetc_unlocked (FILE *__fp) >{ > return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); >} > > > > > >extern __inline int >getc_unlocked (FILE *__fp) >{ > return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); >} > > >extern __inline int >getchar_unlocked (void) >{ > return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); >} > > > > >extern __inline int >putchar (int __c) >{ > return _IO_putc (__c, stdout); >} > > > > >extern __inline int >fputc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > > > > >extern __inline int >putc_unlocked (int __c, FILE *__stream) >{ > return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); >} > > >extern __inline int >putchar_unlocked (int __c) >{ > return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); >} > > > > > >extern __inline __ssize_t >getline (char **__lineptr, size_t *__n, FILE *__stream) >{ > return __getdelim (__lineptr, __n, '\n', __stream); >} > > > > > >extern __inline int >__attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream) >{ > return (((__stream)->_flags & 0x10) != 0); >} > > >extern __inline int >__attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream) >{ > return (((__stream)->_flags & 0x20) != 0); >} ># 908 "/usr/include/stdio.h" 2 3 4 > > ># 1 "/usr/include/bits/stdio2.h" 1 3 4 ># 24 "/usr/include/bits/stdio2.h" 3 4 >extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, > __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); >extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, > __const char *__restrict __format, > __gnuc_va_list __ap) __attribute__ ((__nothrow__)); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >__attribute__ ((__nothrow__)) sprintf (char *__restrict __s, __const char *__restrict __fmt, ...) >{ > return __builtin___sprintf_chk (__s, 2 - 1, > __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); >} > > > > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >__attribute__ ((__nothrow__)) vsprintf (char *__restrict __s, __const char *__restrict __fmt, __gnuc_va_list __ap) > >{ > return __builtin___vsprintf_chk (__s, 2 - 1, > __builtin_object_size (__s, 2 > 1), __fmt, __ap); >} > > > >extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, > size_t __slen, __const char *__restrict __format, > ...) __attribute__ ((__nothrow__)); >extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, > size_t __slen, __const char *__restrict __format, > __gnuc_va_list __ap) __attribute__ ((__nothrow__)); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >__attribute__ ((__nothrow__)) snprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, ...) > >{ > return __builtin___snprintf_chk (__s, __n, 2 - 1, > __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); >} > > > > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >__attribute__ ((__nothrow__)) vsnprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, __gnuc_va_list __ap) > >{ > return __builtin___vsnprintf_chk (__s, __n, 2 - 1, > __builtin_object_size (__s, 2 > 1), __fmt, __ap); >} > > > > > >extern int __fprintf_chk (FILE *__restrict __stream, int __flag, > __const char *__restrict __format, ...); >extern int __printf_chk (int __flag, __const char *__restrict __format, ...); >extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, > __const char *__restrict __format, __gnuc_va_list __ap); >extern int __vprintf_chk (int __flag, __const char *__restrict __format, > __gnuc_va_list __ap); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >fprintf (FILE *__restrict __stream, __const char *__restrict __fmt, ...) >{ > return __fprintf_chk (__stream, 2 - 1, __fmt, > __builtin_va_arg_pack ()); >} > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >printf (__const char *__restrict __fmt, ...) >{ > return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); >} > > > > > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >vprintf (__const char *__restrict __fmt, __gnuc_va_list __ap) >{ > > return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); > > > >} > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >vfprintf (FILE *__restrict __stream, > __const char *__restrict __fmt, __gnuc_va_list __ap) >{ > return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); >} > > > >extern int __asprintf_chk (char **__restrict __ptr, int __flag, > __const char *__restrict __fmt, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__)); >extern int __vasprintf_chk (char **__restrict __ptr, int __flag, > __const char *__restrict __fmt, __gnuc_va_list __arg) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__)); >extern int __dprintf_chk (int __fd, int __flag, __const char *__restrict __fmt, > ...) __attribute__ ((__format__ (__printf__, 3, 4))); >extern int __vdprintf_chk (int __fd, int __flag, > __const char *__restrict __fmt, __gnuc_va_list __arg) > __attribute__ ((__format__ (__printf__, 3, 0))); >extern int __obstack_printf_chk (struct obstack *__restrict __obstack, > int __flag, __const char *__restrict __format, > ...) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))); >extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, > int __flag, > __const char *__restrict __format, > __gnuc_va_list __args) > __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >__attribute__ ((__nothrow__)) asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) >{ > return __asprintf_chk (__ptr, 2 - 1, __fmt, > __builtin_va_arg_pack ()); >} > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >__attribute__ ((__nothrow__)) __asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) > >{ > return __asprintf_chk (__ptr, 2 - 1, __fmt, > __builtin_va_arg_pack ()); >} > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >dprintf (int __fd, __const char *__restrict __fmt, ...) >{ > return __dprintf_chk (__fd, 2 - 1, __fmt, > __builtin_va_arg_pack ()); >} > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >__attribute__ ((__nothrow__)) obstack_printf (struct obstack *__restrict __obstack, __const char *__restrict __fmt, ...) > >{ > return __obstack_printf_chk (__obstack, 2 - 1, __fmt, > __builtin_va_arg_pack ()); >} ># 195 "/usr/include/bits/stdio2.h" 3 4 >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >__attribute__ ((__nothrow__)) vasprintf (char **__restrict __ptr, __const char *__restrict __fmt, __gnuc_va_list __ap) > >{ > return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap); >} > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >vdprintf (int __fd, __const char *__restrict __fmt, __gnuc_va_list __ap) >{ > return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap); >} > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >__attribute__ ((__nothrow__)) obstack_vprintf (struct obstack *__restrict __obstack, __const char *__restrict __fmt, __gnuc_va_list __ap) > >{ > return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt, > __ap); >} > > > > > >extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__)); >extern char *__gets_warn (char *__str) __asm__ ("" "gets") > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * >gets (char *__str) >{ > if (__builtin_object_size (__str, 2 > 1) != (size_t) -1) > return __gets_chk (__str, __builtin_object_size (__str, 2 > 1)); > return __gets_warn (__str); >} > >extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); >extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") __attribute__ ((__warn_unused_result__)); > > >extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * >fgets (char *__restrict __s, int __n, FILE *__restrict __stream) >{ > if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__n) || __n <= 0) > return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); > > if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) > return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); > } > return __fgets_alias (__s, __n, __stream); >} > >extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, > size_t __size, size_t __n, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); >extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") __attribute__ ((__warn_unused_result__)); > > > >extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") > > > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t >fread (void *__restrict __ptr, size_t __size, size_t __n, > FILE *__restrict __stream) >{ > if (__builtin_object_size (__ptr, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__size) > || !__builtin_constant_p (__n) > || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) > return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); > > if (__size * __n > __builtin_object_size (__ptr, 0)) > return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); > } > return __fread_alias (__ptr, __size, __n, __stream); >} > > >extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, > int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); >extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") __attribute__ ((__warn_unused_result__)); > > >extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk") > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * >fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) >{ > if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__n) || __n <= 0) > return __fgets_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); > > if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) > return __fgets_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); > } > return __fgets_unlocked_alias (__s, __n, __stream); >} > > > > >extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, > size_t __size, size_t __n, > FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); >extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") __attribute__ ((__warn_unused_result__)); > > > >extern size_t __fread_unlocked_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_unlocked_chk") > > > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t >fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, > FILE *__restrict __stream) >{ > if (__builtin_object_size (__ptr, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__size) > || !__builtin_constant_p (__n) > || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) > return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, > __stream); > > if (__size * __n > __builtin_object_size (__ptr, 0)) > return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, > __stream); > } > > > if (__builtin_constant_p (__size) > && __builtin_constant_p (__n) > && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) > && __size * __n <= 8) > { > size_t __cnt = __size * __n; > char *__cptr = (char *) __ptr; > if (__cnt == 0) > return 0; > > for (; __cnt > 0; --__cnt) > { > int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++); > if (__c == (-1)) > break; > *__cptr++ = __c; > } > return (__cptr - (char *) __ptr) / __size; > } > > return __fread_unlocked_alias (__ptr, __size, __n, __stream); >} ># 911 "/usr/include/stdio.h" 2 3 4 > > > > > > ># 312 "./../include/my_global.h" 2 > > ># 1 "/usr/include/stdlib.h" 1 3 4 ># 33 "/usr/include/stdlib.h" 3 4 ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4 ># 326 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 3 4 >typedef int wchar_t; ># 34 "/usr/include/stdlib.h" 2 3 4 > > > > > > > > ># 1 "/usr/include/bits/waitflags.h" 1 3 4 ># 43 "/usr/include/stdlib.h" 2 3 4 ># 1 "/usr/include/bits/waitstatus.h" 1 3 4 ># 67 "/usr/include/bits/waitstatus.h" 3 4 >union wait > { > int w_status; > struct > { > > > > > > > > unsigned int:16; > unsigned int __w_retcode:8; > unsigned int __w_coredump:1; > unsigned int __w_termsig:7; > > } __wait_terminated; > struct > { > > > > > > > unsigned int:16; > unsigned int __w_stopsig:8; > unsigned int __w_stopval:8; > > } __wait_stopped; > }; ># 44 "/usr/include/stdlib.h" 2 3 4 ># 68 "/usr/include/stdlib.h" 3 4 >typedef union > { > union wait *__uptr; > int *__iptr; > } __WAIT_STATUS __attribute__ ((__transparent_union__)); ># 96 "/usr/include/stdlib.h" 3 4 > > >typedef struct > { > int quot; > int rem; > } div_t; > > > >typedef struct > { > long int quot; > long int rem; > } ldiv_t; > > > > > > > >__extension__ typedef struct > { > long long int quot; > long long int rem; > } lldiv_t; > > ># 140 "/usr/include/stdlib.h" 3 4 >extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > >extern double atof (__const char *__nptr) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >extern int atoi (__const char *__nptr) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >extern long int atol (__const char *__nptr) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > >__extension__ extern long long int atoll (__const char *__nptr) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > >extern double strtod (__const char *__restrict __nptr, > char **__restrict __endptr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > >extern float strtof (__const char *__restrict __nptr, > char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >extern long double strtold (__const char *__restrict __nptr, > char **__restrict __endptr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > >extern long int strtol (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >extern unsigned long int strtoul (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > >__extension__ >extern long long int strtoq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >__extension__ >extern unsigned long long int strtouq (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > >__extension__ >extern long long int strtoll (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > >__extension__ >extern unsigned long long int strtoull (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > ># 240 "/usr/include/stdlib.h" 3 4 >extern long int strtol_l (__const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__)); > >extern unsigned long int strtoul_l (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__)); > >__extension__ >extern long long int strtoll_l (__const char *__restrict __nptr, > char **__restrict __endptr, int __base, > __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__)); > >__extension__ >extern unsigned long long int strtoull_l (__const char *__restrict __nptr, > char **__restrict __endptr, > int __base, __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__)); > >extern double strtod_l (__const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); > >extern float strtof_l (__const char *__restrict __nptr, > char **__restrict __endptr, __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); > >extern long double strtold_l (__const char *__restrict __nptr, > char **__restrict __endptr, > __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); > > > > > >extern __inline double >__attribute__ ((__nothrow__)) atof (__const char *__nptr) >{ > return strtod (__nptr, (char **) ((void *)0)); >} >extern __inline int >__attribute__ ((__nothrow__)) atoi (__const char *__nptr) >{ > return (int) strtol (__nptr, (char **) ((void *)0), 10); >} >extern __inline long int >__attribute__ ((__nothrow__)) atol (__const char *__nptr) >{ > return strtol (__nptr, (char **) ((void *)0), 10); >} > > > > >__extension__ extern __inline long long int >__attribute__ ((__nothrow__)) atoll (__const char *__nptr) >{ > return strtoll (__nptr, (char **) ((void *)0), 10); >} > ># 311 "/usr/include/stdlib.h" 3 4 >extern char *l64a (long int __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > >extern long int a64l (__const char *__s) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > ># 1 "/usr/include/sys/types.h" 1 3 4 ># 29 "/usr/include/sys/types.h" 3 4 > > > > > > >typedef __u_char u_char; >typedef __u_short u_short; >typedef __u_int u_int; >typedef __u_long u_long; >typedef __quad_t quad_t; >typedef __u_quad_t u_quad_t; >typedef __fsid_t fsid_t; > > > > >typedef __loff_t loff_t; > > > >typedef __ino_t ino_t; > > > > > > >typedef __ino64_t ino64_t; > > > > >typedef __dev_t dev_t; > > > > >typedef __gid_t gid_t; > > > > >typedef __mode_t mode_t; > > > > >typedef __nlink_t nlink_t; > > > > >typedef __uid_t uid_t; > > > > > >typedef __off_t off_t; > > > > > > >typedef __off64_t off64_t; ># 105 "/usr/include/sys/types.h" 3 4 >typedef __id_t id_t; > > > > >typedef __ssize_t ssize_t; > > > > > >typedef __daddr_t daddr_t; >typedef __caddr_t caddr_t; > > > > > >typedef __key_t key_t; ># 137 "/usr/include/sys/types.h" 3 4 >typedef __useconds_t useconds_t; > > > >typedef __suseconds_t suseconds_t; > > > > > ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4 ># 148 "/usr/include/sys/types.h" 2 3 4 > > > >typedef unsigned long int ulong; >typedef unsigned short int ushort; >typedef unsigned int uint; ># 195 "/usr/include/sys/types.h" 3 4 >typedef int int8_t __attribute__ ((__mode__ (__QI__))); >typedef int int16_t __attribute__ ((__mode__ (__HI__))); >typedef int int32_t __attribute__ ((__mode__ (__SI__))); >typedef int int64_t __attribute__ ((__mode__ (__DI__))); > > >typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); >typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); >typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); >typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); > >typedef int register_t __attribute__ ((__mode__ (__word__))); ># 220 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/sys/select.h" 1 3 4 ># 31 "/usr/include/sys/select.h" 3 4 ># 1 "/usr/include/bits/select.h" 1 3 4 ># 32 "/usr/include/sys/select.h" 2 3 4 > > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 35 "/usr/include/sys/select.h" 2 3 4 ># 46 "/usr/include/sys/select.h" 3 4 ># 1 "/usr/include/bits/time.h" 1 3 4 ># 69 "/usr/include/bits/time.h" 3 4 >struct timeval > { > __time_t tv_sec; > __suseconds_t tv_usec; > }; ># 47 "/usr/include/sys/select.h" 2 3 4 ># 55 "/usr/include/sys/select.h" 3 4 >typedef long int __fd_mask; ># 67 "/usr/include/sys/select.h" 3 4 >typedef struct > { > > > > __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; > > > > > > } fd_set; > > > > > > >typedef __fd_mask fd_mask; ># 99 "/usr/include/sys/select.h" 3 4 > ># 109 "/usr/include/sys/select.h" 3 4 >extern int select (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > struct timeval *__restrict __timeout); ># 121 "/usr/include/sys/select.h" 3 4 >extern int pselect (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > const struct timespec *__restrict __timeout, > const __sigset_t *__restrict __sigmask); > > > ># 221 "/usr/include/sys/types.h" 2 3 4 > > ># 1 "/usr/include/sys/sysmacros.h" 1 3 4 ># 30 "/usr/include/sys/sysmacros.h" 3 4 >__extension__ >extern unsigned int gnu_dev_major (unsigned long long int __dev) > __attribute__ ((__nothrow__)); >__extension__ >extern unsigned int gnu_dev_minor (unsigned long long int __dev) > __attribute__ ((__nothrow__)); >__extension__ >extern unsigned long long int gnu_dev_makedev (unsigned int __major, > unsigned int __minor) > __attribute__ ((__nothrow__)); > > >__extension__ extern __inline unsigned int >__attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev) >{ > return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); >} > >__extension__ extern __inline unsigned int >__attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev) >{ > return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); >} > >__extension__ extern __inline unsigned long long int >__attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor) >{ > return ((__minor & 0xff) | ((__major & 0xfff) << 8) > | (((unsigned long long int) (__minor & ~0xff)) << 12) > | (((unsigned long long int) (__major & ~0xfff)) << 32)); >} ># 224 "/usr/include/sys/types.h" 2 3 4 > > > > >typedef __blksize_t blksize_t; > > > > > > >typedef __blkcnt_t blkcnt_t; > > > >typedef __fsblkcnt_t fsblkcnt_t; > > > >typedef __fsfilcnt_t fsfilcnt_t; ># 262 "/usr/include/sys/types.h" 3 4 >typedef __blkcnt64_t blkcnt64_t; >typedef __fsblkcnt64_t fsblkcnt64_t; >typedef __fsfilcnt64_t fsfilcnt64_t; ># 273 "/usr/include/sys/types.h" 3 4 > ># 321 "/usr/include/stdlib.h" 2 3 4 > > > > > > >extern long int random (void) __attribute__ ((__nothrow__)); > > >extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__)); > > > > > >extern char *initstate (unsigned int __seed, char *__statebuf, > size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > >extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > > >struct random_data > { > int32_t *fptr; > int32_t *rptr; > int32_t *state; > int rand_type; > int rand_deg; > int rand_sep; > int32_t *end_ptr; > }; > >extern int random_r (struct random_data *__restrict __buf, > int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int srandom_r (unsigned int __seed, struct random_data *__buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > >extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, > size_t __statelen, > struct random_data *__restrict __buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); > >extern int setstate_r (char *__restrict __statebuf, > struct random_data *__restrict __buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern int rand (void) __attribute__ ((__nothrow__)); > >extern void srand (unsigned int __seed) __attribute__ ((__nothrow__)); > > > > >extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__)); > > > > > > > >extern double drand48 (void) __attribute__ ((__nothrow__)); >extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern long int lrand48 (void) __attribute__ ((__nothrow__)); >extern long int nrand48 (unsigned short int __xsubi[3]) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern long int mrand48 (void) __attribute__ ((__nothrow__)); >extern long int jrand48 (unsigned short int __xsubi[3]) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern void srand48 (long int __seedval) __attribute__ ((__nothrow__)); >extern unsigned short int *seed48 (unsigned short int __seed16v[3]) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); >extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >struct drand48_data > { > unsigned short int __x[3]; > unsigned short int __old_x[3]; > unsigned short int __c; > unsigned short int __init; > unsigned long long int __a; > }; > > >extern int drand48_r (struct drand48_data *__restrict __buffer, > double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern int erand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int lrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern int nrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int mrand48_r (struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern int jrand48_r (unsigned short int __xsubi[3], > struct drand48_data *__restrict __buffer, > long int *__restrict __result) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int srand48_r (long int __seedval, struct drand48_data *__buffer) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > >extern int seed48_r (unsigned short int __seed16v[3], > struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int lcong48_r (unsigned short int __param[7], > struct drand48_data *__buffer) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > > > > >extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > >extern void *calloc (size_t __nmemb, size_t __size) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > > > > > > > > > > >extern void *realloc (void *__ptr, size_t __size) > __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > >extern void free (void *__ptr) __attribute__ ((__nothrow__)); > > > > >extern void cfree (void *__ptr) __attribute__ ((__nothrow__)); > > > ># 1 "/usr/include/alloca.h" 1 3 4 ># 25 "/usr/include/alloca.h" 3 4 ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4 ># 26 "/usr/include/alloca.h" 2 3 4 > > > > > > > >extern void *alloca (size_t __size) __attribute__ ((__nothrow__)); > > > > > > ># 498 "/usr/include/stdlib.h" 2 3 4 > > > > >extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); > > > > >extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > >extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > > >extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 527 "/usr/include/stdlib.h" 3 4 >extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > > > > > > >extern void quick_exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > > > > > > >extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > > > > > >extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > >extern char *__secure_getenv (__const char *__name) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > >extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int setenv (__const char *__name, __const char *__value, int __replace) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > >extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__)); > > > > > > >extern int clearenv (void) __attribute__ ((__nothrow__)); ># 604 "/usr/include/stdlib.h" 3 4 >extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 615 "/usr/include/stdlib.h" 3 4 >extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 625 "/usr/include/stdlib.h" 3 4 >extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 635 "/usr/include/stdlib.h" 3 4 >extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 646 "/usr/include/stdlib.h" 3 4 >extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 656 "/usr/include/stdlib.h" 3 4 >extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > > > > > >extern int system (__const char *__command) __attribute__ ((__warn_unused_result__)); > > > > > > >extern char *canonicalize_file_name (__const char *__name) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 683 "/usr/include/stdlib.h" 3 4 >extern char *realpath (__const char *__restrict __name, > char *__restrict __resolved) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > > > >typedef int (*__compar_fn_t) (__const void *, __const void *); > > >typedef __compar_fn_t comparison_fn_t; > > > >typedef int (*__compar_d_fn_t) (__const void *, __const void *, void *); > > > > > >extern void *bsearch (__const void *__key, __const void *__base, > size_t __nmemb, size_t __size, __compar_fn_t __compar) > __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); > > > >extern void qsort (void *__base, size_t __nmemb, size_t __size, > __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); > >extern void qsort_r (void *__base, size_t __nmemb, size_t __size, > __compar_d_fn_t __compar, void *__arg) > __attribute__ ((__nonnull__ (1, 4))); > > > > >extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); >extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); > > > >__extension__ extern long long int llabs (long long int __x) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); > > > > > > > >extern div_t div (int __numer, int __denom) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); >extern ldiv_t ldiv (long int __numer, long int __denom) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); > > > > >__extension__ extern lldiv_t lldiv (long long int __numer, > long long int __denom) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); > ># 756 "/usr/include/stdlib.h" 3 4 >extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); > > > > >extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); > > > > >extern char *gcvt (double __value, int __ndigit, char *__buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); > > > > >extern char *qecvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); >extern char *qfcvt (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); >extern char *qgcvt (long double __value, int __ndigit, char *__buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); > > > > >extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); >extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, > int *__restrict __sign, char *__restrict __buf, > size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); > >extern int qecvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); >extern int qfcvt_r (long double __value, int __ndigit, > int *__restrict __decpt, int *__restrict __sign, > char *__restrict __buf, size_t __len) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5))); > > > > > > > >extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > >extern int mbtowc (wchar_t *__restrict __pwc, > __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > >extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > >extern size_t mbstowcs (wchar_t *__restrict __pwcs, > __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)); > >extern size_t wcstombs (char *__restrict __s, > __const wchar_t *__restrict __pwcs, size_t __n) > __attribute__ ((__nothrow__)); > > > > > > > > >extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 844 "/usr/include/stdlib.h" 3 4 >extern int getsubopt (char **__restrict __optionp, > char *__const *__restrict __tokens, > char **__restrict __valuep) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); > > > > > >extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > > >extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__)); > > > > > > > >extern int grantpt (int __fd) __attribute__ ((__nothrow__)); > > > >extern int unlockpt (int __fd) __attribute__ ((__nothrow__)); > > > > >extern char *ptsname (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > > > >extern int ptsname_r (int __fd, char *__buf, size_t __buflen) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > >extern int getpt (void); > > > > > > >extern int getloadavg (double __loadavg[], int __nelem) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > ># 1 "/usr/include/bits/stdlib.h" 1 3 4 ># 24 "/usr/include/bits/stdlib.h" 3 4 >extern char *__realpath_chk (__const char *__restrict __name, > char *__restrict __resolved, > size_t __resolvedlen) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); >extern char *__realpath_alias (__const char *__restrict __name, char *__restrict __resolved) __asm__ ("" "realpath") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > >extern char *__realpath_chk_warn (__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __asm__ ("" "__realpath_chk") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)) > > > > __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * >__attribute__ ((__nothrow__)) realpath (__const char *__restrict __name, char *__restrict __resolved) >{ > if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) > { > > > > > return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); > } > > return __realpath_alias (__name, __resolved); >} > > >extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, > size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); >extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ptsname_r") __attribute__ ((__nothrow__)) > > __attribute__ ((__nonnull__ (2))); >extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ptsname_r_chk") __attribute__ ((__nothrow__)) > > > __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >__attribute__ ((__nothrow__)) ptsname_r (int __fd, char *__buf, size_t __buflen) >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__buflen)) > return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > if (__buflen > __builtin_object_size (__buf, 2 > 1)) > return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > } > return __ptsname_r_alias (__fd, __buf, __buflen); >} > > >extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) > __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); >extern int __wctomb_alias (char *__s, wchar_t __wchar) __asm__ ("" "wctomb") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int >__attribute__ ((__nothrow__)) wctomb (char *__s, wchar_t __wchar) >{ > > > > > > > > if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) > return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); > return __wctomb_alias (__s, __wchar); >} > > >extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, > __const char *__restrict __src, > size_t __len, size_t __dstlen) __attribute__ ((__nothrow__)); >extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("" "mbstowcs") __attribute__ ((__nothrow__)); > > > >extern size_t __mbstowcs_chk_warn (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__mbstowcs_chk") __attribute__ ((__nothrow__)) > > > > __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t >__attribute__ ((__nothrow__)) mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) > >{ > if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__len)) > return __mbstowcs_chk (__dst, __src, __len, > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); > > if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) > return __mbstowcs_chk_warn (__dst, __src, __len, > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); > } > return __mbstowcs_alias (__dst, __src, __len); >} > > >extern size_t __wcstombs_chk (char *__restrict __dst, > __const wchar_t *__restrict __src, > size_t __len, size_t __dstlen) __attribute__ ((__nothrow__)); >extern size_t __wcstombs_alias (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("" "wcstombs") __attribute__ ((__nothrow__)); > > > >extern size_t __wcstombs_chk_warn (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len, size_t __dstlen) __asm__ ("" "__wcstombs_chk") __attribute__ ((__nothrow__)) > > > > __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t >__attribute__ ((__nothrow__)) wcstombs (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) > >{ > if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__len)) > return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); > if (__len > __builtin_object_size (__dst, 2 > 1)) > return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); > } > return __wcstombs_alias (__dst, __src, __len); >} ># 904 "/usr/include/stdlib.h" 2 3 4 ># 912 "/usr/include/stdlib.h" 3 4 > ># 315 "./../include/my_global.h" 2 > > ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4 ># 152 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 3 4 >typedef long int ptrdiff_t; ># 318 "./../include/my_global.h" 2 > > ># 1 "/usr/include/math.h" 1 3 4 ># 30 "/usr/include/math.h" 3 4 > > > > ># 1 "/usr/include/bits/huge_val.h" 1 3 4 ># 35 "/usr/include/math.h" 2 3 4 > ># 1 "/usr/include/bits/huge_valf.h" 1 3 4 ># 37 "/usr/include/math.h" 2 3 4 ># 1 "/usr/include/bits/huge_vall.h" 1 3 4 ># 38 "/usr/include/math.h" 2 3 4 > > ># 1 "/usr/include/bits/inf.h" 1 3 4 ># 41 "/usr/include/math.h" 2 3 4 > > ># 1 "/usr/include/bits/nan.h" 1 3 4 ># 44 "/usr/include/math.h" 2 3 4 > > > ># 1 "/usr/include/bits/mathdef.h" 1 3 4 ># 38 "/usr/include/bits/mathdef.h" 3 4 >typedef float float_t; > >typedef double double_t; ># 48 "/usr/include/math.h" 2 3 4 ># 71 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern double acos (double __x) __attribute__ ((__nothrow__)); extern double __acos (double __x) __attribute__ ((__nothrow__)); > >extern double asin (double __x) __attribute__ ((__nothrow__)); extern double __asin (double __x) __attribute__ ((__nothrow__)); > >extern double atan (double __x) __attribute__ ((__nothrow__)); extern double __atan (double __x) __attribute__ ((__nothrow__)); > >extern double atan2 (double __y, double __x) __attribute__ ((__nothrow__)); extern double __atan2 (double __y, double __x) __attribute__ ((__nothrow__)); > > >extern double cos (double __x) __attribute__ ((__nothrow__)); extern double __cos (double __x) __attribute__ ((__nothrow__)); > >extern double sin (double __x) __attribute__ ((__nothrow__)); extern double __sin (double __x) __attribute__ ((__nothrow__)); > >extern double tan (double __x) __attribute__ ((__nothrow__)); extern double __tan (double __x) __attribute__ ((__nothrow__)); > > > > >extern double cosh (double __x) __attribute__ ((__nothrow__)); extern double __cosh (double __x) __attribute__ ((__nothrow__)); > >extern double sinh (double __x) __attribute__ ((__nothrow__)); extern double __sinh (double __x) __attribute__ ((__nothrow__)); > >extern double tanh (double __x) __attribute__ ((__nothrow__)); extern double __tanh (double __x) __attribute__ ((__nothrow__)); > > > > >extern void sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__)); extern void __sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__)); > > > > > > >extern double acosh (double __x) __attribute__ ((__nothrow__)); extern double __acosh (double __x) __attribute__ ((__nothrow__)); > >extern double asinh (double __x) __attribute__ ((__nothrow__)); extern double __asinh (double __x) __attribute__ ((__nothrow__)); > >extern double atanh (double __x) __attribute__ ((__nothrow__)); extern double __atanh (double __x) __attribute__ ((__nothrow__)); > > > > > > > >extern double exp (double __x) __attribute__ ((__nothrow__)); extern double __exp (double __x) __attribute__ ((__nothrow__)); > > >extern double frexp (double __x, int *__exponent) __attribute__ ((__nothrow__)); extern double __frexp (double __x, int *__exponent) __attribute__ ((__nothrow__)); > > >extern double ldexp (double __x, int __exponent) __attribute__ ((__nothrow__)); extern double __ldexp (double __x, int __exponent) __attribute__ ((__nothrow__)); > > >extern double log (double __x) __attribute__ ((__nothrow__)); extern double __log (double __x) __attribute__ ((__nothrow__)); > > >extern double log10 (double __x) __attribute__ ((__nothrow__)); extern double __log10 (double __x) __attribute__ ((__nothrow__)); > > >extern double modf (double __x, double *__iptr) __attribute__ ((__nothrow__)); extern double __modf (double __x, double *__iptr) __attribute__ ((__nothrow__)); > > > > >extern double exp10 (double __x) __attribute__ ((__nothrow__)); extern double __exp10 (double __x) __attribute__ ((__nothrow__)); > >extern double pow10 (double __x) __attribute__ ((__nothrow__)); extern double __pow10 (double __x) __attribute__ ((__nothrow__)); > > > > > >extern double expm1 (double __x) __attribute__ ((__nothrow__)); extern double __expm1 (double __x) __attribute__ ((__nothrow__)); > > >extern double log1p (double __x) __attribute__ ((__nothrow__)); extern double __log1p (double __x) __attribute__ ((__nothrow__)); > > >extern double logb (double __x) __attribute__ ((__nothrow__)); extern double __logb (double __x) __attribute__ ((__nothrow__)); > > > > > > >extern double exp2 (double __x) __attribute__ ((__nothrow__)); extern double __exp2 (double __x) __attribute__ ((__nothrow__)); > > >extern double log2 (double __x) __attribute__ ((__nothrow__)); extern double __log2 (double __x) __attribute__ ((__nothrow__)); > > > > > > > > >extern double pow (double __x, double __y) __attribute__ ((__nothrow__)); extern double __pow (double __x, double __y) __attribute__ ((__nothrow__)); > > >extern double sqrt (double __x) __attribute__ ((__nothrow__)); extern double __sqrt (double __x) __attribute__ ((__nothrow__)); > > > > > >extern double hypot (double __x, double __y) __attribute__ ((__nothrow__)); extern double __hypot (double __x, double __y) __attribute__ ((__nothrow__)); > > > > > > >extern double cbrt (double __x) __attribute__ ((__nothrow__)); extern double __cbrt (double __x) __attribute__ ((__nothrow__)); > > > > > > > > >extern double ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern double fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern double floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern double fmod (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmod (double __x, double __y) __attribute__ ((__nothrow__)); > > > > >extern int __isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern int __finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > > >extern int isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern int finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern double drem (double __x, double __y) __attribute__ ((__nothrow__)); extern double __drem (double __x, double __y) __attribute__ ((__nothrow__)); > > > >extern double significand (double __x) __attribute__ ((__nothrow__)); extern double __significand (double __x) __attribute__ ((__nothrow__)); > > > > > >extern double copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > > > >extern double nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > > >extern int __isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > >extern int isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern double j0 (double) __attribute__ ((__nothrow__)); extern double __j0 (double) __attribute__ ((__nothrow__)); >extern double j1 (double) __attribute__ ((__nothrow__)); extern double __j1 (double) __attribute__ ((__nothrow__)); >extern double jn (int, double) __attribute__ ((__nothrow__)); extern double __jn (int, double) __attribute__ ((__nothrow__)); >extern double y0 (double) __attribute__ ((__nothrow__)); extern double __y0 (double) __attribute__ ((__nothrow__)); >extern double y1 (double) __attribute__ ((__nothrow__)); extern double __y1 (double) __attribute__ ((__nothrow__)); >extern double yn (int, double) __attribute__ ((__nothrow__)); extern double __yn (int, double) __attribute__ ((__nothrow__)); > > > > > > >extern double erf (double) __attribute__ ((__nothrow__)); extern double __erf (double) __attribute__ ((__nothrow__)); >extern double erfc (double) __attribute__ ((__nothrow__)); extern double __erfc (double) __attribute__ ((__nothrow__)); >extern double lgamma (double) __attribute__ ((__nothrow__)); extern double __lgamma (double) __attribute__ ((__nothrow__)); > > > > > > >extern double tgamma (double) __attribute__ ((__nothrow__)); extern double __tgamma (double) __attribute__ ((__nothrow__)); > > > > > >extern double gamma (double) __attribute__ ((__nothrow__)); extern double __gamma (double) __attribute__ ((__nothrow__)); > > > > > > >extern double lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__)); extern double __lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__)); > > > > > > > >extern double rint (double __x) __attribute__ ((__nothrow__)); extern double __rint (double __x) __attribute__ ((__nothrow__)); > > >extern double nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > >extern double nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > >extern double remainder (double __x, double __y) __attribute__ ((__nothrow__)); extern double __remainder (double __x, double __y) __attribute__ ((__nothrow__)); > > > >extern double scalbn (double __x, int __n) __attribute__ ((__nothrow__)); extern double __scalbn (double __x, int __n) __attribute__ ((__nothrow__)); > > > >extern int ilogb (double __x) __attribute__ ((__nothrow__)); extern int __ilogb (double __x) __attribute__ ((__nothrow__)); > > > > >extern double scalbln (double __x, long int __n) __attribute__ ((__nothrow__)); extern double __scalbln (double __x, long int __n) __attribute__ ((__nothrow__)); > > > >extern double nearbyint (double __x) __attribute__ ((__nothrow__)); extern double __nearbyint (double __x) __attribute__ ((__nothrow__)); > > > >extern double round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > >extern double trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > >extern double remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__)); extern double __remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__)); > > > > > > >extern long int lrint (double __x) __attribute__ ((__nothrow__)); extern long int __lrint (double __x) __attribute__ ((__nothrow__)); >extern long long int llrint (double __x) __attribute__ ((__nothrow__)); extern long long int __llrint (double __x) __attribute__ ((__nothrow__)); > > > >extern long int lround (double __x) __attribute__ ((__nothrow__)); extern long int __lround (double __x) __attribute__ ((__nothrow__)); >extern long long int llround (double __x) __attribute__ ((__nothrow__)); extern long long int __llround (double __x) __attribute__ ((__nothrow__)); > > > >extern double fdim (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fdim (double __x, double __y) __attribute__ ((__nothrow__)); > > >extern double fmax (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmax (double __x, double __y) __attribute__ ((__nothrow__)); > > >extern double fmin (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmin (double __x, double __y) __attribute__ ((__nothrow__)); > > > >extern int __fpclassify (double __value) __attribute__ ((__nothrow__)) > __attribute__ ((__const__)); > > >extern int __signbit (double __value) __attribute__ ((__nothrow__)) > __attribute__ ((__const__)); > > > >extern double fma (double __x, double __y, double __z) __attribute__ ((__nothrow__)); extern double __fma (double __x, double __y, double __z) __attribute__ ((__nothrow__)); > > > > > > > > >extern double scalb (double __x, double __n) __attribute__ ((__nothrow__)); extern double __scalb (double __x, double __n) __attribute__ ((__nothrow__)); ># 72 "/usr/include/math.h" 2 3 4 ># 94 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern float acosf (float __x) __attribute__ ((__nothrow__)); extern float __acosf (float __x) __attribute__ ((__nothrow__)); > >extern float asinf (float __x) __attribute__ ((__nothrow__)); extern float __asinf (float __x) __attribute__ ((__nothrow__)); > >extern float atanf (float __x) __attribute__ ((__nothrow__)); extern float __atanf (float __x) __attribute__ ((__nothrow__)); > >extern float atan2f (float __y, float __x) __attribute__ ((__nothrow__)); extern float __atan2f (float __y, float __x) __attribute__ ((__nothrow__)); > > >extern float cosf (float __x) __attribute__ ((__nothrow__)); extern float __cosf (float __x) __attribute__ ((__nothrow__)); > >extern float sinf (float __x) __attribute__ ((__nothrow__)); extern float __sinf (float __x) __attribute__ ((__nothrow__)); > >extern float tanf (float __x) __attribute__ ((__nothrow__)); extern float __tanf (float __x) __attribute__ ((__nothrow__)); > > > > >extern float coshf (float __x) __attribute__ ((__nothrow__)); extern float __coshf (float __x) __attribute__ ((__nothrow__)); > >extern float sinhf (float __x) __attribute__ ((__nothrow__)); extern float __sinhf (float __x) __attribute__ ((__nothrow__)); > >extern float tanhf (float __x) __attribute__ ((__nothrow__)); extern float __tanhf (float __x) __attribute__ ((__nothrow__)); > > > > >extern void sincosf (float __x, float *__sinx, float *__cosx) __attribute__ ((__nothrow__)); extern void __sincosf (float __x, float *__sinx, float *__cosx) __attribute__ ((__nothrow__)); > > > > > > >extern float acoshf (float __x) __attribute__ ((__nothrow__)); extern float __acoshf (float __x) __attribute__ ((__nothrow__)); > >extern float asinhf (float __x) __attribute__ ((__nothrow__)); extern float __asinhf (float __x) __attribute__ ((__nothrow__)); > >extern float atanhf (float __x) __attribute__ ((__nothrow__)); extern float __atanhf (float __x) __attribute__ ((__nothrow__)); > > > > > > > >extern float expf (float __x) __attribute__ ((__nothrow__)); extern float __expf (float __x) __attribute__ ((__nothrow__)); > > >extern float frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__)); extern float __frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__)); > > >extern float ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__)); extern float __ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__)); > > >extern float logf (float __x) __attribute__ ((__nothrow__)); extern float __logf (float __x) __attribute__ ((__nothrow__)); > > >extern float log10f (float __x) __attribute__ ((__nothrow__)); extern float __log10f (float __x) __attribute__ ((__nothrow__)); > > >extern float modff (float __x, float *__iptr) __attribute__ ((__nothrow__)); extern float __modff (float __x, float *__iptr) __attribute__ ((__nothrow__)); > > > > >extern float exp10f (float __x) __attribute__ ((__nothrow__)); extern float __exp10f (float __x) __attribute__ ((__nothrow__)); > >extern float pow10f (float __x) __attribute__ ((__nothrow__)); extern float __pow10f (float __x) __attribute__ ((__nothrow__)); > > > > > >extern float expm1f (float __x) __attribute__ ((__nothrow__)); extern float __expm1f (float __x) __attribute__ ((__nothrow__)); > > >extern float log1pf (float __x) __attribute__ ((__nothrow__)); extern float __log1pf (float __x) __attribute__ ((__nothrow__)); > > >extern float logbf (float __x) __attribute__ ((__nothrow__)); extern float __logbf (float __x) __attribute__ ((__nothrow__)); > > > > > > >extern float exp2f (float __x) __attribute__ ((__nothrow__)); extern float __exp2f (float __x) __attribute__ ((__nothrow__)); > > >extern float log2f (float __x) __attribute__ ((__nothrow__)); extern float __log2f (float __x) __attribute__ ((__nothrow__)); > > > > > > > > >extern float powf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __powf (float __x, float __y) __attribute__ ((__nothrow__)); > > >extern float sqrtf (float __x) __attribute__ ((__nothrow__)); extern float __sqrtf (float __x) __attribute__ ((__nothrow__)); > > > > > >extern float hypotf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __hypotf (float __x, float __y) __attribute__ ((__nothrow__)); > > > > > > >extern float cbrtf (float __x) __attribute__ ((__nothrow__)); extern float __cbrtf (float __x) __attribute__ ((__nothrow__)); > > > > > > > > >extern float ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern float fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern float floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern float fmodf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmodf (float __x, float __y) __attribute__ ((__nothrow__)); > > > > >extern int __isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern int __finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > > >extern int isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern int finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern float dremf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __dremf (float __x, float __y) __attribute__ ((__nothrow__)); > > > >extern float significandf (float __x) __attribute__ ((__nothrow__)); extern float __significandf (float __x) __attribute__ ((__nothrow__)); > > > > > >extern float copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > > > >extern float nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > > >extern int __isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > >extern int isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern float j0f (float) __attribute__ ((__nothrow__)); extern float __j0f (float) __attribute__ ((__nothrow__)); >extern float j1f (float) __attribute__ ((__nothrow__)); extern float __j1f (float) __attribute__ ((__nothrow__)); >extern float jnf (int, float) __attribute__ ((__nothrow__)); extern float __jnf (int, float) __attribute__ ((__nothrow__)); >extern float y0f (float) __attribute__ ((__nothrow__)); extern float __y0f (float) __attribute__ ((__nothrow__)); >extern float y1f (float) __attribute__ ((__nothrow__)); extern float __y1f (float) __attribute__ ((__nothrow__)); >extern float ynf (int, float) __attribute__ ((__nothrow__)); extern float __ynf (int, float) __attribute__ ((__nothrow__)); > > > > > > >extern float erff (float) __attribute__ ((__nothrow__)); extern float __erff (float) __attribute__ ((__nothrow__)); >extern float erfcf (float) __attribute__ ((__nothrow__)); extern float __erfcf (float) __attribute__ ((__nothrow__)); >extern float lgammaf (float) __attribute__ ((__nothrow__)); extern float __lgammaf (float) __attribute__ ((__nothrow__)); > > > > > > >extern float tgammaf (float) __attribute__ ((__nothrow__)); extern float __tgammaf (float) __attribute__ ((__nothrow__)); > > > > > >extern float gammaf (float) __attribute__ ((__nothrow__)); extern float __gammaf (float) __attribute__ ((__nothrow__)); > > > > > > >extern float lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__)); extern float __lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__)); > > > > > > > >extern float rintf (float __x) __attribute__ ((__nothrow__)); extern float __rintf (float __x) __attribute__ ((__nothrow__)); > > >extern float nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > >extern float nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > >extern float remainderf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __remainderf (float __x, float __y) __attribute__ ((__nothrow__)); > > > >extern float scalbnf (float __x, int __n) __attribute__ ((__nothrow__)); extern float __scalbnf (float __x, int __n) __attribute__ ((__nothrow__)); > > > >extern int ilogbf (float __x) __attribute__ ((__nothrow__)); extern int __ilogbf (float __x) __attribute__ ((__nothrow__)); > > > > >extern float scalblnf (float __x, long int __n) __attribute__ ((__nothrow__)); extern float __scalblnf (float __x, long int __n) __attribute__ ((__nothrow__)); > > > >extern float nearbyintf (float __x) __attribute__ ((__nothrow__)); extern float __nearbyintf (float __x) __attribute__ ((__nothrow__)); > > > >extern float roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > >extern float truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > >extern float remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__)); extern float __remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__)); > > > > > > >extern long int lrintf (float __x) __attribute__ ((__nothrow__)); extern long int __lrintf (float __x) __attribute__ ((__nothrow__)); >extern long long int llrintf (float __x) __attribute__ ((__nothrow__)); extern long long int __llrintf (float __x) __attribute__ ((__nothrow__)); > > > >extern long int lroundf (float __x) __attribute__ ((__nothrow__)); extern long int __lroundf (float __x) __attribute__ ((__nothrow__)); >extern long long int llroundf (float __x) __attribute__ ((__nothrow__)); extern long long int __llroundf (float __x) __attribute__ ((__nothrow__)); > > > >extern float fdimf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fdimf (float __x, float __y) __attribute__ ((__nothrow__)); > > >extern float fmaxf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmaxf (float __x, float __y) __attribute__ ((__nothrow__)); > > >extern float fminf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fminf (float __x, float __y) __attribute__ ((__nothrow__)); > > > >extern int __fpclassifyf (float __value) __attribute__ ((__nothrow__)) > __attribute__ ((__const__)); > > >extern int __signbitf (float __value) __attribute__ ((__nothrow__)) > __attribute__ ((__const__)); > > > >extern float fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__)); extern float __fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__)); > > > > > > > > >extern float scalbf (float __x, float __n) __attribute__ ((__nothrow__)); extern float __scalbf (float __x, float __n) __attribute__ ((__nothrow__)); ># 95 "/usr/include/math.h" 2 3 4 ># 141 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathcalls.h" 1 3 4 ># 53 "/usr/include/bits/mathcalls.h" 3 4 > > >extern long double acosl (long double __x) __attribute__ ((__nothrow__)); extern long double __acosl (long double __x) __attribute__ ((__nothrow__)); > >extern long double asinl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinl (long double __x) __attribute__ ((__nothrow__)); > >extern long double atanl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanl (long double __x) __attribute__ ((__nothrow__)); > >extern long double atan2l (long double __y, long double __x) __attribute__ ((__nothrow__)); extern long double __atan2l (long double __y, long double __x) __attribute__ ((__nothrow__)); > > >extern long double cosl (long double __x) __attribute__ ((__nothrow__)); extern long double __cosl (long double __x) __attribute__ ((__nothrow__)); > >extern long double sinl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinl (long double __x) __attribute__ ((__nothrow__)); > >extern long double tanl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanl (long double __x) __attribute__ ((__nothrow__)); > > > > >extern long double coshl (long double __x) __attribute__ ((__nothrow__)); extern long double __coshl (long double __x) __attribute__ ((__nothrow__)); > >extern long double sinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinhl (long double __x) __attribute__ ((__nothrow__)); > >extern long double tanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanhl (long double __x) __attribute__ ((__nothrow__)); > > > > >extern void sincosl (long double __x, long double *__sinx, long double *__cosx) __attribute__ ((__nothrow__)); extern void __sincosl (long double __x, long double *__sinx, long double *__cosx) __attribute__ ((__nothrow__)); > > > > > > >extern long double acoshl (long double __x) __attribute__ ((__nothrow__)); extern long double __acoshl (long double __x) __attribute__ ((__nothrow__)); > >extern long double asinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinhl (long double __x) __attribute__ ((__nothrow__)); > >extern long double atanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanhl (long double __x) __attribute__ ((__nothrow__)); > > > > > > > >extern long double expl (long double __x) __attribute__ ((__nothrow__)); extern long double __expl (long double __x) __attribute__ ((__nothrow__)); > > >extern long double frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__)); extern long double __frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__)); > > >extern long double ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__)); extern long double __ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__)); > > >extern long double logl (long double __x) __attribute__ ((__nothrow__)); extern long double __logl (long double __x) __attribute__ ((__nothrow__)); > > >extern long double log10l (long double __x) __attribute__ ((__nothrow__)); extern long double __log10l (long double __x) __attribute__ ((__nothrow__)); > > >extern long double modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__)); extern long double __modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__)); > > > > >extern long double exp10l (long double __x) __attribute__ ((__nothrow__)); extern long double __exp10l (long double __x) __attribute__ ((__nothrow__)); > >extern long double pow10l (long double __x) __attribute__ ((__nothrow__)); extern long double __pow10l (long double __x) __attribute__ ((__nothrow__)); > > > > > >extern long double expm1l (long double __x) __attribute__ ((__nothrow__)); extern long double __expm1l (long double __x) __attribute__ ((__nothrow__)); > > >extern long double log1pl (long double __x) __attribute__ ((__nothrow__)); extern long double __log1pl (long double __x) __attribute__ ((__nothrow__)); > > >extern long double logbl (long double __x) __attribute__ ((__nothrow__)); extern long double __logbl (long double __x) __attribute__ ((__nothrow__)); > > > > > > >extern long double exp2l (long double __x) __attribute__ ((__nothrow__)); extern long double __exp2l (long double __x) __attribute__ ((__nothrow__)); > > >extern long double log2l (long double __x) __attribute__ ((__nothrow__)); extern long double __log2l (long double __x) __attribute__ ((__nothrow__)); > > > > > > > > >extern long double powl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __powl (long double __x, long double __y) __attribute__ ((__nothrow__)); > > >extern long double sqrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __sqrtl (long double __x) __attribute__ ((__nothrow__)); > > > > > >extern long double hypotl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __hypotl (long double __x, long double __y) __attribute__ ((__nothrow__)); > > > > > > >extern long double cbrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __cbrtl (long double __x) __attribute__ ((__nothrow__)); > > > > > > > > >extern long double ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern long double fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern long double floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern long double fmodl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmodl (long double __x, long double __y) __attribute__ ((__nothrow__)); > > > > >extern int __isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern int __finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > > >extern int isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern int finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern long double dreml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __dreml (long double __x, long double __y) __attribute__ ((__nothrow__)); > > > >extern long double significandl (long double __x) __attribute__ ((__nothrow__)); extern long double __significandl (long double __x) __attribute__ ((__nothrow__)); > > > > > >extern long double copysignl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > > > >extern long double nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > > >extern int __isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > >extern int isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern long double j0l (long double) __attribute__ ((__nothrow__)); extern long double __j0l (long double) __attribute__ ((__nothrow__)); >extern long double j1l (long double) __attribute__ ((__nothrow__)); extern long double __j1l (long double) __attribute__ ((__nothrow__)); >extern long double jnl (int, long double) __attribute__ ((__nothrow__)); extern long double __jnl (int, long double) __attribute__ ((__nothrow__)); >extern long double y0l (long double) __attribute__ ((__nothrow__)); extern long double __y0l (long double) __attribute__ ((__nothrow__)); >extern long double y1l (long double) __attribute__ ((__nothrow__)); extern long double __y1l (long double) __attribute__ ((__nothrow__)); >extern long double ynl (int, long double) __attribute__ ((__nothrow__)); extern long double __ynl (int, long double) __attribute__ ((__nothrow__)); > > > > > > >extern long double erfl (long double) __attribute__ ((__nothrow__)); extern long double __erfl (long double) __attribute__ ((__nothrow__)); >extern long double erfcl (long double) __attribute__ ((__nothrow__)); extern long double __erfcl (long double) __attribute__ ((__nothrow__)); >extern long double lgammal (long double) __attribute__ ((__nothrow__)); extern long double __lgammal (long double) __attribute__ ((__nothrow__)); > > > > > > >extern long double tgammal (long double) __attribute__ ((__nothrow__)); extern long double __tgammal (long double) __attribute__ ((__nothrow__)); > > > > > >extern long double gammal (long double) __attribute__ ((__nothrow__)); extern long double __gammal (long double) __attribute__ ((__nothrow__)); > > > > > > >extern long double lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__)); extern long double __lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__)); > > > > > > > >extern long double rintl (long double __x) __attribute__ ((__nothrow__)); extern long double __rintl (long double __x) __attribute__ ((__nothrow__)); > > >extern long double nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > >extern long double nexttowardl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > >extern long double remainderl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __remainderl (long double __x, long double __y) __attribute__ ((__nothrow__)); > > > >extern long double scalbnl (long double __x, int __n) __attribute__ ((__nothrow__)); extern long double __scalbnl (long double __x, int __n) __attribute__ ((__nothrow__)); > > > >extern int ilogbl (long double __x) __attribute__ ((__nothrow__)); extern int __ilogbl (long double __x) __attribute__ ((__nothrow__)); > > > > >extern long double scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__)); extern long double __scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__)); > > > >extern long double nearbyintl (long double __x) __attribute__ ((__nothrow__)); extern long double __nearbyintl (long double __x) __attribute__ ((__nothrow__)); > > > >extern long double roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > >extern long double truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > >extern long double remquol (long double __x, long double __y, int *__quo) __attribute__ ((__nothrow__)); extern long double __remquol (long double __x, long double __y, int *__quo) __attribute__ ((__nothrow__)); > > > > > > >extern long int lrintl (long double __x) __attribute__ ((__nothrow__)); extern long int __lrintl (long double __x) __attribute__ ((__nothrow__)); >extern long long int llrintl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llrintl (long double __x) __attribute__ ((__nothrow__)); > > > >extern long int lroundl (long double __x) __attribute__ ((__nothrow__)); extern long int __lroundl (long double __x) __attribute__ ((__nothrow__)); >extern long long int llroundl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llroundl (long double __x) __attribute__ ((__nothrow__)); > > > >extern long double fdiml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fdiml (long double __x, long double __y) __attribute__ ((__nothrow__)); > > >extern long double fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__)); > > >extern long double fminl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fminl (long double __x, long double __y) __attribute__ ((__nothrow__)); > > > >extern int __fpclassifyl (long double __value) __attribute__ ((__nothrow__)) > __attribute__ ((__const__)); > > >extern int __signbitl (long double __value) __attribute__ ((__nothrow__)) > __attribute__ ((__const__)); > > > >extern long double fmal (long double __x, long double __y, long double __z) __attribute__ ((__nothrow__)); extern long double __fmal (long double __x, long double __y, long double __z) __attribute__ ((__nothrow__)); > > > > > > > > >extern long double scalbl (long double __x, long double __n) __attribute__ ((__nothrow__)); extern long double __scalbl (long double __x, long double __n) __attribute__ ((__nothrow__)); ># 142 "/usr/include/math.h" 2 3 4 ># 157 "/usr/include/math.h" 3 4 >extern int signgam; ># 198 "/usr/include/math.h" 3 4 >enum > { > FP_NAN, > > FP_INFINITE, > > FP_ZERO, > > FP_SUBNORMAL, > > FP_NORMAL > > }; ># 284 "/usr/include/math.h" 3 4 >typedef enum >{ > _IEEE_ = -1, > _SVID_, > _XOPEN_, > _POSIX_, > _ISOC_ >} _LIB_VERSION_TYPE; > > > > >extern _LIB_VERSION_TYPE _LIB_VERSION; ># 309 "/usr/include/math.h" 3 4 >struct exception > > { > int type; > char *name; > double arg1; > double arg2; > double retval; > }; > > > > >extern int matherr (struct exception *__exc); ># 409 "/usr/include/math.h" 3 4 ># 1 "/usr/include/bits/mathinline.h" 1 3 4 ># 63 "/usr/include/bits/mathinline.h" 3 4 >extern __inline int >__attribute__ ((__nothrow__)) __signbitf (float __x) >{ > __extension__ union { float __f; int __i; } __u = { __f: __x }; > return __u.__i < 0; >} >extern __inline int >__attribute__ ((__nothrow__)) __signbit (double __x) >{ > __extension__ union { double __d; int __i[2]; } __u = { __d: __x }; > return __u.__i[0] < 0; >} > >extern __inline int >__attribute__ ((__nothrow__)) __signbitl (long double __x) >{ > __extension__ union { long double __d; int __i[4]; } __u = { __d: __x }; > return __u.__i[0] < 0; >} ># 116 "/usr/include/bits/mathinline.h" 3 4 >extern __inline double fdim (double __x, double __y) __attribute__ ((__nothrow__)); >extern __inline double >__attribute__ ((__nothrow__)) fdim (double __x, double __y) >{ > return __x <= __y ? 0 : __x - __y; >} > >extern __inline float fdimf (float __x, float __y) __attribute__ ((__nothrow__)); >extern __inline float >__attribute__ ((__nothrow__)) fdimf (float __x, float __y) >{ > return __x <= __y ? 0 : __x - __y; >} ># 410 "/usr/include/math.h" 2 3 4 ># 465 "/usr/include/math.h" 3 4 > ># 321 "./../include/my_global.h" 2 > ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/limits.h" 1 3 4 ># 11 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/limits.h" 3 4 ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/syslimits.h" 1 3 4 > > > > > > ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/limits.h" 1 3 4 ># 122 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/limits.h" 3 4 ># 1 "/usr/include/limits.h" 1 3 4 ># 145 "/usr/include/limits.h" 3 4 ># 1 "/usr/include/bits/posix1_lim.h" 1 3 4 ># 157 "/usr/include/bits/posix1_lim.h" 3 4 ># 1 "/usr/include/bits/local_lim.h" 1 3 4 ># 40 "/usr/include/bits/local_lim.h" 3 4 ># 1 "/usr/include/linux/limits.h" 1 3 4 ># 41 "/usr/include/bits/local_lim.h" 2 3 4 ># 158 "/usr/include/bits/posix1_lim.h" 2 3 4 ># 146 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/posix2_lim.h" 1 3 4 ># 150 "/usr/include/limits.h" 2 3 4 > > > ># 1 "/usr/include/bits/xopen_lim.h" 1 3 4 ># 34 "/usr/include/bits/xopen_lim.h" 3 4 ># 1 "/usr/include/bits/stdio_lim.h" 1 3 4 ># 35 "/usr/include/bits/xopen_lim.h" 2 3 4 ># 154 "/usr/include/limits.h" 2 3 4 ># 123 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/limits.h" 2 3 4 ># 8 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/syslimits.h" 2 3 4 ># 12 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/limits.h" 2 3 4 ># 323 "./../include/my_global.h" 2 > > ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/float.h" 1 3 4 ># 326 "./../include/my_global.h" 2 > > ># 1 "/usr/include/fenv.h" 1 3 4 ># 58 "/usr/include/fenv.h" 3 4 ># 1 "/usr/include/bits/fenv.h" 1 3 4 ># 26 "/usr/include/bits/fenv.h" 3 4 >enum > { > FE_INEXACT = 1 << (31 - 6), > > FE_DIVBYZERO = 1 << (31 - 5), > > FE_UNDERFLOW = 1 << (31 - 4), > > FE_OVERFLOW = 1 << (31 - 3), ># 43 "/usr/include/bits/fenv.h" 3 4 > FE_INVALID = 1 << (31 - 2), ># 54 "/usr/include/bits/fenv.h" 3 4 > FE_INVALID_SNAN = 1 << (31 - 7), > > > > FE_INVALID_ISI = 1 << (31 - 8), > > > > FE_INVALID_IDI = 1 << (31 - 9), > > > > FE_INVALID_ZDZ = 1 << (31 - 10), > > > > FE_INVALID_IMZ = 1 << (31 - 11), > > > > FE_INVALID_COMPARE = 1 << (31 - 12), > > > > > > FE_INVALID_SOFTWARE = 1 << (31 - 21), > > > > > FE_INVALID_SQRT = 1 << (31 - 22), > > > > FE_INVALID_INTEGER_CONVERSION = 1 << (31 - 23) > > > > > > > > }; > > > > > > > >enum > { > FE_TONEAREST = 0, > > FE_TOWARDZERO = 1, > > FE_UPWARD = 2, > > FE_DOWNWARD = 3 > > }; > > >typedef unsigned int fexcept_t; > > > >typedef double fenv_t; > > >extern const fenv_t __fe_dfl_env; > > > > > >extern const fenv_t __fe_enabled_env; > > > > >extern const fenv_t __fe_nonieee_env; > > > > > > > > > > >extern const fenv_t *__fe_nomask_env (void); > > > > > > > >extern const fenv_t *__fe_mask_env (void); > > > ># 59 "/usr/include/fenv.h" 2 3 4 > > > > > > >extern int feclearexcept (int __excepts) __attribute__ ((__nothrow__)); > > > >extern int fegetexceptflag (fexcept_t *__flagp, int __excepts) __attribute__ ((__nothrow__)); > > >extern int feraiseexcept (int __excepts) __attribute__ ((__nothrow__)); > > > >extern int fesetexceptflag (__const fexcept_t *__flagp, int __excepts) __attribute__ ((__nothrow__)); > > > >extern int fetestexcept (int __excepts) __attribute__ ((__nothrow__)); > > > > > >extern int fegetround (void) __attribute__ ((__nothrow__)); > > >extern int fesetround (int __rounding_direction) __attribute__ ((__nothrow__)); > > > > > > >extern int fegetenv (fenv_t *__envp) __attribute__ ((__nothrow__)); > > > > >extern int feholdexcept (fenv_t *__envp) __attribute__ ((__nothrow__)); > > > >extern int fesetenv (__const fenv_t *__envp) __attribute__ ((__nothrow__)); > > > > >extern int feupdateenv (__const fenv_t *__envp) __attribute__ ((__nothrow__)); > > > > ># 1 "/usr/include/bits/fenvinline.h" 1 3 4 ># 116 "/usr/include/fenv.h" 2 3 4 > > > > > > > >extern int feenableexcept (int __excepts) __attribute__ ((__nothrow__)); > > > > >extern int fedisableexcept (int __excepts) __attribute__ ((__nothrow__)); > > >extern int fegetexcept (void) __attribute__ ((__nothrow__)); > > > ># 329 "./../include/my_global.h" 2 > > > > > > ># 1 "/usr/include/fcntl.h" 1 3 4 ># 30 "/usr/include/fcntl.h" 3 4 > > > > ># 1 "/usr/include/bits/fcntl.h" 1 3 4 ># 27 "/usr/include/bits/fcntl.h" 3 4 ># 1 "/usr/include/bits/uio.h" 1 3 4 ># 44 "/usr/include/bits/uio.h" 3 4 >struct iovec > { > void *iov_base; > size_t iov_len; > }; ># 28 "/usr/include/bits/fcntl.h" 2 3 4 ># 144 "/usr/include/bits/fcntl.h" 3 4 >struct flock > { > short int l_type; > short int l_whence; > > __off_t l_start; > __off_t l_len; > > > > > __pid_t l_pid; > }; > > >struct flock64 > { > short int l_type; > short int l_whence; > __off64_t l_start; > __off64_t l_len; > __pid_t l_pid; > }; ># 211 "/usr/include/bits/fcntl.h" 3 4 > > > > > >extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) > __attribute__ ((__nothrow__)); > > > >extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to, > unsigned int __flags); > > > >extern ssize_t vmsplice (int __fdout, const struct iovec *__iov, > size_t __count, unsigned int __flags); > > >extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout, > __off64_t *__offout, size_t __len, > unsigned int __flags); > > >extern ssize_t tee (int __fdin, int __fdout, size_t __len, > unsigned int __flags); > > > >extern int fallocate (int __fd, int __mode, __off_t __offset, __off_t __len); ># 251 "/usr/include/bits/fcntl.h" 3 4 >extern int fallocate64 (int __fd, int __mode, __off64_t __offset, > __off64_t __len); > > > > > ># 35 "/usr/include/fcntl.h" 2 3 4 > > > ># 1 "/usr/include/sys/stat.h" 1 3 4 ># 105 "/usr/include/sys/stat.h" 3 4 > > ># 1 "/usr/include/bits/stat.h" 1 3 4 ># 24 "/usr/include/bits/stat.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 25 "/usr/include/bits/stat.h" 2 3 4 ># 140 "/usr/include/bits/stat.h" 3 4 >struct stat > { > __dev_t st_dev; > > __ino_t st_ino; > > > > __nlink_t st_nlink; > __mode_t st_mode; > __uid_t st_uid; > __gid_t st_gid; > int __pad2; > __dev_t st_rdev; > > __off_t st_size; > > > > __blksize_t st_blksize; > > > __blkcnt_t st_blocks; ># 173 "/usr/include/bits/stat.h" 3 4 > struct timespec st_atim; > struct timespec st_mtim; > struct timespec st_ctim; ># 187 "/usr/include/bits/stat.h" 3 4 > unsigned long int __unused4; > unsigned long int __unused5; > unsigned long int __unused6; > }; > > >struct stat64 > { > __dev_t st_dev; > __ino64_t st_ino; > __nlink_t st_nlink; > __mode_t st_mode; > __uid_t st_uid; > __gid_t st_gid; > int __pad2; > __dev_t st_rdev; > __off64_t st_size; > __blksize_t st_blksize; > __blkcnt64_t st_blocks; > > > > > > > > struct timespec st_atim; > struct timespec st_mtim; > struct timespec st_ctim; ># 227 "/usr/include/bits/stat.h" 3 4 > unsigned long int __unused4; > unsigned long int __unused5; > unsigned long int __unused6; > }; ># 108 "/usr/include/sys/stat.h" 2 3 4 ># 209 "/usr/include/sys/stat.h" 3 4 >extern int stat (__const char *__restrict __file, > struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); ># 228 "/usr/include/sys/stat.h" 3 4 >extern int stat64 (__const char *__restrict __file, > struct stat64 *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern int fstat64 (int __fd, struct stat64 *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > > > > > >extern int fstatat (int __fd, __const char *__restrict __file, > struct stat *__restrict __buf, int __flag) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); ># 253 "/usr/include/sys/stat.h" 3 4 >extern int fstatat64 (int __fd, __const char *__restrict __file, > struct stat64 *__restrict __buf, int __flag) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); > > > > > > > >extern int lstat (__const char *__restrict __file, > struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); ># 276 "/usr/include/sys/stat.h" 3 4 >extern int lstat64 (__const char *__restrict __file, > struct stat64 *__restrict __buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int chmod (__const char *__file, __mode_t __mode) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int lchmod (__const char *__file, __mode_t __mode) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > >extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__)); > > > > > >extern int fchmodat (int __fd, __const char *__file, __mode_t __mode, > int __flag) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); > > > > > > >extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__)); > > > > >extern __mode_t getumask (void) __attribute__ ((__nothrow__)); > > > >extern int mkdir (__const char *__path, __mode_t __mode) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int mkdirat (int __fd, __const char *__path, __mode_t __mode) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > > > > >extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int mknodat (int __fd, __const char *__path, __mode_t __mode, > __dev_t __dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > > > >extern int mkfifo (__const char *__path, __mode_t __mode) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > > > >extern int utimensat (int __fd, __const char *__path, > __const struct timespec __times[2], > int __flags) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > > >extern int futimens (int __fd, __const struct timespec __times[2]) __attribute__ ((__nothrow__)); ># 399 "/usr/include/sys/stat.h" 3 4 >extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); >extern int __xstat (int __ver, __const char *__filename, > struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); >extern int __lxstat (int __ver, __const char *__filename, > struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); >extern int __fxstatat (int __ver, int __fildes, __const char *__filename, > struct stat *__stat_buf, int __flag) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))); ># 432 "/usr/include/sys/stat.h" 3 4 >extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))); >extern int __xstat64 (int __ver, __const char *__filename, > struct stat64 *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); >extern int __lxstat64 (int __ver, __const char *__filename, > struct stat64 *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); >extern int __fxstatat64 (int __ver, int __fildes, __const char *__filename, > struct stat64 *__stat_buf, int __flag) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))); > >extern int __xmknod (int __ver, __const char *__path, __mode_t __mode, > __dev_t *__dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); > >extern int __xmknodat (int __ver, int __fd, __const char *__path, > __mode_t __mode, __dev_t *__dev) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 5))); > > > > >extern __inline int >__attribute__ ((__nothrow__)) stat (__const char *__path, struct stat *__statbuf) >{ > return __xstat (1, __path, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__)) lstat (__const char *__path, struct stat *__statbuf) >{ > return __lxstat (1, __path, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__)) fstat (int __fd, struct stat *__statbuf) >{ > return __fxstat (1, __fd, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__)) fstatat (int __fd, __const char *__filename, struct stat *__statbuf, int __flag) > >{ > return __fxstatat (1, __fd, __filename, __statbuf, __flag); >} > > > >extern __inline int >__attribute__ ((__nothrow__)) mknod (__const char *__path, __mode_t __mode, __dev_t __dev) >{ > return __xmknod (1, __path, __mode, &__dev); >} > > > >extern __inline int >__attribute__ ((__nothrow__)) mknodat (int __fd, __const char *__path, __mode_t __mode, __dev_t __dev) > >{ > return __xmknodat (1, __fd, __path, __mode, &__dev); >} > > > > > >extern __inline int >__attribute__ ((__nothrow__)) stat64 (__const char *__path, struct stat64 *__statbuf) >{ > return __xstat64 (1, __path, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__)) lstat64 (__const char *__path, struct stat64 *__statbuf) >{ > return __lxstat64 (1, __path, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__)) fstat64 (int __fd, struct stat64 *__statbuf) >{ > return __fxstat64 (1, __fd, __statbuf); >} > > >extern __inline int >__attribute__ ((__nothrow__)) fstatat64 (int __fd, __const char *__filename, struct stat64 *__statbuf, int __flag) > >{ > return __fxstatat64 (1, __fd, __filename, __statbuf, __flag); >} > > > > > > > ># 39 "/usr/include/fcntl.h" 2 3 4 ># 76 "/usr/include/fcntl.h" 3 4 >extern int fcntl (int __fd, int __cmd, ...); ># 85 "/usr/include/fcntl.h" 3 4 >extern int open (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); ># 95 "/usr/include/fcntl.h" 3 4 >extern int open64 (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); ># 109 "/usr/include/fcntl.h" 3 4 >extern int openat (int __fd, __const char *__file, int __oflag, ...) > __attribute__ ((__nonnull__ (2))); ># 120 "/usr/include/fcntl.h" 3 4 >extern int openat64 (int __fd, __const char *__file, int __oflag, ...) > __attribute__ ((__nonnull__ (2))); ># 130 "/usr/include/fcntl.h" 3 4 >extern int creat (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); ># 140 "/usr/include/fcntl.h" 3 4 >extern int creat64 (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); ># 159 "/usr/include/fcntl.h" 3 4 >extern int lockf (int __fd, int __cmd, __off_t __len); ># 168 "/usr/include/fcntl.h" 3 4 >extern int lockf64 (int __fd, int __cmd, __off64_t __len); > > > > > > > >extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len, > int __advise) __attribute__ ((__nothrow__)); ># 188 "/usr/include/fcntl.h" 3 4 >extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len, > int __advise) __attribute__ ((__nothrow__)); ># 198 "/usr/include/fcntl.h" 3 4 >extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len); ># 209 "/usr/include/fcntl.h" 3 4 >extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len); > > > > > > > ># 1 "/usr/include/bits/fcntl2.h" 1 3 4 ># 27 "/usr/include/bits/fcntl2.h" 3 4 >extern int __open_2 (__const char *__path, int __oflag) __attribute__ ((__nonnull__ (1))); >extern int __open_alias (__const char *__path, int __oflag, ...) __asm__ ("" "open") __attribute__ ((__nonnull__ (1))); > > > > > > > >extern void __open_too_many_args (void) __attribute__((__error__ ("open can be called either with 2 or 3 arguments, not more"))); > >extern void __open_missing_mode (void) __attribute__((__error__ ("open with O_CREAT in second argument needs 3 arguments"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >open (__const char *__path, int __oflag, ...) >{ > if (__builtin_va_arg_pack_len () > 1) > __open_too_many_args (); > > if (__builtin_constant_p (__oflag)) > { > if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) > { > __open_missing_mode (); > return __open_2 (__path, __oflag); > } > return __open_alias (__path, __oflag, __builtin_va_arg_pack ()); > } > > if (__builtin_va_arg_pack_len () < 1) > return __open_2 (__path, __oflag); > > return __open_alias (__path, __oflag, __builtin_va_arg_pack ()); >} > > > >extern int __open64_2 (__const char *__path, int __oflag) __attribute__ ((__nonnull__ (1))); >extern int __open64_alias (__const char *__path, int __oflag, ...) __asm__ ("" "open64") __attribute__ ((__nonnull__ (1))); > >extern void __open64_too_many_args (void) __attribute__((__error__ ("open64 can be called either with 2 or 3 arguments, not more"))); > >extern void __open64_missing_mode (void) __attribute__((__error__ ("open64 with O_CREAT in second argument needs 3 arguments"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >open64 (__const char *__path, int __oflag, ...) >{ > if (__builtin_va_arg_pack_len () > 1) > __open64_too_many_args (); > > if (__builtin_constant_p (__oflag)) > { > if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) > { > __open64_missing_mode (); > return __open64_2 (__path, __oflag); > } > return __open64_alias (__path, __oflag, __builtin_va_arg_pack ()); > } > > if (__builtin_va_arg_pack_len () < 1) > return __open64_2 (__path, __oflag); > > return __open64_alias (__path, __oflag, __builtin_va_arg_pack ()); >} > > > > > >extern int __openat_2 (int __fd, __const char *__path, int __oflag) > __attribute__ ((__nonnull__ (2))); >extern int __openat_alias (int __fd, __const char *__path, int __oflag, ...) __asm__ ("" "openat") > > __attribute__ ((__nonnull__ (2))); ># 112 "/usr/include/bits/fcntl2.h" 3 4 >extern void __openat_too_many_args (void) __attribute__((__error__ ("openat can be called either with 3 or 4 arguments, not more"))); > >extern void __openat_missing_mode (void) __attribute__((__error__ ("openat with O_CREAT in third argument needs 4 arguments"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >openat (int __fd, __const char *__path, int __oflag, ...) >{ > if (__builtin_va_arg_pack_len () > 1) > __openat_too_many_args (); > > if (__builtin_constant_p (__oflag)) > { > if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) > { > __openat_missing_mode (); > return __openat_2 (__fd, __path, __oflag); > } > return __openat_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); > } > > if (__builtin_va_arg_pack_len () < 1) > return __openat_2 (__fd, __path, __oflag); > > return __openat_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); >} > > > >extern int __openat64_2 (int __fd, __const char *__path, int __oflag) > __attribute__ ((__nonnull__ (2))); >extern int __openat64_alias (int __fd, __const char *__path, int __oflag, ...) __asm__ ("" "openat64") > > __attribute__ ((__nonnull__ (2))); >extern void __openat64_too_many_args (void) __attribute__((__error__ ("openat64 can be called either with 3 or 4 arguments, not more"))); > >extern void __openat64_missing_mode (void) __attribute__((__error__ ("openat64 with O_CREAT in third argument needs 4 arguments"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >openat64 (int __fd, __const char *__path, int __oflag, ...) >{ > if (__builtin_va_arg_pack_len () > 1) > __openat64_too_many_args (); > > if (__builtin_constant_p (__oflag)) > { > if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) > { > __openat64_missing_mode (); > return __openat64_2 (__fd, __path, __oflag); > } > return __openat64_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); > } > > if (__builtin_va_arg_pack_len () < 1) > return __openat64_2 (__fd, __path, __oflag); > > return __openat64_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); >} ># 218 "/usr/include/fcntl.h" 2 3 4 > > > ># 336 "./../include/my_global.h" 2 > > ># 1 "/usr/include/sys/timeb.h" 1 3 4 ># 28 "/usr/include/sys/timeb.h" 3 4 > > > > >struct timeb > { > time_t time; > unsigned short int millitm; > short int timezone; > short int dstflag; > }; > > > >extern int ftime (struct timeb *__timebuf); > > ># 339 "./../include/my_global.h" 2 > > ># 1 "/usr/include/sys/time.h" 1 3 4 ># 29 "/usr/include/sys/time.h" 3 4 ># 1 "/usr/include/bits/time.h" 1 3 4 ># 30 "/usr/include/sys/time.h" 2 3 4 ># 39 "/usr/include/sys/time.h" 3 4 > ># 57 "/usr/include/sys/time.h" 3 4 >struct timezone > { > int tz_minuteswest; > int tz_dsttime; > }; > >typedef struct timezone *__restrict __timezone_ptr_t; ># 73 "/usr/include/sys/time.h" 3 4 >extern int gettimeofday (struct timeval *__restrict __tv, > __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > >extern int settimeofday (__const struct timeval *__tv, > __const struct timezone *__tz) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int adjtime (__const struct timeval *__delta, > struct timeval *__olddelta) __attribute__ ((__nothrow__)); > > > > >enum __itimer_which > { > > ITIMER_REAL = 0, > > > ITIMER_VIRTUAL = 1, > > > > ITIMER_PROF = 2 > > }; > > > >struct itimerval > { > > struct timeval it_interval; > > struct timeval it_value; > }; > > > > >typedef enum __itimer_which __itimer_which_t; > > > > > > >extern int getitimer (__itimer_which_t __which, > struct itimerval *__value) __attribute__ ((__nothrow__)); > > > > >extern int setitimer (__itimer_which_t __which, > __const struct itimerval *__restrict __new, > struct itimerval *__restrict __old) __attribute__ ((__nothrow__)); > > > > >extern int utimes (__const char *__file, __const struct timeval __tvp[2]) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int lutimes (__const char *__file, __const struct timeval __tvp[2]) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)); > > > > > > >extern int futimesat (int __fd, __const char *__file, > __const struct timeval __tvp[2]) __attribute__ ((__nothrow__)); ># 191 "/usr/include/sys/time.h" 3 4 > ># 342 "./../include/my_global.h" 2 ># 351 "./../include/my_global.h" ># 1 "/usr/include/unistd.h" 1 3 4 ># 28 "/usr/include/unistd.h" 3 4 > ># 175 "/usr/include/unistd.h" 3 4 ># 1 "/usr/include/bits/posix_opt.h" 1 3 4 ># 176 "/usr/include/unistd.h" 2 3 4 > > > ># 1 "/usr/include/bits/environments.h" 1 3 4 ># 23 "/usr/include/bits/environments.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 24 "/usr/include/bits/environments.h" 2 3 4 ># 180 "/usr/include/unistd.h" 2 3 4 ># 199 "/usr/include/unistd.h" 3 4 ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4 ># 200 "/usr/include/unistd.h" 2 3 4 ># 240 "/usr/include/unistd.h" 3 4 >typedef __intptr_t intptr_t; > > > > > > >typedef __socklen_t socklen_t; ># 260 "/usr/include/unistd.h" 3 4 >extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > >extern int euidaccess (__const char *__name, int __type) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int eaccess (__const char *__name, int __type) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern int faccessat (int __fd, __const char *__file, int __type, int __flag) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); ># 303 "/usr/include/unistd.h" 3 4 >extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__)); ># 314 "/usr/include/unistd.h" 3 4 >extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) > __attribute__ ((__nothrow__)); > > > > > > >extern int close (int __fd); > > > > > > >extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __attribute__ ((__warn_unused_result__)); > > > > > >extern ssize_t write (int __fd, __const void *__buf, size_t __n) __attribute__ ((__warn_unused_result__)); ># 345 "/usr/include/unistd.h" 3 4 >extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, > __off_t __offset) __attribute__ ((__warn_unused_result__)); > > > > > > >extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n, > __off_t __offset) __attribute__ ((__warn_unused_result__)); ># 373 "/usr/include/unistd.h" 3 4 >extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, > __off64_t __offset) __attribute__ ((__warn_unused_result__)); > > >extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, > __off64_t __offset) __attribute__ ((__warn_unused_result__)); > > > > > > > >extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > >extern int pipe2 (int __pipedes[2], int __flags) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); ># 401 "/usr/include/unistd.h" 3 4 >extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__)); ># 413 "/usr/include/unistd.h" 3 4 >extern unsigned int sleep (unsigned int __seconds); > > > > > > >extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) > __attribute__ ((__nothrow__)); > > > > > > >extern int usleep (__useconds_t __useconds); ># 437 "/usr/include/unistd.h" 3 4 >extern int pause (void); > > > >extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > >extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > >extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > > >extern int fchownat (int __fd, __const char *__file, __uid_t __owner, > __gid_t __group, int __flag) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); > > > >extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > >extern int fchdir (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); ># 479 "/usr/include/unistd.h" 3 4 >extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > > >extern char *get_current_dir_name (void) __attribute__ ((__nothrow__)); > > > > > > >extern char *getwd (char *__buf) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)); > > > > >extern int dup (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > >extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__)); > > > > >extern int dup3 (int __fd, int __fd2, int __flags) __attribute__ ((__nothrow__)); > > > >extern char **__environ; > >extern char **environ; > > > > > >extern int execve (__const char *__path, char *__const __argv[], > char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > >extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) > __attribute__ ((__nothrow__)); > > > > >extern int execv (__const char *__path, char *__const __argv[]) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int execle (__const char *__path, __const char *__arg, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int execl (__const char *__path, __const char *__arg, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int execvp (__const char *__file, char *__const __argv[]) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > >extern int execlp (__const char *__file, __const char *__arg, ...) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > >extern int nice (int __inc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > >extern void _exit (int __status) __attribute__ ((__noreturn__)); > > > > > ># 1 "/usr/include/bits/confname.h" 1 3 4 ># 26 "/usr/include/bits/confname.h" 3 4 >enum > { > _PC_LINK_MAX, > > _PC_MAX_CANON, > > _PC_MAX_INPUT, > > _PC_NAME_MAX, > > _PC_PATH_MAX, > > _PC_PIPE_BUF, > > _PC_CHOWN_RESTRICTED, > > _PC_NO_TRUNC, > > _PC_VDISABLE, > > _PC_SYNC_IO, > > _PC_ASYNC_IO, > > _PC_PRIO_IO, > > _PC_SOCK_MAXBUF, > > _PC_FILESIZEBITS, > > _PC_REC_INCR_XFER_SIZE, > > _PC_REC_MAX_XFER_SIZE, > > _PC_REC_MIN_XFER_SIZE, > > _PC_REC_XFER_ALIGN, > > _PC_ALLOC_SIZE_MIN, > > _PC_SYMLINK_MAX, > > _PC_2_SYMLINKS > > }; > > >enum > { > _SC_ARG_MAX, > > _SC_CHILD_MAX, > > _SC_CLK_TCK, > > _SC_NGROUPS_MAX, > > _SC_OPEN_MAX, > > _SC_STREAM_MAX, > > _SC_TZNAME_MAX, > > _SC_JOB_CONTROL, > > _SC_SAVED_IDS, > > _SC_REALTIME_SIGNALS, > > _SC_PRIORITY_SCHEDULING, > > _SC_TIMERS, > > _SC_ASYNCHRONOUS_IO, > > _SC_PRIORITIZED_IO, > > _SC_SYNCHRONIZED_IO, > > _SC_FSYNC, > > _SC_MAPPED_FILES, > > _SC_MEMLOCK, > > _SC_MEMLOCK_RANGE, > > _SC_MEMORY_PROTECTION, > > _SC_MESSAGE_PASSING, > > _SC_SEMAPHORES, > > _SC_SHARED_MEMORY_OBJECTS, > > _SC_AIO_LISTIO_MAX, > > _SC_AIO_MAX, > > _SC_AIO_PRIO_DELTA_MAX, > > _SC_DELAYTIMER_MAX, > > _SC_MQ_OPEN_MAX, > > _SC_MQ_PRIO_MAX, > > _SC_VERSION, > > _SC_PAGESIZE, > > > _SC_RTSIG_MAX, > > _SC_SEM_NSEMS_MAX, > > _SC_SEM_VALUE_MAX, > > _SC_SIGQUEUE_MAX, > > _SC_TIMER_MAX, > > > > > _SC_BC_BASE_MAX, > > _SC_BC_DIM_MAX, > > _SC_BC_SCALE_MAX, > > _SC_BC_STRING_MAX, > > _SC_COLL_WEIGHTS_MAX, > > _SC_EQUIV_CLASS_MAX, > > _SC_EXPR_NEST_MAX, > > _SC_LINE_MAX, > > _SC_RE_DUP_MAX, > > _SC_CHARCLASS_NAME_MAX, > > > _SC_2_VERSION, > > _SC_2_C_BIND, > > _SC_2_C_DEV, > > _SC_2_FORT_DEV, > > _SC_2_FORT_RUN, > > _SC_2_SW_DEV, > > _SC_2_LOCALEDEF, > > > _SC_PII, > > _SC_PII_XTI, > > _SC_PII_SOCKET, > > _SC_PII_INTERNET, > > _SC_PII_OSI, > > _SC_POLL, > > _SC_SELECT, > > _SC_UIO_MAXIOV, > > _SC_IOV_MAX = _SC_UIO_MAXIOV, > > _SC_PII_INTERNET_STREAM, > > _SC_PII_INTERNET_DGRAM, > > _SC_PII_OSI_COTS, > > _SC_PII_OSI_CLTS, > > _SC_PII_OSI_M, > > _SC_T_IOV_MAX, > > > > _SC_THREADS, > > _SC_THREAD_SAFE_FUNCTIONS, > > _SC_GETGR_R_SIZE_MAX, > > _SC_GETPW_R_SIZE_MAX, > > _SC_LOGIN_NAME_MAX, > > _SC_TTY_NAME_MAX, > > _SC_THREAD_DESTRUCTOR_ITERATIONS, > > _SC_THREAD_KEYS_MAX, > > _SC_THREAD_STACK_MIN, > > _SC_THREAD_THREADS_MAX, > > _SC_THREAD_ATTR_STACKADDR, > > _SC_THREAD_ATTR_STACKSIZE, > > _SC_THREAD_PRIORITY_SCHEDULING, > > _SC_THREAD_PRIO_INHERIT, > > _SC_THREAD_PRIO_PROTECT, > > _SC_THREAD_PROCESS_SHARED, > > > _SC_NPROCESSORS_CONF, > > _SC_NPROCESSORS_ONLN, > > _SC_PHYS_PAGES, > > _SC_AVPHYS_PAGES, > > _SC_ATEXIT_MAX, > > _SC_PASS_MAX, > > > _SC_XOPEN_VERSION, > > _SC_XOPEN_XCU_VERSION, > > _SC_XOPEN_UNIX, > > _SC_XOPEN_CRYPT, > > _SC_XOPEN_ENH_I18N, > > _SC_XOPEN_SHM, > > > _SC_2_CHAR_TERM, > > _SC_2_C_VERSION, > > _SC_2_UPE, > > > _SC_XOPEN_XPG2, > > _SC_XOPEN_XPG3, > > _SC_XOPEN_XPG4, > > > _SC_CHAR_BIT, > > _SC_CHAR_MAX, > > _SC_CHAR_MIN, > > _SC_INT_MAX, > > _SC_INT_MIN, > > _SC_LONG_BIT, > > _SC_WORD_BIT, > > _SC_MB_LEN_MAX, > > _SC_NZERO, > > _SC_SSIZE_MAX, > > _SC_SCHAR_MAX, > > _SC_SCHAR_MIN, > > _SC_SHRT_MAX, > > _SC_SHRT_MIN, > > _SC_UCHAR_MAX, > > _SC_UINT_MAX, > > _SC_ULONG_MAX, > > _SC_USHRT_MAX, > > > _SC_NL_ARGMAX, > > _SC_NL_LANGMAX, > > _SC_NL_MSGMAX, > > _SC_NL_NMAX, > > _SC_NL_SETMAX, > > _SC_NL_TEXTMAX, > > > _SC_XBS5_ILP32_OFF32, > > _SC_XBS5_ILP32_OFFBIG, > > _SC_XBS5_LP64_OFF64, > > _SC_XBS5_LPBIG_OFFBIG, > > > _SC_XOPEN_LEGACY, > > _SC_XOPEN_REALTIME, > > _SC_XOPEN_REALTIME_THREADS, > > > _SC_ADVISORY_INFO, > > _SC_BARRIERS, > > _SC_BASE, > > _SC_C_LANG_SUPPORT, > > _SC_C_LANG_SUPPORT_R, > > _SC_CLOCK_SELECTION, > > _SC_CPUTIME, > > _SC_THREAD_CPUTIME, > > _SC_DEVICE_IO, > > _SC_DEVICE_SPECIFIC, > > _SC_DEVICE_SPECIFIC_R, > > _SC_FD_MGMT, > > _SC_FIFO, > > _SC_PIPE, > > _SC_FILE_ATTRIBUTES, > > _SC_FILE_LOCKING, > > _SC_FILE_SYSTEM, > > _SC_MONOTONIC_CLOCK, > > _SC_MULTI_PROCESS, > > _SC_SINGLE_PROCESS, > > _SC_NETWORKING, > > _SC_READER_WRITER_LOCKS, > > _SC_SPIN_LOCKS, > > _SC_REGEXP, > > _SC_REGEX_VERSION, > > _SC_SHELL, > > _SC_SIGNALS, > > _SC_SPAWN, > > _SC_SPORADIC_SERVER, > > _SC_THREAD_SPORADIC_SERVER, > > _SC_SYSTEM_DATABASE, > > _SC_SYSTEM_DATABASE_R, > > _SC_TIMEOUTS, > > _SC_TYPED_MEMORY_OBJECTS, > > _SC_USER_GROUPS, > > _SC_USER_GROUPS_R, > > _SC_2_PBS, > > _SC_2_PBS_ACCOUNTING, > > _SC_2_PBS_LOCATE, > > _SC_2_PBS_MESSAGE, > > _SC_2_PBS_TRACK, > > _SC_SYMLOOP_MAX, > > _SC_STREAMS, > > _SC_2_PBS_CHECKPOINT, > > > _SC_V6_ILP32_OFF32, > > _SC_V6_ILP32_OFFBIG, > > _SC_V6_LP64_OFF64, > > _SC_V6_LPBIG_OFFBIG, > > > _SC_HOST_NAME_MAX, > > _SC_TRACE, > > _SC_TRACE_EVENT_FILTER, > > _SC_TRACE_INHERIT, > > _SC_TRACE_LOG, > > > _SC_LEVEL1_ICACHE_SIZE, > > _SC_LEVEL1_ICACHE_ASSOC, > > _SC_LEVEL1_ICACHE_LINESIZE, > > _SC_LEVEL1_DCACHE_SIZE, > > _SC_LEVEL1_DCACHE_ASSOC, > > _SC_LEVEL1_DCACHE_LINESIZE, > > _SC_LEVEL2_CACHE_SIZE, > > _SC_LEVEL2_CACHE_ASSOC, > > _SC_LEVEL2_CACHE_LINESIZE, > > _SC_LEVEL3_CACHE_SIZE, > > _SC_LEVEL3_CACHE_ASSOC, > > _SC_LEVEL3_CACHE_LINESIZE, > > _SC_LEVEL4_CACHE_SIZE, > > _SC_LEVEL4_CACHE_ASSOC, > > _SC_LEVEL4_CACHE_LINESIZE, > > > > _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, > > _SC_RAW_SOCKETS, > > > _SC_V7_ILP32_OFF32, > > _SC_V7_ILP32_OFFBIG, > > _SC_V7_LP64_OFF64, > > _SC_V7_LPBIG_OFFBIG, > > > _SC_SS_REPL_MAX, > > > _SC_TRACE_EVENT_NAME_MAX, > > _SC_TRACE_NAME_MAX, > > _SC_TRACE_SYS_MAX, > > _SC_TRACE_USER_EVENT_MAX, > > > _SC_XOPEN_STREAMS, > > > _SC_THREAD_ROBUST_PRIO_INHERIT, > > _SC_THREAD_ROBUST_PRIO_PROTECT, > > }; > > >enum > { > _CS_PATH, > > > _CS_V6_WIDTH_RESTRICTED_ENVS, > > > > _CS_GNU_LIBC_VERSION, > > _CS_GNU_LIBPTHREAD_VERSION, > > > _CS_V5_WIDTH_RESTRICTED_ENVS, > > > > _CS_V7_WIDTH_RESTRICTED_ENVS, > > > > _CS_LFS_CFLAGS = 1000, > > _CS_LFS_LDFLAGS, > > _CS_LFS_LIBS, > > _CS_LFS_LINTFLAGS, > > _CS_LFS64_CFLAGS, > > _CS_LFS64_LDFLAGS, > > _CS_LFS64_LIBS, > > _CS_LFS64_LINTFLAGS, > > > _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, > > _CS_XBS5_ILP32_OFF32_LDFLAGS, > > _CS_XBS5_ILP32_OFF32_LIBS, > > _CS_XBS5_ILP32_OFF32_LINTFLAGS, > > _CS_XBS5_ILP32_OFFBIG_CFLAGS, > > _CS_XBS5_ILP32_OFFBIG_LDFLAGS, > > _CS_XBS5_ILP32_OFFBIG_LIBS, > > _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, > > _CS_XBS5_LP64_OFF64_CFLAGS, > > _CS_XBS5_LP64_OFF64_LDFLAGS, > > _CS_XBS5_LP64_OFF64_LIBS, > > _CS_XBS5_LP64_OFF64_LINTFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_CFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, > > _CS_XBS5_LPBIG_OFFBIG_LIBS, > > _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, > > > _CS_POSIX_V6_ILP32_OFF32_CFLAGS, > > _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, > > _CS_POSIX_V6_ILP32_OFF32_LIBS, > > _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, > > _CS_POSIX_V6_ILP32_OFFBIG_LIBS, > > _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, > > _CS_POSIX_V6_LP64_OFF64_CFLAGS, > > _CS_POSIX_V6_LP64_OFF64_LDFLAGS, > > _CS_POSIX_V6_LP64_OFF64_LIBS, > > _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, > > _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, > > > _CS_POSIX_V7_ILP32_OFF32_CFLAGS, > > _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, > > _CS_POSIX_V7_ILP32_OFF32_LIBS, > > _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, > > _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, > > _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, > > _CS_POSIX_V7_ILP32_OFFBIG_LIBS, > > _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, > > _CS_POSIX_V7_LP64_OFF64_CFLAGS, > > _CS_POSIX_V7_LP64_OFF64_LDFLAGS, > > _CS_POSIX_V7_LP64_OFF64_LIBS, > > _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, > > _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, > > _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, > > _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, > > _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS > > }; ># 569 "/usr/include/unistd.h" 2 3 4 > > >extern long int pathconf (__const char *__path, int __name) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__)); > > >extern long int sysconf (int __name) __attribute__ ((__nothrow__)); > > > >extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__)); > > > > >extern __pid_t getpid (void) __attribute__ ((__nothrow__)); > > >extern __pid_t getppid (void) __attribute__ ((__nothrow__)); > > > > >extern __pid_t getpgrp (void) __attribute__ ((__nothrow__)); ># 605 "/usr/include/unistd.h" 3 4 >extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__)); > >extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__)); > > > > > > >extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__)); ># 631 "/usr/include/unistd.h" 3 4 >extern int setpgrp (void) __attribute__ ((__nothrow__)); ># 648 "/usr/include/unistd.h" 3 4 >extern __pid_t setsid (void) __attribute__ ((__nothrow__)); > > > >extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__)); > > > >extern __uid_t getuid (void) __attribute__ ((__nothrow__)); > > >extern __uid_t geteuid (void) __attribute__ ((__nothrow__)); > > >extern __gid_t getgid (void) __attribute__ ((__nothrow__)); > > >extern __gid_t getegid (void) __attribute__ ((__nothrow__)); > > > > >extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > >extern int group_member (__gid_t __gid) __attribute__ ((__nothrow__)); > > > > > > >extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__)); > > > > >extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__)); > > > > >extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__)); > > > > > > >extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__)); > > > > >extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__)); > > > > >extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__)); > > > > > >extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid) > __attribute__ ((__nothrow__)); > > > >extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid) > __attribute__ ((__nothrow__)); > > > >extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid) > __attribute__ ((__nothrow__)); > > > >extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid) > __attribute__ ((__nothrow__)); > > > > > > >extern __pid_t fork (void) __attribute__ ((__nothrow__)); > > > > > > >extern __pid_t vfork (void) __attribute__ ((__nothrow__)); > > > > > >extern char *ttyname (int __fd) __attribute__ ((__nothrow__)); > > > >extern int ttyname_r (int __fd, char *__buf, size_t __buflen) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); > > > >extern int isatty (int __fd) __attribute__ ((__nothrow__)); > > > > > >extern int ttyslot (void) __attribute__ ((__nothrow__)); > > > > >extern int link (__const char *__from, __const char *__to) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); > > > > >extern int linkat (int __fromfd, __const char *__from, int __tofd, > __const char *__to, int __flags) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))) __attribute__ ((__warn_unused_result__)); > > > > >extern int symlink (__const char *__from, __const char *__to) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); > > > > >extern ssize_t readlink (__const char *__restrict __path, > char *__restrict __buf, size_t __len) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); > > > > >extern int symlinkat (__const char *__from, int __tofd, > __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); > > >extern ssize_t readlinkat (int __fd, __const char *__restrict __path, > char *__restrict __buf, size_t __len) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); > > > >extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int unlinkat (int __fd, __const char *__name, int __flag) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > >extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__)); > > >extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__)); > > > > > > >extern char *getlogin (void); > > > > > > > >extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))); > > > > >extern int setlogin (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 851 "/usr/include/unistd.h" 3 4 ># 1 "/usr/include/getopt.h" 1 3 4 ># 59 "/usr/include/getopt.h" 3 4 >extern char *optarg; ># 73 "/usr/include/getopt.h" 3 4 >extern int optind; > > > > >extern int opterr; > > > >extern int optopt; ># 152 "/usr/include/getopt.h" 3 4 >extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) > __attribute__ ((__nothrow__)); ># 852 "/usr/include/unistd.h" 2 3 4 > > > > > > > >extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern int sethostname (__const char *__name, size_t __len) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > >extern int sethostid (long int __id) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > > >extern int getdomainname (char *__name, size_t __len) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); >extern int setdomainname (__const char *__name, size_t __len) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > >extern int vhangup (void) __attribute__ ((__nothrow__)); > > >extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > > > > > >extern int profil (unsigned short int *__sample_buffer, size_t __size, > size_t __offset, unsigned int __scale) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int acct (__const char *__name) __attribute__ ((__nothrow__)); > > > >extern char *getusershell (void) __attribute__ ((__nothrow__)); >extern void endusershell (void) __attribute__ ((__nothrow__)); >extern void setusershell (void) __attribute__ ((__nothrow__)); > > > > > >extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > > > >extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > > >extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1))); ># 937 "/usr/include/unistd.h" 3 4 >extern int fsync (int __fd); > > > > > > >extern long int gethostid (void); > > >extern void sync (void) __attribute__ ((__nothrow__)); > > > > >extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > >extern int getdtablesize (void) __attribute__ ((__nothrow__)); > > > > >extern int truncate (__const char *__file, __off_t __length) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 974 "/usr/include/unistd.h" 3 4 >extern int truncate64 (__const char *__file, __off64_t __length) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); ># 984 "/usr/include/unistd.h" 3 4 >extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); ># 994 "/usr/include/unistd.h" 3 4 >extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); ># 1004 "/usr/include/unistd.h" 3 4 >extern int brk (void *__addr) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > > > > > >extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__)); ># 1025 "/usr/include/unistd.h" 3 4 >extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__)); ># 1079 "/usr/include/unistd.h" 3 4 >extern int fdatasync (int __fildes); > > > > > > > >extern char *crypt (__const char *__key, __const char *__salt) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern void encrypt (char *__block, int __edflag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern void swab (__const void *__restrict __from, void *__restrict __to, > ssize_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > > >extern char *ctermid (char *__s) __attribute__ ((__nothrow__)); > > > > > ># 1 "/usr/include/bits/unistd.h" 1 3 4 ># 24 "/usr/include/bits/unistd.h" 3 4 >extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes, > size_t __buflen) __attribute__ ((__warn_unused_result__)); >extern ssize_t __read_alias (int __fd, void *__buf, size_t __nbytes) __asm__ ("" "read") __attribute__ ((__warn_unused_result__)); > >extern ssize_t __read_chk_warn (int __fd, void *__buf, size_t __nbytes, size_t __buflen) __asm__ ("" "__read_chk") > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("read called with bigger length than size of " "the destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t >read (int __fd, void *__buf, size_t __nbytes) >{ > if (__builtin_object_size (__buf, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__nbytes)) > return __read_chk (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0)); > > if (__nbytes > __builtin_object_size (__buf, 0)) > return __read_chk_warn (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0)); > } > return __read_alias (__fd, __buf, __nbytes); >} > > >extern ssize_t __pread_chk (int __fd, void *__buf, size_t __nbytes, > __off_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__)); >extern ssize_t __pread64_chk (int __fd, void *__buf, size_t __nbytes, > __off64_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__)); >extern ssize_t __pread_alias (int __fd, void *__buf, size_t __nbytes, __off_t __offset) __asm__ ("" "pread") __attribute__ ((__warn_unused_result__)); > > >extern ssize_t __pread64_alias (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pread64") __attribute__ ((__warn_unused_result__)); > > >extern ssize_t __pread_chk_warn (int __fd, void *__buf, size_t __nbytes, __off_t __offset, size_t __bufsize) __asm__ ("" "__pread_chk") > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread called with bigger length than size of " "the destination buffer"))); > >extern ssize_t __pread64_chk_warn (int __fd, void *__buf, size_t __nbytes, __off64_t __offset, size_t __bufsize) __asm__ ("" "__pread64_chk") > > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread64 called with bigger length than size of " "the destination buffer"))); > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t >pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset) >{ > if (__builtin_object_size (__buf, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__nbytes)) > return __pread_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)); > > if ( __nbytes > __builtin_object_size (__buf, 0)) > return __pread_chk_warn (__fd, __buf, __nbytes, __offset, > __builtin_object_size (__buf, 0)); > } > return __pread_alias (__fd, __buf, __nbytes, __offset); >} ># 105 "/usr/include/bits/unistd.h" 3 4 >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t >pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) >{ > if (__builtin_object_size (__buf, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__nbytes)) > return __pread64_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)); > > if ( __nbytes > __builtin_object_size (__buf, 0)) > return __pread64_chk_warn (__fd, __buf, __nbytes, __offset, > __builtin_object_size (__buf, 0)); > } > > return __pread64_alias (__fd, __buf, __nbytes, __offset); >} > > > > >extern ssize_t __readlink_chk (__const char *__restrict __path, > char *__restrict __buf, size_t __len, > size_t __buflen) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); >extern ssize_t __readlink_alias (__const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlink") __attribute__ ((__nothrow__)) > > > __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); >extern ssize_t __readlink_chk_warn (__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlink_chk") __attribute__ ((__nothrow__)) > > > > __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlink called with bigger length " "than size of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) ssize_t >__attribute__ ((__nothrow__)) readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len) > >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__len)) > return __readlink_chk (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); > > if ( __len > __builtin_object_size (__buf, 2 > 1)) > return __readlink_chk_warn (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); > } > return __readlink_alias (__path, __buf, __len); >} > > > >extern ssize_t __readlinkat_chk (int __fd, __const char *__restrict __path, > char *__restrict __buf, size_t __len, > size_t __buflen) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); >extern ssize_t __readlinkat_alias (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlinkat") __attribute__ ((__nothrow__)) > > > > __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); >extern ssize_t __readlinkat_chk_warn (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlinkat_chk") __attribute__ ((__nothrow__)) > > > > __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlinkat called with bigger " "length than size of destination " "buffer"))); > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) ssize_t >__attribute__ ((__nothrow__)) readlinkat (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) > >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__len)) > return __readlinkat_chk (__fd, __path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); > > if (__len > __builtin_object_size (__buf, 2 > 1)) > return __readlinkat_chk_warn (__fd, __path, __buf, __len, > __builtin_object_size (__buf, 2 > 1)); > } > return __readlinkat_alias (__fd, __path, __buf, __len); >} > > >extern char *__getcwd_chk (char *__buf, size_t __size, size_t __buflen) > __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); >extern char *__getcwd_alias (char *__buf, size_t __size) __asm__ ("" "getcwd") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > >extern char *__getcwd_chk_warn (char *__buf, size_t __size, size_t __buflen) __asm__ ("" "__getcwd_chk") __attribute__ ((__nothrow__)) > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getcwd caller with bigger length than size of " "destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * >__attribute__ ((__nothrow__)) getcwd (char *__buf, size_t __size) >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__size)) > return __getcwd_chk (__buf, __size, __builtin_object_size (__buf, 2 > 1)); > > if (__size > __builtin_object_size (__buf, 2 > 1)) > return __getcwd_chk_warn (__buf, __size, __builtin_object_size (__buf, 2 > 1)); > } > return __getcwd_alias (__buf, __size); >} > > >extern char *__getwd_chk (char *__buf, size_t buflen) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); >extern char *__getwd_warn (char *__buf) __asm__ ("" "getwd") __attribute__ ((__nothrow__)) > __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use getcwd instead, as getwd " "doesn't specify buffer size"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)) char * >__attribute__ ((__nothrow__)) getwd (char *__buf) >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > return __getwd_chk (__buf, __builtin_object_size (__buf, 2 > 1)); > return __getwd_warn (__buf); >} > > >extern size_t __confstr_chk (int __name, char *__buf, size_t __len, > size_t __buflen) __attribute__ ((__nothrow__)); >extern size_t __confstr_alias (int __name, char *__buf, size_t __len) __asm__ ("" "confstr") __attribute__ ((__nothrow__)); > >extern size_t __confstr_chk_warn (int __name, char *__buf, size_t __len, size_t __buflen) __asm__ ("" "__confstr_chk") __attribute__ ((__nothrow__)) > > > __attribute__((__warning__ ("confstr called with bigger length than size of destination " "buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t >__attribute__ ((__nothrow__)) confstr (int __name, char *__buf, size_t __len) >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__len)) > return __confstr_chk (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1)); > > if (__builtin_object_size (__buf, 2 > 1) < __len) > return __confstr_chk_warn (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1)); > } > return __confstr_alias (__name, __buf, __len); >} > > >extern int __getgroups_chk (int __size, __gid_t __list[], size_t __listlen) > __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); >extern int __getgroups_alias (int __size, __gid_t __list[]) __asm__ ("" "getgroups") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__)); > >extern int __getgroups_chk_warn (int __size, __gid_t __list[], size_t __listlen) __asm__ ("" "__getgroups_chk") __attribute__ ((__nothrow__)) > > > __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getgroups called with bigger group count than what " "can fit into destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >__attribute__ ((__nothrow__)) getgroups (int __size, __gid_t __list[]) >{ > if (__builtin_object_size (__list, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__size) || __size < 0) > return __getgroups_chk (__size, __list, __builtin_object_size (__list, 2 > 1)); > > if (__size * sizeof (__gid_t) > __builtin_object_size (__list, 2 > 1)) > return __getgroups_chk_warn (__size, __list, __builtin_object_size (__list, 2 > 1)); > } > return __getgroups_alias (__size, __list); >} > > >extern int __ttyname_r_chk (int __fd, char *__buf, size_t __buflen, > size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); >extern int __ttyname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ttyname_r") __attribute__ ((__nothrow__)) > > __attribute__ ((__nonnull__ (2))); >extern int __ttyname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ttyname_r_chk") __attribute__ ((__nothrow__)) > > > __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ttyname_r called with bigger buflen than " "size of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >__attribute__ ((__nothrow__)) ttyname_r (int __fd, char *__buf, size_t __buflen) >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__buflen)) > return __ttyname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > > if (__buflen > __builtin_object_size (__buf, 2 > 1)) > return __ttyname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > } > return __ttyname_r_alias (__fd, __buf, __buflen); >} > > > >extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal) > __attribute__ ((__nonnull__ (1))); >extern int __getlogin_r_alias (char *__buf, size_t __buflen) __asm__ ("" "getlogin_r") __attribute__ ((__nonnull__ (1))); > >extern int __getlogin_r_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getlogin_r_chk") > > > __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("getlogin_r called with bigger buflen than " "size of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >getlogin_r (char *__buf, size_t __buflen) >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__buflen)) > return __getlogin_r_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > > if (__buflen > __builtin_object_size (__buf, 2 > 1)) > return __getlogin_r_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > } > return __getlogin_r_alias (__buf, __buflen); >} > > > > >extern int __gethostname_chk (char *__buf, size_t __buflen, size_t __nreal) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); >extern int __gethostname_alias (char *__buf, size_t __buflen) __asm__ ("" "gethostname") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > >extern int __gethostname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__gethostname_chk") __attribute__ ((__nothrow__)) > > > __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("gethostname called with bigger buflen than " "size of destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >__attribute__ ((__nothrow__)) gethostname (char *__buf, size_t __buflen) >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__buflen)) > return __gethostname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > > if (__buflen > __builtin_object_size (__buf, 2 > 1)) > return __gethostname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > } > return __gethostname_alias (__buf, __buflen); >} > > > > >extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); >extern int __getdomainname_alias (char *__buf, size_t __buflen) __asm__ ("" "getdomainname") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); > > >extern int __getdomainname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getdomainname_chk") __attribute__ ((__nothrow__)) > > > __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getdomainname called with bigger " "buflen than size of destination " "buffer"))); > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int >__attribute__ ((__nothrow__)) getdomainname (char *__buf, size_t __buflen) >{ > if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) > { > if (!__builtin_constant_p (__buflen)) > return __getdomainname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > > if (__buflen > __builtin_object_size (__buf, 2 > 1)) > return __getdomainname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); > } > return __getdomainname_alias (__buf, __buflen); >} ># 1115 "/usr/include/unistd.h" 2 3 4 > > > ># 352 "./../include/my_global.h" 2 ># 371 "./../include/my_global.h" ># 1 "/usr/include/errno.h" 1 3 4 ># 32 "/usr/include/errno.h" 3 4 > > > > ># 1 "/usr/include/bits/errno.h" 1 3 4 ># 25 "/usr/include/bits/errno.h" 3 4 ># 1 "/usr/include/linux/errno.h" 1 3 4 > > > ># 1 "/usr/include/asm/errno.h" 1 3 4 > > > ># 1 "/usr/include/asm-generic/errno.h" 1 3 4 > > > ># 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 ># 5 "/usr/include/asm-generic/errno.h" 2 3 4 ># 5 "/usr/include/asm/errno.h" 2 3 4 ># 5 "/usr/include/linux/errno.h" 2 3 4 ># 26 "/usr/include/bits/errno.h" 2 3 4 ># 43 "/usr/include/bits/errno.h" 3 4 >extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); ># 37 "/usr/include/errno.h" 2 3 4 ># 55 "/usr/include/errno.h" 3 4 >extern char *program_invocation_name, *program_invocation_short_name; > > > > ># 69 "/usr/include/errno.h" 3 4 >typedef int error_t; ># 372 "./../include/my_global.h" 2 > > ># 1 "/usr/include/crypt.h" 1 3 4 ># 30 "/usr/include/crypt.h" 3 4 > > > >extern char *crypt (__const char *__key, __const char *__salt) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern void encrypt (char *__block, int __edflag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > >struct crypt_data > { > char keysched[16 * 8]; > char sb0[32768]; > char sb1[32768]; > char sb2[32768]; > char sb3[32768]; > > char crypt_3_buf[14]; > char current_salt[2]; > long int current_saltbits; > int direction, initialized; > }; > >extern char *crypt_r (__const char *__key, __const char *__salt, > struct crypt_data * __restrict __data) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern void setkey_r (__const char *__key, > struct crypt_data * __restrict __data) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern void encrypt_r (char *__block, int __edflag, > struct crypt_data * __restrict __data) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))); > > > ># 375 "./../include/my_global.h" 2 > > > > > > > ># 1 "/usr/include/assert.h" 1 3 4 ># 66 "/usr/include/assert.h" 3 4 > > > >extern void __assert_fail (__const char *__assertion, __const char *__file, > unsigned int __line, __const char *__function) > __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > >extern void __assert_perror_fail (int __errnum, __const char *__file, > unsigned int __line, > __const char *__function) > __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > > > >extern void __assert (const char *__assertion, const char *__file, int __line) > __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > > ># 383 "./../include/my_global.h" 2 ># 508 "./../include/my_global.h" ># 1 "./../include/my_attribute.h" 1 ># 509 "./../include/my_global.h" 2 ># 544 "./../include/my_global.h" ># 1 "./../include/my_dbug.h" 1 ># 545 "./../include/my_global.h" 2 > > > > > > > >typedef int File; > >typedef int my_socket; > > > > > >typedef void (*sig_return)(); > > >typedef char pchar; >typedef char puchar; >typedef char pbool; >typedef short pshort; >typedef float pfloat; > > > > > > > > >typedef int (*qsort_cmp)(const void *,const void *); >typedef int (*qsort_cmp2)(void*, const void *,const void *); > ># 590 "./../include/my_global.h" ># 1 "/usr/include/sys/socket.h" 1 3 4 ># 26 "/usr/include/sys/socket.h" 3 4 > > ># 1 "/usr/include/sys/uio.h" 1 3 4 ># 26 "/usr/include/sys/uio.h" 3 4 > > > ># 1 "/usr/include/bits/uio.h" 1 3 4 ># 30 "/usr/include/sys/uio.h" 2 3 4 ># 40 "/usr/include/sys/uio.h" 3 4 >extern ssize_t readv (int __fd, __const struct iovec *__iovec, int __count) > __attribute__ ((__warn_unused_result__)); ># 51 "/usr/include/sys/uio.h" 3 4 >extern ssize_t writev (int __fd, __const struct iovec *__iovec, int __count) > __attribute__ ((__warn_unused_result__)); ># 66 "/usr/include/sys/uio.h" 3 4 >extern ssize_t preadv (int __fd, __const struct iovec *__iovec, int __count, > __off_t __offset) __attribute__ ((__warn_unused_result__)); ># 78 "/usr/include/sys/uio.h" 3 4 >extern ssize_t pwritev (int __fd, __const struct iovec *__iovec, int __count, > __off_t __offset) __attribute__ ((__warn_unused_result__)); ># 104 "/usr/include/sys/uio.h" 3 4 >extern ssize_t preadv64 (int __fd, __const struct iovec *__iovec, int __count, > __off64_t __offset) __attribute__ ((__warn_unused_result__)); ># 116 "/usr/include/sys/uio.h" 3 4 >extern ssize_t pwritev64 (int __fd, __const struct iovec *__iovec, int __count, > __off64_t __offset) __attribute__ ((__warn_unused_result__)); > > > > ># 29 "/usr/include/sys/socket.h" 2 3 4 > ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4 ># 31 "/usr/include/sys/socket.h" 2 3 4 > > ># 1 "/usr/include/bits/sigset.h" 1 3 4 ># 34 "/usr/include/sys/socket.h" 2 3 4 > > > > > > ># 1 "/usr/include/bits/socket.h" 1 3 4 ># 29 "/usr/include/bits/socket.h" 3 4 ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4 ># 30 "/usr/include/bits/socket.h" 2 3 4 ># 40 "/usr/include/bits/socket.h" 3 4 >enum __socket_type >{ > SOCK_STREAM = 1, > > > SOCK_DGRAM = 2, > > > SOCK_RAW = 3, > > SOCK_RDM = 4, > > SOCK_SEQPACKET = 5, > > > SOCK_DCCP = 6, > > SOCK_PACKET = 10, > > > > > > > > SOCK_CLOEXEC = 02000000, > > > SOCK_NONBLOCK = 04000 > > >}; ># 169 "/usr/include/bits/socket.h" 3 4 ># 1 "/usr/include/bits/sockaddr.h" 1 3 4 ># 29 "/usr/include/bits/sockaddr.h" 3 4 >typedef unsigned short int sa_family_t; ># 170 "/usr/include/bits/socket.h" 2 3 4 > > >struct sockaddr > { > sa_family_t sa_family; > char sa_data[14]; > }; ># 185 "/usr/include/bits/socket.h" 3 4 >struct sockaddr_storage > { > sa_family_t ss_family; > unsigned long int __ss_align; > char __ss_padding[(128 - (2 * sizeof (unsigned long int)))]; > }; > > > >enum > { > MSG_OOB = 0x01, > > MSG_PEEK = 0x02, > > MSG_DONTROUTE = 0x04, > > > > MSG_TRYHARD = MSG_DONTROUTE, > > > MSG_CTRUNC = 0x08, > > MSG_PROXY = 0x10, > > MSG_TRUNC = 0x20, > > MSG_DONTWAIT = 0x40, > > MSG_EOR = 0x80, > > MSG_WAITALL = 0x100, > > MSG_FIN = 0x200, > > MSG_SYN = 0x400, > > MSG_CONFIRM = 0x800, > > MSG_RST = 0x1000, > > MSG_ERRQUEUE = 0x2000, > > MSG_NOSIGNAL = 0x4000, > > MSG_MORE = 0x8000, > > > MSG_CMSG_CLOEXEC = 0x40000000 > > > > }; > > > > >struct msghdr > { > void *msg_name; > socklen_t msg_namelen; > > struct iovec *msg_iov; > size_t msg_iovlen; > > void *msg_control; > size_t msg_controllen; > > > > > int msg_flags; > }; > > >struct cmsghdr > { > size_t cmsg_len; > > > > > int cmsg_level; > int cmsg_type; > > __extension__ unsigned char __cmsg_data []; > > }; ># 291 "/usr/include/bits/socket.h" 3 4 >extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr, > struct cmsghdr *__cmsg) __attribute__ ((__nothrow__)); > > > > >extern __inline struct cmsghdr * >__attribute__ ((__nothrow__)) __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg) >{ > if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr)) > > return 0; > > __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg > + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))); > if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control > + __mhdr->msg_controllen) > || ((unsigned char *) __cmsg + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)) > > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen))) > > return 0; > return __cmsg; >} > > > > >enum > { > SCM_RIGHTS = 0x01 > > > , SCM_CREDENTIALS = 0x02 > > > }; > > > >struct ucred >{ > pid_t pid; > uid_t uid; > gid_t gid; >}; ># 364 "/usr/include/bits/socket.h" 3 4 ># 1 "/usr/include/asm/socket.h" 1 3 4 ># 11 "/usr/include/asm/socket.h" 3 4 ># 1 "/usr/include/asm/sockios.h" 1 3 4 ># 12 "/usr/include/asm/socket.h" 2 3 4 ># 365 "/usr/include/bits/socket.h" 2 3 4 ># 398 "/usr/include/bits/socket.h" 3 4 >struct linger > { > int l_onoff; > int l_linger; > }; ># 41 "/usr/include/sys/socket.h" 2 3 4 > > > > >struct osockaddr > { > unsigned short int sa_family; > unsigned char sa_data[14]; > }; > > > > >enum >{ > SHUT_RD = 0, > > SHUT_WR, > > SHUT_RDWR > >}; ># 92 "/usr/include/sys/socket.h" 3 4 >typedef union { struct sockaddr *__restrict __sockaddr__; struct sockaddr_at *__restrict __sockaddr_at__; struct sockaddr_ax25 *__restrict __sockaddr_ax25__; struct sockaddr_dl *__restrict __sockaddr_dl__; struct sockaddr_eon *__restrict __sockaddr_eon__; struct sockaddr_in *__restrict __sockaddr_in__; struct sockaddr_in6 *__restrict __sockaddr_in6__; struct sockaddr_inarp *__restrict __sockaddr_inarp__; struct sockaddr_ipx *__restrict __sockaddr_ipx__; struct sockaddr_iso *__restrict __sockaddr_iso__; struct sockaddr_ns *__restrict __sockaddr_ns__; struct sockaddr_un *__restrict __sockaddr_un__; struct sockaddr_x25 *__restrict __sockaddr_x25__; > } __SOCKADDR_ARG __attribute__ ((__transparent_union__)); > > >typedef union { __const struct sockaddr *__restrict __sockaddr__; __const struct sockaddr_at *__restrict __sockaddr_at__; __const struct sockaddr_ax25 *__restrict __sockaddr_ax25__; __const struct sockaddr_dl *__restrict __sockaddr_dl__; __const struct sockaddr_eon *__restrict __sockaddr_eon__; __const struct sockaddr_in *__restrict __sockaddr_in__; __const struct sockaddr_in6 *__restrict __sockaddr_in6__; __const struct sockaddr_inarp *__restrict __sockaddr_inarp__; __const struct sockaddr_ipx *__restrict __sockaddr_ipx__; __const struct sockaddr_iso *__restrict __sockaddr_iso__; __const struct sockaddr_ns *__restrict __sockaddr_ns__; __const struct sockaddr_un *__restrict __sockaddr_un__; __const struct sockaddr_x25 *__restrict __sockaddr_x25__; > } __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__)); > > > > > > > >extern int socket (int __domain, int __type, int __protocol) __attribute__ ((__nothrow__)); > > > > > >extern int socketpair (int __domain, int __type, int __protocol, > int __fds[2]) __attribute__ ((__nothrow__)); > > >extern int bind (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len) > __attribute__ ((__nothrow__)); > > >extern int getsockname (int __fd, __SOCKADDR_ARG __addr, > socklen_t *__restrict __len) __attribute__ ((__nothrow__)); ># 129 "/usr/include/sys/socket.h" 3 4 >extern int connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len); > > > >extern int getpeername (int __fd, __SOCKADDR_ARG __addr, > socklen_t *__restrict __len) __attribute__ ((__nothrow__)); > > > > > > >extern ssize_t send (int __fd, __const void *__buf, size_t __n, int __flags); > > > > > > >extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags); > > > > > > >extern ssize_t sendto (int __fd, __const void *__buf, size_t __n, > int __flags, __CONST_SOCKADDR_ARG __addr, > socklen_t __addr_len); ># 166 "/usr/include/sys/socket.h" 3 4 >extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n, > int __flags, __SOCKADDR_ARG __addr, > socklen_t *__restrict __addr_len); > > > > > > > >extern ssize_t sendmsg (int __fd, __const struct msghdr *__message, > int __flags); > > > > > > >extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags); > > > > > >extern int getsockopt (int __fd, int __level, int __optname, > void *__restrict __optval, > socklen_t *__restrict __optlen) __attribute__ ((__nothrow__)); > > > > >extern int setsockopt (int __fd, int __level, int __optname, > __const void *__optval, socklen_t __optlen) __attribute__ ((__nothrow__)); > > > > > >extern int listen (int __fd, int __n) __attribute__ ((__nothrow__)); ># 214 "/usr/include/sys/socket.h" 3 4 >extern int accept (int __fd, __SOCKADDR_ARG __addr, > socklen_t *__restrict __addr_len); > > > > > > >extern int accept4 (int __fd, __SOCKADDR_ARG __addr, > socklen_t *__restrict __addr_len, int __flags); ># 232 "/usr/include/sys/socket.h" 3 4 >extern int shutdown (int __fd, int __how) __attribute__ ((__nothrow__)); > > > > >extern int sockatmark (int __fd) __attribute__ ((__nothrow__)); > > > > > > > >extern int isfdtype (int __fd, int __fdtype) __attribute__ ((__nothrow__)); > > > > > ># 1 "/usr/include/bits/socket2.h" 1 3 4 ># 24 "/usr/include/bits/socket2.h" 3 4 >extern ssize_t __recv_chk (int __fd, void *__buf, size_t __n, size_t __buflen, > int __flags); >extern ssize_t __recv_alias (int __fd, void *__buf, size_t __n, int __flags) __asm__ ("" "recv"); > >extern ssize_t __recv_chk_warn (int __fd, void *__buf, size_t __n, size_t __buflen, int __flags) __asm__ ("" "__recv_chk") > > > __attribute__((__warning__ ("recv called with bigger length than size of destination " "buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) ssize_t >recv (int __fd, void *__buf, size_t __n, int __flags) >{ > if (__builtin_object_size (__buf, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__n)) > return __recv_chk (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags); > > if (__n > __builtin_object_size (__buf, 0)) > return __recv_chk_warn (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags); > } > return __recv_alias (__fd, __buf, __n, __flags); >} > >extern ssize_t __recvfrom_chk (int __fd, void *__restrict __buf, size_t __n, > size_t __buflen, int __flags, > __SOCKADDR_ARG __addr, > socklen_t *__restrict __addr_len); >extern ssize_t __recvfrom_alias (int __fd, void *__restrict __buf, size_t __n, int __flags, __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len) __asm__ ("" "recvfrom"); > > > >extern ssize_t __recvfrom_chk_warn (int __fd, void *__restrict __buf, size_t __n, size_t __buflen, int __flags, __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len) __asm__ ("" "__recvfrom_chk") > > > > > __attribute__((__warning__ ("recvfrom called with bigger length than size of " "destination buffer"))); > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) ssize_t >recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags, > __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len) >{ > if (__builtin_object_size (__buf, 0) != (size_t) -1) > { > if (!__builtin_constant_p (__n)) > return __recvfrom_chk (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags, > __addr, __addr_len); > if (__n > __builtin_object_size (__buf, 0)) > return __recvfrom_chk_warn (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags, > __addr, __addr_len); > } > return __recvfrom_alias (__fd, __buf, __n, __flags, __addr, __addr_len); >} ># 252 "/usr/include/sys/socket.h" 2 3 4 > > > ># 591 "./../include/my_global.h" 2 > >typedef socklen_t size_socket; ># 834 "./../include/my_global.h" >typedef long long my_ptrdiff_t; ># 882 "./../include/my_global.h" >typedef char *gptr; > > >typedef signed char int8; >typedef short int16; > > >typedef unsigned char uchar; > >typedef unsigned char uint8; >typedef unsigned short uint16; > > > >typedef int int32; > >typedef unsigned int uint32; ># 918 "./../include/my_global.h" >typedef unsigned long long int ulonglong; >typedef long long int longlong; ># 931 "./../include/my_global.h" >typedef unsigned long long my_ulonglong; ># 951 "./../include/my_global.h" >typedef ulonglong my_off_t; > > > > > >typedef off_t os_off_t; ># 991 "./../include/my_global.h" >typedef uint8 int7; >typedef short int15; >typedef char *my_string; >typedef unsigned long size_s; >typedef int myf; > >typedef char byte; > >typedef char my_bool; > >typedef char bool; ># 34 "./include/univ.i" 2 ># 1 "./../include/my_pthread.h" 1 ># 21 "./../include/my_pthread.h" ># 1 "/usr/include/errno.h" 1 3 4 ># 22 "./../include/my_pthread.h" 2 ># 288 "./../include/my_pthread.h" >extern int my_pthread_getprio(pthread_t thread_id); > > > > > > >typedef void *(* pthread_handler)(void *); ># 382 "./../include/my_pthread.h" >extern void my_pthread_setprio(pthread_t thread_id,int prior); > > > > > > > >extern void my_pthread_attr_setprio(pthread_attr_t *attr, int priority); ># 549 "./../include/my_pthread.h" >typedef struct st_safe_mutex_t >{ > pthread_mutex_t global,mutex; > const char *file; > uint line,count; > pthread_t thread; > > > >} safe_mutex_t; ># 576 "./../include/my_pthread.h" >int safe_mutex_init(safe_mutex_t *mp, const pthread_mutexattr_t *attr, > const char *file, uint line); >int safe_mutex_lock(safe_mutex_t *mp, my_bool try_lock, const char *file, uint line); >int safe_mutex_unlock(safe_mutex_t *mp,const char *file, uint line); >int safe_mutex_destroy(safe_mutex_t *mp,const char *file, uint line); >int safe_cond_wait(pthread_cond_t *cond, safe_mutex_t *mp,const char *file, > uint line); >int safe_cond_timedwait(pthread_cond_t *cond, safe_mutex_t *mp, > struct timespec *abstime, const char *file, uint line); >void safe_mutex_global_init(void); >void safe_mutex_end(FILE *file); ># 690 "./../include/my_pthread.h" >extern pthread_mutexattr_t my_fast_mutexattr; > > > > > >extern pthread_mutexattr_t my_errorcheck_mutexattr; ># 707 "./../include/my_pthread.h" >extern my_bool my_thread_global_init(void); >extern void my_thread_global_end(void); >extern my_bool my_thread_init(void); >extern void my_thread_end(void); >extern const char *my_thread_name(void); >extern long my_thread_id(void); >extern int pthread_no_free(void *); >extern int pthread_dummy(int); ># 731 "./../include/my_pthread.h" >struct st_my_thread_var >{ > int thr_errno; > pthread_cond_t suspend; > pthread_mutex_t mutex; > pthread_mutex_t * volatile current_mutex; > pthread_cond_t * volatile current_cond; > pthread_t pthread_self; > long id; > int cmp_length; > int volatile abort; > my_bool init; > struct st_my_thread_var *next,**prev; > void *opt_info; > > > > >}; > >extern struct st_my_thread_var *_my_thread_var(void) __attribute__ ((const)); >extern uint my_thread_end_wait_time; ># 766 "./../include/my_pthread.h" >extern uint thd_lib_detected; ># 35 "./include/univ.i" 2 ># 44 "./include/univ.i" ># 1 "./include/../ib_config.h" 1 ># 45 "./include/univ.i" 2 ># 187 "./include/univ.i" >typedef unsigned long int ulint; > >typedef long int lint; > > > > > >typedef longlong ib_longlong; > > >typedef unsigned long long int ullint; ># 207 "./include/univ.i" >typedef double utfloat; ># 272 "./include/univ.i" ># 1 "./include/ut0dbg.h" 1 ># 12 "./include/ut0dbg.h" ># 1 "./include/univ.i" 1 ># 13 "./include/ut0dbg.h" 2 > ># 1 "./include/os0thread.h" 1 ># 33 "./include/os0thread.h" >typedef pthread_t os_thread_t; >typedef os_thread_t os_thread_id_t; > > > > > >typedef void* (*os_posix_f_t) (void*); > > > > >ulint >os_thread_eq( > > > os_thread_id_t a, > os_thread_id_t b); > > > > >ulint >os_thread_pf( > > > os_thread_id_t a); > > > > > > > >os_thread_t >os_thread_create( > > > > os_posix_f_t start_f, > > > > > void* arg, > > os_thread_id_t* thread_id); > >int >os_thread_join( > > os_thread_id_t thread_id); > > > >void >os_thread_exit( > > void* exit_value); > > > > >os_thread_id_t >os_thread_get_curr_id(void); > > > > >os_thread_t >os_thread_get_curr(void); > > > > >void >os_thread_yield(void); > > > > >void >os_thread_sleep( > > ulint tm); > > > >ulint >os_thread_get_priority( > > > os_thread_t handle); > > > >void >os_thread_set_priority( > > os_thread_t handle, > ulint pri); > > > >ulint >os_thread_get_last_error(void); > > > ># 1 "./include/os0thread.ic" 1 ># 143 "./include/os0thread.h" 2 ># 15 "./include/ut0dbg.h" 2 ># 27 "./include/ut0dbg.h" >void >ut_dbg_assertion_failed( > > const char* expr, > const char* file, > ulint line); ># 46 "./include/ut0dbg.h" >extern ulint ut_dbg_stop_threads; > > >extern ulint* ut_dbg_null_ptr; > > > > >void >ut_dbg_stop_thread( > > const char* file, > ulint line); ># 273 "./include/univ.i" 2 ># 1 "./include/ut0ut.h" 1 ># 15 "./include/ut0ut.h" ># 1 "/usr/include/ctype.h" 1 3 4 ># 30 "/usr/include/ctype.h" 3 4 > ># 48 "/usr/include/ctype.h" 3 4 >enum >{ > _ISupper = (1 << (0)), > _ISlower = (1 << (1)), > _ISalpha = (1 << (2)), > _ISdigit = (1 << (3)), > _ISxdigit = (1 << (4)), > _ISspace = (1 << (5)), > _ISprint = (1 << (6)), > _ISgraph = (1 << (7)), > _ISblank = (1 << (8)), > _IScntrl = (1 << (9)), > _ISpunct = (1 << (10)), > _ISalnum = (1 << (11)) >}; ># 81 "/usr/include/ctype.h" 3 4 >extern __const unsigned short int **__ctype_b_loc (void) > __attribute__ ((__nothrow__)) __attribute__ ((__const)); >extern __const __int32_t **__ctype_tolower_loc (void) > __attribute__ ((__nothrow__)) __attribute__ ((__const)); >extern __const __int32_t **__ctype_toupper_loc (void) > __attribute__ ((__nothrow__)) __attribute__ ((__const)); ># 96 "/usr/include/ctype.h" 3 4 > > > > > > >extern int isalnum (int) __attribute__ ((__nothrow__)); >extern int isalpha (int) __attribute__ ((__nothrow__)); >extern int iscntrl (int) __attribute__ ((__nothrow__)); >extern int isdigit (int) __attribute__ ((__nothrow__)); >extern int islower (int) __attribute__ ((__nothrow__)); >extern int isgraph (int) __attribute__ ((__nothrow__)); >extern int isprint (int) __attribute__ ((__nothrow__)); >extern int ispunct (int) __attribute__ ((__nothrow__)); >extern int isspace (int) __attribute__ ((__nothrow__)); >extern int isupper (int) __attribute__ ((__nothrow__)); >extern int isxdigit (int) __attribute__ ((__nothrow__)); > > > >extern int tolower (int __c) __attribute__ ((__nothrow__)); > > >extern int toupper (int __c) __attribute__ ((__nothrow__)); > > > > > > > > >extern int isblank (int) __attribute__ ((__nothrow__)); > > > > > > >extern int isctype (int __c, int __mask) __attribute__ ((__nothrow__)); > > > > > > >extern int isascii (int __c) __attribute__ ((__nothrow__)); > > > >extern int toascii (int __c) __attribute__ ((__nothrow__)); > > > >extern int _toupper (int) __attribute__ ((__nothrow__)); >extern int _tolower (int) __attribute__ ((__nothrow__)); ># 190 "/usr/include/ctype.h" 3 4 >extern __inline int >__attribute__ ((__nothrow__)) tolower (int __c) >{ > return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c; >} > >extern __inline int >__attribute__ ((__nothrow__)) toupper (int __c) >{ > return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c; >} ># 247 "/usr/include/ctype.h" 3 4 >extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__)); >extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__)); > >extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__)); > > > >extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__)); >extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__)); > > >extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__)); >extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__)); ># 323 "/usr/include/ctype.h" 3 4 > ># 16 "./include/ut0ut.h" 2 > > >typedef time_t ib_time_t; > > > > > > >ulint >ut_get_high32( > > > ulint a); > > >static inline >ulint >ut_min( > > > ulint n1, > ulint n2); > > >static inline >ulint >ut_max( > > > ulint n1, > ulint n2); > > >static inline >void >ut_pair_min( > > ulint* a, > ulint* b, > ulint a1, > ulint b1, > ulint a2, > ulint b2); > > >static inline >int >ut_ulint_cmp( > > > ulint a, > ulint b); > > >static inline >int >ut_pair_cmp( > > > > ulint a1, > ulint a2, > ulint b1, > ulint b2); > > >static inline >ulint >ut_2pow_remainder( > > ulint n, > ulint m); > > >static inline >ulint >ut_2pow_round( > > > ulint n, > ulint m); > > > >static inline >ulint >ut_2_log( > > > ulint n); > > >static inline >ulint >ut_2_exp( > > > ulint n); > > > >ulint >ut_2_power_up( > > > ulint n); > > > >void >ut_ulint_sort(ulint* arr, ulint* aux_arr, ulint low, ulint high); > > > > >ulint >ut_clock(void); > > > > >ib_time_t >ut_time(void); > > > > > > > >int >ut_usectime( > > > ulint* sec, > ulint* ms); > > > >double >ut_difftime( > > > ib_time_t time2, > ib_time_t time1); > > > >void >ut_print_timestamp( > > FILE* file); > > > >void >ut_sprintf_timestamp( > > char* buf); > > > > >void >ut_sprintf_timestamp_without_extra_chars( > > char* buf); > > > >void >ut_get_year_month_day( > > ulint* year, > ulint* month, > ulint* day); > > > > >ulint >ut_delay( > > > ulint delay); > > > >void >ut_print_buf( > > FILE* file, > const unsigned char* buf, > ulint len); > > > > >void >ut_print_filename( > > FILE* f, > const char* name); > > > > >struct trx_struct; > >void >ut_print_name( > > FILE* f, > struct trx_struct*trx, > const char* name); > > > > >void >ut_print_namel( > > FILE* f, > struct trx_struct*trx, > const char* name, > ulint namelen); > > > > >void >ut_copy_file( > > FILE* dest, > FILE* src); > > ># 1 "./include/ut0ut.ic" 1 ># 11 "./include/ut0ut.ic" >static inline >ulint >ut_min( > > > ulint n1, > ulint n2) >{ > return((n1 <= n2) ? n1 : n2); >} > > > >static inline >ulint >ut_max( > > > ulint n1, > ulint n2) >{ > return((n1 <= n2) ? n2 : n1); >} > > > >static inline >void >ut_pair_min( > > ulint* a, > ulint* b, > ulint a1, > ulint b1, > ulint a2, > ulint b2) >{ > if (a1 == a2) { > *a = a1; > *b = ut_min(b1, b2); > } else if (a1 < a2) { > *a = a1; > *b = b1; > } else { > *a = a2; > *b = b2; > } >} > > > >static inline >int >ut_ulint_cmp( > > > ulint a, > ulint b) >{ > if (a < b) { > return(-1); > } else if (a == b) { > return(0); > } else { > return(1); > } >} > > > >static inline >int >ut_pair_cmp( > > > ulint a1, > ulint a2, > ulint b1, > ulint b2) >{ > if (a1 > b1) { > return(1); > } else if (a1 < b1) { > return(-1); > } else if (a2 > b2) { > return(1); > } else if (a2 < b2) { > return(-1); > } else { > return(0); > } >} > > > >static inline >ulint >ut_2pow_remainder( > > ulint n, > ulint m) >{ > ; > > return(n & (m - 1)); >} > > > >static inline >ulint >ut_2pow_round( > > > ulint n, > ulint m) >{ > ; > > return(n & ~(m - 1)); >} > > > > >static inline >ulint >ut_2_log( > > > ulint n) >{ > ulint res; > > res = 0; > > ; > > n = n - 1; > > for (;;) { > n = n / 2; > > if (n == 0) { > break; > } > > res++; > } > > return(res + 1); >} > > > >static inline >ulint >ut_2_exp( > > > ulint n) >{ > return((ulint) 1 << n); >} ># 255 "./include/ut0ut.h" 2 ># 274 "./include/univ.i" 2 ># 1 "./include/db0err.h" 1 ># 275 "./include/univ.i" 2 ># 27 "./include/buf0buf.h" 2 ># 1 "./include/fil0fil.h" 1 ># 13 "./include/fil0fil.h" ># 1 "./include/sync0rw.h" 1 ># 13 "./include/sync0rw.h" ># 1 "./include/ut0lst.h" 1 ># 14 "./include/sync0rw.h" 2 ># 1 "./include/sync0sync.h" 1 ># 13 "./include/sync0sync.h" ># 1 "./include/sync0types.h" 1 ># 13 "./include/sync0types.h" >typedef struct mutex_struct ib_mutex_t; ># 14 "./include/sync0sync.h" 2 > ># 1 "./include/ut0mem.h" 1 ># 13 "./include/ut0mem.h" ># 1 "/usr/include/string.h" 1 3 4 ># 28 "/usr/include/string.h" 3 4 > > > > > ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4 ># 34 "/usr/include/string.h" 2 3 4 > > > > > > > > > >extern void *memcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memmove (void *__dest, __const void *__src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, > int __c, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 94 "/usr/include/string.h" 3 4 >extern void *memchr (__const void *__s, int __c, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > ># 108 "/usr/include/string.h" 3 4 >extern void *rawmemchr (__const void *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); ># 119 "/usr/include/string.h" 3 4 >extern void *memrchr (__const void *__s, int __c, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strcat (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncat (char *__restrict __dest, __const char *__restrict __src, > size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcmp (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcoll (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern size_t strxfrm (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > ># 164 "/usr/include/string.h" 3 4 >extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, > __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); > > > > >extern char *strdup (__const char *__s) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *strndup (__const char *__string, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); ># 208 "/usr/include/string.h" 3 4 > ># 233 "/usr/include/string.h" 3 4 >extern char *strchr (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); ># 260 "/usr/include/string.h" 3 4 >extern char *strrchr (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > ># 274 "/usr/include/string.h" 3 4 >extern char *strchrnul (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern size_t strcspn (__const char *__s, __const char *__reject) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern size_t strspn (__const char *__s, __const char *__accept) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 312 "/usr/include/string.h" 3 4 >extern char *strpbrk (__const char *__s, __const char *__accept) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 340 "/usr/include/string.h" 3 4 >extern char *strstr (__const char *__haystack, __const char *__needle) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > >extern char *strtok (char *__restrict __s, __const char *__restrict __delim) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > > >extern char *__strtok_r (char *__restrict __s, > __const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); > >extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); ># 371 "/usr/include/string.h" 3 4 >extern char *strcasestr (__const char *__haystack, __const char *__needle) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > > >extern void *memmem (__const void *__haystack, size_t __haystacklen, > __const void *__needle, size_t __needlelen) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); > > > >extern void *__mempcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern void *mempcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern size_t strlen (__const char *__s) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern size_t strnlen (__const char *__string, size_t __maxlen) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strerror (int __errnum) __attribute__ ((__nothrow__)); > ># 436 "/usr/include/string.h" 3 4 >extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > > > >extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__)); > > > > > >extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern void bcopy (__const void *__src, void *__dest, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 487 "/usr/include/string.h" 3 4 >extern char *index (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); ># 515 "/usr/include/string.h" 3 4 >extern char *rindex (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > >extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > >extern int ffsl (long int __l) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > >__extension__ extern int ffsll (long long int __ll) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > >extern int strcasecmp (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int strcasecmp_l (__const char *__s1, __const char *__s2, > __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern int strncasecmp_l (__const char *__s1, __const char *__s2, > size_t __n, __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); > > > > > >extern char *strsep (char **__restrict __stringp, > __const char *__restrict __delim) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > >extern char *strsignal (int __sig) __attribute__ ((__nothrow__)); > > >extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *__stpncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern char *stpncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int strverscmp (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strfry (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 604 "/usr/include/string.h" 3 4 >extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 632 "/usr/include/string.h" 3 4 ># 1 "/usr/include/bits/string.h" 1 3 4 ># 633 "/usr/include/string.h" 2 3 4 > > ># 1 "/usr/include/bits/string2.h" 1 3 4 ># 80 "/usr/include/bits/string2.h" 3 4 >typedef struct { unsigned char __arr[2]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR2; >typedef struct { unsigned char __arr[3]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR3; >typedef struct { unsigned char __arr[4]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR4; >typedef struct { unsigned char __arr[5]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR5; >typedef struct { unsigned char __arr[6]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR6; >typedef struct { unsigned char __arr[7]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR7; >typedef struct { unsigned char __arr[8]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR8; ># 394 "/usr/include/bits/string2.h" 3 4 >extern void *__rawmemchr (const void *__s, int __c); ># 969 "/usr/include/bits/string2.h" 3 4 >extern __inline size_t __strcspn_c1 (__const char *__s, int __reject); >extern __inline size_t >__strcspn_c1 (__const char *__s, int __reject) >{ > register size_t __result = 0; > while (__s[__result] != '\0' && __s[__result] != __reject) > ++__result; > return __result; >} > >extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1, > int __reject2); >extern __inline size_t >__strcspn_c2 (__const char *__s, int __reject1, int __reject2) >{ > register size_t __result = 0; > while (__s[__result] != '\0' && __s[__result] != __reject1 > && __s[__result] != __reject2) > ++__result; > return __result; >} > >extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1, > int __reject2, int __reject3); >extern __inline size_t >__strcspn_c3 (__const char *__s, int __reject1, int __reject2, > int __reject3) >{ > register size_t __result = 0; > while (__s[__result] != '\0' && __s[__result] != __reject1 > && __s[__result] != __reject2 && __s[__result] != __reject3) > ++__result; > return __result; >} ># 1045 "/usr/include/bits/string2.h" 3 4 >extern __inline size_t __strspn_c1 (__const char *__s, int __accept); >extern __inline size_t >__strspn_c1 (__const char *__s, int __accept) >{ > register size_t __result = 0; > > while (__s[__result] == __accept) > ++__result; > return __result; >} > >extern __inline size_t __strspn_c2 (__const char *__s, int __accept1, > int __accept2); >extern __inline size_t >__strspn_c2 (__const char *__s, int __accept1, int __accept2) >{ > register size_t __result = 0; > > while (__s[__result] == __accept1 || __s[__result] == __accept2) > ++__result; > return __result; >} > >extern __inline size_t __strspn_c3 (__const char *__s, int __accept1, > int __accept2, int __accept3); >extern __inline size_t >__strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3) >{ > register size_t __result = 0; > > while (__s[__result] == __accept1 || __s[__result] == __accept2 > || __s[__result] == __accept3) > ++__result; > return __result; >} ># 1121 "/usr/include/bits/string2.h" 3 4 >extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1, > int __accept2); >extern __inline char * >__strpbrk_c2 (__const char *__s, int __accept1, int __accept2) >{ > > while (*__s != '\0' && *__s != __accept1 && *__s != __accept2) > ++__s; > return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; >} > >extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1, > int __accept2, int __accept3); >extern __inline char * >__strpbrk_c3 (__const char *__s, int __accept1, int __accept2, > int __accept3) >{ > > while (*__s != '\0' && *__s != __accept1 && *__s != __accept2 > && *__s != __accept3) > ++__s; > return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; >} ># 1172 "/usr/include/bits/string2.h" 3 4 >extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp); >extern __inline char * >__strtok_r_1c (char *__s, char __sep, char **__nextp) >{ > char *__result; > if (__s == ((void *)0)) > __s = *__nextp; > while (*__s == __sep) > ++__s; > __result = ((void *)0); > if (*__s != '\0') > { > __result = __s++; > while (*__s != '\0') > if (*__s++ == __sep) > { > __s[-1] = '\0'; > break; > } > } > *__nextp = __s; > return __result; >} ># 1204 "/usr/include/bits/string2.h" 3 4 >extern char *__strsep_g (char **__stringp, __const char *__delim); ># 1222 "/usr/include/bits/string2.h" 3 4 >extern __inline char *__strsep_1c (char **__s, char __reject); >extern __inline char * >__strsep_1c (char **__s, char __reject) >{ > register char *__retval = *__s; > if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_strchr (__retval, __reject)))) != ((void *)0)) > *(*__s)++ = '\0'; > return __retval; >} > >extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2); >extern __inline char * >__strsep_2c (char **__s, char __reject1, char __reject2) >{ > register char *__retval = *__s; > if (__retval != ((void *)0)) > { > register char *__cp = __retval; > while (1) > { > if (*__cp == '\0') > { > __cp = ((void *)0); > break; > } > if (*__cp == __reject1 || *__cp == __reject2) > { > *__cp++ = '\0'; > break; > } > ++__cp; > } > *__s = __cp; > } > return __retval; >} > >extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2, > char __reject3); >extern __inline char * >__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3) >{ > register char *__retval = *__s; > if (__retval != ((void *)0)) > { > register char *__cp = __retval; > while (1) > { > if (*__cp == '\0') > { > __cp = ((void *)0); > break; > } > if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3) > { > *__cp++ = '\0'; > break; > } > ++__cp; > } > *__s = __cp; > } > return __retval; >} ># 1303 "/usr/include/bits/string2.h" 3 4 >extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); ># 1322 "/usr/include/bits/string2.h" 3 4 >extern char *__strndup (__const char *__string, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)); ># 636 "/usr/include/string.h" 2 3 4 > > > > ># 1 "/usr/include/bits/string3.h" 1 3 4 ># 23 "/usr/include/bits/string3.h" 3 4 >extern void __warn_memset_zero_len (void) __attribute__((__warning__ ("memset used with constant zero length parameter; this could be due to transposed parameters"))); ># 48 "/usr/include/bits/string3.h" 3 4 >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void * >__attribute__ ((__nothrow__)) memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len) > >{ > return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); >} > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void * >__attribute__ ((__nothrow__)) memmove (void *__restrict __dest, __const void *__restrict __src, size_t __len) > >{ > return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); >} > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void * >__attribute__ ((__nothrow__)) mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len) > >{ > return __builtin___mempcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); >} ># 77 "/usr/include/bits/string3.h" 3 4 >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void * >__attribute__ ((__nothrow__)) memset (void *__dest, int __ch, size_t __len) >{ > if (__builtin_constant_p (__len) && __len == 0) > { > __warn_memset_zero_len (); > return __dest; > } > return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); >} > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void >__attribute__ ((__nothrow__)) bcopy (__const void *__restrict __src, void *__restrict __dest, size_t __len) > >{ > (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); >} > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void >__attribute__ ((__nothrow__)) bzero (void *__dest, size_t __len) >{ > (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0)); >} > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * >__attribute__ ((__nothrow__)) strcpy (char *__restrict __dest, __const char *__restrict __src) >{ > return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); >} > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * >__attribute__ ((__nothrow__)) stpcpy (char *__restrict __dest, __const char *__restrict __src) >{ > return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); >} > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * >__attribute__ ((__nothrow__)) strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __len) > >{ > return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); >} > > >extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n, > size_t __destlen) __attribute__ ((__nothrow__)); >extern char *__stpncpy_alias (char *__dest, __const char *__src, size_t __n) __asm__ ("" "stpncpy") __attribute__ ((__nothrow__)); > > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * >__attribute__ ((__nothrow__)) stpncpy (char *__dest, __const char *__src, size_t __n) >{ > if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 > && (!__builtin_constant_p (__n) || __n <= __builtin_object_size (__dest, 2 > 1))) > return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); > return __stpncpy_alias (__dest, __src, __n); >} > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * >__attribute__ ((__nothrow__)) strcat (char *__restrict __dest, __const char *__restrict __src) >{ > return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); >} > > >extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * >__attribute__ ((__nothrow__)) strncat (char *__restrict __dest, __const char *__restrict __src, size_t __len) > >{ > return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); >} ># 641 "/usr/include/string.h" 2 3 4 > > > > ># 14 "./include/ut0mem.h" 2 > > > >extern ulint ut_total_allocated_memory; > >static inline >void* >ut_memcpy(void* dest, const void* sour, ulint n); > >static inline >void* >ut_memmove(void* dest, const void* sour, ulint n); > >static inline >int >ut_memcmp(const void* str1, const void* str2, ulint n); > > > > > > >void* >ut_malloc_low( > > > ulint n, > ulint set_to_zero, > > ulint assert_on_error); > > > > > >void* >ut_malloc( > > > ulint n); > > > > > >ulint >ut_test_malloc( > > > ulint n); > > > >void >ut_free( > > void* ptr); ># 96 "./include/ut0mem.h" >void* >ut_realloc( > > > void* ptr, > ulint size); > > > >void >ut_free_all_mem(void); > > >static inline >char* >ut_strcpy(char* dest, const char* sour); > >static inline >ulint >ut_strlen(const char* str); > >static inline >int >ut_strcmp(const void* str1, const void* str2); > > > > > > >ulint >ut_strlcpy( > > > char* dst, > const char* src, > ulint size); > > > > > >ulint >ut_strlcpy_rev( > > > char* dst, > const char* src, > ulint size); > > > >static inline >ulint >ut_strlenq( > > > const char* str, > char q); > > > > > > >char* >ut_strcpyq( > > > char* dest, > char q, > const char* src); > > > > > > >char* >ut_memcpyq( > > > char* dest, > char q, > const char* src, > ulint len); > > ># 1 "./include/ut0mem.ic" 1 ># 9 "./include/ut0mem.ic" >static inline >void* >ut_memcpy(void* dest, const void* sour, ulint n) >{ > return(memcpy(dest, sour, n)); >} > >static inline >void* >ut_memmove(void* dest, const void* sour, ulint n) >{ > return(memmove(dest, sour, n)); >} > >static inline >int >ut_memcmp(const void* str1, const void* str2, ulint n) >{ > return(memcmp(str1, str2, n)); >} > >static inline >char* >ut_strcpy(char* dest, const char* sour) >{ > return(strcpy(dest, sour)); >} > >static inline >ulint >ut_strlen(const char* str) >{ > return(strlen(str)); >} > >static inline >int >ut_strcmp(const void* str1, const void* str2) >{ > return(__extension__ ({ size_t __s1_len, __s2_len; (__builtin_constant_p ((const char*)str1) && __builtin_constant_p ((const char*)str2) && (__s1_len = strlen ((const char*)str1), __s2_len = strlen ((const char*)str2), (!((size_t)(const void *)(((const char*)str1) + 1) - (size_t)(const void *)((const char*)str1) == 1) || __s1_len >= 4) && (!((size_t)(const void *)(((const char*)str2) + 1) - (size_t)(const void *)((const char*)str2) == 1) || __s2_len >= 4)) ? __builtin_strcmp ((const char*)str1, (const char*)str2) : (__builtin_constant_p ((const char*)str1) && ((size_t)(const void *)(((const char*)str1) + 1) - (size_t)(const void *)((const char*)str1) == 1) && (__s1_len = strlen ((const char*)str1), __s1_len < 4) ? (__builtin_constant_p ((const char*)str2) && ((size_t)(const void *)(((const char*)str2) + 1) - (size_t)(const void *)((const char*)str2) == 1) ? __builtin_strcmp ((const char*)str1, (const char*)str2) : (__extension__ ({ __const unsigned char *__s2 = (__const unsigned char *) (__const char *) ((const char*)str2); register int __result = (((__const unsigned char *) (__const char *) ((const char*)str1))[0] - __s2[0]); if (__s1_len > 0 && __result == 0) { __result = (((__const unsigned char *) (__const char *) ((const char*)str1))[1] - __s2[1]); if (__s1_len > 1 && __result == 0) { __result = (((__const unsigned char *) (__const char *) ((const char*)str1))[2] - __s2[2]); if (__s1_len > 2 && __result == 0) __result = (((__const unsigned char *) (__const char *) ((const char*)str1))[3] - __s2[3]); } } __result; }))) : (__builtin_constant_p ((const char*)str2) && ((size_t)(const void *)(((const char*)str2) + 1) - (size_t)(const void *)((const char*)str2) == 1) && (__s2_len = strlen ((const char*)str2), __s2_len < 4) ? (__builtin_constant_p ((const char*)str1) && ((size_t)(const void *)(((const char*)str1) + 1) - (size_t)(const void *)((const char*)str1) == 1) ? __builtin_strcmp ((const char*)str1, (const char*)str2) : (__extension__ ({ __const unsigned char *__s1 = (__const unsigned char *) (__const char *) ((const char*)str1); register int __result = __s1[0] - ((__const unsigned char *) (__const char *) ((const char*)str2))[0]; if (__s2_len > 0 && __result == 0) { __result = (__s1[1] - ((__const unsigned char *) (__const char *) ((const char*)str2))[1]); if (__s2_len > 1 && __result == 0) { __result = (__s1[2] - ((__const unsigned char *) (__const char *) ((const char*)str2))[2]); if (__s2_len > 2 && __result == 0) __result = (__s1[3] - ((__const unsigned char *) (__const char *) ((const char*)str2))[3]); } } __result; }))) : __builtin_strcmp ((const char*)str1, (const char*)str2)))); })); >} > > > >static inline >ulint >ut_strlenq( > > > const char* str, > char q) >{ > ulint len; > > for (len = 0; *str; len++, str++) { > if (*str == q) { > len++; > } > } > > return(len); >} ># 185 "./include/ut0mem.h" 2 ># 16 "./include/sync0sync.h" 2 > ># 1 "./include/os0sync.h" 1 ># 31 "./include/os0sync.h" >typedef pthread_mutex_t os_fast_mutex_t; > >typedef struct os_event_struct os_event_struct_t; >typedef os_event_struct_t* os_event_t; > >struct os_event_struct { > os_fast_mutex_t os_mutex; > > ulint is_set; > > > > ib_longlong signal_count; > > pthread_cond_t cond_var; > > struct { os_event_struct_t * prev; os_event_struct_t * next; } os_event_list; > >}; > > >typedef struct os_mutex_struct os_mutex_str_t; >typedef os_mutex_str_t* os_mutex_t; > > > > > > >extern os_mutex_t os_sync_mutex; > > > >extern ulint os_thread_count; > >extern ulint os_event_count; >extern ulint os_mutex_count; >extern ulint os_fast_mutex_count; > > > > >void >os_sync_init(void); > > > > >void >os_sync_free(void); > > > > > > >os_event_t >os_event_create( > > > const char* name); ># 109 "./include/os0sync.h" >void >os_event_set( > > os_event_t event); ># 121 "./include/os0sync.h" >ib_longlong >os_event_reset( > > os_event_t event); > > > >void >os_event_free( > > os_event_t event); ># 156 "./include/os0sync.h" >void >os_event_wait_low( > > os_event_t event, > ib_longlong reset_sig_count); > > > > > > > >ulint >os_event_wait_time( > > > > > os_event_t event, > ulint time); ># 197 "./include/os0sync.h" >os_mutex_t >os_mutex_create( > > > const char* name); > > > > >void >os_mutex_enter( > > os_mutex_t mutex); > > > >void >os_mutex_exit( > > os_mutex_t mutex); > > > >void >os_mutex_free( > > os_mutex_t mutex); > > > >static inline >ulint >os_fast_mutex_trylock( > > > > > os_fast_mutex_t* fast_mutex); > > > >void >os_fast_mutex_unlock( > > os_fast_mutex_t* fast_mutex); > > > >void >os_fast_mutex_init( > > os_fast_mutex_t* fast_mutex); > > > >void >os_fast_mutex_lock( > > os_fast_mutex_t* fast_mutex); > > > >void >os_fast_mutex_free( > > os_fast_mutex_t* fast_mutex); > > ># 1 "./include/os0sync.ic" 1 ># 16 "./include/os0sync.ic" >static inline >ulint >os_fast_mutex_trylock( > > > > > os_fast_mutex_t* fast_mutex) >{ ># 43 "./include/os0sync.ic" > return((ulint) pthread_mutex_trylock(fast_mutex)); > > >} ># 266 "./include/os0sync.h" 2 ># 18 "./include/sync0sync.h" 2 ># 1 "./include/sync0arr.h" 1 ># 17 "./include/sync0arr.h" >typedef struct sync_cell_struct sync_cell_t; >typedef struct sync_array_struct sync_array_t; ># 28 "./include/sync0arr.h" >sync_array_t* >sync_array_create( > > > ulint n_cells, > > ulint protection); > > > > > >void >sync_array_free( > > sync_array_t* arr); > > > > >void >sync_array_reserve_cell( > > sync_array_t* arr, > void* object, > ulint type, > const char* file, > ulint line, > ulint* index); > > > > > > >void >sync_array_wait_event( > > sync_array_t* arr, > ulint index); > > > > >void >sync_array_free_cell( > > sync_array_t* arr, > ulint index); > > > >void >sync_array_object_signalled( > > sync_array_t* arr); > > > > > >void >sync_arr_wake_threads_if_sema_free(void); > > > > >ulint >sync_array_print_long_waits(void); > > > > > > > >void >sync_array_validate( > > sync_array_t* arr); > > > >void >sync_array_print_info( > > FILE* file, > sync_array_t* arr); > > > ># 1 "./include/sync0arr.ic" 1 ># 120 "./include/sync0arr.h" 2 ># 19 "./include/sync0sync.h" 2 > > >extern my_bool timed_mutexes; > > > > > >void >sync_init(void); > > > > >void >sync_close(void); ># 54 "./include/sync0sync.h" >void >mutex_create_func( > > ib_mutex_t* mutex, > > > > const char* cfile_name, > ulint cline); > > > > > > >void >mutex_free( > > ib_mutex_t* mutex); ># 83 "./include/sync0sync.h" >void >mutex_enter_noninline( > > ib_mutex_t* mutex); ># 100 "./include/sync0sync.h" >static inline >void >mutex_enter_func( > > ib_mutex_t* mutex, > const char* file_name, > ulint line); > > > > >ulint >mutex_enter_nowait( > > > ib_mutex_t* mutex, > const char* file_name, > > ulint line); > > >static inline >void >mutex_exit( > > ib_mutex_t* mutex); > > > >void >mutex_exit_noninline( > > ib_mutex_t* mutex); > > > > >ulint >sync_all_freed(void); > > > > > > >void >sync_print_wait_info( > > FILE* file); > > > >void >sync_print( > > FILE* file); > > > >ulint >mutex_validate( > > ib_mutex_t* mutex); > > > >void >mutex_set_level( > > ib_mutex_t* mutex, > ulint level); > > > > > >void >sync_thread_add_level( > > void* latch, > ulint level); > > > > >ulint >sync_thread_reset_level( > > > > > > void* latch); > > > >ulint >sync_thread_levels_empty(void); > > > > > >ulint >sync_thread_levels_empty_gen( > > > > ulint dict_mutex_allowed); ># 249 "./include/sync0sync.h" >static inline >ulint >mutex_get_lock_word( > > ib_mutex_t* mutex); ># 461 "./include/sync0sync.h" >struct mutex_struct { > os_event_t event; > ulint lock_word; > > > os_fast_mutex_t > os_fast_mutex; > > > ulint waiters; > > > > struct { ib_mutex_t * prev; ib_mutex_t * next; } list; > > > > > > > > ulint level; > > const char* cfile_name; > ulint cline; > ulint magic_n; > > ulong count_os_wait; ># 500 "./include/sync0sync.h" >}; > > > > > > >extern sync_array_t* sync_primary_wait_array; ># 524 "./include/sync0sync.h" >extern ulint mutex_system_call_count; >extern ulint mutex_exit_count; > > >extern ulint sync_order_checks_on; > > >extern ulint sync_initialized; > > >typedef struct { ulint count; ib_mutex_t * start; ib_mutex_t * end; } ut_list_base_node_t; >extern ut_list_base_node_t mutex_list; > > >extern ib_mutex_t mutex_list_mutex; > > > ># 1 "./include/sync0sync.ic" 1 ># 22 "./include/sync0sync.ic" >void >mutex_set_waiters( > > ib_mutex_t* mutex, > ulint n); > > > > > >void >mutex_spin_wait( > > ib_mutex_t* mutex, > const char* file_name, > ulint line); ># 52 "./include/sync0sync.ic" >void >mutex_signal_object( > > ib_mutex_t* mutex); > > > > >static inline >ulint >mutex_test_and_set( > > > > ib_mutex_t* mutex) >{ ># 104 "./include/sync0sync.ic" > ulint ret; > > ret = os_fast_mutex_trylock(&(mutex->os_fast_mutex)); > > if (ret == 0) { > > > do { if (__builtin_expect(!((ulint)(mutex->lock_word == 0)), (0))) { ut_dbg_assertion_failed("mutex->lock_word == 0", "./include/sync0sync.ic", (ulint) 111); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/sync0sync.ic", (ulint) 111); } while (0); } while (0); > > mutex->lock_word = 1; > } > > return(ret); > >} > > > > >static inline >void >mutex_reset_lock_word( > > ib_mutex_t* mutex) >{ ># 144 "./include/sync0sync.ic" > mutex->lock_word = 0; > > os_fast_mutex_unlock(&(mutex->os_fast_mutex)); > >} > > > >static inline >ulint >mutex_get_lock_word( > > ib_mutex_t* mutex) >{ >volatile ulint* ptr; > > ; > > ptr = &(mutex->lock_word); > > return(*ptr); >} > > > >static inline >ulint >mutex_get_waiters( > > > ib_mutex_t* mutex) >{ >volatile ulint* ptr; > > ; > > ptr = &(mutex->waiters); > > return(*ptr); > >} > > > >static inline >void >mutex_exit( > > ib_mutex_t* mutex) >{ > > > > > > > > mutex_reset_lock_word(mutex); ># 215 "./include/sync0sync.ic" > if (mutex_get_waiters(mutex) != 0) { > > mutex_signal_object(mutex); > } > > > > >} > > > > > >static inline >void >mutex_enter_func( > > ib_mutex_t* mutex, > const char* file_name, > ulint line) >{ > ; ># 246 "./include/sync0sync.ic" > if (!mutex_test_and_set(mutex)) > { > > > > return; > } > > mutex_spin_wait(mutex, file_name, line); > >} ># 543 "./include/sync0sync.h" 2 ># 15 "./include/sync0rw.h" 2 ># 27 "./include/sync0rw.h" >typedef struct rw_lock_struct rw_lock_t; > > > > >typedef struct { ulint count; rw_lock_t * start; rw_lock_t * end; } rw_lock_list_t; > >extern rw_lock_list_t rw_lock_list; >extern ib_mutex_t rw_lock_list_mutex; ># 50 "./include/sync0rw.h" >extern ulint rw_s_system_call_count; >extern ulint rw_s_spin_wait_count; >extern ulint rw_s_exit_count; >extern ulint rw_s_os_wait_count; >extern ulint rw_x_system_call_count; >extern ulint rw_x_spin_wait_count; >extern ulint rw_x_os_wait_count; >extern ulint rw_x_exit_count; ># 77 "./include/sync0rw.h" >void >rw_lock_create_func( > > rw_lock_t* lock, > > > > const char* cfile_name, > ulint cline); > > > > > >void >rw_lock_free( > > rw_lock_t* lock); > > > > >ulint >rw_lock_validate( > > rw_lock_t* lock); ># 128 "./include/sync0rw.h" >static inline >void >rw_lock_s_lock_func( > > rw_lock_t* lock, > ulint pass, > > const char* file_name, > ulint line); > > > > >static inline >ulint >rw_lock_s_lock_func_nowait( > > > rw_lock_t* lock, > const char* file_name, > ulint line); > > > > >static inline >ulint >rw_lock_x_lock_func_nowait( > > > rw_lock_t* lock, > const char* file_name, > ulint line); > > >static inline >void >rw_lock_s_unlock_func( > > rw_lock_t* lock > > > > > ); ># 217 "./include/sync0rw.h" >void >rw_lock_x_lock_func( > > rw_lock_t* lock, > ulint pass, > > const char* file_name, > ulint line); > > >static inline >void >rw_lock_x_unlock_func( > > rw_lock_t* lock > > > > > ); ># 257 "./include/sync0rw.h" >static inline >void >rw_lock_s_lock_direct( > > rw_lock_t* lock, > const char* file_name, > ulint line >); > > > > >static inline >void >rw_lock_x_lock_direct( > > rw_lock_t* lock, > const char* file_name, > ulint line >); ># 286 "./include/sync0rw.h" >void >rw_lock_x_lock_move_ownership( > > rw_lock_t* lock); > > > > >static inline >void >rw_lock_s_unlock_direct( > > rw_lock_t* lock); > > > >static inline >void >rw_lock_x_unlock_direct( > > rw_lock_t* lock); > > > >void >rw_lock_set_level( > > rw_lock_t* lock, > ulint level); > > > >static inline >ulint >rw_lock_get_x_lock_count( > > > rw_lock_t* lock); > > >static inline >ulint >rw_lock_get_s_waiters( > > rw_lock_t* lock); >static inline >ulint >rw_lock_get_x_waiters( > > rw_lock_t* lock); >static inline >ulint >rw_lock_get_wx_waiters( > > rw_lock_t* lock); >static inline >ulint >rw_lock_get_writer( > > rw_lock_t* lock); >static inline >ulint >rw_lock_get_reader_count( > > rw_lock_t* lock); ># 366 "./include/sync0rw.h" >ulint >rw_lock_is_locked( > > rw_lock_t* lock, > ulint lock_type); ># 440 "./include/sync0rw.h" >struct rw_lock_struct { > > os_event_t s_event; > os_event_t x_event; > os_event_t wait_ex_event; ># 453 "./include/sync0rw.h" > volatile lint lock_word; > > > volatile ulint reader_count; > > volatile ulint writer; > > > > > volatile os_thread_id_t writer_thread; > > volatile ulint writer_count; > > > > > > ulint pass; > > > > > volatile ulint s_waiters; > volatile ulint x_waiters; > volatile ulint wait_ex_waiters; > volatile ulint writer_is_wait_ex; > > > > > > > struct { rw_lock_t * prev; rw_lock_t * next; } list; > > > > > > > > ulint level; > > const char* cfile_name; > ulint cline; > const char* last_s_file_name; > const char* last_x_file_name; > ulint last_s_line; > ulint last_x_line; > ulint magic_n; >}; ># 525 "./include/sync0rw.h" ># 1 "./include/sync0rw.ic" 1 ># 15 "./include/sync0rw.ic" >void >rw_lock_s_lock_spin( > > rw_lock_t* lock, > ulint pass, > > const char* file_name, > ulint line); ># 48 "./include/sync0rw.ic" >static inline >ulint >rw_lock_get_s_waiters( > > rw_lock_t* lock) >{ > return(lock->s_waiters); >} >static inline >ulint >rw_lock_get_x_waiters( > > rw_lock_t* lock) >{ > return(lock->x_waiters); >} >static inline >ulint >rw_lock_get_wx_waiters( > > rw_lock_t* lock) >{ > return(lock->wait_ex_waiters); >} >static inline >void >rw_lock_set_s_waiters( > rw_lock_t* lock, > ulint flag) >{ > > __sync_lock_test_and_set(&lock->s_waiters, flag); > > > >} >static inline >void >rw_lock_set_x_waiters( > rw_lock_t* lock, > ulint flag) >{ > > __sync_lock_test_and_set(&lock->x_waiters, flag); > > > >} >static inline >void >rw_lock_set_wx_waiters( > > rw_lock_t* lock, > ulint flag) >{ > > __sync_lock_test_and_set(&lock->wait_ex_waiters, flag); > > > >} >static inline >ulint >rw_lock_get_writer( > > rw_lock_t* lock) >{ > > if (lock->writer == 350) { > return(350); > } > > if (lock->writer_is_wait_ex) { > return(353); > } else { > return(351); > } > > > >} >static inline >void >rw_lock_set_writer( > > rw_lock_t* lock, > ulint flag) >{ > lock->writer = flag; >} >static inline >ulint >rw_lock_get_reader_count( > > rw_lock_t* lock) >{ > return(lock->reader_count); >} >static inline >void >rw_lock_set_reader_count( > > rw_lock_t* lock, > ulint count) >{ > lock->reader_count = count; >} ># 169 "./include/sync0rw.ic" >static inline >ulint >rw_lock_get_x_lock_count( > > > rw_lock_t* lock) >{ > return(lock->writer_count); >} > > > > >static inline >ulint >rw_lock_s_lock_low( > > > rw_lock_t* lock, > ulint pass __attribute__((unused)), > > > const char* file_name, > ulint line) >{ > > > > > > > if (__builtin_expect(rw_lock_get_writer(lock) == 350, (1))) { > > if(__sync_sub_and_fetch(&(lock->lock_word),1) <= 0) { > > __sync_fetch_and_add(&(lock->lock_word),1); > return((0)); > } > > __sync_fetch_and_add(&(lock->reader_count),1); ># 219 "./include/sync0rw.ic" > lock->last_s_file_name = file_name; > lock->last_s_line = line; > > return((1)); > } > > return((0)); >} > > > > > >static inline >void >rw_lock_s_lock_direct( > > rw_lock_t* lock, > const char* file_name, > ulint line) >{ > ; > ; > > > > __sync_fetch_and_add(&(lock->reader_count),1); > > > > > lock->last_s_file_name = file_name; > lock->last_s_line = line; > > > > >} > > > > > >static inline >void >rw_lock_x_lock_direct( > > rw_lock_t* lock, > const char* file_name, > ulint line) >{ > ; > ; > ; > > rw_lock_set_writer(lock, 351); > lock->writer_thread = os_thread_get_curr_id(); > > __sync_fetch_and_add(&(lock->writer_count),1); > > > > lock->pass = 0; > > lock->last_x_file_name = file_name; > lock->last_x_line = line; > > > > >} > > > > > > > >static inline >void >rw_lock_s_lock_func( > > rw_lock_t* lock, > ulint pass, > > const char* file_name, > ulint line) >{ ># 326 "./include/sync0rw.ic" > if (__builtin_expect(rw_lock_s_lock_low(lock, pass, file_name, line), (1))) { > > > > > return; > } else { > > > > > > rw_lock_s_lock_spin(lock, pass, file_name, line); > > return; > } >} > > > > > >static inline >ulint >rw_lock_s_lock_func_nowait( > > > rw_lock_t* lock, > const char* file_name, > ulint line) >{ > ulint success = (0); > > > if (rw_lock_get_writer(lock) == 350) { > > if(__sync_sub_and_fetch(&(lock->lock_word),1) <= 0) { > > __sync_fetch_and_add(&(lock->lock_word),1); > return((0)); > } > > __sync_fetch_and_add(&(lock->reader_count),1); ># 382 "./include/sync0rw.ic" > lock->last_s_file_name = file_name; > lock->last_s_line = line; > > success = (1); > } > > > > > > return(success); >} > > > > > >static inline >ulint >rw_lock_x_lock_func_nowait( > > > rw_lock_t* lock, > const char* file_name, > ulint line) >{ > ulint success = (0); > os_thread_id_t curr_thread = os_thread_get_curr_id(); > > if (lock->reader_count == 0) { > > if(__sync_lock_test_and_set(&(lock->writer),351) > == 350) { > >retry_x_lock: > > if(__sync_sub_and_fetch(&(lock->lock_word), > 0x00100000) == 0) { > > lock->writer_thread = curr_thread; > lock->pass = 0; > lock->writer_is_wait_ex = (0); > > relock: > __sync_fetch_and_add(&(lock->writer_count),1); > > > > > > lock->last_x_file_name = file_name; > lock->last_x_line = line; > > ; > > return((1)); > } else { > > if (__sync_fetch_and_add(&(lock->lock_word),0x00100000) > == 0) > goto retry_x_lock; > } > > __sync_lock_test_and_set(&(lock->writer),350); > } > } > > if (lock->pass == 0 > && os_thread_eq(lock->writer_thread, curr_thread)) { > goto relock; > } > > > > return((0)); ># 489 "./include/sync0rw.ic" >} > > > >static inline >void >rw_lock_s_unlock_func( > > rw_lock_t* lock > > > > > ) >{ > > > > ulint x_sg = (0); > ulint wx_sg = (0); > > ulint last = (0); ># 520 "./include/sync0rw.ic" > do { if (__builtin_expect(!((ulint)(lock->reader_count > 0)), (0))) { ut_dbg_assertion_failed("lock->reader_count > 0", "./include/sync0rw.ic", (ulint) 520); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/sync0rw.ic", (ulint) 520); } while (0); } while (0); > > > __sync_fetch_and_add(&(lock->lock_word),1); > > if(__sync_sub_and_fetch(&(lock->reader_count),1) == 0) { > last = (1); > } ># 540 "./include/sync0rw.ic" > if (__builtin_expect(last && __sync_lock_test_and_set(&lock->wait_ex_waiters, 0), (0))) { > os_event_set(lock->wait_ex_event); > sync_array_object_signalled(sync_primary_wait_array); > } > else if (__builtin_expect(last && __sync_lock_test_and_set(&lock->x_waiters, 0), (0))) { > os_event_set(lock->x_event); > sync_array_object_signalled(sync_primary_wait_array); > } ># 573 "./include/sync0rw.ic" > ; > > > > >} > > > > >static inline >void >rw_lock_s_unlock_direct( > > rw_lock_t* lock) >{ > > > ; > > > __sync_sub_and_fetch(&(lock->reader_count),1); ># 604 "./include/sync0rw.ic" > ; > ; > > > > ; > > > >} > > > >static inline >void >rw_lock_x_unlock_func( > > rw_lock_t* lock > > > > > ) >{ > > ulint last = (0); > > ulint s_sg = (0); > ulint x_sg = (0); ># 642 "./include/sync0rw.ic" > ; > > > if(__sync_sub_and_fetch(&(lock->writer_count),1) == 0) { > last = (1); > } > > if (last) { > > __sync_fetch_and_add(&(lock->lock_word),0x00100000); > > > > lock->writer_thread = -1; > __sync_lock_test_and_set(&(lock->writer),350); > } ># 672 "./include/sync0rw.ic" > if (last) { > if(__sync_lock_test_and_set(&lock->s_waiters, 0)){ > s_sg = (1); > } > if(__sync_lock_test_and_set(&lock->x_waiters, 0)){ > x_sg = (1); > } > } ># 695 "./include/sync0rw.ic" > if (__builtin_expect(s_sg, (0))) { > os_event_set(lock->s_event); > sync_array_object_signalled(sync_primary_wait_array); > } > if (__builtin_expect(x_sg, (0))) { > > > > > os_event_set(lock->x_event); > sync_array_object_signalled(sync_primary_wait_array); > } > > ; > > > > >} > > > > >static inline >void >rw_lock_x_unlock_direct( > > rw_lock_t* lock) >{ > > > > ; > > > if(__sync_sub_and_fetch(&(lock->writer_count),1) == 0) { > > > > > > rw_lock_set_writer(lock, 350); > } > > > > > > > ; > ; > > > > ; > > > > >} ># 526 "./include/sync0rw.h" 2 ># 14 "./include/fil0fil.h" 2 ># 1 "./include/dict0types.h" 1 ># 12 "./include/dict0types.h" >typedef struct dict_sys_struct dict_sys_t; >typedef struct dict_col_struct dict_col_t; >typedef struct dict_field_struct dict_field_t; >typedef struct dict_index_struct dict_index_t; >typedef struct dict_tree_struct dict_tree_t; >typedef struct dict_table_struct dict_table_t; >typedef struct dict_foreign_struct dict_foreign_t; > > > > >typedef dict_table_t dict_cluster_t; > >typedef struct ind_node_struct ind_node_t; >typedef struct tab_node_struct tab_node_t; ># 15 "./include/fil0fil.h" 2 ># 1 "./include/ibuf0types.h" 1 ># 12 "./include/ibuf0types.h" >typedef struct ibuf_data_struct ibuf_data_t; >typedef struct ibuf_struct ibuf_t; ># 16 "./include/fil0fil.h" 2 ># 1 "./include/ut0byte.h" 1 ># 20 "./include/ut0byte.h" >typedef struct dulint_struct dulint; >struct dulint_struct{ > ulint high; > ulint low; >}; > > >extern dulint ut_dulint_zero; > > >extern dulint ut_dulint_max; > > > >static inline >dulint >ut_dulint_create( > > > ulint high, > ulint low); > > >static inline >ulint >ut_dulint_get_high( > > > dulint d); > > >static inline >ulint >ut_dulint_get_low( > > > dulint d); > > > >static inline >ib_longlong >ut_conv_dulint_to_longlong( > > > dulint d); > > >static inline >ulint >ut_dulint_is_zero( > > > dulint a); > > >static inline >int >ut_dulint_cmp( > > > > dulint a, > dulint b); > > >static inline >dulint >ut_dulint_get_max( > > > dulint a, > dulint b); > > >static inline >dulint >ut_dulint_get_min( > > > dulint a, > dulint b); > > >static inline >dulint >ut_dulint_add( > > > dulint a, > ulint b); > > >static inline >dulint >ut_dulint_subtract( > > > dulint a, > ulint b); > > > >static inline >ulint >ut_dulint_minus( > > > dulint a, > > dulint b); > > >static inline >dulint >ut_dulint_align_down( > > > dulint n, > ulint align_no); > > > >static inline >dulint >ut_dulint_align_up( > > > dulint n, > ulint align_no); ># 168 "./include/ut0byte.h" >void >ut_dulint_sort(dulint* arr, dulint* aux_arr, ulint low, ulint high); > > > > > >static inline >ulint >ut_calc_align( > > > ulint n, > ulint align_no); > > > > >static inline >ulint >ut_calc_align_down( > > > ulint n, > ulint align_no); > > >static inline >void* >ut_align( > > > void* ptr, > ulint align_no); > > > >static inline >void* >ut_align_down( > > > void* ptr, > ulint align_no) > __attribute__((const)); > > > >static inline >ulint >ut_align_offset( > > > > const void* ptr, > ulint align_no) > __attribute__((const)); > > >static inline >ulint >ut_bit_get_nth( > > > > ulint a, > ulint n); > > >static inline >ulint >ut_bit_set_nth( > > > ulint a, > ulint n, > ulint val); > > ># 1 "./include/ut0byte.ic" 1 ># 11 "./include/ut0byte.ic" >static inline >dulint >ut_dulint_create( > > > ulint high, > ulint low) >{ > dulint res; > > ; > ; > > res.high = high; > res.low = low; > > return(res); >} > > > >static inline >ulint >ut_dulint_get_high( > > > dulint d) >{ > return(d.high); >} > > > >static inline >ulint >ut_dulint_get_low( > > > dulint d) >{ > return(d.low); >} > > > > >static inline >ib_longlong >ut_conv_dulint_to_longlong( > > > dulint d) >{ > return((ib_longlong)d.low > + (((ib_longlong)d.high) << 32)); >} > > > >static inline >ulint >ut_dulint_is_zero( > > > dulint a) >{ > if ((a.low == 0) && (a.high == 0)) { > > return((1)); > } > > return((0)); >} > > > >static inline >int >ut_dulint_cmp( > > > > dulint a, > dulint b) >{ > if (a.high > b.high) { > return(1); > } else if (a.high < b.high) { > return(-1); > } else if (a.low > b.low) { > return(1); > } else if (a.low < b.low) { > return(-1); > } else { > return(0); > } >} > > > >static inline >dulint >ut_dulint_get_max( > > > dulint a, > dulint b) >{ > if (ut_dulint_cmp(a, b) > 0) { > > return(a); > } > > return(b); >} > > > >static inline >dulint >ut_dulint_get_min( > > > dulint a, > dulint b) >{ > if (ut_dulint_cmp(a, b) > 0) { > > return(b); > } > > return(a); >} > > > >static inline >dulint >ut_dulint_add( > > > dulint a, > ulint b) >{ > if (0xFFFFFFFFUL - b >= a.low) { > a.low += b; > > return(a); > } > > a.low = a.low - (0xFFFFFFFFUL - b) - 1; > > a.high++; > > return(a); >} > > > >static inline >dulint >ut_dulint_subtract( > > > dulint a, > ulint b) >{ > if (a.low >= b) { > a.low -= b; > > return(a); > } > > b -= a.low + 1; > > a.low = 0xFFFFFFFFUL - b; > > ; > > a.high--; > > return(a); >} > > > > >static inline >ulint >ut_dulint_minus( > > > dulint a, > > dulint b) >{ > ulint diff; > > if (a.high == b.high) { > ; > > return(a.low - b.low); > } > > ; > > diff = (ulint)(0xFFFFFFFFUL - b.low); > diff += 1 + a.low; > > ; > > return(diff); >} > > > >static inline >dulint >ut_dulint_align_down( > > > dulint n, > ulint align_no) > >{ > ulint low, high; > > ; > ; > > low = ut_dulint_get_low(n); > high = ut_dulint_get_high(n); > > low = low & ~(align_no - 1); > > return(ut_dulint_create(high, low)); >} > > > >static inline >dulint >ut_dulint_align_up( > > > dulint n, > ulint align_no) > >{ > return(ut_dulint_align_down(ut_dulint_add(n, align_no - 1), align_no)); >} > > > > > >static inline >ulint >ut_calc_align( > > > ulint n, > ulint align_no) >{ > ; > ; > > return((n + align_no - 1) & ~(align_no - 1)); >} > > > >static inline >void* >ut_align( > > > void* ptr, > ulint align_no) >{ > ; > ; > ; > > ; > > return((void*)((((ulint)ptr) + align_no - 1) & ~(align_no - 1))); >} > > > > > >static inline >ulint >ut_calc_align_down( > > > ulint n, > ulint align_no) >{ > ; > ; > > return(n & ~(align_no - 1)); >} > > > > >static inline >void* >ut_align_down( > > > void* ptr, > ulint align_no) >{ > ; > ; > ; > > ; > > return((void*)((((ulint)ptr)) & ~(align_no - 1))); >} > > > > >static inline >ulint >ut_align_offset( > > > > const void* ptr, > ulint align_no) >{ > ; > ; > ; > > ; > > return(((ulint)ptr) & (align_no - 1)); >} > > > >static inline >ulint >ut_bit_get_nth( > > > > ulint a, > ulint n) >{ > ; > ; > > return(1 & (a >> n)); >} > > > >static inline >ulint >ut_bit_set_nth( > > > ulint a, > ulint n, > ulint val) >{ > ; > ; > > if (val) { > return(((ulint) 1 << n) | a); > } else { > return(~((ulint) 1 << n) & a); > } >} ># 248 "./include/ut0byte.h" 2 ># 17 "./include/fil0fil.h" 2 ># 1 "./include/os0file.h" 1 ># 14 "./include/os0file.h" ># 1 "./include/trx0types.h" 1 ># 12 "./include/trx0types.h" ># 1 "./include/lock0types.h" 1 ># 13 "./include/lock0types.h" >typedef struct lock_struct ib_lock_t; >typedef struct lock_sys_struct lock_sys_t; ># 13 "./include/trx0types.h" 2 > > > >typedef struct trx_struct trx_t; >typedef struct trx_sys_struct trx_sys_t; >typedef struct trx_doublewrite_struct trx_doublewrite_t; >typedef struct trx_sig_struct trx_sig_t; >typedef struct trx_rseg_struct trx_rseg_t; >typedef struct trx_undo_struct trx_undo_t; >typedef struct trx_undo_arr_struct trx_undo_arr_t; >typedef struct trx_undo_inf_struct trx_undo_inf_t; >typedef struct trx_purge_struct trx_purge_t; >typedef struct roll_node_struct roll_node_t; >typedef struct commit_node_struct commit_node_t; >typedef struct trx_named_savept_struct trx_named_savept_t; > > >typedef struct trx_savept_struct trx_savept_t; >struct trx_savept_struct{ > dulint least_undo_no; >}; > > >typedef unsigned char trx_sysf_t; >typedef unsigned char trx_rsegf_t; >typedef unsigned char trx_usegf_t; >typedef unsigned char trx_ulogf_t; >typedef unsigned char trx_upagef_t; > > >typedef unsigned char trx_undo_rec_t; ># 15 "./include/os0file.h" 2 > > ># 1 "/usr/include/dirent.h" 1 3 4 ># 28 "/usr/include/dirent.h" 3 4 > ># 62 "/usr/include/dirent.h" 3 4 ># 1 "/usr/include/bits/dirent.h" 1 3 4 ># 23 "/usr/include/bits/dirent.h" 3 4 >struct dirent > { > > __ino_t d_ino; > __off_t d_off; > > > > > unsigned short int d_reclen; > unsigned char d_type; > char d_name[256]; > }; > > >struct dirent64 > { > __ino64_t d_ino; > __off64_t d_off; > unsigned short int d_reclen; > unsigned char d_type; > char d_name[256]; > }; ># 63 "/usr/include/dirent.h" 2 3 4 ># 98 "/usr/include/dirent.h" 3 4 >enum > { > DT_UNKNOWN = 0, > > DT_FIFO = 1, > > DT_CHR = 2, > > DT_DIR = 4, > > DT_BLK = 6, > > DT_REG = 8, > > DT_LNK = 10, > > DT_SOCK = 12, > > DT_WHT = 14 > > }; ># 128 "/usr/include/dirent.h" 3 4 >typedef struct __dirstream DIR; > > > > > > >extern DIR *opendir (__const char *__name) __attribute__ ((__nonnull__ (1))); > > > > > > >extern DIR *fdopendir (int __fd); > > > > > > > >extern int closedir (DIR *__dirp) __attribute__ ((__nonnull__ (1))); ># 163 "/usr/include/dirent.h" 3 4 >extern struct dirent *readdir (DIR *__dirp) __attribute__ ((__nonnull__ (1))); ># 174 "/usr/include/dirent.h" 3 4 >extern struct dirent64 *readdir64 (DIR *__dirp) __attribute__ ((__nonnull__ (1))); ># 184 "/usr/include/dirent.h" 3 4 >extern int readdir_r (DIR *__restrict __dirp, > struct dirent *__restrict __entry, > struct dirent **__restrict __result) > __attribute__ ((__nonnull__ (1, 2, 3))); ># 201 "/usr/include/dirent.h" 3 4 >extern int readdir64_r (DIR *__restrict __dirp, > struct dirent64 *__restrict __entry, > struct dirent64 **__restrict __result) > __attribute__ ((__nonnull__ (1, 2, 3))); > > > > >extern void rewinddir (DIR *__dirp) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern void seekdir (DIR *__dirp, long int __pos) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern long int telldir (DIR *__dirp) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern int dirfd (DIR *__dirp) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 245 "/usr/include/dirent.h" 3 4 ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4 ># 246 "/usr/include/dirent.h" 2 3 4 > > > > > > >extern int scandir (__const char *__restrict __dir, > struct dirent ***__restrict __namelist, > int (*__selector) (__const struct dirent *), > int (*__cmp) (__const struct dirent **, > __const struct dirent **)) > __attribute__ ((__nonnull__ (1, 2))); ># 275 "/usr/include/dirent.h" 3 4 >extern int scandir64 (__const char *__restrict __dir, > struct dirent64 ***__restrict __namelist, > int (*__selector) (__const struct dirent64 *), > int (*__cmp) (__const struct dirent64 **, > __const struct dirent64 **)) > __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int alphasort (__const struct dirent **__e1, > __const struct dirent **__e2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 300 "/usr/include/dirent.h" 3 4 >extern int alphasort64 (__const struct dirent64 **__e1, > __const struct dirent64 **__e2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 313 "/usr/include/dirent.h" 3 4 >extern __ssize_t getdirentries (int __fd, char *__restrict __buf, > size_t __nbytes, > __off_t *__restrict __basep) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); ># 330 "/usr/include/dirent.h" 3 4 >extern __ssize_t getdirentries64 (int __fd, char *__restrict __buf, > size_t __nbytes, > __off64_t *__restrict __basep) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); > > > > > > >extern int versionsort (__const struct dirent **__e1, > __const struct dirent **__e2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); ># 356 "/usr/include/dirent.h" 3 4 >extern int versionsort64 (__const struct dirent64 **__e1, > __const struct dirent64 **__e2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > ># 18 "./include/os0file.h" 2 > > > > >typedef struct fil_node_struct fil_node_t; > > > > >extern ulint os_has_said_disk_full; >extern ulint os_aio_print_debug; > >extern ulint os_file_n_pending_preads; >extern ulint os_file_n_pending_pwrites; > >extern ulint os_n_pending_reads; >extern ulint os_n_pending_writes; ># 49 "./include/os0file.h" >typedef int os_file_t; > > >extern ulint os_innodb_umask; > > > > > >extern ulint os_aio_use_native_aio; ># 138 "./include/os0file.h" >extern ulint os_n_file_reads; >extern ulint os_n_file_writes; >extern ulint os_n_fsyncs; > > > >enum os_file_type_enum{ > OS_FILE_TYPE_UNKNOWN = 0, > OS_FILE_TYPE_FILE, > OS_FILE_TYPE_DIR, > OS_FILE_TYPE_LINK >}; >typedef enum os_file_type_enum os_file_type_t; ># 159 "./include/os0file.h" >struct os_file_stat_struct{ > char name[4000]; > os_file_type_t type; > ib_longlong size; > time_t ctime; > time_t mtime; > time_t atime; >}; >typedef struct os_file_stat_struct os_file_stat_t; > > > > >typedef DIR* os_file_dir_t; > > > > > >ulint >os_get_os_version(void); > > > > > >void >os_io_init_simple(void); > > > > >FILE* >os_file_create_tmpfile(void); ># 201 "./include/os0file.h" >os_file_dir_t >os_file_opendir( > > > > const char* dirname, > > ulint error_is_fatal); > > > > > > > >int >os_file_closedir( > > > os_file_dir_t dir); > > > > >int >os_file_readdir_next_file( > > > > const char* dirname, > os_file_dir_t dir, > os_file_stat_t* info); > > > > > > >ulint >os_file_create_directory( > > > > const char* pathname, > > ulint fail_if_exists); > > > > >os_file_t >os_file_create_simple( > > > > > const char* name, > > ulint create_mode, > > > > > > > ulint access_type, > > ulint* success); > > > >os_file_t >os_file_create_simple_no_error_handling( > > > > > const char* name, > > ulint create_mode, > > > > ulint access_type, > > > > ulint* success); > > > >os_file_t >os_file_create( > > > > > const char* name, > > ulint create_mode, > > > > > > > > ulint purpose, > > > > > > > ulint type, > ulint* success); > > > >ulint >os_file_delete( > > > const char* name); > > > > >ulint >os_file_delete_if_exists( > > > const char* name); > > > > >ulint >os_file_rename( > > > const char* oldpath, > > const char* newpath); > > > > >ulint >os_file_close( > > > os_file_t file); > > > >ulint >os_file_close_no_error_handling( > > > os_file_t file); > > > >ulint >os_file_get_size( > > > os_file_t file, > ulint* size, > > ulint* size_high); > > > >ib_longlong >os_file_get_size_as_iblonglong( > > > os_file_t file); > > > >ulint >os_file_set_size( > > > const char* name, > > os_file_t file, > ulint size, > > ulint size_high); > > > >ulint >os_file_set_eof( > > > FILE* file); > > > >ulint >os_file_flush( > > > os_file_t file); > > > > > > >ulint >os_file_get_last_error( > > > > ulint report_all_errors); > > > > > > > >ulint >_os_file_read( > > > > os_file_t file, > void* buf, > ulint offset, > > ulint offset_high, > > ulint n, > trx_t* trx); > > > > > >void >os_file_read_string( > > FILE* file, > char* str, > ulint size); > > > > >ulint >os_file_read_no_error_handling( > > > > os_file_t file, > void* buf, > ulint offset, > > ulint offset_high, > > ulint n); > > > > >ulint >os_file_write( > > > > const char* name, > > os_file_t file, > const void* buf, > ulint offset, > > ulint offset_high, > > ulint n); > > > >ulint >os_file_status( > > > const char* path, > ulint* exists, > os_file_type_t* type); ># 525 "./include/os0file.h" >char* >os_file_dirname( > > > > const char* path); > > > >ulint >os_file_create_subdirs_if_needed( > > > > const char* path); ># 549 "./include/os0file.h" >void >os_aio_init( > > ulint n, > > > > ulint n_read_threads, > ulint n_write_threads, > ulint n_slots_sync); > > > >ulint >os_aio( > > > > ulint type, > ulint mode, ># 581 "./include/os0file.h" > const char* name, > > os_file_t file, > void* buf, > > ulint offset, > > ulint offset_high, > > ulint n, > fil_node_t* message1, > > > > void* message2, > trx_t* trx); > > > > >void >os_aio_wake_all_threads_at_shutdown(void); > > > > > >void >os_aio_wait_until_no_pending_writes(void); > > > > >void >os_aio_simulated_wake_handler_threads(void); > > > > > > > >void >os_aio_simulated_put_read_threads_to_sleep(void); ># 681 "./include/os0file.h" >ulint >os_aio_simulated_handle( > > > ulint segment, > > > > > fil_node_t**message1, > > > > > void** message2, > ulint* type); > > > >ulint >os_aio_validate(void); > > > > > >void >os_aio_print( > > FILE* file); > > > >void >os_aio_refresh_stats(void); ># 730 "./include/os0file.h" >ulint >os_file_get_status( > > > const char* path, > os_file_stat_t* stat_info); ># 18 "./include/fil0fil.h" 2 > > > > >extern const char* fil_path_to_mysql_datadir; ># 34 "./include/fil0fil.h" >typedef unsigned char fil_faddr_t; ># 44 "./include/fil0fil.h" >typedef struct fil_addr_struct fil_addr_t; >struct fil_addr_struct{ > ulint page; > ulint boffset; >}; > > >extern fil_addr_t fil_addr_null; ># 92 "./include/fil0fil.h" >extern ulint fil_n_log_flushes; > >extern ulint fil_n_pending_log_flushes; >extern ulint fil_n_pending_tablespace_flushes; > > > > > >ib_longlong >fil_space_get_version( > > > > ulint id); > > > >rw_lock_t* >fil_space_get_latch( > > > ulint id); > > > >ulint >fil_space_get_type( > > > ulint id); > > > >ibuf_data_t* >fil_space_get_ibuf_data( > > > ulint id); > > > >void >fil_node_create( > > const char* name, > ulint size, > > ulint id, > ulint is_raw); > > > > > >void >fil_space_truncate_start( > > ulint id, > ulint trunc_len); > > > > > > >ulint >fil_space_create( > > > const char* name, > ulint id, > ulint purpose); > > > > >ulint >fil_space_free( > > > ulint id); > > > > >ulint >fil_space_get_size( > > > ulint id); > > > > >ulint >fil_check_adress_in_tablespace( > > > ulint id, > ulint page_no); > > > >void >fil_init( > > ulint max_n_open); > > > >void >fil_print( > > FILE* file); > > > > > > > >void >fil_open_log_and_system_tablespace_files(void); > > > > > >void >fil_close_all_files(void); > > > > > >void >fil_set_max_space_id_if_bigger( > > ulint max_id); > > > > > >void >fil_ibuf_init_at_db_start(void); > > > > > >ulint >fil_write_flushed_lsn_to_data_files( > > > dulint lsn, > ulint arch_log_no); > > > > >void >fil_read_flushed_lsn_and_arch_log_no( > > os_file_t data_file, > ulint one_read_already, > > > > > > dulint* min_flushed_lsn, > dulint* max_flushed_lsn); > > > > >ulint >fil_inc_pending_ibuf_merges( > > > > ulint id); > > > >void >fil_decr_pending_ibuf_merges( > > ulint id); ># 296 "./include/fil0fil.h" >unsigned char* >fil_op_log_parse_or_replay( > > > > > unsigned char* ptr, > > > unsigned char* end_ptr, > ulint type, > ulint do_replay, > > ulint space_id); > > > > > > >ulint >fil_delete_tablespace( > > > ulint id); ># 330 "./include/fil0fil.h" >ulint >fil_discard_tablespace( > > > ulint id); > > > > >ulint >fil_rename_tablespace( > > > const char* old_name, > > > > ulint id, > const char* new_name); ># 359 "./include/fil0fil.h" >ulint >fil_create_new_single_table_tablespace( > > > ulint* space_id, > > > const char* tablename, > > > > ulint is_temp, > > ulint size); ># 385 "./include/fil0fil.h" >ulint >fil_open_single_table_tablespace( > > > ulint check_space_id, > > > > > > > ulint id, > const char* name); ># 409 "./include/fil0fil.h" >ulint >fil_reset_too_high_lsns( > > > const char* name, > > dulint current_lsn); ># 426 "./include/fil0fil.h" >ulint >fil_load_single_table_tablespaces(void); ># 437 "./include/fil0fil.h" >void >fil_print_orphaned_tablespaces(void); > > > > > >ulint >fil_tablespace_deleted_or_being_deleted_in_mem( > > > > ulint id, > ib_longlong version); > > > > > >ulint >fil_tablespace_exists_in_mem( > > > ulint id); > > > > > >ulint >fil_space_for_table_exists_in_mem( > > > > ulint id, > const char* name, > > > ulint is_temp, > > ulint mark_space, > > > > > > ulint print_error_if_does_not_exist); ># 493 "./include/fil0fil.h" >ulint >fil_extend_space_to_desired_size( > > > ulint* actual_size, > > > ulint space_id, > ulint size_after_extend); ># 518 "./include/fil0fil.h" >ulint >fil_space_reserve_free_extents( > > > ulint id, > ulint n_free_now, > ulint n_to_reserve); > > > >void >fil_space_release_free_extents( > > ulint id, > ulint n_reserved); > > > > >ulint >fil_space_get_n_reserved_extents( > > ulint id); > > > > > > >ulint >_fil_io( > > > > > ulint type, ># 562 "./include/fil0fil.h" > ulint sync, > ulint space_id, > ulint block_offset, > ulint byte_offset, > > > ulint len, > > > void* buf, > > > void* message, > > trx_t* trx); > > > > > >ulint >fil_read( > > > > > ulint sync, > ulint space_id, > ulint block_offset, > ulint byte_offset, > > ulint len, > > > void* buf, > > void* message); > > > > > > >ulint >fil_write( > > > > > ulint sync, > ulint space_id, > ulint block_offset, > ulint byte_offset, > > ulint len, > > > void* buf, > > void* message); > > > > > > > >void >fil_aio_wait( > > ulint segment); > > > >typedef enum { > FLUSH_FROM_DIRTY_BUFFER, > FLUSH_FROM_OTHER, > FLUSH_FROM_CHECKPOINT, > FLUSH_FROM_LOG_IO_COMPLETE, > FLUSH_FROM_LOG_WRITE_UP_TO, > FLUSH_FROM_ARCHIVE, > FLUSH_FROM_NUMBER >} flush_from_type; > > > > >void >fil_flush( > > ulint space_id, > > flush_from_type flush_type); > > > > >void >fil_flush_file_spaces( > > ulint purpose, > flush_from_type flush_type); > > > >ulint >fil_validate(void); > > > > > >ulint >fil_addr_is_null( > > > fil_addr_t addr); > > > >ulint >fil_page_get_prev(unsigned char* page); >ulint >fil_page_get_next(unsigned char* page); > > > >void >fil_page_set_type( > > unsigned char* page, > ulint type); > > > >ulint >fil_page_get_type( > > > > unsigned char* page); > > > > >ulint >fil_system_hash_cells(void); > > >ulint >fil_system_hash_nodes(void); > > >typedef struct fil_space_struct fil_space_t; ># 28 "./include/buf0buf.h" 2 ># 1 "./include/mtr0types.h" 1 ># 12 "./include/mtr0types.h" >typedef struct mtr_struct mtr_t; ># 29 "./include/buf0buf.h" 2 ># 1 "./include/buf0types.h" 1 ># 12 "./include/buf0types.h" >typedef struct buf_block_struct buf_block_t; >typedef struct buf_pool_struct buf_pool_t; > >typedef struct buf_io_counter_struct buf_io_counter_t; > > >typedef unsigned char buf_frame_t; ># 30 "./include/buf0buf.h" 2 > ># 1 "./include/hash0hash.h" 1 ># 13 "./include/hash0hash.h" ># 1 "./include/mem0mem.h" 1 ># 16 "./include/mem0mem.h" ># 1 "./include/ut0rnd.h" 1 ># 22 "./include/ut0rnd.h" >static inline >void >ut_rnd_set_seed( > > ulint seed); > > >static inline >ulint >ut_rnd_gen_next_ulint( > > > ulint rnd); > > > > > >static inline >ulint >ut_rnd_gen_ulint(void); > > > > >static inline >ulint >ut_rnd_interval( > > > ulint low, > ulint high); > > >static inline >ulint >ut_rnd_gen_ibool(void); > > > > > > >static inline >ulint >ut_hash_ulint( > > > ulint key, > ulint table_size); > > >static inline >ulint >ut_fold_ulint_pair( > > > ulint n1, > ulint n2); > > >static inline >ulint >ut_fold_dulint( > > > dulint d); > > >static inline >ulint >ut_fold_string( > > > const char* str); > > >static inline >ulint >ut_fold_binary( > > > const unsigned char* str, > ulint len); > > > > >ulint >ut_find_prime( > > > ulint n); > > > ># 1 "./include/ut0rnd.ic" 1 ># 21 "./include/ut0rnd.ic" >extern ulint ut_rnd_ulint_counter; > > > >static inline >void >ut_rnd_set_seed( > > ulint seed) >{ > ut_rnd_ulint_counter = seed; >} > > > >static inline >ulint >ut_rnd_gen_next_ulint( > > > ulint rnd) >{ > ulint n_bits; > > n_bits = 8 * sizeof(ulint); > > rnd = 119785373 * rnd + 126792457; > rnd = 187678878 ^ rnd; > rnd = (rnd << 20) + (rnd >> (n_bits - 20)); > rnd = 85689495 * rnd + 63498502; > rnd = 143537923 ^ rnd; > rnd = (rnd << 20) + (rnd >> (n_bits - 20)); > rnd = 151117737 * rnd + 98781234; > > return(rnd); >} > > > > > > >static inline >ulint >ut_rnd_gen_ulint(void) > > >{ > ulint rnd; > ulint n_bits; > > n_bits = 8 * sizeof(ulint); > > ut_rnd_ulint_counter = > 151117737 * ut_rnd_ulint_counter + 119785373; > > rnd = ut_rnd_gen_next_ulint(ut_rnd_ulint_counter); > > return(rnd); >} > > > >static inline >ulint >ut_rnd_interval( > > > ulint low, > ulint high) >{ > ulint rnd; > > ; > > if (low == high) { > > return(low); > } > > rnd = ut_rnd_gen_ulint(); > > return(low + (rnd % (high - low + 1))); >} > > > >static inline >ulint >ut_rnd_gen_ibool(void) > > >{ > ulint x; > > x = ut_rnd_gen_ulint(); > > if (((x >> 20) + (x >> 15)) & 1) { > > return((1)); > } > > return((0)); >} > > > > > >static inline >ulint >ut_hash_ulint( > > > ulint key, > ulint table_size) >{ > key = key ^ 1653893711; > > return(key % table_size); >} > > > >static inline >ulint >ut_fold_ulint_pair( > > > ulint n1, > ulint n2) >{ > return(((((n1 ^ n2 ^ 1653893711) << 8) + n1) > ^ 1463735687) + n2); >} > > > >static inline >ulint >ut_fold_dulint( > > > dulint d) >{ > return(ut_fold_ulint_pair(ut_dulint_get_low(d), > ut_dulint_get_high(d))); >} > > > >static inline >ulint >ut_fold_string( > > > const char* str) >{ > > > > ulint fold = 0; > > ; > > while (*str != '\0') { > > > > > > > fold = ut_fold_ulint_pair(fold, (ulint)(*str)); > str++; > } > > return(fold); >} > > > >static inline >ulint >ut_fold_binary( > > > const unsigned char* str, > ulint len) >{ > const unsigned char* str_end = str + len; > ulint fold = 0; > > ; > > while (str < str_end) { > fold = ut_fold_ulint_pair(fold, (ulint)(*str)); > > str++; > } > > return(fold); >} ># 119 "./include/ut0rnd.h" 2 ># 17 "./include/mem0mem.h" 2 > > ># 1 "./include/mach0data.h" 1 ># 23 "./include/mach0data.h" >static inline >void >mach_write_to_1( > > unsigned char* b, > ulint n); > > >static inline >ulint >mach_read_from_1( > > > unsigned char* b); > > > >static inline >void >mach_write_to_2( > > unsigned char* b, > ulint n); > > > >static inline >ulint >mach_read_from_2( > > > unsigned char* b); > > > > > >static inline >uint16 >mach_encode_2( > > > ulint n); > > > > >static inline >ulint >mach_decode_2( > > > uint16 n); > > > >static inline >void >mach_write_to_3( > > unsigned char* b, > ulint n); > > > >static inline >ulint >mach_read_from_3( > > > unsigned char* b); > > > >static inline >void >mach_write_to_4( > > unsigned char* b, > ulint n); > > > >static inline >ulint >mach_read_from_4( > > > unsigned char* b); > > >static inline >ulint >mach_write_compressed( > > > unsigned char* b, > ulint n); > > >static inline >ulint >mach_get_compressed_size( > > > ulint n); > > >static inline >ulint >mach_read_compressed( > > > unsigned char* b); > > > >static inline >void >mach_write_to_6( > > unsigned char* b, > dulint n); > > > >static inline >dulint >mach_read_from_6( > > > unsigned char* b); > > > >static inline >void >mach_write_to_7( > > unsigned char* b, > dulint n); > > > >static inline >dulint >mach_read_from_7( > > > unsigned char* b); > > > >static inline >void >mach_write_to_8( > > unsigned char* b, > dulint n); > > > >static inline >dulint >mach_read_from_8( > > > unsigned char* b); > > >static inline >ulint >mach_dulint_write_compressed( > > > unsigned char* b, > dulint n); > > >static inline >ulint >mach_dulint_get_compressed_size( > > > dulint n); > > >static inline >dulint >mach_dulint_read_compressed( > > > unsigned char* b); > > >static inline >ulint >mach_dulint_write_much_compressed( > > > unsigned char* b, > dulint n); > > >static inline >ulint >mach_dulint_get_much_compressed_size( > > > dulint n); > > >static inline >dulint >mach_dulint_read_much_compressed( > > > unsigned char* b); > > > >unsigned char* >mach_parse_compressed( > > > > unsigned char* ptr, > unsigned char* end_ptr, > ulint* val); > > > >unsigned char* >mach_dulint_parse_compressed( > > > > unsigned char* ptr, > unsigned char* end_ptr, > dulint* val); > > >static inline >double >mach_double_read( > > > unsigned char* b); > > >static inline >void >mach_double_write( > > unsigned char* b, > double d); > > >static inline >float >mach_float_read( > > > unsigned char* b); > > >static inline >void >mach_float_write( > > unsigned char* b, > float d); > > >static inline >ulint >mach_read_from_n_little_endian( > > > unsigned char* buf, > ulint buf_size); > > >static inline >void >mach_write_to_n_little_endian( > > unsigned char* dest, > ulint dest_size, > ulint n); > > >static inline >ulint >mach_read_from_2_little_endian( > > > unsigned char* buf); > > >static inline >void >mach_write_to_2_little_endian( > > unsigned char* dest, > ulint n); > > ># 1 "./include/mach0data.ic" 1 ># 12 "./include/mach0data.ic" >static inline >void >mach_write_to_1( > > unsigned char* b, > ulint n) >{ > ; > ; > > b[0] = (unsigned char)n; >} > > > >static inline >ulint >mach_read_from_1( > > > unsigned char* b) >{ > ; > return((ulint)(b[0])); >} > > > > >static inline >void >mach_write_to_2( > > unsigned char* b, > ulint n) >{ > ; > ; > > b[0] = (unsigned char)(n >> 8); > b[1] = (unsigned char)(n); >} > > > > >static inline >ulint >mach_read_from_2( > > > unsigned char* b) >{ > ; > return( ((ulint)(b[0]) << 8) > + (ulint)(b[1]) > ); >} > > > > > >static inline >uint16 >mach_encode_2( > > > ulint n) >{ > uint16 ret; > ; > mach_write_to_2((unsigned char*) &ret, n); > return(ret); >} > > > > >static inline >ulint >mach_decode_2( > > > uint16 n) >{ > ; > return(mach_read_from_2((unsigned char*) &n)); >} > > > > >static inline >void >mach_write_to_3( > > unsigned char* b, > ulint n) >{ > ; > ; > > b[0] = (unsigned char)(n >> 16); > b[1] = (unsigned char)(n >> 8); > b[2] = (unsigned char)(n); >} > > > > >static inline >ulint >mach_read_from_3( > > > unsigned char* b) >{ > ; > return( ((ulint)(b[0]) << 16) > + ((ulint)(b[1]) << 8) > + (ulint)(b[2]) > ); >} > > > > >static inline >void >mach_write_to_4( > > unsigned char* b, > ulint n) >{ > ; ># 160 "./include/mach0data.ic" > b[0] = (unsigned char)(n >> 24); > b[1] = (unsigned char)(n >> 16); > b[2] = (unsigned char)(n >> 8); > b[3] = (unsigned char)n; > >} > > > > >static inline >ulint >mach_read_from_4( > > > unsigned char* b) >{ ># 192 "./include/mach0data.ic" > ; > return( ((ulint)(b[0]) << 24) > + ((ulint)(b[1]) << 16) > + ((ulint)(b[2]) << 8) > + (ulint)(b[3]) > ); > >} ># 208 "./include/mach0data.ic" >static inline >ulint >mach_write_compressed( > > > unsigned char* b, > ulint n) >{ > ; > > if (n < 0x80UL) { > mach_write_to_1(b, n); > return(1); > } else if (n < 0x4000UL) { > mach_write_to_2(b, n | 0x8000UL); > return(2); > } else if (n < 0x200000UL) { > mach_write_to_3(b, n | 0xC00000UL); > return(3); > } else if (n < 0x10000000UL) { > mach_write_to_4(b, n | 0xE0000000UL); > return(4); > } else { > mach_write_to_1(b, 0xF0UL); > mach_write_to_4(b + 1, n); > return(5); > } >} > > > >static inline >ulint >mach_get_compressed_size( > > > ulint n) >{ > if (n < 0x80UL) { > return(1); > } else if (n < 0x4000UL) { > return(2); > } else if (n < 0x200000UL) { > return(3); > } else if (n < 0x10000000UL) { > return(4); > } else { > return(5); > } >} > > > >static inline >ulint >mach_read_compressed( > > > unsigned char* b) >{ > ulint flag; > > ; > > flag = mach_read_from_1(b); > > if (flag < 0x80UL) { > return(flag); > } else if (flag < 0xC0UL) { > return(mach_read_from_2(b) & 0x7FFFUL); > } else if (flag < 0xE0UL) { > return(mach_read_from_3(b) & 0x3FFFFFUL); > } else if (flag < 0xF0UL) { > return(mach_read_from_4(b) & 0x1FFFFFFFUL); > } else { > ; > return(mach_read_from_4(b + 1)); > } >} > > > > >static inline >void >mach_write_to_8( > > unsigned char* b, > dulint n) >{ > ; > > mach_write_to_4(b, ut_dulint_get_high(n)); > mach_write_to_4(b + 4, ut_dulint_get_low(n)); >} > > > > >static inline >dulint >mach_read_from_8( > > > unsigned char* b) >{ > ulint high; > ulint low; > > ; > > high = mach_read_from_4(b); > low = mach_read_from_4(b + 4); > > return(ut_dulint_create(high, low)); >} > > > > >static inline >void >mach_write_to_7( > > unsigned char* b, > dulint n) >{ > ; > > mach_write_to_3(b, ut_dulint_get_high(n)); > mach_write_to_4(b + 3, ut_dulint_get_low(n)); >} > > > > >static inline >dulint >mach_read_from_7( > > > unsigned char* b) >{ > ulint high; > ulint low; > > ; > > high = mach_read_from_3(b); > low = mach_read_from_4(b + 3); > > return(ut_dulint_create(high, low)); >} > > > > >static inline >void >mach_write_to_6( > > unsigned char* b, > dulint n) >{ > ; > > mach_write_to_2(b, ut_dulint_get_high(n)); > mach_write_to_4(b + 2, ut_dulint_get_low(n)); >} > > > > >static inline >dulint >mach_read_from_6( > > > unsigned char* b) >{ > ulint high; > ulint low; > > ; > > high = mach_read_from_2(b); > low = mach_read_from_4(b + 2); > > return(ut_dulint_create(high, low)); >} > > > >static inline >ulint >mach_dulint_write_compressed( > > > unsigned char* b, > dulint n) >{ > ulint size; > > ; > > size = mach_write_compressed(b, ut_dulint_get_high(n)); > mach_write_to_4(b + size, ut_dulint_get_low(n)); > > return(size + 4); >} > > > >static inline >ulint >mach_dulint_get_compressed_size( > > > dulint n) >{ > return(4 + mach_get_compressed_size(ut_dulint_get_high(n))); >} > > > >static inline >dulint >mach_dulint_read_compressed( > > > unsigned char* b) >{ > ulint high; > ulint low; > ulint size; > > ; > > high = mach_read_compressed(b); > > size = mach_get_compressed_size(high); > > low = mach_read_from_4(b + size); > > return(ut_dulint_create(high, low)); >} > > > >static inline >ulint >mach_dulint_write_much_compressed( > > > unsigned char* b, > dulint n) >{ > ulint size; > > ; > > if (ut_dulint_get_high(n) == 0) { > return(mach_write_compressed(b, ut_dulint_get_low(n))); > } > > *b = (unsigned char)0xFF; > size = 1 + mach_write_compressed(b + 1, ut_dulint_get_high(n)); > > size += mach_write_compressed(b + size, ut_dulint_get_low(n)); > > return(size); >} > > > >static inline >ulint >mach_dulint_get_much_compressed_size( > > > dulint n) >{ > if (0 == ut_dulint_get_high(n)) { > return(mach_get_compressed_size(ut_dulint_get_low(n))); > } > > return(1 + mach_get_compressed_size(ut_dulint_get_high(n)) > + mach_get_compressed_size(ut_dulint_get_low(n))); >} > > > >static inline >dulint >mach_dulint_read_much_compressed( > > > unsigned char* b) >{ > ulint high; > ulint low; > ulint size; > > ; > > if (*b != (unsigned char)0xFF) { > high = 0; > size = 0; > } else { > high = mach_read_compressed(b + 1); > > size = 1 + mach_get_compressed_size(high); > } > > low = mach_read_compressed(b + size); > > return(ut_dulint_create(high, low)); >} > > > >static inline >double >mach_double_read( > > > unsigned char* b) >{ > double d; > ulint i; > unsigned char* ptr; > > ptr = (unsigned char*)&d; > > for (i = 0; i < sizeof(double); i++) { > > ptr[sizeof(double) - i - 1] = b[i]; > > > > } > > return(d); >} > > > >static inline >void >mach_double_write( > > unsigned char* b, > double d) >{ > ulint i; > unsigned char* ptr; > > ptr = (unsigned char*)&d; > > for (i = 0; i < sizeof(double); i++) { > > b[i] = ptr[sizeof(double) - i - 1]; > > > > } >} > > > >static inline >float >mach_float_read( > > > unsigned char* b) >{ > float d; > ulint i; > unsigned char* ptr; > > ptr = (unsigned char*)&d; > > for (i = 0; i < sizeof(float); i++) { > > ptr[sizeof(float) - i - 1] = b[i]; > > > > } > > return(d); >} > > > >static inline >void >mach_float_write( > > unsigned char* b, > float d) >{ > ulint i; > unsigned char* ptr; > > ptr = (unsigned char*)&d; > > for (i = 0; i < sizeof(float); i++) { > > b[i] = ptr[sizeof(float) - i - 1]; > > > > } >} > > > >static inline >ulint >mach_read_from_n_little_endian( > > > unsigned char* buf, > ulint buf_size) >{ > ulint n = 0; > unsigned char* ptr; > > ; > ; > > ptr = buf + buf_size; > > for (;;) { > ptr--; > > n = n << 8; > > n += (ulint)(*ptr); > > if (ptr == buf) { > break; > } > } > > return(n); >} > > > >static inline >void >mach_write_to_n_little_endian( > > unsigned char* dest, > ulint dest_size, > ulint n) >{ > unsigned char* end; > > ; > ; > > end = dest + dest_size; > > for (;;) { > *dest = (unsigned char)(n & 0xFF); > > n = n >> 8; > > dest++; > > if (dest == end) { > break; > } > } > > ; >} > > > >static inline >ulint >mach_read_from_2_little_endian( > > > unsigned char* buf) >{ > return((ulint)(*buf) + ((ulint)(*(buf + 1))) * 256); >} > > > >static inline >void >mach_write_to_2_little_endian( > > unsigned char* dest, > ulint n) >{ > ; > > *dest = (unsigned char)(n & 0xFFUL); > > n = n >> 8; > dest++; > > *dest = (unsigned char)(n & 0xFFUL); >} ># 332 "./include/mach0data.h" 2 ># 20 "./include/mem0mem.h" 2 > > > > >typedef struct mem_block_info_struct mem_block_info_t; > > > >typedef mem_block_info_t mem_block_t; > > >typedef mem_block_t mem_heap_t; ># 57 "./include/mem0mem.h" >void >mem_init( > > ulint size); ># 103 "./include/mem0mem.h" >static inline >mem_heap_t* >mem_heap_create_func( > > > ulint n, > > > > > > void* init_block, ># 124 "./include/mem0mem.h" > ulint type, > > const char* file_name, > ulint line > ); > > > > >static inline >void >mem_heap_free_func( > > mem_heap_t* heap, > const char* file_name, > ulint line); > > >static inline >void* >mem_heap_alloc( > > > > mem_heap_t* heap, > ulint n); > > > > >static inline >unsigned char* >mem_heap_get_heap_top( > > > mem_heap_t* heap); > > > > >static inline >void >mem_heap_free_heap_top( > > mem_heap_t* heap, > unsigned char* old_top); > > >static inline >void >mem_heap_empty( > > mem_heap_t* heap); > > > >static inline >void* >mem_heap_get_top( > > > mem_heap_t* heap, > ulint n); > > > >static inline >void >mem_heap_free_top( > > mem_heap_t* heap, > ulint n); > > >static inline >ulint >mem_heap_get_size( > > mem_heap_t* heap); ># 219 "./include/mem0mem.h" >static inline >void* >mem_alloc_func( > > > > ulint n, > const char* file_name, > ulint line >); > > > > > > >void* >mem_alloc_func_noninline( > > > > ulint n, > const char* file_name, > ulint line > ); ># 253 "./include/mem0mem.h" >static inline >void >mem_free_func( > > void* ptr, > const char* file_name, > ulint line >); > > > >static inline >char* >mem_strdup( > > > > const char* str); > > >static inline >char* >mem_strdupl( > > > > const char* str, > ulint len); > > > >static inline >char* >mem_strdupq( > > > > const char* str, > char q); > > > > >char* >mem_heap_strdup( > > > mem_heap_t* heap, > const char* str); > > > >static inline >char* >mem_heap_strdupl( > > > mem_heap_t* heap, > const char* str, > ulint len); ># 328 "./include/mem0mem.h" >struct mem_block_info_struct { > ulint magic_n; > char file_name[8]; > ulint line; > struct { ulint count; mem_block_t * start; mem_block_t * end; } base; > > > struct { mem_block_t * prev; mem_block_t * next; } list; > > > > ulint len; > ulint type; > > ulint init_block; > > > ulint free; > > ulint start; > > unsigned char* free_block; ># 360 "./include/mem0mem.h" >}; > > > > > > > ># 1 "./include/mem0dbg.h" 1 ># 41 "./include/mem0dbg.h" >void >mem_heap_validate_or_print( > > mem_heap_t* heap, > unsigned char* top, > > > ulint print, > > > ulint* error, > ulint* us_size, > > > > > ulint* ph_size, > > > ulint* n_blocks); ># 75 "./include/mem0dbg.h" >ulint >mem_heap_check( > > > mem_heap_t* heap); > > > >ulint >mem_heap_validate( > > > mem_heap_t* heap); ># 115 "./include/mem0dbg.h" >void >mem_analyze_corruption( > > unsigned char* ptr); > > > > >void >mem_print_info(void); > > > > > >void >mem_print_new_info(void); ># 369 "./include/mem0mem.h" 2 > > ># 1 "./include/mem0mem.ic" 1 ># 9 "./include/mem0mem.ic" ># 1 "./include/mem0dbg.ic" 1 ># 10 "./include/mem0mem.ic" 2 > ># 1 "./include/mem0pool.h" 1 ># 16 "./include/mem0pool.h" >typedef struct mem_area_struct mem_area_t; >typedef struct mem_pool_struct mem_pool_t; > > >extern mem_pool_t* mem_comm_pool; > > > >struct mem_area_struct{ > ulint size_and_free; > > > > struct { mem_area_t * prev; mem_area_t * next; } > free_list; >}; ># 40 "./include/mem0pool.h" >mem_pool_t* >mem_pool_create( > > > ulint size); > > > > >void* >mem_area_alloc( > > > ulint size, > > > mem_pool_t* pool); > > > >void >mem_area_free( > > void* ptr, > > mem_pool_t* pool); > > > >ulint >mem_pool_get_reserved( > > > mem_pool_t* pool); > > > >void >mem_pool_mutex_enter(void); > > > > >void >mem_pool_mutex_exit(void); > > > > >ulint >mem_pool_validate( > > > mem_pool_t* pool); > > > >void >mem_pool_print_info( > > FILE* outfile, > mem_pool_t* pool); > > > ># 1 "./include/mem0pool.ic" 1 ># 106 "./include/mem0pool.h" 2 ># 12 "./include/mem0mem.ic" 2 > > > > >mem_block_t* >mem_heap_create_block( > > > > mem_heap_t* heap, > > ulint n, > > void* init_block, > > ulint type, > > const char* file_name, > ulint line); > > > >void >mem_heap_block_free( > > mem_heap_t* heap, > mem_block_t* block); > > > >void >mem_heap_free_block_free( > > mem_heap_t* heap); > > > >mem_block_t* >mem_heap_add_block( > > > > mem_heap_t* heap, > ulint n); > >static inline >void >mem_block_set_len(mem_block_t* block, ulint len) >{ > ; > > block->len = len; >} > >static inline >ulint >mem_block_get_len(mem_block_t* block) >{ > return(block->len); >} > >static inline >void >mem_block_set_type(mem_block_t* block, ulint type) >{ > ; > > > block->type = type; >} > >static inline >ulint >mem_block_get_type(mem_block_t* block) >{ > return(block->type); >} > >static inline >void >mem_block_set_free(mem_block_t* block, ulint free) >{ > ; > ; > > block->free = free; >} > >static inline >ulint >mem_block_get_free(mem_block_t* block) >{ > return(block->free); >} > >static inline >void >mem_block_set_start(mem_block_t* block, ulint start) >{ > ; > > block->start = start; >} > >static inline >ulint >mem_block_get_start(mem_block_t* block) >{ > return(block->start); >} > > > >static inline >void* >mem_heap_alloc( > > > mem_heap_t* heap, > ulint n) > > >{ > mem_block_t* block; > void* buf; > ulint free; > > ; > > block = (heap->base).end; > > ; > > > > > if (mem_block_get_len(block) > < mem_block_get_free(block) + ut_calc_align((n), 8)) { > > block = mem_heap_add_block(heap, n); > > if (block == ((void *)0)) { > > return(((void *)0)); > } > } > > free = mem_block_get_free(block); > > buf = (unsigned char*)block + free; > > mem_block_set_free(block, free + ut_calc_align((n), 8)); ># 178 "./include/mem0mem.ic" > return(buf); >} > > > >static inline >unsigned char* >mem_heap_get_heap_top( > > > mem_heap_t* heap) >{ > mem_block_t* block; > unsigned char* buf; > > ; > > block = (heap->base).end; > > buf = (unsigned char*)block + mem_block_get_free(block); > > return(buf); >} > > > > > >static inline >void >mem_heap_free_heap_top( > > mem_heap_t* heap, > unsigned char* old_top) >{ > mem_block_t* block; > mem_block_t* prev_block; > > > > > > > ; ># 237 "./include/mem0mem.ic" > block = (heap->base).end; > > while (block != ((void *)0)) { > if (((unsigned char*)block + mem_block_get_free(block) >= old_top) > && ((unsigned char*)block <= old_top)) { > > > break; > } > > > > > prev_block = (((block)->list).prev); > > mem_heap_block_free(heap, block); > > block = prev_block; > } > > ; > > > mem_block_set_free(block, old_top - (unsigned char*)block); ># 279 "./include/mem0mem.ic" > if ((heap != block) && (mem_block_get_free(block) == > mem_block_get_start(block))) { > mem_heap_block_free(heap, block); > } >} > > > >static inline >void >mem_heap_empty( > > mem_heap_t* heap) >{ > mem_heap_free_heap_top(heap, (unsigned char*)heap + mem_block_get_start(heap)); > > if (heap->free_block) { > mem_heap_free_block_free(heap); > } >} > > > > >static inline >void* >mem_heap_get_top( > > > mem_heap_t* heap, > ulint n) >{ > mem_block_t* block; > void* buf; > > ; > > block = (heap->base).end; > > buf = (unsigned char*)block + mem_block_get_free(block) - ut_calc_align((n), 8); ># 332 "./include/mem0mem.ic" > return(buf); >} > > > > >static inline >void >mem_heap_free_top( > > mem_heap_t* heap, > ulint n) >{ > mem_block_t* block; > > ; > > block = (heap->base).end; > > > mem_block_set_free(block, mem_block_get_free(block) > - ut_calc_align((n), 8)); ># 365 "./include/mem0mem.ic" > if ((heap != block) && (mem_block_get_free(block) == > mem_block_get_start(block))) { > mem_heap_block_free(heap, block); > } >} > > > > > >static inline >mem_heap_t* >mem_heap_create_func( > > > ulint n, > > > > > > void* init_block, ># 396 "./include/mem0mem.ic" > ulint type, > > const char* file_name, > ulint line > ) >{ > mem_block_t* block; > > if (n > 0) { > block = mem_heap_create_block(((void *)0), n, init_block, type, > file_name, line); > } else { > block = mem_heap_create_block(((void *)0), 64, > init_block, type, file_name, line); > } > > ; > > { (block->base).count = 0; (block->base).start = ((void *)0); (block->base).end = ((void *)0);}; > > > { ; ((block->base).count)++; ((block)->list).next = (block->base).start; ((block)->list).prev = ((void *)0); if ((block->base).start != ((void *)0)) { (((block->base).start)->list).prev = (block); } (block->base).start = (block); if ((block->base).end == ((void *)0)) { (block->base).end = (block); }}; ># 430 "./include/mem0mem.ic" > return(block); >} > > > > > >static inline >void >mem_heap_free_func( > > mem_heap_t* heap, > const char* file_name __attribute__((unused)), > > ulint line __attribute__((unused))) >{ > mem_block_t* block; > mem_block_t* prev_block; > > ; > > block = (heap->base).end; ># 462 "./include/mem0mem.ic" > if (heap->free_block) { > mem_heap_free_block_free(heap); > } > > while (block != ((void *)0)) { > > > > prev_block = (((block)->list).prev); > > mem_heap_block_free(heap, block); > > block = prev_block; > } >} > > > > > > >static inline >void* >mem_alloc_func( > > > > ulint n, > const char* file_name, > ulint line > ) >{ > mem_heap_t* heap; > void* buf; > > heap = mem_heap_create_func(n, ((void *)0), 0, file_name, > line); > if (heap == ((void *)0)) { > > return(((void *)0)); > } > > > > > > > buf = mem_heap_alloc(heap, n); > > do { if (__builtin_expect(!((ulint)((unsigned char*)heap == (unsigned char*)buf - ut_calc_align(sizeof(mem_block_info_t), 8) - 0)), (0))) { ut_dbg_assertion_failed("(byte*)heap == (byte*)buf - MEM_BLOCK_HEADER_SIZE - MEM_FIELD_HEADER_SIZE", "./include/mem0mem.ic", (ulint) 512); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/mem0mem.ic", (ulint) 512); } while (0); } while (0); > > return(buf); >} > > > > > >static inline >void >mem_free_func( > > void* ptr, > const char* file_name, > ulint line > ) >{ > mem_heap_t* heap; > > heap = (mem_heap_t*)((unsigned char*)ptr - ut_calc_align(sizeof(mem_block_info_t), 8) > - 0); > mem_heap_free_func(heap, file_name, line); >} > > > >static inline >ulint >mem_heap_get_size( > > mem_heap_t* heap) >{ > mem_block_t* block; > ulint size = 0; > > ; > > block = heap; > > while (block != ((void *)0)) { > > size += mem_block_get_len(block); > block = (((block)->list).next); > } > > if (heap->free_block) { > size += (2 * 8192); > } > > return(size); >} > > > >static inline >char* >mem_strdup( > > > > const char* str) >{ > ulint len = strlen(str) + 1; > return(memcpy(mem_alloc_func((len), "./include/mem0mem.ic", 575), str, len)); >} > > > >static inline >char* >mem_strdupl( > > > > const char* str, > ulint len) >{ > char* s = mem_alloc_func((len + 1), "./include/mem0mem.ic", 589); > s[len] = 0; > return(memcpy(s, str, len)); >} > > > >static inline >char* >mem_strdupq( > > > > const char* str, > char q) >{ > char* dst; > char* d; > const char* s = str; > size_t len = strlen(str) + 3; > > while((s = (__extension__ (__builtin_constant_p (q) && !__builtin_constant_p (s) && (q) == '\0' ? (char *) __rawmemchr (s, q) : __builtin_strchr (s, q)))) != ((void *)0)) { > s++; > len++; > } > > d = dst = mem_alloc_func((len), "./include/mem0mem.ic", 615); > *d++ = q; > s = str; > while(*s) { > if ((*d++ = *s++) == q) { > *d++ = q; > } > } > *d++ = q; > *d++ = '\0'; > ; > return(dst); >} > > > > >static inline >char* >mem_heap_strdupl( > > > mem_heap_t* heap, > const char* str, > ulint len) >{ > char* s = mem_heap_alloc(heap, len + 1); > s[len] = 0; > return(memcpy(s, str, len)); >} ># 372 "./include/mem0mem.h" 2 ># 14 "./include/hash0hash.h" 2 > > >typedef struct hash_table_struct hash_table_t; >typedef struct hash_cell_struct hash_cell_t; > >typedef void* hash_node_t; ># 28 "./include/hash0hash.h" >hash_table_t* >hash0_create( > > > ulint n); > > > >void >hash_create_mutexes( > > hash_table_t* table, > ulint n_mutexes, > ulint sync_level); > > > > >void >hash_table_free( > > hash_table_t* table); > > >static inline >ulint >hash_calc_hash( > > > ulint fold, > hash_table_t* table); ># 154 "./include/hash0hash.h" >static inline >hash_cell_t* >hash_get_nth_cell( > > > hash_table_t* table, > ulint n); > > >static inline >ulint >hash_get_n_cells( > > > hash_table_t* table); ># 230 "./include/hash0hash.h" >static inline >ulint >hash_get_mutex_no( > > > hash_table_t* table, > ulint fold); > > >static inline >mem_heap_t* >hash_get_nth_heap( > > > hash_table_t* table, > ulint i); > > >static inline >mem_heap_t* >hash_get_heap( > > > hash_table_t* table, > ulint fold); > > >static inline >ib_mutex_t* >hash_get_nth_mutex( > > > hash_table_t* table, > ulint i); > > >static inline >ib_mutex_t* >hash_get_mutex( > > > hash_table_t* table, > ulint fold); > > > >void >hash_mutex_enter( > > hash_table_t* table, > ulint fold); > > > >void >hash_mutex_exit( > > hash_table_t* table, > ulint fold); > > > >void >hash_mutex_enter_all( > > hash_table_t* table); > > > >void >hash_mutex_exit_all( > > hash_table_t* table); > > >struct hash_cell_struct{ > void* node; >}; > > >struct hash_table_struct { > ulint adaptive; > > ulint n_cells; > hash_cell_t* array; > ulint n_mutexes; > > ib_mutex_t* mutexes; > > mem_heap_t** heaps; > > > > mem_heap_t* heap; > ulint magic_n; >}; > > > > ># 1 "./include/hash0hash.ic" 1 ># 13 "./include/hash0hash.ic" >static inline >hash_cell_t* >hash_get_nth_cell( > > > hash_table_t* table, > ulint n) >{ > ; > > return(table->array + n); >} > > > >static inline >ulint >hash_get_n_cells( > > > hash_table_t* table) >{ > return(table->n_cells); >} > > > >static inline >ulint >hash_calc_hash( > > > ulint fold, > hash_table_t* table) >{ > return(ut_hash_ulint(fold, table->n_cells)); >} > > > >static inline >ulint >hash_get_mutex_no( > > > hash_table_t* table, > ulint fold) >{ > return(ut_2pow_remainder(fold, table->n_mutexes)); >} > > > >static inline >mem_heap_t* >hash_get_nth_heap( > > > hash_table_t* table, > ulint i) >{ > ; > > return(table->heaps[i]); >} > > > >static inline >mem_heap_t* >hash_get_heap( > > > hash_table_t* table, > ulint fold) >{ > ulint i; > > if (table->heap) { > return(table->heap); > } > > i = hash_get_mutex_no(table, fold); > > return(hash_get_nth_heap(table, i)); >} > > > >static inline >ib_mutex_t* >hash_get_nth_mutex( > > > hash_table_t* table, > ulint i) >{ > ; > > return(table->mutexes + i); >} > > > >static inline >ib_mutex_t* >hash_get_mutex( > > > hash_table_t* table, > ulint fold) >{ > ulint i; > > i = hash_get_mutex_no(table, fold); > > return(hash_get_nth_mutex(table, i)); >} ># 331 "./include/hash0hash.h" 2 ># 32 "./include/buf0buf.h" 2 > ># 1 "./include/os0proc.h" 1 ># 16 "./include/os0proc.h" ># 1 "/usr/include/sys/ipc.h" 1 3 4 ># 29 "/usr/include/sys/ipc.h" 3 4 ># 1 "/usr/include/bits/ipctypes.h" 1 3 4 ># 33 "/usr/include/bits/ipctypes.h" 3 4 >typedef int __ipc_pid_t; ># 30 "/usr/include/sys/ipc.h" 2 3 4 ># 1 "/usr/include/bits/ipc.h" 1 3 4 ># 43 "/usr/include/bits/ipc.h" 3 4 >struct ipc_perm > { > __key_t __key; > __uid_t uid; > __gid_t gid; > __uid_t cuid; > __gid_t cgid; > __mode_t mode; > __uint32_t __seq; > __uint32_t __pad1; > __uint64_t __unused1; > __uint64_t __unused2; > }; > > > > > >extern int __ipc (int __call, int __first, int __second, int __third, > void *__ptr) __attribute__ ((__nothrow__)); > > ># 31 "/usr/include/sys/ipc.h" 2 3 4 ># 52 "/usr/include/sys/ipc.h" 3 4 > > > >extern key_t ftok (__const char *__pathname, int __proj_id) __attribute__ ((__nothrow__)); > > ># 17 "./include/os0proc.h" 2 ># 1 "/usr/include/sys/shm.h" 1 3 4 ># 25 "/usr/include/sys/shm.h" 3 4 ># 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4 ># 26 "/usr/include/sys/shm.h" 2 3 4 > > > > > ># 1 "/usr/include/bits/shm.h" 1 3 4 ># 40 "/usr/include/bits/shm.h" 3 4 > > > > >extern int __getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > >typedef unsigned long int shmatt_t; > > >struct shmid_ds > { > struct ipc_perm shm_perm; > > > > __time_t shm_atime; > > > > __time_t shm_dtime; > > > > __time_t shm_ctime; > > > > size_t shm_segsz; > __pid_t shm_cpid; > __pid_t shm_lpid; > shmatt_t shm_nattch; > unsigned long __unused5; > unsigned long __unused6; > }; ># 89 "/usr/include/bits/shm.h" 3 4 >struct shminfo > { > unsigned long int shmmax; > unsigned long int shmmin; > unsigned long int shmmni; > unsigned long int shmseg; > unsigned long int shmall; > unsigned long int __unused1; > unsigned long int __unused2; > unsigned long int __unused3; > unsigned long int __unused4; > }; > >struct shm_info > { > int used_ids; > unsigned long int shm_tot; > unsigned long int shm_rss; > unsigned long int shm_swp; > unsigned long int swap_attempts; > unsigned long int swap_successes; > }; > > > > ># 32 "/usr/include/sys/shm.h" 2 3 4 ># 45 "/usr/include/sys/shm.h" 3 4 > > > > > > >extern int shmctl (int __shmid, int __cmd, struct shmid_ds *__buf) __attribute__ ((__nothrow__)); > > >extern int shmget (key_t __key, size_t __size, int __shmflg) __attribute__ ((__nothrow__)); > > >extern void *shmat (int __shmid, __const void *__shmaddr, int __shmflg) > __attribute__ ((__nothrow__)); > > >extern int shmdt (__const void *__shmaddr) __attribute__ ((__nothrow__)); > > ># 18 "./include/os0proc.h" 2 > > >typedef void* os_process_t; >typedef unsigned long int os_process_id_t; > > > > > >typedef ulint os_awe_t; > > > > > > > >extern ulint os_use_large_pages; > >extern ulint os_large_page_size; > > > > > > >ulint >os_awe_enable_lock_pages_in_mem(void); > > > > > > > >ulint >os_awe_allocate_physical_mem( > > > os_awe_t** page_info, > > > > ulint n_megabytes); > > > > >unsigned char* >os_awe_allocate_virtual_mem_window( > > > > ulint size); ># 83 "./include/os0proc.h" >ulint >os_awe_map_physical_mem_to_window( > > > > unsigned char* ptr, > > > > ulint n_mem_pages, > > os_awe_t* page_info); ># 103 "./include/os0proc.h" >ulint >os_proc_get_number(void); > > > > >void* >os_mem_alloc_nocache( > > > ulint n); > > > >void* >os_mem_alloc_large( > > > ulint n, > ulint set_to_zero, > > ulint assert_on_error); > > > > >void >os_mem_free_large( > >void *ptr); > > > > >void >os_process_set_priority_boost( > > ulint do_boost); > > > ># 1 "./include/os0proc.ic" 1 ># 145 "./include/os0proc.h" 2 ># 34 "./include/buf0buf.h" 2 ># 58 "./include/buf0buf.h" >extern buf_pool_t* buf_pool; > > > > > >extern ulint srv_buf_pool_write_requests; > > > > > >buf_pool_t* >buf_pool_init( > > > > ulint max_size, > > ulint curr_size, > > > ulint n_frames); > > > > > > > >static inline >ulint >buf_pool_get_curr_size(void); > > > > > >static inline >ulint >buf_pool_get_max_size(void); > > > > > >static inline >dulint >buf_pool_get_oldest_modification(void); > > > > > > >buf_frame_t* >buf_frame_alloc(void); > > > > > >void >buf_frame_free( > > buf_frame_t* frame); > > >static inline >unsigned char* >buf_frame_copy( > > > unsigned char* buf, > buf_frame_t* frame); ># 165 "./include/buf0buf.h" >ulint >buf_page_optimistic_get_func( > > > ulint rw_latch, > buf_block_t* block, > buf_frame_t* guess, > > dulint modify_clock, > > const char* file, > ulint line, > mtr_t* mtr); > > > > > >static inline >buf_frame_t* >buf_page_get_release_on_io( > > > > ulint space, > ulint offset, > > buf_frame_t* guess, > ulint rw_latch, > > ulint savepoint, > mtr_t* mtr); > > > > >ulint >buf_page_get_known_nowait( > > > ulint rw_latch, > buf_frame_t* guess, > ulint mode, > const char* file, > ulint line, > mtr_t* mtr); > > > >buf_frame_t* >buf_page_get_gen( > > > ulint space, > ulint offset, > ulint rw_latch, > buf_frame_t* guess, > ulint mode, > > const char* file, > ulint line, > mtr_t* mtr); > > > > > > >buf_frame_t* >buf_page_create( > > > ulint space, > ulint offset, > > mtr_t* mtr); > > > >void >buf_page_init_for_backup_restore( > > ulint space, > ulint offset, > > buf_block_t* block); > > > >static inline >void >buf_page_release( > > buf_block_t* block, > ulint rw_latch, > > mtr_t* mtr); > > > > > >void >buf_page_make_young( > > buf_frame_t* frame); > > > > >ulint >buf_page_peek( > > > > > ulint space, > ulint offset); > > > > > >buf_block_t* >buf_page_peek_block( > > > > > ulint space, > ulint offset); > > > > >void >buf_reset_check_index_page_at_flush( > > ulint space, > ulint offset); > > > > > > >buf_block_t* >buf_page_set_file_page_was_freed( > > > > ulint space, > ulint offset); > > > > > > >buf_block_t* >buf_page_reset_file_page_was_freed( > > > > ulint space, > ulint offset); > > > > >static inline >ulint >buf_block_peek_if_too_old( > > > buf_block_t* block); > > > > > >ulint >buf_page_peek_if_search_hashed( > > > > ulint space, > ulint offset); > > > >static inline >dulint >buf_frame_get_newest_modification( > > > buf_frame_t* frame); > > > > >static inline >dulint >buf_frame_modify_clock_inc( > > > buf_frame_t* frame); > > > > >static inline >dulint >buf_block_modify_clock_inc( > > > buf_block_t* block); > > > >static inline >dulint >buf_block_get_modify_clock( > > > buf_block_t* block); > > > > > >ulint >buf_calc_page_new_checksum( > > > unsigned char* page); ># 409 "./include/buf0buf.h" >ulint >buf_calc_page_old_checksum( > > > unsigned char* page); > > > >ulint >buf_page_is_corrupted( > > > unsigned char* read_buf); > > > >static inline >ulint >buf_frame_get_page_no( > > > unsigned char* ptr); > > > >static inline >ulint >buf_frame_get_space_id( > > > unsigned char* ptr); > > > >static inline >void >buf_ptr_get_fsp_addr( > > unsigned char* ptr, > ulint* space, > fil_addr_t* addr); > > > >static inline >ulint >buf_frame_get_lock_hash_val( > > > unsigned char* ptr); > > > >static inline >ib_mutex_t* >buf_frame_get_mutex( > > > unsigned char* ptr); > > >static inline >buf_frame_t* >buf_frame_align( > > > unsigned char* ptr); > > > >static inline >ulint >buf_pool_is_block( > > > void* ptr); ># 510 "./include/buf0buf.h" >void >buf_page_print( > > unsigned char* read_buf); > > > > >ulint >buf_get_n_pending_ios(void); > > > > >void >buf_print_io( > > FILE* file); > > > > >ulint >buf_get_modified_ratio_pct(void); > > > > >void >buf_refresh_io_stats(void); > > > > >ulint >buf_all_freed(void); > > > > > >ulint >buf_pool_check_no_pending_io(void); > > > > > > > >void >buf_pool_invalidate(void); ># 572 "./include/buf0buf.h" >void >buf_awe_map_page_to_frame( > > buf_block_t* block, > > ulint add_to_mapped_list); ># 596 "./include/buf0buf.h" >static inline >buf_frame_t* >buf_block_get_frame( > > > buf_block_t* block); > > >static inline >ulint >buf_block_get_space( > > > buf_block_t* block); > > >static inline >ulint >buf_block_get_page_no( > > > buf_block_t* block); > > >static inline >buf_block_t* >buf_block_align( > > > unsigned char* ptr); > > > >static inline >ulint >buf_page_io_query( > > > buf_block_t* block); > > >static inline >buf_block_t* >buf_pool_get_nth_block( > > > buf_pool_t* pool, > ulint i); ># 656 "./include/buf0buf.h" >buf_block_t* >buf_page_init_for_read( > > > ulint* err, > ulint mode, > ulint space, > ib_longlong tablespace_version, > > > ulint offset); > > > > >void >buf_page_io_complete( > > buf_block_t* block); > > > >static inline >ulint >buf_page_address_fold( > > > ulint space, > ulint offset); > > >static inline >buf_block_t* >buf_page_hash_get( > > > ulint space, > ulint offset); > > > >static inline >ulint >buf_pool_clock_tic(void); > > > > > >ulint >buf_get_free_list_len(void); > > >void buf_pool_dump(void); >buf_block_t* buf_pool_get_nth_block_no_inline(buf_pool_t* pool, ulint i); > > > > > > >void >buf_io_counter_control(void); > > >void >buf_io_counter_clear(void); > > > > >struct buf_block_struct{ > > > > ulint magic_n; > ulint state; > > > > > unsigned char* frame; > > > > > > > > os_awe_t* awe_info; > > > > > ulint space; > ulint offset; > ulint lock_hash_val; > > ib_mutex_t mutex; > > > > > > rw_lock_t lock; > > buf_block_t* hash; > > ulint check_index_page_at_flush; ># 774 "./include/buf0buf.h" > struct { buf_block_t * prev; buf_block_t * next; } flush_list; > > > dulint newest_modification; > > > > dulint oldest_modification; > > > > > > ulint flush_type; > > > > > > > struct { buf_block_t * prev; buf_block_t * next; } free; > > ulint in_free_list; > > struct { buf_block_t * prev; buf_block_t * next; } LRU; > > struct { buf_block_t * prev; buf_block_t * next; } awe_LRU_free_mapped; > > > > ulint in_LRU_list; > > ulint LRU_position; > > > > > > > > ulint freed_page_clock; > > > > > > ulint old; > > ulint accessed; > > > > > > > ulint buf_fix_count; > > > ulint io_fix; > > > > > > dulint modify_clock; ># 853 "./include/buf0buf.h" > ulint n_hash_helps; > > ulint n_fields; > > ulint n_bytes; > > ulint side; ># 873 "./include/buf0buf.h" > ulint is_hashed; > > > > > > ulint n_pointers; > > > ulint curr_n_fields; > > ulint curr_n_bytes; > ulint curr_side; > > > dict_index_t* index; ># 897 "./include/buf0buf.h" > ulint file_page_was_freed; > > >}; > > > > > > >struct buf_pool_struct{ > > > > ib_mutex_t mutex; > > > unsigned char* frame_mem; > > > > > unsigned char* frame_zero; > > > unsigned char* high_end; > > ulint n_frames; > buf_block_t* blocks; > buf_block_t** blocks_of_frames; ># 937 "./include/buf0buf.h" > os_awe_t* awe_info; > > > ulint max_size; > > ulint curr_size; > > > hash_table_t* io_counter_hash; > mem_heap_t* io_counter_heap; > ulint io_counters; > hash_table_t* page_hash; > rw_lock_t hash_latch; > > ulint n_pend_reads; > > time_t last_printout_time; > > ulint n_pages_read; > ulint n_pages_written; > ulint n_pages_created; > > ulint n_page_gets; > > > > > > ulint n_pages_awe_remapped; > > > ulint n_page_gets_old; > > > ulint n_pages_read_old; > > ulint n_pages_written_old; > ulint n_pages_created_old; > > ulint n_pages_awe_remapped_old; > > > struct { ulint count; buf_block_t * start; buf_block_t * end; } flush_list; > > > ib_mutex_t flush_list_mutex; > ulint init_flush[3 + 1]; > > > ulint n_flush[3 + 1]; > > > os_event_t no_flush[3 + 1]; > > > > ulint ulint_clock; > > > > ulint freed_page_clock; > > > > > > > ulint LRU_flush_ended; > > > > > > > struct { ulint count; buf_block_t * start; buf_block_t * end; } free; > > > > > ib_mutex_t free_mutex; > struct { ulint count; buf_block_t * start; buf_block_t * end; } LRU; > > ib_mutex_t LRU_mutex; > buf_block_t* LRU_old; > > > ulint LRU_old_len; > > > > > > struct { ulint count; buf_block_t * start; buf_block_t * end; } awe_LRU_free_mapped; > > > > > >}; > >struct buf_io_counter_struct{ > ulint space; > ulint offset; > buf_io_counter_t* hash; > ulint index_id; > ulint n_read; > ulint n_write; >}; ># 1104 "./include/buf0buf.h" ># 1 "./include/buf0buf.ic" 1 ># 9 "./include/buf0buf.ic" ># 1 "./include/buf0flu.h" 1 ># 20 "./include/buf0flu.h" >void >buf_flush_write_complete( > > buf_block_t* block); > > > > >void >buf_flush_free_margin( > > ulint wait); > > > >void >buf_flush_init_for_writing( > > unsigned char* page, > dulint newest_lsn, > ulint space, > ulint page_no); > > > > > > > >ulint >buf_flush_batch( > > > > ulint flush_type, > > > ulint min_n, > > > dulint lsn_limit); > > > > > > >void >buf_flush_wait_batch_end( > > ulint type); > > > > >static inline >void >buf_flush_note_modification( > > buf_block_t* block, > mtr_t* mtr); > > >static inline >void >buf_flush_recv_note_modification( > > buf_block_t* block, > dulint start_lsn, > > dulint end_lsn); > > > > >ulint >buf_flush_ready_for_replace( > > > buf_block_t* block); > > > > >ulint >buf_flush_validate(void); ># 118 "./include/buf0flu.h" ># 1 "./include/buf0flu.ic" 1 ># 9 "./include/buf0flu.ic" ># 1 "./include/buf0buf.h" 1 ># 10 "./include/buf0flu.ic" 2 ># 1 "./include/mtr0mtr.h" 1 ># 14 "./include/mtr0mtr.h" ># 1 "./include/dyn0dyn.h" 1 ># 16 "./include/dyn0dyn.h" >typedef struct dyn_block_struct dyn_block_t; >typedef dyn_block_t dyn_array_t; ># 26 "./include/dyn0dyn.h" >static inline >dyn_array_t* >dyn_array_create( > > > dyn_array_t* arr); > > > >static inline >void >dyn_array_free( > > dyn_array_t* arr); > > > > >static inline >unsigned char* >dyn_array_open( > > > dyn_array_t* arr, > ulint size); > > > >static inline >void >dyn_array_close( > > dyn_array_t* arr, > unsigned char* ptr); > > > > >static inline >void* >dyn_array_push( > > > dyn_array_t* arr, > ulint size); > > >static inline >void* >dyn_array_get_element( > > > dyn_array_t* arr, > ulint pos); > > > >static inline >ulint >dyn_array_get_data_size( > > > dyn_array_t* arr); > > >static inline >dyn_block_t* >dyn_array_get_first_block( > > dyn_array_t* arr); > > >static inline >dyn_block_t* >dyn_array_get_last_block( > > dyn_array_t* arr); > > >static inline >dyn_block_t* >dyn_array_get_next_block( > > > dyn_array_t* arr, > dyn_block_t* block); > > >static inline >ulint >dyn_block_get_used( > > > dyn_block_t* block); > > >static inline >unsigned char* >dyn_block_get_data( > > > dyn_block_t* block); > > >static inline >void >dyn_push_string( > > dyn_array_t* arr, > const unsigned char* str, > ulint len); > > > > > >struct dyn_block_struct{ > mem_heap_t* heap; > > ulint used; > unsigned char data[512]; > > struct { ulint count; dyn_block_t * start; dyn_block_t * end; } base; > > > struct { dyn_block_t * prev; dyn_block_t * next; } list; > > > > > > > >}; > > > ># 1 "./include/dyn0dyn.ic" 1 ># 15 "./include/dyn0dyn.ic" >dyn_block_t* >dyn_array_add_block( > > > dyn_array_t* arr); > > > > >static inline >dyn_block_t* >dyn_array_get_first_block( > > dyn_array_t* arr) >{ > return(arr); >} > > > >static inline >dyn_block_t* >dyn_array_get_last_block( > > dyn_array_t* arr) >{ > if (arr->heap == ((void *)0)) { > > return(arr); > } > > return((arr->base).end); >} > > > >static inline >dyn_block_t* >dyn_array_get_next_block( > > > dyn_array_t* arr, > dyn_block_t* block) >{ > ; > > if (arr->heap == ((void *)0)) { > ; > > return(((void *)0)); > } > > return((((block)->list).next)); >} > > > >static inline >ulint >dyn_block_get_used( > > > dyn_block_t* block) >{ > ; > > return((block->used) & ~0x1000000UL); >} > > > >static inline >unsigned char* >dyn_block_get_data( > > > dyn_block_t* block) >{ > ; > > return(block->data); >} > > > >static inline >dyn_array_t* >dyn_array_create( > > > dyn_array_t* arr) > >{ > ; > ; > > arr->heap = ((void *)0); > arr->used = 0; > > > > > > return(arr); >} > > > >static inline >void >dyn_array_free( > > dyn_array_t* arr) >{ > if (arr->heap != ((void *)0)) { > mem_heap_free_func( (arr->heap), "./include/dyn0dyn.ic", 130); > } > > > > >} > > > > >static inline >void* >dyn_array_push( > > > dyn_array_t* arr, > ulint size) >{ > dyn_block_t* block; > ulint used; > > ; > ; > ; > ; > > block = arr; > used = block->used; > > if (used + size > 512) { > > > block = dyn_array_get_last_block(arr); > used = block->used; > > if (used + size > 512) { > block = dyn_array_add_block(arr); > used = block->used; > } > } > > block->used = used + size; > ; > > return((block->data) + used); >} > > > > > >static inline >unsigned char* >dyn_array_open( > > > dyn_array_t* arr, > ulint size) > >{ > dyn_block_t* block; > ulint used; > > ; > ; > ; > ; > > block = arr; > used = block->used; > > if (used + size > 512) { > > > block = dyn_array_get_last_block(arr); > used = block->used; > > if (used + size > 512) { > block = dyn_array_add_block(arr); > used = block->used; > do { if (__builtin_expect(!((ulint)(size <= 512)), (0))) { ut_dbg_assertion_failed("size <= DYN_ARRAY_DATA_SIZE", "./include/dyn0dyn.ic", (ulint) 211); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/dyn0dyn.ic", (ulint) 211); } while (0); } while (0); > } > } > > ; > > > > > > return((block->data) + used); >} > > > >static inline >void >dyn_array_close( > > dyn_array_t* arr, > unsigned char* ptr) >{ > dyn_block_t* block; > > ; > ; > > block = dyn_array_get_last_block(arr); > > ; > > block->used = ptr - block->data; > > ; > > > > >} > > > >static inline >void* >dyn_array_get_element( > > > dyn_array_t* arr, > ulint pos) > >{ > dyn_block_t* block; > ulint used; > > ; > ; > > > block = dyn_array_get_first_block(arr); > > if (arr->heap != ((void *)0)) { > used = dyn_block_get_used(block); > > while (pos >= used) { > pos -= used; > block = (((block)->list).next); > ; > > used = dyn_block_get_used(block); > } > } > > ; > ; > > return(block->data + pos); >} > > > >static inline >ulint >dyn_array_get_data_size( > > > dyn_array_t* arr) >{ > dyn_block_t* block; > ulint sum = 0; > > ; > ; > > if (arr->heap == ((void *)0)) { > > return(arr->used); > } > > > block = dyn_array_get_first_block(arr); > > while (block != ((void *)0)) { > sum += dyn_block_get_used(block); > block = dyn_array_get_next_block(arr, block); > } > > return(sum); >} > > > >static inline >void >dyn_push_string( > > dyn_array_t* arr, > const unsigned char* str, > ulint len) >{ > ulint n_copied; > > while (len > 0) { > if (len > 512) { > n_copied = 512; > } else { > n_copied = len; > } > > memcpy(dyn_array_push(arr, n_copied), str, n_copied); > > str += n_copied; > len -= n_copied; > } >} ># 164 "./include/dyn0dyn.h" 2 ># 15 "./include/mtr0mtr.h" 2 > > > > ># 1 "./include/page0types.h" 1 ># 17 "./include/page0types.h" >typedef unsigned char ib_page_t; >typedef struct page_search_struct page_search_t; >typedef struct page_cur_struct page_cur_t; ># 20 "./include/mtr0mtr.h" 2 ># 139 "./include/mtr0mtr.h" >static inline >mtr_t* >mtr_start( > > > > mtr_t* mtr); > > > > >mtr_t* >mtr_start_noninline( > > > > mtr_t* mtr); > > > >void >mtr_commit( > > mtr_t* mtr); > > >static inline >ulint >mtr_set_savepoint( > > > mtr_t* mtr); > > > > > >void >mtr_rollback_to_savepoint( > > mtr_t* mtr, > ulint savepoint); > > > >static inline >void >mtr_release_s_latch_at_savepoint( > > mtr_t* mtr, > ulint savepoint, > rw_lock_t* lock); > > >static inline >ulint >mtr_get_log_mode( > > > mtr_t* mtr); > > >static inline >ulint >mtr_set_log_mode( > > > mtr_t* mtr, > ulint mode); > > > >ulint >mtr_read_ulint( > > > unsigned char* ptr, > ulint type, > mtr_t* mtr); > > > >dulint >mtr_read_dulint( > > > unsigned char* ptr, > mtr_t* mtr); ># 238 "./include/mtr0mtr.h" >static inline >void >mtr_s_lock_func( > > rw_lock_t* lock, > const char* file, > ulint line, > mtr_t* mtr); > > > >static inline >void >mtr_x_lock_func( > > rw_lock_t* lock, > const char* file, > ulint line, > mtr_t* mtr); > > > > >void >mtr_memo_release( > > mtr_t* mtr, > void* object, > ulint type); > > >static inline >ulint >mtr_memo_contains( > > > mtr_t* mtr, > void* object, > ulint type); > > > >void >mtr_print( > > mtr_t* mtr); > > > > > > >static inline >dyn_array_t* >mtr_get_log( > > > mtr_t* mtr); > > >static inline >void >mtr_memo_push( > > mtr_t* mtr, > void* object, > ulint type); > > > >typedef struct mtr_memo_slot_struct mtr_memo_slot_t; >struct mtr_memo_slot_struct{ > ulint type; > void* object; >}; > > >struct mtr_struct{ > ulint state; > dyn_array_t memo; > dyn_array_t log; > ulint modifications; > > > ulint n_log_recs; > > > ulint log_mode; > > dulint start_lsn; > > dulint end_lsn; > > ulint magic_n; >}; ># 341 "./include/mtr0mtr.h" ># 1 "./include/mtr0mtr.ic" 1 ># 16 "./include/mtr0mtr.ic" >static inline >mtr_t* >mtr_start( > > > > mtr_t* mtr) >{ > dyn_array_create(&(mtr->memo)); > dyn_array_create(&(mtr->log)); > > mtr->log_mode = 21; > mtr->modifications = (0); > mtr->n_log_recs = 0; > > > > > > return(mtr); >} > > > >static inline >void >mtr_memo_push( > > mtr_t* mtr, > void* object, > ulint type) >{ > dyn_array_t* memo; > mtr_memo_slot_t* slot; > > ; > ; > ; > ; > ; > > memo = &(mtr->memo); > > slot = dyn_array_push(memo, sizeof(mtr_memo_slot_t)); > > slot->object = object; > slot->type = type; >} > > > >static inline >ulint >mtr_set_savepoint( > > > mtr_t* mtr) >{ > dyn_array_t* memo; > > ; > ; > > memo = &(mtr->memo); > > return(dyn_array_get_data_size(memo)); >} > > > > >static inline >void >mtr_release_s_latch_at_savepoint( > > mtr_t* mtr, > ulint savepoint, > rw_lock_t* lock) >{ > mtr_memo_slot_t* slot; > dyn_array_t* memo; > > ; > ; > ; > > memo = &(mtr->memo); > > ; > > slot = dyn_array_get_element(memo, savepoint); > > ; > ; > > rw_lock_s_unlock_func(lock); > > slot->object = ((void *)0); >} > > > >static inline >ulint >mtr_memo_contains( > > > mtr_t* mtr, > void* object, > ulint type) >{ > mtr_memo_slot_t* slot; > dyn_array_t* memo; > ulint offset; > > ; > ; > > memo = &(mtr->memo); > > offset = dyn_array_get_data_size(memo); > > while (offset > 0) { > offset -= sizeof(mtr_memo_slot_t); > > slot = dyn_array_get_element(memo, offset); > > if ((object == slot->object) && (type == slot->type)) { > > return((1)); > } > } > > return((0)); >} > > > >static inline >dyn_array_t* >mtr_get_log( > > > mtr_t* mtr) >{ > ; > ; > > return(&(mtr->log)); >} > > > >static inline >ulint >mtr_get_log_mode( > > > mtr_t* mtr) >{ > ; > ; > ; > > return(mtr->log_mode); >} > > > >static inline >ulint >mtr_set_log_mode( > > > mtr_t* mtr, > ulint mode) >{ > ulint old_mode; > > ; > ; > ; > > old_mode = mtr->log_mode; > > if ((mode == 24) && (old_mode == 22)) { > > } else { > mtr->log_mode = mode; > } > > ; > ; > > return(old_mode); >} > > > >static inline >void >mtr_s_lock_func( > > rw_lock_t* lock, > const char* file, > ulint line, > mtr_t* mtr) >{ > ; > ; > > rw_lock_s_lock_func(lock, 0, file, line); > > mtr_memo_push(mtr, lock, 55); >} > > > >static inline >void >mtr_x_lock_func( > > rw_lock_t* lock, > const char* file, > ulint line, > mtr_t* mtr) >{ > ; > ; > > rw_lock_x_lock_func(lock, 0, file, line); > > mtr_memo_push(mtr, lock, 56); >} ># 342 "./include/mtr0mtr.h" 2 ># 11 "./include/buf0flu.ic" 2 > > > > >void >buf_flush_insert_into_flush_list( > > buf_block_t* block); > > > > > >void >buf_flush_insert_sorted_into_flush_list( > > buf_block_t* block); > > > > > >static inline >void >buf_flush_note_modification( > > buf_block_t* block, > mtr_t* mtr) >{ > ; > ; > ; > > > > > > ; > ; > ; > > block->newest_modification = mtr->end_lsn; > > if (ut_dulint_is_zero(block->oldest_modification)) { > > block->oldest_modification = mtr->start_lsn; > ; > > buf_flush_insert_into_flush_list(block); > } else { > ; > > } > > ++srv_buf_pool_write_requests; >} > > > >static inline >void >buf_flush_recv_note_modification( > > buf_block_t* block, > dulint start_lsn, > > dulint end_lsn) > >{ > ; > ; > ; > > > > > mutex_enter_func((&(buf_pool->flush_list_mutex)), "./include/buf0flu.ic", 87); > > ; > > block->newest_modification = end_lsn; > > if (ut_dulint_is_zero(block->oldest_modification)) { > > block->oldest_modification = start_lsn; > > ; > > buf_flush_insert_sorted_into_flush_list(block); > } else { > ; > > } > > mutex_exit(&(buf_pool->flush_list_mutex)); >} ># 119 "./include/buf0flu.h" 2 ># 10 "./include/buf0buf.ic" 2 ># 1 "./include/buf0lru.h" 1 ># 25 "./include/buf0lru.h" >void >buf_LRU_try_free_flushed_blocks(void); > > > > > > >ulint >buf_LRU_buf_pool_running_out(void); ># 55 "./include/buf0lru.h" >void >buf_LRU_invalidate_tablespace( > > ulint id); > > > > > >ulint >buf_LRU_get_recent_limit(void); > > > > > > >ulint >buf_LRU_search_and_free_block( > > > ulint n_iterations); ># 87 "./include/buf0lru.h" >buf_block_t* >buf_LRU_get_free_block(void); > > > > > > > >void >buf_LRU_block_free_non_file_page( > > buf_block_t* block); > > > >void >buf_LRU_add_block( > > buf_block_t* block, > ulint old); > > > > > > >void >buf_LRU_make_block_young( > > buf_block_t* block); > > > >void >buf_LRU_make_block_old( > > buf_block_t* block); > > > >ulint >buf_LRU_validate(void); > > > > >void >buf_LRU_print(void); > > > ># 1 "./include/buf0lru.ic" 1 ># 140 "./include/buf0lru.h" 2 ># 11 "./include/buf0buf.ic" 2 ># 1 "./include/buf0rea.h" 1 ># 23 "./include/buf0rea.h" >ulint >buf_read_page( > > > > ulint space, > ulint offset, > trx_t* trx); ># 55 "./include/buf0rea.h" >ulint >buf_read_ahead_linear( > > > ulint space, > ulint offset, > > trx_t* trx); > > > > > >void >buf_read_ibuf_merge_pages( > > ulint sync, > > > ulint* space_ids, > ib_longlong* space_versions, > > > > > ulint* page_nos, > > ulint n_stored); > > > >void >buf_read_recv_pages( > > ulint sync, > > > ulint space, > ulint* page_nos, > > ulint n_stored); ># 12 "./include/buf0buf.ic" 2 > > > > > >void >buf_print_diagnostic( > > mtr_t* mtr, > const buf_block_t* block); ># 32 "./include/buf0buf.ic" >static inline >ulint >buf_block_peek_if_too_old( > > > buf_block_t* block) >{ > return(buf_pool->freed_page_clock >= block->freed_page_clock > + 1 + (buf_pool->curr_size / 1024)); >} > > > > >static inline >ulint >buf_pool_get_curr_size(void) > > >{ > return((buf_pool->n_frames) * (2 * 8192)); >} > > > > >static inline >ulint >buf_pool_get_max_size(void) > > >{ > return((buf_pool->n_frames) * (2 * 8192)); >} > > > >static inline >buf_block_t* >buf_pool_get_nth_block( > > > buf_pool_t* buf_pool, > ulint i) >{ > ; > ; > > return(i + buf_pool->blocks); >} > > > > >static inline >ulint >buf_pool_is_block( > > > void* ptr) >{ > if ((buf_pool->blocks <= (buf_block_t*)ptr) > && ((buf_block_t*)ptr < buf_pool->blocks + buf_pool->max_size)) { > > return((1)); > } > > return((0)); >} > > > > >static inline >dulint >buf_pool_get_oldest_modification(void) > > > >{ > buf_block_t* block; > dulint lsn; > > mutex_enter_func((&(buf_pool->flush_list_mutex)), "./include/buf0buf.ic", 115); > > block = (buf_pool->flush_list).end; > > if (block == ((void *)0)) { > lsn = ut_dulint_zero; > } else { > lsn = block->oldest_modification; > } > > mutex_exit(&(buf_pool->flush_list_mutex)); > > return(lsn); >} > > > > >static inline >ulint >buf_pool_clock_tic(void) > > >{ > > > > > buf_pool->ulint_clock++; > > return(buf_pool->ulint_clock); >} > > > >static inline >buf_frame_t* >buf_block_get_frame( > > > buf_block_t* block) >{ > ; > ; > ; > ; > ; > > > return(block->frame); >} > > > >static inline >ulint >buf_block_get_space( > > > buf_block_t* block) >{ > ; > ; > ; > do { if (__builtin_expect(!((ulint)(block->state == 213)), (0))) { ut_dbg_assertion_failed("block->state == BUF_BLOCK_FILE_PAGE", "./include/buf0buf.ic", (ulint) 179); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/buf0buf.ic", (ulint) 179); } while (0); } while (0); > ; > > return(block->space); >} > > > >static inline >ulint >buf_block_get_page_no( > > > buf_block_t* block) >{ > ; > ; > ; > do { if (__builtin_expect(!((ulint)(block->state == 213)), (0))) { ut_dbg_assertion_failed("block->state == BUF_BLOCK_FILE_PAGE", "./include/buf0buf.ic", (ulint) 197); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/buf0buf.ic", (ulint) 197); } while (0); } while (0); > ; > > return(block->offset); >} > > > >static inline >buf_block_t* >buf_block_align( > > > unsigned char* ptr) >{ > buf_block_t* block; > buf_frame_t* frame_zero; > > ; > > frame_zero = buf_pool->frame_zero; > > if (__builtin_expect((ulint)ptr < (ulint)frame_zero, (0)) > || __builtin_expect((ulint)ptr > (ulint)(buf_pool->high_end), (0))) { > > ut_print_timestamp(stderr); > fprintf(stderr, >"InnoDB: Error: trying to access a stray pointer %p\n" >"InnoDB: buf pool start is at %p, end at %p\n" >"InnoDB: Probable reason is database corruption or memory\n" >"InnoDB: corruption. If this happens in an InnoDB database recovery, see\n" >"InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html\n" >"InnoDB: how to force recovery.\n", > ptr, frame_zero, > buf_pool->high_end); > do { ut_dbg_assertion_failed(0, "./include/buf0buf.ic", (ulint) 232); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > } > > block = *(buf_pool->blocks_of_frames + (((ulint)(ptr - frame_zero)) > >> 14)); > return(block); >} > > > >static inline >buf_frame_t* >buf_frame_align( > > > unsigned char* ptr) >{ > buf_frame_t* frame; > > ; > > frame = ut_align_down(ptr, (2 * 8192)); > > if (__builtin_expect((ulint)frame < (ulint)(buf_pool->frame_zero), (0)) > || __builtin_expect((ulint)frame >= (ulint)(buf_pool->high_end), (0))) { > > ut_print_timestamp(stderr); > fprintf(stderr, >"InnoDB: Error: trying to access a stray pointer %p\n" >"InnoDB: buf pool start is at %p, end at %p\n" >"InnoDB: Probable reason is database corruption or memory\n" >"InnoDB: corruption. If this happens in an InnoDB database recovery, see\n" >"InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html\n" >"InnoDB: how to force recovery.\n", > ptr, buf_pool->frame_zero, > buf_pool->high_end); > do { ut_dbg_assertion_failed(0, "./include/buf0buf.ic", (ulint) 268); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > } > > return(frame); >} > > > > >static inline >ulint >buf_frame_get_page_no( > > > unsigned char* ptr) >{ > return(buf_block_get_page_no(buf_block_align(ptr))); >} > > > > >static inline >ulint >buf_frame_get_space_id( > > > unsigned char* ptr) >{ > return(buf_block_get_space(buf_block_align(ptr))); >} > > > > >static inline >void >buf_ptr_get_fsp_addr( > > unsigned char* ptr, > ulint* space, > fil_addr_t* addr) >{ > buf_block_t* block; > > block = buf_block_align(ptr); > > *space = buf_block_get_space(block); > addr->page = buf_block_get_page_no(block); > addr->boffset = ptr - buf_frame_align(ptr); >} > > > > >static inline >ulint >buf_frame_get_lock_hash_val( > > > unsigned char* ptr) >{ > buf_block_t* block; > > block = buf_block_align(ptr); > > return(block->lock_hash_val); >} > > > > >static inline >ib_mutex_t* >buf_frame_get_mutex( > > > unsigned char* ptr) >{ > buf_block_t* block; > > block = buf_block_align(ptr); > > return(&block->mutex); >} > > > >static inline >unsigned char* >buf_frame_copy( > > > unsigned char* buf, > buf_frame_t* frame) >{ > ; > > ut_memcpy(buf, frame, (2 * 8192)); > > return(buf); >} > > > > >static inline >ulint >buf_page_address_fold( > > > ulint space, > ulint offset) >{ > return((space << 20) + space + offset); >} > > > > >static inline >ulint >buf_page_io_query( > > > buf_block_t* block) >{ > mutex_enter_func((&block->mutex), "./include/buf0buf.ic", 395); > > ; > ; > > if (block->io_fix != 0) { > mutex_exit(&block->mutex); > > return((1)); > } > > mutex_exit(&block->mutex); > > return((0)); >} > > > > >static inline >dulint >buf_frame_get_newest_modification( > > > buf_frame_t* frame) >{ > buf_block_t* block; > dulint lsn; > > ; > > block = buf_block_align(frame); > > mutex_enter_func((&block->mutex), "./include/buf0buf.ic", 428); > > if (block->state == 213) { > lsn = block->newest_modification; > } else { > lsn = ut_dulint_zero; > } > > mutex_exit(&block->mutex); > > return(lsn); >} > > > > > >static inline >dulint >buf_frame_modify_clock_inc( > > > buf_frame_t* frame) >{ > buf_block_t* block; > > ; > > block = buf_block_align(frame); > > > > > > > { if ((block->modify_clock).low == 0xFFFFFFFFUL) { (block->modify_clock).high = (block->modify_clock).high + 1; (block->modify_clock).low = 0; } else { (block->modify_clock).low = (block->modify_clock).low + 1; }}; > > return(block->modify_clock); >} > > > > > >static inline >dulint >buf_block_modify_clock_inc( > > > buf_block_t* block) >{ > > > > > > { if ((block->modify_clock).low == 0xFFFFFFFFUL) { (block->modify_clock).high = (block->modify_clock).high + 1; (block->modify_clock).low = 0; } else { (block->modify_clock).low = (block->modify_clock).low + 1; }}; > > return(block->modify_clock); >} > > > > >static inline >dulint >buf_block_get_modify_clock( > > > buf_block_t* block) >{ > > > > > > return(block->modify_clock); >} ># 531 "./include/buf0buf.ic" >static inline >void >buf_block_buf_fix_inc( > > buf_block_t* block) >{ > > > > block->buf_fix_count++; >} > > > >static inline >buf_block_t* >buf_page_hash_get( > > > ulint space, > ulint offset) >{ > buf_block_t* block; > ulint fold; > > ; > > > > > > > fold = buf_page_address_fold(space, offset); > > { (block) = (hash_get_nth_cell(buf_pool->page_hash, hash_calc_hash(fold, buf_pool->page_hash))->node); while ((block) != ((void *)0)) { if ((block->space == space) && (block->offset == offset)) { break; } else { (block) = ((block)->hash); } }}; > > do { if (__builtin_expect(!((ulint)(block == ((void *)0) || block->state == 213)), (0))) { ut_dbg_assertion_failed("block == NULL || block->state == BUF_BLOCK_FILE_PAGE", "./include/buf0buf.ic", (ulint) 567); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/buf0buf.ic", (ulint) 567); } while (0); } while (0); > > return(block); >} > > > > > > >static inline >buf_frame_t* >buf_page_get_release_on_io( > > > > ulint space, > ulint offset, > > buf_frame_t* guess, > ulint rw_latch, > > ulint savepoint, > mtr_t* mtr) >{ > buf_frame_t* frame; > > frame = buf_page_get_gen(space, offset, rw_latch, guess, > 11, > "./include/buf0buf.ic", 596, > mtr); > if (frame != ((void *)0)) { > > return(frame); > } > > > > > mtr_rollback_to_savepoint(mtr, savepoint); > > buf_page_get_gen( space, offset, 1, ((void *)0), 10, "./include/buf0buf.ic", 608, mtr); > > > > > mtr_rollback_to_savepoint(mtr, savepoint); > > return(((void *)0)); >} > > > > >static inline >void >buf_page_release( > > buf_block_t* block, > ulint rw_latch, > > mtr_t* mtr) >{ > ; > > do { if (__builtin_expect(!((ulint)(block->state == 213)), (0))) { ut_dbg_assertion_failed("block->state == BUF_BLOCK_FILE_PAGE", "./include/buf0buf.ic", (ulint) 632); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/buf0buf.ic", (ulint) 632); } while (0); } while (0); > > if (rw_latch == 2 && mtr->modifications) { > mutex_enter_func((&buf_pool->flush_list_mutex), "./include/buf0buf.ic", 635); > buf_flush_note_modification(block, mtr); > mutex_exit(&buf_pool->flush_list_mutex); > } > > mutex_enter_func((&block->mutex), "./include/buf0buf.ic", 640); > > > if (__builtin_expect(block->buf_fix_count == 0, (0))) { > buf_print_diagnostic(mtr, block); > do { ut_dbg_assertion_failed(0, "./include/buf0buf.ic", (ulint) 645); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > } > > > > > --block->buf_fix_count; > > mutex_exit(&block->mutex); > > if (rw_latch == 1) { > rw_lock_s_unlock_func(&(block->lock)); > } else if (rw_latch == 2) { > rw_lock_x_unlock_func(&(block->lock)); > } >} ># 1105 "./include/buf0buf.h" 2 ># 24 "buf/buf0buf.c" 2 > > > > > ># 1 "./include/mem0mem.h" 1 ># 30 "buf/buf0buf.c" 2 ># 1 "./include/btr0btr.h" 1 ># 14 "./include/btr0btr.h" ># 1 "./include/dict0dict.h" 1 ># 14 "./include/dict0dict.h" ># 1 "./include/dict0mem.h" 1 ># 14 "./include/dict0mem.h" ># 1 "./include/data0type.h" 1 ># 14 "./include/data0type.h" >extern ulint data_mysql_default_charset_coll; > > > > >typedef struct dtype_struct dtype_t; > > > >extern dtype_t* dtype_binary; ># 162 "./include/data0type.h" >static inline >ulint >dtype_get_mysql_type( > > > > dtype_t* type); > > > > > >ulint >dtype_get_at_most_n_mbchars( > > > > const dtype_t* dtype, > ulint prefix_len, > > > ulint data_len, > const char* str); > > > > > >ulint >dtype_is_string_type( > > > ulint mtype); > > > > > >ulint >dtype_is_binary_string_type( > > > ulint mtype, > ulint prtype); > > > > > > >ulint >dtype_is_non_binary_string_type( > > > ulint mtype, > ulint prtype); > > >static inline >void >dtype_set( > > dtype_t* type, > ulint mtype, > ulint prtype, > ulint len, > ulint prec); > > >static inline >void >dtype_copy( > > dtype_t* type1, > dtype_t* type2); > > >static inline >ulint >dtype_get_mtype( > > dtype_t* type); > > >static inline >ulint >dtype_get_prtype( > > dtype_t* type); > > > >ulint >dtype_get_charset_coll_noninline( > > ulint prtype); > > >static inline >ulint >dtype_get_charset_coll( > > ulint prtype); > > > > >ulint >dtype_form_prtype( > > ulint old_prtype, > > ulint charset_coll); > > >static inline >ulint >dtype_get_len( > > dtype_t* type); > > >static inline >ulint >dtype_get_prec( > > dtype_t* type); > > >static inline >ulint >dtype_get_mbminlen( > > > > const dtype_t* type); > > >static inline >ulint >dtype_get_mbmaxlen( > > > > const dtype_t* type); > > >static inline >ulint >dtype_get_pad_char( > > > > const dtype_t* type); > > >static inline >ulint >dtype_get_fixed_size( > > > dtype_t* type); > > >static inline >ulint >dtype_get_min_size( > > > const dtype_t* type); > > > >static inline >ulint >dtype_get_sql_null_size( > > > dtype_t* type); > > >static inline >ulint >dtype_is_fixed_size( > > > dtype_t* type); > > > >static inline >void >dtype_read_for_order_and_null_size( > > dtype_t* type, > unsigned char* buf); > > > > >static inline >void >dtype_new_store_for_order_and_null_size( > > unsigned char* buf, > > > dtype_t* type, > ulint prefix_len); > > > > > >static inline >void >dtype_new_read_for_order_and_null_size( > > dtype_t* type, > unsigned char* buf); > > > > >ulint >dtype_validate( > > > dtype_t* type); > > > >void >dtype_print( > > dtype_t* type); ># 407 "./include/data0type.h" >struct dtype_struct{ > ulint mtype; > ulint prtype; > > > > > > > > ulint len; > > > > > > ulint prec; > > ulint mbminlen; > ulint mbmaxlen; >}; > > ># 1 "./include/data0type.ic" 1 ># 16 "./include/data0type.ic" >extern >void >innobase_get_cset_width( > > ulint cset, > ulint* mbminlen, > ulint* mbmaxlen); > > > >static inline >ulint >dtype_get_charset_coll( > > ulint prtype) >{ > return((prtype >> 16) & 0xFFUL); >} > > > >static inline >ulint >dtype_get_mysql_type( > > > > dtype_t* type) >{ > return(type->prtype & 0xFFUL); >} > > > >static inline >void >dtype_set_mblen( > > dtype_t* type) >{ > ; > if (dtype_is_string_type(type->mtype)) { > innobase_get_cset_width(dtype_get_charset_coll(type->prtype), > &type->mbminlen, &type->mbmaxlen); > ; > } else { > type->mbminlen = type->mbmaxlen = 0; > } >} > > > >static inline >void >dtype_set( > > dtype_t* type, > ulint mtype, > ulint prtype, > ulint len, > ulint prec) >{ > ; > ; > > type->mtype = mtype; > type->prtype = prtype; > type->len = len; > type->prec = prec; > > dtype_set_mblen(type); > ; >} > > > >static inline >void >dtype_copy( > > dtype_t* type1, > dtype_t* type2) >{ > *type1 = *type2; > > ; >} > > > >static inline >ulint >dtype_get_mtype( > > dtype_t* type) >{ > ; > > return(type->mtype); >} > > > >static inline >ulint >dtype_get_prtype( > > dtype_t* type) >{ > ; > > return(type->prtype); >} > > > >static inline >ulint >dtype_get_len( > > dtype_t* type) >{ > ; > > return(type->len); >} > > > >static inline >ulint >dtype_get_prec( > > dtype_t* type) >{ > ; > > return(type->prec); >} > > > >static inline >ulint >dtype_get_mbminlen( > > > > const dtype_t* type) >{ > ; > return(type->mbminlen); >} > > >static inline >ulint >dtype_get_mbmaxlen( > > > > const dtype_t* type) >{ > ; > return(type->mbmaxlen); >} > > > >static inline >ulint >dtype_get_pad_char( > > > > const dtype_t* type) >{ > switch (type->mtype) { > case 3: > case 4: > if (__builtin_expect(dtype_get_charset_coll(type->prtype) == 63, (0))) { > > > > return(((ulint)(-1))); > } > > case 2: > case 1: > case 13: > case 12: > > > > return(0x20); > case 5: > if ((type->prtype & 1024) == 0) { > return(0x20); > } > > default: > > return(((ulint)(-1))); > } >} > > > > > >static inline >void >dtype_new_store_for_order_and_null_size( > > unsigned char* buf, > > > dtype_t* type, > ulint prefix_len) > >{ > > > > ulint len; > > buf[0] = (unsigned char)(type->mtype & 0xFFUL); > > if (type->prtype & 1024) { > buf[0] = buf[0] | 128; > } > > > > > > > buf[1] = (unsigned char)(type->prtype & 0xFFUL); > > len = prefix_len ? prefix_len : type->len; > > mach_write_to_2(buf + 2, len & 0xFFFFUL); > > ; > mach_write_to_2(buf + 4, dtype_get_charset_coll(type->prtype)); > > if (type->prtype & 256) { > buf[4] |= 128; > } >} > > > > > >static inline >void >dtype_read_for_order_and_null_size( > > dtype_t* type, > unsigned char* buf) >{ > ; > > type->mtype = buf[0] & 63; > type->prtype = buf[1]; > > if (buf[0] & 128) { > type->prtype = type->prtype | 1024; > } > > type->len = mach_read_from_2(buf + 2); > > type->prtype = dtype_form_prtype(type->prtype, > data_mysql_default_charset_coll); > dtype_set_mblen(type); >} > > > > > >static inline >void >dtype_new_read_for_order_and_null_size( > > dtype_t* type, > unsigned char* buf) >{ > ulint charset_coll; > > > > > > type->mtype = buf[0] & 63; > type->prtype = buf[1]; > > if (buf[0] & 128) { > type->prtype |= 1024; > } > > if (buf[4] & 128) { > type->prtype |= 256; > } > > type->len = mach_read_from_2(buf + 2); > > mach_read_from_2(buf + 4); > > charset_coll = mach_read_from_2(buf + 4) & 0x7fff; > > if (dtype_is_string_type(type->mtype)) { > do { if (__builtin_expect(!((ulint)(charset_coll < 256)), (0))) { ut_dbg_assertion_failed("charset_coll < 256", "./include/data0type.ic", (ulint) 329); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/data0type.ic", (ulint) 329); } while (0); } while (0); > > if (charset_coll == 0) { > > > > > > > charset_coll = data_mysql_default_charset_coll; > } > > type->prtype = dtype_form_prtype(type->prtype, charset_coll); > } > dtype_set_mblen(type); >} > > > > >static inline >ulint >dtype_get_fixed_size( > > > dtype_t* type) >{ > ulint mtype; > > mtype = dtype_get_mtype(type); > > switch (mtype) { > case 8: ># 381 "./include/data0type.ic" > case 2: > case 3: > case 6: > case 9: > case 10: > return(dtype_get_len(type)); > case 13: > if (type->prtype & 1024) { > return(dtype_get_len(type)); > } else { ># 399 "./include/data0type.ic" > ulint mbminlen, mbmaxlen; > > innobase_get_cset_width( > dtype_get_charset_coll(type->prtype), > &mbminlen, &mbmaxlen); > > if (__builtin_expect(type->mbminlen != mbminlen, (0)) > || __builtin_expect(type->mbmaxlen != mbmaxlen, (0))) { > > ut_print_timestamp(stderr); > fprintf(stderr, " InnoDB: " > "mbminlen=%lu, " > "mbmaxlen=%lu, " > "type->mbminlen=%lu, " > "type->mbmaxlen=%lu\n", > (ulong) mbminlen, > (ulong) mbmaxlen, > (ulong) type->mbminlen, > (ulong) type->mbmaxlen); > } > if (mbminlen == mbmaxlen) { > return(dtype_get_len(type)); > } > } > > case 1: > case 4: > case 11: > case 12: > case 5: > return(0); > default: do { ut_dbg_assertion_failed(0, "./include/data0type.ic", (ulint) 430); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > } > > return(0); >} > > > >static inline >ulint >dtype_get_min_size( > > > const dtype_t* type) >{ > switch (type->mtype) { > case 8: ># 466 "./include/data0type.ic" > case 2: > case 3: > case 6: > case 9: > case 10: > return(type->len); > case 13: > if ((type->prtype & 1024) > || type->mbminlen == type->mbmaxlen) { > return(type->len); > } > > do { if (__builtin_expect(!((ulint)(type->mbminlen > 0)), (0))) { ut_dbg_assertion_failed("type->mbminlen > 0", "./include/data0type.ic", (ulint) 478); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/data0type.ic", (ulint) 478); } while (0); } while (0); > do { if (__builtin_expect(!((ulint)(type->mbmaxlen > type->mbminlen)), (0))) { ut_dbg_assertion_failed("type->mbmaxlen > type->mbminlen", "./include/data0type.ic", (ulint) 479); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/data0type.ic", (ulint) 479); } while (0); } while (0); > do { if (__builtin_expect(!((ulint)(type->len % type->mbmaxlen == 0)), (0))) { ut_dbg_assertion_failed("type->len % type->mbmaxlen == 0", "./include/data0type.ic", (ulint) 480); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/data0type.ic", (ulint) 480); } while (0); } while (0); > return(type->len * type->mbminlen / type->mbmaxlen); > case 1: > case 4: > case 11: > case 12: > case 5: > return(0); > default: do { ut_dbg_assertion_failed(0, "./include/data0type.ic", (ulint) 488); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > } > > return(0); >} > > > > > >static inline >ulint >dtype_get_sql_null_size( > > > dtype_t* type) >{ > return(dtype_get_fixed_size(type)); >} > > > >static inline >ulint >dtype_is_fixed_size( > > > dtype_t* type) >{ > ulint size; > > size = dtype_get_fixed_size(type); > > if (size) { > return((1)); > } > > return((0)); >} ># 431 "./include/data0type.h" 2 ># 15 "./include/dict0mem.h" 2 ># 1 "./include/data0data.h" 1 ># 14 "./include/data0data.h" ># 1 "./include/data0types.h" 1 ># 13 "./include/data0types.h" >typedef struct dfield_struct dfield_t; > > >typedef struct dtuple_struct dtuple_t; ># 15 "./include/data0data.h" 2 > > > > >typedef struct big_rec_struct big_rec_t; > > >void >dfield_set_data_noninline( > dfield_t* field, > void* data, > ulint len); >void* >dfield_get_data_noninline( > dfield_t* field); >ulint >dfield_get_len_noninline( > dfield_t* field); >ulint >dtuple_get_n_fields_noninline( > dtuple_t* tuple); >dfield_t* >dtuple_get_nth_field_noninline( > dtuple_t* tuple, > ulint n); > > > >static inline >dtype_t* >dfield_get_type( > > > dfield_t* field); > > >static inline >void >dfield_set_type( > > dfield_t* field, > dtype_t* type); > > >static inline >void* >dfield_get_data( > > > dfield_t* field); > > >static inline >ulint >dfield_get_len( > > > > dfield_t* field); > > >static inline >void >dfield_set_len( > > dfield_t* field, > ulint len); > > >static inline >void >dfield_set_data( > > dfield_t* field, > const void* data, > ulint len); > > >static inline >void >data_write_sql_null( > > unsigned char* data, > ulint len); > > >static inline >void >dfield_copy_data( > > dfield_t* field1, > dfield_t* field2); > > >static inline >void >dfield_copy( > > dfield_t* field1, > dfield_t* field2); > > >static inline >ulint >dfield_datas_are_binary_equal( > > > dfield_t* field1, > dfield_t* field2); > > > >ulint >dfield_data_is_binary_equal( > > > dfield_t* field, > ulint len, > unsigned char* data); > > >static inline >ulint >dtuple_get_n_fields( > > > dtuple_t* tuple); > > >static inline >dfield_t* >dtuple_get_nth_field( > > > dtuple_t* tuple, > ulint n); > > >static inline >ulint >dtuple_get_info_bits( > > > dtuple_t* tuple); > > >static inline >void >dtuple_set_info_bits( > > dtuple_t* tuple, > ulint info_bits); > > >static inline >ulint >dtuple_get_n_fields_cmp( > > > > dtuple_t* tuple); > > >static inline >void >dtuple_set_n_fields_cmp( > > dtuple_t* tuple, > ulint n_fields_cmp); > > > > >static inline >dtuple_t* >dtuple_create( > > > mem_heap_t* heap, > > ulint n_fields); > > > > >dtuple_t* >dtuple_create_for_mysql( > > > void** heap, > ulint n_fields); > > > >void >dtuple_free_for_mysql( > > void* heap); > > > > >void >dtuple_set_n_fields( > > dtuple_t* tuple, > ulint n_fields); > > > >static inline >ulint >dtuple_get_data_size( > > > dtuple_t* tuple); > > > > > >ulint >dtuple_datas_are_ordering_equal( > > > > > > dtuple_t* tuple1, > dtuple_t* tuple2); > > >static inline >ulint >dtuple_fold( > > > dtuple_t* tuple, > ulint n_fields, > ulint n_bytes, > > dulint tree_id); > > >static inline >void >dtuple_set_types_binary( > > dtuple_t* tuple, > ulint n); > > >static inline >ulint >dtuple_contains_null( > > > dtuple_t* tuple); > > > >ulint >dfield_check_typed( > > > dfield_t* field); > > > >ulint >dtuple_check_typed( > > > dtuple_t* tuple); > > > >ulint >dtuple_check_typed_no_assert( > > > dtuple_t* tuple); ># 311 "./include/data0data.h" >void >dfield_print( > > dfield_t* dfield); > > > > >void >dfield_print_also_hex( > > dfield_t* dfield); > > > >void >dtuple_print( > > FILE* f, > dtuple_t* tuple); > > > > > > >big_rec_t* >dtuple_convert_big_rec( > > > > > > dict_index_t* index, > dtuple_t* entry, > ulint* ext_vec, > > > > ulint n_ext_vec); > > > > > >void >dtuple_convert_back_big_rec( > > dict_index_t* index, > dtuple_t* entry, > big_rec_t* vector); > > > > >void >dtuple_big_rec_free( > > big_rec_t* vector); > > > > > >struct dfield_struct{ > void* data; > ulint len; > dtype_t type; >}; > >struct dtuple_struct { > ulint info_bits; > > > > ulint n_fields; > ulint n_fields_cmp; > > > > > > > dfield_t* fields; > struct { dtuple_t * prev; dtuple_t * next; } tuple_list; > > > ulint magic_n; >}; > > > > >typedef struct big_rec_field_struct big_rec_field_t; >struct big_rec_field_struct { > ulint field_no; > ulint len; > unsigned char* data; >}; > > > > >struct big_rec_struct { > mem_heap_t* heap; > ulint n_fields; > big_rec_field_t* fields; >}; > > ># 1 "./include/data0data.ic" 1 ># 12 "./include/data0data.ic" >extern unsigned char data_error; > > > >static inline >dtype_t* >dfield_get_type( > > > dfield_t* field) >{ > ; > > return(&(field->type)); >} > > > >static inline >void >dfield_set_type( > > dfield_t* field, > dtype_t* type) >{ > ; > > field->type = *type; >} > > > >static inline >void* >dfield_get_data( > > > dfield_t* field) >{ > ; > ; > > > return(field->data); >} > > > >static inline >ulint >dfield_get_len( > > > > dfield_t* field) >{ > ; > ; > > > return(field->len); >} > > > >static inline >void >dfield_set_len( > > dfield_t* field, > ulint len) >{ > ; > > field->len = len; >} > > > >static inline >void >dfield_set_data( > > dfield_t* field, > const void* data, > ulint len) >{ > ; > > field->data = (void*) data; > field->len = len; >} > > > >static inline >void >dfield_copy_data( > > dfield_t* field1, > dfield_t* field2) >{ > ; > > field1->data = field2->data; > field1->len = field2->len; >} > > > >static inline >void >dfield_copy( > > dfield_t* field1, > dfield_t* field2) >{ > *field1 = *field2; >} > > > >static inline >ulint >dfield_datas_are_binary_equal( > > > dfield_t* field1, > dfield_t* field2) >{ > ulint len; > > len = field1->len; > > if ((len != field2->len) > || ((len != 0xFFFFFFFF) > && (0 != ut_memcmp(field1->data, field2->data, len)))) { > > return((0)); > } > > return((1)); >} > > > >static inline >ulint >dtuple_get_info_bits( > > > dtuple_t* tuple) >{ > ; > > return(tuple->info_bits); >} > > > >static inline >void >dtuple_set_info_bits( > > dtuple_t* tuple, > ulint info_bits) >{ > ; > > tuple->info_bits = info_bits; >} > > > >static inline >ulint >dtuple_get_n_fields_cmp( > > > > dtuple_t* tuple) >{ > ; > > return(tuple->n_fields_cmp); >} > > > >static inline >void >dtuple_set_n_fields_cmp( > > dtuple_t* tuple, > ulint n_fields_cmp) > >{ > ; > ; > > tuple->n_fields_cmp = n_fields_cmp; >} > > > >static inline >ulint >dtuple_get_n_fields( > > > dtuple_t* tuple) >{ > ; > > return(tuple->n_fields); >} > > > >static inline >dfield_t* >dtuple_get_nth_field( > > > dtuple_t* tuple, > ulint n) >{ > ; > ; > > return(tuple->fields + n); >} > > > > >static inline >dtuple_t* >dtuple_create( > > > mem_heap_t* heap, > > ulint n_fields) >{ > dtuple_t* tuple; > > ; > > tuple = (dtuple_t*) mem_heap_alloc(heap, sizeof(dtuple_t) > + n_fields * sizeof(dfield_t)); > tuple->info_bits = 0; > tuple->n_fields = n_fields; > tuple->n_fields_cmp = n_fields; > tuple->fields = (dfield_t*)(((unsigned char*)tuple) + sizeof(dtuple_t)); ># 280 "./include/data0data.ic" > return(tuple); >} > > > > > >static inline >ulint >dtuple_get_data_size( > > > dtuple_t* tuple) >{ > dfield_t* field; > ulint n_fields; > ulint len; > ulint i; > ulint sum = 0; > > ; > ; > ; > > n_fields = tuple->n_fields; > > for (i = 0; i < n_fields; i++) { > field = dtuple_get_nth_field(tuple, i); > len = dfield_get_len(field); > > if (len == 0xFFFFFFFF) { > len = dtype_get_sql_null_size(dfield_get_type(field)); > } > > sum += len; > } > > return(sum); >} > > > >static inline >void >dtuple_set_types_binary( > > dtuple_t* tuple, > ulint n) >{ > dtype_t* dfield_type; > ulint i; > > for (i = 0; i < n; i++) { > dfield_type = dfield_get_type(dtuple_get_nth_field(tuple, i)); > dtype_set(dfield_type, 4, 0, 0, 0); > } >} > > > >static inline >ulint >dtuple_fold( > > > dtuple_t* tuple, > ulint n_fields, > ulint n_bytes, > > dulint tree_id) >{ > dfield_t* field; > ulint i; > unsigned char* data; > ulint len; > ulint fold; > > ; > ; > ; > > fold = ut_fold_dulint(tree_id); > > for (i = 0; i < n_fields; i++) { > field = dtuple_get_nth_field(tuple, i); > > data = (unsigned char*) dfield_get_data(field); > len = dfield_get_len(field); > > if (len != 0xFFFFFFFF) { > fold = ut_fold_ulint_pair(fold, > ut_fold_binary(data, len)); > } > } > > if (n_bytes > 0) { > field = dtuple_get_nth_field(tuple, i); > > data = (unsigned char*) dfield_get_data(field); > len = dfield_get_len(field); > > if (len != 0xFFFFFFFF) { > if (len > n_bytes) { > len = n_bytes; > } > > fold = ut_fold_ulint_pair(fold, > ut_fold_binary(data, len)); > } > } > > return(fold); >} > > > >static inline >void >data_write_sql_null( > > unsigned char* data, > ulint len) >{ > ulint j; > > for (j = 0; j < len; j++) { > data[j] = '\0'; > } >} > > > >static inline >ulint >dtuple_contains_null( > > > dtuple_t* tuple) >{ > ulint n; > ulint i; > > n = dtuple_get_n_fields(tuple); > > for (i = 0; i < n; i++) { > if (dfield_get_len(dtuple_get_nth_field(tuple, i)) > == 0xFFFFFFFF) { > > return((1)); > } > } > > return((0)); >} ># 422 "./include/data0data.h" 2 ># 16 "./include/dict0mem.h" 2 > ># 1 "./include/rem0types.h" 1 ># 13 "./include/rem0types.h" >typedef unsigned char rec_t; ># 18 "./include/dict0mem.h" 2 ># 1 "./include/btr0types.h" 1 ># 17 "./include/btr0types.h" >typedef struct btr_pcur_struct btr_pcur_t; >typedef struct btr_cur_struct btr_cur_t; >typedef struct btr_search_struct btr_search_t; ># 19 "./include/dict0mem.h" 2 > > > > > > > ># 1 "./include/que0types.h" 1 ># 16 "./include/que0types.h" >typedef void que_node_t; > >typedef struct que_fork_struct que_fork_t; > > >typedef que_fork_t que_t; > >typedef struct que_thr_struct que_thr_t; >typedef struct que_common_struct que_common_t; > > > > >struct que_common_struct{ > ulint type; > que_node_t* parent; > que_node_t* brother; > dfield_t val; > ulint val_buf_size; > > > > > > >}; ># 27 "./include/dict0mem.h" 2 ># 48 "./include/dict0mem.h" >dict_table_t* >dict_mem_table_create( > > > const char* name, > ulint space, > > > > ulint n_cols, > ulint comp); > > > >void >dict_mem_table_free( > > dict_table_t* table); > > > >dict_cluster_t* >dict_mem_cluster_create( > > > > const char* name, > ulint space, > > > ulint n_cols, > ulint mix_len); > > > > >void >dict_mem_table_make_cluster_member( > > dict_table_t* table, > const char* cluster_name); > > > >void >dict_mem_table_add_col( > > dict_table_t* table, > const char* name, > ulint mtype, > ulint prtype, > ulint len, > ulint prec); > > > >dict_index_t* >dict_mem_index_create( > > > const char* table_name, > const char* index_name, > ulint space, > > > ulint type, > > ulint n_fields); > > > > > >void >dict_mem_index_add_field( > > dict_index_t* index, > const char* name, > ulint order, > > ulint prefix_len); > > > > > >void >dict_mem_index_free( > > dict_index_t* index); > > > >dict_foreign_t* >dict_mem_foreign_create(void); > > > > >struct dict_col_struct{ > hash_node_t hash; > ulint ind; > > ulint clust_pos; > > ulint ord_part; > > const char* name; > dtype_t type; > dict_table_t* table; > ulint aux; > >}; ># 173 "./include/dict0mem.h" >struct dict_field_struct{ > dict_col_t* col; > const char* name; > ulint order; > > ulint prefix_len; > > > > > > > ulint fixed_len; > > > ulint fixed_offs; > > > >}; > > >struct dict_tree_struct{ > ulint type; > dulint id; > > > ulint space; > ulint page; > unsigned char pad[64]; > > rw_lock_t lock; > > ulint mem_fix; > > > > struct { ulint count; dict_index_t * start; dict_index_t * end; } > tree_indexes; > > > > > > ulint magic_n; >}; > > > > >struct dict_index_struct{ > dulint id; > mem_heap_t* heap; > ulint type; > const char* name; > const char* table_name; > dict_table_t* table; > ulint space; > ulint trx_id_offset; > > > > ulint n_user_defined_cols; > > > > ulint n_uniq; > > > ulint n_def; > ulint n_fields; > dict_field_t* fields; > ulint n_nullable; > struct { dict_index_t * prev; dict_index_t * next; } > indexes; > dict_tree_t* tree; > struct { dict_index_t * prev; dict_index_t * next; } > tree_indexes; > > ulint cached; > > btr_search_t* search_info; > > ib_longlong* stat_n_diff_key_vals; > > > > > ulint stat_index_size; > > ulint stat_n_leaf_pages; > > > ulint magic_n; >}; > > > > >struct dict_foreign_struct{ > mem_heap_t* heap; > > char* id; > > ulint type; > > char* foreign_table_name; > dict_table_t* foreign_table; > const char** foreign_col_names; > > char* referenced_table_name; > dict_table_t* referenced_table; > > const char** referenced_col_names; > > ulint n_fields; > > > > > > dict_index_t* foreign_index; > > > > > dict_index_t* referenced_index; > struct { dict_foreign_t * prev; dict_foreign_t * next; } > foreign_list; > > struct { dict_foreign_t * prev; dict_foreign_t * next; } > referenced_list; > >}; ># 321 "./include/dict0mem.h" >struct dict_table_struct{ > dulint id; > ulint type; > mem_heap_t* heap; > const char* name; > const char* dir_path_of_temp_table; > > > > > > ulint space; > > ulint ibd_file_missing; > > > > ulint tablespace_discarded; > > > ulint comp; > hash_node_t name_hash; > hash_node_t id_hash; > ulint n_def; > ulint n_cols; > dict_col_t* cols; > struct { ulint count; dict_index_t * start; dict_index_t * end; } > indexes; > struct { ulint count; dict_foreign_t * start; dict_foreign_t * end; } > foreign_list; > > > struct { ulint count; dict_foreign_t * start; dict_foreign_t * end; } > referenced_list; > > struct { dict_table_t * prev; dict_table_t * next; } > table_LRU; > ulint mem_fix; > > > ulint n_mysql_handles_opened; > > > > > > ulint n_foreign_key_checks_running; > > > > > > ulint cached; > > ib_lock_t* auto_inc_lock; > > > > > > > dulint query_cache_inv_trx_id; > > > > > > > struct { ulint count; ib_lock_t * start; ib_lock_t * end; } > locks; > > dulint mix_id; > > ulint mix_len; > > ulint mix_id_len; > unsigned char mix_id_buf[12]; > > > const char* cluster_name; > > > ulint does_not_fit_in_memory; ># 413 "./include/dict0mem.h" > ib_longlong stat_n_rows; > > > ulint stat_clustered_index_size; > > > ulint stat_sum_of_other_index_sizes; > > ulint stat_initialized; > > > ulint stat_modified_counter; ># 437 "./include/dict0mem.h" > ib_mutex_t autoinc_mutex; > > > ulint autoinc_inited; > > > > ib_longlong autoinc; > > ulint magic_n; >}; > > > ># 1 "./include/dict0mem.ic" 1 ># 452 "./include/dict0mem.h" 2 ># 15 "./include/dict0dict.h" 2 ># 32 "./include/dict0dict.h" >void >dict_casedn_str( > > char* a); > > > >ulint >dict_get_db_name_len( > > > const char* name); > > > > >const char* >dict_accept( > > > > const char* ptr, > const char* string, > > ulint* success); > > > >void >dict_table_decrement_handle_count( > > dict_table_t* table); > > > >void >dict_init(void); ># 77 "./include/dict0dict.h" >void >dict_load_space_id_list(void); > > > >static inline >dtype_t* >dict_col_get_type( > > dict_col_t* col); ># 100 "./include/dict0dict.h" >static inline >ulint >dict_col_get_no( > > dict_col_t* col); > > >static inline >ulint >dict_col_get_clust_pos( > > dict_col_t* col); > > > > >ulint >dict_col_name_is_reserved( > > > const char* name); > > > > >void >dict_table_autoinc_initialize( > > dict_table_t* table, > ib_longlong value); > > > > >ib_longlong >dict_table_autoinc_get( > > > dict_table_t* table); > > > >void >dict_table_autoinc_decrement( > > dict_table_t* table); > > > > >ib_longlong >dict_table_autoinc_read( > > > dict_table_t* table); > > > > >ib_longlong >dict_table_autoinc_peek( > > > dict_table_t* table); > > > > >void >dict_table_autoinc_update( > > > dict_table_t* table, > ib_longlong value); > > > >void >dict_table_add_to_cache( > > dict_table_t* table); > > > >void >dict_table_remove_from_cache( > > dict_table_t* table); > > > >ulint >dict_table_rename_in_cache( > > > dict_table_t* table, > const char* new_name, > ulint rename_also_foreigns); > > > > > > >void >dict_table_change_id_in_cache( > > dict_table_t* table, > dulint new_id); > > > > > > >ulint >dict_foreign_add_to_cache( > > > dict_foreign_t* foreign, > ulint check_charsets); > > > > >ulint >dict_table_referenced_by_foreign_key( > > > > dict_table_t* table); ># 239 "./include/dict0dict.h" >ulint >dict_create_foreign_constraints( > > > trx_t* trx, > const char* sql_string, > > > > > > > > const char* name, > > > ulint reject_fks); > > > > > >ulint >dict_foreign_parse_drop_constraints( > > > > > > mem_heap_t* heap, > > trx_t* trx, > dict_table_t* table, > ulint* n, > > const char*** constraints_to_drop); > > > > > > >dict_table_t* >dict_table_get( > > > > const char* table_name, > trx_t* trx); > > > > >dict_table_t* >dict_table_get_and_increment_handle_count( > > > > const char* table_name, > trx_t* trx); > > > >dict_table_t* >dict_table_get_on_id( > > > dulint table_id, > trx_t* trx); > > >static inline >dict_table_t* >dict_table_get_on_id_low( > > > dulint table_id, > trx_t* trx); > > >static inline >void >dict_table_release( > > dict_table_t* table); > > >static inline >dict_table_t* >dict_table_check_if_in_cache_low( > > > const char* table_name); > > > >static inline >dict_table_t* >dict_table_get_low( > > > const char* table_name); > > >static inline >dict_index_t* >dict_table_get_index( > > > dict_table_t* table, > const char* name); > > > >dict_index_t* >dict_table_get_index_noninline( > > > dict_table_t* table, > const char* name); > > > >void >dict_table_print( > > dict_table_t* table); > > > >void >dict_table_print_low( > > dict_table_t* table); > > > >void >dict_table_print_by_name( > > const char* name); > > > >void >dict_print_info_on_foreign_keys( > > ulint create_table_format, > > > > FILE* file, > trx_t* trx, > dict_table_t* table); > > > >void >dict_print_info_on_foreign_key_in_create_format( > > FILE* file, > trx_t* trx, > dict_foreign_t* foreign, > ulint add_newline); > > >void >dict_index_name_print( > > FILE* file, > trx_t* trx, > const dict_index_t* index); > > >static inline >dict_index_t* >dict_table_get_first_index( > > > dict_table_t* table); > > > >dict_index_t* >dict_table_get_first_index_noninline( > > > dict_table_t* table); > > >static inline >dict_index_t* >dict_table_get_next_index( > > > dict_index_t* index); > > > >dict_index_t* >dict_table_get_next_index_noninline( > > > dict_index_t* index); > > > >static inline >ulint >dict_table_get_n_user_cols( > > > > dict_table_t* table); > > >static inline >ulint >dict_table_get_n_sys_cols( > > > > dict_table_t* table); > > > >static inline >ulint >dict_table_get_n_cols( > > > dict_table_t* table); > > >static inline >dict_col_t* >dict_table_get_nth_col( > > > dict_table_t* table, > ulint pos); > > > >dict_col_t* >dict_table_get_nth_col_noninline( > > > dict_table_t* table, > ulint pos); > > >static inline >dict_col_t* >dict_table_get_sys_col( > > > dict_table_t* table, > ulint sys); > > >static inline >ulint >dict_table_get_sys_col_no( > > > dict_table_t* table, > ulint sys); > > > > >ulint >dict_table_col_in_clustered_key( > > > > dict_table_t* table, > ulint n); > > > >void >dict_table_copy_types( > > dtuple_t* tuple, > dict_table_t* table); > > > > > >dict_index_t* >dict_index_find_on_id_low( > > > dulint id); > > > >ulint >dict_index_add_to_cache( > > > dict_table_t* table, > dict_index_t* index, > > ulint page_no); > > > >static inline >ulint >dict_index_get_n_fields( > > > dict_index_t* index); > > > > > > >static inline >ulint >dict_index_get_n_unique( > > > dict_index_t* index); > > > > > >static inline >ulint >dict_index_get_n_unique_in_tree( > > > dict_index_t* index); > > > > > > >static inline >ulint >dict_index_get_n_ordering_defined_by_user( > > > dict_index_t* index); > > > >static inline >dict_field_t* >dict_index_get_nth_field( > > > dict_index_t* index, > ulint pos); > > >static inline >dtype_t* >dict_index_get_nth_type( > > > dict_index_t* index, > ulint pos); > > >static inline >ulint >dict_index_get_nth_col_no( > > > dict_index_t* index, > ulint pos); > > > >ulint >dict_index_get_nth_col_pos( > > > > > dict_index_t* index, > ulint n); > > > >ulint >dict_index_contains_col_or_prefix( > > > > dict_index_t* index, > ulint n); > > > > > > >ulint >dict_index_get_nth_field_pos( > > > > > dict_index_t* index, > dict_index_t* index2, > ulint n); > > > >ulint >dict_table_get_nth_col_pos( > > > > dict_table_t* table, > ulint n); > > >static inline >ulint >dict_index_get_sys_col_pos( > > > > dict_index_t* index, > ulint type); > > > >void >dict_index_add_col( > > dict_index_t* index, > dict_col_t* col, > ulint order, > ulint prefix_len); > > > >void >dict_index_copy_types( > > dtuple_t* tuple, > dict_index_t* index, > ulint n_fields); > > >static inline >dict_tree_t* >dict_index_get_tree( > > > dict_index_t* index); > > >static inline >ulint >dict_field_get_order( > > dict_field_t* field); > > >static inline >dict_col_t* >dict_field_get_col( > > dict_field_t* field); > > > >dict_tree_t* >dict_tree_create( > > > dict_index_t* index, > > > ulint page_no); > > > >void >dict_tree_free( > > dict_tree_t* tree); > > > >dict_index_t* >dict_tree_find_index( > > > dict_tree_t* tree, > rec_t* rec); > > > > >dict_index_t* >dict_tree_find_index_for_tuple( > > > > dict_tree_t* tree, > dtuple_t* tuple); > > > >ulint >dict_is_mixed_table_rec( > > > > dict_table_t* table, > rec_t* rec); > > > >dict_index_t* >dict_index_get_if_in_cache( > > > dulint index_id); > > > > >ulint >dict_tree_check_search_tuple( > > > dict_tree_t* tree, > dtuple_t* tuple); > > > >dtuple_t* >dict_tree_build_node_ptr( > > > dict_tree_t* tree, > rec_t* rec, > > ulint page_no, > mem_heap_t* heap, > ulint level); > > > > > >rec_t* >dict_tree_copy_rec_order_prefix( > > > dict_tree_t* tree, > rec_t* rec, > ulint* n_fields, > unsigned char** buf, > > ulint* buf_size); > > > >dtuple_t* >dict_tree_build_data_tuple( > > > dict_tree_t* tree, > rec_t* rec, > ulint n_fields, > mem_heap_t* heap); > > >static inline >ulint >dict_tree_get_space( > > > dict_tree_t* tree); > > >static inline >void >dict_tree_set_space( > > dict_tree_t* tree, > ulint space); > > >static inline >ulint >dict_tree_get_page( > > > dict_tree_t* tree); > > >static inline >void >dict_tree_set_page( > > dict_tree_t* tree, > ulint page); > > >static inline >ulint >dict_tree_get_type( > > > dict_tree_t* tree); > > >static inline >rw_lock_t* >dict_tree_get_lock( > > > dict_tree_t* tree); > > > > >static inline >ulint >dict_tree_get_space_reserve( > > > > dict_tree_t* tree); > > > >ulint >dict_index_calc_min_rec_len( > > dict_index_t* index); > > > > >void >dict_update_statistics_low( > > dict_table_t* table, > ulint has_dict_mutex); > > > > > >void >dict_update_statistics( > > dict_table_t* table); > > > >void >dict_mutex_enter_for_mysql(void); > > > > >void >dict_mutex_exit_for_mysql(void); > > > > >ulint >dict_tables_have_same_db( > > > const char* name1, > > const char* name2); > > > > > > > >const char* >dict_scan_to( > > > const char* ptr, > const char* string); > >void >dict_table_LRU_trim( > > dict_table_t* self); > > > >extern FILE* dict_foreign_err_file; >extern ib_mutex_t dict_foreign_err_mutex; > >extern dict_sys_t* dict_sys; >extern rw_lock_t dict_operation_lock; > > >struct dict_sys_struct{ > ib_mutex_t mutex; > > > > > > > dulint row_id; > > > > > > hash_table_t* table_hash; > > hash_table_t* table_id_hash; > > hash_table_t* col_hash; > struct { ulint count; dict_table_t * start; dict_table_t * end; } > table_LRU; > ulint size; > > > dict_table_t* sys_tables; > dict_table_t* sys_columns; > dict_table_t* sys_indexes; > dict_table_t* sys_fields; >}; > > ># 1 "./include/dict0dict.ic" 1 ># 9 "./include/dict0dict.ic" ># 1 "./include/dict0load.h" 1 ># 26 "./include/dict0load.h" >void >dict_check_tablespaces_and_store_max_id( > > ulint in_crash_recovery); > > > >char* >dict_get_first_table_name_in_db( > > > > > const char* name); > > > > > > >dict_table_t* >dict_load_table( > > > > > > > const char* name); > > > > >dict_table_t* >dict_load_table_on_id( > > > dulint table_id); > > > > > >void >dict_load_sys_table( > > dict_table_t* table); > > > > > > > >ulint >dict_load_foreigns( > > > const char* table_name, > ulint check_charsets); > > > > > >void >dict_print(void); > > > > ># 1 "./include/dict0load.ic" 1 ># 98 "./include/dict0load.h" 2 ># 10 "./include/dict0dict.ic" 2 ># 1 "./include/trx0undo.h" 1 ># 15 "./include/trx0undo.h" ># 1 "./include/trx0sys.h" 1 ># 16 "./include/trx0sys.h" ># 1 "./include/mtr0log.h" 1 ># 20 "./include/mtr0log.h" >void >mlog_write_ulint( > > unsigned char* ptr, > ulint val, > unsigned char type, > mtr_t* mtr); > > > > >void >mlog_write_dulint( > > unsigned char* ptr, > dulint val, > mtr_t* mtr); > > > > >void >mlog_write_string( > > unsigned char* ptr, > const unsigned char* str, > ulint len, > mtr_t* mtr); > > > > >void >mlog_write_initial_log_record( > > unsigned char* ptr, > > > unsigned char type, > mtr_t* mtr); > > >static inline >unsigned char* >mlog_write_initial_log_record_for_file_op( > > > ulint type, > > ulint space_id, > ulint page_no, > unsigned char* log_ptr, > mtr_t* mtr); > > >static inline >void >mlog_catenate_ulint( > > mtr_t* mtr, > ulint val, > ulint type); > > > >void >mlog_catenate_string( > > mtr_t* mtr, > const unsigned char* str, > ulint len); > > >static inline >void >mlog_catenate_ulint_compressed( > > mtr_t* mtr, > ulint val); > > >static inline >void >mlog_catenate_dulint_compressed( > > mtr_t* mtr, > dulint val); > > >static inline >unsigned char* >mlog_open( > > > mtr_t* mtr, > ulint size); > > > >static inline >void >mlog_close( > > mtr_t* mtr, > unsigned char* ptr); > > > > >static inline >unsigned char* >mlog_write_initial_log_record_fast( > > > unsigned char* ptr, > > unsigned char type, > unsigned char* log_ptr, > mtr_t* mtr); > > > >unsigned char* >mlog_parse_initial_log_record( > > > > unsigned char* ptr, > unsigned char* end_ptr, > unsigned char* type, > ulint* space, > ulint* page_no); > > > >unsigned char* >mlog_parse_nbytes( > > > > ulint type, > unsigned char* ptr, > unsigned char* end_ptr, > unsigned char* page); > > > >unsigned char* >mlog_parse_string( > > > > unsigned char* ptr, > unsigned char* end_ptr, > unsigned char* page); ># 183 "./include/mtr0log.h" >unsigned char* >mlog_open_and_write_index( > > > > mtr_t* mtr, > unsigned char* rec, > dict_index_t* index, > unsigned char type, > ulint size); > > > > > >unsigned char* >mlog_parse_index( > > > > unsigned char* ptr, > unsigned char* end_ptr, > > ulint comp, > dict_index_t** index); > > > > > > ># 1 "./include/mtr0log.ic" 1 ># 15 "./include/mtr0log.ic" >static inline >unsigned char* >mlog_open( > > > mtr_t* mtr, > ulint size) > >{ > dyn_array_t* mlog; > > mtr->modifications = (1); > > if (mtr_get_log_mode(mtr) == 22) { > > return(((void *)0)); > } > > mlog = &(mtr->log); > > return(dyn_array_open(mlog, size)); >} > > > >static inline >void >mlog_close( > > mtr_t* mtr, > unsigned char* ptr) >{ > dyn_array_t* mlog; > > ; > > mlog = &(mtr->log); > > dyn_array_close(mlog, ptr); >} > > > >static inline >void >mlog_catenate_ulint( > > mtr_t* mtr, > ulint val, > ulint type) >{ > dyn_array_t* mlog; > unsigned char* ptr; > > if (mtr_get_log_mode(mtr) == 22) { > > return; > } > > mlog = &(mtr->log); > > ; > ; > ; > > ptr = dyn_array_push(mlog, type); > > if (type == ((unsigned char)4)) { > mach_write_to_4(ptr, val); > } else if (type == ((unsigned char)2)) { > mach_write_to_2(ptr, val); > } else { > ; > mach_write_to_1(ptr, val); > } >} > > > >static inline >void >mlog_catenate_ulint_compressed( > > mtr_t* mtr, > ulint val) >{ > unsigned char* log_ptr; > > log_ptr = mlog_open(mtr, 10); > > > if (log_ptr == ((void *)0)) { > > return; > } > > log_ptr += mach_write_compressed(log_ptr, val); > > mlog_close(mtr, log_ptr); >} > > > >static inline >void >mlog_catenate_dulint_compressed( > > mtr_t* mtr, > dulint val) >{ > unsigned char* log_ptr; > > log_ptr = mlog_open(mtr, 15); > > > if (log_ptr == ((void *)0)) { > > return; > } > > log_ptr += mach_dulint_write_compressed(log_ptr, val); > > mlog_close(mtr, log_ptr); >} > > > > > >static inline >unsigned char* >mlog_write_initial_log_record_fast( > > > unsigned char* ptr, > > unsigned char type, > unsigned char* log_ptr, > mtr_t* mtr) >{ > buf_block_t* block; > ulint space; > ulint offset; > > ; > > ; > ; > > block = buf_block_align(ptr); > > space = buf_block_get_space(block); > offset = buf_block_get_page_no(block); > > mach_write_to_1(log_ptr, type); > log_ptr++; > log_ptr += mach_write_compressed(log_ptr, space); > log_ptr += mach_write_compressed(log_ptr, offset); > > mtr->n_log_recs++; ># 190 "./include/mtr0log.ic" > return(log_ptr); >} > > > >static inline >unsigned char* >mlog_write_initial_log_record_for_file_op( > > > ulint type, > > ulint space_id, > ulint page_no, > unsigned char* log_ptr, > mtr_t* mtr) >{ > ; > > mach_write_to_1(log_ptr, type); > log_ptr++; > > > log_ptr += mach_write_compressed(log_ptr, space_id); > log_ptr += mach_write_compressed(log_ptr, page_no); > > mtr->n_log_recs++; > > return(log_ptr); >} ># 215 "./include/mtr0log.h" 2 ># 17 "./include/trx0sys.h" 2 > > > > > > ># 1 "./include/fut0lst.h" 1 ># 22 "./include/fut0lst.h" >typedef unsigned char flst_base_node_t; >typedef unsigned char flst_node_t; ># 34 "./include/fut0lst.h" >static inline >void >flst_init( > > flst_base_node_t* base, > mtr_t* mtr); > > > >void >flst_add_last( > > flst_base_node_t* base, > flst_node_t* node, > mtr_t* mtr); > > > >void >flst_add_first( > > flst_base_node_t* base, > flst_node_t* node, > mtr_t* mtr); > > > >void >flst_insert_after( > > flst_base_node_t* base, > flst_node_t* node1, > flst_node_t* node2, > mtr_t* mtr); > > > >void >flst_insert_before( > > flst_base_node_t* base, > flst_node_t* node2, > flst_node_t* node3, > mtr_t* mtr); > > > >void >flst_remove( > > flst_base_node_t* base, > flst_node_t* node2, > mtr_t* mtr); > > > > > >void >flst_cut_end( > > flst_base_node_t* base, > flst_node_t* node2, > ulint n_nodes, > > mtr_t* mtr); > > > > > >void >flst_truncate_end( > > flst_base_node_t* base, > flst_node_t* node2, > ulint n_nodes, > mtr_t* mtr); > > >static inline >ulint >flst_get_len( > > > flst_base_node_t* base, > mtr_t* mtr); > > >static inline >fil_addr_t >flst_get_first( > > > flst_base_node_t* base, > mtr_t* mtr); > > >static inline >fil_addr_t >flst_get_last( > > > flst_base_node_t* base, > mtr_t* mtr); > > >static inline >fil_addr_t >flst_get_next_addr( > > > flst_node_t* node, > mtr_t* mtr); > > >static inline >fil_addr_t >flst_get_prev_addr( > > > flst_node_t* node, > mtr_t* mtr); > > >static inline >void >flst_write_addr( > > fil_faddr_t* faddr, > fil_addr_t addr, > mtr_t* mtr); > > >static inline >fil_addr_t >flst_read_addr( > > > fil_faddr_t* faddr, > mtr_t* mtr); > > > >ulint >flst_validate( > > > flst_base_node_t* base, > mtr_t* mtr1); > > > >void >flst_print( > > flst_base_node_t* base, > mtr_t* mtr); > > > ># 1 "./include/fut0lst.ic" 1 ># 9 "./include/fut0lst.ic" ># 1 "./include/fut0fut.h" 1 ># 20 "./include/fut0fut.h" >static inline >unsigned char* >fut_get_ptr( > > > > ulint space, > fil_addr_t addr, > ulint rw_latch, > mtr_t* mtr); > > ># 1 "./include/fut0fut.ic" 1 ># 14 "./include/fut0fut.ic" >static inline >unsigned char* >fut_get_ptr( > > > > ulint space, > fil_addr_t addr, > ulint rw_latch, > mtr_t* mtr) >{ > unsigned char* ptr; > > ; > ; > ; > > ptr = buf_page_get_gen( space, addr.page, rw_latch, ((void *)0), 10, "./include/fut0fut.ic", 31, mtr) + addr.boffset; > > > > > > return(ptr); >} ># 33 "./include/fut0fut.h" 2 ># 10 "./include/fut0lst.ic" 2 ># 31 "./include/fut0lst.ic" >static inline >void >flst_write_addr( > > fil_faddr_t* faddr, > fil_addr_t addr, > mtr_t* mtr) >{ > ; > ; > > > mlog_write_ulint(faddr + 0, addr.page, ((unsigned char)4), mtr); > mlog_write_ulint(faddr + 4, addr.boffset, > ((unsigned char)2), mtr); >} > > > >static inline >fil_addr_t >flst_read_addr( > > > fil_faddr_t* faddr, > mtr_t* mtr) >{ > fil_addr_t addr; > > ; > > addr.page = mtr_read_ulint(faddr + 0, ((unsigned char)4), mtr); > addr.boffset = mtr_read_ulint(faddr + 4, ((unsigned char)2), > mtr); > return(addr); >} > > > >static inline >void >flst_init( > > flst_base_node_t* base, > mtr_t* mtr) >{ > ; > > mlog_write_ulint(base + 0, 0, ((unsigned char)4), mtr); > flst_write_addr(base + 4, fil_addr_null, mtr); > flst_write_addr(base + (4 + 6), fil_addr_null, mtr); >} > > > >static inline >ulint >flst_get_len( > > > flst_base_node_t* base, > mtr_t* mtr) >{ > return(mtr_read_ulint(base + 0, ((unsigned char)4), mtr)); >} > > > >static inline >fil_addr_t >flst_get_first( > > > flst_base_node_t* base, > mtr_t* mtr) >{ > return(flst_read_addr(base + 4, mtr)); >} > > > >static inline >fil_addr_t >flst_get_last( > > > flst_base_node_t* base, > mtr_t* mtr) >{ > return(flst_read_addr(base + (4 + 6), mtr)); >} > > > >static inline >fil_addr_t >flst_get_next_addr( > > > flst_node_t* node, > mtr_t* mtr) >{ > return(flst_read_addr(node + 6, mtr)); >} > > > >static inline >fil_addr_t >flst_get_prev_addr( > > > flst_node_t* node, > mtr_t* mtr) >{ > return(flst_read_addr(node + 0, mtr)); >} ># 196 "./include/fut0lst.h" 2 ># 24 "./include/trx0sys.h" 2 ># 1 "./include/fsp0fsp.h" 1 ># 34 "./include/fsp0fsp.h" >typedef unsigned char fseg_header_t; ># 45 "./include/fsp0fsp.h" >void >fsp_init(void); > > > > > > > >ulint >fsp_header_get_free_limit( > > > ulint space); > > > > > >ulint >fsp_header_get_tablespace_size( > > > ulint space); > > > >ulint >fsp_get_size_low( > > > ib_page_t* page); > > > >ulint >fsp_header_get_space_id( > > > ib_page_t* page); > > > > >void >fsp_header_write_space_id( > > ib_page_t* page, > ulint space_id); > > > > >void >fsp_header_init( > > ulint space, > ulint size, > mtr_t* mtr); > > > >void >fsp_header_inc_size( > > ulint space, > ulint size_inc, > mtr_t* mtr); > > > >ib_page_t* >fseg_create( > > > > > ulint space, > ulint page, > > > > ulint byte_offset, > > mtr_t* mtr); > > > >ib_page_t* >fseg_create_general( > > > > > ulint space, > ulint page, > > > > ulint byte_offset, > > ulint has_done_reservation, > > > > > > mtr_t* mtr); > > > > >ulint >fseg_n_reserved_pages( > > > fseg_header_t* header, > ulint* used, > mtr_t* mtr); > > > > > >ulint >fseg_alloc_free_page( > > > > fseg_header_t* seg_header, > ulint hint, > unsigned char direction, > > > > > mtr_t* mtr); > > > > > >ulint >fseg_alloc_free_page_general( > > > > fseg_header_t* seg_header, > ulint hint, > unsigned char direction, > > > > > ulint has_done_reservation, > > > > > mtr_t* mtr); ># 231 "./include/fsp0fsp.h" >ulint >fsp_reserve_free_extents( > > > ulint* n_reserved, > > > ulint space, > ulint n_ext, > ulint alloc_type, > mtr_t* mtr); > > > > > > >ullint >fsp_get_available_space_in_free_extents( > > > ulint space); > > > >void >fseg_free_page( > > fseg_header_t* seg_header, > ulint space, > ulint page, > mtr_t* mtr); > > > > >void >fseg_free( > > ulint space, > ulint page_no, > > ulint offset); > > > > > > > >ulint >fseg_free_step( > > > fseg_header_t* header, > > > > mtr_t* mtr); > > > > >ulint >fseg_free_step_not_header( > > > > fseg_header_t* header, > > mtr_t* mtr); > > >static inline >ulint >fsp_descr_page( > > > ulint page_no); > > > >unsigned char* >fsp_parse_init_file_page( > > > unsigned char* ptr, > unsigned char* end_ptr, > ib_page_t* page); > > > >ulint >fsp_validate( > > > ulint space); > > > >void >fsp_print( > > ulint space); > > > >ulint >fseg_validate( > > > fseg_header_t* header, > mtr_t* mtr2); > > > >void >fseg_print( > > fseg_header_t* header, > mtr_t* mtr); ># 384 "./include/fsp0fsp.h" ># 1 "./include/fsp0fsp.ic" 1 ># 11 "./include/fsp0fsp.ic" >static inline >ulint >fsp_descr_page( > > > ulint page_no) >{ > if (page_no % (2 * 8192) == 0) { > > return((1)); > } > > return((0)); >} ># 385 "./include/fsp0fsp.h" 2 ># 25 "./include/trx0sys.h" 2 ># 1 "./include/read0types.h" 1 ># 12 "./include/read0types.h" >typedef struct read_view_struct read_view_t; >typedef struct cursor_view_struct cursor_view_t; ># 26 "./include/trx0sys.h" 2 > > > > > > >extern char trx_sys_mysql_master_log_name[]; >extern ib_longlong trx_sys_mysql_master_log_pos; > > > > > > >extern char trx_sys_mysql_bin_log_name[]; >extern ib_longlong trx_sys_mysql_bin_log_pos; > > >extern trx_sys_t* trx_sys; > > >extern trx_doublewrite_t* trx_doublewrite; >extern ulint trx_doublewrite_must_reset_space_ids; >extern ulint trx_sys_multiple_tablespace_format; > > > > > >void >trx_sys_create_doublewrite_buf(void); ># 66 "./include/trx0sys.h" >void >trx_sys_doublewrite_init_or_restore_pages( > > ulint restore_corrupt_pages); > > > > >void >trx_sys_mark_upgraded_to_multiple_tablespaces(void); > > > > >ulint >trx_doublewrite_page_inside( > > > > ulint page_no); > > >static inline >ulint >trx_sys_hdr_page( > > > ulint space, > ulint page_no); > > > > >void >trx_sys_init_at_db_start(void); > > > > >void >trx_sys_create(void); > > > > >void >trx_sys_create_extra_rseg( > > ulint num); > > > >ulint >trx_sysf_rseg_find_free( > > > > mtr_t* mtr); > > >static inline >trx_rseg_t* >trx_sys_get_nth_rseg( > > > > trx_sys_t* sys, > ulint n); > > >static inline >void >trx_sys_set_nth_rseg( > > trx_sys_t* sys, > ulint n, > trx_rseg_t* rseg); > > > >static inline >trx_sysf_t* >trx_sysf_get( > > > mtr_t* mtr); > > > >static inline >ulint >trx_sysf_rseg_get_space( > > > trx_sysf_t* sys_header, > ulint i, > mtr_t* mtr); > > > >static inline >ulint >trx_sysf_rseg_get_page_no( > > > > trx_sysf_t* sys_header, > ulint i, > mtr_t* mtr); > > > >static inline >void >trx_sysf_rseg_set_space( > > trx_sysf_t* sys_header, > ulint i, > ulint space, > mtr_t* mtr); > > > >static inline >void >trx_sysf_rseg_set_page_no( > > trx_sysf_t* sys_header, > ulint i, > ulint page_no, > > mtr_t* mtr); > > >static inline >dulint >trx_sys_get_new_trx_id(void); > > > > >static inline >dulint >trx_sys_get_new_trx_no(void); > > > > > > >static inline >void >trx_write_trx_id( > > unsigned char* ptr, > dulint id); > > > > >static inline >dulint >trx_read_trx_id( > > > unsigned char* ptr); > > >static inline >trx_t* >trx_get_on_id( > > > dulint trx_id); > > > > > >static inline >dulint >trx_list_get_min_trx_id(void); > > > > > >static inline >ulint >trx_is_active( > > > dulint trx_id); > > > >ulint >trx_in_trx_list( > > > trx_t* in_trx); > > > > > > >void >trx_sys_update_mysql_binlog_offset( > > const char* file_name, > ib_longlong offset, > ulint field, > > mtr_t* mtr); > > > > >void >trx_sys_print_mysql_binlog_offset(void); ># 303 "./include/trx0sys.h" >void >trx_sys_print_mysql_master_log_pos(void); ># 403 "./include/trx0sys.h" >struct trx_doublewrite_struct{ > ib_mutex_t mutex; > > ulint block1; > > ulint block2; > ulint first_free; > > unsigned char* write_buf; > > > > unsigned char* write_buf_unaligned; > buf_block_t** > buf_block_arr; > >}; > > > >struct trx_sys_struct{ > dulint max_trx_id; > > > struct { ulint count; trx_t * start; trx_t * end; } trx_list; > > > > struct { ulint count; trx_t * start; trx_t * end; } mysql_trx_list; > > > struct { ulint count; trx_rseg_t * start; trx_rseg_t * end; } rseg_list; > > trx_rseg_t* latest_rseg; > > > trx_rseg_t* rseg_array[256]; > > > ulint rseg_history_len; > > > > struct { ulint count; read_view_t * start; read_view_t * end; } view_list; > > >}; > > > > > > > ># 1 "./include/trx0sys.ic" 1 ># 9 "./include/trx0sys.ic" ># 1 "./include/srv0srv.h" 1 ># 19 "./include/srv0srv.h" >extern const char* srv_main_thread_op_info; > > > >extern os_event_t srv_lock_timeout_thread_event; > > > > > > >extern ulint srv_slow_log; > > >extern ulint srv_lower_case_table_names; > > >extern ib_mutex_t srv_monitor_file_mutex; > >extern FILE* srv_monitor_file; > > > >extern ib_mutex_t srv_dict_tmpfile_mutex; > >extern FILE* srv_dict_tmpfile; > > > >extern ib_mutex_t srv_misc_tmpfile_mutex; > >extern FILE* srv_misc_tmpfile; > > > >extern char* srv_data_home; > > > > >extern ulint srv_file_per_table; >extern ulint srv_locks_unsafe_for_binlog; > >extern ulint srv_n_data_files; >extern char** srv_data_file_names; >extern ulint* srv_data_file_sizes; >extern ulint* srv_data_file_is_raw_partition; > >extern ulint srv_auto_extend_last_data_file; >extern ulint srv_last_file_size_max; >extern ulong srv_auto_extend_increment; > >extern ulint srv_created_new_raw; > > > > >extern char** srv_log_group_home_dirs; > >extern ulint srv_n_log_groups; >extern ulint srv_n_log_files; >extern ulint srv_log_file_size; >extern ulint srv_log_buffer_size; >extern ulong srv_flush_log_at_trx_commit; >extern ulong srv_show_locks_held; >extern ulong srv_show_verbose_locks; > >extern unsigned char srv_latin1_ordering[256]; > >extern ulint srv_pool_size; >extern ulint srv_awe_window_size; >extern ulint srv_mem_pool_size; >extern ulint srv_lock_table_size; > >extern ulint srv_thread_concurrency_timer_based; > >extern ulint srv_n_file_io_threads; >extern ulint srv_n_read_io_threads; >extern ulint srv_n_write_io_threads; > > > > > > > >extern ulint srv_lock_wait_timeout; > >extern char* srv_file_flush_method_str; >extern ulint srv_unix_file_flush_method; >extern ulint srv_win_file_flush_method; > >extern ulint srv_max_n_open_files; > >extern ulint srv_max_dirty_pages_pct; > >extern ulint srv_force_recovery; >extern ulong srv_thread_concurrency; >extern ulong srv_commit_concurrency; > >extern ulint srv_max_n_threads; > >extern lint srv_conc_n_threads; > >extern ulint srv_fast_shutdown; > > > > > > >extern ulint srv_innodb_status; > >extern ulint srv_use_doublewrite_buf; >extern ulint srv_use_checksums; > >extern ulint srv_set_thread_priorities; >extern int srv_query_thread_priority; > >extern ulong srv_max_buf_pool_modified_pct; >extern ulong srv_max_purge_lag; >extern ulint srv_use_awe; >extern ulint srv_use_adaptive_hash_indexes; > >extern ulint srv_io_capacity; >extern long long srv_ibuf_max_size; >extern ulint srv_ibuf_active_contract; >extern ulint srv_ibuf_accel_rate; >extern ulint srv_flush_neighbor_pages; >extern ulint srv_enable_unsafe_group_commit; >extern uint srv_read_ahead; >extern ulint srv_adaptive_checkpoint; > >extern ulint srv_extra_rsegments; > >extern ulint srv_dict_size_limit; > >extern volatile ulint srv_io_pattern; >extern ulong srv_io_pattern_trace; >extern ulong srv_io_pattern_trace_running; >extern ulong srv_io_pattern_size_limit; > > >extern ulint srv_n_rows_inserted; >extern ulint srv_n_rows_updated; >extern ulint srv_n_rows_deleted; >extern ulint srv_n_rows_read; > >extern ulint srv_print_innodb_monitor; >extern ulint srv_print_innodb_lock_monitor; >extern ulint srv_print_innodb_tablespace_monitor; >extern ulint srv_print_verbose_log; >extern ulint srv_print_innodb_table_monitor; > >extern ulint srv_lock_timeout_and_monitor_active; >extern ulint srv_error_monitor_active; > >extern ulong srv_n_spin_wait_rounds; >extern ulong srv_n_free_tickets_to_enter; >extern ulong srv_thread_sleep_delay; >extern ulint srv_spin_wait_delay; >extern ulint srv_priority_boost; > >extern ulint srv_pool_size; >extern ulint srv_mem_pool_size; >extern ulint srv_lock_table_size; > >extern ulint srv_sim_disk_wait_pct; >extern ulint srv_sim_disk_wait_len; >extern ulint srv_sim_disk_wait_by_yield; >extern ulint srv_sim_disk_wait_by_wait; > >extern ulint srv_measure_contention; >extern ulint srv_measure_by_spin; > >extern ulint srv_print_thread_releases; >extern ulint srv_print_lock_waits; >extern ulint srv_print_buf_io; >extern ulint srv_print_log_io; >extern ulint srv_print_parsed_sql; >extern ulint srv_print_latch_waits; > >extern ulint srv_test_nocache; >extern ulint srv_test_cache_evict; > >extern ulint srv_test_extra_mutexes; >extern ulint srv_test_sync; >extern ulint srv_test_n_threads; >extern ulint srv_test_n_loops; >extern ulint srv_test_n_free_rnds; >extern ulint srv_test_n_reserved_rnds; >extern ulint srv_test_n_mutexes; >extern ulint srv_test_array_size; > >extern ulint srv_activity_count; >extern ulint srv_fatal_semaphore_wait_threshold; >extern ulint srv_dml_needed_delay; > >extern ib_mutex_t* kernel_mutex_temp; ># 227 "./include/srv0srv.h" >extern const char* srv_io_thread_op_info[]; >extern const char* srv_io_thread_function[]; > > >extern ulint srv_log_write_requests; > > >extern ulint srv_log_writes; > > >extern ulint srv_os_log_written; > > >extern ulint srv_os_log_pending_writes; > > > >extern ulint srv_log_waits; > > >extern ulint srv_data_read; > > >extern ulint srv_data_written; > > > >extern ulint srv_dblwr_writes; > > > >extern ulint srv_dblwr_pages_written; > > >extern ulint srv_buf_pool_write_requests; > > > > >extern ulint srv_buf_pool_wait_free; > > > >extern ulint srv_buf_pool_flushed; > > > >extern ulint srv_buf_pool_reads; > > >extern ulint srv_read_ahead_seq; > > >extern ulint srv_read_ahead_rnd; > > > > > >extern char srv_use_legacy_cardinality_algorithm; > > >typedef struct export_var_struct export_struc; > >extern export_struc export_vars; > >typedef struct srv_sys_struct srv_sys_t; > > >extern srv_sys_t* srv_sys; ># 338 "./include/srv0srv.h" >ulint >srv_boot(void); > > > > > >void >srv_init(void); > > > > >void >srv_free(void); > > > > > >void >srv_general_init(void); > > > > >ulint >srv_get_n_threads(void); > > > > >ulint >srv_get_thread_type(void); > > > > > >void >srv_set_io_thread_op_info( > > ulint i, > const char* str); > > > > > >ulint >srv_release_threads( > > > > > ulint type, > ulint n); > > > > >void* > > > >srv_master_thread( > > > void* arg); ># 415 "./include/srv0srv.h" >void >srv_active_wake_master_thread(void); > > > > >void >srv_wake_master_thread(void); > > > > > >void >srv_conc_enter_innodb( > > trx_t* trx); > > > > > >void >srv_conc_force_enter_innodb( > > trx_t* trx); > > > > > >void >srv_conc_force_exit_innodb( > > trx_t* trx); > > > > >void >srv_conc_exit_innodb( > > trx_t* trx); ># 466 "./include/srv0srv.h" >void >srv_suspend_mysql_thread( > > que_thr_t* thr); > > > > > >void >srv_release_mysql_thread_if_suspended( > > que_thr_t* thr); > > > > > > >void* > > > >srv_lock_timeout_and_monitor_thread( > > > void* arg); > > > > > > >void* > > > >srv_error_monitor_thread( > > > void* arg); > > > > >void >srv_printf_innodb_monitor( > > FILE* file, > ulint* trx_start, > > ulint* trx_end); > > > > > >void >srv_export_innodb_status(void); ># 546 "./include/srv0srv.h" >typedef struct srv_slot_struct srv_slot_t; > > >typedef srv_slot_t srv_table_t; > > >struct export_var_struct{ > ulint innodb_data_pending_reads; > ulint innodb_data_pending_writes; > ulint innodb_data_pending_fsyncs; > ulint innodb_data_fsyncs; > ulint innodb_data_read; > ulint innodb_data_writes; > ulint innodb_data_written; > ulint innodb_data_reads; > ulint innodb_dict_tables; > ulint innodb_buffer_pool_pages_total; > ulint innodb_buffer_pool_pages_data; > ulint innodb_buffer_pool_pages_dirty; > ulint innodb_buffer_pool_pages_misc; > ulint innodb_buffer_pool_pages_free; > > > > ulint innodb_buffer_pool_read_requests; > ulint innodb_buffer_pool_reads; > ulint innodb_buffer_pool_wait_free; > ulint innodb_buffer_pool_pages_flushed; > ulint innodb_buffer_pool_write_requests; > ulint innodb_buffer_pool_read_ahead_seq; > ulint innodb_buffer_pool_read_ahead_rnd; > ulint innodb_dblwr_pages_written; > ulint innodb_dblwr_writes; > ulint innodb_log_waits; > ulint innodb_log_write_requests; > ulint innodb_log_writes; > ulint innodb_os_log_written; > ulint innodb_os_log_fsyncs; > ulint innodb_os_log_pending_writes; > ulint innodb_os_log_pending_fsyncs; > ulint innodb_page_size; > ulint innodb_pages_created; > ulint innodb_pages_read; > ulint innodb_pages_written; > ulint innodb_row_lock_waits; > ulint innodb_row_lock_current_waits; > ib_longlong innodb_row_lock_time; > ulint innodb_row_lock_time_avg; > ulint innodb_row_lock_time_max; > ulint innodb_rows_read; > ulint innodb_rows_inserted; > ulint innodb_rows_updated; > ulint innodb_rows_deleted; >}; > > >struct srv_sys_struct{ > os_event_t operational; > > > srv_table_t* threads; > struct { ulint count; que_thr_t * start; que_thr_t * end; } > tasks; > dict_index_t* dummy_ind1; > > dict_index_t* dummy_ind2; > >}; > >extern ulint srv_n_threads_active[]; ># 10 "./include/trx0sys.ic" 2 ># 1 "./include/trx0trx.h" 1 ># 15 "./include/trx0trx.h" ># 1 "./include/usr0types.h" 1 ># 12 "./include/usr0types.h" >typedef struct sess_struct sess_t; ># 16 "./include/trx0trx.h" 2 > > > > ># 1 "./include/trx0xa.h" 1 ># 18 "./include/trx0xa.h" >struct xid_t { > long formatID; > long gtrid_length; > long bqual_length; > char data[128]; >}; >typedef struct xid_t XID; ># 21 "./include/trx0trx.h" 2 > >extern ulint trx_n_mysql_transactions; > > > >static inline >void >trx_reset_new_rec_lock_info( > > trx_t* trx); > > > > >static inline >void >trx_register_new_rec_lock( > > trx_t* trx, > dict_index_t* index); > > > >static inline >ulint >trx_new_rec_locks_contain( > > > > trx_t* trx, > dict_index_t* index); > > > >void >trx_search_latch_release_if_reserved( > > trx_t* trx); > > >void >trx_set_detailed_error( > > trx_t* trx, > const char* msg); > > > > >void >trx_set_detailed_error_from_file( > > trx_t* trx, > FILE* file); > > > >void* >trx_get_error_info( > > > trx_t* trx); > > > >trx_t* >trx_create( > > > sess_t* sess); > > > >trx_t* >trx_allocate_for_mysql(void); > > > > > >trx_t* >trx_allocate_for_background(void); > > > > > >void >trx_free( > > trx_t* trx); > > > >void >trx_free_for_mysql( > > trx_t* trx); > > > >void >trx_free_for_background( > > trx_t* trx); > > > > > > > >void >trx_lists_init_at_db_start(void); > > > > >ulint >trx_start( > > > > trx_t* trx, > ulint rseg_id); > > > > > >ulint >trx_start_low( > > > trx_t* trx, > ulint rseg_id); > > > > >static inline >void >trx_start_if_not_started( > > trx_t* trx); > > > >static inline >void >trx_start_if_not_started_low( > > trx_t* trx); > > > >void >trx_start_if_not_started_noninline( > > trx_t* trx); > > > >void >trx_commit_off_kernel( > > trx_t* trx); > > > > > >void >trx_cleanup_at_db_startup( > > trx_t* trx); > > > >ulint >trx_commit_for_mysql( > > > trx_t* trx); > > > >ulint >trx_prepare_for_mysql( > > > trx_t* trx); > > > > >int >trx_recover_for_mysql( > > > XID* xid_list, > ulint len); > > > >trx_t * >trx_get_trx_by_xid( > > > XID* xid); > > > > >ulint >trx_commit_complete_for_mysql( > > > trx_t* trx); > > > >void >trx_mark_sql_stat_end( > > trx_t* trx); > > > > > >read_view_t* >trx_assign_read_view( > > > trx_t* trx); > > > > > >void >trx_end_lock_wait( > > trx_t* trx); > > > >ulint >trx_sig_send( > > > > trx_t* trx, > ulint type, > ulint sender, > > que_thr_t* receiver_thr, > > > trx_savept_t* savept, > > que_thr_t** next_thr); ># 293 "./include/trx0trx.h" >void >trx_sig_reply( > > trx_sig_t* sig, > que_thr_t** next_thr); > > > > > > > >void >trx_sig_remove( > > trx_t* trx, > trx_sig_t* sig); > > > >void >trx_sig_start_handle( > > trx_t* trx, > que_thr_t** next_thr); ># 328 "./include/trx0trx.h" >void >trx_end_signal_handling( > > trx_t* trx); > > > >commit_node_t* >commit_node_create( > > > mem_heap_t* heap); > > > >que_thr_t* >trx_commit_step( > > > que_thr_t* thr); > > > > > > > >void >trx_print( > > FILE* f, > trx_t* trx, > uint max_query_len); > > > > > > >ulint >trx_is_interrupted( > > > trx_t* trx); > > > > > > >struct trx_sig_struct{ > ulint type; > ulint state; > > ulint sender; > > que_thr_t* receiver; > > > trx_savept_t savept; > struct { trx_sig_t * prev; trx_sig_t * next; } > signals; > > struct { trx_sig_t * prev; trx_sig_t * next; } > reply_signals; > >}; > > > > > > > >struct trx_struct{ > ulint magic_n; > > > const char* op_info; > > > ulint type; > ulint conc_state; > > > > time_t start_time; > > > ulint isolation_level; > ulint check_foreigns; > > > > ulint check_unique_secondary; > > > > > > > dulint id; > XID xid; > > > ulint support_xa; > > > > > dulint no; > > > ulint flush_log_later; > > > > ulint must_flush_log_later; > > > > > > dulint commit_lsn; > ulint dict_operation; > > > > > dulint table_id; > > > int active_trans; > > > void* mysql_thd; > > char** mysql_query_str; > > > const char* mysql_log_file_name; > > > > > ib_longlong mysql_log_offset; > > > const char* mysql_master_log_file_name; > > > > > > > ib_longlong mysql_master_log_pos; > > > > > > > char* repl_wait_binlog_name; > > > > > > > > ib_longlong repl_wait_binlog_pos; > > > os_thread_id_t mysql_thread_id; > > ulint mysql_process_no; > > > > ulint n_mysql_tables_in_use; > > > ulint mysql_n_tables_locked; > > > > ulint dict_operation_lock_mode; > > > > ulint has_search_latch; > > > ulint search_latch_timeout; ># 532 "./include/trx0trx.h" > ulint declared_to_be_inside_innodb; > > > > > ulint n_tickets_to_enter_innodb; > > > > > > ib_lock_t* auto_inc_lock; > > > dict_index_t* new_rec_locks[2]; ># 558 "./include/trx0trx.h" > struct { trx_t * prev; trx_t * next; } > trx_list; > struct { trx_t * prev; trx_t * next; } > mysql_trx_list; > > > ulint error_state; > > > > > void* error_info; > > > sess_t* sess; > ulint que_state; > > que_t* graph; > > > > > > ulint n_active_thrs; > ulint handling_signals; > > que_t* graph_before_signal_handling; > > > > > trx_sig_t sig; > > struct { ulint count; trx_sig_t * start; trx_sig_t * end; } > signals; > > struct { ulint count; trx_sig_t * start; trx_sig_t * end; } > reply_signals; > > > > > > ib_lock_t* wait_lock; > > > > ulint was_chosen_as_deadlock_victim; > > > > > > time_t wait_started; > struct { ulint count; que_thr_t * start; que_thr_t * end; } > wait_thrs; > > > ulint deadlock_mark; > > > mem_heap_t* lock_heap; > > struct { ulint count; ib_lock_t * start; ib_lock_t * end; } > trx_locks; > > mem_heap_t* global_read_view_heap; > > > read_view_t* global_read_view; > > > read_view_t* read_view; > > > > > > > struct { ulint count; trx_named_savept_t * start; trx_named_savept_t * end; } > trx_savepoints; > > > ib_mutex_t undo_mutex; > > > > > > dulint undo_no; > > trx_savept_t last_sql_stat_start; > > > > > trx_rseg_t* rseg; > > > trx_undo_t* insert_undo; > > trx_undo_t* update_undo; > > dulint roll_limit; > > ulint pages_undone; > > trx_undo_arr_t* undo_no_arr; > > > > char detailed_error[256]; > > > ulint io_reads; > ib_longlong io_read; > ulint io_reads_wait_timer; > ib_longlong lock_que_wait_ustarted; > ulint lock_que_wait_timer; > ulint innodb_que_wait_timer; > ulint distinct_page_access; > > unsigned char* distinct_page_access_hash; > ulint take_stats; >}; ># 759 "./include/trx0trx.h" >struct commit_node_struct{ > que_common_t common; > ulint state; >}; > > > > > > > ># 1 "./include/trx0trx.ic" 1 ># 11 "./include/trx0trx.ic" >static inline >void >trx_start_if_not_started( > > trx_t* trx) >{ > ; > > if (trx->conc_state == 1) { > > trx_start(trx, ((ulint)(-1))); > } >} > > > > >static inline >void >trx_start_if_not_started_low( > > trx_t* trx) >{ > ; > > if (trx->conc_state == 1) { > > trx_start_low(trx, ((ulint)(-1))); > } >} > > > >static inline >void >trx_reset_new_rec_lock_info( > > trx_t* trx) >{ > trx->new_rec_locks[0] = ((void *)0); > trx->new_rec_locks[1] = ((void *)0); >} > > > > > >static inline >void >trx_register_new_rec_lock( > > trx_t* trx, > dict_index_t* index) > >{ > if (trx->new_rec_locks[0] == ((void *)0)) { > trx->new_rec_locks[0] = index; > > return; > } > > if (trx->new_rec_locks[0] == index) { > > return; > } > > if (trx->new_rec_locks[1] != ((void *)0)) { > > return; > } > > trx->new_rec_locks[1] = index; >} > > > >static inline >ulint >trx_new_rec_locks_contain( > > > > trx_t* trx, > dict_index_t* index) >{ > return(trx->new_rec_locks[0] == index > || trx->new_rec_locks[1] == index); >} ># 771 "./include/trx0trx.h" 2 ># 11 "./include/trx0sys.ic" 2 > > > >typedef unsigned char trx_sysf_rseg_t; ># 30 "./include/trx0sys.ic" >void >trx_sys_flush_max_trx_id(void); > > > > >static inline >ulint >trx_sys_hdr_page( > > > ulint space, > ulint page_no) >{ > if ((space == 0) && (page_no == 5)) { > > return((1)); > } > > return((0)); >} > > > >static inline >trx_rseg_t* >trx_sys_get_nth_rseg( > > > > trx_sys_t* sys, > ulint n) >{ > > > > ; > > return(sys->rseg_array[n]); >} > > > >static inline >void >trx_sys_set_nth_rseg( > > trx_sys_t* sys, > ulint n, > trx_rseg_t* rseg) > >{ > ; > > sys->rseg_array[n] = rseg; >} > > > >static inline >trx_sysf_t* >trx_sysf_get( > > > mtr_t* mtr) >{ > trx_sysf_t* header; > > ; > > header = 38 + buf_page_get_gen( 0, 5, 2, ((void *)0), 10, "./include/trx0sys.ic", 101, mtr); > > > > > > > return(header); >} > > > > >static inline >ulint >trx_sysf_rseg_get_space( > > > trx_sysf_t* sys_header, > ulint i, > mtr_t* mtr) >{ > > > > ; > ; > > return(mtr_read_ulint(sys_header + (8 + 10) > + i * 8 > + 0, ((unsigned char)4), mtr)); >} > > > > >static inline >ulint >trx_sysf_rseg_get_page_no( > > > > trx_sysf_t* sys_header, > ulint i, > mtr_t* mtr) >{ > ; > > > > ; > > return(mtr_read_ulint(sys_header + (8 + 10) > + i * 8 > + 4, ((unsigned char)4), mtr)); >} > > > > >static inline >void >trx_sysf_rseg_set_space( > > trx_sysf_t* sys_header, > ulint i, > ulint space, > mtr_t* mtr) >{ > > > > ; > ; > > mlog_write_ulint(sys_header + (8 + 10) > + i * 8 > + 0, > space, > ((unsigned char)4), mtr); >} > > > > >static inline >void >trx_sysf_rseg_set_page_no( > > trx_sysf_t* sys_header, > ulint i, > ulint page_no, > > mtr_t* mtr) >{ > > > > ; > ; > > mlog_write_ulint(sys_header + (8 + 10) > + i * 8 > + 4, > page_no, > ((unsigned char)4), mtr); >} > > > > > >static inline >void >trx_write_trx_id( > > unsigned char* ptr, > dulint id) >{ > ; > > mach_write_to_6(ptr, id); >} > > > > > >static inline >dulint >trx_read_trx_id( > > > unsigned char* ptr) >{ > ; > > return(mach_read_from_6(ptr)); >} > > > >static inline >trx_t* >trx_get_on_id( > > > dulint trx_id) >{ > trx_t* trx; > > > > > > trx = (trx_sys->trx_list).start; > > while (trx != ((void *)0)) { > if (0 == ut_dulint_cmp(trx_id, trx->id)) { > > return(trx); > } > > trx = (((trx)->trx_list).next); > } > > return(((void *)0)); >} > > > > > > >static inline >dulint >trx_list_get_min_trx_id(void) > > > >{ > trx_t* trx; > > > > > > trx = (trx_sys->trx_list).end; > > if (trx == ((void *)0)) { > > return(trx_sys->max_trx_id); > } > > return(trx->id); >} > > > >static inline >ulint >trx_is_active( > > > dulint trx_id) >{ > trx_t* trx; > > > > > > if (ut_dulint_cmp(trx_id, trx_list_get_min_trx_id()) < 0) { > > return((0)); > } > > if (ut_dulint_cmp(trx_id, trx_sys->max_trx_id) >= 0) { > > > > > > > return((1)); > } > > trx = trx_get_on_id(trx_id); > if (trx && (trx->conc_state == 2 || > trx->conc_state == 4)) { > > return((1)); > } > > return((0)); >} > > > >static inline >dulint >trx_sys_get_new_trx_id(void) > > >{ > dulint id; ># 358 "./include/trx0sys.ic" > if (ut_dulint_get_low(trx_sys->max_trx_id) > % 256 == 0) { > > trx_sys_flush_max_trx_id(); > } > > id = trx_sys->max_trx_id; > > { if ((trx_sys->max_trx_id).low == 0xFFFFFFFFUL) { (trx_sys->max_trx_id).high = (trx_sys->max_trx_id).high + 1; (trx_sys->max_trx_id).low = 0; } else { (trx_sys->max_trx_id).low = (trx_sys->max_trx_id).low + 1; }}; > > return(id); >} > > > >static inline >dulint >trx_sys_get_new_trx_no(void) > > >{ > > > > > return(trx_sys_get_new_trx_id()); >} ># 458 "./include/trx0sys.h" 2 ># 16 "./include/trx0undo.h" 2 > > > > > >static inline >dulint >trx_undo_build_roll_ptr( > > > ulint is_insert, > ulint rseg_id, > ulint page_no, > ulint offset); > > >static inline >void >trx_undo_decode_roll_ptr( > > dulint roll_ptr, > ulint* is_insert, > ulint* rseg_id, > ulint* page_no, > ulint* offset); > > >static inline >ulint >trx_undo_roll_ptr_is_insert( > > > dulint roll_ptr); > > > > >static inline >void >trx_write_roll_ptr( > > unsigned char* ptr, > dulint roll_ptr); > > > > >static inline >dulint >trx_read_roll_ptr( > > > unsigned char* ptr); > > >static inline >ib_page_t* >trx_undo_page_get( > > > ulint space, > ulint page_no, > mtr_t* mtr); > > >static inline >ib_page_t* >trx_undo_page_get_s_latched( > > > ulint space, > ulint page_no, > mtr_t* mtr); > > > >static inline >trx_undo_rec_t* >trx_undo_page_get_prev_rec( > > > trx_undo_rec_t* rec, > ulint page_no, > ulint offset); > > > >static inline >trx_undo_rec_t* >trx_undo_page_get_next_rec( > > > trx_undo_rec_t* rec, > ulint page_no, > ulint offset); > > > >static inline >trx_undo_rec_t* >trx_undo_page_get_last_rec( > > > ib_page_t* undo_page, > ulint page_no, > ulint offset); > > > >static inline >trx_undo_rec_t* >trx_undo_page_get_first_rec( > > > ib_page_t* undo_page, > ulint page_no, > ulint offset); > > > >trx_undo_rec_t* >trx_undo_get_prev_rec( > > > > trx_undo_rec_t* rec, > ulint page_no, > ulint offset, > mtr_t* mtr); > > > >trx_undo_rec_t* >trx_undo_get_next_rec( > > > > trx_undo_rec_t* rec, > ulint page_no, > ulint offset, > mtr_t* mtr); > > > >trx_undo_rec_t* >trx_undo_get_first_rec( > > > > ulint space, > ulint page_no, > ulint offset, > ulint mode, > mtr_t* mtr); > > > >ulint >trx_undo_add_page( > > > > trx_t* trx, > trx_undo_t* undo, > mtr_t* mtr); > > > > > > >void >trx_undo_truncate_end( > > trx_t* trx, > trx_undo_t* undo, > dulint limit); > > > > > >void >trx_undo_truncate_start( > > trx_rseg_t* rseg, > ulint space, > ulint hdr_page_no, > ulint hdr_offset, > dulint limit); ># 215 "./include/trx0undo.h" >ulint >trx_undo_lists_init( > > > > trx_rseg_t* rseg); > > > > >ulint >trx_undo_assign_undo( > > > > > > > trx_t* trx, > ulint type); > > > >ib_page_t* >trx_undo_set_state_at_finish( > > > > trx_rseg_t* rseg, > trx_t* trx, > trx_undo_t* undo, > mtr_t* mtr); > > > >ib_page_t* >trx_undo_set_state_at_prepare( > > > > trx_t* trx, > trx_undo_t* undo, > mtr_t* mtr); > > > > > > >void >trx_undo_update_cleanup( > > trx_t* trx, > ib_page_t* undo_page, > > mtr_t* mtr); > > > > > >void >trx_undo_insert_cleanup( > > trx_t* trx); > > > >unsigned char* >trx_undo_parse_page_init( > > > unsigned char* ptr, > unsigned char* end_ptr, > ib_page_t* page, > mtr_t* mtr); > > > >unsigned char* >trx_undo_parse_page_header( > > > ulint type, > unsigned char* ptr, > unsigned char* end_ptr, > ib_page_t* page, > mtr_t* mtr); > > > >unsigned char* >trx_undo_parse_discard_latest( > > > unsigned char* ptr, > unsigned char* end_ptr, > ib_page_t* page, > mtr_t* mtr); ># 335 "./include/trx0undo.h" >struct trx_undo_struct{ > > ulint id; > > ulint type; > > ulint state; > > ulint del_marks; > > > > > > > > dulint trx_id; > > XID xid; > > ulint dict_operation; > dulint table_id; > > trx_rseg_t* rseg; > > ulint space; > > ulint hdr_page_no; > > ulint hdr_offset; > > ulint last_page_no; > > > ulint size; > > ulint empty; > > ulint top_page_no; > > > > ulint top_offset; > > > dulint top_undo_no; > ib_page_t* guess_page; > > > struct { trx_undo_t * prev; trx_undo_t * next; } undo_list; > > >}; ># 500 "./include/trx0undo.h" ># 1 "./include/trx0undo.ic" 1 ># 13 "./include/trx0undo.ic" >static inline >dulint >trx_undo_build_roll_ptr( > > > ulint is_insert, > ulint rseg_id, > ulint page_no, > ulint offset) >{ > ; > ; > > return(ut_dulint_create(is_insert * 128 * 256 * 256 > + rseg_id * 256 * 256 > + (page_no / 256) / 256, > (page_no % (256 * 256)) * 256 * 256 > + offset)); >} > > > >static inline >void >trx_undo_decode_roll_ptr( > > dulint roll_ptr, > ulint* is_insert, > ulint* rseg_id, > ulint* page_no, > ulint* offset) >{ > ulint low; > ulint high; > > ; > ; > > high = ut_dulint_get_high(roll_ptr); > low = ut_dulint_get_low(roll_ptr); > > *offset = low % (256 * 256); > > *is_insert = high / (256 * 256 * 128); > *rseg_id = (high / (256 * 256)) % 128; > > *page_no = (high % (256 * 256)) * 256 * 256 > + (low / 256) / 256; >} > > > >static inline >ulint >trx_undo_roll_ptr_is_insert( > > > dulint roll_ptr) >{ > ulint high; > > ; > ; > > high = ut_dulint_get_high(roll_ptr); > > return(high / (256 * 256 * 128)); >} > > > > > >static inline >void >trx_write_roll_ptr( > > unsigned char* ptr, > dulint roll_ptr) >{ > ; > > mach_write_to_7(ptr, roll_ptr); >} > > > > > >static inline >dulint >trx_read_roll_ptr( > > > unsigned char* ptr) >{ > ; > > return(mach_read_from_7(ptr)); >} > > > >static inline >ib_page_t* >trx_undo_page_get( > > > ulint space, > ulint page_no, > mtr_t* mtr) >{ > ib_page_t* page; > > page = buf_page_get_gen( space, page_no, 2, ((void *)0), 10, "./include/trx0undo.ic", 127, mtr); > > > > > > return(page); >} > > > >static inline >ib_page_t* >trx_undo_page_get_s_latched( > > > ulint space, > ulint page_no, > mtr_t* mtr) >{ > ib_page_t* page; > > page = buf_page_get_gen( space, page_no, 1, ((void *)0), 10, "./include/trx0undo.ic", 149, mtr); > > > > > > return(page); >} > > > > >static inline >ulint >trx_undo_page_get_start( > > > ib_page_t* undo_page, > ulint page_no, > ulint offset) >{ > ulint start; > > if (page_no == buf_frame_get_page_no(undo_page)) { > > start = mach_read_from_2(offset + undo_page > + 18); > } else { > start = 38 + (6 + (2 * 6)); > } > > return(start); >} > > > > >static inline >ulint >trx_undo_page_get_end( > > > ib_page_t* undo_page, > ulint page_no, > ulint offset) >{ > trx_ulogf_t* log_hdr; > ulint end; > > if (page_no == buf_frame_get_page_no(undo_page)) { > > log_hdr = undo_page + offset; > > end = mach_read_from_2(log_hdr + 30); > > if (end == 0) { > end = mach_read_from_2(undo_page + 38 > + 4); > } > } else { > end = mach_read_from_2(undo_page + 38 > + 4); > } > > return(end); >} > > > > >static inline >trx_undo_rec_t* >trx_undo_page_get_prev_rec( > > > trx_undo_rec_t* rec, > ulint page_no, > ulint offset) >{ > ib_page_t* undo_page; > ulint start; > > undo_page = buf_frame_align(rec); > > start = trx_undo_page_get_start(undo_page, page_no, offset); > > if (start + undo_page == rec) { > > return(((void *)0)); > } > > return(undo_page + mach_read_from_2(rec - 2)); >} > > > > >static inline >trx_undo_rec_t* >trx_undo_page_get_next_rec( > > > trx_undo_rec_t* rec, > ulint page_no, > ulint offset) >{ > ib_page_t* undo_page; > ulint end; > ulint next; > > undo_page = buf_frame_align(rec); > > end = trx_undo_page_get_end(undo_page, page_no, offset); > > next = mach_read_from_2(rec); > > if (next == end) { > > return(((void *)0)); > } > > return(undo_page + next); >} > > > > >static inline >trx_undo_rec_t* >trx_undo_page_get_last_rec( > > > ib_page_t* undo_page, > ulint page_no, > ulint offset) >{ > ulint start; > ulint end; > > start = trx_undo_page_get_start(undo_page, page_no, offset); > end = trx_undo_page_get_end(undo_page, page_no, offset); > > if (start == end) { > > return(((void *)0)); > } > > return(undo_page + mach_read_from_2(undo_page + end - 2)); >} > > > > >static inline >trx_undo_rec_t* >trx_undo_page_get_first_rec( > > > ib_page_t* undo_page, > ulint page_no, > ulint offset) >{ > ulint start; > ulint end; > > start = trx_undo_page_get_start(undo_page, page_no, offset); > end = trx_undo_page_get_end(undo_page, page_no, offset); > > if (start == end) { > > return(((void *)0)); > } > > return(undo_page + start); >} ># 501 "./include/trx0undo.h" 2 ># 11 "./include/dict0dict.ic" 2 > > > > >static inline >dtype_t* >dict_col_get_type( > > dict_col_t* col) >{ > ; > > return(&col->type); >} ># 52 "./include/dict0dict.ic" >static inline >ulint >dict_col_get_no( > > dict_col_t* col) >{ > ; > > return(col->ind); >} > > > >static inline >ulint >dict_col_get_clust_pos( > > dict_col_t* col) >{ > ; > > return(col->clust_pos); >} > > > >static inline >dict_index_t* >dict_table_get_first_index( > > > dict_table_t* table) >{ > ; > ; > > return((table->indexes).start); >} > > > >static inline >dict_index_t* >dict_table_get_next_index( > > > dict_index_t* index) >{ > ; > ; > > return((((index)->indexes).next)); >} > > > > >static inline >ulint >dict_table_get_n_user_cols( > > > > dict_table_t* table) >{ > ; > ; > > return(table->n_cols - 4); >} > > > >static inline >ulint >dict_table_get_n_sys_cols( > > > > dict_table_t* table __attribute__((unused))) >{ > ; > ; > ; > > return(4); >} > > > > >static inline >ulint >dict_table_get_n_cols( > > > dict_table_t* table) >{ > ; > ; > > return(table->n_cols); >} > > > >static inline >dict_col_t* >dict_table_get_nth_col( > > > dict_table_t* table, > ulint pos) >{ > ; > ; > ; > > return((table->cols) + pos); >} > > > >static inline >dict_col_t* >dict_table_get_sys_col( > > > dict_table_t* table, > ulint sys) >{ > dict_col_t* col; > > ; > ; > ; > > col = dict_table_get_nth_col(table, table->n_cols > - 4 + sys); > ; > ; > > return(col); >} > > > >static inline >ulint >dict_table_get_sys_col_no( > > > dict_table_t* table, > ulint sys) >{ > ; > ; > ; > > return(table->n_cols - 4 + sys); >} > > > > >static inline >ulint >dict_index_get_n_fields( > > > dict_index_t* index) > >{ > ; > ; > > return(index->n_fields); >} > > > > > > >static inline >ulint >dict_index_get_n_unique( > > > dict_index_t* index) > >{ > ; > ; > ; > > return(index->n_uniq); >} > > > > > >static inline >ulint >dict_index_get_n_unique_in_tree( > > > dict_index_t* index) > >{ > ; > ; > ; > > if (index->type & 1) { > > return(dict_index_get_n_unique(index)); > } > > return(dict_index_get_n_fields(index)); >} > > > > > > >static inline >ulint >dict_index_get_n_ordering_defined_by_user( > > > dict_index_t* index) > >{ > return(index->n_user_defined_cols); >} > > > >static inline >dict_field_t* >dict_index_get_nth_field( > > > dict_index_t* index, > ulint pos) >{ > ; > ; > ; > > return((index->fields) + pos); >} > > > >static inline >ulint >dict_index_get_sys_col_pos( > > > > dict_index_t* index, > ulint type) >{ > dict_col_t* col; > > ; > ; > ; > > col = dict_table_get_sys_col(index->table, type); > > if (index->type & 1) { > > return(col->clust_pos); > } > > return(dict_index_get_nth_col_pos(index, > dict_table_get_sys_col_no(index->table, type))); >} > > > >static inline >dict_tree_t* >dict_index_get_tree( > > > dict_index_t* index) >{ > ; > ; > > return(index->tree); >} > > > >static inline >ulint >dict_field_get_order( > > dict_field_t* field) >{ > ; > > return(field->order); >} > > > >static inline >dict_col_t* >dict_field_get_col( > > dict_field_t* field) >{ > ; > > return(field->col); >} > > > >static inline >dtype_t* >dict_index_get_nth_type( > > > dict_index_t* index, > ulint pos) >{ > return(dict_col_get_type(dict_field_get_col( > dict_index_get_nth_field(index, pos)))); >} > > > >static inline >ulint >dict_index_get_nth_col_no( > > > dict_index_t* index, > ulint pos) >{ > return(dict_col_get_no(dict_field_get_col( > dict_index_get_nth_field(index, pos)))); >} > > > >static inline >ulint >dict_tree_get_space( > > > dict_tree_t* tree) >{ > ; > ; > > return(tree->space); >} > > > >static inline >void >dict_tree_set_space( > > dict_tree_t* tree, > ulint space) >{ > ; > ; > > tree->space = space; >} > > > >static inline >ulint >dict_tree_get_page( > > > dict_tree_t* tree) >{ > ; > ; > > return(tree->page); >} > > > >static inline >void >dict_tree_set_page( > > dict_tree_t* tree, > ulint page) >{ > ; > ; > > tree->page = page; >} > > > >static inline >ulint >dict_tree_get_type( > > > dict_tree_t* tree) >{ > ; > ; > > return(tree->type); >} > > > >static inline >rw_lock_t* >dict_tree_get_lock( > > > dict_tree_t* tree) >{ > ; > ; > > return(&(tree->lock)); >} > > > > > >static inline >ulint >dict_tree_get_space_reserve( > > > > dict_tree_t* tree) >{ > ; > > tree = tree; > > return((2 * 8192) / 16); >} > > > >static inline >dict_table_t* >dict_table_check_if_in_cache_low( > > > const char* table_name) >{ > dict_table_t* table; > ulint table_fold; > > ; > > > > > > table_fold = ut_fold_string(table_name); > > { (table) = (hash_get_nth_cell(dict_sys->table_hash, hash_calc_hash(table_fold, dict_sys->table_hash))->node); while ((table) != ((void *)0)) { if (ut_strcmp(table->name, table_name) == 0) { break; } else { (table) = ((table)->name_hash); } }}; > > > > if (table) { > { ; do { if (__builtin_expect(!((ulint)((dict_sys->table_LRU).count > 0)), (0))) { ut_dbg_assertion_failed("(dict_sys->table_LRU).count > 0", "./include/dict0dict.ic", (ulint) 539); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/dict0dict.ic", (ulint) 539); } while (0); } while (0); ((dict_sys->table_LRU).count)--; if (((table)->table_LRU).next != ((void *)0)) { ((((table)->table_LRU).next)->table_LRU).prev = ((table)->table_LRU).prev; } else { (dict_sys->table_LRU).end = ((table)->table_LRU).prev; } if (((table)->table_LRU).prev != ((void *)0)) { ((((table)->table_LRU).prev)->table_LRU).next = ((table)->table_LRU).next; } else { (dict_sys->table_LRU).start = ((table)->table_LRU).next; }}; > { ; ((dict_sys->table_LRU).count)++; ((table)->table_LRU).next = (dict_sys->table_LRU).start; ((table)->table_LRU).prev = ((void *)0); if ((dict_sys->table_LRU).start != ((void *)0)) { (((dict_sys->table_LRU).start)->table_LRU).prev = (table); } (dict_sys->table_LRU).start = (table); if ((dict_sys->table_LRU).end == ((void *)0)) { (dict_sys->table_LRU).end = (table); }}; > } > > return(table); >} > > > > >static inline >dict_table_t* >dict_table_get_low( > > > const char* table_name) >{ > dict_table_t* table; > > ; > > > > > table = dict_table_check_if_in_cache_low(table_name); > > if (table == ((void *)0)) { > table = dict_load_table(table_name); > } > > return(table); >} > > > >static inline >dict_table_t* >dict_table_get_on_id_low( > > > dulint table_id, > trx_t* trx) >{ > dict_table_t* table; > ulint fold; > > > > > trx = trx; > > > fold = ut_fold_dulint(table_id); > > { (table) = (hash_get_nth_cell(dict_sys->table_id_hash, hash_calc_hash(fold, dict_sys->table_id_hash))->node); while ((table) != ((void *)0)) { if (ut_dulint_cmp(table->id, table_id) == 0) { break; } else { (table) = ((table)->id_hash); } }}; > > if (table == ((void *)0)) { > table = dict_load_table_on_id(table_id); > } > > if (table != ((void *)0)) { > table->mem_fix++; > > > { ; do { if (__builtin_expect(!((ulint)((dict_sys->table_LRU).count > 0)), (0))) { ut_dbg_assertion_failed("(dict_sys->table_LRU).count > 0", "./include/dict0dict.ic", (ulint) 603); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/dict0dict.ic", (ulint) 603); } while (0); } while (0); ((dict_sys->table_LRU).count)--; if (((table)->table_LRU).next != ((void *)0)) { ((((table)->table_LRU).next)->table_LRU).prev = ((table)->table_LRU).prev; } else { (dict_sys->table_LRU).end = ((table)->table_LRU).prev; } if (((table)->table_LRU).prev != ((void *)0)) { ((((table)->table_LRU).prev)->table_LRU).next = ((table)->table_LRU).next; } else { (dict_sys->table_LRU).start = ((table)->table_LRU).next; }}; > { ; ((dict_sys->table_LRU).count)++; ((table)->table_LRU).next = (dict_sys->table_LRU).start; ((table)->table_LRU).prev = ((void *)0); if ((dict_sys->table_LRU).start != ((void *)0)) { (((dict_sys->table_LRU).start)->table_LRU).prev = (table); } (dict_sys->table_LRU).start = (table); if ((dict_sys->table_LRU).end == ((void *)0)) { (dict_sys->table_LRU).end = (table); }}; > > > } > > > > return(table); >} > > > >static inline >void >dict_table_release( > > dict_table_t* table) >{ > mutex_enter_func((&(dict_sys->mutex)), "./include/dict0dict.ic", 622); > > table->mem_fix--; > > mutex_exit(&(dict_sys->mutex)); >} > > > >static inline >dict_index_t* >dict_table_get_index( > > > dict_table_t* table, > const char* name) >{ > dict_index_t* index = ((void *)0); > > index = dict_table_get_first_index(table); > > while (index != ((void *)0)) { > if (ut_strcmp(name, index->name) == 0) { > > break; > } > > index = dict_table_get_next_index(index); > } > > return(index); >} ># 987 "./include/dict0dict.h" 2 ># 15 "./include/btr0btr.h" 2 > ># 1 "./include/page0cur.h" 1 ># 15 "./include/page0cur.h" ># 1 "./include/page0page.h" 1 ># 19 "./include/page0page.h" ># 1 "./include/rem0rec.h" 1 ># 47 "./include/rem0rec.h" >static inline >ulint >rec_get_next_offs( > > > > rec_t* rec, > ulint comp); > > > >static inline >void >rec_set_next_offs( > > rec_t* rec, > ulint comp, > ulint next); > > > >static inline >ulint >rec_get_n_fields_old( > > > rec_t* rec); > > > >static inline >ulint >rec_get_n_fields( > > > rec_t* rec, > dict_index_t* index); > > > >static inline >ulint >rec_get_n_owned( > > > rec_t* rec, > ulint comp); > > > >static inline >void >rec_set_n_owned( > > rec_t* rec, > ulint comp, > ulint n_owned); > > > >static inline >ulint >rec_get_info_bits( > > > rec_t* rec, > ulint comp); > > >static inline >void >rec_set_info_bits( > > rec_t* rec, > ulint comp, > ulint bits); > > >static inline >ulint >rec_get_status( > > > rec_t* rec); > > > >static inline >void >rec_set_status( > > rec_t* rec, > ulint bits); > > > > >static inline >ulint >rec_get_info_and_status_bits( > > > rec_t* rec, > ulint comp); > > > >static inline >void >rec_set_info_and_status_bits( > > rec_t* rec, > ulint comp, > ulint bits); > > > >static inline >ulint >rec_get_deleted_flag( > > > rec_t* rec, > ulint comp); > > >static inline >void >rec_set_deleted_flag( > > rec_t* rec, > ulint comp, > ulint flag); > > >static inline >ulint >rec_get_node_ptr_flag( > > > rec_t* rec); > > > >static inline >ulint >rec_get_heap_no( > > > rec_t* rec, > ulint comp); > > > >static inline >void >rec_set_heap_no( > > rec_t* rec, > ulint comp, > ulint heap_no); > > > >static inline >ulint >rec_get_1byte_offs_flag( > > > rec_t* rec); > > > > >ulint* >rec_get_offsets_func( > > > rec_t* rec, > dict_index_t* index, > ulint* offsets, > > > ulint n_fields, > > mem_heap_t** heap, > const char* file, > ulint line); > > > > > > >static inline >ulint >rec_offs_validate( > > > rec_t* rec, > dict_index_t* index, > const ulint* offsets); > > > >static inline >void >rec_offs_make_valid( > > rec_t* rec, > dict_index_t* index, > ulint* offsets); > > > > > >unsigned char* >rec_get_nth_field_old( > > > rec_t* rec, > ulint n, > ulint* len); > > > > > >static inline >ulint >rec_get_nth_field_size( > > > rec_t* rec, > ulint n); > > > >static inline >unsigned char* >rec_get_nth_field( > > > rec_t* rec, > const ulint* offsets, > ulint n, > ulint* len); > > > > >static inline >ulint >rec_offs_comp( > > > const ulint* offsets); > > >static inline >ulint >rec_offs_nth_extern( > > > const ulint* offsets, > ulint n); > > >static inline >ulint >rec_offs_nth_sql_null( > > > const ulint* offsets, > ulint n); > > >static inline >ulint >rec_offs_nth_size( > > > const ulint* offsets, > ulint n); > > > > >static inline >ulint >rec_offs_any_extern( > > > const ulint* offsets); > > >static inline >void >rec_set_nth_field_extern_bit( > > rec_t* rec, > dict_index_t* index, > ulint i, > ulint val, > mtr_t* mtr); > > > > > >void >rec_set_field_extern_bits( > > rec_t* rec, > dict_index_t* index, > const ulint* vec, > ulint n_fields, > mtr_t* mtr); ># 374 "./include/rem0rec.h" >static inline >void >rec_set_nth_field( > > rec_t* rec, > const ulint* offsets, > ulint n, > const void* data, > ulint len); > > > > > >static inline >ulint >rec_get_data_size_old( > > > rec_t* rec); > > >static inline >ulint >rec_offs_n_fields( > > > const ulint* offsets); > > > > > >static inline >ulint >rec_offs_data_size( > > > const ulint* offsets); > > > > >static inline >ulint >rec_offs_extra_size( > > > const ulint* offsets); > > >static inline >ulint >rec_offs_size( > > > const ulint* offsets); > > >static inline >unsigned char* >rec_get_start( > > > rec_t* rec, > const ulint* offsets); > > >static inline >unsigned char* >rec_get_end( > > > rec_t* rec, > const ulint* offsets); > > >static inline >rec_t* >rec_copy( > > > void* buf, > const rec_t* rec, > const ulint* offsets); > > > > >rec_t* >rec_copy_prefix_to_buf( > > > rec_t* rec, > dict_index_t* index, > ulint n_fields, > unsigned char** buf, > > ulint* buf_size); > > >static inline >ulint >rec_fold( > > > rec_t* rec, > const ulint* offsets, > > ulint n_fields, > > ulint n_bytes, > > dulint tree_id); > > > > >rec_t* >rec_convert_dtuple_to_rec( > > > > unsigned char* buf, > > dict_index_t* index, > dtuple_t* dtuple); > > > >static inline >ulint >rec_get_converted_extra_size( > > > ulint data_size, > ulint n_fields) > __attribute__((const)); > > > >static inline >ulint >rec_get_converted_size( > > > dict_index_t* index, > dtuple_t* dtuple); > > > > >void >rec_copy_prefix_to_dtuple( > > dtuple_t* tuple, > rec_t* rec, > dict_index_t* index, > ulint n_fields, > mem_heap_t* heap); > > > >ulint >rec_validate( > > > rec_t* rec, > const ulint* offsets); > > > >void >rec_print_old( > > FILE* file, > rec_t* rec); > > > >void >rec_print_new( > > FILE* file, > rec_t* rec, > const ulint* offsets); > > > >void >rec_print( > > FILE* file, > rec_t* rec, > dict_index_t* index); ># 582 "./include/rem0rec.h" ># 1 "./include/rem0rec.ic" 1 ># 134 "./include/rem0rec.ic" >void >rec_set_nth_field_null_bit( > > rec_t* rec, > ulint i, > ulint val); > > > > >void >rec_set_nth_field_sql_null( > > rec_t* rec, > ulint n); > > > > >void >rec_set_nth_field_extern_bit_old( > > rec_t* rec, > ulint i, > ulint val, > mtr_t* mtr); > > > > > >void >rec_set_nth_field_extern_bit_new( > > rec_t* rec, > dict_index_t* index, > ulint ith, > ulint val, > mtr_t* mtr); > > > > > >static inline >ulint >rec_get_bit_field_1( > > rec_t* rec, > ulint offs, > ulint mask, > ulint shift) >{ > ; > > return((mach_read_from_1(rec - offs) & mask) >> shift); >} > > > >static inline >void >rec_set_bit_field_1( > > rec_t* rec, > ulint val, > ulint offs, > ulint mask, > ulint shift) >{ > ; > ; > ; > ; > ; > ; > > mach_write_to_1(rec - offs, > (mach_read_from_1(rec - offs) & ~mask) > | (val << shift)); >} > > > >static inline >ulint >rec_get_bit_field_2( > > rec_t* rec, > ulint offs, > ulint mask, > ulint shift) >{ > ; > > return((mach_read_from_2(rec - offs) & mask) >> shift); >} > > > >static inline >void >rec_set_bit_field_2( > > rec_t* rec, > ulint val, > ulint offs, > ulint mask, > ulint shift) >{ > ; > ; > ; > ; > ; > ; > ; > ; > > mach_write_to_2(rec - offs, > (mach_read_from_2(rec - offs) & ~mask) > | (val << shift)); >} > > > > >static inline >ulint >rec_get_next_offs( > > > > rec_t* rec, > ulint comp) >{ > ulint field_value; > > ; > ; > > field_value = mach_read_from_2(rec - 2); > > if (comp) { ># 288 "./include/rem0rec.ic" > ; > > > > > > if (field_value == 0) { > > return(0); > } > > return(ut_align_offset(rec + field_value, (2 * 8192))); > } else { > ; > > return(field_value); > } >} > > > > >static inline >void >rec_set_next_offs( > > rec_t* rec, > ulint comp, > ulint next) >{ > ; > ; > ; > ; > > if (comp) { > ulint field_value; > > if (next) { > > > > > field_value = (ulint)((lint)next > - (lint)ut_align_offset(rec, (2 * 8192))); > field_value &= 0xFFFFUL; > } else { > field_value = 0; > } > > mach_write_to_2(rec - 2, field_value); > } else { > mach_write_to_2(rec - 2, next); > } >} > > > > >static inline >ulint >rec_get_n_fields_old( > > > rec_t* rec) >{ > ulint ret; > > ; > > ret = rec_get_bit_field_2(rec, 4, > 0x7FEUL, 1); > ; > ; > > return(ret); >} > > > > >static inline >void >rec_set_n_fields_old( > > rec_t* rec, > ulint n_fields) >{ > ; > ; > ; > > rec_set_bit_field_2(rec, n_fields, 4, > 0x7FEUL, 1); >} > > > >static inline >ulint >rec_get_status( > > > rec_t* rec) >{ > ulint ret; > > ; > > ret = rec_get_bit_field_1(rec, 3, > 0x7UL, 0); > ; > > return(ret); >} > > > > >static inline >ulint >rec_get_n_fields( > > > rec_t* rec, > dict_index_t* index) >{ > ; > ; > if (__builtin_expect(!index->table->comp, (0))) { > return(rec_get_n_fields_old(rec)); > } > switch (rec_get_status(rec)) { > case 0: > return(dict_index_get_n_fields(index)); > case 1: > return(dict_index_get_n_unique_in_tree(index) + 1); > case 2: > case 3: > return(1); > default: > do { ut_dbg_assertion_failed(0, "./include/rem0rec.ic", (ulint) 429); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > return(((ulint)(-1))); > } >} > > > > >static inline >ulint >rec_get_n_owned( > > > rec_t* rec, > ulint comp) >{ > ulint ret; > > ; > > ret = rec_get_bit_field_1(rec, > comp ? 5 : 6, > 0xFUL, 0); > ; > > return(ret); >} > > > >static inline >void >rec_set_n_owned( > > rec_t* rec, > ulint comp, > ulint n_owned) >{ > ; > ; > > rec_set_bit_field_1(rec, n_owned, > comp ? 5 : 6, > 0xFUL, 0); >} > > > >static inline >ulint >rec_get_info_bits( > > > rec_t* rec, > ulint comp) >{ > ulint ret; > > ; > > ret = rec_get_bit_field_1(rec, > comp ? 5 : 6, > 0xF0UL, 0); > ; > > return(ret); >} > > > >static inline >void >rec_set_info_bits( > > rec_t* rec, > ulint comp, > ulint bits) >{ > ; > ; > > rec_set_bit_field_1(rec, bits, > comp ? 5 : 6, > 0xF0UL, 0); >} > > > >static inline >void >rec_set_status( > > rec_t* rec, > ulint bits) >{ > ; > ; > > rec_set_bit_field_1(rec, bits, 3, > 0x7UL, 0); >} > > > > >static inline >ulint >rec_get_info_and_status_bits( > > > rec_t* rec, > ulint comp) >{ > ulint bits; > > > > > if (__builtin_expect(comp, ((ulint) 1 << 31))) { > bits = rec_get_info_bits(rec, (1)) | rec_get_status(rec); > } else { > bits = rec_get_info_bits(rec, (0)); > ; > } > return(bits); >} > > > >static inline >void >rec_set_info_and_status_bits( > > rec_t* rec, > ulint comp, > ulint bits) >{ > > > > > if (comp) { > rec_set_status(rec, bits & 0x7UL); > } else { > ; > } > rec_set_info_bits(rec, comp, bits & ~0x7UL); >} > > > >static inline >ulint >rec_get_deleted_flag( > > > rec_t* rec, > ulint comp) >{ > if (__builtin_expect(comp, ((ulint) 1 << 31))) { > return(__builtin_expect(rec_get_bit_field_1(rec, 5, 0x20UL, 0), (0))); > > > } else { > return(__builtin_expect(rec_get_bit_field_1(rec, 6, 0x20UL, 0), (0))); > > > } >} > > > >static inline >void >rec_set_deleted_flag( > > rec_t* rec, > ulint comp, > ulint flag) >{ > ulint val; > > val = rec_get_info_bits(rec, comp); > > if (flag) { > val |= 0x20UL; > } else { > val &= ~0x20UL; > } > > rec_set_info_bits(rec, comp, val); >} > > > >static inline >ulint >rec_get_node_ptr_flag( > > > rec_t* rec) >{ > return(1 == rec_get_status(rec)); >} > > > > >static inline >ulint >rec_get_heap_no( > > > rec_t* rec, > ulint comp) >{ > ulint ret; > > ; > > ret = rec_get_bit_field_2(rec, > comp ? 4 : 5, > 0xFFF8UL, 3); > ; > > return(ret); >} > > > >static inline >void >rec_set_heap_no( > > rec_t* rec, > ulint comp, > ulint heap_no) >{ > ; > > rec_set_bit_field_2(rec, heap_no, > comp ? 4 : 5, > 0xFFF8UL, 3); >} > > > > >static inline >ulint >rec_get_1byte_offs_flag( > > > rec_t* rec) >{ > > > > > return(rec_get_bit_field_1(rec, 3, 0x1UL, > 0)); >} > > > >static inline >void >rec_set_1byte_offs_flag( > > rec_t* rec, > ulint flag) >{ > > > > ; > > rec_set_bit_field_1(rec, flag, 3, 0x1UL, > 0); >} > > > > > >static inline >ulint >rec_1_get_field_end_info( > > > > rec_t* rec, > ulint n) >{ > ; > ; > > return(mach_read_from_1(rec - (6 + n + 1))); >} > > > > > >static inline >ulint >rec_2_get_field_end_info( > > > > rec_t* rec, > ulint n) >{ > ; > ; > > return(mach_read_from_2(rec - (6 + 2 * n + 2))); >} ># 764 "./include/rem0rec.ic" >static inline >ulint >rec_offs_get_n_alloc( > > > const ulint* offsets) >{ > ulint n_alloc; > ; > n_alloc = offsets[0]; > ; > return(n_alloc); >} > > > > >static inline >void >rec_offs_set_n_alloc( > > ulint* offsets, > ulint n_alloc) >{ > ; > ; > offsets[0] = n_alloc; >} > > > >static inline >ulint >rec_offs_n_fields( > > > const ulint* offsets) >{ > ulint n_fields; > ; > n_fields = offsets[1]; > ; > ; > ; > > return(n_fields); >} > > > >static inline >ulint >rec_offs_validate( > > > rec_t* rec, > dict_index_t* index, > const ulint* offsets) >{ > ulint i = rec_offs_n_fields(offsets); > ulint last = ((ulint)(-2)); > ulint comp = *(offsets + 2) & ((ulint) 1 << 31); > > if (rec) { > ; > if (!comp) { > do { if (__builtin_expect(!((ulint)(rec_get_n_fields_old(rec) >= i)), (0))) { ut_dbg_assertion_failed("rec_get_n_fields_old(rec) >= i", "./include/rem0rec.ic", (ulint) 830); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/rem0rec.ic", (ulint) 830); } while (0); } while (0); > } > } > if (index) { > ulint max_n_fields; > ; > max_n_fields = ut_max( > dict_index_get_n_fields(index), > dict_index_get_n_unique_in_tree(index) + 1); > if (comp && rec) { > switch (rec_get_status(rec)) { > case 0: > break; > case 1: > max_n_fields = > dict_index_get_n_unique_in_tree(index) + 1; > break; > case 2: > case 3: > max_n_fields = 1; > break; > default: > do { ut_dbg_assertion_failed(0, "./include/rem0rec.ic", (ulint) 852); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > } > } > > do { if (__builtin_expect(!((ulint)(!comp || index->n_def)), (0))) { ut_dbg_assertion_failed("!comp || index->n_def", "./include/rem0rec.ic", (ulint) 856); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/rem0rec.ic", (ulint) 856); } while (0); } while (0); > do { if (__builtin_expect(!((ulint)(!index->n_def || i <= max_n_fields)), (0))) { ut_dbg_assertion_failed("!index->n_def || i <= max_n_fields", "./include/rem0rec.ic", (ulint) 857); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/rem0rec.ic", (ulint) 857); } while (0); } while (0); > } > while (i--) { > ulint curr = (offsets + 2)[1 + i] & (((ulint) 1 << 30) - 1); > do { if (__builtin_expect(!((ulint)(curr <= last)), (0))) { ut_dbg_assertion_failed("curr <= last", "./include/rem0rec.ic", (ulint) 861); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/rem0rec.ic", (ulint) 861); } while (0); } while (0); > last = curr; > } > return((1)); >} > > > >static inline >void >rec_offs_make_valid( > > rec_t* rec __attribute__((unused)), > > dict_index_t* index __attribute__((unused)), > > ulint* offsets __attribute__((unused))) > >{ > > > > > >} > > > > >static inline >unsigned char* >rec_get_nth_field( > > > rec_t* rec, > const ulint* offsets, > ulint n, > ulint* len) > >{ > unsigned char* field; > ulint length; > ; > ; > ; > ; > > if (__builtin_expect(n == 0, (0))) { > field = rec; > } else { > field = rec + ((offsets + 2)[n] & (((ulint) 1 << 30) - 1)); > } > > length = (offsets + 2)[1 + n]; > > if (length & ((ulint) 1 << 31)) { > length = 0xFFFFFFFF; > } else { > length &= (((ulint) 1 << 30) - 1); > length -= field - rec; > } > > *len = length; > return(field); >} > > > > >static inline >ulint >rec_offs_comp( > > > const ulint* offsets) >{ > ; > return(*(offsets + 2) & ((ulint) 1 << 31)); >} > > > >static inline >ulint >rec_offs_nth_extern( > > > const ulint* offsets, > ulint n) >{ > ; > ; > return(__builtin_expect((offsets + 2)[1 + n] & ((ulint) 1 << 30), (0))); > >} > > > >static inline >ulint >rec_offs_nth_sql_null( > > > const ulint* offsets, > ulint n) >{ > ; > ; > return(__builtin_expect((offsets + 2)[1 + n] & ((ulint) 1 << 31), (0))); > >} > > > >static inline >ulint >rec_offs_nth_size( > > > const ulint* offsets, > ulint n) >{ > ; > ; > if (!n) { > return((offsets + 2)[1 + n] & (((ulint) 1 << 30) - 1)); > } > return(((offsets + 2)[1 + n] - (offsets + 2)[n]) > & (((ulint) 1 << 30) - 1)); >} > > > > >static inline >ulint >rec_offs_any_extern( > > > const ulint* offsets) >{ > ulint i; > for (i = rec_offs_n_fields(offsets); i--; ) { > if (rec_offs_nth_extern(offsets, i)) { > return((1)); > } > } > return((0)); >} > > > >static inline >void >rec_set_nth_field_extern_bit( > > rec_t* rec, > dict_index_t* index, > ulint i, > ulint val, > mtr_t* mtr) > > >{ > if (__builtin_expect(index->table->comp, (1))) { > rec_set_nth_field_extern_bit_new(rec, index, i, val, mtr); > } else { > rec_set_nth_field_extern_bit_old(rec, i, val, mtr); > } >} > > > > > > > >static inline >ulint >rec_1_get_prev_field_end_info( > > > > rec_t* rec, > ulint n) >{ > ; > ; > > return(mach_read_from_1(rec - (6 + n))); >} > > > > > >static inline >ulint >rec_2_get_prev_field_end_info( > > > > rec_t* rec, > ulint n) >{ > ; > ; > > return(mach_read_from_2(rec - (6 + 2 * n))); >} > > > > >static inline >void >rec_1_set_field_end_info( > > rec_t* rec, > ulint n, > ulint info) >{ > ; > ; > > mach_write_to_1(rec - (6 + n + 1), info); >} > > > > >static inline >void >rec_2_set_field_end_info( > > rec_t* rec, > ulint n, > ulint info) >{ > ; > ; > > mach_write_to_2(rec - (6 + 2 * n + 2), info); >} > > > > >static inline >ulint >rec_1_get_field_start_offs( > > > rec_t* rec, > ulint n) >{ > ; > ; > > if (n == 0) { > > return(0); > } > > return(rec_1_get_prev_field_end_info(rec, n) > & ~0x80UL); >} > > > > >static inline >ulint >rec_2_get_field_start_offs( > > > rec_t* rec, > ulint n) >{ > ; > ; > > if (n == 0) { > > return(0); > } > > return(rec_2_get_prev_field_end_info(rec, n) > & ~(0x8000UL | 0x4000UL)); >} > > > > > > >static inline >ulint >rec_get_field_start_offs( > > > rec_t* rec, > ulint n) >{ > ; > ; > > if (n == 0) { > > return(0); > } > > if (rec_get_1byte_offs_flag(rec)) { > > return(rec_1_get_field_start_offs(rec, n)); > } > > return(rec_2_get_field_start_offs(rec, n)); >} > > > > > >static inline >ulint >rec_get_nth_field_size( > > > rec_t* rec, > ulint n) >{ > ulint os; > ulint next_os; > > os = rec_get_field_start_offs(rec, n); > next_os = rec_get_field_start_offs(rec, n + 1); > > ; > > return(next_os - os); >} > > > > > > > >static inline >void >rec_set_nth_field( > > rec_t* rec, > const ulint* offsets, > ulint n, > const void* data, > > ulint len) >{ > unsigned char* data2; > ulint len2; > > ; > ; > > if (__builtin_expect(len == 0xFFFFFFFF, (0))) { > if (!rec_offs_nth_sql_null(offsets, n)) { > do { if (__builtin_expect(!((ulint)(!rec_offs_comp(offsets))), (0))) { ut_dbg_assertion_failed("!rec_offs_comp(offsets)", "./include/rem0rec.ic", (ulint) 1229); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/rem0rec.ic", (ulint) 1229); } while (0); } while (0); > rec_set_nth_field_sql_null(rec, n); > } > > return; > } > > data2 = rec_get_nth_field(rec, offsets, n, &len2); > if (len2 == 0xFFFFFFFF) { > ; > rec_set_nth_field_null_bit(rec, n, (0)); > ; > } else { > ; > } > > ut_memcpy(data2, data, len); >} > > > > > > >static inline >ulint >rec_get_data_size_old( > > > rec_t* rec) >{ > ; > > return(rec_get_field_start_offs(rec, rec_get_n_fields_old(rec))); >} > > > >static inline >void >rec_offs_set_n_fields( > > ulint* offsets, > ulint n_fields) >{ > ; > ; > ; > ; > > offsets[1] = n_fields; >} > > > > > > >static inline >ulint >rec_offs_data_size( > > > const ulint* offsets) >{ > ulint size; > > ; > size = (offsets + 2)[rec_offs_n_fields(offsets)] > & (((ulint) 1 << 30) - 1); > ; > return(size); >} > > > > > >static inline >ulint >rec_offs_extra_size( > > > const ulint* offsets) >{ > ulint size; > ; > size = *(offsets + 2) & ~((ulint) 1 << 31); > ; > return(size); >} > > > >static inline >ulint >rec_offs_size( > > > const ulint* offsets) >{ > return(rec_offs_data_size(offsets) + rec_offs_extra_size(offsets)); >} > > > >static inline >unsigned char* >rec_get_end( > > > rec_t* rec, > const ulint* offsets) >{ > return(rec + rec_offs_data_size(offsets)); >} > > > >static inline >unsigned char* >rec_get_start( > > > rec_t* rec, > const ulint* offsets) >{ > return(rec - rec_offs_extra_size(offsets)); >} > > > >static inline >rec_t* >rec_copy( > > > void* buf, > const rec_t* rec, > const ulint* offsets) >{ > ulint extra_len; > ulint data_len; > > ; > ; > ; > > extra_len = rec_offs_extra_size(offsets); > data_len = rec_offs_data_size(offsets); > > ut_memcpy(buf, rec - extra_len, extra_len + data_len); > > return((unsigned char*)buf + extra_len); >} > > > > >static inline >ulint >rec_get_converted_extra_size( > > > ulint data_size, > ulint n_fields) >{ > if (data_size <= 0x7FUL) { > > return(6 + n_fields); > } > > return(6 + 2 * n_fields); >} > > > > > >ulint >rec_get_converted_size_new( > > > dict_index_t* index, > dtuple_t* dtuple); > > > >static inline >ulint >rec_get_converted_size( > > > dict_index_t* index, > dtuple_t* dtuple) >{ > ulint data_size; > ulint extra_size; > > ; > ; > ; > > ; > > > > > > > if (__builtin_expect(index->table->comp, (1))) { > return(rec_get_converted_size_new(index, dtuple)); > } > > data_size = dtuple_get_data_size(dtuple); > > extra_size = rec_get_converted_extra_size( > data_size, dtuple_get_n_fields(dtuple)); > > return(data_size + extra_size); >} > > > > >static inline >ulint >rec_fold( > > > rec_t* rec, > const ulint* offsets, > > ulint n_fields, > > ulint n_bytes, > > dulint tree_id) >{ > ulint i; > unsigned char* data; > ulint len; > ulint fold; > ulint n_fields_rec; > > ; > ; > ; > > n_fields_rec = rec_offs_n_fields(offsets); > ; > ; > > if (n_fields > n_fields_rec) { > n_fields = n_fields_rec; > } > > if (n_fields == n_fields_rec) { > n_bytes = 0; > } > > fold = ut_fold_dulint(tree_id); > > for (i = 0; i < n_fields; i++) { > data = rec_get_nth_field(rec, offsets, i, &len); > > if (len != 0xFFFFFFFF) { > fold = ut_fold_ulint_pair(fold, > ut_fold_binary(data, len)); > } > } > > if (n_bytes > 0) { > data = rec_get_nth_field(rec, offsets, i, &len); > > if (len != 0xFFFFFFFF) { > if (len > n_bytes) { > len = n_bytes; > } > > fold = ut_fold_ulint_pair(fold, > ut_fold_binary(data, len)); > } > } > > return(fold); >} ># 583 "./include/rem0rec.h" 2 ># 20 "./include/page0page.h" 2 ># 33 "./include/page0page.h" >typedef unsigned char page_header_t; ># 114 "./include/page0page.h" >typedef unsigned char page_dir_slot_t; >typedef page_dir_slot_t page_dir_t; ># 137 "./include/page0page.h" >static inline >dulint >page_get_max_trx_id( > > ib_page_t* page); > > > >void >page_set_max_trx_id( > > ib_page_t* page, > dulint trx_id); > > > >static inline >void >page_update_max_trx_id( > > ib_page_t* page, > dulint trx_id); > > >static inline >ulint >page_header_get_field( > > ib_page_t* page, > ulint field); > > >static inline >void >page_header_set_field( > > ib_page_t* page, > ulint field, > ulint val); > > >static inline >unsigned char* >page_header_get_ptr( > > > ib_page_t* page, > ulint field); > > >static inline >void >page_header_set_ptr( > > ib_page_t* page, > ulint field, > unsigned char* ptr); > > > >static inline >void >page_header_reset_last_insert( > > ib_page_t* page, > mtr_t* mtr); > > >static inline >rec_t* >page_get_infimum_rec( > > > ib_page_t* page); > > >static inline >rec_t* >page_get_supremum_rec( > > > ib_page_t* page); > > > > >rec_t* >page_get_middle_rec( > > > ib_page_t* page); > > > > > > >static inline >int >page_cmp_dtuple_rec_with_match( > > > > > dtuple_t* dtuple, > rec_t* rec, > > > > const ulint* offsets, > ulint* matched_fields, > > > ulint* matched_bytes); > > > > > > >static inline >ulint >page_get_n_recs( > > > ib_page_t* page); > >ulint >page_get_n_recs_noninline( > > > ib_page_t* page); > > > > >ulint >page_rec_get_n_recs_before( > > > rec_t* rec); > > >static inline >ulint >page_dir_get_n_heap( > > > ib_page_t* page); > > >static inline >void >page_dir_set_n_heap( > > ib_page_t* page, > ulint n_heap); > > >static inline >ulint >page_dir_get_n_slots( > > > ib_page_t* page); > > >static inline >void >page_dir_set_n_slots( > > > ib_page_t* page, > ulint n_slots); > > >static inline >page_dir_slot_t* >page_dir_get_nth_slot( > > > ib_page_t* page, > ulint n); > > >static inline >ulint >page_rec_check( > > > rec_t* rec); > > >static inline >rec_t* >page_dir_slot_get_rec( > > > page_dir_slot_t* slot); > > >static inline >void >page_dir_slot_set_rec( > > page_dir_slot_t* slot, > rec_t* rec); > > >static inline >ulint >page_dir_slot_get_n_owned( > > > page_dir_slot_t* slot); > > >static inline >void >page_dir_slot_set_n_owned( > > page_dir_slot_t* slot, > ulint n); > > > > > > >static inline >ulint >page_dir_calc_reserved_space( > > ulint n_recs); > > > >ulint >page_dir_find_owner_slot( > > > rec_t* rec); > > >static inline >ulint >page_is_comp( > > > > ib_page_t* page); > > >static inline >ulint >page_rec_is_comp( > > > const rec_t* rec); > > >static inline >rec_t* >page_rec_get_next( > > > rec_t* rec); > > > >static inline >void >page_rec_set_next( > > rec_t* rec, > > rec_t* next); > > > >static inline >rec_t* >page_rec_get_prev( > > > rec_t* rec); > > > >static inline >ulint >page_rec_is_user_rec_low( > > > ulint offset); > > >static inline >ulint >page_rec_is_supremum_low( > > > ulint offset); > > >static inline >ulint >page_rec_is_infimum_low( > > > ulint offset); > > > >static inline >ulint >page_rec_is_user_rec( > > > const rec_t* rec); > > >static inline >ulint >page_rec_is_supremum( > > > const rec_t* rec); > > >static inline >ulint >page_rec_is_infimum( > > > const rec_t* rec); > > >static inline >rec_t* >page_rec_find_owner_rec( > > > rec_t* rec); > > > > > >void >page_rec_write_index_page_no( > > rec_t* rec, > ulint i, > ulint page_no, > mtr_t* mtr); > > > >static inline >ulint >page_get_max_insert_size( > > > ib_page_t* page, > ulint n_recs); > > > >static inline >ulint >page_get_max_insert_size_after_reorganize( > > > ib_page_t* page, > ulint n_recs); > > >static inline >ulint >page_get_free_space_of_empty( > > > ulint comp) > __attribute__((const)); > > > >static inline >ulint >page_get_data_size( > > > ib_page_t* page); > >ulint >page_get_data_size_noninline( > > > ib_page_t* page); > > > >unsigned char* >page_mem_alloc( > > > > ib_page_t* page, > ulint need, > dict_index_t* index, > ulint* heap_no); > > > > >static inline >void >page_mem_free( > > ib_page_t* page, > rec_t* rec, > const ulint* offsets); > > > >ib_page_t* >page_create( > > > buf_frame_t* frame, > > mtr_t* mtr, > ulint comp); > > > > >void >page_copy_rec_list_end_no_locks( > > ib_page_t* new_page, > ib_page_t* page, > rec_t* rec, > dict_index_t* index, > mtr_t* mtr); > > > > > >void >page_copy_rec_list_end( > > ib_page_t* new_page, > ib_page_t* page, > rec_t* rec, > dict_index_t* index, > mtr_t* mtr); > > > > > >void >page_copy_rec_list_start( > > ib_page_t* new_page, > ib_page_t* page, > rec_t* rec, > dict_index_t* index, > mtr_t* mtr); > > > > >void >page_delete_rec_list_end( > > ib_page_t* page, > rec_t* rec, > dict_index_t* index, > ulint n_recs, > > ulint size, > > > mtr_t* mtr); > > > > >void >page_delete_rec_list_start( > > ib_page_t* page, > rec_t* rec, > dict_index_t* index, > mtr_t* mtr); > > > > >void >page_move_rec_list_end( > > ib_page_t* new_page, > ib_page_t* page, > rec_t* split_rec, > dict_index_t* index, > mtr_t* mtr); > > > > >void >page_move_rec_list_start( > > ib_page_t* new_page, > ib_page_t* page, > rec_t* split_rec, > dict_index_t* index, > mtr_t* mtr); > > > >void >page_dir_split_slot( > > ib_page_t* page, > ulint slot_no); > > > > > > >void >page_dir_balance_slot( > > ib_page_t* page, > ulint slot_no); > > > >unsigned char* >page_parse_delete_rec_list( > > > unsigned char type, > > > > unsigned char* ptr, > unsigned char* end_ptr, > dict_index_t* index, > ib_page_t* page, > mtr_t* mtr); > > > >unsigned char* >page_parse_create( > > > unsigned char* ptr, > unsigned char* end_ptr, > ulint comp, > ib_page_t* page, > mtr_t* mtr); > > > > >void >page_rec_print( > > rec_t* rec, > const ulint* offsets); > > > > >void >page_dir_print( > > ib_page_t* page, > ulint pr_n); > > > > >void >page_print_list( > > ib_page_t* page, > dict_index_t* index, > ulint pr_n); > > > >void >page_header_print( > > ib_page_t* page); > > > > >void >page_print( > > ib_page_t* page, > dict_index_t* index, > ulint dn, > > ulint rn); > > > > > > >ulint >page_rec_validate( > > > rec_t* rec, > const ulint* offsets); > > > > > >void >page_check_dir( > > ib_page_t* page); > > > > > >ulint >page_simple_validate( > > > ib_page_t* page); > > > >ulint >page_validate( > > > ib_page_t* page, > dict_index_t* index); > > > > >rec_t* >page_find_rec_with_heap_no( > > > ib_page_t* page, > ulint heap_no); > > > > > > > ># 1 "./include/page0page.ic" 1 ># 10 "./include/page0page.ic" ># 1 "./include/rem0cmp.h" 1 ># 21 "./include/rem0cmp.h" >ulint >cmp_types_are_equal( > > > > dtype_t* type1, > dtype_t* type2, > ulint check_charsets); > > > >static inline >int >cmp_data_data( > > > > dtype_t* cur_type, > unsigned char* data1, > > ulint len1, > unsigned char* data2, > > ulint len2); > > > > >int >cmp_data_data_slow( > > > > dtype_t* cur_type, > unsigned char* data1, > > ulint len1, > unsigned char* data2, > > ulint len2); > > > >static inline >int >cmp_dfield_dfield( > > > > dfield_t* dfield1, > dfield_t* dfield2); ># 81 "./include/rem0cmp.h" >int >cmp_dtuple_rec_with_match( > > > > > > > dtuple_t* dtuple, > rec_t* rec, > > > > const ulint* offsets, > ulint* matched_fields, > > > ulint* matched_bytes); > > > > > > >int >cmp_dtuple_rec( > > > > > dtuple_t* dtuple, > rec_t* rec, > const ulint* offsets); > > > > >ulint >cmp_dtuple_is_prefix_of_rec( > > > dtuple_t* dtuple, > rec_t* rec, > const ulint* offsets); > > > > > >int >cmp_rec_rec_with_match( > > > > > rec_t* rec1, > rec_t* rec2, > const ulint* offsets1, > const ulint* offsets2, > dict_index_t* index, > ulint* matched_fields, > > > > ulint* matched_bytes); > > > > > > >static inline >int >cmp_rec_rec( > > > > > rec_t* rec1, > rec_t* rec2, > const ulint* offsets1, > const ulint* offsets2, > dict_index_t* index); > > > ># 1 "./include/rem0cmp.ic" 1 ># 12 "./include/rem0cmp.ic" >static inline >int >cmp_data_data( > > > > dtype_t* cur_type, > unsigned char* data1, > > ulint len1, > unsigned char* data2, > > ulint len2) >{ > return(cmp_data_data_slow(cur_type, data1, len1, data2, len2)); >} > > > > >static inline >int >cmp_dfield_dfield( > > > > dfield_t* dfield1, > dfield_t* dfield2) >{ > ; > > return(cmp_data_data(dfield_get_type(dfield1), > dfield_get_data(dfield1), dfield_get_len(dfield1), > dfield_get_data(dfield2), dfield_get_len(dfield2))); >} > > > > >static inline >int >cmp_rec_rec( > > > > > rec_t* rec1, > rec_t* rec2, > const ulint* offsets1, > const ulint* offsets2, > dict_index_t* index) >{ > ulint match_f = 0; > ulint match_b = 0; > > return(cmp_rec_rec_with_match(rec1, rec2, offsets1, offsets2, index, > &match_f, &match_b)); >} ># 168 "./include/rem0cmp.h" 2 ># 11 "./include/page0page.ic" 2 ># 20 "./include/page0page.ic" >static inline >dulint >page_get_max_trx_id( > > ib_page_t* page) >{ > ; > > return(mach_read_from_8(page + 38 + 18)); >} > > > > >static inline >void >page_update_max_trx_id( > > ib_page_t* page, > dulint trx_id) >{ > ; > > if (ut_dulint_cmp(page_get_max_trx_id(page), trx_id) < 0) { > > page_set_max_trx_id(page, trx_id); > } >} > > > >static inline >ulint >page_header_get_field( > > ib_page_t* page, > ulint field) >{ > ; > ; > > return(mach_read_from_2(page + 38 + field)); >} > > > >static inline >void >page_header_set_field( > > ib_page_t* page, > ulint field, > ulint val) >{ > ; > ; > ; > ; > > mach_write_to_2(page + 38 + field, val); >} > > > >static inline >unsigned char* >page_header_get_ptr( > > > ib_page_t* page, > ulint field) >{ > ulint offs; > > ; > ; > > > > offs = page_header_get_field(page, field); > > ; > > if (offs == 0) { > > return(((void *)0)); > } > > return(page + offs); >} > > > >static inline >void >page_header_set_ptr( > > ib_page_t* page, > ulint field, > unsigned char* ptr) >{ > ulint offs; > > ; > ; > > > > if (ptr == ((void *)0)) { > offs = 0; > } else { > offs = ptr - page; > } > > ; > > page_header_set_field(page, field, offs); >} > > > > >static inline >void >page_header_reset_last_insert( > > ib_page_t* page, > mtr_t* mtr) >{ > ; > > mlog_write_ulint(page + 38 + 10, 0, > ((unsigned char)2), mtr); >} > > > >static inline >ulint >page_is_comp( > > > > ib_page_t* page) >{ > return(__builtin_expect(page_header_get_field(page, 4) & 0x8000, 0x8000)); > >} > > > >static inline >ulint >page_rec_is_comp( > > > const rec_t* rec) >{ > return(page_is_comp(ut_align_down((rec_t*) rec, (2 * 8192)))); >} > > > >static inline >rec_t* >page_get_infimum_rec( > > > ib_page_t* page) >{ > ; > > if (page_is_comp(page)) { > return(page + ((38 + 36 + 2 * 10) + 5)); > } else { > return(page + ((38 + 36 + 2 * 10) + 1 + 6)); > } >} > > > >static inline >rec_t* >page_get_supremum_rec( > > > ib_page_t* page) >{ > ; > > if (page_is_comp(page)) { > return(page + ((38 + 36 + 2 * 10) + 2 * 5 + 8)); > } else { > return(page + ((38 + 36 + 2 * 10) + 2 + 2 * 6 + 8)); > } >} > > > >static inline >ulint >page_rec_is_user_rec_low( > > > ulint offset) >{ > ; ># 245 "./include/page0page.ic" > ; > > return(__builtin_expect(offset != ((38 + 36 + 2 * 10) + 2 * 5 + 8), (1)) > && __builtin_expect(offset != ((38 + 36 + 2 * 10) + 5), (1)) > && __builtin_expect(offset != ((38 + 36 + 2 * 10) + 1 + 6), (1)) > && __builtin_expect(offset != ((38 + 36 + 2 * 10) + 2 + 2 * 6 + 8), (1))); >} > > > >static inline >ulint >page_rec_is_supremum_low( > > > ulint offset) >{ > ; > ; > > return(__builtin_expect(offset == ((38 + 36 + 2 * 10) + 2 * 5 + 8), (0)) > || __builtin_expect(offset == ((38 + 36 + 2 * 10) + 2 + 2 * 6 + 8), (0))); >} > > > >static inline >ulint >page_rec_is_infimum_low( > > > ulint offset) >{ > ; > ; > > return(__builtin_expect(offset == ((38 + 36 + 2 * 10) + 5), (0)) > || __builtin_expect(offset == ((38 + 36 + 2 * 10) + 1 + 6), (0))); >} > > > >static inline >ulint >page_rec_is_user_rec( > > > const rec_t* rec) >{ > return(page_rec_is_user_rec_low( > ut_align_offset(rec, (2 * 8192)))); >} > > > >static inline >ulint >page_rec_is_supremum( > > > const rec_t* rec) >{ > return(page_rec_is_supremum_low( > ut_align_offset(rec, (2 * 8192)))); >} > > > >static inline >ulint >page_rec_is_infimum( > > > const rec_t* rec) >{ > return(page_rec_is_infimum_low( > ut_align_offset(rec, (2 * 8192)))); >} > > > > > > > >static inline >int >page_cmp_dtuple_rec_with_match( > > > > > dtuple_t* dtuple, > rec_t* rec, > > > > const ulint* offsets, > ulint* matched_fields, > > > ulint* matched_bytes) > > > >{ > ulint rec_offset; > > ; > ; > ; > > rec_offset = ut_align_offset(rec, (2 * 8192)); > > if (__builtin_expect(rec_offset == ((38 + 36 + 2 * 10) + 5), (0)) > || __builtin_expect(rec_offset == ((38 + 36 + 2 * 10) + 1 + 6), (0))) { > return(1); > } > if (__builtin_expect(rec_offset == ((38 + 36 + 2 * 10) + 2 * 5 + 8), (0)) > || __builtin_expect(rec_offset == ((38 + 36 + 2 * 10) + 2 + 2 * 6 + 8), (0))) { > return(-1); > } > > return(cmp_dtuple_rec_with_match(dtuple, rec, offsets, > matched_fields, > matched_bytes)); >} > > > > >static inline >ulint >page_get_n_recs( > > > ib_page_t* page) >{ > return(page_header_get_field(page, 16)); >} > > > >static inline >ulint >page_dir_get_n_slots( > > > ib_page_t* page) >{ > return(page_header_get_field(page, 0)); >} > > >static inline >void >page_dir_set_n_slots( > > > ib_page_t* page, > ulint n_slots) >{ > page_header_set_field(page, 0, n_slots); >} > > > >static inline >ulint >page_dir_get_n_heap( > > > ib_page_t* page) >{ > return(page_header_get_field(page, 4) & 0x7fff); >} > > > >static inline >void >page_dir_set_n_heap( > > ib_page_t* page, > ulint n_heap) >{ > ; > > page_header_set_field(page, 4, n_heap | (0x8000 & > page_header_get_field(page, 4))); >} > > > >static inline >page_dir_slot_t* >page_dir_get_nth_slot( > > > ib_page_t* page, > ulint n) >{ > ; > > return(page + (2 * 8192) - 8 > - (n + 1) * 2); >} > > > >static inline >ulint >page_rec_check( > > > rec_t* rec) >{ > ib_page_t* page; > > do { if (__builtin_expect(!((ulint)(rec)), (0))) { ut_dbg_assertion_failed("rec", "./include/page0page.ic", (ulint) 464); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/page0page.ic", (ulint) 464); } while (0); } while (0); > > page = buf_frame_align(rec); > > do { if (__builtin_expect(!((ulint)(rec <= page_header_get_ptr(page, 2))), (0))) { ut_dbg_assertion_failed("rec <= page_header_get_ptr(page, PAGE_HEAP_TOP)", "./include/page0page.ic", (ulint) 468); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/page0page.ic", (ulint) 468); } while (0); } while (0); > do { if (__builtin_expect(!((ulint)(rec >= page + (38 + 36 + 2 * 10))), (0))) { ut_dbg_assertion_failed("rec >= page + PAGE_DATA", "./include/page0page.ic", (ulint) 469); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/page0page.ic", (ulint) 469); } while (0); } while (0); > > return((1)); >} > > > >static inline >rec_t* >page_dir_slot_get_rec( > > > page_dir_slot_t* slot) >{ > return(buf_frame_align(slot) + mach_read_from_2(slot)); >} > > > >static inline >void >page_dir_slot_set_rec( > > page_dir_slot_t* slot, > rec_t* rec) >{ > ; > > mach_write_to_2(slot, ut_align_offset(rec, (2 * 8192))); >} > > > >static inline >ulint >page_dir_slot_get_n_owned( > > > page_dir_slot_t* slot) >{ > rec_t* rec = page_dir_slot_get_rec(slot); > return(rec_get_n_owned(rec, page_rec_is_comp(rec))); >} > > > >static inline >void >page_dir_slot_set_n_owned( > > page_dir_slot_t* slot, > ulint n) > >{ > rec_t* rec = page_dir_slot_get_rec(slot); > rec_set_n_owned(rec, page_rec_is_comp(rec), n); >} > > > > > >static inline >ulint >page_dir_calc_reserved_space( > > ulint n_recs) >{ > return((2 * n_recs + 4 - 1) > / 4); >} > > > >static inline >rec_t* >page_rec_get_next( > > > rec_t* rec) >{ > ulint offs; > ib_page_t* page; > > ; > > page = ut_align_down(rec, (2 * 8192)); > > offs = rec_get_next_offs(rec, page_is_comp(page)); > > if (__builtin_expect(offs >= (2 * 8192), (0))) { > fprintf(stderr, >"InnoDB: Next record offset is nonsensical %lu in record at offset %lu\n" >"InnoDB: rec address %p, first buffer frame %p\n" >"InnoDB: buffer pool high end %p, buf fix count %lu\n", > (ulong)offs, (ulong)(rec - page), > rec, buf_pool->frame_zero, > buf_pool->high_end, > (ulong)buf_block_align(rec)->buf_fix_count); > buf_page_print(page); > > do { ut_dbg_assertion_failed(0, "./include/page0page.ic", (ulint) 570); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > } > > if (__builtin_expect(offs == 0, (0))) { > > return(((void *)0)); > } > > return(page + offs); >} > > > >static inline >void >page_rec_set_next( > > rec_t* rec, > rec_t* next) > >{ > ib_page_t* page; > ulint offs; > > ; > ; > page = ut_align_down(rec, (2 * 8192)); > > if (next) { > ; > ; > offs = (ulint) (next - page); > } else { > offs = 0; > } > > rec_set_next_offs(rec, page_is_comp(page), offs); >} > > > >static inline >rec_t* >page_rec_get_prev( > > > rec_t* rec) > >{ > page_dir_slot_t* slot; > ulint slot_no; > rec_t* rec2; > rec_t* prev_rec = ((void *)0); > ib_page_t* page; > > ; > > page = ut_align_down(rec, (2 * 8192)); > > ; > > slot_no = page_dir_find_owner_slot(rec); > > do { if (__builtin_expect(!((ulint)(slot_no != 0)), (0))) { ut_dbg_assertion_failed("slot_no != 0", "./include/page0page.ic", (ulint) 633); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/page0page.ic", (ulint) 633); } while (0); } while (0); > > slot = page_dir_get_nth_slot(page, slot_no - 1); > > rec2 = page_dir_slot_get_rec(slot); > > while (rec != rec2) { > prev_rec = rec2; > rec2 = page_rec_get_next(rec2); > } > > do { if (__builtin_expect(!((ulint)(prev_rec)), (0))) { ut_dbg_assertion_failed("prev_rec", "./include/page0page.ic", (ulint) 644); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("./include/page0page.ic", (ulint) 644); } while (0); } while (0); > > return(prev_rec); >} > > > >static inline >rec_t* >page_rec_find_owner_rec( > > > rec_t* rec) >{ > ; > > if (page_rec_is_comp(rec)) { > while (rec_get_n_owned(rec, (1)) == 0) { > rec = page_rec_get_next(rec); > } > } else { > while (rec_get_n_owned(rec, (0)) == 0) { > rec = page_rec_get_next(rec); > } > } > > return(rec); >} > > > > >static inline >ulint >page_get_data_size( > > > ib_page_t* page) >{ > ulint ret; > > ret = (ulint)(page_header_get_field(page, 2) > - (page_is_comp(page) > ? (((38 + 36 + 2 * 10) + 2 * 5 + 8) + 8) > : (((38 + 36 + 2 * 10) + 2 + 2 * 6 + 8) + 9)) > - page_header_get_field(page, 8)); > > ; > > return(ret); >} > > > >static inline >ulint >page_get_free_space_of_empty( > > > ulint comp) >{ > if (__builtin_expect(comp, (1))) { > return((ulint)((2 * 8192) > - (((38 + 36 + 2 * 10) + 2 * 5 + 8) + 8) > - 8 > - 2 * 2)); > } > > return((ulint)((2 * 8192) > - (((38 + 36 + 2 * 10) + 2 + 2 * 6 + 8) + 9) > - 8 > - 2 * 2)); >} ># 725 "./include/page0page.ic" >static inline >ulint >page_get_max_insert_size( > > > ib_page_t* page, > ulint n_recs) >{ > ulint occupied; > ulint free_space; > > if (page_is_comp(page)) { > occupied = page_header_get_field(page, 2) > - (((38 + 36 + 2 * 10) + 2 * 5 + 8) + 8) + page_dir_calc_reserved_space( > n_recs + page_dir_get_n_heap(page) - 2); > > free_space = page_get_free_space_of_empty((1)); > } else { > occupied = page_header_get_field(page, 2) > - (((38 + 36 + 2 * 10) + 2 + 2 * 6 + 8) + 9) + page_dir_calc_reserved_space( > n_recs + page_dir_get_n_heap(page) - 2); > > free_space = page_get_free_space_of_empty((0)); > } > > > > > > if (occupied > free_space) { > > return(0); > } > > return(free_space - occupied); >} > > > > >static inline >ulint >page_get_max_insert_size_after_reorganize( > > > ib_page_t* page, > ulint n_recs) >{ > ulint occupied; > ulint free_space; > > occupied = page_get_data_size(page) > + page_dir_calc_reserved_space(n_recs + page_get_n_recs(page)); > > free_space = page_get_free_space_of_empty(page_is_comp(page)); > > if (occupied > free_space) { > > return(0); > } > > return(free_space - occupied); >} > > > >static inline >void >page_mem_free( > > ib_page_t* page, > rec_t* rec, > const ulint* offsets) >{ > rec_t* free; > ulint garbage; > > ; > ; > free = page_header_get_ptr(page, 6); > > page_rec_set_next(rec, free); > page_header_set_ptr(page, 6, rec); ># 819 "./include/page0page.ic" > garbage = page_header_get_field(page, 8); > > page_header_set_field(page, 8, > garbage + rec_offs_size(offsets)); >} ># 812 "./include/page0page.h" 2 ># 16 "./include/page0cur.h" 2 ># 46 "./include/page0cur.h" >static inline >ib_page_t* >page_cur_get_page( > > > page_cur_t* cur); > > >static inline >rec_t* >page_cur_get_rec( > > > page_cur_t* cur); > > > >static inline >void >page_cur_set_before_first( > > ib_page_t* page, > page_cur_t* cur); > > > >static inline >void >page_cur_set_after_last( > > ib_page_t* page, > page_cur_t* cur); > > >static inline >ulint >page_cur_is_before_first( > > > const page_cur_t* cur); > > >static inline >ulint >page_cur_is_after_last( > > > const page_cur_t* cur); > > >static inline >void >page_cur_position( > > rec_t* rec, > page_cur_t* cur); > > >static inline >void >page_cur_invalidate( > > page_cur_t* cur); > > >static inline >void >page_cur_move_to_next( > > page_cur_t* cur); > > >static inline >void >page_cur_move_to_prev( > > page_cur_t* cur); > > > > >static inline >rec_t* >page_cur_tuple_insert( > > > > page_cur_t* cursor, > dtuple_t* tuple, > dict_index_t* index, > mtr_t* mtr); > > > > >static inline >rec_t* >page_cur_rec_insert( > > > > page_cur_t* cursor, > rec_t* rec, > dict_index_t* index, > ulint* offsets, > mtr_t* mtr); > > > > > > >rec_t* >page_cur_insert_rec_low( > > > > page_cur_t* cursor, > dtuple_t* tuple, > dict_index_t* index, > rec_t* rec, > ulint* offsets, > mtr_t* mtr); > > > > >void >page_copy_rec_list_end_to_created_page( > > ib_page_t* new_page, > ib_page_t* page, > rec_t* rec, > dict_index_t* index, > mtr_t* mtr); > > > > >void >page_cur_delete_rec( > > page_cur_t* cursor, > dict_index_t* index, > const ulint* offsets, > mtr_t* mtr); > > >static inline >ulint >page_cur_search( > > > ib_page_t* page, > dict_index_t* index, > dtuple_t* tuple, > ulint mode, > > page_cur_t* cursor); > > > >void >page_cur_search_with_match( > > ib_page_t* page, > dict_index_t* index, > dtuple_t* tuple, > ulint mode, > > ulint* iup_matched_fields, > > > ulint* iup_matched_bytes, > > > ulint* ilow_matched_fields, > > > ulint* ilow_matched_bytes, > > > page_cur_t* cursor); > > > > >void >page_cur_open_on_rnd_user_rec( > > ib_page_t* page, > page_cur_t* cursor); > > > >unsigned char* >page_cur_parse_insert_rec( > > > ulint is_short, > unsigned char* ptr, > unsigned char* end_ptr, > dict_index_t* index, > ib_page_t* page, > mtr_t* mtr); > > > >unsigned char* >page_parse_copy_rec_list_to_created_page( > > > unsigned char* ptr, > unsigned char* end_ptr, > dict_index_t* index, > ib_page_t* page, > mtr_t* mtr); > > > >unsigned char* >page_cur_parse_delete_rec( > > > unsigned char* ptr, > unsigned char* end_ptr, > dict_index_t* index, > ib_page_t* page, > mtr_t* mtr); > > > >struct page_cur_struct{ > unsigned char* rec; >}; > > ># 1 "./include/page0cur.ic" 1 ># 14 "./include/page0cur.ic" >static inline >ib_page_t* >page_cur_get_page( > > > page_cur_t* cur) >{ > ; > > return(buf_frame_align(cur->rec)); >} > > > >static inline >rec_t* >page_cur_get_rec( > > > page_cur_t* cur) >{ > ; > > return(cur->rec); >} > > > > >static inline >void >page_cur_set_before_first( > > ib_page_t* page, > page_cur_t* cur) >{ > cur->rec = page_get_infimum_rec(page); >} > > > > >static inline >void >page_cur_set_after_last( > > ib_page_t* page, > page_cur_t* cur) >{ > cur->rec = page_get_supremum_rec(page); >} > > > >static inline >ulint >page_cur_is_before_first( > > > const page_cur_t* cur) >{ > return(page_rec_is_infimum(cur->rec)); >} > > > >static inline >ulint >page_cur_is_after_last( > > > const page_cur_t* cur) >{ > return(page_rec_is_supremum(cur->rec)); >} > > > >static inline >void >page_cur_position( > > rec_t* rec, > page_cur_t* cur) >{ > ; > > cur->rec = rec; >} > > > >static inline >void >page_cur_invalidate( > > page_cur_t* cur) >{ > ; > > cur->rec = ((void *)0); >} > > > >static inline >void >page_cur_move_to_next( > > page_cur_t* cur) >{ > ; > > cur->rec = page_rec_get_next(cur->rec); >} > > > >static inline >void >page_cur_move_to_prev( > > page_cur_t* cur) >{ > ; > > cur->rec = page_rec_get_prev(cur->rec); >} > > > >static inline >ulint >page_cur_search( > > > ib_page_t* page, > dict_index_t* index, > dtuple_t* tuple, > ulint mode, > > page_cur_t* cursor) >{ > ulint low_matched_fields = 0; > ulint low_matched_bytes = 0; > ulint up_matched_fields = 0; > ulint up_matched_bytes = 0; > > ; > > page_cur_search_with_match(page, index, tuple, mode, > &up_matched_fields, > &up_matched_bytes, > &low_matched_fields, > &low_matched_bytes, > cursor); > return(low_matched_fields); >} > > > > > >static inline >rec_t* >page_cur_tuple_insert( > > > > page_cur_t* cursor, > dtuple_t* tuple, > dict_index_t* index, > mtr_t* mtr) >{ > return(page_cur_insert_rec_low(cursor, tuple, index, ((void *)0), ((void *)0), mtr)); >} > > > > > >static inline >rec_t* >page_cur_rec_insert( > > > > page_cur_t* cursor, > rec_t* rec, > dict_index_t* index, > ulint* offsets, > mtr_t* mtr) >{ > return(page_cur_insert_rec_low(cursor, ((void *)0), index, rec, > offsets, mtr)); >} ># 284 "./include/page0cur.h" 2 ># 17 "./include/btr0btr.h" 2 ># 51 "./include/btr0btr.h" >ib_page_t* >btr_root_get( > > > dict_tree_t* tree, > mtr_t* mtr); > > >static inline >ib_page_t* >btr_page_get( > > ulint space, > ulint page_no, > ulint mode, > mtr_t* mtr); > > >static inline >dulint >btr_page_get_index_id( > > > ib_page_t* page); > >dulint >btr_page_get_index_id_noninline( > > > ib_page_t* page); > > >static inline >ulint >btr_page_get_level_low( > > > ib_page_t* page); > > >static inline >ulint >btr_page_get_level( > > > ib_page_t* page, > mtr_t* mtr); > > >static inline >ulint >btr_page_get_next( > > > ib_page_t* page, > mtr_t* mtr); > > >static inline >ulint >btr_page_get_prev( > > > ib_page_t* page, > mtr_t* mtr); > > > > >rec_t* >btr_get_prev_user_rec( > > > rec_t* rec, > mtr_t* mtr); > > > > > >rec_t* >btr_get_next_user_rec( > > > rec_t* rec, > mtr_t* mtr); > > > >static inline >void >btr_leaf_page_release( > > ib_page_t* page, > ulint latch_mode, > mtr_t* mtr); > > >static inline >ulint >btr_node_ptr_get_child_page_no( > > > rec_t* rec, > const ulint* offsets); > > > >ulint >btr_create( > > > > ulint type, > ulint space, > dulint index_id, > ulint comp, > mtr_t* mtr); > > > > >void >btr_free_but_not_root( > > ulint space, > ulint root_page_no); > > > >void >btr_free_root( > > ulint space, > ulint root_page_no, > mtr_t* mtr); ># 195 "./include/btr0btr.h" >rec_t* >btr_root_raise_and_insert( > > > btr_cur_t* cursor, > > > > dtuple_t* tuple, > mtr_t* mtr); > > > >void >btr_page_reorganize( > > ib_page_t* page, > dict_index_t* index, > mtr_t* mtr); > > > > >ulint >btr_page_get_split_rec_to_left( > > > btr_cur_t* cursor, > rec_t** split_rec); > > > > > > >ulint >btr_page_get_split_rec_to_right( > > > btr_cur_t* cursor, > rec_t** split_rec); ># 246 "./include/btr0btr.h" >rec_t* >btr_page_split_and_insert( > > > > > btr_cur_t* cursor, > > > dtuple_t* tuple, > mtr_t* mtr); > > > > >void >btr_insert_on_non_leaf_level( > > dict_tree_t* tree, > ulint level, > dtuple_t* tuple, > mtr_t* mtr); > > > >void >btr_set_min_rec_mark( > > rec_t* rec, > ulint comp, > mtr_t* mtr); > > > >void >btr_node_ptr_delete( > > dict_tree_t* tree, > ib_page_t* page, > mtr_t* mtr); > > > >ulint >btr_check_node_ptr( > > > dict_tree_t* tree, > ib_page_t* page, > mtr_t* mtr); ># 306 "./include/btr0btr.h" >void >btr_compress( > > btr_cur_t* cursor, > > > > mtr_t* mtr); > > > > > >void >btr_discard_page( > > btr_cur_t* cursor, > > mtr_t* mtr); > > > > >unsigned char* >btr_parse_set_min_rec_mark( > > > unsigned char* ptr, > unsigned char* end_ptr, > ulint comp, > ib_page_t* page, > mtr_t* mtr); > > > >unsigned char* >btr_parse_page_reorganize( > > > unsigned char* ptr, > unsigned char* end_ptr, > dict_index_t* index, > ib_page_t* page, > mtr_t* mtr); > > > >ulint >btr_get_size( > > > dict_index_t* index, > ulint flag); > > > > >ib_page_t* >btr_page_alloc( > > > > dict_tree_t* tree, > ulint hint_page_no, > unsigned char file_direction, > > ulint level, > > mtr_t* mtr); > > > > >void >btr_page_free( > > dict_tree_t* tree, > ib_page_t* page, > mtr_t* mtr); > > > > > >void >btr_page_free_low( > > dict_tree_t* tree, > ib_page_t* page, > ulint level, > mtr_t* mtr); ># 419 "./include/btr0btr.h" >ulint >btr_index_rec_validate( > > > rec_t* rec, > dict_index_t* index, > ulint dump_on_error); > > > > > >ulint >btr_validate_tree( > > > dict_tree_t* tree, > trx_t* trx); > > > > > ># 1 "./include/btr0btr.ic" 1 ># 17 "./include/btr0btr.ic" >static inline >ib_page_t* >btr_page_get( > > ulint space, > ulint page_no, > ulint mode, > mtr_t* mtr) >{ > ib_page_t* page; > > page = buf_page_get_gen( space, page_no, mode, ((void *)0), 10, "./include/btr0btr.ic", 28, mtr); > > > > > > > return(page); >} > > > >static inline >void >btr_page_set_index_id( > > ib_page_t* page, > dulint id, > mtr_t* mtr) >{ > mlog_write_dulint(page + 38 + 28, id, mtr); >} > > > >static inline >dulint >btr_page_get_index_id( > > > ib_page_t* page) >{ > return(mach_read_from_8(page + 38 + 28)); >} > > > >static inline >ulint >btr_page_get_level_low( > > > ib_page_t* page) >{ > ulint level; > > ; > > level = mach_read_from_2(page + 38 + 26); > > ; > > return(level); >} > > > >static inline >ulint >btr_page_get_level( > > > ib_page_t* page, > mtr_t* mtr __attribute__((unused))) >{ > ; > > return(btr_page_get_level_low(page)); >} > > > >static inline >void >btr_page_set_level( > > ib_page_t* page, > ulint level, > mtr_t* mtr) >{ > ; > ; > > mlog_write_ulint(page + 38 + 26, level, > ((unsigned char)2), mtr); >} > > > >static inline >ulint >btr_page_get_next( > > > ib_page_t* page, > mtr_t* mtr __attribute__((unused))) >{ > ; > ; > > > > > return(mach_read_from_4(page + 12)); >} > > > >static inline >void >btr_page_set_next( > > ib_page_t* page, > ulint next, > mtr_t* mtr) >{ > ; > > mlog_write_ulint(page + 12, next, ((unsigned char)4), mtr); >} > > > >static inline >ulint >btr_page_get_prev( > > > ib_page_t* page, > mtr_t* mtr __attribute__((unused))) >{ > ; > > return(mach_read_from_4(page + 8)); >} > > > >static inline >void >btr_page_set_prev( > > ib_page_t* page, > ulint prev, > mtr_t* mtr) >{ > ; > > mlog_write_ulint(page + 8, prev, ((unsigned char)4), mtr); >} > > > >static inline >ulint >btr_node_ptr_get_child_page_no( > > > rec_t* rec, > const ulint* offsets) >{ > unsigned char* field; > ulint len; > ulint page_no; > > ; > > > field = rec_get_nth_field(rec, offsets, > rec_offs_n_fields(offsets) - 1, &len); > > ; > > page_no = mach_read_from_4(field); > > if (__builtin_expect(page_no == 0, (0))) { > fprintf(stderr, >"InnoDB: a nonsensical page number 0 in a node ptr record at offset %lu\n", > (ulong) ut_align_offset(rec, (2 * 8192))); > buf_page_print(buf_frame_align(rec)); > } > > return(page_no); >} > > > >static inline >void >btr_leaf_page_release( > > ib_page_t* page, > ulint latch_mode, > mtr_t* mtr) >{ > ; > > if (latch_mode == 1) { > mtr_memo_release(mtr, buf_block_align(page), > 1); > } else { > ; > mtr_memo_release(mtr, buf_block_align(page), > 2); > } >} ># 443 "./include/btr0btr.h" 2 ># 31 "buf/buf0buf.c" 2 ># 1 "./include/fil0fil.h" 1 ># 32 "buf/buf0buf.c" 2 ># 1 "./include/lock0lock.h" 1 ># 26 "./include/lock0lock.h" >extern FILE* lock_latest_err_file; > > > > >ulint >lock_get_size(void); > > > > > >void >lock_sys_create( > > ulint n_cells); > > > > >trx_t* >lock_sec_rec_some_has_impl_off_kernel( > > > > rec_t* rec, > dict_index_t* index, > const ulint* offsets); > > > >static inline >trx_t* >lock_clust_rec_some_has_impl( > > > > rec_t* rec, > dict_index_t* index, > const ulint* offsets); > > > > > >void >lock_rec_inherit_to_gap( > > rec_t* heir, > rec_t* rec); > > > > > > > >void >lock_move_reorganize_page( > > ib_page_t* page, > ib_page_t* new_page); > > > > >void >lock_move_rec_list_end( > > ib_page_t* new_page, > ib_page_t* page, > rec_t* rec); > > > > > >void >lock_move_rec_list_start( > > ib_page_t* new_page, > ib_page_t* page, > rec_t* rec, > > rec_t* old_end); > > > > >void >lock_update_split_right( > > ib_page_t* right_page, > ib_page_t* left_page); > > > >void >lock_update_merge_right( > > rec_t* orig_succ, > > ib_page_t* left_page); ># 138 "./include/lock0lock.h" >void >lock_update_root_raise( > > ib_page_t* new_page, > ib_page_t* root); > > > > >void >lock_update_copy_and_discard( > > ib_page_t* new_page, > ib_page_t* page); > > > >void >lock_update_split_left( > > ib_page_t* right_page, > ib_page_t* left_page); > > > >void >lock_update_merge_left( > > ib_page_t* left_page, > rec_t* orig_pred, > > ib_page_t* right_page); > > > > > >void >lock_rec_reset_and_inherit_gap_locks( > > rec_t* heir, > rec_t* rec); > > > >void >lock_update_discard( > > rec_t* heir, > ib_page_t* page); > > > >void >lock_update_insert( > > rec_t* rec); > > > >void >lock_update_delete( > > rec_t* rec); ># 210 "./include/lock0lock.h" >void >lock_rec_store_on_page_infimum( > > ib_page_t* page, > rec_t* rec); > > > > > > >void >lock_rec_restore_from_page_infimum( > > rec_t* rec, > ib_page_t* page); > > > > > >ulint >lock_rec_expl_exist_on_page( > > > > ulint space, > ulint page_no); > > > > > > > >ulint >lock_rec_insert_check_and_lock( > > > > ulint flags, > > rec_t* rec, > dict_index_t* index, > que_thr_t* thr, > ulint* inherit); ># 266 "./include/lock0lock.h" >ulint >lock_clust_rec_modify_check_and_lock( > > > > ulint flags, > > rec_t* rec, > dict_index_t* index, > const ulint* offsets, > que_thr_t* thr); > > > > >ulint >lock_sec_rec_modify_check_and_lock( > > > > ulint flags, > > rec_t* rec, > > > > dict_index_t* index, > que_thr_t* thr); > > > > >ulint >lock_sec_rec_read_check_and_lock( > > > > ulint flags, > > rec_t* rec, > > > dict_index_t* index, > const ulint* offsets, > ulint mode, > > > ulint gap_mode, > > que_thr_t* thr); ># 324 "./include/lock0lock.h" >ulint >lock_clust_rec_read_check_and_lock( > > > > ulint flags, > > rec_t* rec, > > > dict_index_t* index, > const ulint* offsets, > ulint mode, > > > ulint gap_mode, > > que_thr_t* thr); ># 352 "./include/lock0lock.h" >ulint >lock_clust_rec_read_check_and_lock_alt( > > > > ulint flags, > > rec_t* rec, > > > dict_index_t* index, > ulint mode, > > > ulint gap_mode, > > que_thr_t* thr); > > > >ulint >lock_clust_rec_cons_read_sees( > > > > rec_t* rec, > > dict_index_t* index, > const ulint* offsets, > read_view_t* view); > > > >ulint >lock_sec_rec_cons_read_sees( ># 396 "./include/lock0lock.h" > rec_t* rec, > > dict_index_t* index, > read_view_t* view); > > > > >ulint >lock_table( > > > > ulint flags, > > dict_table_t* table, > ulint mode, > que_thr_t* thr); > > > >ulint >lock_is_on_table( > > > dict_table_t* table); > > > > > >void >lock_rec_unlock( > > trx_t* trx, > > rec_t* rec, > ulint lock_mode); > > > > >void >lock_table_unlock( > > ib_lock_t* lock); > > > > >void >lock_table_unlock_auto_inc( > > trx_t* trx); > > > > >void >lock_release_off_kernel( > > trx_t* trx); > > > > >void >lock_cancel_waiting_and_release( > > ib_lock_t* lock); > > > > >void >lock_reset_all_on_table( > > dict_table_t* table); > > > >static inline >ulint >lock_rec_fold( > > > ulint space, > ulint page_no); > > > >static inline >ulint >lock_rec_hash( > > > ulint space, > ulint page_no); > > > > >dict_table_t* >lock_get_src_table( > > > > > > > trx_t* trx, > dict_table_t* dest, > ulint* mode); > > > > > >ulint >lock_is_table_exclusive( > > > > dict_table_t* table, > trx_t* trx); > > > >ulint >lock_check_trx_id_sanity( > > > dulint trx_id, > rec_t* rec, > dict_index_t* index, > const ulint* offsets, > ulint has_kernel_mutex); > > > > >ulint >lock_rec_queue_validate( > > > rec_t* rec, > dict_index_t* index, > const ulint* offsets); > > > >void >lock_table_print( > > FILE* file, > ib_lock_t* lock); > > > >void >lock_rec_print( > > FILE* file, > ib_lock_t* lock); > > > >void >lock_print_info_summary( > > FILE* file); > > > >void >lock_print_info_all_transactions( > > FILE* file); > > > >ulint >lock_table_queue_validate( > > > dict_table_t* table); > > > >ulint >lock_rec_validate_page( > > > ulint space, > ulint page_no); > > > >ulint >lock_validate(void); > > > > >extern lock_sys_t* lock_sys; ># 659 "./include/lock0lock.h" >typedef struct lock_op_struct lock_op_t; >struct lock_op_struct{ > dict_table_t* table; > ulint mode; >}; > > > > > >struct lock_sys_struct{ > hash_table_t* rec_hash; >}; > > >extern lock_sys_t* lock_sys; > > > ># 1 "./include/lock0lock.ic" 1 ># 12 "./include/lock0lock.ic" ># 1 "./include/row0row.h" 1 ># 24 "./include/row0row.h" >static inline >dulint >row_get_rec_trx_id( > > > rec_t* rec, > dict_index_t* index, > const ulint* offsets); > > >static inline >dulint >row_get_rec_roll_ptr( > > > rec_t* rec, > dict_index_t* index, > const ulint* offsets); > > >static inline >void >row_set_rec_trx_id( > > rec_t* rec, > dict_index_t* index, > const ulint* offsets, > dulint trx_id); > > >static inline >void >row_set_rec_roll_ptr( > > rec_t* rec, > dict_index_t* index, > const ulint* offsets, > dulint roll_ptr); > > > > >dtuple_t* >row_build_index_entry( > > > dtuple_t* row, > > dict_index_t* index, > mem_heap_t* heap); > > > > > >dtuple_t* >row_build( > > > ulint type, > > > > > > dict_index_t* index, > rec_t* rec, > > > > > > > const ulint* offsets, > > > mem_heap_t* heap); > > > > >dtuple_t* >row_rec_to_index_entry( > > > > ulint type, > > > > dict_index_t* index, > rec_t* rec, > > > > > > > mem_heap_t* heap); > > > > > >dtuple_t* >row_build_row_ref( > > > > ulint type, > > > > dict_index_t* index, > rec_t* rec, > > > > > > > mem_heap_t* heap); > > > > > >void >row_build_row_ref_in_tuple( > > dtuple_t* ref, > > dict_index_t* index, > rec_t* rec, > > > > > > trx_t* trx); > > > > >void >row_build_row_ref_from_row( > > dtuple_t* ref, > > > dict_table_t* table, > dtuple_t* row); > > > > > >static inline >void >row_build_row_ref_fast( > > dtuple_t* ref, > > const ulint* map, > > > rec_t* rec, > > > const ulint* offsets); > > > > >ulint >row_search_on_row_ref( > > > btr_pcur_t* pcur, > > ulint mode, > dict_table_t* table, > dtuple_t* ref, > mtr_t* mtr); > > > > >rec_t* >row_get_clust_rec( > > > ulint mode, > rec_t* rec, > dict_index_t* index, > dict_index_t** clust_index, > mtr_t* mtr); > > > >ulint >row_search_index_entry( > > > dict_index_t* index, > dtuple_t* entry, > ulint mode, > btr_pcur_t* pcur, > > mtr_t* mtr); ># 249 "./include/row0row.h" ># 1 "./include/row0row.ic" 1 ># 17 "./include/row0row.ic" >dulint >row_get_rec_sys_field( > > > ulint type, > rec_t* rec, > dict_index_t* index, > const ulint* offsets); > > > > >void >row_set_rec_sys_field( > > > ulint type, > rec_t* rec, > dict_index_t* index, > const ulint* offsets, > dulint val); > > > >static inline >dulint >row_get_rec_trx_id( > > > rec_t* rec, > dict_index_t* index, > const ulint* offsets) >{ > ulint offset; > > ; > ; > > offset = index->trx_id_offset; > > if (offset) { > return(trx_read_trx_id(rec + offset)); > } else { > return(row_get_rec_sys_field(1, > rec, index, offsets)); > } >} > > > >static inline >dulint >row_get_rec_roll_ptr( > > > rec_t* rec, > dict_index_t* index, > const ulint* offsets) >{ > ulint offset; > > ; > ; > > offset = index->trx_id_offset; > > if (offset) { > return(trx_read_roll_ptr(rec + offset + 6)); > } else { > return(row_get_rec_sys_field(2, > rec, index, offsets)); > } >} > > > >static inline >void >row_set_rec_trx_id( > > rec_t* rec, > dict_index_t* index, > const ulint* offsets, > dulint trx_id) >{ > ulint offset; > > ; > ; > > offset = index->trx_id_offset; > > if (offset) { > trx_write_trx_id(rec + offset, trx_id); > } else { > row_set_rec_sys_field(1, > rec, index, offsets, trx_id); > } >} > > > >static inline >void >row_set_rec_roll_ptr( > > rec_t* rec, > dict_index_t* index, > const ulint* offsets, > dulint roll_ptr) >{ > ulint offset; > > ; > ; > > offset = index->trx_id_offset; > > if (offset) { > trx_write_roll_ptr(rec + offset + 6, roll_ptr); > } else { > row_set_rec_sys_field(2, > rec, index, offsets, roll_ptr); > } >} > > > > >static inline >void >row_build_row_ref_fast( > > dtuple_t* ref, > > const ulint* map, > > > rec_t* rec, > > > const ulint* offsets) >{ > dfield_t* dfield; > unsigned char* field; > ulint len; > ulint ref_len; > ulint field_no; > ulint i; > > ; > ref_len = dtuple_get_n_fields(ref); > > for (i = 0; i < ref_len; i++) { > dfield = dtuple_get_nth_field(ref, i); > > field_no = *(map + i); > > if (field_no != ((ulint)(-1))) { > > field = rec_get_nth_field(rec, offsets, > field_no, &len); > dfield_set_data(dfield, field, len); > } > } >} ># 250 "./include/row0row.h" 2 ># 13 "./include/lock0lock.ic" 2 > > > > > ># 1 "./include/row0vers.h" 1 ># 26 "./include/row0vers.h" >trx_t* >row_vers_impl_x_locked_off_kernel( > > > > > rec_t* rec, > dict_index_t* index, > const ulint* offsets); > > > > >ulint >row_vers_must_preserve_del_marked( > > > dulint trx_id, > mtr_t* mtr); ># 53 "./include/row0vers.h" >ulint >row_vers_old_has_index_entry( > > > ulint also_curr, > > > rec_t* rec, > > mtr_t* mtr, > > dict_index_t* index, > dtuple_t* ientry); > > > > > >ulint >row_vers_build_for_consistent_read( > > > rec_t* rec, > > > > mtr_t* mtr, > > dict_index_t* index, > ulint** offsets, > > read_view_t* view, > mem_heap_t** offset_heap, > > mem_heap_t* in_heap, > > > > rec_t** old_vers); > > > > > ># 1 "./include/row0vers.ic" 1 ># 11 "./include/row0vers.ic" ># 1 "./include/read0read.h" 1 ># 24 "./include/read0read.h" >read_view_t* >read_view_open_now( > > > trx_t* cr_trx, > mem_heap_t* heap); > > > > >read_view_t* >read_view_oldest_copy_or_open_new( > > > trx_t* cr_trx, > mem_heap_t* heap); > > > >void >read_view_close( > > read_view_t* view); > > > > >void >read_view_close_for_mysql( > > trx_t* trx); > > >static inline >ulint >read_view_sees_trx_id( > > > read_view_t* view, > dulint trx_id); > > > >void >read_view_print( > > read_view_t* view); > > > > > >cursor_view_t* >read_cursor_view_create_for_mysql( > > trx_t* cr_trx); > > > > >void >read_cursor_view_close_for_mysql( > > trx_t* trx, > cursor_view_t* curview); > > > > > >void >read_cursor_set_for_mysql( > > trx_t* trx, > cursor_view_t* curview); > > > > >struct read_view_struct{ > ulint can_be_too_old; > > > > dulint low_limit_no; > > > > > dulint low_limit_id; > > dulint up_limit_id; > > ulint n_trx_ids; > dulint* trx_ids; > > > > > > trx_t* creator; > > struct { read_view_t * prev; read_view_t * next; } view_list; > >}; > > > > > >struct cursor_view_struct{ > mem_heap_t* heap; > > read_view_t* read_view; > > ulint n_mysql_tables_in_use; > > >}; > > ># 1 "./include/read0read.ic" 1 ># 11 "./include/read0read.ic" >static inline >dulint >read_view_get_nth_trx_id( > > > read_view_t* view, > ulint n) >{ > ; > > return(*(view->trx_ids + n)); >} > > > >static inline >void >read_view_set_nth_trx_id( > > read_view_t* view, > ulint n, > dulint trx_id) >{ > ; > > *(view->trx_ids + n) = trx_id; >} > > > >static inline >ulint >read_view_sees_trx_id( > > > read_view_t* view, > dulint trx_id) >{ > ulint n_ids; > int cmp; > ulint i; > > if (ut_dulint_cmp(trx_id, view->up_limit_id) < 0) { > > return((1)); > } > > if (ut_dulint_cmp(trx_id, view->low_limit_id) >= 0) { > > return((0)); > } > > > > > > > n_ids = view->n_trx_ids; > > for (i = 0; i < n_ids; i++) { > > cmp = ut_dulint_cmp(trx_id, > read_view_get_nth_trx_id(view, n_ids - i - 1)); > if (cmp <= 0) { > return(cmp < 0); > } > } > > return((1)); >} ># 146 "./include/read0read.h" 2 ># 12 "./include/row0vers.ic" 2 > ># 1 "./include/log0recv.h" 1 ># 16 "./include/log0recv.h" ># 1 "./include/log0log.h" 1 ># 17 "./include/log0log.h" >typedef struct log_struct log_t; >typedef struct log_group_struct log_group_t; ># 38 "./include/log0log.h" >void >log_fsp_current_free_limit_set_and_checkpoint( > > ulint limit); > > > >ulint >log_calc_where_lsn_is( > > > ib_longlong* log_file_offset, > > dulint first_header_lsn, > > dulint lsn, > > ulint n_log_files, > > ib_longlong log_file_size); > > > > >static inline >dulint >log_reserve_and_write_fast( > > > > unsigned char* str, > ulint len, > dulint* start_lsn, > ulint* success); > > >static inline >void >log_release(void); > > > > > > >static inline >void >log_free_check(void); > > > > > >dulint >log_reserve_and_open( > > > ulint len); > > > > >void >log_write_low( > > unsigned char* str, > ulint str_len); > > > >dulint >log_close(void); > > > > >static inline >dulint >log_get_lsn(void); > > > > > >void >log_init(void); > > > > >void >log_group_init( > > ulint id, > ulint n_files, > ulint file_size, > ulint space_id, > > > ulint archive_space_id); > > > > > > > >void >log_io_complete( > > log_group_t* group); > > > > >typedef enum { > LOG_WRITE_FROM_DIRTY_BUFFER, > LOG_WRITE_FROM_BACKGROUND_SYNC, > LOG_WRITE_FROM_BACKGROUND_ASYNC, > LOG_WRITE_FROM_INTERNAL, > LOG_WRITE_FROM_CHECKPOINT_SYNC, > LOG_WRITE_FROM_CHECKPOINT_ASYNC, > LOG_WRITE_FROM_LOG_ARCHIVE, > LOG_WRITE_FROM_COMMIT_SYNC, > LOG_WRITE_FROM_COMMIT_ASYNC, > LOG_WRITE_FROM_NUMBER >} log_sync_type; > > > > > > >void >log_write_up_to( > > dulint lsn, > > ulint wait, > > ulint flush_to_disk, > > log_sync_type caller); > > > >void >log_buffer_flush_to_disk(void); > > > > > >void >log_buffer_flush_maybe_sync(void); > > > > > > >ulint >log_preflush_pool_modified_pages( > > > > > dulint new_oldest, > > ulint sync); > > > > > > > >ulint >log_checkpoint( > > > > ulint sync, > > ulint write_always); ># 231 "./include/log0log.h" >void >log_make_checkpoint_at( > > dulint lsn, > > > ulint write_always); ># 249 "./include/log0log.h" >void >logs_empty_and_mark_files_at_shutdown(void); > > > > >void >log_group_read_checkpoint_info( > > log_group_t* group, > ulint field); > > > >void >log_checkpoint_get_nth_group_info( > > unsigned char* buf, > ulint n, > ulint* file_no, > ulint* offset); > > > >void >log_groups_write_checkpoint_info(void); > > > > > >void >log_reset_first_header_and_checkpoint( > > unsigned char* hdr_buf, > > dulint start); > > > > > >ulint >log_archive_do( > > > > ulint sync, > ulint* n_bytes); ># 306 "./include/log0log.h" >ulint >log_archive_stop(void); > > > > > >ulint >log_archive_start(void); > > > > > >ulint >log_archive_noarchivelog(void); > > > > > >ulint >log_archive_archivelog(void); > > > > > >void >log_archived_file_name_gen( > > char* buf, > ulint id, > ulint file_no); > > > > > > >void >log_check_margins(void); > > > > >void >log_group_read_log_seg( > > ulint type, > unsigned char* buf, > log_group_t* group, > dulint start_lsn, > dulint end_lsn); > > > >void >log_group_write_buf( > > log_group_t* group, > unsigned char* buf, > ulint len, > > dulint start_lsn, > > > ulint new_data_offset); ># 382 "./include/log0log.h" >void >log_group_set_fields( > > log_group_t* group, > dulint lsn); > > > > > >ulint >log_group_get_capacity( > > > log_group_t* group); > > >static inline >ulint >log_block_get_flush_bit( > > > > unsigned char* log_block); > > >static inline >ulint >log_block_get_hdr_no( > > > > unsigned char* log_block); > > >static inline >ulint >log_block_get_data_len( > > > > unsigned char* log_block); > > >static inline >void >log_block_set_data_len( > > unsigned char* log_block, > ulint len); > > >static inline >ulint >log_block_calc_checksum( > > > unsigned char* block); > > >static inline >ulint >log_block_get_checksum( > > > unsigned char* log_block); > > >static inline >void >log_block_set_checksum( > > unsigned char* log_block, > ulint checksum); > > >static inline >ulint >log_block_get_first_rec_group( > > > > unsigned char* log_block); > > >static inline >void >log_block_set_first_rec_group( > > unsigned char* log_block, > ulint offset); > > >static inline >ulint >log_block_get_checkpoint_no( > > > unsigned char* log_block); > > >static inline >void >log_block_init( > > unsigned char* log_block, > dulint lsn); > > > >static inline >void >log_block_init_in_old_format( > > unsigned char* log_block, > dulint lsn); > > >static inline >ulint >log_block_convert_lsn_to_no( > > > dulint lsn); > > > >void >log_print( > > FILE* file); > > > >ulint >log_peek_lsn( > > > > dulint* lsn); > > > >void >log_refresh_stats(void); > > >extern log_t* log_sys; ># 661 "./include/log0log.h" >struct log_group_struct{ > > ulint id; > ulint n_files; > ulint file_size; > > ulint space_id; > > ulint state; > > dulint lsn; > > ulint lsn_offset; > ulint n_pending_writes; > > unsigned char** file_header_bufs; > > > unsigned char** archive_file_header_bufs; > > ulint archive_space_id; > > ulint archived_file_no; > > ulint archived_offset; > > > > ulint next_archived_file_no; > > > > > > ulint next_archived_offset; > > dulint scanned_lsn; > > > unsigned char* checkpoint_buf; > > struct { log_group_t * prev; log_group_t * next; } > log_groups; >}; > >struct log_struct{ > unsigned char pad[64]; > > > dulint lsn; > ulint buf_free; > > ib_mutex_t mutex; > unsigned char* buf; > ulint buf_size; > ulint max_buf_free; > > > ulint old_buf_free; > > > dulint old_lsn; > > ulint check_flush_or_checkpoint; ># 733 "./include/log0log.h" > struct { ulint count; log_group_t * start; log_group_t * end; } > log_groups; > > > > ulint buf_next_to_write; > > > > > > > dulint written_to_some_lsn; > > > > > > dulint written_to_all_lsn; > > > > > > dulint write_lsn; > > ulint write_end_offset; > > > > dulint current_flush_lsn; > > dulint flushed_to_disk_lsn; > > > ulint n_pending_writes; > > ulint log_sync_callers[LOG_WRITE_FROM_NUMBER]; > > ulint log_sync_syncers[LOG_WRITE_FROM_NUMBER]; > > ulint n_syncs; > ulint n_checkpoints; > > > > > os_event_t no_flush_event; > > > > > > ulint one_flushed; > > > os_event_t one_flushed_event; ># 798 "./include/log0log.h" > ulint n_log_ios; > > ulint n_log_ios_old; > > time_t last_printout_time; > > > > ulint log_group_capacity; > > > > > ulint max_modified_age_async; > > > > > ulint max_modified_age_sync; > > > > > ulint adm_checkpoint_interval; > > > > > ulint max_checkpoint_age_async; > > > > ulint max_checkpoint_age; > > > > dulint next_checkpoint_no; > > dulint last_checkpoint_lsn; > > dulint next_checkpoint_lsn; > > ulint n_pending_checkpoint_writes; > > > rw_lock_t checkpoint_lock; > > > > unsigned char* checkpoint_buf; > > > ulint archiving_state; > > dulint archived_lsn; > > ulint max_archived_lsn_age_async; > > > > ulint max_archived_lsn_age; > > > dulint next_archived_lsn; > > > > > > ulint archiving_phase; > > ulint n_pending_archive_ios; > > > rw_lock_t archive_lock; > > > > ulint archive_buf_size; > unsigned char* archive_buf; > > os_event_t archiving_on; > > >}; ># 891 "./include/log0log.h" ># 1 "./include/log0log.ic" 1 ># 17 "./include/log0log.ic" >ulint >log_check_log_recs( > > unsigned char* buf, > > ulint len, > dulint buf_start_lsn); > > > >static inline >ulint >log_block_get_flush_bit( > > > > unsigned char* log_block) >{ > if (0x80000000UL > & mach_read_from_4(log_block + 0)) { > > return((1)); > } > > return((0)); >} > > > >static inline >void >log_block_set_flush_bit( > > unsigned char* log_block, > ulint val) >{ > ulint field; > > field = mach_read_from_4(log_block + 0); > > if (val) { > field = field | 0x80000000UL; > } else { > field = field & ~0x80000000UL; > } > > mach_write_to_4(log_block + 0, field); >} > > > >static inline >ulint >log_block_get_hdr_no( > > > > unsigned char* log_block) >{ > return(~0x80000000UL > & mach_read_from_4(log_block + 0)); >} > > > > >static inline >void >log_block_set_hdr_no( > > unsigned char* log_block, > ulint n) > >{ > ; > ; > > mach_write_to_4(log_block + 0, n); >} > > > >static inline >ulint >log_block_get_data_len( > > > > unsigned char* log_block) >{ > return(mach_read_from_2(log_block + 4)); >} > > > >static inline >void >log_block_set_data_len( > > unsigned char* log_block, > ulint len) >{ > mach_write_to_2(log_block + 4, len); >} > > > >static inline >ulint >log_block_get_first_rec_group( > > > > unsigned char* log_block) >{ > return(mach_read_from_2(log_block + 6)); >} > > > >static inline >void >log_block_set_first_rec_group( > > unsigned char* log_block, > ulint offset) >{ > mach_write_to_2(log_block + 6, offset); >} > > > >static inline >ulint >log_block_get_checkpoint_no( > > > unsigned char* log_block) >{ > return(mach_read_from_4(log_block + 8)); >} > > > >static inline >void >log_block_set_checkpoint_no( > > unsigned char* log_block, > dulint no) >{ > mach_write_to_4(log_block + 8, > ut_dulint_get_low(no)); >} > > > >static inline >ulint >log_block_convert_lsn_to_no( > > > dulint lsn) >{ > ulint no; > > no = ut_dulint_get_low(lsn) / 512; > no += (ut_dulint_get_high(lsn) % 512) > * 2 * (0x80000000UL / 512); > > no = no & 0x3FFFFFFFUL; > > return(no + 1); >} > > > >static inline >ulint >log_block_calc_checksum( > > > unsigned char* block) >{ > ulint sum; > ulint sh; > ulint i; > > sum = 1; > sh = 0; > > for (i = 0; i < 512 - 4; i++) { > sum = sum & 0x7FFFFFFFUL; > sum += (((ulint)(*(block + i))) << sh) + (ulint)(*(block + i)); > sh++; > if (sh > 24) { > sh = 0; > } > } > > return(sum); >} > > > >static inline >ulint >log_block_get_checksum( > > > unsigned char* log_block) >{ > return(mach_read_from_4(log_block + 512 > - 4)); >} > > > >static inline >void >log_block_set_checksum( > > unsigned char* log_block, > ulint checksum) >{ > mach_write_to_4(log_block + 512 > - 4, > checksum); >} > > > >static inline >void >log_block_init( > > unsigned char* log_block, > dulint lsn) >{ > ulint no; > > > > > > no = log_block_convert_lsn_to_no(lsn); > > log_block_set_hdr_no(log_block, no); > > log_block_set_data_len(log_block, 12); > log_block_set_first_rec_group(log_block, 0); >} > > > > >static inline >void >log_block_init_in_old_format( > > unsigned char* log_block, > dulint lsn) >{ > ulint no; > > > > > > no = log_block_convert_lsn_to_no(lsn); > > log_block_set_hdr_no(log_block, no); > mach_write_to_4(log_block + 512 > - 4, no); > log_block_set_data_len(log_block, 12); > log_block_set_first_rec_group(log_block, 0); >} > > > > >static inline >dulint >log_reserve_and_write_fast( > > > > unsigned char* str, > ulint len, > dulint* start_lsn, > ulint* success) >{ > log_t* log = log_sys; > ulint data_len; > dulint lsn; > > *success = (1); > > mutex_enter_func((&(log->mutex)), "./include/log0log.ic", 315); > > data_len = len + log->buf_free % 512; > > if (data_len >= 512 - 4) { > > > > > *success = (0); > > mutex_exit(&(log->mutex)); > > return(ut_dulint_zero); > } > > *start_lsn = log->lsn; > > ut_memcpy(log->buf + log->buf_free, str, len); > > log_block_set_data_len(ut_align_down(log->buf + log->buf_free, > 512), > data_len); > > > > > log->buf_free += len; > > ; > > lsn = ut_dulint_add(log->lsn, len); > > log->lsn = lsn; > > > > > > return(lsn); >} > > > >static inline >void >log_release(void) > >{ > mutex_exit(&(log_sys->mutex)); >} > > > >static inline >dulint >log_get_lsn(void) > > >{ > dulint lsn; > > mutex_enter_func((&(log_sys->mutex)), "./include/log0log.ic", 377); > > lsn = log_sys->lsn; > > mutex_exit(&(log_sys->mutex)); > > return(lsn); >} > > > > > > >static inline >void >log_free_check(void) > >{ > > > if (log_sys->check_flush_or_checkpoint) { > > log_check_margins(); > } >} ># 892 "./include/log0log.h" 2 ># 17 "./include/log0recv.h" 2 ># 25 "./include/log0recv.h" >ulint >recv_read_cp_info_for_backup( > > > unsigned char* hdr, > dulint* lsn, > ulint* offset, > ulint* fsp_limit, > > dulint* cp_no, > dulint* first_header_lsn); > > > > > >void >recv_scan_log_seg_for_backup( > > unsigned char* buf, > ulint buf_len, > dulint* scanned_lsn, > > ulint* scanned_checkpoint_no, > > > > ulint* n_bytes_scanned); > > > > >static inline >ulint >recv_recovery_is_on(void); > > > >static inline >ulint >recv_recovery_from_backup_is_on(void); > > > > > > >void >recv_recover_page( > > ulint recover_backup, > > > > ulint just_read_in, > > ib_page_t* page, > ulint space, > ulint page_no); > > > > > > >ulint >recv_recovery_from_checkpoint_start( > > > ulint type, > dulint limit_lsn, > dulint min_flushed_lsn, > dulint max_flushed_lsn); > > > >void >recv_recovery_from_checkpoint_finish(void); > > > > > >ulint >recv_scan_log_recs( > > > > ulint apply_automatically, > > > > > ulint available_memory, > > ulint store_to_hash, > > > unsigned char* buf, > > ulint len, > dulint start_lsn, > dulint* contiguous_lsn, > > dulint* group_scanned_lsn); > > > >void >recv_reset_logs( > > dulint lsn, > > > > > > ulint new_logs_created); ># 161 "./include/log0recv.h" >void >recv_sys_create(void); > > > > >void >recv_sys_init( > > ulint recover_from_backup, > > ulint available_memory); > > > > >void >recv_apply_hashed_log_recs( > > ulint allow_ibuf); ># 220 "./include/log0recv.h" >void >recv_compare_spaces( > > ulint space1, > ulint space2, > ulint n_pages); > > > > > > >void >recv_compare_spaces_low( > > ulint space1, > ulint space2, > ulint n_pages); > > >typedef struct recv_data_struct recv_data_t; >struct recv_data_struct{ > recv_data_t* next; > > > >}; > > >typedef struct recv_struct recv_t; >struct recv_struct{ > unsigned char type; > ulint len; > recv_data_t* data; > > dulint start_lsn; > > > > dulint end_lsn; > > > > struct { recv_t * prev; recv_t * next; } > rec_list; >}; > > >typedef struct recv_addr_struct recv_addr_t; >struct recv_addr_struct{ > ulint state; > > ulint space; > ulint page_no; > struct { ulint count; recv_t * start; recv_t * end; } > rec_list; > hash_node_t addr_hash; >}; > > >typedef struct recv_sys_struct recv_sys_t; >struct recv_sys_struct{ > ib_mutex_t mutex; > > > ulint apply_log_recs; > > > > > ulint apply_batch_on; > > > dulint lsn; > ulint last_log_buf_size; > > > unsigned char* last_block; > > > unsigned char* last_block_buf_start; > > > unsigned char* buf; > ulint len; > dulint parse_start_lsn; > > > > > dulint scanned_lsn; > > > ulint scanned_checkpoint_no; > > > ulint recovered_offset; > > > dulint recovered_lsn; > > > dulint limit_lsn; > > ulint found_corrupt_log; > > > > > log_group_t* archive_group; > > > mem_heap_t* heap; > > hash_table_t* addr_hash; > ulint n_addrs; > >}; > >extern recv_sys_t* recv_sys; >extern ulint recv_recovery_on; >extern ulint recv_no_ibuf_operations; >extern ulint recv_needed_recovery; > >extern ulint recv_lsn_checks_on; > > > >extern ulint recv_max_parsed_page_no; ># 369 "./include/log0recv.h" >extern ulint recv_n_pool_free_frames; > > ># 1 "./include/log0recv.ic" 1 ># 14 "./include/log0recv.ic" >extern ulint recv_recovery_from_backup_on; > > > >static inline >ulint >recv_recovery_is_on(void) > >{ > return(recv_recovery_on); >} > > > >static inline >ulint >recv_recovery_from_backup_is_on(void) > >{ > return(recv_recovery_from_backup_on); >} ># 373 "./include/log0recv.h" 2 ># 13 "./include/row0vers.ic" 2 ># 98 "./include/row0vers.h" 2 ># 19 "./include/lock0lock.ic" 2 ># 1 "./include/que0que.h" 1 ># 19 "./include/que0que.h" ># 1 "./include/row0types.h" 1 ># 12 "./include/row0types.h" >typedef struct plan_struct plan_t; > >typedef struct upd_struct upd_t; > >typedef struct upd_field_struct upd_field_t; > >typedef struct upd_node_struct upd_node_t; > >typedef struct del_node_struct del_node_t; > >typedef struct ins_node_struct ins_node_t; > >typedef struct sel_node_struct sel_node_t; > >typedef struct open_node_struct open_node_t; > >typedef struct fetch_node_struct fetch_node_t; > >typedef struct row_printf_node_struct row_printf_node_t; >typedef struct sel_buf_struct sel_buf_t; > >typedef struct undo_node_struct undo_node_t; > >typedef struct purge_node_struct purge_node_t; ># 20 "./include/que0que.h" 2 ># 1 "./include/pars0types.h" 1 ># 12 "./include/pars0types.h" >typedef struct sym_node_struct sym_node_t; >typedef struct sym_tab_struct sym_tab_t; >typedef struct pars_res_word_struct pars_res_word_t; >typedef struct func_node_struct func_node_t; >typedef struct order_node_struct order_node_t; >typedef struct proc_node_struct proc_node_t; >typedef struct elsif_node_struct elsif_node_t; >typedef struct if_node_struct if_node_t; >typedef struct while_node_struct while_node_t; >typedef struct for_node_struct for_node_t; >typedef struct return_node_struct return_node_t; >typedef struct assign_node_struct assign_node_t; >typedef struct col_assign_node_struct col_assign_node_t; > >typedef struct { ulint count; sym_node_t * start; sym_node_t * end; } sym_node_list_t; ># 21 "./include/que0que.h" 2 > > > >extern ulint que_trace_on; > > > > >void >que_graph_publish( > > que_t* graph, > sess_t* sess); > > > >que_fork_t* >que_fork_create( > > > que_t* graph, > > > que_node_t* parent, > ulint fork_type, > mem_heap_t* heap); > > >static inline >que_thr_t* >que_fork_get_first_thr( > > que_fork_t* fork); > > >static inline >que_node_t* >que_fork_get_child( > > que_fork_t* fork); > > >static inline >void >que_node_set_parent( > > que_node_t* node, > que_node_t* parent); > > > >que_thr_t* >que_thr_create( > > > que_fork_t* parent, > mem_heap_t* heap); > > > > > >ulint >que_graph_try_free( > > > que_t* graph); > > > > >void >que_graph_free_recursive( > > que_node_t* node); > > > >void >que_graph_free( > > que_t* graph); ># 112 "./include/que0que.h" >ulint >que_thr_stop( > > > que_thr_t* thr); > > > > >void >que_thr_move_to_run_state_for_mysql( > > que_thr_t* thr, > trx_t* trx); > > > > >void >que_thr_stop_for_mysql_no_error( > > que_thr_t* thr, > trx_t* trx); > > > > > > >void >que_thr_stop_for_mysql( > > que_thr_t* thr); > > > > > >void >que_run_threads( > > que_thr_t* thr); > > > > > >void >que_fork_error_handle( > > trx_t* trx, > que_t* fork); > > > > > >void >que_thr_handle_error( > > que_thr_t* thr, > ulint err_no, > unsigned char* err_str, > > > ulint err_len); > > > > > > >void >que_thr_end_wait( > > que_thr_t* thr, > > > > que_thr_t** next_thr); > > > > > > > >void >que_thr_end_wait_no_next_thr( > > que_thr_t* thr); ># 212 "./include/que0que.h" >que_thr_t* >que_fork_start_command( > > > > > > que_fork_t* fork); > > >static inline >trx_t* >thr_get_trx( > > que_thr_t* thr); > > >static inline >ulint >que_node_get_type( > > que_node_t* node); > > >static inline >dtype_t* >que_node_get_data_type( > > que_node_t* node); > > >static inline >dfield_t* >que_node_get_val( > > que_node_t* node); > > >static inline >ulint >que_node_get_val_buf_size( > > > > que_node_t* node); > > >static inline >void >que_node_set_val_buf_size( > > que_node_t* node, > ulint size); > > >static inline >que_node_t* >que_node_get_next( > > que_node_t* node); > > >static inline >que_node_t* >que_node_get_parent( > > > que_node_t* node); > > >static inline >que_node_t* >que_node_list_add_last( > > > que_node_t* node_list, > que_node_t* node); > > >static inline >ulint >que_node_list_get_len( > > > que_node_t* node_list); > > > >static inline >ulint >que_thr_peek_stop( > > > > > > > que_thr_t* thr); > > >static inline >ulint >que_graph_is_select( > > > que_t* graph); > > > >void >que_node_print_info( > > que_node_t* node); > > > > > >struct que_thr_struct{ > que_common_t common; > ulint magic_n; > > que_node_t* child; > que_t* graph; > ulint is_active; > > > > > ulint state; > struct { que_thr_t * prev; que_thr_t * next; } > thrs; > > struct { que_thr_t * prev; que_thr_t * next; } > trx_thrs; > > struct { que_thr_t * prev; que_thr_t * next; } > queue; > > > > > > que_node_t* run_node; > > > que_node_t* prev_node; > > ulint resource; > > ulint lock_state; > >}; > > > > > >struct que_fork_struct{ > que_common_t common; > que_t* graph; > ulint fork_type; > ulint n_active_thrs; > > > > > trx_t* trx; > > ulint state; > que_thr_t* caller; > > struct { ulint count; que_thr_t * start; que_thr_t * end; } > thrs; > > > sym_tab_t* sym_tab; > > > > > ulint cur_end; > > ulint cur_pos; > > > > > ulint cur_on_row; > > > dulint n_inserts; > dulint n_updates; > dulint n_deletes; > sel_node_t* last_sel_node; > > struct { que_fork_t * prev; que_fork_t * next; } > graphs; > > > mem_heap_t* heap; > > >}; ># 499 "./include/que0que.h" ># 1 "./include/que0que.ic" 1 ># 9 "./include/que0que.ic" ># 1 "./include/usr0sess.h" 1 ># 25 "./include/usr0sess.h" >sess_t* >sess_open(void); > > > > > > >ulint >sess_try_close( > > > sess_t* sess); > > >struct sess_struct{ > ulint state; > trx_t* trx; > > > > > struct { ulint count; que_t * start; que_t * end; } > graphs; > >}; > > > > > > > ># 1 "./include/usr0sess.ic" 1 ># 59 "./include/usr0sess.h" 2 ># 10 "./include/que0que.ic" 2 > > > >static inline >trx_t* >thr_get_trx( > > que_thr_t* thr) >{ > ; > > return(thr->graph->trx); >} > > > >static inline >que_thr_t* >que_fork_get_first_thr( > > que_fork_t* fork) >{ > return((fork->thrs).start); >} > > > >static inline >que_node_t* >que_fork_get_child( > > que_fork_t* fork) >{ > que_thr_t* thr; > > thr = (fork->thrs).start; > > return(thr->child); >} > > > >static inline >ulint >que_node_get_type( > > que_node_t* node) >{ > ; > > return(((que_common_t*)node)->type); >} > > > >static inline >dfield_t* >que_node_get_val( > > que_node_t* node) >{ > ; > > return(&(((que_common_t*)node)->val)); >} > > > >static inline >ulint >que_node_get_val_buf_size( > > > > que_node_t* node) >{ > ; > > return(((que_common_t*)node)->val_buf_size); >} > > > >static inline >void >que_node_set_val_buf_size( > > que_node_t* node, > ulint size) >{ > ; > > ((que_common_t*)node)->val_buf_size = size; >} > > > >static inline >void >que_node_set_parent( > > que_node_t* node, > que_node_t* parent) >{ > ; > > ((que_common_t*)node)->parent = parent; >} > > > >static inline >dtype_t* >que_node_get_data_type( > > que_node_t* node) >{ > ; > > return(&(((que_common_t*)node)->val.type)); >} > > > >static inline >que_node_t* >que_node_list_add_last( > > > que_node_t* node_list, > que_node_t* node) >{ > que_common_t* cnode; > que_common_t* cnode2; > > cnode = node; > > cnode->brother = ((void *)0); > > if (node_list == ((void *)0)) { > > return(node); > } > > cnode2 = node_list; > > while (cnode2->brother != ((void *)0)) { > cnode2 = cnode2->brother; > } > > cnode2->brother = node; > > return(node_list); >} > > > >static inline >que_node_t* >que_node_get_next( > > > que_node_t* node) >{ > return(((que_common_t*)node)->brother); >} > > > >static inline >ulint >que_node_list_get_len( > > > que_node_t* node_list) >{ > que_common_t* cnode; > ulint len; > > cnode = node_list; > len = 0; > > while (cnode != ((void *)0)) { > len++; > cnode = cnode->brother; > } > > return(len); >} > > > >static inline >que_node_t* >que_node_get_parent( > > > que_node_t* node) >{ > return(((que_common_t*)node)->parent); >} > > > > >static inline >ulint >que_thr_peek_stop( > > > > > > > que_thr_t* thr) >{ > trx_t* trx; > que_t* graph; > > graph = thr->graph; > trx = graph->trx; > > if (graph->state != 1 > || trx->que_state == 2 > || ((trx->signals).count > 0 > && trx->que_state == 1)) { > return((1)); > } > > return((0)); >} > > > >static inline >ulint >que_graph_is_select( > > > que_t* graph) >{ > if (graph->fork_type == 2 > || graph->fork_type == 1) { > > return((1)); > } > > return((0)); >} ># 500 "./include/que0que.h" 2 ># 20 "./include/lock0lock.ic" 2 ># 1 "./include/btr0cur.h" 1 ># 19 "./include/btr0cur.h" ># 1 "./include/ha0ha.h" 1 ># 19 "./include/ha0ha.h" >static inline >void* >ha_search_and_get_data( > > > > > hash_table_t* table, > ulint fold); > > > > >void >ha_search_and_update_if_found( > > hash_table_t* table, > ulint fold, > void* data, > void* new_data); > > > > >hash_table_t* >ha_create( > > > ulint in_btr_search, > > ulint n, > ulint n_mutexes, > > ulint mutex_level); > > > > > > >ulint >ha_insert_for_fold( > > > > hash_table_t* table, > ulint fold, > > > > void* data); > > > >static inline >ulint >ha_insert_for_fold_mutex( > > > > hash_table_t* table, > ulint fold, > > > > void* data); > > > >void >ha_delete( > > hash_table_t* table, > ulint fold, > void* data); > > > > >static inline >ulint >ha_search_and_delete_if_found( > > > hash_table_t* table, > ulint fold, > void* data); > > > > >void >ha_remove_all_nodes_to_page( > > hash_table_t* table, > ulint fold, > ib_page_t* page); > > > >ulint >ha_validate( > > > hash_table_t* table, > ulint start_index, > ulint end_index); > > > >void >ha_print_info( > > FILE* file, > hash_table_t* table); > > > >typedef struct ha_node_struct ha_node_t; >struct ha_node_struct { > ha_node_t* next; > void* data; > ulint fold; >}; > > ># 1 "./include/ha0ha.ic" 1 ># 15 "./include/ha0ha.ic" >void >ha_delete_hash_node( > > hash_table_t* table, > ha_node_t* del_node); > > > >static inline >void* >ha_node_get_data( > > > ha_node_t* node) >{ > return(node->data); >} > > > >static inline >void >ha_node_set_data( > > ha_node_t* node, > void* data) >{ > node->data = data; >} > > > >static inline >ha_node_t* >ha_chain_get_next( > > > ha_node_t* node) >{ > return(node->next); >} > > > >static inline >ha_node_t* >ha_chain_get_first( > > > hash_table_t* table, > ulint fold) >{ > return(hash_get_nth_cell(table, hash_calc_hash(fold, table))->node); >} > > > >static inline >ha_node_t* >ha_search( > > > > > hash_table_t* table, > ulint fold) >{ > ha_node_t* node; > > > > > > node = ha_chain_get_first(table, fold); > > while (node) { > if (node->fold == fold) { > > return(node); > } > > node = ha_chain_get_next(node); > } > > return(((void *)0)); >} > > > >static inline >void* >ha_search_and_get_data( > > > > > hash_table_t* table, > ulint fold) >{ > ha_node_t* node; > > > > > > node = ha_chain_get_first(table, fold); > > while (node) { > if (node->fold == fold) { > > return(node->data); > } > > node = ha_chain_get_next(node); > } > > return(((void *)0)); >} > > > >static inline >ha_node_t* >ha_search_with_data( > > > > hash_table_t* table, > ulint fold, > void* data) >{ > ha_node_t* node; > > > > > > node = ha_chain_get_first(table, fold); > > while (node) { > if (node->data == data) { > > return(node); > } > > node = ha_chain_get_next(node); > } > > return(((void *)0)); >} > > > > >static inline >ulint >ha_search_and_delete_if_found( > > > hash_table_t* table, > ulint fold, > void* data) >{ > ha_node_t* node; > > > > > > node = ha_search_with_data(table, fold, data); > > if (node) { > ha_delete_hash_node(table, node); > > return((1)); > } > > return((0)); >} > > > > >static inline >ulint >ha_insert_for_fold_mutex( > > > > hash_table_t* table, > ulint fold, > > > > void* data) >{ > ulint ret; > > hash_mutex_enter(table, fold); > > ret = ha_insert_for_fold(table, fold, data); > > hash_mutex_exit(table, fold); > > return(ret); >} ># 146 "./include/ha0ha.h" 2 ># 20 "./include/btr0cur.h" 2 ># 32 "./include/btr0cur.h" >static inline >page_cur_t* >btr_cur_get_page_cur( > > > btr_cur_t* cursor); > > >static inline >rec_t* >btr_cur_get_rec( > > > btr_cur_t* cursor); > > >static inline >void >btr_cur_invalidate( > > btr_cur_t* cursor); > > >static inline >ib_page_t* >btr_cur_get_page( > > > btr_cur_t* cursor); > > >static inline >dict_tree_t* >btr_cur_get_tree( > > > btr_cur_t* cursor); > > >static inline >void >btr_cur_position( > > dict_index_t* index, > rec_t* rec, > btr_cur_t* cursor); ># 86 "./include/btr0cur.h" >void >btr_cur_search_to_nth_level( > > dict_index_t* index, > ulint level, > dtuple_t* tuple, > > > ulint mode, > > > > > > > ulint latch_mode, ># 111 "./include/btr0cur.h" > btr_cur_t* cursor, > > ulint has_search_latch, > > > mtr_t* mtr); > > > >void >btr_cur_open_at_index_side( > > ulint from_left, > > dict_index_t* index, > ulint latch_mode, > btr_cur_t* cursor, > mtr_t* mtr); > > > >void >btr_cur_open_at_rnd_pos( > > dict_index_t* index, > ulint latch_mode, > btr_cur_t* cursor, > mtr_t* mtr); > > > > > > > >ulint >btr_cur_optimistic_insert( > > > > ulint flags, > > > btr_cur_t* cursor, > > dtuple_t* entry, > rec_t** rec, > > big_rec_t** big_rec, > > > que_thr_t* thr, > mtr_t* mtr); > > > > > > >ulint >btr_cur_pessimistic_insert( > > > ulint flags, > > > > > > btr_cur_t* cursor, > > dtuple_t* entry, > rec_t** rec, > > big_rec_t** big_rec, > > > que_thr_t* thr, > mtr_t* mtr); > > > >ulint >btr_cur_update_in_place( > > > ulint flags, > btr_cur_t* cursor, > > > upd_t* update, > ulint cmpl_info, > > que_thr_t* thr, > mtr_t* mtr); > > > > > > >ulint >btr_cur_optimistic_update( > > > > > ulint flags, > btr_cur_t* cursor, > > > upd_t* update, > > ulint cmpl_info, > > que_thr_t* thr, > mtr_t* mtr); > > > > > > >ulint >btr_cur_pessimistic_update( > > > ulint flags, > > btr_cur_t* cursor, > big_rec_t** big_rec, > > upd_t* update, > > > ulint cmpl_info, > > que_thr_t* thr, > mtr_t* mtr); > > > > > > >ulint >btr_cur_del_mark_set_clust_rec( > > > > ulint flags, > btr_cur_t* cursor, > ulint val, > que_thr_t* thr, > mtr_t* mtr); > > > >ulint >btr_cur_del_mark_set_sec_rec( > > > > ulint flags, > btr_cur_t* cursor, > ulint val, > que_thr_t* thr, > mtr_t* mtr); > > > > >void >btr_cur_del_unmark_for_ibuf( > > rec_t* rec, > mtr_t* mtr); > > > > > > > >void >btr_cur_compress( > > btr_cur_t* cursor, > > mtr_t* mtr); > > > > > > > >ulint >btr_cur_compress_if_useful( > > > btr_cur_t* cursor, > > > mtr_t* mtr); > > > > > >ulint >btr_cur_optimistic_delete( > > > > btr_cur_t* cursor, > > > > mtr_t* mtr); ># 339 "./include/btr0cur.h" >ulint >btr_cur_pessimistic_delete( > > > ulint* err, > > > > > ulint has_reserved_extents, > > > > btr_cur_t* cursor, > > > > ulint in_rollback, > mtr_t* mtr); > > > >unsigned char* >btr_cur_parse_update_in_place( > > > unsigned char* ptr, > unsigned char* end_ptr, > ib_page_t* page, > dict_index_t* index); > > > > >unsigned char* >btr_cur_parse_del_mark_set_clust_rec( > > > unsigned char* ptr, > unsigned char* end_ptr, > dict_index_t* index, > ib_page_t* page); > > > > >unsigned char* >btr_cur_parse_del_mark_set_sec_rec( > > > unsigned char* ptr, > unsigned char* end_ptr, > ib_page_t* page); > > > >ib_longlong >btr_estimate_n_rows_in_range( > > > dict_index_t* index, > dtuple_t* tuple1, > ulint mode1, > dtuple_t* tuple2, > ulint mode2); > > > > > >void >btr_estimate_number_of_different_key_vals( > > dict_index_t* index); > > > > > > >void >btr_cur_mark_extern_inherited_fields( > > rec_t* rec, > const ulint* offsets, > upd_t* update, > mtr_t* mtr); > > > > > >void >btr_cur_mark_dtuple_inherited_extern( > > dtuple_t* entry, > > ulint* ext_vec, > > ulint n_ext_vec, > upd_t* update); > > > >void >btr_cur_unmark_dtuple_extern_fields( > > dtuple_t* entry, > ulint* ext_vec, > > ulint n_ext_vec); > > > > > >ulint >btr_store_big_rec_extern_fields( > > > dict_index_t* index, > > rec_t* rec, > const ulint* offsets, > > > > big_rec_t* big_rec_vec, > > mtr_t* local_mtr); > > > > > > > >void >btr_free_externally_stored_field( > > dict_index_t* index, > > > > > > > > unsigned char* data, > > > ulint local_len, > ulint do_not_free_inherited, > > > mtr_t* local_mtr); > > > > > >void >btr_rec_free_externally_stored_fields( > > dict_index_t* index, > > rec_t* rec, > const ulint* offsets, > ulint do_not_free_inherited, > > > mtr_t* mtr); > > > > > >unsigned char* >btr_rec_copy_externally_stored_field( > > > rec_t* rec, > const ulint* offsets, > ulint no, > ulint* len, > mem_heap_t* heap); > > > > > > >unsigned char* >btr_copy_externally_stored_field( > > > ulint* len, > unsigned char* data, > > > ulint local_len, > mem_heap_t* heap); > > > > > > > >ulint >btr_push_update_extern_fields( > > > ulint* ext_vect, > > const ulint* offsets, > upd_t* update); ># 568 "./include/btr0cur.h" >typedef struct btr_path_struct btr_path_t; >struct btr_path_struct{ > ulint nth_rec; > > > > > ulint n_recs; >}; > > > > > > >struct btr_cur_struct { > dict_index_t* index; > page_cur_t page_cur; > ib_page_t* left_page; > > > > que_thr_t* thr; > > > > > > > > ulint flag; > > > ulint tree_height; > > > ulint up_match; ># 618 "./include/btr0cur.h" > ulint up_bytes; > > > > ulint low_match; > > > > > > > > ulint low_bytes; > > > > ulint n_fields; > > ulint n_bytes; > > ulint fold; > > > btr_path_t* path_arr; > > > >}; ># 695 "./include/btr0cur.h" >extern ulint btr_cur_n_non_sea; >extern ulint btr_cur_n_sea; >extern ulint btr_cur_n_non_sea_old; >extern ulint btr_cur_n_sea_old; > > > >void innobase_mysql_thd_init_innodb_scan_cont(); >void innobase_mysql_thd_increment_innodb_scan_cont(ulong length); >void innobase_mysql_thd_init_innodb_scan_jump(); >void innobase_mysql_thd_increment_innodb_scan_jump(ulong length); >void innobase_mysql_thd_init_innodb_scan_data(); >void innobase_mysql_thd_increment_innodb_scan_data(ulong length); >void innobase_mysql_thd_init_innodb_scan_garbage(); >void innobase_mysql_thd_increment_innodb_scan_garbage(ulong length); > > ># 1 "./include/btr0cur.ic" 1 ># 9 "./include/btr0cur.ic" ># 1 "./include/btr0btr.h" 1 ># 10 "./include/btr0cur.ic" 2 > > > >static inline >page_cur_t* >btr_cur_get_page_cur( > > > btr_cur_t* cursor) >{ > return(&(cursor->page_cur)); >} > > > >static inline >rec_t* >btr_cur_get_rec( > > > btr_cur_t* cursor) >{ > return(page_cur_get_rec(&(cursor->page_cur))); >} > > > >static inline >void >btr_cur_invalidate( > > btr_cur_t* cursor) >{ > page_cur_invalidate(&(cursor->page_cur)); >} > > > >static inline >ib_page_t* >btr_cur_get_page( > > > btr_cur_t* cursor) >{ > return(buf_frame_align(page_cur_get_rec(&(cursor->page_cur)))); >} > > > >static inline >dict_tree_t* >btr_cur_get_tree( > > > btr_cur_t* cursor) >{ > return((cursor->index)->tree); >} > > > >static inline >void >btr_cur_position( > > dict_index_t* index, > rec_t* rec, > btr_cur_t* cursor) >{ > page_cur_position(rec, btr_cur_get_page_cur(cursor)); > > cursor->index = index; >} > > > > >static inline >ulint >btr_cur_compress_recommendation( > > > btr_cur_t* cursor, > mtr_t* mtr) >{ > ib_page_t* page; > > ; > > > > page = btr_cur_get_page(cursor); > > if ((page_get_data_size(page) < ((2 * 8192) / 2)) > || ((btr_page_get_next(page, mtr) == 0xFFFFFFFF) > && (btr_page_get_prev(page, mtr) == 0xFFFFFFFF))) { > > > > > > > if (dict_tree_get_page((cursor->index)->tree) > == buf_frame_get_page_no(page)) { > > > > return((0)); > } > > return((1)); > } > > return((0)); >} > > > > >static inline >ulint >btr_cur_can_delete_without_compress( > > > > btr_cur_t* cursor, > ulint rec_size, > mtr_t* mtr) >{ > ib_page_t* page; > > ; > > > > page = btr_cur_get_page(cursor); > > if ((page_get_data_size(page) - rec_size < ((2 * 8192) / 2)) > || ((btr_page_get_next(page, mtr) == 0xFFFFFFFF) > && (btr_page_get_prev(page, mtr) == 0xFFFFFFFF)) > || (page_get_n_recs(page) < 2)) { > > > > > > > if (dict_tree_get_page((cursor->index)->tree) > == buf_frame_get_page_no(page)) { > > > > return((1)); > } > > return((0)); > } > > return((1)); >} ># 713 "./include/btr0cur.h" 2 ># 21 "./include/lock0lock.ic" 2 > > > > > > >static inline >ulint >lock_rec_fold( > > > ulint space, > ulint page_no) >{ > return(ut_fold_ulint_pair(space, page_no)); >} > > > > >static inline >ulint >lock_rec_hash( > > > ulint space, > ulint page_no) >{ > return(hash_calc_hash(lock_rec_fold(space, page_no), > lock_sys->rec_hash)); >} > > > > >static inline >trx_t* >lock_clust_rec_some_has_impl( > > > > rec_t* rec, > dict_index_t* index, > const ulint* offsets) >{ > dulint trx_id; > > > > > ; > ; > > trx_id = row_get_rec_trx_id(rec, index, offsets); > > if (trx_is_active(trx_id)) { > > > return(trx_get_on_id(trx_id)); > } > > return(((void *)0)); >} ># 679 "./include/lock0lock.h" 2 ># 33 "buf/buf0buf.c" 2 ># 1 "./include/btr0sea.h" 1 ># 23 "./include/btr0sea.h" >void >btr_search_sys_create( > > ulint hash_size); > > >static inline >btr_search_t* >btr_search_get_info( > > > dict_index_t* index); > > > >btr_search_t* >btr_search_info_create( > > > mem_heap_t* heap); > > > >ulint >btr_search_info_get_ref_count( > > > btr_search_t* info); > > >static inline >void >btr_search_info_update( > > dict_index_t* index, > btr_cur_t* cursor); > > > > > > >ulint >btr_search_guess_on_hash( > > > dict_index_t* index, > btr_search_t* info, > dtuple_t* tuple, > ulint mode, > ulint latch_mode, > btr_cur_t* cursor, > ulint has_search_latch, > > > mtr_t* mtr); > > > > > > >void >btr_search_move_or_delete_hash_entries( > > ib_page_t* new_page, > > ib_page_t* page, > dict_index_t* index); > > > >void >btr_search_drop_page_hash_index( > > ib_page_t* page); > > > > >void >btr_search_drop_page_hash_when_freed( > > ulint space, > ulint page_no); > > > >void >btr_search_update_hash_node_on_insert( > > btr_cur_t* cursor); > > > > > > >void >btr_search_update_hash_on_insert( > > btr_cur_t* cursor); > > > > > > >void >btr_search_update_hash_on_delete( > > btr_cur_t* cursor); > > > > > >ulint >btr_search_validate(void); ># 153 "./include/btr0sea.h" >struct btr_search_struct{ > ulint magic_n; > ulint ref_count; > > > > > > > > rec_t* last_search; > > ulint n_direction; > > ulint direction; > > > dulint modify_clock; > > > > > > ib_page_t* root_guess; > > ulint hash_analysis; > > > ulint last_hash_succ; > > > > > ulint n_hash_potential; > > > > ulint n_fields; > > ulint n_bytes; > > ulint side; > > > > > > ulint n_hash_succ; > > ulint n_hash_fail; > ulint n_patt_succ; > > ulint n_searches; >}; > > > > > >typedef struct btr_search_sys_struct btr_search_sys_t; > >struct btr_search_sys_struct{ > hash_table_t* hash_index; >}; > >extern btr_search_sys_t* btr_search_sys; ># 232 "./include/btr0sea.h" >extern rw_lock_t* btr_search_latch_temp; > > > > > > >extern ulint btr_search_n_hash_fail; ># 267 "./include/btr0sea.h" ># 1 "./include/btr0sea.ic" 1 ># 16 "./include/btr0sea.ic" >void >btr_search_info_update_slow( > > btr_search_t* info, > btr_cur_t* cursor); > > > >static inline >btr_search_t* >btr_search_get_info( > > > dict_index_t* index) >{ > ; > > return(index->search_info); >} > > > >static inline >void >btr_search_info_update( > > dict_index_t* index, > btr_cur_t* cursor) >{ > btr_search_t* info; > > > > > > > info = btr_search_get_info(index); > > info->hash_analysis++; > > if (info->hash_analysis < 17) { > > > > return; > > } > > ; > > btr_search_info_update_slow(info, cursor); >} ># 268 "./include/btr0sea.h" 2 ># 34 "buf/buf0buf.c" 2 ># 1 "./include/ibuf0ibuf.h" 1 ># 21 "./include/ibuf0ibuf.h" >extern ibuf_t* ibuf; > > > > > > > >ibuf_data_t* >ibuf_data_init_for_space( > > > > ulint space); > > > > >void >ibuf_init_at_db_start(void); > > > > > >void >ibuf_update_max_tablespace_id(void); > > > > >void >ibuf_bitmap_page_init( > > ib_page_t* page, > mtr_t* mtr); > > > > > > >void >ibuf_reset_free_bits_with_type( > > ulint type, > ib_page_t* page); ># 76 "./include/ibuf0ibuf.h" >void >ibuf_reset_free_bits( > > dict_index_t* index, > ib_page_t* page); > > > > > > > >static inline >void >ibuf_update_free_bits_if_full( > > dict_index_t* index, > ib_page_t* page, > > > > > ulint max_ins_size, > > > ulint increase); > > > > > > > >void >ibuf_update_free_bits_low( > > dict_index_t* index, > ib_page_t* page, > ulint max_ins_size, > > > mtr_t* mtr); > > > > > >void >ibuf_update_free_bits_for_two_pages_low( > > dict_index_t* index, > ib_page_t* page1, > ib_page_t* page2, > mtr_t* mtr); > > > >static inline >ulint >ibuf_should_try( > > dict_index_t* index, > ulint ignore_sec_unique); > > > > > > > >ulint >ibuf_inside(void); > > > > > >static inline >ulint >ibuf_bitmap_page( > > > ulint page_no); > > > >ulint >ibuf_page( > > > ulint space, > ulint page_no); > > > >ulint >ibuf_page_low( > > > ulint space, > ulint page_no, > mtr_t* mtr); > > > > > > > >void >ibuf_free_excess_pages( > > ulint space); > > > > > >ulint >ibuf_insert( > > > dtuple_t* entry, > dict_index_t* index, > ulint space, > ulint page_no, > que_thr_t* thr); ># 211 "./include/ibuf0ibuf.h" >void >ibuf_merge_or_delete_for_page( > > ib_page_t* page, > > ulint space, > ulint page_no, > ulint update_ibuf_bitmap); ># 228 "./include/ibuf0ibuf.h" >void >ibuf_delete_for_discarded_space( > > ulint space); > > > >ulint >ibuf_contract( > > > > > ulint sync); > > > > > >ulint >ibuf_contract_for_n_pages( > > > > > ulint sync, > > > ulint n_pages); > > > > > >unsigned char* >ibuf_parse_bitmap_init( > > > unsigned char* ptr, > unsigned char* end_ptr, > ib_page_t* page, > mtr_t* mtr); > > > >ulint >ibuf_count_get( > > > > ulint space, > ulint page_no); > > > >ulint >ibuf_is_empty(void); > > > > > >void >ibuf_print( > > FILE* file); ># 304 "./include/ibuf0ibuf.h" ># 1 "./include/ibuf0ibuf.ic" 1 ># 12 "./include/ibuf0ibuf.ic" >extern ulint ibuf_flush_count; ># 21 "./include/ibuf0ibuf.ic" >struct ibuf_data_struct{ > ulint space; > ulint seg_size; > > ulint size; > ulint empty; > > > > ulint free_list_len; > > ulint height; > dict_index_t* index; > struct { ibuf_data_t * prev; ibuf_data_t * next; } data_list; > > ulint n_inserts; > > ulint n_merges; > ulint n_merged_recs; >}; > > > > > >struct ibuf_struct{ > ulint size; > > ulint max_size; > > ulint meter; > > > > struct { ulint count; ibuf_data_t * start; ibuf_data_t * end; } data_list; > > >}; > > > > > > > >void >ibuf_set_free_bits( > > ulint type, > ib_page_t* page, > > ulint val, > ulint max_val); > > > > > > >static inline >ulint >ibuf_should_try( > > dict_index_t* index, > ulint ignore_sec_unique) > > > >{ > if (!(index->type & 1) > && (ignore_sec_unique || !(index->type & 2)) > && ibuf->meter > 50) { > > ibuf_flush_count++; > > if (ibuf_flush_count % 8 == 0) { > > buf_LRU_try_free_flushed_blocks(); > } > > return((1)); > } > > return((0)); >} > > > >static inline >ulint >ibuf_bitmap_page( > > > ulint page_no) >{ > if (page_no % (2 * 8192) == 1) { > > return((1)); > } > > return((0)); >} > > > >static inline >ulint >ibuf_index_page_calc_free_bits( > > > ulint max_ins_size) > >{ > ulint n; > > n = max_ins_size / ((2 * 8192) / 32); > > if (n == 3) { > n = 2; > } > > if (n > 3) { > n = 3; > } > > return(n); >} > > > >static inline >ulint >ibuf_index_page_calc_free_from_bits( > > > > ulint bits) >{ > ; > > if (bits == 3) { > return(4 * (2 * 8192) / 32); > } > > return(bits * (2 * 8192) / 32); >} > > > >static inline >ulint >ibuf_index_page_calc_free( > > > ib_page_t* page) >{ > return(ibuf_index_page_calc_free_bits( > page_get_max_insert_size_after_reorganize(page, 1))); >} > > > > > > >static inline >void >ibuf_update_free_bits_if_full( > > dict_index_t* index, > ib_page_t* page, > > > > > ulint max_ins_size, > > > ulint increase) > > >{ > ulint before; > ulint after; > > before = ibuf_index_page_calc_free_bits(max_ins_size); > > if (max_ins_size >= increase) { > ; > > after = ibuf_index_page_calc_free_bits(max_ins_size > - increase); > > > > } else { > after = ibuf_index_page_calc_free(page); > } > > if (after == 0) { > > > > > > buf_page_make_young(page); > } > > if (before > after) { > ibuf_set_free_bits(index->type, page, after, before); > } >} ># 305 "./include/ibuf0ibuf.h" 2 ># 35 "buf/buf0buf.c" 2 ># 1 "./include/dict0dict.h" 1 ># 36 "buf/buf0buf.c" 2 ># 1 "./include/log0recv.h" 1 ># 37 "buf/buf0buf.c" 2 ># 1 "./include/log0log.h" 1 ># 38 "buf/buf0buf.c" 2 ># 1 "./include/trx0undo.h" 1 ># 39 "buf/buf0buf.c" 2 ># 1 "./include/srv0srv.h" 1 ># 40 "buf/buf0buf.c" 2 ># 1 "./include/trx0trx.h" 1 ># 41 "buf/buf0buf.c" 2 > > >trx_t* innobase_get_trx(); ># 229 "buf/buf0buf.c" >static const int WAIT_FOR_READ = 20000; > >buf_pool_t* buf_pool = ((void *)0); ># 246 "buf/buf0buf.c" >ulint >buf_calc_page_new_checksum( > > > unsigned char* page) >{ > ulint checksum; ># 262 "buf/buf0buf.c" > checksum = ut_fold_binary(page + 4, > 26 - 4) > + ut_fold_binary(page + 38, > (2 * 8192) - 38 > - 8); > checksum = checksum & 0xFFFFFFFFUL; > > return(checksum); >} ># 280 "buf/buf0buf.c" >ulint >buf_calc_page_old_checksum( > > > unsigned char* page) >{ > ulint checksum; > > checksum = ut_fold_binary(page, 26); > > checksum = checksum & 0xFFFFFFFFUL; > > return(checksum); >} > > > > >ulint >buf_page_is_corrupted( > > > unsigned char* read_buf) >{ > ulint checksum; > ulint old_checksum; > ulint checksum_field; > ulint old_checksum_field; > > dulint current_lsn; > > if (mach_read_from_4(read_buf + 16 + 4) > != mach_read_from_4(read_buf + (2 * 8192) > - 8 + 4)) { > > > > > return((1)); > } > > > if (recv_lsn_checks_on && log_peek_lsn(¤t_lsn)) { > if (ut_dulint_cmp(current_lsn, > mach_read_from_8(read_buf + 16)) > < 0) { > ut_print_timestamp(stderr); > > fprintf(stderr, >" InnoDB: Error: page %lu log sequence number %lu %lu\n" >"InnoDB: is in the future! Current system log sequence number %lu %lu.\n" >"InnoDB: Your database may be corrupt or you may have copied the InnoDB\n" >"InnoDB: tablespace but not the InnoDB log files. See\n" >"InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html\n" >"InnoDB: for more information.\n", > (ulong) mach_read_from_4(read_buf + 4), > (ulong) ut_dulint_get_high( > mach_read_from_8(read_buf + 16)), > (ulong) ut_dulint_get_low( > mach_read_from_8(read_buf + 16)), > (ulong) ut_dulint_get_high(current_lsn), > (ulong) ut_dulint_get_low(current_lsn)); > } > } > > > > > > > > if (srv_use_checksums) { > old_checksum = buf_calc_page_old_checksum(read_buf); > > old_checksum_field = mach_read_from_4(read_buf + (2 * 8192) > - 8); > > > > > > > if (old_checksum_field != mach_read_from_4(read_buf + 16) > && old_checksum_field != old_checksum > && old_checksum_field != 0xDEADBEEFUL) { > > return((1)); > } > > checksum = buf_calc_page_new_checksum(read_buf); > checksum_field = mach_read_from_4(read_buf + 0); > > > > > if (checksum_field != 0 && checksum_field != checksum > && checksum_field != 0xDEADBEEFUL) { > > return((1)); > } > } > > return((0)); >} > > > > >void >buf_page_print( > > unsigned char* read_buf) >{ > dict_index_t* index; > ulint checksum; > ulint old_checksum; > > ut_print_timestamp(stderr); > fprintf(stderr, " InnoDB: Page dump in ascii and hex (%lu bytes):\n", > (ulint)(2 * 8192)); > ut_print_buf(stderr, read_buf, (2 * 8192)); > fputs("InnoDB: End of page dump\n", stderr); > > checksum = srv_use_checksums ? > buf_calc_page_new_checksum(read_buf) : 0xDEADBEEFUL; > old_checksum = srv_use_checksums ? > buf_calc_page_old_checksum(read_buf) : 0xDEADBEEFUL; > > ut_print_timestamp(stderr); > fprintf(stderr, >" InnoDB: Page checksum %lu, prior-to-4.0.14-form checksum %lu\n" >"InnoDB: stored checksum %lu, prior-to-4.0.14-form stored checksum %lu\n", > (ulong) checksum, (ulong) old_checksum, > (ulong) mach_read_from_4(read_buf + 0), > (ulong) mach_read_from_4(read_buf + (2 * 8192) > - 8)); > fprintf(stderr, >"InnoDB: Page lsn %lu %lu, low 4 bytes of lsn at page end %lu\n" >"InnoDB: Page number (if stored to page already) %lu,\n" >"InnoDB: space id (if created with >= MySQL-4.1.1 and stored already) %lu\n", > (ulong) mach_read_from_4(read_buf + 16), > (ulong) mach_read_from_4(read_buf + 16 + 4), > (ulong) mach_read_from_4(read_buf + (2 * 8192) > - 8 + 4), > (ulong) mach_read_from_4(read_buf + 4), > (ulong) mach_read_from_4(read_buf + 34)); > > if (mach_read_from_2(read_buf + 38 + 0) > == 1) { > fprintf(stderr, > "InnoDB: Page may be an insert undo log page\n"); > } else if (mach_read_from_2(read_buf + 38 > + 0) > == 2) { > fprintf(stderr, > "InnoDB: Page may be an update undo log page\n"); > } > > if (fil_page_get_type(read_buf) == 17855) { > fprintf(stderr, >"InnoDB: Page may be an index page where index id is %lu %lu\n", > (ulong) ut_dulint_get_high(btr_page_get_index_id(read_buf)), > (ulong) ut_dulint_get_low(btr_page_get_index_id(read_buf))); > > > > > if (dict_sys != ((void *)0)) { > > index = dict_index_find_on_id_low( > btr_page_get_index_id(read_buf)); > if (index) { > fputs("InnoDB: (", stderr); > dict_index_name_print(stderr, ((void *)0), index); > fputs(")\n", stderr); > } > } > } else if (fil_page_get_type(read_buf) == 3) { > fputs("InnoDB: Page may be an 'inode' page\n", stderr); > } else if (fil_page_get_type(read_buf) == 4) { > fputs("InnoDB: Page may be an insert buffer free list page\n", > stderr); > } >} > > > >static >void >buf_block_init( > > buf_block_t* block, > unsigned char* frame) > >{ > block->magic_n = 0; > > block->state = 211; > > block->frame = frame; > > block->awe_info = ((void *)0); > > block->buf_fix_count = 0; > block->io_fix = 0; > > block->modify_clock = ut_dulint_zero; > > block->file_page_was_freed = (0); > > block->check_index_page_at_flush = (0); > block->index = ((void *)0); > > block->in_free_list = (0); > block->in_LRU_list = (0); > > block->n_pointers = 0; > > mutex_create_func((&block->mutex), "buf/buf0buf.c", 498); > mutex_set_level(&block->mutex, 149); > > rw_lock_create_func((&(block->lock)), "buf/buf0buf.c", 501); > ; > > > > > >} > > > > >buf_pool_t* >buf_pool_init( > > > > ulint max_size, > > ulint curr_size, > > > ulint n_frames) > > > > >{ > unsigned char* frame; > ulint i; > buf_block_t* block; > > do { if (__builtin_expect(!((ulint)(max_size == curr_size)), (0))) { ut_dbg_assertion_failed("max_size == curr_size", "buf/buf0buf.c", (ulint) 533); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 533); } while (0); } while (0); > do { if (__builtin_expect(!((ulint)(srv_use_awe || n_frames == max_size)), (0))) { ut_dbg_assertion_failed("srv_use_awe || n_frames == max_size", "buf/buf0buf.c", (ulint) 534); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 534); } while (0); } while (0); > > if (n_frames > curr_size) { > fprintf(stderr, >"InnoDB: AWE: Error: you must specify in my.cnf .._awe_mem_mb larger\n" >"InnoDB: than .._buffer_pool_size. Now the former is %lu pages,\n" >"InnoDB: the latter %lu pages.\n", (ulong) curr_size, (ulong) n_frames); > > return(((void *)0)); > } > > buf_pool = mem_alloc_func((sizeof(buf_pool_t)), "buf/buf0buf.c", 545); > > > > mutex_create_func((&(buf_pool->mutex)), "buf/buf0buf.c", 549); > mutex_set_level(&(buf_pool->mutex), 150); > > mutex_create_func((&(buf_pool->flush_list_mutex)), "buf/buf0buf.c", 552); > mutex_create_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 553); > mutex_create_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 554); > rw_lock_create_func((&(buf_pool->hash_latch)), "buf/buf0buf.c", 555); > mutex_set_level(&(buf_pool->flush_list_mutex), 3000); > mutex_set_level(&(buf_pool->LRU_mutex), 3000); > mutex_set_level(&(buf_pool->free_mutex), 3000); > rw_lock_set_level(&(buf_pool->hash_latch), 3000); > > mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 561); > mutex_enter_func((&(buf_pool->flush_list_mutex)), "buf/buf0buf.c", 562); > mutex_enter_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 563); > rw_lock_x_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 564); > mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 565); > > if (srv_use_awe) { > > > > > buf_pool->frame_mem = os_awe_allocate_virtual_mem_window( > (2 * 8192) * (n_frames + 1)); > > > > > if ((curr_size % ((1024 * 1024) / (2 * 8192))) != 0) { > > fprintf(stderr, >"InnoDB: AWE: Error: physical memory must be allocated in full megabytes.\n" >"InnoDB: Trying to allocate %lu database pages.\n", > (ulong) curr_size); > > return(((void *)0)); > } > > if (!os_awe_allocate_physical_mem(&(buf_pool->awe_info), > curr_size / ((1024 * 1024) / (2 * 8192)))) { > > return(((void *)0)); > } > > } else { > buf_pool->frame_mem = os_mem_alloc_large( > (2 * 8192) * (n_frames + 1), > (1), (0)); > } > > if (buf_pool->frame_mem == ((void *)0)) { > > return(((void *)0)); > } > > buf_pool->blocks = ut_malloc(sizeof(buf_block_t) * max_size); > > if (buf_pool->blocks == ((void *)0)) { > > return(((void *)0)); > } > > buf_pool->max_size = max_size; > buf_pool->curr_size = curr_size; > > buf_pool->n_frames = n_frames; > > > > frame = ut_align(buf_pool->frame_mem, (2 * 8192)); > > buf_pool->frame_zero = frame; > buf_pool->high_end = frame + (2 * 8192) * n_frames; > > if (srv_use_awe) { > > > > > os_awe_map_physical_mem_to_window(buf_pool->frame_zero, > n_frames * > ((2 * 8192) / 4096), > buf_pool->awe_info); > > } > > buf_pool->blocks_of_frames = ut_malloc(sizeof(void*) * n_frames); > > if (buf_pool->blocks_of_frames == ((void *)0)) { > > return(((void *)0)); > } > > > > > > > for (i = 0; i < max_size; i++) { > > block = buf_pool_get_nth_block(buf_pool, i); > > if (i < n_frames) { > frame = buf_pool->frame_zero + i * (2 * 8192); > *(buf_pool->blocks_of_frames + i) = block; > } else { > frame = ((void *)0); > } > > buf_block_init(block, frame); > > if (srv_use_awe) { > > block->awe_info = buf_pool->awe_info > + i * ((2 * 8192) / 4096); > > } > } > > buf_pool->page_hash = hash0_create(2 * max_size); > buf_pool->io_counter_hash = ((void *)0); > buf_pool->io_counter_heap = ((void *)0); > buf_pool->io_counters = 0; > > buf_pool->n_pend_reads = 0; > > buf_pool->last_printout_time = time(((void *)0)); > > buf_pool->n_pages_read = 0; > buf_pool->n_pages_written = 0; > buf_pool->n_pages_created = 0; > buf_pool->n_pages_awe_remapped = 0; > > buf_pool->n_page_gets = 0; > buf_pool->n_page_gets_old = 0; > buf_pool->n_pages_read_old = 0; > buf_pool->n_pages_written_old = 0; > buf_pool->n_pages_created_old = 0; > buf_pool->n_pages_awe_remapped_old = 0; > > > > { (buf_pool->flush_list).count = 0; (buf_pool->flush_list).start = ((void *)0); (buf_pool->flush_list).end = ((void *)0);}; > > for (i = 1; i <= 3; i++) { > buf_pool->n_flush[i] = 0; > buf_pool->init_flush[i] = (0); > buf_pool->no_flush[i] = os_event_create(((void *)0)); > } > > buf_pool->LRU_flush_ended = 0; > > buf_pool->ulint_clock = 1; > buf_pool->freed_page_clock = 0; > > > > { (buf_pool->LRU).count = 0; (buf_pool->LRU).start = ((void *)0); (buf_pool->LRU).end = ((void *)0);}; > > buf_pool->LRU_old = ((void *)0); > > { (buf_pool->awe_LRU_free_mapped).count = 0; (buf_pool->awe_LRU_free_mapped).start = ((void *)0); (buf_pool->awe_LRU_free_mapped).end = ((void *)0);}; > > > { (buf_pool->free).count = 0; (buf_pool->free).start = ((void *)0); (buf_pool->free).end = ((void *)0);}; > > for (i = 0; i < curr_size; i++) { > > block = buf_pool_get_nth_block(buf_pool, i); > > if (block->frame) { > > > > > > > if (srv_use_awe) { > > > > { ; ((buf_pool->awe_LRU_free_mapped).count)++; ((block)->awe_LRU_free_mapped).prev = (buf_pool->awe_LRU_free_mapped).end; ((block)->awe_LRU_free_mapped).next = ((void *)0); if ((buf_pool->awe_LRU_free_mapped).end != ((void *)0)) { (((buf_pool->awe_LRU_free_mapped).end)->awe_LRU_free_mapped).next = (block); } (buf_pool->awe_LRU_free_mapped).end = (block); if ((buf_pool->awe_LRU_free_mapped).start == ((void *)0)) { (buf_pool->awe_LRU_free_mapped).start = (block); }}; > > } > } > > { ; ((buf_pool->free).count)++; ((block)->free).prev = (buf_pool->free).end; ((block)->free).next = ((void *)0); if ((buf_pool->free).end != ((void *)0)) { (((buf_pool->free).end)->free).next = (block); } (buf_pool->free).end = (block); if ((buf_pool->free).start == ((void *)0)) { (buf_pool->free).start = (block); }}; > block->in_free_list = (1); > } > > mutex_exit(&(buf_pool->LRU_mutex)); > mutex_exit(&(buf_pool->flush_list_mutex)); > mutex_exit(&(buf_pool->free_mutex)); > rw_lock_x_unlock_func(&(buf_pool->hash_latch)); > mutex_exit(&(buf_pool->mutex)); > > if (srv_use_adaptive_hash_indexes) { > btr_search_sys_create( > curr_size * (2 * 8192) / sizeof(void*) / 64); > } else { > > btr_search_sys_create(1000); > } > > return(buf_pool); >} > > > > > >void >buf_awe_map_page_to_frame( > > buf_block_t* block, > > ulint add_to_mapped_list) > > > >{ > buf_block_t* bck; > > > > > ; > > if (block->frame) { > > return; > } > > > > > bck = (buf_pool->awe_LRU_free_mapped).end; > > while (bck) { > ulint skip; > > mutex_enter_func((&bck->mutex), "buf/buf0buf.c", 791); > > skip = (bck->state == 213 > && (bck->buf_fix_count != 0 || bck->io_fix != 0)); > > if (skip) { > mutex_exit(&bck->mutex); > > > bck = (((bck)->awe_LRU_free_mapped).prev); > } else { > > > os_awe_map_physical_mem_to_window( > bck->frame, > (2 * 8192) / 4096, > block->awe_info); > > block->frame = bck->frame; > > *(buf_pool->blocks_of_frames > + (((ulint)(block->frame > - buf_pool->frame_zero)) > >> 14)) > = block; > > bck->frame = ((void *)0); > { ; do { if (__builtin_expect(!((ulint)((buf_pool->awe_LRU_free_mapped).count > 0)), (0))) { ut_dbg_assertion_failed("(buf_pool->awe_LRU_free_mapped).count > 0", "buf/buf0buf.c", (ulint) 820); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 820); } while (0); } while (0); ((buf_pool->awe_LRU_free_mapped).count)--; if (((bck)->awe_LRU_free_mapped).next != ((void *)0)) { ((((bck)->awe_LRU_free_mapped).next)->awe_LRU_free_mapped).prev = ((bck)->awe_LRU_free_mapped).prev; } else { (buf_pool->awe_LRU_free_mapped).end = ((bck)->awe_LRU_free_mapped).prev; } if (((bck)->awe_LRU_free_mapped).prev != ((void *)0)) { ((((bck)->awe_LRU_free_mapped).prev)->awe_LRU_free_mapped).next = ((bck)->awe_LRU_free_mapped).next; } else { (buf_pool->awe_LRU_free_mapped).start = ((bck)->awe_LRU_free_mapped).next; }}; > > > > if (add_to_mapped_list) { > { ; ((buf_pool->awe_LRU_free_mapped).count)++; ((block)->awe_LRU_free_mapped).next = (buf_pool->awe_LRU_free_mapped).start; ((block)->awe_LRU_free_mapped).prev = ((void *)0); if ((buf_pool->awe_LRU_free_mapped).start != ((void *)0)) { (((buf_pool->awe_LRU_free_mapped).start)->awe_LRU_free_mapped).prev = (block); } (buf_pool->awe_LRU_free_mapped).start = (block); if ((buf_pool->awe_LRU_free_mapped).end == ((void *)0)) { (buf_pool->awe_LRU_free_mapped).end = (block); }}; > > > } > > buf_pool->n_pages_awe_remapped++; > > mutex_exit(&bck->mutex); > > return; > } > } > > fprintf(stderr, >"InnoDB: AWE: Fatal error: cannot find a page to unmap\n" >"InnoDB: awe_LRU_free_mapped list length %lu\n", > (ulong) (buf_pool->awe_LRU_free_mapped).count); > > do { if (__builtin_expect(!((ulint)(0)), (0))) { ut_dbg_assertion_failed("0", "buf/buf0buf.c", (ulint) 841); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 841); } while (0); } while (0); >} > > > >static inline >buf_block_t* >buf_block_alloc(void) > > > > >{ > buf_block_t* block; > > block = buf_LRU_get_free_block(); > > return(block); >} > > > > >static inline >void >buf_block_make_young( > > buf_block_t* block) >{ > > > > > > > > if (buf_pool->freed_page_clock >= block->freed_page_clock > + 1 + (buf_pool->curr_size / 4)) { > > mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 880); > > > > buf_LRU_make_block_young(block); > mutex_exit(&(buf_pool->LRU_mutex)); > } >} > > > > > > >void >buf_page_make_young( > > buf_frame_t* frame) >{ > buf_block_t* block; > > mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 901); > > block = buf_block_align(frame); > > do { if (__builtin_expect(!((ulint)(block->state == 213)), (0))) { ut_dbg_assertion_failed("block->state == BUF_BLOCK_FILE_PAGE", "buf/buf0buf.c", (ulint) 905); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 905); } while (0); } while (0); > > buf_LRU_make_block_young(block); > > mutex_exit(&(buf_pool->LRU_mutex)); >} > > > >static inline >void >buf_block_free( > > buf_block_t* block) >{ > mutex_enter_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 920); > > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 922); > > do { if (__builtin_expect(!((ulint)(block->state != 213)), (0))) { ut_dbg_assertion_failed("block->state != BUF_BLOCK_FILE_PAGE", "buf/buf0buf.c", (ulint) 924); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 924); } while (0); } while (0); > > buf_LRU_block_free_non_file_page(block); > > mutex_exit(&block->mutex); > > mutex_exit(&(buf_pool->free_mutex)); >} > > > > >buf_frame_t* >buf_frame_alloc(void) > > >{ > return(buf_block_alloc()->frame); >} > > > > >void >buf_frame_free( > > buf_frame_t* frame) >{ > buf_block_free(buf_block_align(frame)); >} > > > > > > >buf_block_t* >buf_page_peek_block( > > > > > ulint space, > ulint offset) >{ > buf_block_t* block; > > rw_lock_s_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 971); > > block = buf_page_hash_get(space, offset); > > rw_lock_s_unlock_func(&(buf_pool->hash_latch)); > > return(block); >} > > > > > >void >buf_reset_check_index_page_at_flush( > > ulint space, > ulint offset) >{ > buf_block_t* block; > > rw_lock_s_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 992); > > block = buf_page_hash_get(space, offset); > > if (block) { > block->check_index_page_at_flush = (0); > } > > rw_lock_s_unlock_func(&(buf_pool->hash_latch)); >} > > > > > > >ulint >buf_page_peek_if_search_hashed( > > > > ulint space, > ulint offset) >{ > buf_block_t* block; > ulint is_hashed; > > rw_lock_s_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 1019); > > block = buf_page_hash_get(space, offset); > > if (!block) { > is_hashed = (0); > } else { > is_hashed = block->is_hashed; > } > > rw_lock_s_unlock_func(&(buf_pool->hash_latch)); > > return(is_hashed); >} > > > > > >ulint >buf_page_peek( > > > > > ulint space, > ulint offset) >{ > if (buf_page_peek_block(space, offset)) { > > return((1)); > } > > return((0)); >} > > > > > > > >buf_block_t* >buf_page_set_file_page_was_freed( > > > > ulint space, > ulint offset) >{ > buf_block_t* block; > > rw_lock_s_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 1071); > > block = buf_page_hash_get(space, offset); > > if (block) { > block->file_page_was_freed = (1); > } > > rw_lock_s_unlock_func(&(buf_pool->hash_latch)); > > return(block); >} > > > > > > > >buf_block_t* >buf_page_reset_file_page_was_freed( > > > > ulint space, > ulint offset) >{ > buf_block_t* block; > > rw_lock_s_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 1100); > > block = buf_page_hash_get(space, offset); > > if (block) { > block->file_page_was_freed = (0); > } > > rw_lock_s_unlock_func(&(buf_pool->hash_latch)); > > return(block); >} > >inline void _increment_page_get_statistics(buf_block_t* block, trx_t* trx) >{ > ulint block_hash; > ulint block_hash_byte; > unsigned char block_hash_offset; > > ; > > if (!srv_slow_log || !trx || !trx->take_stats) > return; > > if (!trx->distinct_page_access_hash) { > trx->distinct_page_access_hash = mem_alloc_func((8192), "buf/buf0buf.c", 1125); > memset(trx->distinct_page_access_hash, 0, 8192); > } > > block_hash = ut_hash_ulint((block->space << 20) + block->space + > block->offset, 8192 << 3); > block_hash_byte = block_hash >> 3; > block_hash_offset = (unsigned char) block_hash & 0x07; > if (block_hash_byte < 0 || block_hash_byte >= 8192) > fprintf(stderr, "!!! block_hash_byte = %lu block_hash_offset = %lu !!!\n", block_hash_byte, block_hash_offset); > if (block_hash_offset < 0 || block_hash_offset > 7) > fprintf(stderr, "!!! block_hash_byte = %lu block_hash_offset = %lu !!!\n", block_hash_byte, block_hash_offset); > if ((trx->distinct_page_access_hash[block_hash_byte] & ((unsigned char) 0x01 << block_hash_offset)) == 0) > trx->distinct_page_access++; > trx->distinct_page_access_hash[block_hash_byte] |= (unsigned char) 0x01 << block_hash_offset; > return; >} > > > > >buf_frame_t* >buf_page_get_gen( > > > ulint space, > ulint offset, > ulint rw_latch, > buf_frame_t* guess, > ulint mode, > > const char* file, > ulint line, > mtr_t* mtr) >{ > buf_block_t* block; > ulint accessed; > ulint fix_type; > ulint success; > ulint must_read; > trx_t* trx = ((void *)0); > ulint sec; > ulint ms; > ib_longlong start_time; > ib_longlong finish_time; > > ; > ; > > > ; > ; > > > ; > > if (srv_slow_log) { > trx = innobase_get_trx(); > } > buf_pool->n_page_gets++; >loop: > block = ((void *)0); > > > if (guess) { > block = buf_block_align(guess); > > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1192); > if ((offset != block->offset) || (space != block->space) > || (block->state != 213)) { > > mutex_exit(&block->mutex); > block = ((void *)0); > } > } > > if (block == ((void *)0)) { > rw_lock_s_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 1202); > block = buf_page_hash_get(space, offset); > if(block) { > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1205); > } > rw_lock_s_unlock_func(&(buf_pool->hash_latch)); > } > > if (block == ((void *)0)) { > > > > > if (mode == 11) { > > return(((void *)0)); > } > > buf_read_page(space, offset, trx); ># 1229 "buf/buf0buf.c" > goto loop; > } > > > > do { if (__builtin_expect(!((ulint)(block->state == 213)), (0))) { ut_dbg_assertion_failed("block->state == BUF_BLOCK_FILE_PAGE", "buf/buf0buf.c", (ulint) 1234); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 1234); } while (0); } while (0); > > must_read = (0); > > if (block->io_fix == 561) { > > must_read = (1); > > if (mode == 11) { > > > mutex_exit(&block->mutex); > > return(((void *)0)); > } > } > > > > > if (block->frame == ((void *)0)) { > do { if (__builtin_expect(!((ulint)(srv_use_awe)), (0))) { ut_dbg_assertion_failed("srv_use_awe", "buf/buf0buf.c", (ulint) 1255); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 1255); } while (0); } while (0); > > > > > > mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 1261); > buf_awe_map_page_to_frame(block, (1)); > mutex_exit(&buf_pool->mutex); > } > > > > > buf_block_buf_fix_inc(block); > > > > > > accessed = block->accessed; > > block->accessed = (1); > > mutex_exit(&block->mutex); > > buf_block_make_young(block); ># 1295 "buf/buf0buf.c" > do { if (__builtin_expect(!((ulint)(block->buf_fix_count > 0)), (0))) { ut_dbg_assertion_failed("block->buf_fix_count > 0", "buf/buf0buf.c", (ulint) 1295); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 1295); } while (0); } while (0); > ; > > if (mode == 12) { > if (rw_latch == 1) { > success = rw_lock_s_lock_func_nowait(&(block->lock), > file, line); > fix_type = 1; > } else { > ; > success = rw_lock_x_lock_func_nowait(&(block->lock), > file, line); > fix_type = 2; > } > > if (!success) { > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1311); > > > > if (__builtin_expect(block->buf_fix_count == 0, (0))) { > buf_print_diagnostic(mtr, block); > do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 1317); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > } > > block->buf_fix_count--; > > mutex_exit(&block->mutex); > > > > > return(((void *)0)); > } > } else if (rw_latch == 3) { > > if (must_read) { > > > > if (srv_slow_log && trx && trx->take_stats) > { > ut_usectime(&sec, &ms); > start_time = (ib_longlong)sec * 1000000 + ms; > } > for (;;) { > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1341); > > if (block->io_fix == 561) { > > mutex_exit(&block->mutex); > > os_thread_sleep(WAIT_FOR_READ); > } else { > > mutex_exit(&block->mutex); > > break; > } > } > if (srv_slow_log && trx && trx->take_stats && start_time) > { > ut_usectime(&sec, &ms); > finish_time = (ib_longlong)sec * 1000000 + ms; > trx->io_reads_wait_timer += (ulint)(finish_time - start_time); > } > } > > fix_type = 3; > } else if (rw_latch == 1) { > > rw_lock_s_lock_func(&(block->lock), 0, file, line); > > fix_type = 1; > } else { > rw_lock_x_lock_func(&(block->lock), 0, file, line); > > fix_type = 2; > } > > mtr_memo_push(mtr, block, fix_type); > > if (!accessed) { > > > > buf_read_ahead_linear(space, offset, trx); > } > > > > > > if (srv_slow_log) { > _increment_page_get_statistics(block, trx); > } > > return(block->frame); >} > > > > > >ulint >buf_page_optimistic_get_func( > > > ulint rw_latch, > buf_block_t* block, > buf_frame_t* guess, > > dulint modify_clock, > > const char* file, > ulint line, > mtr_t* mtr) >{ > ulint accessed; > ulint success; > ulint fix_type; > trx_t* trx = ((void *)0); > > ; > ; > > > > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1423); > > if (__builtin_expect(block->state != 213, (0)) > || __builtin_expect(block->frame != guess, (0))) { > > mutex_exit(&block->mutex); > > return((0)); > } > > > > > buf_block_buf_fix_inc(block); > > accessed = block->accessed; > block->accessed = (1); > > mutex_exit(&block->mutex); > > buf_block_make_young(block); > > > > ; > > if (rw_latch == 1) { > success = rw_lock_s_lock_func_nowait(&(block->lock), > file, line); > fix_type = 1; > } else { > success = rw_lock_x_lock_func_nowait(&(block->lock), > file, line); > fix_type = 2; > } > > if (__builtin_expect(!success, (0))) { > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1460); > > > > if (__builtin_expect(block->buf_fix_count == 0, (0))) { > buf_print_diagnostic(mtr, block); > do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 1466); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > } > > block->buf_fix_count--; > > mutex_exit(&block->mutex); > > > > > return((0)); > } > > if (__builtin_expect(!(((modify_clock).low == (block->modify_clock).low) && ((modify_clock).high == (block->modify_clock).high)), (0))) { > > > > if (rw_latch == 1) { > rw_lock_s_unlock_func(&(block->lock)); > } else { > rw_lock_x_unlock_func(&(block->lock)); > } > > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1489); > > > > if (__builtin_expect(block->buf_fix_count == 0, (0))) { > buf_print_diagnostic(mtr, block); > do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 1495); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > } > > block->buf_fix_count--; > > mutex_exit(&block->mutex); > > > > > return((0)); > } > > mtr_memo_push(mtr, block, fix_type); ># 1519 "buf/buf0buf.c" > do { if (__builtin_expect(!((ulint)(block->buf_fix_count > 0)), (0))) { ut_dbg_assertion_failed("block->buf_fix_count > 0", "buf/buf0buf.c", (ulint) 1519); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 1519); } while (0); } while (0); > > ; > > > > > if (__builtin_expect(!accessed, (0))) { > > > > buf_read_ahead_linear(buf_frame_get_space_id(guess), > buf_frame_get_page_no(guess), trx); > } > > > > > buf_pool->n_page_gets++; > > if (srv_slow_log) { > trx = innobase_get_trx(); > _increment_page_get_statistics(block, trx); > } > > return((1)); >} > > > > > > >ulint >buf_page_get_known_nowait( > > > ulint rw_latch, > buf_frame_t* guess, > ulint mode, > const char* file, > ulint line, > mtr_t* mtr) >{ > buf_block_t* block; > ulint success; > ulint fix_type; > trx_t* trx = ((void *)0); > > ; > ; > > block = buf_block_align(guess); > > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1573); > > if (block->state == 215) { > > > > > > > > mutex_exit(&block->mutex); > > return((0)); > } > > do { if (__builtin_expect(!((ulint)(block->state == 213)), (0))) { ut_dbg_assertion_failed("block->state == BUF_BLOCK_FILE_PAGE", "buf/buf0buf.c", (ulint) 1588); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 1588); } while (0); } while (0); > > > > > buf_block_buf_fix_inc(block); > > mutex_exit(&block->mutex); > > if (mode == 51) { > buf_block_make_young(block); > } > > ; > > if (rw_latch == 1) { > success = rw_lock_s_lock_func_nowait(&(block->lock), > file, line); > fix_type = 1; > } else { > success = rw_lock_x_lock_func_nowait(&(block->lock), > file, line); > fix_type = 2; > } > > if (!success) { > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1614); > > > > if (__builtin_expect(block->buf_fix_count == 0, (0))) { > buf_print_diagnostic(mtr, block); > do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 1620); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > } > > block->buf_fix_count--; > > mutex_exit(&block->mutex); > > > > > > return((0)); > } > > mtr_memo_push(mtr, block, fix_type); ># 1644 "buf/buf0buf.c" > do { if (__builtin_expect(!((ulint)(block->buf_fix_count > 0)), (0))) { ut_dbg_assertion_failed("block->buf_fix_count > 0", "buf/buf0buf.c", (ulint) 1644); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 1644); } while (0); } while (0); > ; ># 1654 "buf/buf0buf.c" > buf_pool->n_page_gets++; > > if (srv_slow_log) { > trx = innobase_get_trx(); > _increment_page_get_statistics(block, trx); > } > > return((1)); >} > > > > >void >buf_page_init_for_backup_restore( > > ulint space, > ulint offset, > > buf_block_t* block) >{ > > block->magic_n = 41526563; > > block->state = 213; > block->space = space; > block->offset = offset; > > block->lock_hash_val = 0; > > block->freed_page_clock = 0; > > block->newest_modification = ut_dulint_zero; > block->oldest_modification = ut_dulint_zero; > > block->accessed = (0); > block->buf_fix_count = 0; > block->io_fix = 0; > > block->n_hash_helps = 0; > block->is_hashed = (0); > block->n_fields = 1; > block->n_bytes = 0; > block->side = 1; > > block->file_page_was_freed = (0); >} > > > >static >void >buf_page_init( > > ulint space, > ulint offset, > > buf_block_t* block) >{ > > > > > do { if (__builtin_expect(!((ulint)(block->state != 213)), (0))) { ut_dbg_assertion_failed("block->state != BUF_BLOCK_FILE_PAGE", "buf/buf0buf.c", (ulint) 1717); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 1717); } while (0); } while (0); > > > block->magic_n = 41526563; > > block->state = 213; > block->space = space; > block->offset = offset; > > block->check_index_page_at_flush = (0); > block->index = ((void *)0); > > block->lock_hash_val = lock_rec_hash(space, offset); > > > > if (buf_page_hash_get(space, offset)) { > fprintf(stderr, >"InnoDB: Error: page %lu %lu already found from the hash table\n", > (ulong) space, > (ulong) offset); > > > > > > > do { if (__builtin_expect(!((ulint)(0)), (0))) { ut_dbg_assertion_failed("0", "buf/buf0buf.c", (ulint) 1744); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 1744); } while (0); } while (0); > } > > do { hash_cell_t* cell3333; buf_block_t* struct3333; (block)->hash = ((void *)0); cell3333 = hash_get_nth_cell(buf_pool->page_hash, hash_calc_hash(buf_page_address_fold(space, offset), buf_pool->page_hash)); if (cell3333->node == ((void *)0)) { cell3333->node = block; } else { struct3333 = cell3333->node; while (struct3333->hash != ((void *)0)) { struct3333 = struct3333->hash; } struct3333->hash = block; }} while (0); > > > block->freed_page_clock = 0; > > block->newest_modification = ut_dulint_zero; > block->oldest_modification = ut_dulint_zero; > > block->accessed = (0); > block->buf_fix_count = 0; > block->io_fix = 0; > > block->n_hash_helps = 0; > block->is_hashed = (0); > block->n_fields = 1; > block->n_bytes = 0; > block->side = 1; > > block->file_page_was_freed = (0); >} ># 1780 "buf/buf0buf.c" >buf_block_t* >buf_page_init_for_read( > > > ulint* err, > ulint mode, > ulint space, > ib_longlong tablespace_version, > > > ulint offset) >{ > buf_block_t* block; > mtr_t mtr; > > ; > > *err = 10; > > if (mode == 131) { > > > ; > ; > > mtr_start(&mtr); > > if (!ibuf_page_low(space, offset, &mtr)) { > > mtr_commit(&mtr); > > return(((void *)0)); > } > } else { > ; > } > > block = buf_block_alloc(); > > do { if (__builtin_expect(!((ulint)(block)), (0))) { ut_dbg_assertion_failed("block", "buf/buf0buf.c", (ulint) 1819); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 1819); } while (0); } while (0); > > mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 1821); > rw_lock_x_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 1822); > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1823); > > if (fil_tablespace_deleted_or_being_deleted_in_mem(space, > tablespace_version)) { > *err = 44; > } > > if (*err == 44 > || ((void *)0) != buf_page_hash_get(space, offset)) { > > > > > mutex_exit(&block->mutex); > mutex_exit(&(buf_pool->LRU_mutex)); > rw_lock_x_unlock_func(&(buf_pool->hash_latch)); > > buf_block_free(block); > > if (mode == 131) { > > mtr_commit(&mtr); > } > > return(((void *)0)); > } > > ; > > buf_page_init(space, offset, block); > rw_lock_x_unlock_func(&(buf_pool->hash_latch)); > > > > buf_LRU_add_block(block, (1)); > mutex_exit(&(buf_pool->LRU_mutex)); > > mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 1860); > > block->io_fix = 561; > > buf_pool->n_pend_reads++; ># 1873 "buf/buf0buf.c" > rw_lock_x_lock_func( (&(block->lock)), (561), "buf/buf0buf.c", 1873); > > mutex_exit(&block->mutex); > mutex_exit(&(buf_pool->mutex)); > > if (mode == 131) { > > mtr_commit(&mtr); > } > > return(block); >} > > > > > > > >buf_frame_t* >buf_page_create( > > > ulint space, > ulint offset, > > mtr_t* mtr) >{ > buf_frame_t* frame; > buf_block_t* block; > buf_block_t* free_block = ((void *)0); > > ; > > free_block = buf_LRU_get_free_block(); > > mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 1909); > rw_lock_x_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 1910); > > block = buf_page_hash_get(space, offset); > > if (block != ((void *)0)) { > > > > block->file_page_was_freed = (0); > > > mutex_exit(&(buf_pool->LRU_mutex)); > rw_lock_x_unlock_func(&(buf_pool->hash_latch)); > > buf_block_free(free_block); > > frame = buf_page_get_gen( space, offset, 3, ((void *)0), 14, "buf/buf0buf.c", 1926, mtr); > > return(frame); > } ># 1940 "buf/buf0buf.c" > block = free_block; > > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1942); > > buf_page_init(space, offset, block); > rw_lock_x_unlock_func(&(buf_pool->hash_latch)); > > > buf_LRU_add_block(block, (0)); > > > > > buf_block_buf_fix_inc(block); > > buf_pool->n_pages_created++; > > mutex_exit(&(buf_pool->LRU_mutex)); > > mtr_memo_push(mtr, block, 3); > > block->accessed = (1); > > mutex_exit(&block->mutex); > > > > > ibuf_merge_or_delete_for_page(((void *)0), space, offset, (1)); > > > buf_flush_free_margin((0)); > > frame = block->frame; > > > > > > > > memset(frame + 26, 0, 8); ># 1993 "buf/buf0buf.c" > return(frame); >} > > > > > >void >buf_page_io_complete( > > buf_block_t* block) >{ > ulint io_type; > ulint read_page_no; > ulint flush_type; > > buf_io_counter_t* io_counter; > ulint fold; > > ; > > do { if (__builtin_expect(!((ulint)(block->state == 213)), (0))) { ut_dbg_assertion_failed("block->state == BUF_BLOCK_FILE_PAGE", "buf/buf0buf.c", (ulint) 2014); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 2014); } while (0); } while (0); > > > > > > > > io_type = block->io_fix; > > if (io_type == 561) { > > > > > read_page_no = mach_read_from_4((block->frame) > + 4); > if (read_page_no != 0 > && !trx_doublewrite_page_inside(read_page_no) > && read_page_no != block->offset) { > > fprintf(stderr, >"InnoDB: Error: page n:o stored in the page read in is %lu, should be %lu!\n", > (ulong) read_page_no, (ulong) block->offset); > } > > > > if (buf_page_is_corrupted(block->frame)) { > fprintf(stderr, > "InnoDB: Database page corruption on disk or a failed\n" > "InnoDB: file read of page %lu.\n", (ulong) block->offset); > > fputs( > "InnoDB: You may have to recover from a backup.\n", stderr); > > buf_page_print(block->frame); > > fprintf(stderr, > "InnoDB: Database page corruption on disk or a failed\n" > "InnoDB: file read of page %lu.\n", (ulong) block->offset); > fputs( > "InnoDB: You may have to recover from a backup.\n", stderr); > fputs( > "InnoDB: It is also possible that your operating\n" > "InnoDB: system has corrupted its own file cache\n" > "InnoDB: and rebooting your computer removes the\n" > "InnoDB: error.\n" > "InnoDB: If the corrupt page is an index page\n" > "InnoDB: you can also try to fix the corruption\n" > "InnoDB: by dumping, dropping, and reimporting\n" > "InnoDB: the corrupt table. You can use CHECK\n" > "InnoDB: TABLE to scan your table for corruption.\n" > "InnoDB: See also " >"InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html\n" > "InnoDB: about forcing recovery.\n", stderr); > > if (srv_force_recovery < 1) { > fputs( > "InnoDB: Ending processing because of a corrupt database page.\n", > stderr); > exit(1); > } > } > > if (recv_recovery_is_on()) { > recv_recover_page((0), (1), block->frame, > block->space, block->offset); > } > > if (!recv_no_ibuf_operations) { > ibuf_merge_or_delete_for_page(block->frame, > block->space, block->offset, (1)); > } > } ># 2098 "buf/buf0buf.c" > if (io_type == 561) { > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 2099); > mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 2100); > > block->io_fix = 0; > > > > > > ; > buf_pool->n_pend_reads--; > buf_pool->n_pages_read++; > > rw_lock_x_unlock_func(&(block->lock)); > > if (srv_io_pattern && srv_io_pattern_trace_running) { > fold = buf_page_address_fold(block->space, block->offset); > { (io_counter) = (hash_get_nth_cell(buf_pool->io_counter_hash, hash_calc_hash(fold, buf_pool->io_counter_hash))->node); while ((io_counter) != ((void *)0)) { if ((io_counter->space == block->space) && (io_counter->offset == block->offset)) { break; } else { (io_counter) = ((io_counter)->hash); } }}; > > if (io_counter == ((void *)0) && buf_pool->io_counters < srv_io_pattern_size_limit) { > io_counter = mem_heap_alloc(buf_pool->io_counter_heap,(sizeof(buf_io_counter_t))); > io_counter->space = block->space; > io_counter->offset = block->offset; > io_counter->n_read = 0; > io_counter->n_write = 0; > do { hash_cell_t* cell3333; buf_io_counter_t* struct3333; (io_counter)->hash = ((void *)0); cell3333 = hash_get_nth_cell(buf_pool->io_counter_hash, hash_calc_hash(buf_page_address_fold(block->space, block->offset), buf_pool->io_counter_hash)); if (cell3333->node == ((void *)0)) { cell3333->node = io_counter; } else { struct3333 = cell3333->node; while (struct3333->hash != ((void *)0)) { struct3333 = struct3333->hash; } struct3333->hash = io_counter; }} while (0); > > buf_pool->io_counters++; > } > if (io_counter != ((void *)0)) { > io_counter->index_id = ut_dulint_get_low(btr_page_get_index_id(buf_block_get_frame(block))); > io_counter->n_read++; > } > } > > mutex_exit(&(buf_pool->mutex)); > mutex_exit(&block->mutex); > > > > > > } else { > ; > > flush_type = block->flush_type; > if (flush_type == 1) { > mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 2146); > } > mutex_enter_func((&(buf_pool->flush_list_mutex)), "buf/buf0buf.c", 2148); > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 2149); > mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 2150); > > block->io_fix = 0; > > > > > buf_flush_write_complete(block); > > mutex_exit(&(buf_pool->flush_list_mutex)); > if (flush_type == 1) { > mutex_exit(&(buf_pool->LRU_mutex)); > } > > rw_lock_s_unlock_func(&(block->lock)); > > if (srv_io_pattern && srv_io_pattern_trace_running) { > fold = buf_page_address_fold(block->space, block->offset); > { (io_counter) = (hash_get_nth_cell(buf_pool->io_counter_hash, hash_calc_hash(fold, buf_pool->io_counter_hash))->node); while ((io_counter) != ((void *)0)) { if ((io_counter->space == block->space) && (io_counter->offset == block->offset)) { break; } else { (io_counter) = ((io_counter)->hash); } }}; > > if (io_counter == ((void *)0) && buf_pool->io_counters < srv_io_pattern_size_limit) { > io_counter = mem_heap_alloc(buf_pool->io_counter_heap,(sizeof(buf_io_counter_t))); > io_counter->space = block->space; > io_counter->offset = block->offset; > io_counter->n_read = 0; > io_counter->n_write = 0; > do { hash_cell_t* cell3333; buf_io_counter_t* struct3333; (io_counter)->hash = ((void *)0); cell3333 = hash_get_nth_cell(buf_pool->io_counter_hash, hash_calc_hash(buf_page_address_fold(block->space, block->offset), buf_pool->io_counter_hash)); if (cell3333->node == ((void *)0)) { cell3333->node = io_counter; } else { struct3333 = cell3333->node; while (struct3333->hash != ((void *)0)) { struct3333 = struct3333->hash; } struct3333->hash = io_counter; }} while (0); > > buf_pool->io_counters++; > } > if (io_counter != ((void *)0)) { > io_counter->index_id = ut_dulint_get_low(btr_page_get_index_id(buf_block_get_frame(block))); > io_counter->n_write++; > } > } > > buf_pool->n_pages_written++; > > mutex_exit(&(buf_pool->mutex)); > mutex_exit(&block->mutex); > > > > > > > } > > > > > > > >} > > > > > > >void >buf_pool_invalidate(void) > >{ > ulint freed; > > ; > > freed = (1); > > while (freed) { > freed = buf_LRU_search_and_free_block(100); > } > > mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 2225); > > ; > > mutex_exit(&(buf_pool->LRU_mutex)); >} > > > > >ulint >buf_validate(void) > >{ > buf_block_t* block; > ulint i; > ulint n_single_flush = 0; > ulint n_lru_flush = 0; > ulint n_list_flush = 0; > ulint n_lru = 0; > ulint n_flush = 0; > ulint n_free = 0; > ulint n_page = 0; > ulint n_single_flush_tmp = 0; > ulint n_lru_flush_tmp = 0; > ulint n_list_flush_tmp = 0; > > ; > > mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 2254); > mutex_enter_func((&(buf_pool->flush_list_mutex)), "buf/buf0buf.c", 2255); > mutex_enter_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 2256); > rw_lock_x_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 2257); > > mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 2259); > n_single_flush_tmp = buf_pool->n_flush[2]; > n_list_flush_tmp = buf_pool->n_flush[3]; > n_lru_flush_tmp = buf_pool->n_flush[1]; > mutex_exit(&(buf_pool->mutex)); > > for (i = 0; i < buf_pool->curr_size; i++) { > > block = buf_pool_get_nth_block(buf_pool, i); > > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 2269); > > if (block->state == 213) { > > do { if (__builtin_expect(!((ulint)(buf_page_hash_get(block->space, block->offset) == block)), (0))) { ut_dbg_assertion_failed("buf_page_hash_get(block->space, block->offset) == block", "buf/buf0buf.c", (ulint) 2274); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 2274); } while (0); } while (0); > > n_page++; > > > > > > > if (block->io_fix == 562) { > > if (block->flush_type == 1) { > n_lru_flush++; > do { if (__builtin_expect(!((ulint)(rw_lock_is_locked(&(block->lock), 352))), (0))) { ut_dbg_assertion_failed("rw_lock_is_locked(&(block->lock), RW_LOCK_SHARED)", "buf/buf0buf.c", (ulint) 2287); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 2287); } while (0); } while (0); > > } else if (block->flush_type == > 3) { > n_list_flush++; > } else if (block->flush_type == > 2) { > n_single_flush++; > } else { > do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 2295); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > } > > } else if (block->io_fix == 561) { > > do { if (__builtin_expect(!((ulint)(rw_lock_is_locked(&(block->lock), 351))), (0))) { ut_dbg_assertion_failed("rw_lock_is_locked(&(block->lock), RW_LOCK_EX)", "buf/buf0buf.c", (ulint) 2301); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 2301); } while (0); } while (0); > > } > > n_lru++; > > if (ut_dulint_cmp(block->oldest_modification, > ut_dulint_zero) > 0) { > n_flush++; > } > > } else if (block->state == 211) { > n_free++; > } > > mutex_exit(&block->mutex); > } > > if (n_lru + n_free > buf_pool->curr_size) { > fprintf(stderr, "n LRU %lu, n free %lu\n", (ulong) n_lru, (ulong) n_free); > do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 2320); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > } > > do { if (__builtin_expect(!((ulint)((buf_pool->LRU).count == n_lru)), (0))) { ut_dbg_assertion_failed("UT_LIST_GET_LEN(buf_pool->LRU) == n_lru", "buf/buf0buf.c", (ulint) 2323); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 2323); } while (0); } while (0); > if ((buf_pool->free).count != n_free) { > fprintf(stderr, "Free list len %lu, free blocks %lu\n", > (ulong) (buf_pool->free).count, (ulong) n_free); > do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 2327); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > } > do { if (__builtin_expect(!((ulint)((buf_pool->flush_list).count == n_flush)), (0))) { ut_dbg_assertion_failed("UT_LIST_GET_LEN(buf_pool->flush_list) == n_flush", "buf/buf0buf.c", (ulint) 2329); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 2329); } while (0); } while (0); > > do { if (__builtin_expect(!((ulint)(n_single_flush_tmp == n_single_flush)), (0))) { ut_dbg_assertion_failed("n_single_flush_tmp == n_single_flush", "buf/buf0buf.c", (ulint) 2331); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 2331); } while (0); } while (0); > do { if (__builtin_expect(!((ulint)(n_list_flush_tmp == n_list_flush)), (0))) { ut_dbg_assertion_failed("n_list_flush_tmp == n_list_flush", "buf/buf0buf.c", (ulint) 2332); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 2332); } while (0); } while (0); > do { if (__builtin_expect(!((ulint)(n_lru_flush_tmp == n_lru_flush)), (0))) { ut_dbg_assertion_failed("n_lru_flush_tmp == n_lru_flush", "buf/buf0buf.c", (ulint) 2333); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 2333); } while (0); } while (0); > > mutex_exit(&(buf_pool->LRU_mutex)); > mutex_exit(&(buf_pool->flush_list_mutex)); > mutex_exit(&(buf_pool->free_mutex)); > rw_lock_x_unlock_func(&(buf_pool->hash_latch)); > > do { if (__builtin_expect(!((ulint)(buf_LRU_validate())), (0))) { ut_dbg_assertion_failed("buf_LRU_validate()", "buf/buf0buf.c", (ulint) 2340); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 2340); } while (0); } while (0); > do { if (__builtin_expect(!((ulint)(buf_flush_validate())), (0))) { ut_dbg_assertion_failed("buf_flush_validate()", "buf/buf0buf.c", (ulint) 2341); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 2341); } while (0); } while (0); > > return((1)); >} > > > > >void >buf_print(void) > >{ > dulint* index_ids; > ulint* counts; > ulint size; > ulint i; > ulint j; > dulint id; > ulint n_found; > buf_frame_t* frame; > dict_index_t* index; > > ; > > size = buf_pool->curr_size; > > index_ids = mem_alloc_func((sizeof(dulint) * size), "buf/buf0buf.c", 2367); > counts = mem_alloc_func((sizeof(ulint) * size), "buf/buf0buf.c", 2368); > > mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 2370); > mutex_enter_func((&(buf_pool->flush_list_mutex)), "buf/buf0buf.c", 2371); > mutex_enter_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 2372); > > fprintf(stderr, > "buf_pool size %lu\n" > "database pages %lu\n" > "free pages %lu\n" > "modified database pages %lu\n" > "n pending reads %lu\n" > "n pending flush LRU %lu list %lu single page %lu\n" > "pages read %lu, created %lu, written %lu\n", > (ulong) size, > (ulong) (buf_pool->LRU).count, > (ulong) (buf_pool->free).count, > (ulong) (buf_pool->flush_list).count, > (ulong) buf_pool->n_pend_reads, > (ulong) buf_pool->n_flush[1], > (ulong) buf_pool->n_flush[3], > (ulong) buf_pool->n_flush[2], > (ulong) buf_pool->n_pages_read, buf_pool->n_pages_created, > (ulong) buf_pool->n_pages_written); > > > > n_found = 0; > > for (i = 0; i < size; i++) { > frame = buf_pool_get_nth_block(buf_pool, i)->frame; > > if (fil_page_get_type(frame) == 17855) { > > id = btr_page_get_index_id(frame); > > > j = 0; > > while (j < n_found) { > > if (ut_dulint_cmp(index_ids[j], id) == 0) { > (counts[j])++; > > break; > } > j++; > } > > if (j == n_found) { > n_found++; > index_ids[j] = id; > counts[j] = 1; > } > } > } > > mutex_exit(&(buf_pool->LRU_mutex)); > mutex_exit(&(buf_pool->flush_list_mutex)); > mutex_exit(&(buf_pool->free_mutex)); > > for (i = 0; i < n_found; i++) { > index = dict_index_get_if_in_cache(index_ids[i]); > > fprintf(stderr, > "Block count for index %lu in buffer is about %lu", > (ulong) ut_dulint_get_low(index_ids[i]), > (ulong) counts[i]); > > if (index) { > _IO_putc (' ', stderr); > dict_index_name_print(stderr, ((void *)0), index); > } > > _IO_putc ('\n', stderr); > } > > mem_free_func((index_ids), "buf/buf0buf.c", 2445); > mem_free_func((counts), "buf/buf0buf.c", 2446); > > do { if (__builtin_expect(!((ulint)(buf_validate())), (0))) { ut_dbg_assertion_failed("buf_validate()", "buf/buf0buf.c", (ulint) 2448); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } do if (__builtin_expect(ut_dbg_stop_threads, (0))) { ut_dbg_stop_thread("buf/buf0buf.c", (ulint) 2448); } while (0); } while (0); >} ># 2484 "buf/buf0buf.c" >ulint >buf_get_n_pending_ios(void) > >{ > return(buf_pool->n_pend_reads > + buf_pool->n_flush[1] > + buf_pool->n_flush[3] > + buf_pool->n_flush[2]); >} > > > > > >ulint >buf_get_modified_ratio_pct(void) > >{ > ulint ratio; > > mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 2504); > mutex_enter_func((&(buf_pool->flush_list_mutex)), "buf/buf0buf.c", 2505); > mutex_enter_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 2506); > > ratio = (100 * (buf_pool->flush_list).count) > / (1 + (buf_pool->LRU).count > + (buf_pool->free).count); > > > > mutex_exit(&(buf_pool->LRU_mutex)); > mutex_exit(&(buf_pool->flush_list_mutex)); > mutex_exit(&(buf_pool->free_mutex)); > > return(ratio); >} > > > > >void >buf_print_io( > > FILE* file) >{ > time_t current_time; > double time_elapsed; > ulint size; > > ; > size = buf_pool->curr_size; > > mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 2536); > mutex_enter_func((&(buf_pool->flush_list_mutex)), "buf/buf0buf.c", 2537); > mutex_enter_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 2538); > mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 2539); > > if (srv_use_awe) { > fprintf(stderr, > "AWE: Buffer pool memory frames %lu\n", > (ulong) buf_pool->n_frames); > > fprintf(stderr, > "AWE: Database pages and free buffers mapped in frames %lu\n", > (ulong) (buf_pool->awe_LRU_free_mapped).count); > } > fprintf(file, > "Buffer pool size %lu\n" > "Buffer pool size, bytes %lu\n" > "Free buffers %lu\n" > "Database pages %lu\n" > "Modified db pages %lu\n" > "Pending reads %lu\n" > "Pending writes: LRU %lu, flush list %lu, single page %lu\n", > (ulong) size, > (ulong) size * (2 * 8192), > (ulong) (buf_pool->free).count, > (ulong) (buf_pool->LRU).count, > (ulong) (buf_pool->flush_list).count, > (ulong) buf_pool->n_pend_reads, > (ulong) buf_pool->n_flush[1] > + buf_pool->init_flush[1], > (ulong) buf_pool->n_flush[3] > + buf_pool->init_flush[3], > (ulong) buf_pool->n_flush[2]); > > current_time = time(((void *)0)); > time_elapsed = 0.001 + difftime(current_time, > buf_pool->last_printout_time); > buf_pool->last_printout_time = current_time; > > fprintf(file, > "Pages read %lu, created %lu, written %lu\n" > "%.2f reads/s, %.2f creates/s, %.2f writes/s\n", > (ulong) buf_pool->n_pages_read, > (ulong) buf_pool->n_pages_created, > (ulong) buf_pool->n_pages_written, > (buf_pool->n_pages_read - buf_pool->n_pages_read_old) > / time_elapsed, > (buf_pool->n_pages_created - buf_pool->n_pages_created_old) > / time_elapsed, > (buf_pool->n_pages_written - buf_pool->n_pages_written_old) > / time_elapsed); > > if (srv_use_awe) { > fprintf(file, "AWE: %.2f page remaps/s\n", > (buf_pool->n_pages_awe_remapped > - buf_pool->n_pages_awe_remapped_old) > / time_elapsed); > } > > if (buf_pool->n_page_gets > buf_pool->n_page_gets_old) { > fprintf(file, "Buffer pool hit rate %lu / 1000\n", > (ulong) (1000 > - ((1000 * > (buf_pool->n_pages_read - buf_pool->n_pages_read_old)) > / (buf_pool->n_page_gets - buf_pool->n_page_gets_old)))); > } else { > fputs("No buffer pool page gets since the last printout\n", > file); > } > > buf_pool->n_page_gets_old = buf_pool->n_page_gets; > buf_pool->n_pages_read_old = buf_pool->n_pages_read; > buf_pool->n_pages_created_old = buf_pool->n_pages_created; > buf_pool->n_pages_written_old = buf_pool->n_pages_written; > buf_pool->n_pages_awe_remapped_old = buf_pool->n_pages_awe_remapped; > > mutex_exit(&(buf_pool->LRU_mutex)); > mutex_exit(&(buf_pool->flush_list_mutex)); > mutex_exit(&(buf_pool->free_mutex)); > mutex_exit(&(buf_pool->mutex)); >} > > > > >void >buf_refresh_io_stats(void) > >{ > buf_pool->last_printout_time = time(((void *)0)); > buf_pool->n_page_gets_old = buf_pool->n_page_gets; > buf_pool->n_pages_read_old = buf_pool->n_pages_read; > buf_pool->n_pages_created_old = buf_pool->n_pages_created; > buf_pool->n_pages_written_old = buf_pool->n_pages_written; > buf_pool->n_pages_awe_remapped_old = buf_pool->n_pages_awe_remapped; >} > > > > >ulint >buf_all_freed(void) > >{ > buf_block_t* block; > ulint i; > > ; > > for (i = 0; i < buf_pool->curr_size; i++) { > > block = buf_pool_get_nth_block(buf_pool, i); > > mutex_enter_func((&block->mutex), "buf/buf0buf.c", 2649); > > if (block->state == 213) { > > if (!buf_flush_ready_for_replace(block)) { > > fprintf(stderr, > "Page %lu %lu still fixed or dirty\n", > (ulong) block->space, > (ulong) block->offset); > do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 2659); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0); > } > } > > mutex_exit(&block->mutex); > } > > return((1)); >} > > > > > >ulint >buf_pool_check_no_pending_io(void) > > >{ > ulint ret; > > mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 2680); > > if (buf_pool->n_pend_reads + buf_pool->n_flush[1] > + buf_pool->n_flush[3] > + buf_pool->n_flush[2]) { > ret = (0); > } else { > ret = (1); > } > > mutex_exit(&(buf_pool->mutex)); > > return(ret); >} > > > > >ulint >buf_get_free_list_len(void) > >{ > ulint len; > > mutex_enter_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 2704); > > len = (buf_pool->free).count; > > mutex_exit(&(buf_pool->free_mutex)); > > return(len); >} > > > > >void >buf_block_print( > > const buf_block_t* block) >{ > fprintf(stderr, > "BLOCK fields\nmagic_n: 0x%lx\n" > "state: %lu frame: 0x%lx space:offset: 0x%lx:0x%lx\n" > "hash value: 0x%lx check_index_page_at_flush: %ld\n" > "newest_modification %lu:%lu oldest_modification %lu:%lu\n" > "flush_type: %lu in_free_list: %ld in_LRU_list: %ld\n" > "LRU_position: %ld freed_page_clock: %lu old: %ld\n" > "accessed: %ld buf_fix_count: %lu io_fix: %ld " > "modify_clock: %lu:%lu\n" > "n_hash_helps: %lu n_fields: %ld n_bytes: %lu side: %lu\n" > "is_hashed: %lu n_pointers: %lu curr_n_fields: %lu\n" > "curr_n_bytes: %lu curr_side: %lu index name: %s\n" > "file_page_was_freed: %lu\n", > block->magic_n, block->state, (ulint) block->frame, > block->space, block->offset, block->lock_hash_val, > block->check_index_page_at_flush, > ut_dulint_get_high(block->newest_modification), > ut_dulint_get_low(block->newest_modification), > ut_dulint_get_high(block->oldest_modification), > ut_dulint_get_low(block->oldest_modification), > block->flush_type, block->in_free_list, block->in_LRU_list, > block->LRU_position, block->freed_page_clock, > block->old, block->accessed, block->buf_fix_count, > block->io_fix, > ut_dulint_get_high(block->modify_clock), > ut_dulint_get_low(block->modify_clock), > block->n_hash_helps, block->n_fields, block->n_bytes, > block->side, block->is_hashed, block->n_pointers, > block->curr_n_fields, block->curr_n_bytes, > block->curr_side, block->index->name, > block->file_page_was_freed); >} > > > > >void >buf_print_diagnostic( > > mtr_t* mtr, > const buf_block_t* block) >{ > fprintf(stderr, "=== MTR ===\n"); > mtr_print(mtr); > buf_LRU_print(); > buf_print(); > buf_LRU_validate(); > buf_print_io(stderr); > fprintf(stderr, "=== BLOCK ===\n"); > buf_block_print(block); >} > >buf_block_t* >buf_pool_get_nth_block_no_inline( > > > buf_pool_t* buf_pool, > ulint i) { > >return buf_pool_get_nth_block(buf_pool, i); > >} > > > > > >void >buf_io_counter_control(void) > >{ > ulint n; > > mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 2794); > if (srv_io_pattern_trace) { > if (buf_pool->io_counter_hash == ((void *)0)) { > > buf_pool->io_counter_hash = hash0_create(20 * buf_pool->max_size); > buf_pool->io_counter_heap = mem_heap_create_func( (4096 * 1024), ((void *)0), 0, "buf/buf0buf.c", 2799); > buf_pool->io_counters = 0; > > srv_io_pattern = (1); > } > } else { > if (buf_pool->io_counter_hash != ((void *)0)) { > srv_io_pattern = (0); > > for (n = 0; n < buf_pool->io_counter_hash->n_cells; n++) { > (buf_pool->io_counter_hash->array + n)->node = ((void *)0); > } > mem_heap_free_func( (buf_pool->io_counter_heap), "buf/buf0buf.c", 2811); > buf_pool->io_counter_heap = ((void *)0); > buf_pool->io_counters = 0; > > hash_table_free(buf_pool->io_counter_hash); > buf_pool->io_counter_hash = ((void *)0); > } > } > mutex_exit(&(buf_pool->mutex)); >} > >void >buf_io_counter_clear(void) > >{ > ulint n; > > mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 2828); > if (buf_pool->io_counter_hash != ((void *)0)) { > for (n = 0; n < buf_pool->io_counter_hash->n_cells; n++) { > (buf_pool->io_counter_hash->array + n)->node = ((void *)0); > } > mem_heap_empty(buf_pool->io_counter_heap); > buf_pool->io_counters = 0; > } > mutex_exit(&(buf_pool->mutex)); >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 318007
:
230385
|
230387
| 230389