6 # 1 "./include/buf0buf.h" 1
7 # 26 "./include/buf0buf.h"
8 # 1 "./include/univ.i" 1
9 # 33 "./include/univ.i"
10 # 1 "./../include/my_global.h" 1
11 # 83 "./../include/my_global.h"
12 # 1 "./../include/my_config.h" 1
13 # 84 "./../include/my_global.h" 2
14 # 241 "./../include/my_global.h"
15 # 1 "/usr/include/pthread.h" 1 3 4
16 # 23 "/usr/include/pthread.h" 3 4
17 # 1 "/usr/include/features.h" 1 3 4
18 # 347 "/usr/include/features.h" 3 4
19 # 1 "/usr/include/sys/cdefs.h" 1 3 4
20 # 353 "/usr/include/sys/cdefs.h" 3 4
21 # 1 "/usr/include/bits/wordsize.h" 1 3 4
22 # 354 "/usr/include/sys/cdefs.h" 2 3 4
23 # 348 "/usr/include/features.h" 2 3 4
24 # 371 "/usr/include/features.h" 3 4
25 # 1 "/usr/include/gnu/stubs.h" 1 3 4
29 # 1 "/usr/include/bits/wordsize.h" 1 3 4
30 # 5 "/usr/include/gnu/stubs.h" 2 3 4
35 # 1 "/usr/include/gnu/stubs-64.h" 1 3 4
36 # 10 "/usr/include/gnu/stubs.h" 2 3 4
37 # 372 "/usr/include/features.h" 2 3 4
38 # 24 "/usr/include/pthread.h" 2 3 4
39 # 1 "/usr/include/endian.h" 1 3 4
40 # 37 "/usr/include/endian.h" 3 4
41 # 1 "/usr/include/bits/endian.h" 1 3 4
42 # 38 "/usr/include/endian.h" 2 3 4
43 # 61 "/usr/include/endian.h" 3 4
44 # 1 "/usr/include/bits/byteswap.h" 1 3 4
45 # 62 "/usr/include/endian.h" 2 3 4
46 # 25 "/usr/include/pthread.h" 2 3 4
47 # 1 "/usr/include/sched.h" 1 3 4
48 # 26 "/usr/include/sched.h" 3 4
49 # 1 "/usr/include/bits/types.h" 1 3 4
50 # 28 "/usr/include/bits/types.h" 3 4
51 # 1 "/usr/include/bits/wordsize.h" 1 3 4
52 # 29 "/usr/include/bits/types.h" 2 3 4
55 typedef unsigned char __u_char;
56 typedef unsigned short int __u_short;
57 typedef unsigned int __u_int;
58 typedef unsigned long int __u_long;
61 typedef signed char __int8_t;
62 typedef unsigned char __uint8_t;
63 typedef signed short int __int16_t;
64 typedef unsigned short int __uint16_t;
65 typedef signed int __int32_t;
66 typedef unsigned int __uint32_t;
68 typedef signed long int __int64_t;
69 typedef unsigned long int __uint64_t;
77 typedef long int __quad_t;
78 typedef unsigned long int __u_quad_t;
79 # 131 "/usr/include/bits/types.h" 3 4
80 # 1 "/usr/include/bits/typesizes.h" 1 3 4
81 # 132 "/usr/include/bits/types.h" 2 3 4
84 typedef unsigned long int __dev_t;
85 typedef unsigned int __uid_t;
86 typedef unsigned int __gid_t;
87 typedef unsigned long int __ino_t;
88 typedef unsigned long int __ino64_t;
89 typedef unsigned int __mode_t;
90 typedef unsigned long int __nlink_t;
91 typedef long int __off_t;
92 typedef long int __off64_t;
94 typedef struct { int __val[2]; } __fsid_t;
95 typedef long int __clock_t;
96 typedef unsigned long int __rlim_t;
97 typedef unsigned long int __rlim64_t;
98 typedef unsigned int __id_t;
99 typedef long int __time_t;
100 typedef unsigned int __useconds_t;
101 typedef long int __suseconds_t;
103 typedef int __daddr_t;
104 typedef long int __swblk_t;
108 typedef int __clockid_t;
111 typedef void * __timer_t;
114 typedef long int __blksize_t;
119 typedef long int __blkcnt_t;
120 typedef long int __blkcnt64_t;
123 typedef unsigned long int __fsblkcnt_t;
124 typedef unsigned long int __fsblkcnt64_t;
127 typedef unsigned long int __fsfilcnt_t;
128 typedef unsigned long int __fsfilcnt64_t;
130 typedef long int __ssize_t;
134 typedef __off64_t __loff_t;
135 typedef __quad_t *__qaddr_t;
136 typedef char *__caddr_t;
139 typedef long int __intptr_t;
142 typedef unsigned int __socklen_t;
143 # 27 "/usr/include/sched.h" 2 3 4
146 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4
147 # 214 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 3 4
148 typedef long unsigned int size_t;
149 # 30 "/usr/include/sched.h" 2 3 4
152 # 1 "/usr/include/time.h" 1 3 4
153 # 120 "/usr/include/time.h" 3 4
159 # 33 "/usr/include/sched.h" 2 3 4
162 # 1 "/usr/include/bits/sched.h" 1 3 4
163 # 71 "/usr/include/bits/sched.h" 3 4
166 int __sched_priority;
173 extern int clone (int (*__fn) (void *__arg), void *__child_stack,
174 int __flags, void *__arg, ...) __attribute__ ((__nothrow__));
177 extern int unshare (int __flags) __attribute__ ((__nothrow__));
180 extern int sched_getcpu (void) __attribute__ ((__nothrow__));
193 int __sched_priority;
195 # 113 "/usr/include/bits/sched.h" 3 4
196 typedef unsigned long int __cpu_mask;
205 __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))];
207 # 196 "/usr/include/bits/sched.h" 3 4
210 extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp)
211 __attribute__ ((__nothrow__));
212 extern cpu_set_t *__sched_cpualloc (size_t __count) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
213 extern void __sched_cpufree (cpu_set_t *__set) __attribute__ ((__nothrow__));
216 # 36 "/usr/include/sched.h" 2 3 4
224 extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param)
225 __attribute__ ((__nothrow__));
228 extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __attribute__ ((__nothrow__));
231 extern int sched_setscheduler (__pid_t __pid, int __policy,
232 __const struct sched_param *__param) __attribute__ ((__nothrow__));
235 extern int sched_getscheduler (__pid_t __pid) __attribute__ ((__nothrow__));
238 extern int sched_yield (void) __attribute__ ((__nothrow__));
241 extern int sched_get_priority_max (int __algorithm) __attribute__ ((__nothrow__));
244 extern int sched_get_priority_min (int __algorithm) __attribute__ ((__nothrow__));
247 extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __attribute__ ((__nothrow__));
248 # 110 "/usr/include/sched.h" 3 4
249 extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize,
250 __const cpu_set_t *__cpuset) __attribute__ ((__nothrow__));
253 extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize,
254 cpu_set_t *__cpuset) __attribute__ ((__nothrow__));
258 # 26 "/usr/include/pthread.h" 2 3 4
259 # 1 "/usr/include/time.h" 1 3 4
260 # 30 "/usr/include/time.h" 3 4
269 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4
270 # 39 "/usr/include/time.h" 2 3 4
274 # 1 "/usr/include/bits/time.h" 1 3 4
275 # 43 "/usr/include/time.h" 2 3 4
276 # 58 "/usr/include/time.h" 3 4
279 typedef __clock_t clock_t;
283 # 74 "/usr/include/time.h" 3 4
286 typedef __time_t time_t;
290 # 92 "/usr/include/time.h" 3 4
291 typedef __clockid_t clockid_t;
292 # 104 "/usr/include/time.h" 3 4
293 typedef __timer_t timer_t;
294 # 131 "/usr/include/time.h" 3 4
311 __const char *tm_zone;
327 struct timespec it_interval;
328 struct timespec it_value;
338 typedef __pid_t pid_t;
347 extern clock_t clock (void) __attribute__ ((__nothrow__));
350 extern time_t time (time_t *__timer) __attribute__ ((__nothrow__));
353 extern double difftime (time_t __time1, time_t __time0)
354 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
357 extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__));
363 extern size_t strftime (char *__restrict __s, size_t __maxsize,
364 __const char *__restrict __format,
365 __const struct tm *__restrict __tp) __attribute__ ((__nothrow__));
371 extern char *strptime (__const char *__restrict __s,
372 __const char *__restrict __fmt, struct tm *__tp)
373 __attribute__ ((__nothrow__));
379 # 1 "/usr/include/xlocale.h" 1 3 4
380 # 28 "/usr/include/xlocale.h" 3 4
381 typedef struct __locale_struct
384 struct locale_data *__locales[13];
387 const unsigned short int *__ctype_b;
388 const int *__ctype_tolower;
389 const int *__ctype_toupper;
392 const char *__names[13];
396 typedef __locale_t locale_t;
397 # 216 "/usr/include/time.h" 2 3 4
399 extern size_t strftime_l (char *__restrict __s, size_t __maxsize,
400 __const char *__restrict __format,
401 __const struct tm *__restrict __tp,
402 __locale_t __loc) __attribute__ ((__nothrow__));
406 extern char *strptime_l (__const char *__restrict __s,
407 __const char *__restrict __fmt, struct tm *__tp,
408 __locale_t __loc) __attribute__ ((__nothrow__));
415 extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__));
419 extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__));
425 extern struct tm *gmtime_r (__const time_t *__restrict __timer,
426 struct tm *__restrict __tp) __attribute__ ((__nothrow__));
430 extern struct tm *localtime_r (__const time_t *__restrict __timer,
431 struct tm *__restrict __tp) __attribute__ ((__nothrow__));
437 extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__));
440 extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__));
448 extern char *asctime_r (__const struct tm *__restrict __tp,
449 char *__restrict __buf) __attribute__ ((__nothrow__));
452 extern char *ctime_r (__const time_t *__restrict __timer,
453 char *__restrict __buf) __attribute__ ((__nothrow__));
458 extern char *__tzname[2];
459 extern int __daylight;
460 extern long int __timezone;
465 extern char *tzname[2];
469 extern void tzset (void) __attribute__ ((__nothrow__));
474 extern long int timezone;
480 extern int stime (__const time_t *__when) __attribute__ ((__nothrow__));
481 # 313 "/usr/include/time.h" 3 4
482 extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__));
485 extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__));
488 extern int dysize (int __year) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
489 # 328 "/usr/include/time.h" 3 4
490 extern int nanosleep (__const struct timespec *__requested_time,
491 struct timespec *__remaining);
495 extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__));
498 extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__));
501 extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp)
502 __attribute__ ((__nothrow__));
509 extern int clock_nanosleep (clockid_t __clock_id, int __flags,
510 __const struct timespec *__req,
511 struct timespec *__rem);
514 extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__));
519 extern int timer_create (clockid_t __clock_id,
520 struct sigevent *__restrict __evp,
521 timer_t *__restrict __timerid) __attribute__ ((__nothrow__));
524 extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__));
527 extern int timer_settime (timer_t __timerid, int __flags,
528 __const struct itimerspec *__restrict __value,
529 struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__));
532 extern int timer_gettime (timer_t __timerid, struct itimerspec *__value)
533 __attribute__ ((__nothrow__));
536 extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__));
537 # 390 "/usr/include/time.h" 3 4
538 extern int getdate_err;
539 # 399 "/usr/include/time.h" 3 4
540 extern struct tm *getdate (__const char *__string);
541 # 413 "/usr/include/time.h" 3 4
542 extern int getdate_r (__const char *__restrict __string,
543 struct tm *__restrict __resbufp);
547 # 27 "/usr/include/pthread.h" 2 3 4
550 # 1 "/usr/include/signal.h" 1 3 4
551 # 31 "/usr/include/signal.h" 3 4
554 # 1 "/usr/include/bits/sigset.h" 1 3 4
555 # 24 "/usr/include/bits/sigset.h" 3 4
556 typedef int __sig_atomic_t;
563 unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))];
565 # 34 "/usr/include/signal.h" 2 3 4
566 # 50 "/usr/include/signal.h" 3 4
567 typedef __sigset_t sigset_t;
568 # 408 "/usr/include/signal.h" 3 4
570 # 30 "/usr/include/pthread.h" 2 3 4
571 # 1 "/usr/include/bits/pthreadtypes.h" 1 3 4
572 # 24 "/usr/include/bits/pthreadtypes.h" 3 4
573 # 1 "/usr/include/bits/wordsize.h" 1 3 4
574 # 25 "/usr/include/bits/pthreadtypes.h" 2 3 4
575 # 51 "/usr/include/bits/pthreadtypes.h" 3 4
576 typedef unsigned long int pthread_t;
587 typedef struct __pthread_internal_list
589 struct __pthread_internal_list *__prev;
590 struct __pthread_internal_list *__next;
592 # 77 "/usr/include/bits/pthreadtypes.h" 3 4
595 struct __pthread_mutex_s
598 unsigned int __count;
601 unsigned int __nusers;
608 __pthread_list_t __list;
609 # 102 "/usr/include/bits/pthreadtypes.h" 3 4
619 } pthread_mutexattr_t;
629 unsigned int __futex;
630 __extension__ unsigned long long int __total_seq;
631 __extension__ unsigned long long int __wakeup_seq;
632 __extension__ unsigned long long int __woken_seq;
634 unsigned int __nwaiters;
635 unsigned int __broadcast_seq;
638 __extension__ long long int __align;
645 } pthread_condattr_t;
649 typedef unsigned int pthread_key_t;
653 typedef int pthread_once_t;
665 unsigned int __nr_readers;
666 unsigned int __readers_wakeup;
667 unsigned int __writer_wakeup;
668 unsigned int __nr_readers_queued;
669 unsigned int __nr_writers_queued;
672 unsigned long int __pad1;
673 unsigned long int __pad2;
676 unsigned int __flags;
678 # 188 "/usr/include/bits/pthreadtypes.h" 3 4
687 } pthread_rwlockattr_t;
693 typedef volatile int pthread_spinlock_t;
708 } pthread_barrierattr_t;
709 # 31 "/usr/include/pthread.h" 2 3 4
710 # 1 "/usr/include/bits/setjmp.h" 1 3 4
711 # 33 "/usr/include/bits/setjmp.h" 3 4
712 # 1 "/usr/include/bits/wordsize.h" 1 3 4
713 # 34 "/usr/include/bits/setjmp.h" 2 3 4
714 # 44 "/usr/include/bits/setjmp.h" 3 4
715 typedef long int __jmp_buf[64] __attribute__ ((__aligned__ (16)));
716 # 32 "/usr/include/pthread.h" 2 3 4
717 # 1 "/usr/include/bits/wordsize.h" 1 3 4
718 # 33 "/usr/include/pthread.h" 2 3 4
724 PTHREAD_CREATE_JOINABLE,
726 PTHREAD_CREATE_DETACHED
734 PTHREAD_MUTEX_TIMED_NP,
735 PTHREAD_MUTEX_RECURSIVE_NP,
736 PTHREAD_MUTEX_ERRORCHECK_NP,
737 PTHREAD_MUTEX_ADAPTIVE_NP
740 PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP,
741 PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP,
742 PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP,
743 PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL
747 , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP
756 PTHREAD_MUTEX_STALLED,
757 PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED,
758 PTHREAD_MUTEX_ROBUST,
759 PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST
769 PTHREAD_PRIO_INHERIT,
772 # 117 "/usr/include/pthread.h" 3 4
775 PTHREAD_RWLOCK_PREFER_READER_NP,
776 PTHREAD_RWLOCK_PREFER_WRITER_NP,
777 PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP,
778 PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP
780 # 149 "/usr/include/pthread.h" 3 4
783 PTHREAD_INHERIT_SCHED,
785 PTHREAD_EXPLICIT_SCHED
793 PTHREAD_SCOPE_SYSTEM,
795 PTHREAD_SCOPE_PROCESS
803 PTHREAD_PROCESS_PRIVATE,
805 PTHREAD_PROCESS_SHARED
808 # 184 "/usr/include/pthread.h" 3 4
809 struct _pthread_cleanup_buffer
811 void (*__routine) (void *);
814 struct _pthread_cleanup_buffer *__prev;
820 PTHREAD_CANCEL_ENABLE,
822 PTHREAD_CANCEL_DISABLE
827 PTHREAD_CANCEL_DEFERRED,
829 PTHREAD_CANCEL_ASYNCHRONOUS
832 # 222 "/usr/include/pthread.h" 3 4
838 extern int pthread_create (pthread_t *__restrict __newthread,
839 __const pthread_attr_t *__restrict __attr,
840 void *(*__start_routine) (void *),
841 void *__restrict __arg) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
847 extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__));
855 extern int pthread_join (pthread_t __th, void **__thread_return);
860 extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __attribute__ ((__nothrow__));
868 extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return,
869 __const struct timespec *__abstime);
876 extern int pthread_detach (pthread_t __th) __attribute__ ((__nothrow__));
880 extern pthread_t pthread_self (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
883 extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) __attribute__ ((__nothrow__));
891 extern int pthread_attr_init (pthread_attr_t *__attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
894 extern int pthread_attr_destroy (pthread_attr_t *__attr)
895 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
898 extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr,
900 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
903 extern int pthread_attr_setdetachstate (pthread_attr_t *__attr,
905 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
909 extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr,
911 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
914 extern int pthread_attr_setguardsize (pthread_attr_t *__attr,
916 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
920 extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict
922 struct sched_param *__restrict __param)
923 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
926 extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr,
927 __const struct sched_param *__restrict
928 __param) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
931 extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict
932 __attr, int *__restrict __policy)
933 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
936 extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy)
937 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
940 extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict
941 __attr, int *__restrict __inherit)
942 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
945 extern int pthread_attr_setinheritsched (pthread_attr_t *__attr,
947 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
951 extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr,
952 int *__restrict __scope)
953 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
956 extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope)
957 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
960 extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict
961 __attr, void **__restrict __stackaddr)
962 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__));
968 extern int pthread_attr_setstackaddr (pthread_attr_t *__attr,
970 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__));
973 extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict
974 __attr, size_t *__restrict __stacksize)
975 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
980 extern int pthread_attr_setstacksize (pthread_attr_t *__attr,
982 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
986 extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr,
987 void **__restrict __stackaddr,
988 size_t *__restrict __stacksize)
989 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3)));
994 extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr,
995 size_t __stacksize) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1001 extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr,
1002 size_t __cpusetsize,
1003 __const cpu_set_t *__cpuset)
1004 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
1008 extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr,
1009 size_t __cpusetsize,
1010 cpu_set_t *__cpuset)
1011 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
1017 extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr)
1018 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1026 extern int pthread_setschedparam (pthread_t __target_thread, int __policy,
1027 __const struct sched_param *__param)
1028 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
1031 extern int pthread_getschedparam (pthread_t __target_thread,
1032 int *__restrict __policy,
1033 struct sched_param *__restrict __param)
1034 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
1037 extern int pthread_setschedprio (pthread_t __target_thread, int __prio)
1038 __attribute__ ((__nothrow__));
1043 extern int pthread_getconcurrency (void) __attribute__ ((__nothrow__));
1046 extern int pthread_setconcurrency (int __level) __attribute__ ((__nothrow__));
1054 extern int pthread_yield (void) __attribute__ ((__nothrow__));
1059 extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize,
1060 __const cpu_set_t *__cpuset)
1061 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
1064 extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize,
1065 cpu_set_t *__cpuset)
1066 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
1067 # 468 "/usr/include/pthread.h" 3 4
1068 extern int pthread_once (pthread_once_t *__once_control,
1069 void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2)));
1070 # 480 "/usr/include/pthread.h" 3 4
1071 extern int pthread_setcancelstate (int __state, int *__oldstate);
1075 extern int pthread_setcanceltype (int __type, int *__oldtype);
1078 extern int pthread_cancel (pthread_t __th);
1083 extern void pthread_testcancel (void);
1092 __jmp_buf __cancel_jmp_buf;
1093 int __mask_was_saved;
1094 } __cancel_jmp_buf[1];
1096 } __pthread_unwind_buf_t __attribute__ ((__aligned__));
1097 # 514 "/usr/include/pthread.h" 3 4
1098 struct __pthread_cleanup_frame
1100 void (*__cancel_routine) (void *);
1105 # 654 "/usr/include/pthread.h" 3 4
1106 extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf)
1108 # 666 "/usr/include/pthread.h" 3 4
1109 extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf)
1111 # 689 "/usr/include/pthread.h" 3 4
1112 extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf)
1114 # 702 "/usr/include/pthread.h" 3 4
1115 extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf)
1120 extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf)
1121 __attribute__ ((__noreturn__))
1123 __attribute__ ((__weak__))
1129 struct __jmp_buf_tag;
1130 extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __attribute__ ((__nothrow__));
1136 extern int pthread_mutex_init (pthread_mutex_t *__mutex,
1137 __const pthread_mutexattr_t *__mutexattr)
1138 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1141 extern int pthread_mutex_destroy (pthread_mutex_t *__mutex)
1142 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1145 extern int pthread_mutex_trylock (pthread_mutex_t *__mutex)
1146 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1149 extern int pthread_mutex_lock (pthread_mutex_t *__mutex)
1150 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1154 extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex,
1155 __const struct timespec *__restrict
1156 __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1160 extern int pthread_mutex_unlock (pthread_mutex_t *__mutex)
1161 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1166 extern int pthread_mutex_getprioceiling (__const pthread_mutex_t *
1168 int *__restrict __prioceiling)
1169 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1173 extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex,
1175 int *__restrict __old_ceiling)
1176 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
1182 extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
1183 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1185 extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex)
1186 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1187 # 782 "/usr/include/pthread.h" 3 4
1188 extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr)
1189 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1192 extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr)
1193 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1196 extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t *
1198 int *__restrict __pshared)
1199 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1202 extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr,
1204 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1208 extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict
1209 __attr, int *__restrict __kind)
1210 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1215 extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind)
1216 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1219 extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t *
1221 int *__restrict __protocol)
1222 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1226 extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr,
1228 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1231 extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t *
1233 int *__restrict __prioceiling)
1234 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1237 extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr,
1239 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1244 extern int pthread_mutexattr_getrobust (__const pthread_mutexattr_t *__attr,
1246 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1248 extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr,
1250 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1254 extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr,
1256 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1258 extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr,
1260 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1261 # 864 "/usr/include/pthread.h" 3 4
1262 extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock,
1263 __const pthread_rwlockattr_t *__restrict
1264 __attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1267 extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock)
1268 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1271 extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock)
1272 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1275 extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock)
1276 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1280 extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock,
1281 __const struct timespec *__restrict
1282 __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1286 extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock)
1287 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1290 extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock)
1291 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1295 extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock,
1296 __const struct timespec *__restrict
1297 __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1301 extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock)
1302 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1308 extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr)
1309 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1312 extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr)
1313 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1316 extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t *
1318 int *__restrict __pshared)
1319 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1322 extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr,
1324 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1327 extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t *
1329 int *__restrict __pref)
1330 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1333 extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr,
1334 int __pref) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1342 extern int pthread_cond_init (pthread_cond_t *__restrict __cond,
1343 __const pthread_condattr_t *__restrict
1344 __cond_attr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1347 extern int pthread_cond_destroy (pthread_cond_t *__cond)
1348 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1351 extern int pthread_cond_signal (pthread_cond_t *__cond)
1352 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1355 extern int pthread_cond_broadcast (pthread_cond_t *__cond)
1356 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1363 extern int pthread_cond_wait (pthread_cond_t *__restrict __cond,
1364 pthread_mutex_t *__restrict __mutex)
1365 __attribute__ ((__nonnull__ (1, 2)));
1366 # 976 "/usr/include/pthread.h" 3 4
1367 extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond,
1368 pthread_mutex_t *__restrict __mutex,
1369 __const struct timespec *__restrict
1370 __abstime) __attribute__ ((__nonnull__ (1, 2, 3)));
1375 extern int pthread_condattr_init (pthread_condattr_t *__attr)
1376 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1379 extern int pthread_condattr_destroy (pthread_condattr_t *__attr)
1380 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1383 extern int pthread_condattr_getpshared (__const pthread_condattr_t *
1385 int *__restrict __pshared)
1386 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1389 extern int pthread_condattr_setpshared (pthread_condattr_t *__attr,
1390 int __pshared) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1394 extern int pthread_condattr_getclock (__const pthread_condattr_t *
1396 __clockid_t *__restrict __clock_id)
1397 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1400 extern int pthread_condattr_setclock (pthread_condattr_t *__attr,
1401 __clockid_t __clock_id)
1402 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1403 # 1020 "/usr/include/pthread.h" 3 4
1404 extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared)
1405 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1408 extern int pthread_spin_destroy (pthread_spinlock_t *__lock)
1409 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1412 extern int pthread_spin_lock (pthread_spinlock_t *__lock)
1413 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1416 extern int pthread_spin_trylock (pthread_spinlock_t *__lock)
1417 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1420 extern int pthread_spin_unlock (pthread_spinlock_t *__lock)
1421 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1428 extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier,
1429 __const pthread_barrierattr_t *__restrict
1430 __attr, unsigned int __count)
1431 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1434 extern int pthread_barrier_destroy (pthread_barrier_t *__barrier)
1435 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1438 extern int pthread_barrier_wait (pthread_barrier_t *__barrier)
1439 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1443 extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr)
1444 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1447 extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr)
1448 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1451 extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t *
1453 int *__restrict __pshared)
1454 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
1457 extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr,
1459 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1460 # 1087 "/usr/include/pthread.h" 3 4
1461 extern int pthread_key_create (pthread_key_t *__key,
1462 void (*__destr_function) (void *))
1463 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
1466 extern int pthread_key_delete (pthread_key_t __key) __attribute__ ((__nothrow__));
1469 extern void *pthread_getspecific (pthread_key_t __key) __attribute__ ((__nothrow__));
1472 extern int pthread_setspecific (pthread_key_t __key,
1473 __const void *__pointer) __attribute__ ((__nothrow__)) ;
1478 extern int pthread_getcpuclockid (pthread_t __thread_id,
1479 __clockid_t *__clock_id)
1480 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
1481 # 1121 "/usr/include/pthread.h" 3 4
1482 extern int pthread_atfork (void (*__prepare) (void),
1483 void (*__parent) (void),
1484 void (*__child) (void)) __attribute__ ((__nothrow__));
1490 __attribute__ ((__nothrow__)) pthread_equal (pthread_t __thread1, pthread_t __thread2)
1492 return __thread1 == __thread2;
1497 # 242 "./../include/my_global.h" 2
1498 # 311 "./../include/my_global.h"
1499 # 1 "/usr/include/stdio.h" 1 3 4
1500 # 30 "/usr/include/stdio.h" 3 4
1505 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4
1506 # 35 "/usr/include/stdio.h" 2 3 4
1507 # 45 "/usr/include/stdio.h" 3 4
1512 typedef struct _IO_FILE FILE;
1518 # 65 "/usr/include/stdio.h" 3 4
1519 typedef struct _IO_FILE __FILE;
1520 # 75 "/usr/include/stdio.h" 3 4
1521 # 1 "/usr/include/libio.h" 1 3 4
1522 # 32 "/usr/include/libio.h" 3 4
1523 # 1 "/usr/include/_G_config.h" 1 3 4
1524 # 15 "/usr/include/_G_config.h" 3 4
1525 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4
1526 # 16 "/usr/include/_G_config.h" 2 3 4
1531 # 1 "/usr/include/wchar.h" 1 3 4
1532 # 83 "/usr/include/wchar.h" 3 4
1546 # 21 "/usr/include/_G_config.h" 2 3 4
1551 __mbstate_t __state;
1556 __mbstate_t __state;
1558 # 53 "/usr/include/_G_config.h" 3 4
1559 typedef int _G_int16_t __attribute__ ((__mode__ (__HI__)));
1560 typedef int _G_int32_t __attribute__ ((__mode__ (__SI__)));
1561 typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__)));
1562 typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__)));
1563 # 33 "/usr/include/libio.h" 2 3 4
1564 # 53 "/usr/include/libio.h" 3 4
1565 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stdarg.h" 1 3 4
1566 # 43 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stdarg.h" 3 4
1567 typedef __builtin_va_list __gnuc_va_list;
1568 # 54 "/usr/include/libio.h" 2 3 4
1569 # 170 "/usr/include/libio.h" 3 4
1570 struct _IO_jump_t; struct _IO_FILE;
1571 # 180 "/usr/include/libio.h" 3 4
1572 typedef void _IO_lock_t;
1579 struct _IO_marker *_next;
1580 struct _IO_FILE *_sbuf;
1585 # 203 "/usr/include/libio.h" 3 4
1589 enum __codecvt_result
1596 # 271 "/usr/include/libio.h" 3 4
1605 char* _IO_read_base;
1606 char* _IO_write_base;
1607 char* _IO_write_ptr;
1608 char* _IO_write_end;
1612 char *_IO_save_base;
1613 char *_IO_backup_base;
1616 struct _IO_marker *_markers;
1618 struct _IO_FILE *_chain;
1626 __off_t _old_offset;
1630 unsigned short _cur_column;
1631 signed char _vtable_offset;
1637 # 319 "/usr/include/libio.h" 3 4
1639 # 328 "/usr/include/libio.h" 3 4
1648 char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)];
1653 typedef struct _IO_FILE _IO_FILE;
1656 struct _IO_FILE_plus;
1658 extern struct _IO_FILE_plus _IO_2_1_stdin_;
1659 extern struct _IO_FILE_plus _IO_2_1_stdout_;
1660 extern struct _IO_FILE_plus _IO_2_1_stderr_;
1661 # 364 "/usr/include/libio.h" 3 4
1662 typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes);
1670 typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf,
1679 typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w);
1682 typedef int __io_close_fn (void *__cookie);
1687 typedef __io_read_fn cookie_read_function_t;
1688 typedef __io_write_fn cookie_write_function_t;
1689 typedef __io_seek_fn cookie_seek_function_t;
1690 typedef __io_close_fn cookie_close_function_t;
1696 __io_write_fn *write;
1698 __io_close_fn *close;
1699 } _IO_cookie_io_functions_t;
1700 typedef _IO_cookie_io_functions_t cookie_io_functions_t;
1702 struct _IO_cookie_file;
1705 extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write,
1706 void *__cookie, _IO_cookie_io_functions_t __fns);
1714 extern int __underflow (_IO_FILE *);
1715 extern int __uflow (_IO_FILE *);
1716 extern int __overflow (_IO_FILE *, int);
1717 # 458 "/usr/include/libio.h" 3 4
1718 extern int _IO_getc (_IO_FILE *__fp);
1719 extern int _IO_putc (int __c, _IO_FILE *__fp);
1720 extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__));
1721 extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__));
1723 extern int _IO_peekc_locked (_IO_FILE *__fp);
1729 extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__));
1730 extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__));
1731 extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__));
1732 # 488 "/usr/include/libio.h" 3 4
1733 extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict,
1734 __gnuc_va_list, int *__restrict);
1735 extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict,
1737 extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t);
1738 extern size_t _IO_sgetn (_IO_FILE *, void *, size_t);
1740 extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int);
1741 extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int);
1743 extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__));
1744 # 76 "/usr/include/stdio.h" 2 3 4
1749 typedef __gnuc_va_list va_list;
1750 # 89 "/usr/include/stdio.h" 3 4
1753 typedef _G_fpos_t fpos_t;
1759 typedef _G_fpos64_t fpos64_t;
1760 # 141 "/usr/include/stdio.h" 3 4
1761 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
1762 # 142 "/usr/include/stdio.h" 2 3 4
1766 extern struct _IO_FILE *stdin;
1767 extern struct _IO_FILE *stdout;
1768 extern struct _IO_FILE *stderr;
1776 extern int remove (__const char *__filename) __attribute__ ((__nothrow__));
1778 extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__));
1783 extern int renameat (int __oldfd, __const char *__old, int __newfd,
1784 __const char *__new) __attribute__ ((__nothrow__));
1793 extern FILE *tmpfile (void) __attribute__ ((__warn_unused_result__));
1794 # 182 "/usr/include/stdio.h" 3 4
1795 extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__));
1799 extern char *tmpnam (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1805 extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1806 # 204 "/usr/include/stdio.h" 3 4
1807 extern char *tempnam (__const char *__dir, __const char *__pfx)
1808 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
1817 extern int fclose (FILE *__stream);
1822 extern int fflush (FILE *__stream);
1824 # 229 "/usr/include/stdio.h" 3 4
1825 extern int fflush_unlocked (FILE *__stream);
1826 # 239 "/usr/include/stdio.h" 3 4
1827 extern int fcloseall (void);
1837 extern FILE *fopen (__const char *__restrict __filename,
1838 __const char *__restrict __modes) __attribute__ ((__warn_unused_result__));
1843 extern FILE *freopen (__const char *__restrict __filename,
1844 __const char *__restrict __modes,
1845 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1846 # 272 "/usr/include/stdio.h" 3 4
1849 extern FILE *fopen64 (__const char *__restrict __filename,
1850 __const char *__restrict __modes) __attribute__ ((__warn_unused_result__));
1851 extern FILE *freopen64 (__const char *__restrict __filename,
1852 __const char *__restrict __modes,
1853 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
1858 extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1864 extern FILE *fopencookie (void *__restrict __magic_cookie,
1865 __const char *__restrict __modes,
1866 _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1871 extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes)
1872 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1877 extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
1884 extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__));
1888 extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf,
1889 int __modes, size_t __n) __attribute__ ((__nothrow__));
1895 extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf,
1896 size_t __size) __attribute__ ((__nothrow__));
1899 extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__));
1908 extern int fprintf (FILE *__restrict __stream,
1909 __const char *__restrict __format, ...);
1914 extern int printf (__const char *__restrict __format, ...);
1916 extern int sprintf (char *__restrict __s,
1917 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
1923 extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format,
1924 __gnuc_va_list __arg);
1929 extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg);
1931 extern int vsprintf (char *__restrict __s, __const char *__restrict __format,
1932 __gnuc_va_list __arg) __attribute__ ((__nothrow__));
1938 extern int snprintf (char *__restrict __s, size_t __maxlen,
1939 __const char *__restrict __format, ...)
1940 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
1942 extern int vsnprintf (char *__restrict __s, size_t __maxlen,
1943 __const char *__restrict __format, __gnuc_va_list __arg)
1944 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
1951 extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f,
1952 __gnuc_va_list __arg)
1953 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__));
1954 extern int __asprintf (char **__restrict __ptr,
1955 __const char *__restrict __fmt, ...)
1956 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__));
1957 extern int asprintf (char **__restrict __ptr,
1958 __const char *__restrict __fmt, ...)
1959 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__));
1960 # 394 "/usr/include/stdio.h" 3 4
1961 extern int vdprintf (int __fd, __const char *__restrict __fmt,
1962 __gnuc_va_list __arg)
1963 __attribute__ ((__format__ (__printf__, 2, 0)));
1964 extern int dprintf (int __fd, __const char *__restrict __fmt, ...)
1965 __attribute__ ((__format__ (__printf__, 2, 3)));
1974 extern int fscanf (FILE *__restrict __stream,
1975 __const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__));
1980 extern int scanf (__const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__));
1982 extern int sscanf (__const char *__restrict __s,
1983 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
1984 # 445 "/usr/include/stdio.h" 3 4
1993 extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format,
1994 __gnuc_va_list __arg)
1995 __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__));
2001 extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg)
2002 __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__));
2005 extern int vsscanf (__const char *__restrict __s,
2006 __const char *__restrict __format, __gnuc_va_list __arg)
2007 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__scanf__, 2, 0)));
2008 # 504 "/usr/include/stdio.h" 3 4
2018 extern int fgetc (FILE *__stream);
2019 extern int getc (FILE *__stream);
2025 extern int getchar (void);
2027 # 532 "/usr/include/stdio.h" 3 4
2028 extern int getc_unlocked (FILE *__stream);
2029 extern int getchar_unlocked (void);
2030 # 543 "/usr/include/stdio.h" 3 4
2031 extern int fgetc_unlocked (FILE *__stream);
2043 extern int fputc (int __c, FILE *__stream);
2044 extern int putc (int __c, FILE *__stream);
2050 extern int putchar (int __c);
2052 # 576 "/usr/include/stdio.h" 3 4
2053 extern int fputc_unlocked (int __c, FILE *__stream);
2061 extern int putc_unlocked (int __c, FILE *__stream);
2062 extern int putchar_unlocked (int __c);
2069 extern int getw (FILE *__stream);
2072 extern int putw (int __w, FILE *__stream);
2081 extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
2082 __attribute__ ((__warn_unused_result__));
2089 extern char *gets (char *__s) __attribute__ ((__warn_unused_result__));
2091 # 622 "/usr/include/stdio.h" 3 4
2092 extern char *fgets_unlocked (char *__restrict __s, int __n,
2093 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
2094 # 638 "/usr/include/stdio.h" 3 4
2095 extern __ssize_t __getdelim (char **__restrict __lineptr,
2096 size_t *__restrict __n, int __delimiter,
2097 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
2098 extern __ssize_t getdelim (char **__restrict __lineptr,
2099 size_t *__restrict __n, int __delimiter,
2100 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
2108 extern __ssize_t getline (char **__restrict __lineptr,
2109 size_t *__restrict __n,
2110 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
2119 extern int fputs (__const char *__restrict __s, FILE *__restrict __stream);
2125 extern int puts (__const char *__s);
2132 extern int ungetc (int __c, FILE *__stream);
2139 extern size_t fread (void *__restrict __ptr, size_t __size,
2140 size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
2145 extern size_t fwrite (__const void *__restrict __ptr, size_t __size,
2146 size_t __n, FILE *__restrict __s) __attribute__ ((__warn_unused_result__));
2148 # 699 "/usr/include/stdio.h" 3 4
2149 extern int fputs_unlocked (__const char *__restrict __s,
2150 FILE *__restrict __stream);
2151 # 710 "/usr/include/stdio.h" 3 4
2152 extern size_t fread_unlocked (void *__restrict __ptr, size_t __size,
2153 size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
2154 extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size,
2155 size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
2164 extern int fseek (FILE *__stream, long int __off, int __whence);
2169 extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__));
2174 extern void rewind (FILE *__stream);
2176 # 746 "/usr/include/stdio.h" 3 4
2177 extern int fseeko (FILE *__stream, __off_t __off, int __whence);
2182 extern __off_t ftello (FILE *__stream) __attribute__ ((__warn_unused_result__));
2183 # 765 "/usr/include/stdio.h" 3 4
2190 extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos);
2195 extern int fsetpos (FILE *__stream, __const fpos_t *__pos);
2196 # 788 "/usr/include/stdio.h" 3 4
2200 extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence);
2201 extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__));
2202 extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos);
2203 extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos);
2208 extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__));
2210 extern int feof (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2212 extern int ferror (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2217 extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__));
2218 extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2219 extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2228 extern void perror (__const char *__s);
2235 # 1 "/usr/include/bits/sys_errlist.h" 1 3 4
2236 # 27 "/usr/include/bits/sys_errlist.h" 3 4
2237 extern int sys_nerr;
2238 extern __const char *__const sys_errlist[];
2241 extern int _sys_nerr;
2242 extern __const char *__const _sys_errlist[];
2243 # 827 "/usr/include/stdio.h" 2 3 4
2248 extern int fileno (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2253 extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2254 # 846 "/usr/include/stdio.h" 3 4
2255 extern FILE *popen (__const char *__command, __const char *__modes) __attribute__ ((__warn_unused_result__));
2261 extern int pclose (FILE *__stream);
2267 extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
2273 extern char *cuserid (char *__s);
2281 extern int obstack_printf (struct obstack *__restrict __obstack,
2282 __const char *__restrict __format, ...)
2283 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3)));
2284 extern int obstack_vprintf (struct obstack *__restrict __obstack,
2285 __const char *__restrict __format,
2286 __gnuc_va_list __args)
2287 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0)));
2295 extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__));
2299 extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2302 extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__));
2303 # 907 "/usr/include/stdio.h" 3 4
2304 # 1 "/usr/include/bits/stdio.h" 1 3 4
2305 # 44 "/usr/include/bits/stdio.h" 3 4
2309 return _IO_getc (stdin);
2316 fgetc_unlocked (FILE *__fp)
2318 return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
2326 getc_unlocked (FILE *__fp)
2328 return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++);
2333 getchar_unlocked (void)
2335 return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++);
2344 return _IO_putc (__c, stdout);
2351 fputc_unlocked (int __c, FILE *__stream)
2353 return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
2361 putc_unlocked (int __c, FILE *__stream)
2363 return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c)));
2368 putchar_unlocked (int __c)
2370 return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c)));
2377 extern __inline __ssize_t
2378 getline (char **__lineptr, size_t *__n, FILE *__stream)
2380 return __getdelim (__lineptr, __n, '\n', __stream);
2388 __attribute__ ((__nothrow__)) feof_unlocked (FILE *__stream)
2390 return (((__stream)->_flags & 0x10) != 0);
2395 __attribute__ ((__nothrow__)) ferror_unlocked (FILE *__stream)
2397 return (((__stream)->_flags & 0x20) != 0);
2399 # 908 "/usr/include/stdio.h" 2 3 4
2402 # 1 "/usr/include/bits/stdio2.h" 1 3 4
2403 # 24 "/usr/include/bits/stdio2.h" 3 4
2404 extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen,
2405 __const char *__restrict __format, ...) __attribute__ ((__nothrow__));
2406 extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen,
2407 __const char *__restrict __format,
2408 __gnuc_va_list __ap) __attribute__ ((__nothrow__));
2411 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
2412 __attribute__ ((__nothrow__)) sprintf (char *__restrict __s, __const char *__restrict __fmt, ...)
2414 return __builtin___sprintf_chk (__s, 2 - 1,
2415 __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ());
2423 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
2424 __attribute__ ((__nothrow__)) vsprintf (char *__restrict __s, __const char *__restrict __fmt, __gnuc_va_list __ap)
2427 return __builtin___vsprintf_chk (__s, 2 - 1,
2428 __builtin_object_size (__s, 2 > 1), __fmt, __ap);
2433 extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag,
2434 size_t __slen, __const char *__restrict __format,
2435 ...) __attribute__ ((__nothrow__));
2436 extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag,
2437 size_t __slen, __const char *__restrict __format,
2438 __gnuc_va_list __ap) __attribute__ ((__nothrow__));
2441 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
2442 __attribute__ ((__nothrow__)) snprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, ...)
2445 return __builtin___snprintf_chk (__s, __n, 2 - 1,
2446 __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ());
2454 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
2455 __attribute__ ((__nothrow__)) vsnprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, __gnuc_va_list __ap)
2458 return __builtin___vsnprintf_chk (__s, __n, 2 - 1,
2459 __builtin_object_size (__s, 2 > 1), __fmt, __ap);
2466 extern int __fprintf_chk (FILE *__restrict __stream, int __flag,
2467 __const char *__restrict __format, ...);
2468 extern int __printf_chk (int __flag, __const char *__restrict __format, ...);
2469 extern int __vfprintf_chk (FILE *__restrict __stream, int __flag,
2470 __const char *__restrict __format, __gnuc_va_list __ap);
2471 extern int __vprintf_chk (int __flag, __const char *__restrict __format,
2472 __gnuc_va_list __ap);
2475 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
2476 fprintf (FILE *__restrict __stream, __const char *__restrict __fmt, ...)
2478 return __fprintf_chk (__stream, 2 - 1, __fmt,
2479 __builtin_va_arg_pack ());
2482 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
2483 printf (__const char *__restrict __fmt, ...)
2485 return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ());
2494 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
2495 vprintf (__const char *__restrict __fmt, __gnuc_va_list __ap)
2498 return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap);
2504 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
2505 vfprintf (FILE *__restrict __stream,
2506 __const char *__restrict __fmt, __gnuc_va_list __ap)
2508 return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap);
2513 extern int __asprintf_chk (char **__restrict __ptr, int __flag,
2514 __const char *__restrict __fmt, ...)
2515 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__));
2516 extern int __vasprintf_chk (char **__restrict __ptr, int __flag,
2517 __const char *__restrict __fmt, __gnuc_va_list __arg)
2518 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__));
2519 extern int __dprintf_chk (int __fd, int __flag, __const char *__restrict __fmt,
2520 ...) __attribute__ ((__format__ (__printf__, 3, 4)));
2521 extern int __vdprintf_chk (int __fd, int __flag,
2522 __const char *__restrict __fmt, __gnuc_va_list __arg)
2523 __attribute__ ((__format__ (__printf__, 3, 0)));
2524 extern int __obstack_printf_chk (struct obstack *__restrict __obstack,
2525 int __flag, __const char *__restrict __format,
2527 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4)));
2528 extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack,
2530 __const char *__restrict __format,
2531 __gnuc_va_list __args)
2532 __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0)));
2535 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
2536 __attribute__ ((__nothrow__)) asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...)
2538 return __asprintf_chk (__ptr, 2 - 1, __fmt,
2539 __builtin_va_arg_pack ());
2542 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
2543 __attribute__ ((__nothrow__)) __asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...)
2546 return __asprintf_chk (__ptr, 2 - 1, __fmt,
2547 __builtin_va_arg_pack ());
2550 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
2551 dprintf (int __fd, __const char *__restrict __fmt, ...)
2553 return __dprintf_chk (__fd, 2 - 1, __fmt,
2554 __builtin_va_arg_pack ());
2557 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
2558 __attribute__ ((__nothrow__)) obstack_printf (struct obstack *__restrict __obstack, __const char *__restrict __fmt, ...)
2561 return __obstack_printf_chk (__obstack, 2 - 1, __fmt,
2562 __builtin_va_arg_pack ());
2564 # 195 "/usr/include/bits/stdio2.h" 3 4
2565 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
2566 __attribute__ ((__nothrow__)) vasprintf (char **__restrict __ptr, __const char *__restrict __fmt, __gnuc_va_list __ap)
2569 return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap);
2572 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
2573 vdprintf (int __fd, __const char *__restrict __fmt, __gnuc_va_list __ap)
2575 return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap);
2578 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
2579 __attribute__ ((__nothrow__)) obstack_vprintf (struct obstack *__restrict __obstack, __const char *__restrict __fmt, __gnuc_va_list __ap)
2582 return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt,
2590 extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__));
2591 extern char *__gets_warn (char *__str) __asm__ ("" "gets")
2592 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size")));
2595 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
2598 if (__builtin_object_size (__str, 2 > 1) != (size_t) -1)
2599 return __gets_chk (__str, __builtin_object_size (__str, 2 > 1));
2600 return __gets_warn (__str);
2603 extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n,
2604 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
2605 extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") __attribute__ ((__warn_unused_result__));
2608 extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk")
2611 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer")));
2614 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
2615 fgets (char *__restrict __s, int __n, FILE *__restrict __stream)
2617 if (__builtin_object_size (__s, 2 > 1) != (size_t) -1)
2619 if (!__builtin_constant_p (__n) || __n <= 0)
2620 return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
2622 if ((size_t) __n > __builtin_object_size (__s, 2 > 1))
2623 return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
2625 return __fgets_alias (__s, __n, __stream);
2628 extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen,
2629 size_t __size, size_t __n,
2630 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
2631 extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") __attribute__ ((__warn_unused_result__));
2635 extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk")
2640 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer")));
2643 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t
2644 fread (void *__restrict __ptr, size_t __size, size_t __n,
2645 FILE *__restrict __stream)
2647 if (__builtin_object_size (__ptr, 0) != (size_t) -1)
2649 if (!__builtin_constant_p (__size)
2650 || !__builtin_constant_p (__n)
2651 || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
2652 return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream);
2654 if (__size * __n > __builtin_object_size (__ptr, 0))
2655 return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream);
2657 return __fread_alias (__ptr, __size, __n, __stream);
2661 extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size,
2662 int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
2663 extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") __attribute__ ((__warn_unused_result__));
2666 extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk")
2669 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer")));
2672 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
2673 fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream)
2675 if (__builtin_object_size (__s, 2 > 1) != (size_t) -1)
2677 if (!__builtin_constant_p (__n) || __n <= 0)
2678 return __fgets_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
2680 if ((size_t) __n > __builtin_object_size (__s, 2 > 1))
2681 return __fgets_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream);
2683 return __fgets_unlocked_alias (__s, __n, __stream);
2689 extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen,
2690 size_t __size, size_t __n,
2691 FILE *__restrict __stream) __attribute__ ((__warn_unused_result__));
2692 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__));
2696 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")
2701 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer")));
2704 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t
2705 fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n,
2706 FILE *__restrict __stream)
2708 if (__builtin_object_size (__ptr, 0) != (size_t) -1)
2710 if (!__builtin_constant_p (__size)
2711 || !__builtin_constant_p (__n)
2712 || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2)))
2713 return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n,
2716 if (__size * __n > __builtin_object_size (__ptr, 0))
2717 return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n,
2722 if (__builtin_constant_p (__size)
2723 && __builtin_constant_p (__n)
2724 && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2))
2725 && __size * __n <= 8)
2727 size_t __cnt = __size * __n;
2728 char *__cptr = (char *) __ptr;
2732 for (; __cnt > 0; --__cnt)
2734 int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++);
2739 return (__cptr - (char *) __ptr) / __size;
2742 return __fread_unlocked_alias (__ptr, __size, __n, __stream);
2744 # 911 "/usr/include/stdio.h" 2 3 4
2751 # 312 "./../include/my_global.h" 2
2754 # 1 "/usr/include/stdlib.h" 1 3 4
2755 # 33 "/usr/include/stdlib.h" 3 4
2756 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4
2757 # 326 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 3 4
2758 typedef int wchar_t;
2759 # 34 "/usr/include/stdlib.h" 2 3 4
2768 # 1 "/usr/include/bits/waitflags.h" 1 3 4
2769 # 43 "/usr/include/stdlib.h" 2 3 4
2770 # 1 "/usr/include/bits/waitstatus.h" 1 3 4
2771 # 67 "/usr/include/bits/waitstatus.h" 3 4
2785 unsigned int __w_retcode:8;
2786 unsigned int __w_coredump:1;
2787 unsigned int __w_termsig:7;
2789 } __wait_terminated;
2799 unsigned int __w_stopsig:8;
2800 unsigned int __w_stopval:8;
2804 # 44 "/usr/include/stdlib.h" 2 3 4
2805 # 68 "/usr/include/stdlib.h" 3 4
2810 } __WAIT_STATUS __attribute__ ((__transparent_union__));
2811 # 96 "/usr/include/stdlib.h" 3 4
2834 __extension__ typedef struct
2841 # 140 "/usr/include/stdlib.h" 3 4
2842 extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2847 extern double atof (__const char *__nptr)
2848 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2850 extern int atoi (__const char *__nptr)
2851 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2853 extern long int atol (__const char *__nptr)
2854 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2860 __extension__ extern long long int atoll (__const char *__nptr)
2861 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2867 extern double strtod (__const char *__restrict __nptr,
2868 char **__restrict __endptr)
2869 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2875 extern float strtof (__const char *__restrict __nptr,
2876 char **__restrict __endptr) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2878 extern long double strtold (__const char *__restrict __nptr,
2879 char **__restrict __endptr)
2880 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2886 extern long int strtol (__const char *__restrict __nptr,
2887 char **__restrict __endptr, int __base)
2888 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2890 extern unsigned long int strtoul (__const char *__restrict __nptr,
2891 char **__restrict __endptr, int __base)
2892 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2898 extern long long int strtoq (__const char *__restrict __nptr,
2899 char **__restrict __endptr, int __base)
2900 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2903 extern unsigned long long int strtouq (__const char *__restrict __nptr,
2904 char **__restrict __endptr, int __base)
2905 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2912 extern long long int strtoll (__const char *__restrict __nptr,
2913 char **__restrict __endptr, int __base)
2914 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2917 extern unsigned long long int strtoull (__const char *__restrict __nptr,
2918 char **__restrict __endptr, int __base)
2919 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2921 # 240 "/usr/include/stdlib.h" 3 4
2922 extern long int strtol_l (__const char *__restrict __nptr,
2923 char **__restrict __endptr, int __base,
2924 __locale_t __loc) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__));
2926 extern unsigned long int strtoul_l (__const char *__restrict __nptr,
2927 char **__restrict __endptr,
2928 int __base, __locale_t __loc)
2929 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__));
2932 extern long long int strtoll_l (__const char *__restrict __nptr,
2933 char **__restrict __endptr, int __base,
2935 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__));
2938 extern unsigned long long int strtoull_l (__const char *__restrict __nptr,
2939 char **__restrict __endptr,
2940 int __base, __locale_t __loc)
2941 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__));
2943 extern double strtod_l (__const char *__restrict __nptr,
2944 char **__restrict __endptr, __locale_t __loc)
2945 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__));
2947 extern float strtof_l (__const char *__restrict __nptr,
2948 char **__restrict __endptr, __locale_t __loc)
2949 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__));
2951 extern long double strtold_l (__const char *__restrict __nptr,
2952 char **__restrict __endptr,
2954 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__));
2960 extern __inline double
2961 __attribute__ ((__nothrow__)) atof (__const char *__nptr)
2963 return strtod (__nptr, (char **) ((void *)0));
2966 __attribute__ ((__nothrow__)) atoi (__const char *__nptr)
2968 return (int) strtol (__nptr, (char **) ((void *)0), 10);
2970 extern __inline long int
2971 __attribute__ ((__nothrow__)) atol (__const char *__nptr)
2973 return strtol (__nptr, (char **) ((void *)0), 10);
2979 __extension__ extern __inline long long int
2980 __attribute__ ((__nothrow__)) atoll (__const char *__nptr)
2982 return strtoll (__nptr, (char **) ((void *)0), 10);
2985 # 311 "/usr/include/stdlib.h" 3 4
2986 extern char *l64a (long int __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
2989 extern long int a64l (__const char *__s)
2990 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
2995 # 1 "/usr/include/sys/types.h" 1 3 4
2996 # 29 "/usr/include/sys/types.h" 3 4
3003 typedef __u_char u_char;
3004 typedef __u_short u_short;
3005 typedef __u_int u_int;
3006 typedef __u_long u_long;
3007 typedef __quad_t quad_t;
3008 typedef __u_quad_t u_quad_t;
3009 typedef __fsid_t fsid_t;
3014 typedef __loff_t loff_t;
3018 typedef __ino_t ino_t;
3025 typedef __ino64_t ino64_t;
3030 typedef __dev_t dev_t;
3035 typedef __gid_t gid_t;
3040 typedef __mode_t mode_t;
3045 typedef __nlink_t nlink_t;
3050 typedef __uid_t uid_t;
3056 typedef __off_t off_t;
3063 typedef __off64_t off64_t;
3064 # 105 "/usr/include/sys/types.h" 3 4
3065 typedef __id_t id_t;
3070 typedef __ssize_t ssize_t;
3076 typedef __daddr_t daddr_t;
3077 typedef __caddr_t caddr_t;
3083 typedef __key_t key_t;
3084 # 137 "/usr/include/sys/types.h" 3 4
3085 typedef __useconds_t useconds_t;
3089 typedef __suseconds_t suseconds_t;
3095 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4
3096 # 148 "/usr/include/sys/types.h" 2 3 4
3100 typedef unsigned long int ulong;
3101 typedef unsigned short int ushort;
3102 typedef unsigned int uint;
3103 # 195 "/usr/include/sys/types.h" 3 4
3104 typedef int int8_t __attribute__ ((__mode__ (__QI__)));
3105 typedef int int16_t __attribute__ ((__mode__ (__HI__)));
3106 typedef int int32_t __attribute__ ((__mode__ (__SI__)));
3107 typedef int int64_t __attribute__ ((__mode__ (__DI__)));
3110 typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__)));
3111 typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__)));
3112 typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__)));
3113 typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__)));
3115 typedef int register_t __attribute__ ((__mode__ (__word__)));
3116 # 220 "/usr/include/sys/types.h" 3 4
3117 # 1 "/usr/include/sys/select.h" 1 3 4
3118 # 31 "/usr/include/sys/select.h" 3 4
3119 # 1 "/usr/include/bits/select.h" 1 3 4
3120 # 32 "/usr/include/sys/select.h" 2 3 4
3123 # 1 "/usr/include/bits/sigset.h" 1 3 4
3124 # 35 "/usr/include/sys/select.h" 2 3 4
3125 # 46 "/usr/include/sys/select.h" 3 4
3126 # 1 "/usr/include/bits/time.h" 1 3 4
3127 # 69 "/usr/include/bits/time.h" 3 4
3131 __suseconds_t tv_usec;
3133 # 47 "/usr/include/sys/select.h" 2 3 4
3134 # 55 "/usr/include/sys/select.h" 3 4
3135 typedef long int __fd_mask;
3136 # 67 "/usr/include/sys/select.h" 3 4
3142 __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))];
3155 typedef __fd_mask fd_mask;
3156 # 99 "/usr/include/sys/select.h" 3 4
3158 # 109 "/usr/include/sys/select.h" 3 4
3159 extern int select (int __nfds, fd_set *__restrict __readfds,
3160 fd_set *__restrict __writefds,
3161 fd_set *__restrict __exceptfds,
3162 struct timeval *__restrict __timeout);
3163 # 121 "/usr/include/sys/select.h" 3 4
3164 extern int pselect (int __nfds, fd_set *__restrict __readfds,
3165 fd_set *__restrict __writefds,
3166 fd_set *__restrict __exceptfds,
3167 const struct timespec *__restrict __timeout,
3168 const __sigset_t *__restrict __sigmask);
3172 # 221 "/usr/include/sys/types.h" 2 3 4
3175 # 1 "/usr/include/sys/sysmacros.h" 1 3 4
3176 # 30 "/usr/include/sys/sysmacros.h" 3 4
3178 extern unsigned int gnu_dev_major (unsigned long long int __dev)
3179 __attribute__ ((__nothrow__));
3181 extern unsigned int gnu_dev_minor (unsigned long long int __dev)
3182 __attribute__ ((__nothrow__));
3184 extern unsigned long long int gnu_dev_makedev (unsigned int __major,
3185 unsigned int __minor)
3186 __attribute__ ((__nothrow__));
3189 __extension__ extern __inline unsigned int
3190 __attribute__ ((__nothrow__)) gnu_dev_major (unsigned long long int __dev)
3192 return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff);
3195 __extension__ extern __inline unsigned int
3196 __attribute__ ((__nothrow__)) gnu_dev_minor (unsigned long long int __dev)
3198 return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff);
3201 __extension__ extern __inline unsigned long long int
3202 __attribute__ ((__nothrow__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor)
3204 return ((__minor & 0xff) | ((__major & 0xfff) << 8)
3205 | (((unsigned long long int) (__minor & ~0xff)) << 12)
3206 | (((unsigned long long int) (__major & ~0xfff)) << 32));
3208 # 224 "/usr/include/sys/types.h" 2 3 4
3213 typedef __blksize_t blksize_t;
3220 typedef __blkcnt_t blkcnt_t;
3224 typedef __fsblkcnt_t fsblkcnt_t;
3228 typedef __fsfilcnt_t fsfilcnt_t;
3229 # 262 "/usr/include/sys/types.h" 3 4
3230 typedef __blkcnt64_t blkcnt64_t;
3231 typedef __fsblkcnt64_t fsblkcnt64_t;
3232 typedef __fsfilcnt64_t fsfilcnt64_t;
3233 # 273 "/usr/include/sys/types.h" 3 4
3235 # 321 "/usr/include/stdlib.h" 2 3 4
3242 extern long int random (void) __attribute__ ((__nothrow__));
3245 extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__));
3251 extern char *initstate (unsigned int __seed, char *__statebuf,
3252 size_t __statelen) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
3256 extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3275 extern int random_r (struct random_data *__restrict __buf,
3276 int32_t *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
3278 extern int srandom_r (unsigned int __seed, struct random_data *__buf)
3279 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
3281 extern int initstate_r (unsigned int __seed, char *__restrict __statebuf,
3283 struct random_data *__restrict __buf)
3284 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
3286 extern int setstate_r (char *__restrict __statebuf,
3287 struct random_data *__restrict __buf)
3288 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
3295 extern int rand (void) __attribute__ ((__nothrow__));
3297 extern void srand (unsigned int __seed) __attribute__ ((__nothrow__));
3302 extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__));
3310 extern double drand48 (void) __attribute__ ((__nothrow__));
3311 extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3314 extern long int lrand48 (void) __attribute__ ((__nothrow__));
3315 extern long int nrand48 (unsigned short int __xsubi[3])
3316 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3319 extern long int mrand48 (void) __attribute__ ((__nothrow__));
3320 extern long int jrand48 (unsigned short int __xsubi[3])
3321 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3324 extern void srand48 (long int __seedval) __attribute__ ((__nothrow__));
3325 extern unsigned short int *seed48 (unsigned short int __seed16v[3])
3326 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3327 extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3335 unsigned short int __x[3];
3336 unsigned short int __old_x[3];
3337 unsigned short int __c;
3338 unsigned short int __init;
3339 unsigned long long int __a;
3343 extern int drand48_r (struct drand48_data *__restrict __buffer,
3344 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
3345 extern int erand48_r (unsigned short int __xsubi[3],
3346 struct drand48_data *__restrict __buffer,
3347 double *__restrict __result) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
3350 extern int lrand48_r (struct drand48_data *__restrict __buffer,
3351 long int *__restrict __result)
3352 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
3353 extern int nrand48_r (unsigned short int __xsubi[3],
3354 struct drand48_data *__restrict __buffer,
3355 long int *__restrict __result)
3356 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
3359 extern int mrand48_r (struct drand48_data *__restrict __buffer,
3360 long int *__restrict __result)
3361 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
3362 extern int jrand48_r (unsigned short int __xsubi[3],
3363 struct drand48_data *__restrict __buffer,
3364 long int *__restrict __result)
3365 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
3368 extern int srand48_r (long int __seedval, struct drand48_data *__buffer)
3369 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
3371 extern int seed48_r (unsigned short int __seed16v[3],
3372 struct drand48_data *__buffer) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
3374 extern int lcong48_r (unsigned short int __param[7],
3375 struct drand48_data *__buffer)
3376 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
3386 extern void *malloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
3388 extern void *calloc (size_t __nmemb, size_t __size)
3389 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
3400 extern void *realloc (void *__ptr, size_t __size)
3401 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
3403 extern void free (void *__ptr) __attribute__ ((__nothrow__));
3408 extern void cfree (void *__ptr) __attribute__ ((__nothrow__));
3412 # 1 "/usr/include/alloca.h" 1 3 4
3413 # 25 "/usr/include/alloca.h" 3 4
3414 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4
3415 # 26 "/usr/include/alloca.h" 2 3 4
3423 extern void *alloca (size_t __size) __attribute__ ((__nothrow__));
3430 # 498 "/usr/include/stdlib.h" 2 3 4
3435 extern void *valloc (size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__));
3440 extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size)
3441 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
3446 extern void abort (void) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
3450 extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3451 # 527 "/usr/include/stdlib.h" 3 4
3452 extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3460 extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg)
3461 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3468 extern void exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
3476 extern void quick_exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
3484 extern void _Exit (int __status) __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
3491 extern char *getenv (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
3496 extern char *__secure_getenv (__const char *__name)
3497 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
3503 extern int putenv (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3509 extern int setenv (__const char *__name, __const char *__value, int __replace)
3510 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
3513 extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__));
3520 extern int clearenv (void) __attribute__ ((__nothrow__));
3521 # 604 "/usr/include/stdlib.h" 3 4
3522 extern char *mktemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
3523 # 615 "/usr/include/stdlib.h" 3 4
3524 extern int mkstemp (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
3525 # 625 "/usr/include/stdlib.h" 3 4
3526 extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
3527 # 635 "/usr/include/stdlib.h" 3 4
3528 extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
3529 # 646 "/usr/include/stdlib.h" 3 4
3530 extern int mkostemp (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
3531 # 656 "/usr/include/stdlib.h" 3 4
3532 extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
3542 extern int system (__const char *__command) __attribute__ ((__warn_unused_result__));
3549 extern char *canonicalize_file_name (__const char *__name)
3550 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
3551 # 683 "/usr/include/stdlib.h" 3 4
3552 extern char *realpath (__const char *__restrict __name,
3553 char *__restrict __resolved) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
3560 typedef int (*__compar_fn_t) (__const void *, __const void *);
3563 typedef __compar_fn_t comparison_fn_t;
3567 typedef int (*__compar_d_fn_t) (__const void *, __const void *, void *);
3573 extern void *bsearch (__const void *__key, __const void *__base,
3574 size_t __nmemb, size_t __size, __compar_fn_t __compar)
3575 __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__));
3579 extern void qsort (void *__base, size_t __nmemb, size_t __size,
3580 __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4)));
3582 extern void qsort_r (void *__base, size_t __nmemb, size_t __size,
3583 __compar_d_fn_t __compar, void *__arg)
3584 __attribute__ ((__nonnull__ (1, 4)));
3589 extern int abs (int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
3590 extern long int labs (long int __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
3594 __extension__ extern long long int llabs (long long int __x)
3595 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
3603 extern div_t div (int __numer, int __denom)
3604 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
3605 extern ldiv_t ldiv (long int __numer, long int __denom)
3606 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
3611 __extension__ extern lldiv_t lldiv (long long int __numer,
3612 long long int __denom)
3613 __attribute__ ((__nothrow__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__));
3615 # 756 "/usr/include/stdlib.h" 3 4
3616 extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt,
3617 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
3622 extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt,
3623 int *__restrict __sign) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
3628 extern char *gcvt (double __value, int __ndigit, char *__buf)
3629 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
3634 extern char *qecvt (long double __value, int __ndigit,
3635 int *__restrict __decpt, int *__restrict __sign)
3636 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
3637 extern char *qfcvt (long double __value, int __ndigit,
3638 int *__restrict __decpt, int *__restrict __sign)
3639 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__));
3640 extern char *qgcvt (long double __value, int __ndigit, char *__buf)
3641 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__));
3646 extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt,
3647 int *__restrict __sign, char *__restrict __buf,
3648 size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
3649 extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt,
3650 int *__restrict __sign, char *__restrict __buf,
3651 size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
3653 extern int qecvt_r (long double __value, int __ndigit,
3654 int *__restrict __decpt, int *__restrict __sign,
3655 char *__restrict __buf, size_t __len)
3656 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
3657 extern int qfcvt_r (long double __value, int __ndigit,
3658 int *__restrict __decpt, int *__restrict __sign,
3659 char *__restrict __buf, size_t __len)
3660 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4, 5)));
3668 extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
3671 extern int mbtowc (wchar_t *__restrict __pwc,
3672 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
3675 extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
3679 extern size_t mbstowcs (wchar_t *__restrict __pwcs,
3680 __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__));
3682 extern size_t wcstombs (char *__restrict __s,
3683 __const wchar_t *__restrict __pwcs, size_t __n)
3684 __attribute__ ((__nothrow__));
3693 extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
3694 # 844 "/usr/include/stdlib.h" 3 4
3695 extern int getsubopt (char **__restrict __optionp,
3696 char *__const *__restrict __tokens,
3697 char **__restrict __valuep)
3698 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__));
3704 extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3712 extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__));
3720 extern int grantpt (int __fd) __attribute__ ((__nothrow__));
3724 extern int unlockpt (int __fd) __attribute__ ((__nothrow__));
3729 extern char *ptsname (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
3736 extern int ptsname_r (int __fd, char *__buf, size_t __buflen)
3737 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
3740 extern int getpt (void);
3747 extern int getloadavg (double __loadavg[], int __nelem)
3748 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
3754 # 1 "/usr/include/bits/stdlib.h" 1 3 4
3755 # 24 "/usr/include/bits/stdlib.h" 3 4
3756 extern char *__realpath_chk (__const char *__restrict __name,
3757 char *__restrict __resolved,
3758 size_t __resolvedlen) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
3759 extern char *__realpath_alias (__const char *__restrict __name, char *__restrict __resolved) __asm__ ("" "realpath") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
3762 extern char *__realpath_chk_warn (__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __asm__ ("" "__realpath_chk") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__))
3766 __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer")));
3769 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
3770 __attribute__ ((__nothrow__)) realpath (__const char *__restrict __name, char *__restrict __resolved)
3772 if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1)
3778 return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1));
3781 return __realpath_alias (__name, __resolved);
3785 extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen,
3786 size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
3787 extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ptsname_r") __attribute__ ((__nothrow__))
3789 __attribute__ ((__nonnull__ (2)));
3790 extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ptsname_r_chk") __attribute__ ((__nothrow__))
3793 __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf")));
3796 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
3797 __attribute__ ((__nothrow__)) ptsname_r (int __fd, char *__buf, size_t __buflen)
3799 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
3801 if (!__builtin_constant_p (__buflen))
3802 return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
3803 if (__buflen > __builtin_object_size (__buf, 2 > 1))
3804 return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
3806 return __ptsname_r_alias (__fd, __buf, __buflen);
3810 extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen)
3811 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
3812 extern int __wctomb_alias (char *__s, wchar_t __wchar) __asm__ ("" "wctomb") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
3815 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int
3816 __attribute__ ((__nothrow__)) wctomb (char *__s, wchar_t __wchar)
3825 if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1))
3826 return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1));
3827 return __wctomb_alias (__s, __wchar);
3831 extern size_t __mbstowcs_chk (wchar_t *__restrict __dst,
3832 __const char *__restrict __src,
3833 size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
3834 extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("" "mbstowcs") __attribute__ ((__nothrow__));
3838 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__))
3842 __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)")));
3845 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t
3846 __attribute__ ((__nothrow__)) mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len)
3849 if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1)
3851 if (!__builtin_constant_p (__len))
3852 return __mbstowcs_chk (__dst, __src, __len,
3853 __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t));
3855 if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t))
3856 return __mbstowcs_chk_warn (__dst, __src, __len,
3857 __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t));
3859 return __mbstowcs_alias (__dst, __src, __len);
3863 extern size_t __wcstombs_chk (char *__restrict __dst,
3864 __const wchar_t *__restrict __src,
3865 size_t __len, size_t __dstlen) __attribute__ ((__nothrow__));
3866 extern size_t __wcstombs_alias (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("" "wcstombs") __attribute__ ((__nothrow__));
3870 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__))
3874 __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len")));
3876 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t
3877 __attribute__ ((__nothrow__)) wcstombs (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len)
3880 if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1)
3882 if (!__builtin_constant_p (__len))
3883 return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1));
3884 if (__len > __builtin_object_size (__dst, 2 > 1))
3885 return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1));
3887 return __wcstombs_alias (__dst, __src, __len);
3889 # 904 "/usr/include/stdlib.h" 2 3 4
3890 # 912 "/usr/include/stdlib.h" 3 4
3892 # 315 "./../include/my_global.h" 2
3895 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4
3896 # 152 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 3 4
3897 typedef long int ptrdiff_t;
3898 # 318 "./../include/my_global.h" 2
3901 # 1 "/usr/include/math.h" 1 3 4
3902 # 30 "/usr/include/math.h" 3 4
3907 # 1 "/usr/include/bits/huge_val.h" 1 3 4
3908 # 35 "/usr/include/math.h" 2 3 4
3910 # 1 "/usr/include/bits/huge_valf.h" 1 3 4
3911 # 37 "/usr/include/math.h" 2 3 4
3912 # 1 "/usr/include/bits/huge_vall.h" 1 3 4
3913 # 38 "/usr/include/math.h" 2 3 4
3916 # 1 "/usr/include/bits/inf.h" 1 3 4
3917 # 41 "/usr/include/math.h" 2 3 4
3920 # 1 "/usr/include/bits/nan.h" 1 3 4
3921 # 44 "/usr/include/math.h" 2 3 4
3925 # 1 "/usr/include/bits/mathdef.h" 1 3 4
3926 # 38 "/usr/include/bits/mathdef.h" 3 4
3927 typedef float float_t;
3929 typedef double double_t;
3930 # 48 "/usr/include/math.h" 2 3 4
3931 # 71 "/usr/include/math.h" 3 4
3932 # 1 "/usr/include/bits/mathcalls.h" 1 3 4
3933 # 53 "/usr/include/bits/mathcalls.h" 3 4
3936 extern double acos (double __x) __attribute__ ((__nothrow__)); extern double __acos (double __x) __attribute__ ((__nothrow__));
3938 extern double asin (double __x) __attribute__ ((__nothrow__)); extern double __asin (double __x) __attribute__ ((__nothrow__));
3940 extern double atan (double __x) __attribute__ ((__nothrow__)); extern double __atan (double __x) __attribute__ ((__nothrow__));
3942 extern double atan2 (double __y, double __x) __attribute__ ((__nothrow__)); extern double __atan2 (double __y, double __x) __attribute__ ((__nothrow__));
3945 extern double cos (double __x) __attribute__ ((__nothrow__)); extern double __cos (double __x) __attribute__ ((__nothrow__));
3947 extern double sin (double __x) __attribute__ ((__nothrow__)); extern double __sin (double __x) __attribute__ ((__nothrow__));
3949 extern double tan (double __x) __attribute__ ((__nothrow__)); extern double __tan (double __x) __attribute__ ((__nothrow__));
3954 extern double cosh (double __x) __attribute__ ((__nothrow__)); extern double __cosh (double __x) __attribute__ ((__nothrow__));
3956 extern double sinh (double __x) __attribute__ ((__nothrow__)); extern double __sinh (double __x) __attribute__ ((__nothrow__));
3958 extern double tanh (double __x) __attribute__ ((__nothrow__)); extern double __tanh (double __x) __attribute__ ((__nothrow__));
3963 extern void sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__)); extern void __sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__));
3970 extern double acosh (double __x) __attribute__ ((__nothrow__)); extern double __acosh (double __x) __attribute__ ((__nothrow__));
3972 extern double asinh (double __x) __attribute__ ((__nothrow__)); extern double __asinh (double __x) __attribute__ ((__nothrow__));
3974 extern double atanh (double __x) __attribute__ ((__nothrow__)); extern double __atanh (double __x) __attribute__ ((__nothrow__));
3982 extern double exp (double __x) __attribute__ ((__nothrow__)); extern double __exp (double __x) __attribute__ ((__nothrow__));
3985 extern double frexp (double __x, int *__exponent) __attribute__ ((__nothrow__)); extern double __frexp (double __x, int *__exponent) __attribute__ ((__nothrow__));
3988 extern double ldexp (double __x, int __exponent) __attribute__ ((__nothrow__)); extern double __ldexp (double __x, int __exponent) __attribute__ ((__nothrow__));
3991 extern double log (double __x) __attribute__ ((__nothrow__)); extern double __log (double __x) __attribute__ ((__nothrow__));
3994 extern double log10 (double __x) __attribute__ ((__nothrow__)); extern double __log10 (double __x) __attribute__ ((__nothrow__));
3997 extern double modf (double __x, double *__iptr) __attribute__ ((__nothrow__)); extern double __modf (double __x, double *__iptr) __attribute__ ((__nothrow__));
4002 extern double exp10 (double __x) __attribute__ ((__nothrow__)); extern double __exp10 (double __x) __attribute__ ((__nothrow__));
4004 extern double pow10 (double __x) __attribute__ ((__nothrow__)); extern double __pow10 (double __x) __attribute__ ((__nothrow__));
4010 extern double expm1 (double __x) __attribute__ ((__nothrow__)); extern double __expm1 (double __x) __attribute__ ((__nothrow__));
4013 extern double log1p (double __x) __attribute__ ((__nothrow__)); extern double __log1p (double __x) __attribute__ ((__nothrow__));
4016 extern double logb (double __x) __attribute__ ((__nothrow__)); extern double __logb (double __x) __attribute__ ((__nothrow__));
4023 extern double exp2 (double __x) __attribute__ ((__nothrow__)); extern double __exp2 (double __x) __attribute__ ((__nothrow__));
4026 extern double log2 (double __x) __attribute__ ((__nothrow__)); extern double __log2 (double __x) __attribute__ ((__nothrow__));
4035 extern double pow (double __x, double __y) __attribute__ ((__nothrow__)); extern double __pow (double __x, double __y) __attribute__ ((__nothrow__));
4038 extern double sqrt (double __x) __attribute__ ((__nothrow__)); extern double __sqrt (double __x) __attribute__ ((__nothrow__));
4044 extern double hypot (double __x, double __y) __attribute__ ((__nothrow__)); extern double __hypot (double __x, double __y) __attribute__ ((__nothrow__));
4051 extern double cbrt (double __x) __attribute__ ((__nothrow__)); extern double __cbrt (double __x) __attribute__ ((__nothrow__));
4060 extern double ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __ceil (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4063 extern double fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4066 extern double floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __floor (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4069 extern double fmod (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmod (double __x, double __y) __attribute__ ((__nothrow__));
4074 extern int __isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4077 extern int __finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4083 extern int isinf (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4086 extern int finite (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4089 extern double drem (double __x, double __y) __attribute__ ((__nothrow__)); extern double __drem (double __x, double __y) __attribute__ ((__nothrow__));
4093 extern double significand (double __x) __attribute__ ((__nothrow__)); extern double __significand (double __x) __attribute__ ((__nothrow__));
4099 extern double copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4106 extern double nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nan (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4112 extern int __isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4116 extern int isnan (double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4119 extern double j0 (double) __attribute__ ((__nothrow__)); extern double __j0 (double) __attribute__ ((__nothrow__));
4120 extern double j1 (double) __attribute__ ((__nothrow__)); extern double __j1 (double) __attribute__ ((__nothrow__));
4121 extern double jn (int, double) __attribute__ ((__nothrow__)); extern double __jn (int, double) __attribute__ ((__nothrow__));
4122 extern double y0 (double) __attribute__ ((__nothrow__)); extern double __y0 (double) __attribute__ ((__nothrow__));
4123 extern double y1 (double) __attribute__ ((__nothrow__)); extern double __y1 (double) __attribute__ ((__nothrow__));
4124 extern double yn (int, double) __attribute__ ((__nothrow__)); extern double __yn (int, double) __attribute__ ((__nothrow__));
4131 extern double erf (double) __attribute__ ((__nothrow__)); extern double __erf (double) __attribute__ ((__nothrow__));
4132 extern double erfc (double) __attribute__ ((__nothrow__)); extern double __erfc (double) __attribute__ ((__nothrow__));
4133 extern double lgamma (double) __attribute__ ((__nothrow__)); extern double __lgamma (double) __attribute__ ((__nothrow__));
4140 extern double tgamma (double) __attribute__ ((__nothrow__)); extern double __tgamma (double) __attribute__ ((__nothrow__));
4146 extern double gamma (double) __attribute__ ((__nothrow__)); extern double __gamma (double) __attribute__ ((__nothrow__));
4153 extern double lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__)); extern double __lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__));
4161 extern double rint (double __x) __attribute__ ((__nothrow__)); extern double __rint (double __x) __attribute__ ((__nothrow__));
4164 extern double nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4166 extern double nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4170 extern double remainder (double __x, double __y) __attribute__ ((__nothrow__)); extern double __remainder (double __x, double __y) __attribute__ ((__nothrow__));
4174 extern double scalbn (double __x, int __n) __attribute__ ((__nothrow__)); extern double __scalbn (double __x, int __n) __attribute__ ((__nothrow__));
4178 extern int ilogb (double __x) __attribute__ ((__nothrow__)); extern int __ilogb (double __x) __attribute__ ((__nothrow__));
4183 extern double scalbln (double __x, long int __n) __attribute__ ((__nothrow__)); extern double __scalbln (double __x, long int __n) __attribute__ ((__nothrow__));
4187 extern double nearbyint (double __x) __attribute__ ((__nothrow__)); extern double __nearbyint (double __x) __attribute__ ((__nothrow__));
4191 extern double round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __round (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4195 extern double trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern double __trunc (double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4200 extern double remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__)); extern double __remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__));
4207 extern long int lrint (double __x) __attribute__ ((__nothrow__)); extern long int __lrint (double __x) __attribute__ ((__nothrow__));
4208 extern long long int llrint (double __x) __attribute__ ((__nothrow__)); extern long long int __llrint (double __x) __attribute__ ((__nothrow__));
4212 extern long int lround (double __x) __attribute__ ((__nothrow__)); extern long int __lround (double __x) __attribute__ ((__nothrow__));
4213 extern long long int llround (double __x) __attribute__ ((__nothrow__)); extern long long int __llround (double __x) __attribute__ ((__nothrow__));
4217 extern double fdim (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fdim (double __x, double __y) __attribute__ ((__nothrow__));
4220 extern double fmax (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmax (double __x, double __y) __attribute__ ((__nothrow__));
4223 extern double fmin (double __x, double __y) __attribute__ ((__nothrow__)); extern double __fmin (double __x, double __y) __attribute__ ((__nothrow__));
4227 extern int __fpclassify (double __value) __attribute__ ((__nothrow__))
4228 __attribute__ ((__const__));
4231 extern int __signbit (double __value) __attribute__ ((__nothrow__))
4232 __attribute__ ((__const__));
4236 extern double fma (double __x, double __y, double __z) __attribute__ ((__nothrow__)); extern double __fma (double __x, double __y, double __z) __attribute__ ((__nothrow__));
4245 extern double scalb (double __x, double __n) __attribute__ ((__nothrow__)); extern double __scalb (double __x, double __n) __attribute__ ((__nothrow__));
4246 # 72 "/usr/include/math.h" 2 3 4
4247 # 94 "/usr/include/math.h" 3 4
4248 # 1 "/usr/include/bits/mathcalls.h" 1 3 4
4249 # 53 "/usr/include/bits/mathcalls.h" 3 4
4252 extern float acosf (float __x) __attribute__ ((__nothrow__)); extern float __acosf (float __x) __attribute__ ((__nothrow__));
4254 extern float asinf (float __x) __attribute__ ((__nothrow__)); extern float __asinf (float __x) __attribute__ ((__nothrow__));
4256 extern float atanf (float __x) __attribute__ ((__nothrow__)); extern float __atanf (float __x) __attribute__ ((__nothrow__));
4258 extern float atan2f (float __y, float __x) __attribute__ ((__nothrow__)); extern float __atan2f (float __y, float __x) __attribute__ ((__nothrow__));
4261 extern float cosf (float __x) __attribute__ ((__nothrow__)); extern float __cosf (float __x) __attribute__ ((__nothrow__));
4263 extern float sinf (float __x) __attribute__ ((__nothrow__)); extern float __sinf (float __x) __attribute__ ((__nothrow__));
4265 extern float tanf (float __x) __attribute__ ((__nothrow__)); extern float __tanf (float __x) __attribute__ ((__nothrow__));
4270 extern float coshf (float __x) __attribute__ ((__nothrow__)); extern float __coshf (float __x) __attribute__ ((__nothrow__));
4272 extern float sinhf (float __x) __attribute__ ((__nothrow__)); extern float __sinhf (float __x) __attribute__ ((__nothrow__));
4274 extern float tanhf (float __x) __attribute__ ((__nothrow__)); extern float __tanhf (float __x) __attribute__ ((__nothrow__));
4279 extern void sincosf (float __x, float *__sinx, float *__cosx) __attribute__ ((__nothrow__)); extern void __sincosf (float __x, float *__sinx, float *__cosx) __attribute__ ((__nothrow__));
4286 extern float acoshf (float __x) __attribute__ ((__nothrow__)); extern float __acoshf (float __x) __attribute__ ((__nothrow__));
4288 extern float asinhf (float __x) __attribute__ ((__nothrow__)); extern float __asinhf (float __x) __attribute__ ((__nothrow__));
4290 extern float atanhf (float __x) __attribute__ ((__nothrow__)); extern float __atanhf (float __x) __attribute__ ((__nothrow__));
4298 extern float expf (float __x) __attribute__ ((__nothrow__)); extern float __expf (float __x) __attribute__ ((__nothrow__));
4301 extern float frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__)); extern float __frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__));
4304 extern float ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__)); extern float __ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__));
4307 extern float logf (float __x) __attribute__ ((__nothrow__)); extern float __logf (float __x) __attribute__ ((__nothrow__));
4310 extern float log10f (float __x) __attribute__ ((__nothrow__)); extern float __log10f (float __x) __attribute__ ((__nothrow__));
4313 extern float modff (float __x, float *__iptr) __attribute__ ((__nothrow__)); extern float __modff (float __x, float *__iptr) __attribute__ ((__nothrow__));
4318 extern float exp10f (float __x) __attribute__ ((__nothrow__)); extern float __exp10f (float __x) __attribute__ ((__nothrow__));
4320 extern float pow10f (float __x) __attribute__ ((__nothrow__)); extern float __pow10f (float __x) __attribute__ ((__nothrow__));
4326 extern float expm1f (float __x) __attribute__ ((__nothrow__)); extern float __expm1f (float __x) __attribute__ ((__nothrow__));
4329 extern float log1pf (float __x) __attribute__ ((__nothrow__)); extern float __log1pf (float __x) __attribute__ ((__nothrow__));
4332 extern float logbf (float __x) __attribute__ ((__nothrow__)); extern float __logbf (float __x) __attribute__ ((__nothrow__));
4339 extern float exp2f (float __x) __attribute__ ((__nothrow__)); extern float __exp2f (float __x) __attribute__ ((__nothrow__));
4342 extern float log2f (float __x) __attribute__ ((__nothrow__)); extern float __log2f (float __x) __attribute__ ((__nothrow__));
4351 extern float powf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __powf (float __x, float __y) __attribute__ ((__nothrow__));
4354 extern float sqrtf (float __x) __attribute__ ((__nothrow__)); extern float __sqrtf (float __x) __attribute__ ((__nothrow__));
4360 extern float hypotf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __hypotf (float __x, float __y) __attribute__ ((__nothrow__));
4367 extern float cbrtf (float __x) __attribute__ ((__nothrow__)); extern float __cbrtf (float __x) __attribute__ ((__nothrow__));
4376 extern float ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __ceilf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4379 extern float fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4382 extern float floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __floorf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4385 extern float fmodf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmodf (float __x, float __y) __attribute__ ((__nothrow__));
4390 extern int __isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4393 extern int __finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4399 extern int isinff (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4402 extern int finitef (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4405 extern float dremf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __dremf (float __x, float __y) __attribute__ ((__nothrow__));
4409 extern float significandf (float __x) __attribute__ ((__nothrow__)); extern float __significandf (float __x) __attribute__ ((__nothrow__));
4415 extern float copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4422 extern float nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4428 extern int __isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4432 extern int isnanf (float __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4435 extern float j0f (float) __attribute__ ((__nothrow__)); extern float __j0f (float) __attribute__ ((__nothrow__));
4436 extern float j1f (float) __attribute__ ((__nothrow__)); extern float __j1f (float) __attribute__ ((__nothrow__));
4437 extern float jnf (int, float) __attribute__ ((__nothrow__)); extern float __jnf (int, float) __attribute__ ((__nothrow__));
4438 extern float y0f (float) __attribute__ ((__nothrow__)); extern float __y0f (float) __attribute__ ((__nothrow__));
4439 extern float y1f (float) __attribute__ ((__nothrow__)); extern float __y1f (float) __attribute__ ((__nothrow__));
4440 extern float ynf (int, float) __attribute__ ((__nothrow__)); extern float __ynf (int, float) __attribute__ ((__nothrow__));
4447 extern float erff (float) __attribute__ ((__nothrow__)); extern float __erff (float) __attribute__ ((__nothrow__));
4448 extern float erfcf (float) __attribute__ ((__nothrow__)); extern float __erfcf (float) __attribute__ ((__nothrow__));
4449 extern float lgammaf (float) __attribute__ ((__nothrow__)); extern float __lgammaf (float) __attribute__ ((__nothrow__));
4456 extern float tgammaf (float) __attribute__ ((__nothrow__)); extern float __tgammaf (float) __attribute__ ((__nothrow__));
4462 extern float gammaf (float) __attribute__ ((__nothrow__)); extern float __gammaf (float) __attribute__ ((__nothrow__));
4469 extern float lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__)); extern float __lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__));
4477 extern float rintf (float __x) __attribute__ ((__nothrow__)); extern float __rintf (float __x) __attribute__ ((__nothrow__));
4480 extern float nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4482 extern float nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4486 extern float remainderf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __remainderf (float __x, float __y) __attribute__ ((__nothrow__));
4490 extern float scalbnf (float __x, int __n) __attribute__ ((__nothrow__)); extern float __scalbnf (float __x, int __n) __attribute__ ((__nothrow__));
4494 extern int ilogbf (float __x) __attribute__ ((__nothrow__)); extern int __ilogbf (float __x) __attribute__ ((__nothrow__));
4499 extern float scalblnf (float __x, long int __n) __attribute__ ((__nothrow__)); extern float __scalblnf (float __x, long int __n) __attribute__ ((__nothrow__));
4503 extern float nearbyintf (float __x) __attribute__ ((__nothrow__)); extern float __nearbyintf (float __x) __attribute__ ((__nothrow__));
4507 extern float roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __roundf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4511 extern float truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern float __truncf (float __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4516 extern float remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__)); extern float __remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__));
4523 extern long int lrintf (float __x) __attribute__ ((__nothrow__)); extern long int __lrintf (float __x) __attribute__ ((__nothrow__));
4524 extern long long int llrintf (float __x) __attribute__ ((__nothrow__)); extern long long int __llrintf (float __x) __attribute__ ((__nothrow__));
4528 extern long int lroundf (float __x) __attribute__ ((__nothrow__)); extern long int __lroundf (float __x) __attribute__ ((__nothrow__));
4529 extern long long int llroundf (float __x) __attribute__ ((__nothrow__)); extern long long int __llroundf (float __x) __attribute__ ((__nothrow__));
4533 extern float fdimf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fdimf (float __x, float __y) __attribute__ ((__nothrow__));
4536 extern float fmaxf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fmaxf (float __x, float __y) __attribute__ ((__nothrow__));
4539 extern float fminf (float __x, float __y) __attribute__ ((__nothrow__)); extern float __fminf (float __x, float __y) __attribute__ ((__nothrow__));
4543 extern int __fpclassifyf (float __value) __attribute__ ((__nothrow__))
4544 __attribute__ ((__const__));
4547 extern int __signbitf (float __value) __attribute__ ((__nothrow__))
4548 __attribute__ ((__const__));
4552 extern float fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__)); extern float __fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__));
4561 extern float scalbf (float __x, float __n) __attribute__ ((__nothrow__)); extern float __scalbf (float __x, float __n) __attribute__ ((__nothrow__));
4562 # 95 "/usr/include/math.h" 2 3 4
4563 # 141 "/usr/include/math.h" 3 4
4564 # 1 "/usr/include/bits/mathcalls.h" 1 3 4
4565 # 53 "/usr/include/bits/mathcalls.h" 3 4
4568 extern long double acosl (long double __x) __attribute__ ((__nothrow__)); extern long double __acosl (long double __x) __attribute__ ((__nothrow__));
4570 extern long double asinl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinl (long double __x) __attribute__ ((__nothrow__));
4572 extern long double atanl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanl (long double __x) __attribute__ ((__nothrow__));
4574 extern long double atan2l (long double __y, long double __x) __attribute__ ((__nothrow__)); extern long double __atan2l (long double __y, long double __x) __attribute__ ((__nothrow__));
4577 extern long double cosl (long double __x) __attribute__ ((__nothrow__)); extern long double __cosl (long double __x) __attribute__ ((__nothrow__));
4579 extern long double sinl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinl (long double __x) __attribute__ ((__nothrow__));
4581 extern long double tanl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanl (long double __x) __attribute__ ((__nothrow__));
4586 extern long double coshl (long double __x) __attribute__ ((__nothrow__)); extern long double __coshl (long double __x) __attribute__ ((__nothrow__));
4588 extern long double sinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __sinhl (long double __x) __attribute__ ((__nothrow__));
4590 extern long double tanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __tanhl (long double __x) __attribute__ ((__nothrow__));
4595 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__));
4602 extern long double acoshl (long double __x) __attribute__ ((__nothrow__)); extern long double __acoshl (long double __x) __attribute__ ((__nothrow__));
4604 extern long double asinhl (long double __x) __attribute__ ((__nothrow__)); extern long double __asinhl (long double __x) __attribute__ ((__nothrow__));
4606 extern long double atanhl (long double __x) __attribute__ ((__nothrow__)); extern long double __atanhl (long double __x) __attribute__ ((__nothrow__));
4614 extern long double expl (long double __x) __attribute__ ((__nothrow__)); extern long double __expl (long double __x) __attribute__ ((__nothrow__));
4617 extern long double frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__)); extern long double __frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__));
4620 extern long double ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__)); extern long double __ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__));
4623 extern long double logl (long double __x) __attribute__ ((__nothrow__)); extern long double __logl (long double __x) __attribute__ ((__nothrow__));
4626 extern long double log10l (long double __x) __attribute__ ((__nothrow__)); extern long double __log10l (long double __x) __attribute__ ((__nothrow__));
4629 extern long double modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__)); extern long double __modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__));
4634 extern long double exp10l (long double __x) __attribute__ ((__nothrow__)); extern long double __exp10l (long double __x) __attribute__ ((__nothrow__));
4636 extern long double pow10l (long double __x) __attribute__ ((__nothrow__)); extern long double __pow10l (long double __x) __attribute__ ((__nothrow__));
4642 extern long double expm1l (long double __x) __attribute__ ((__nothrow__)); extern long double __expm1l (long double __x) __attribute__ ((__nothrow__));
4645 extern long double log1pl (long double __x) __attribute__ ((__nothrow__)); extern long double __log1pl (long double __x) __attribute__ ((__nothrow__));
4648 extern long double logbl (long double __x) __attribute__ ((__nothrow__)); extern long double __logbl (long double __x) __attribute__ ((__nothrow__));
4655 extern long double exp2l (long double __x) __attribute__ ((__nothrow__)); extern long double __exp2l (long double __x) __attribute__ ((__nothrow__));
4658 extern long double log2l (long double __x) __attribute__ ((__nothrow__)); extern long double __log2l (long double __x) __attribute__ ((__nothrow__));
4667 extern long double powl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __powl (long double __x, long double __y) __attribute__ ((__nothrow__));
4670 extern long double sqrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __sqrtl (long double __x) __attribute__ ((__nothrow__));
4676 extern long double hypotl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __hypotl (long double __x, long double __y) __attribute__ ((__nothrow__));
4683 extern long double cbrtl (long double __x) __attribute__ ((__nothrow__)); extern long double __cbrtl (long double __x) __attribute__ ((__nothrow__));
4692 extern long double ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __ceill (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4695 extern long double fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __fabsl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4698 extern long double floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __floorl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4701 extern long double fmodl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmodl (long double __x, long double __y) __attribute__ ((__nothrow__));
4706 extern int __isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4709 extern int __finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4715 extern int isinfl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4718 extern int finitel (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4721 extern long double dreml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __dreml (long double __x, long double __y) __attribute__ ((__nothrow__));
4725 extern long double significandl (long double __x) __attribute__ ((__nothrow__)); extern long double __significandl (long double __x) __attribute__ ((__nothrow__));
4731 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__));
4738 extern long double nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4744 extern int __isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4748 extern int isnanl (long double __value) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4751 extern long double j0l (long double) __attribute__ ((__nothrow__)); extern long double __j0l (long double) __attribute__ ((__nothrow__));
4752 extern long double j1l (long double) __attribute__ ((__nothrow__)); extern long double __j1l (long double) __attribute__ ((__nothrow__));
4753 extern long double jnl (int, long double) __attribute__ ((__nothrow__)); extern long double __jnl (int, long double) __attribute__ ((__nothrow__));
4754 extern long double y0l (long double) __attribute__ ((__nothrow__)); extern long double __y0l (long double) __attribute__ ((__nothrow__));
4755 extern long double y1l (long double) __attribute__ ((__nothrow__)); extern long double __y1l (long double) __attribute__ ((__nothrow__));
4756 extern long double ynl (int, long double) __attribute__ ((__nothrow__)); extern long double __ynl (int, long double) __attribute__ ((__nothrow__));
4763 extern long double erfl (long double) __attribute__ ((__nothrow__)); extern long double __erfl (long double) __attribute__ ((__nothrow__));
4764 extern long double erfcl (long double) __attribute__ ((__nothrow__)); extern long double __erfcl (long double) __attribute__ ((__nothrow__));
4765 extern long double lgammal (long double) __attribute__ ((__nothrow__)); extern long double __lgammal (long double) __attribute__ ((__nothrow__));
4772 extern long double tgammal (long double) __attribute__ ((__nothrow__)); extern long double __tgammal (long double) __attribute__ ((__nothrow__));
4778 extern long double gammal (long double) __attribute__ ((__nothrow__)); extern long double __gammal (long double) __attribute__ ((__nothrow__));
4785 extern long double lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__)); extern long double __lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__));
4793 extern long double rintl (long double __x) __attribute__ ((__nothrow__)); extern long double __rintl (long double __x) __attribute__ ((__nothrow__));
4796 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__));
4798 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__));
4802 extern long double remainderl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __remainderl (long double __x, long double __y) __attribute__ ((__nothrow__));
4806 extern long double scalbnl (long double __x, int __n) __attribute__ ((__nothrow__)); extern long double __scalbnl (long double __x, int __n) __attribute__ ((__nothrow__));
4810 extern int ilogbl (long double __x) __attribute__ ((__nothrow__)); extern int __ilogbl (long double __x) __attribute__ ((__nothrow__));
4815 extern long double scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__)); extern long double __scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__));
4819 extern long double nearbyintl (long double __x) __attribute__ ((__nothrow__)); extern long double __nearbyintl (long double __x) __attribute__ ((__nothrow__));
4823 extern long double roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __roundl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4827 extern long double truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); extern long double __truncl (long double __x) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
4832 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__));
4839 extern long int lrintl (long double __x) __attribute__ ((__nothrow__)); extern long int __lrintl (long double __x) __attribute__ ((__nothrow__));
4840 extern long long int llrintl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llrintl (long double __x) __attribute__ ((__nothrow__));
4844 extern long int lroundl (long double __x) __attribute__ ((__nothrow__)); extern long int __lroundl (long double __x) __attribute__ ((__nothrow__));
4845 extern long long int llroundl (long double __x) __attribute__ ((__nothrow__)); extern long long int __llroundl (long double __x) __attribute__ ((__nothrow__));
4849 extern long double fdiml (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fdiml (long double __x, long double __y) __attribute__ ((__nothrow__));
4852 extern long double fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__));
4855 extern long double fminl (long double __x, long double __y) __attribute__ ((__nothrow__)); extern long double __fminl (long double __x, long double __y) __attribute__ ((__nothrow__));
4859 extern int __fpclassifyl (long double __value) __attribute__ ((__nothrow__))
4860 __attribute__ ((__const__));
4863 extern int __signbitl (long double __value) __attribute__ ((__nothrow__))
4864 __attribute__ ((__const__));
4868 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__));
4877 extern long double scalbl (long double __x, long double __n) __attribute__ ((__nothrow__)); extern long double __scalbl (long double __x, long double __n) __attribute__ ((__nothrow__));
4878 # 142 "/usr/include/math.h" 2 3 4
4879 # 157 "/usr/include/math.h" 3 4
4881 # 198 "/usr/include/math.h" 3 4
4895 # 284 "/usr/include/math.h" 3 4
4903 } _LIB_VERSION_TYPE;
4908 extern _LIB_VERSION_TYPE _LIB_VERSION;
4909 # 309 "/usr/include/math.h" 3 4
4923 extern int matherr (struct exception *__exc);
4924 # 409 "/usr/include/math.h" 3 4
4925 # 1 "/usr/include/bits/mathinline.h" 1 3 4
4926 # 63 "/usr/include/bits/mathinline.h" 3 4
4928 __attribute__ ((__nothrow__)) __signbitf (float __x)
4930 __extension__ union { float __f; int __i; } __u = { __f: __x };
4934 __attribute__ ((__nothrow__)) __signbit (double __x)
4936 __extension__ union { double __d; int __i[2]; } __u = { __d: __x };
4937 return __u.__i[0] < 0;
4941 __attribute__ ((__nothrow__)) __signbitl (long double __x)
4943 __extension__ union { long double __d; int __i[4]; } __u = { __d: __x };
4944 return __u.__i[0] < 0;
4946 # 116 "/usr/include/bits/mathinline.h" 3 4
4947 extern __inline double fdim (double __x, double __y) __attribute__ ((__nothrow__));
4948 extern __inline double
4949 __attribute__ ((__nothrow__)) fdim (double __x, double __y)
4951 return __x <= __y ? 0 : __x - __y;
4954 extern __inline float fdimf (float __x, float __y) __attribute__ ((__nothrow__));
4955 extern __inline float
4956 __attribute__ ((__nothrow__)) fdimf (float __x, float __y)
4958 return __x <= __y ? 0 : __x - __y;
4960 # 410 "/usr/include/math.h" 2 3 4
4961 # 465 "/usr/include/math.h" 3 4
4963 # 321 "./../include/my_global.h" 2
4965 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/limits.h" 1 3 4
4966 # 11 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/limits.h" 3 4
4967 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/syslimits.h" 1 3 4
4974 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/limits.h" 1 3 4
4975 # 122 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/limits.h" 3 4
4976 # 1 "/usr/include/limits.h" 1 3 4
4977 # 145 "/usr/include/limits.h" 3 4
4978 # 1 "/usr/include/bits/posix1_lim.h" 1 3 4
4979 # 157 "/usr/include/bits/posix1_lim.h" 3 4
4980 # 1 "/usr/include/bits/local_lim.h" 1 3 4
4981 # 40 "/usr/include/bits/local_lim.h" 3 4
4982 # 1 "/usr/include/linux/limits.h" 1 3 4
4983 # 41 "/usr/include/bits/local_lim.h" 2 3 4
4984 # 158 "/usr/include/bits/posix1_lim.h" 2 3 4
4985 # 146 "/usr/include/limits.h" 2 3 4
4989 # 1 "/usr/include/bits/posix2_lim.h" 1 3 4
4990 # 150 "/usr/include/limits.h" 2 3 4
4994 # 1 "/usr/include/bits/xopen_lim.h" 1 3 4
4995 # 34 "/usr/include/bits/xopen_lim.h" 3 4
4996 # 1 "/usr/include/bits/stdio_lim.h" 1 3 4
4997 # 35 "/usr/include/bits/xopen_lim.h" 2 3 4
4998 # 154 "/usr/include/limits.h" 2 3 4
4999 # 123 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/limits.h" 2 3 4
5000 # 8 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/syslimits.h" 2 3 4
5001 # 12 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include-fixed/limits.h" 2 3 4
5002 # 323 "./../include/my_global.h" 2
5005 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/float.h" 1 3 4
5006 # 326 "./../include/my_global.h" 2
5009 # 1 "/usr/include/fenv.h" 1 3 4
5010 # 58 "/usr/include/fenv.h" 3 4
5011 # 1 "/usr/include/bits/fenv.h" 1 3 4
5012 # 26 "/usr/include/bits/fenv.h" 3 4
5015 FE_INEXACT = 1 << (31 - 6),
5017 FE_DIVBYZERO = 1 << (31 - 5),
5019 FE_UNDERFLOW = 1 << (31 - 4),
5021 FE_OVERFLOW = 1 << (31 - 3),
5022 # 43 "/usr/include/bits/fenv.h" 3 4
5023 FE_INVALID = 1 << (31 - 2),
5024 # 54 "/usr/include/bits/fenv.h" 3 4
5025 FE_INVALID_SNAN = 1 << (31 - 7),
5029 FE_INVALID_ISI = 1 << (31 - 8),
5033 FE_INVALID_IDI = 1 << (31 - 9),
5037 FE_INVALID_ZDZ = 1 << (31 - 10),
5041 FE_INVALID_IMZ = 1 << (31 - 11),
5045 FE_INVALID_COMPARE = 1 << (31 - 12),
5051 FE_INVALID_SOFTWARE = 1 << (31 - 21),
5056 FE_INVALID_SQRT = 1 << (31 - 22),
5060 FE_INVALID_INTEGER_CONVERSION = 1 << (31 - 23)
5089 typedef unsigned int fexcept_t;
5093 typedef double fenv_t;
5096 extern const fenv_t __fe_dfl_env;
5102 extern const fenv_t __fe_enabled_env;
5107 extern const fenv_t __fe_nonieee_env;
5118 extern const fenv_t *__fe_nomask_env (void);
5126 extern const fenv_t *__fe_mask_env (void);
5130 # 59 "/usr/include/fenv.h" 2 3 4
5137 extern int feclearexcept (int __excepts) __attribute__ ((__nothrow__));
5141 extern int fegetexceptflag (fexcept_t *__flagp, int __excepts) __attribute__ ((__nothrow__));
5144 extern int feraiseexcept (int __excepts) __attribute__ ((__nothrow__));
5148 extern int fesetexceptflag (__const fexcept_t *__flagp, int __excepts) __attribute__ ((__nothrow__));
5152 extern int fetestexcept (int __excepts) __attribute__ ((__nothrow__));
5158 extern int fegetround (void) __attribute__ ((__nothrow__));
5161 extern int fesetround (int __rounding_direction) __attribute__ ((__nothrow__));
5168 extern int fegetenv (fenv_t *__envp) __attribute__ ((__nothrow__));
5173 extern int feholdexcept (fenv_t *__envp) __attribute__ ((__nothrow__));
5177 extern int fesetenv (__const fenv_t *__envp) __attribute__ ((__nothrow__));
5182 extern int feupdateenv (__const fenv_t *__envp) __attribute__ ((__nothrow__));
5187 # 1 "/usr/include/bits/fenvinline.h" 1 3 4
5188 # 116 "/usr/include/fenv.h" 2 3 4
5196 extern int feenableexcept (int __excepts) __attribute__ ((__nothrow__));
5201 extern int fedisableexcept (int __excepts) __attribute__ ((__nothrow__));
5204 extern int fegetexcept (void) __attribute__ ((__nothrow__));
5208 # 329 "./../include/my_global.h" 2
5215 # 1 "/usr/include/fcntl.h" 1 3 4
5216 # 30 "/usr/include/fcntl.h" 3 4
5221 # 1 "/usr/include/bits/fcntl.h" 1 3 4
5222 # 27 "/usr/include/bits/fcntl.h" 3 4
5223 # 1 "/usr/include/bits/uio.h" 1 3 4
5224 # 44 "/usr/include/bits/uio.h" 3 4
5230 # 28 "/usr/include/bits/fcntl.h" 2 3 4
5231 # 144 "/usr/include/bits/fcntl.h" 3 4
5255 # 211 "/usr/include/bits/fcntl.h" 3 4
5261 extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count)
5262 __attribute__ ((__nothrow__));
5266 extern int sync_file_range (int __fd, __off64_t __from, __off64_t __to,
5267 unsigned int __flags);
5271 extern ssize_t vmsplice (int __fdout, const struct iovec *__iov,
5272 size_t __count, unsigned int __flags);
5275 extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout,
5276 __off64_t *__offout, size_t __len,
5277 unsigned int __flags);
5280 extern ssize_t tee (int __fdin, int __fdout, size_t __len,
5281 unsigned int __flags);
5285 extern int fallocate (int __fd, int __mode, __off_t __offset, __off_t __len);
5286 # 251 "/usr/include/bits/fcntl.h" 3 4
5287 extern int fallocate64 (int __fd, int __mode, __off64_t __offset,
5294 # 35 "/usr/include/fcntl.h" 2 3 4
5298 # 1 "/usr/include/sys/stat.h" 1 3 4
5299 # 105 "/usr/include/sys/stat.h" 3 4
5302 # 1 "/usr/include/bits/stat.h" 1 3 4
5303 # 24 "/usr/include/bits/stat.h" 3 4
5304 # 1 "/usr/include/bits/wordsize.h" 1 3 4
5305 # 25 "/usr/include/bits/stat.h" 2 3 4
5306 # 140 "/usr/include/bits/stat.h" 3 4
5326 __blksize_t st_blksize;
5329 __blkcnt_t st_blocks;
5330 # 173 "/usr/include/bits/stat.h" 3 4
5331 struct timespec st_atim;
5332 struct timespec st_mtim;
5333 struct timespec st_ctim;
5334 # 187 "/usr/include/bits/stat.h" 3 4
5335 unsigned long int __unused4;
5336 unsigned long int __unused5;
5337 unsigned long int __unused6;
5352 __blksize_t st_blksize;
5353 __blkcnt64_t st_blocks;
5361 struct timespec st_atim;
5362 struct timespec st_mtim;
5363 struct timespec st_ctim;
5364 # 227 "/usr/include/bits/stat.h" 3 4
5365 unsigned long int __unused4;
5366 unsigned long int __unused5;
5367 unsigned long int __unused6;
5369 # 108 "/usr/include/sys/stat.h" 2 3 4
5370 # 209 "/usr/include/sys/stat.h" 3 4
5371 extern int stat (__const char *__restrict __file,
5372 struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5376 extern int fstat (int __fd, struct stat *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5377 # 228 "/usr/include/sys/stat.h" 3 4
5378 extern int stat64 (__const char *__restrict __file,
5379 struct stat64 *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5380 extern int fstat64 (int __fd, struct stat64 *__buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5388 extern int fstatat (int __fd, __const char *__restrict __file,
5389 struct stat *__restrict __buf, int __flag)
5390 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
5391 # 253 "/usr/include/sys/stat.h" 3 4
5392 extern int fstatat64 (int __fd, __const char *__restrict __file,
5393 struct stat64 *__restrict __buf, int __flag)
5394 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
5402 extern int lstat (__const char *__restrict __file,
5403 struct stat *__restrict __buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5404 # 276 "/usr/include/sys/stat.h" 3 4
5405 extern int lstat64 (__const char *__restrict __file,
5406 struct stat64 *__restrict __buf)
5407 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
5413 extern int chmod (__const char *__file, __mode_t __mode)
5414 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5420 extern int lchmod (__const char *__file, __mode_t __mode)
5421 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5426 extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__));
5432 extern int fchmodat (int __fd, __const char *__file, __mode_t __mode,
5434 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
5441 extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__));
5446 extern __mode_t getumask (void) __attribute__ ((__nothrow__));
5450 extern int mkdir (__const char *__path, __mode_t __mode)
5451 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5457 extern int mkdirat (int __fd, __const char *__path, __mode_t __mode)
5458 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5465 extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
5466 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5472 extern int mknodat (int __fd, __const char *__path, __mode_t __mode,
5473 __dev_t __dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5479 extern int mkfifo (__const char *__path, __mode_t __mode)
5480 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5486 extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode)
5487 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5493 extern int utimensat (int __fd, __const char *__path,
5494 __const struct timespec __times[2],
5496 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
5501 extern int futimens (int __fd, __const struct timespec __times[2]) __attribute__ ((__nothrow__));
5502 # 399 "/usr/include/sys/stat.h" 3 4
5503 extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf)
5504 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
5505 extern int __xstat (int __ver, __const char *__filename,
5506 struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
5507 extern int __lxstat (int __ver, __const char *__filename,
5508 struct stat *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
5509 extern int __fxstatat (int __ver, int __fildes, __const char *__filename,
5510 struct stat *__stat_buf, int __flag)
5511 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4)));
5512 # 432 "/usr/include/sys/stat.h" 3 4
5513 extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf)
5514 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3)));
5515 extern int __xstat64 (int __ver, __const char *__filename,
5516 struct stat64 *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
5517 extern int __lxstat64 (int __ver, __const char *__filename,
5518 struct stat64 *__stat_buf) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
5519 extern int __fxstatat64 (int __ver, int __fildes, __const char *__filename,
5520 struct stat64 *__stat_buf, int __flag)
5521 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 4)));
5523 extern int __xmknod (int __ver, __const char *__path, __mode_t __mode,
5524 __dev_t *__dev) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
5526 extern int __xmknodat (int __ver, int __fd, __const char *__path,
5527 __mode_t __mode, __dev_t *__dev)
5528 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (3, 5)));
5534 __attribute__ ((__nothrow__)) stat (__const char *__path, struct stat *__statbuf)
5536 return __xstat (1, __path, __statbuf);
5541 __attribute__ ((__nothrow__)) lstat (__const char *__path, struct stat *__statbuf)
5543 return __lxstat (1, __path, __statbuf);
5548 __attribute__ ((__nothrow__)) fstat (int __fd, struct stat *__statbuf)
5550 return __fxstat (1, __fd, __statbuf);
5555 __attribute__ ((__nothrow__)) fstatat (int __fd, __const char *__filename, struct stat *__statbuf, int __flag)
5558 return __fxstatat (1, __fd, __filename, __statbuf, __flag);
5564 __attribute__ ((__nothrow__)) mknod (__const char *__path, __mode_t __mode, __dev_t __dev)
5566 return __xmknod (1, __path, __mode, &__dev);
5572 __attribute__ ((__nothrow__)) mknodat (int __fd, __const char *__path, __mode_t __mode, __dev_t __dev)
5575 return __xmknodat (1, __fd, __path, __mode, &__dev);
5583 __attribute__ ((__nothrow__)) stat64 (__const char *__path, struct stat64 *__statbuf)
5585 return __xstat64 (1, __path, __statbuf);
5590 __attribute__ ((__nothrow__)) lstat64 (__const char *__path, struct stat64 *__statbuf)
5592 return __lxstat64 (1, __path, __statbuf);
5597 __attribute__ ((__nothrow__)) fstat64 (int __fd, struct stat64 *__statbuf)
5599 return __fxstat64 (1, __fd, __statbuf);
5604 __attribute__ ((__nothrow__)) fstatat64 (int __fd, __const char *__filename, struct stat64 *__statbuf, int __flag)
5607 return __fxstatat64 (1, __fd, __filename, __statbuf, __flag);
5616 # 39 "/usr/include/fcntl.h" 2 3 4
5617 # 76 "/usr/include/fcntl.h" 3 4
5618 extern int fcntl (int __fd, int __cmd, ...);
5619 # 85 "/usr/include/fcntl.h" 3 4
5620 extern int open (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1)));
5621 # 95 "/usr/include/fcntl.h" 3 4
5622 extern int open64 (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1)));
5623 # 109 "/usr/include/fcntl.h" 3 4
5624 extern int openat (int __fd, __const char *__file, int __oflag, ...)
5625 __attribute__ ((__nonnull__ (2)));
5626 # 120 "/usr/include/fcntl.h" 3 4
5627 extern int openat64 (int __fd, __const char *__file, int __oflag, ...)
5628 __attribute__ ((__nonnull__ (2)));
5629 # 130 "/usr/include/fcntl.h" 3 4
5630 extern int creat (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1)));
5631 # 140 "/usr/include/fcntl.h" 3 4
5632 extern int creat64 (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1)));
5633 # 159 "/usr/include/fcntl.h" 3 4
5634 extern int lockf (int __fd, int __cmd, __off_t __len);
5635 # 168 "/usr/include/fcntl.h" 3 4
5636 extern int lockf64 (int __fd, int __cmd, __off64_t __len);
5644 extern int posix_fadvise (int __fd, __off_t __offset, __off_t __len,
5645 int __advise) __attribute__ ((__nothrow__));
5646 # 188 "/usr/include/fcntl.h" 3 4
5647 extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len,
5648 int __advise) __attribute__ ((__nothrow__));
5649 # 198 "/usr/include/fcntl.h" 3 4
5650 extern int posix_fallocate (int __fd, __off_t __offset, __off_t __len);
5651 # 209 "/usr/include/fcntl.h" 3 4
5652 extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len);
5660 # 1 "/usr/include/bits/fcntl2.h" 1 3 4
5661 # 27 "/usr/include/bits/fcntl2.h" 3 4
5662 extern int __open_2 (__const char *__path, int __oflag) __attribute__ ((__nonnull__ (1)));
5663 extern int __open_alias (__const char *__path, int __oflag, ...) __asm__ ("" "open") __attribute__ ((__nonnull__ (1)));
5671 extern void __open_too_many_args (void) __attribute__((__error__ ("open can be called either with 2 or 3 arguments, not more")));
5673 extern void __open_missing_mode (void) __attribute__((__error__ ("open with O_CREAT in second argument needs 3 arguments")));
5676 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
5677 open (__const char *__path, int __oflag, ...)
5679 if (__builtin_va_arg_pack_len () > 1)
5680 __open_too_many_args ();
5682 if (__builtin_constant_p (__oflag))
5684 if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1)
5686 __open_missing_mode ();
5687 return __open_2 (__path, __oflag);
5689 return __open_alias (__path, __oflag, __builtin_va_arg_pack ());
5692 if (__builtin_va_arg_pack_len () < 1)
5693 return __open_2 (__path, __oflag);
5695 return __open_alias (__path, __oflag, __builtin_va_arg_pack ());
5700 extern int __open64_2 (__const char *__path, int __oflag) __attribute__ ((__nonnull__ (1)));
5701 extern int __open64_alias (__const char *__path, int __oflag, ...) __asm__ ("" "open64") __attribute__ ((__nonnull__ (1)));
5703 extern void __open64_too_many_args (void) __attribute__((__error__ ("open64 can be called either with 2 or 3 arguments, not more")));
5705 extern void __open64_missing_mode (void) __attribute__((__error__ ("open64 with O_CREAT in second argument needs 3 arguments")));
5708 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
5709 open64 (__const char *__path, int __oflag, ...)
5711 if (__builtin_va_arg_pack_len () > 1)
5712 __open64_too_many_args ();
5714 if (__builtin_constant_p (__oflag))
5716 if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1)
5718 __open64_missing_mode ();
5719 return __open64_2 (__path, __oflag);
5721 return __open64_alias (__path, __oflag, __builtin_va_arg_pack ());
5724 if (__builtin_va_arg_pack_len () < 1)
5725 return __open64_2 (__path, __oflag);
5727 return __open64_alias (__path, __oflag, __builtin_va_arg_pack ());
5734 extern int __openat_2 (int __fd, __const char *__path, int __oflag)
5735 __attribute__ ((__nonnull__ (2)));
5736 extern int __openat_alias (int __fd, __const char *__path, int __oflag, ...) __asm__ ("" "openat")
5738 __attribute__ ((__nonnull__ (2)));
5739 # 112 "/usr/include/bits/fcntl2.h" 3 4
5740 extern void __openat_too_many_args (void) __attribute__((__error__ ("openat can be called either with 3 or 4 arguments, not more")));
5742 extern void __openat_missing_mode (void) __attribute__((__error__ ("openat with O_CREAT in third argument needs 4 arguments")));
5745 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
5746 openat (int __fd, __const char *__path, int __oflag, ...)
5748 if (__builtin_va_arg_pack_len () > 1)
5749 __openat_too_many_args ();
5751 if (__builtin_constant_p (__oflag))
5753 if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1)
5755 __openat_missing_mode ();
5756 return __openat_2 (__fd, __path, __oflag);
5758 return __openat_alias (__fd, __path, __oflag, __builtin_va_arg_pack ());
5761 if (__builtin_va_arg_pack_len () < 1)
5762 return __openat_2 (__fd, __path, __oflag);
5764 return __openat_alias (__fd, __path, __oflag, __builtin_va_arg_pack ());
5769 extern int __openat64_2 (int __fd, __const char *__path, int __oflag)
5770 __attribute__ ((__nonnull__ (2)));
5771 extern int __openat64_alias (int __fd, __const char *__path, int __oflag, ...) __asm__ ("" "openat64")
5773 __attribute__ ((__nonnull__ (2)));
5774 extern void __openat64_too_many_args (void) __attribute__((__error__ ("openat64 can be called either with 3 or 4 arguments, not more")));
5776 extern void __openat64_missing_mode (void) __attribute__((__error__ ("openat64 with O_CREAT in third argument needs 4 arguments")));
5779 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
5780 openat64 (int __fd, __const char *__path, int __oflag, ...)
5782 if (__builtin_va_arg_pack_len () > 1)
5783 __openat64_too_many_args ();
5785 if (__builtin_constant_p (__oflag))
5787 if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1)
5789 __openat64_missing_mode ();
5790 return __openat64_2 (__fd, __path, __oflag);
5792 return __openat64_alias (__fd, __path, __oflag, __builtin_va_arg_pack ());
5795 if (__builtin_va_arg_pack_len () < 1)
5796 return __openat64_2 (__fd, __path, __oflag);
5798 return __openat64_alias (__fd, __path, __oflag, __builtin_va_arg_pack ());
5800 # 218 "/usr/include/fcntl.h" 2 3 4
5804 # 336 "./../include/my_global.h" 2
5807 # 1 "/usr/include/sys/timeb.h" 1 3 4
5808 # 28 "/usr/include/sys/timeb.h" 3 4
5816 unsigned short int millitm;
5823 extern int ftime (struct timeb *__timebuf);
5826 # 339 "./../include/my_global.h" 2
5829 # 1 "/usr/include/sys/time.h" 1 3 4
5830 # 29 "/usr/include/sys/time.h" 3 4
5831 # 1 "/usr/include/bits/time.h" 1 3 4
5832 # 30 "/usr/include/sys/time.h" 2 3 4
5833 # 39 "/usr/include/sys/time.h" 3 4
5835 # 57 "/usr/include/sys/time.h" 3 4
5842 typedef struct timezone *__restrict __timezone_ptr_t;
5843 # 73 "/usr/include/sys/time.h" 3 4
5844 extern int gettimeofday (struct timeval *__restrict __tv,
5845 __timezone_ptr_t __tz) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5850 extern int settimeofday (__const struct timeval *__tv,
5851 __const struct timezone *__tz)
5852 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5858 extern int adjtime (__const struct timeval *__delta,
5859 struct timeval *__olddelta) __attribute__ ((__nothrow__));
5883 struct timeval it_interval;
5885 struct timeval it_value;
5891 typedef enum __itimer_which __itimer_which_t;
5898 extern int getitimer (__itimer_which_t __which,
5899 struct itimerval *__value) __attribute__ ((__nothrow__));
5904 extern int setitimer (__itimer_which_t __which,
5905 __const struct itimerval *__restrict __new,
5906 struct itimerval *__restrict __old) __attribute__ ((__nothrow__));
5911 extern int utimes (__const char *__file, __const struct timeval __tvp[2])
5912 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5916 extern int lutimes (__const char *__file, __const struct timeval __tvp[2])
5917 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5920 extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
5927 extern int futimesat (int __fd, __const char *__file,
5928 __const struct timeval __tvp[2]) __attribute__ ((__nothrow__));
5929 # 191 "/usr/include/sys/time.h" 3 4
5931 # 342 "./../include/my_global.h" 2
5932 # 351 "./../include/my_global.h"
5933 # 1 "/usr/include/unistd.h" 1 3 4
5934 # 28 "/usr/include/unistd.h" 3 4
5936 # 175 "/usr/include/unistd.h" 3 4
5937 # 1 "/usr/include/bits/posix_opt.h" 1 3 4
5938 # 176 "/usr/include/unistd.h" 2 3 4
5942 # 1 "/usr/include/bits/environments.h" 1 3 4
5943 # 23 "/usr/include/bits/environments.h" 3 4
5944 # 1 "/usr/include/bits/wordsize.h" 1 3 4
5945 # 24 "/usr/include/bits/environments.h" 2 3 4
5946 # 180 "/usr/include/unistd.h" 2 3 4
5947 # 199 "/usr/include/unistd.h" 3 4
5948 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4
5949 # 200 "/usr/include/unistd.h" 2 3 4
5950 # 240 "/usr/include/unistd.h" 3 4
5951 typedef __intptr_t intptr_t;
5958 typedef __socklen_t socklen_t;
5959 # 260 "/usr/include/unistd.h" 3 4
5960 extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5965 extern int euidaccess (__const char *__name, int __type)
5966 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5969 extern int eaccess (__const char *__name, int __type)
5970 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
5977 extern int faccessat (int __fd, __const char *__file, int __type, int __flag)
5978 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
5979 # 303 "/usr/include/unistd.h" 3 4
5980 extern __off_t lseek (int __fd, __off_t __offset, int __whence) __attribute__ ((__nothrow__));
5981 # 314 "/usr/include/unistd.h" 3 4
5982 extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence)
5983 __attribute__ ((__nothrow__));
5990 extern int close (int __fd);
5997 extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __attribute__ ((__warn_unused_result__));
6003 extern ssize_t write (int __fd, __const void *__buf, size_t __n) __attribute__ ((__warn_unused_result__));
6004 # 345 "/usr/include/unistd.h" 3 4
6005 extern ssize_t pread (int __fd, void *__buf, size_t __nbytes,
6006 __off_t __offset) __attribute__ ((__warn_unused_result__));
6013 extern ssize_t pwrite (int __fd, __const void *__buf, size_t __n,
6014 __off_t __offset) __attribute__ ((__warn_unused_result__));
6015 # 373 "/usr/include/unistd.h" 3 4
6016 extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes,
6017 __off64_t __offset) __attribute__ ((__warn_unused_result__));
6020 extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n,
6021 __off64_t __offset) __attribute__ ((__warn_unused_result__));
6029 extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
6034 extern int pipe2 (int __pipedes[2], int __flags) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
6035 # 401 "/usr/include/unistd.h" 3 4
6036 extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__));
6037 # 413 "/usr/include/unistd.h" 3 4
6038 extern unsigned int sleep (unsigned int __seconds);
6045 extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval)
6046 __attribute__ ((__nothrow__));
6053 extern int usleep (__useconds_t __useconds);
6054 # 437 "/usr/include/unistd.h" 3 4
6055 extern int pause (void);
6059 extern int chown (__const char *__file, __uid_t __owner, __gid_t __group)
6060 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
6064 extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
6069 extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group)
6070 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
6077 extern int fchownat (int __fd, __const char *__file, __uid_t __owner,
6078 __gid_t __group, int __flag)
6079 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
6083 extern int chdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
6087 extern int fchdir (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
6088 # 479 "/usr/include/unistd.h" 3 4
6089 extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
6095 extern char *get_current_dir_name (void) __attribute__ ((__nothrow__));
6102 extern char *getwd (char *__buf)
6103 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__));
6108 extern int dup (int __fd) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
6111 extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__));
6116 extern int dup3 (int __fd, int __fd2, int __flags) __attribute__ ((__nothrow__));
6120 extern char **__environ;
6122 extern char **environ;
6128 extern int execve (__const char *__path, char *__const __argv[],
6129 char *__const __envp[]) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6134 extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[])
6135 __attribute__ ((__nothrow__));
6140 extern int execv (__const char *__path, char *__const __argv[])
6141 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6145 extern int execle (__const char *__path, __const char *__arg, ...)
6146 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6150 extern int execl (__const char *__path, __const char *__arg, ...)
6151 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6155 extern int execvp (__const char *__file, char *__const __argv[])
6156 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6161 extern int execlp (__const char *__file, __const char *__arg, ...)
6162 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6167 extern int nice (int __inc) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
6172 extern void _exit (int __status) __attribute__ ((__noreturn__));
6178 # 1 "/usr/include/bits/confname.h" 1 3 4
6179 # 26 "/usr/include/bits/confname.h" 3 4
6194 _PC_CHOWN_RESTRICTED,
6210 _PC_REC_INCR_XFER_SIZE,
6212 _PC_REC_MAX_XFER_SIZE,
6214 _PC_REC_MIN_XFER_SIZE,
6247 _SC_REALTIME_SIGNALS,
6249 _SC_PRIORITY_SCHEDULING,
6253 _SC_ASYNCHRONOUS_IO,
6257 _SC_SYNCHRONIZED_IO,
6267 _SC_MEMORY_PROTECTION,
6269 _SC_MESSAGE_PASSING,
6273 _SC_SHARED_MEMORY_OBJECTS,
6279 _SC_AIO_PRIO_DELTA_MAX,
6313 _SC_COLL_WEIGHTS_MAX,
6315 _SC_EQUIV_CLASS_MAX,
6323 _SC_CHARCLASS_NAME_MAX,
6357 _SC_IOV_MAX = _SC_UIO_MAXIOV,
6359 _SC_PII_INTERNET_STREAM,
6361 _SC_PII_INTERNET_DGRAM,
6375 _SC_THREAD_SAFE_FUNCTIONS,
6377 _SC_GETGR_R_SIZE_MAX,
6379 _SC_GETPW_R_SIZE_MAX,
6385 _SC_THREAD_DESTRUCTOR_ITERATIONS,
6387 _SC_THREAD_KEYS_MAX,
6389 _SC_THREAD_STACK_MIN,
6391 _SC_THREAD_THREADS_MAX,
6393 _SC_THREAD_ATTR_STACKADDR,
6395 _SC_THREAD_ATTR_STACKSIZE,
6397 _SC_THREAD_PRIORITY_SCHEDULING,
6399 _SC_THREAD_PRIO_INHERIT,
6401 _SC_THREAD_PRIO_PROTECT,
6403 _SC_THREAD_PROCESS_SHARED,
6406 _SC_NPROCESSORS_CONF,
6408 _SC_NPROCESSORS_ONLN,
6421 _SC_XOPEN_XCU_VERSION,
6496 _SC_XBS5_ILP32_OFF32,
6498 _SC_XBS5_ILP32_OFFBIG,
6500 _SC_XBS5_LP64_OFF64,
6502 _SC_XBS5_LPBIG_OFFBIG,
6509 _SC_XOPEN_REALTIME_THREADS,
6520 _SC_C_LANG_SUPPORT_R,
6522 _SC_CLOCK_SELECTION,
6530 _SC_DEVICE_SPECIFIC,
6532 _SC_DEVICE_SPECIFIC_R,
6540 _SC_FILE_ATTRIBUTES,
6546 _SC_MONOTONIC_CLOCK,
6554 _SC_READER_WRITER_LOCKS,
6568 _SC_SPORADIC_SERVER,
6570 _SC_THREAD_SPORADIC_SERVER,
6572 _SC_SYSTEM_DATABASE,
6574 _SC_SYSTEM_DATABASE_R,
6578 _SC_TYPED_MEMORY_OBJECTS,
6586 _SC_2_PBS_ACCOUNTING,
6598 _SC_2_PBS_CHECKPOINT,
6603 _SC_V6_ILP32_OFFBIG,
6607 _SC_V6_LPBIG_OFFBIG,
6614 _SC_TRACE_EVENT_FILTER,
6621 _SC_LEVEL1_ICACHE_SIZE,
6623 _SC_LEVEL1_ICACHE_ASSOC,
6625 _SC_LEVEL1_ICACHE_LINESIZE,
6627 _SC_LEVEL1_DCACHE_SIZE,
6629 _SC_LEVEL1_DCACHE_ASSOC,
6631 _SC_LEVEL1_DCACHE_LINESIZE,
6633 _SC_LEVEL2_CACHE_SIZE,
6635 _SC_LEVEL2_CACHE_ASSOC,
6637 _SC_LEVEL2_CACHE_LINESIZE,
6639 _SC_LEVEL3_CACHE_SIZE,
6641 _SC_LEVEL3_CACHE_ASSOC,
6643 _SC_LEVEL3_CACHE_LINESIZE,
6645 _SC_LEVEL4_CACHE_SIZE,
6647 _SC_LEVEL4_CACHE_ASSOC,
6649 _SC_LEVEL4_CACHE_LINESIZE,
6653 _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50,
6660 _SC_V7_ILP32_OFFBIG,
6664 _SC_V7_LPBIG_OFFBIG,
6670 _SC_TRACE_EVENT_NAME_MAX,
6676 _SC_TRACE_USER_EVENT_MAX,
6682 _SC_THREAD_ROBUST_PRIO_INHERIT,
6684 _SC_THREAD_ROBUST_PRIO_PROTECT,
6694 _CS_V6_WIDTH_RESTRICTED_ENVS,
6698 _CS_GNU_LIBC_VERSION,
6700 _CS_GNU_LIBPTHREAD_VERSION,
6703 _CS_V5_WIDTH_RESTRICTED_ENVS,
6707 _CS_V7_WIDTH_RESTRICTED_ENVS,
6711 _CS_LFS_CFLAGS = 1000,
6725 _CS_LFS64_LINTFLAGS,
6728 _CS_XBS5_ILP32_OFF32_CFLAGS = 1100,
6730 _CS_XBS5_ILP32_OFF32_LDFLAGS,
6732 _CS_XBS5_ILP32_OFF32_LIBS,
6734 _CS_XBS5_ILP32_OFF32_LINTFLAGS,
6736 _CS_XBS5_ILP32_OFFBIG_CFLAGS,
6738 _CS_XBS5_ILP32_OFFBIG_LDFLAGS,
6740 _CS_XBS5_ILP32_OFFBIG_LIBS,
6742 _CS_XBS5_ILP32_OFFBIG_LINTFLAGS,
6744 _CS_XBS5_LP64_OFF64_CFLAGS,
6746 _CS_XBS5_LP64_OFF64_LDFLAGS,
6748 _CS_XBS5_LP64_OFF64_LIBS,
6750 _CS_XBS5_LP64_OFF64_LINTFLAGS,
6752 _CS_XBS5_LPBIG_OFFBIG_CFLAGS,
6754 _CS_XBS5_LPBIG_OFFBIG_LDFLAGS,
6756 _CS_XBS5_LPBIG_OFFBIG_LIBS,
6758 _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS,
6761 _CS_POSIX_V6_ILP32_OFF32_CFLAGS,
6763 _CS_POSIX_V6_ILP32_OFF32_LDFLAGS,
6765 _CS_POSIX_V6_ILP32_OFF32_LIBS,
6767 _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS,
6769 _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS,
6771 _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS,
6773 _CS_POSIX_V6_ILP32_OFFBIG_LIBS,
6775 _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS,
6777 _CS_POSIX_V6_LP64_OFF64_CFLAGS,
6779 _CS_POSIX_V6_LP64_OFF64_LDFLAGS,
6781 _CS_POSIX_V6_LP64_OFF64_LIBS,
6783 _CS_POSIX_V6_LP64_OFF64_LINTFLAGS,
6785 _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS,
6787 _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS,
6789 _CS_POSIX_V6_LPBIG_OFFBIG_LIBS,
6791 _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS,
6794 _CS_POSIX_V7_ILP32_OFF32_CFLAGS,
6796 _CS_POSIX_V7_ILP32_OFF32_LDFLAGS,
6798 _CS_POSIX_V7_ILP32_OFF32_LIBS,
6800 _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS,
6802 _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS,
6804 _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS,
6806 _CS_POSIX_V7_ILP32_OFFBIG_LIBS,
6808 _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS,
6810 _CS_POSIX_V7_LP64_OFF64_CFLAGS,
6812 _CS_POSIX_V7_LP64_OFF64_LDFLAGS,
6814 _CS_POSIX_V7_LP64_OFF64_LIBS,
6816 _CS_POSIX_V7_LP64_OFF64_LINTFLAGS,
6818 _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS,
6820 _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS,
6822 _CS_POSIX_V7_LPBIG_OFFBIG_LIBS,
6824 _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS
6827 # 569 "/usr/include/unistd.h" 2 3 4
6830 extern long int pathconf (__const char *__path, int __name)
6831 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
6834 extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__));
6837 extern long int sysconf (int __name) __attribute__ ((__nothrow__));
6841 extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__));
6846 extern __pid_t getpid (void) __attribute__ ((__nothrow__));
6849 extern __pid_t getppid (void) __attribute__ ((__nothrow__));
6854 extern __pid_t getpgrp (void) __attribute__ ((__nothrow__));
6855 # 605 "/usr/include/unistd.h" 3 4
6856 extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
6858 extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__));
6865 extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__));
6866 # 631 "/usr/include/unistd.h" 3 4
6867 extern int setpgrp (void) __attribute__ ((__nothrow__));
6868 # 648 "/usr/include/unistd.h" 3 4
6869 extern __pid_t setsid (void) __attribute__ ((__nothrow__));
6873 extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__));
6877 extern __uid_t getuid (void) __attribute__ ((__nothrow__));
6880 extern __uid_t geteuid (void) __attribute__ ((__nothrow__));
6883 extern __gid_t getgid (void) __attribute__ ((__nothrow__));
6886 extern __gid_t getegid (void) __attribute__ ((__nothrow__));
6891 extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
6895 extern int group_member (__gid_t __gid) __attribute__ ((__nothrow__));
6902 extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__));
6907 extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__));
6912 extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__));
6919 extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__));
6924 extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__));
6929 extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__));
6935 extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid)
6936 __attribute__ ((__nothrow__));
6940 extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid)
6941 __attribute__ ((__nothrow__));
6945 extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid)
6946 __attribute__ ((__nothrow__));
6950 extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid)
6951 __attribute__ ((__nothrow__));
6958 extern __pid_t fork (void) __attribute__ ((__nothrow__));
6965 extern __pid_t vfork (void) __attribute__ ((__nothrow__));
6971 extern char *ttyname (int __fd) __attribute__ ((__nothrow__));
6975 extern int ttyname_r (int __fd, char *__buf, size_t __buflen)
6976 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__));
6980 extern int isatty (int __fd) __attribute__ ((__nothrow__));
6986 extern int ttyslot (void) __attribute__ ((__nothrow__));
6991 extern int link (__const char *__from, __const char *__to)
6992 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
6997 extern int linkat (int __fromfd, __const char *__from, int __tofd,
6998 __const char *__to, int __flags)
6999 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))) __attribute__ ((__warn_unused_result__));
7004 extern int symlink (__const char *__from, __const char *__to)
7005 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
7010 extern ssize_t readlink (__const char *__restrict __path,
7011 char *__restrict __buf, size_t __len)
7012 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
7017 extern int symlinkat (__const char *__from, int __tofd,
7018 __const char *__to) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__));
7021 extern ssize_t readlinkat (int __fd, __const char *__restrict __path,
7022 char *__restrict __buf, size_t __len)
7023 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__));
7027 extern int unlink (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7031 extern int unlinkat (int __fd, __const char *__name, int __flag)
7032 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
7036 extern int rmdir (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7040 extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__));
7043 extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__));
7050 extern char *getlogin (void);
7058 extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1)));
7063 extern int setlogin (__const char *__name) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7064 # 851 "/usr/include/unistd.h" 3 4
7065 # 1 "/usr/include/getopt.h" 1 3 4
7066 # 59 "/usr/include/getopt.h" 3 4
7067 extern char *optarg;
7068 # 73 "/usr/include/getopt.h" 3 4
7079 # 152 "/usr/include/getopt.h" 3 4
7080 extern int getopt (int ___argc, char *const *___argv, const char *__shortopts)
7081 __attribute__ ((__nothrow__));
7082 # 852 "/usr/include/unistd.h" 2 3 4
7090 extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7097 extern int sethostname (__const char *__name, size_t __len)
7098 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
7102 extern int sethostid (long int __id) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
7108 extern int getdomainname (char *__name, size_t __len)
7109 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
7110 extern int setdomainname (__const char *__name, size_t __len)
7111 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
7117 extern int vhangup (void) __attribute__ ((__nothrow__));
7120 extern int revoke (__const char *__file) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
7128 extern int profil (unsigned short int *__sample_buffer, size_t __size,
7129 size_t __offset, unsigned int __scale)
7130 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7136 extern int acct (__const char *__name) __attribute__ ((__nothrow__));
7140 extern char *getusershell (void) __attribute__ ((__nothrow__));
7141 extern void endusershell (void) __attribute__ ((__nothrow__));
7142 extern void setusershell (void) __attribute__ ((__nothrow__));
7148 extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
7155 extern int chroot (__const char *__path) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
7159 extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1)));
7160 # 937 "/usr/include/unistd.h" 3 4
7161 extern int fsync (int __fd);
7168 extern long int gethostid (void);
7171 extern void sync (void) __attribute__ ((__nothrow__));
7176 extern int getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
7181 extern int getdtablesize (void) __attribute__ ((__nothrow__));
7186 extern int truncate (__const char *__file, __off_t __length)
7187 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
7188 # 974 "/usr/include/unistd.h" 3 4
7189 extern int truncate64 (__const char *__file, __off64_t __length)
7190 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
7191 # 984 "/usr/include/unistd.h" 3 4
7192 extern int ftruncate (int __fd, __off_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
7193 # 994 "/usr/include/unistd.h" 3 4
7194 extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
7195 # 1004 "/usr/include/unistd.h" 3 4
7196 extern int brk (void *__addr) __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
7202 extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__));
7203 # 1025 "/usr/include/unistd.h" 3 4
7204 extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__));
7205 # 1079 "/usr/include/unistd.h" 3 4
7206 extern int fdatasync (int __fildes);
7214 extern char *crypt (__const char *__key, __const char *__salt)
7215 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7219 extern void encrypt (char *__block, int __edflag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7226 extern void swab (__const void *__restrict __from, void *__restrict __to,
7227 ssize_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7235 extern char *ctermid (char *__s) __attribute__ ((__nothrow__));
7241 # 1 "/usr/include/bits/unistd.h" 1 3 4
7242 # 24 "/usr/include/bits/unistd.h" 3 4
7243 extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes,
7244 size_t __buflen) __attribute__ ((__warn_unused_result__));
7245 extern ssize_t __read_alias (int __fd, void *__buf, size_t __nbytes) __asm__ ("" "read") __attribute__ ((__warn_unused_result__));
7247 extern ssize_t __read_chk_warn (int __fd, void *__buf, size_t __nbytes, size_t __buflen) __asm__ ("" "__read_chk")
7250 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("read called with bigger length than size of " "the destination buffer")));
7253 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t
7254 read (int __fd, void *__buf, size_t __nbytes)
7256 if (__builtin_object_size (__buf, 0) != (size_t) -1)
7258 if (!__builtin_constant_p (__nbytes))
7259 return __read_chk (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0));
7261 if (__nbytes > __builtin_object_size (__buf, 0))
7262 return __read_chk_warn (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0));
7264 return __read_alias (__fd, __buf, __nbytes);
7268 extern ssize_t __pread_chk (int __fd, void *__buf, size_t __nbytes,
7269 __off_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__));
7270 extern ssize_t __pread64_chk (int __fd, void *__buf, size_t __nbytes,
7271 __off64_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__));
7272 extern ssize_t __pread_alias (int __fd, void *__buf, size_t __nbytes, __off_t __offset) __asm__ ("" "pread") __attribute__ ((__warn_unused_result__));
7275 extern ssize_t __pread64_alias (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pread64") __attribute__ ((__warn_unused_result__));
7278 extern ssize_t __pread_chk_warn (int __fd, void *__buf, size_t __nbytes, __off_t __offset, size_t __bufsize) __asm__ ("" "__pread_chk")
7281 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread called with bigger length than size of " "the destination buffer")));
7283 extern ssize_t __pread64_chk_warn (int __fd, void *__buf, size_t __nbytes, __off64_t __offset, size_t __bufsize) __asm__ ("" "__pread64_chk")
7287 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread64 called with bigger length than size of " "the destination buffer")));
7291 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t
7292 pread (int __fd, void *__buf, size_t __nbytes, __off_t __offset)
7294 if (__builtin_object_size (__buf, 0) != (size_t) -1)
7296 if (!__builtin_constant_p (__nbytes))
7297 return __pread_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0));
7299 if ( __nbytes > __builtin_object_size (__buf, 0))
7300 return __pread_chk_warn (__fd, __buf, __nbytes, __offset,
7301 __builtin_object_size (__buf, 0));
7303 return __pread_alias (__fd, __buf, __nbytes, __offset);
7305 # 105 "/usr/include/bits/unistd.h" 3 4
7306 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t
7307 pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset)
7309 if (__builtin_object_size (__buf, 0) != (size_t) -1)
7311 if (!__builtin_constant_p (__nbytes))
7312 return __pread64_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0));
7314 if ( __nbytes > __builtin_object_size (__buf, 0))
7315 return __pread64_chk_warn (__fd, __buf, __nbytes, __offset,
7316 __builtin_object_size (__buf, 0));
7319 return __pread64_alias (__fd, __buf, __nbytes, __offset);
7325 extern ssize_t __readlink_chk (__const char *__restrict __path,
7326 char *__restrict __buf, size_t __len,
7328 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
7329 extern ssize_t __readlink_alias (__const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlink") __attribute__ ((__nothrow__))
7332 __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__));
7333 extern ssize_t __readlink_chk_warn (__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlink_chk") __attribute__ ((__nothrow__))
7337 __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlink called with bigger length " "than size of destination buffer")));
7340 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) ssize_t
7341 __attribute__ ((__nothrow__)) readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len)
7344 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
7346 if (!__builtin_constant_p (__len))
7347 return __readlink_chk (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1));
7349 if ( __len > __builtin_object_size (__buf, 2 > 1))
7350 return __readlink_chk_warn (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1));
7352 return __readlink_alias (__path, __buf, __len);
7357 extern ssize_t __readlinkat_chk (int __fd, __const char *__restrict __path,
7358 char *__restrict __buf, size_t __len,
7360 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__));
7361 extern ssize_t __readlinkat_alias (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlinkat") __attribute__ ((__nothrow__))
7365 __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__));
7366 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__))
7370 __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlinkat called with bigger " "length than size of destination " "buffer")));
7374 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) ssize_t
7375 __attribute__ ((__nothrow__)) readlinkat (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len)
7378 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
7380 if (!__builtin_constant_p (__len))
7381 return __readlinkat_chk (__fd, __path, __buf, __len, __builtin_object_size (__buf, 2 > 1));
7383 if (__len > __builtin_object_size (__buf, 2 > 1))
7384 return __readlinkat_chk_warn (__fd, __path, __buf, __len,
7385 __builtin_object_size (__buf, 2 > 1));
7387 return __readlinkat_alias (__fd, __path, __buf, __len);
7391 extern char *__getcwd_chk (char *__buf, size_t __size, size_t __buflen)
7392 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
7393 extern char *__getcwd_alias (char *__buf, size_t __size) __asm__ ("" "getcwd") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
7395 extern char *__getcwd_chk_warn (char *__buf, size_t __size, size_t __buflen) __asm__ ("" "__getcwd_chk") __attribute__ ((__nothrow__))
7398 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getcwd caller with bigger length than size of " "destination buffer")));
7401 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char *
7402 __attribute__ ((__nothrow__)) getcwd (char *__buf, size_t __size)
7404 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
7406 if (!__builtin_constant_p (__size))
7407 return __getcwd_chk (__buf, __size, __builtin_object_size (__buf, 2 > 1));
7409 if (__size > __builtin_object_size (__buf, 2 > 1))
7410 return __getcwd_chk_warn (__buf, __size, __builtin_object_size (__buf, 2 > 1));
7412 return __getcwd_alias (__buf, __size);
7416 extern char *__getwd_chk (char *__buf, size_t buflen)
7417 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
7418 extern char *__getwd_warn (char *__buf) __asm__ ("" "getwd") __attribute__ ((__nothrow__))
7419 __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use getcwd instead, as getwd " "doesn't specify buffer size")));
7422 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)) char *
7423 __attribute__ ((__nothrow__)) getwd (char *__buf)
7425 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
7426 return __getwd_chk (__buf, __builtin_object_size (__buf, 2 > 1));
7427 return __getwd_warn (__buf);
7431 extern size_t __confstr_chk (int __name, char *__buf, size_t __len,
7432 size_t __buflen) __attribute__ ((__nothrow__));
7433 extern size_t __confstr_alias (int __name, char *__buf, size_t __len) __asm__ ("" "confstr") __attribute__ ((__nothrow__));
7435 extern size_t __confstr_chk_warn (int __name, char *__buf, size_t __len, size_t __buflen) __asm__ ("" "__confstr_chk") __attribute__ ((__nothrow__))
7438 __attribute__((__warning__ ("confstr called with bigger length than size of destination " "buffer")));
7441 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t
7442 __attribute__ ((__nothrow__)) confstr (int __name, char *__buf, size_t __len)
7444 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
7446 if (!__builtin_constant_p (__len))
7447 return __confstr_chk (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1));
7449 if (__builtin_object_size (__buf, 2 > 1) < __len)
7450 return __confstr_chk_warn (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1));
7452 return __confstr_alias (__name, __buf, __len);
7456 extern int __getgroups_chk (int __size, __gid_t __list[], size_t __listlen)
7457 __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
7458 extern int __getgroups_alias (int __size, __gid_t __list[]) __asm__ ("" "getgroups") __attribute__ ((__nothrow__)) __attribute__ ((__warn_unused_result__));
7460 extern int __getgroups_chk_warn (int __size, __gid_t __list[], size_t __listlen) __asm__ ("" "__getgroups_chk") __attribute__ ((__nothrow__))
7463 __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getgroups called with bigger group count than what " "can fit into destination buffer")));
7466 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
7467 __attribute__ ((__nothrow__)) getgroups (int __size, __gid_t __list[])
7469 if (__builtin_object_size (__list, 2 > 1) != (size_t) -1)
7471 if (!__builtin_constant_p (__size) || __size < 0)
7472 return __getgroups_chk (__size, __list, __builtin_object_size (__list, 2 > 1));
7474 if (__size * sizeof (__gid_t) > __builtin_object_size (__list, 2 > 1))
7475 return __getgroups_chk_warn (__size, __list, __builtin_object_size (__list, 2 > 1));
7477 return __getgroups_alias (__size, __list);
7481 extern int __ttyname_r_chk (int __fd, char *__buf, size_t __buflen,
7482 size_t __nreal) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
7483 extern int __ttyname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ttyname_r") __attribute__ ((__nothrow__))
7485 __attribute__ ((__nonnull__ (2)));
7486 extern int __ttyname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ttyname_r_chk") __attribute__ ((__nothrow__))
7489 __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ttyname_r called with bigger buflen than " "size of destination buffer")));
7492 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
7493 __attribute__ ((__nothrow__)) ttyname_r (int __fd, char *__buf, size_t __buflen)
7495 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
7497 if (!__builtin_constant_p (__buflen))
7498 return __ttyname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
7500 if (__buflen > __builtin_object_size (__buf, 2 > 1))
7501 return __ttyname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1));
7503 return __ttyname_r_alias (__fd, __buf, __buflen);
7508 extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal)
7509 __attribute__ ((__nonnull__ (1)));
7510 extern int __getlogin_r_alias (char *__buf, size_t __buflen) __asm__ ("" "getlogin_r") __attribute__ ((__nonnull__ (1)));
7512 extern int __getlogin_r_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getlogin_r_chk")
7515 __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("getlogin_r called with bigger buflen than " "size of destination buffer")));
7518 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
7519 getlogin_r (char *__buf, size_t __buflen)
7521 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
7523 if (!__builtin_constant_p (__buflen))
7524 return __getlogin_r_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
7526 if (__buflen > __builtin_object_size (__buf, 2 > 1))
7527 return __getlogin_r_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
7529 return __getlogin_r_alias (__buf, __buflen);
7535 extern int __gethostname_chk (char *__buf, size_t __buflen, size_t __nreal)
7536 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7537 extern int __gethostname_alias (char *__buf, size_t __buflen) __asm__ ("" "gethostname") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7539 extern int __gethostname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__gethostname_chk") __attribute__ ((__nothrow__))
7542 __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("gethostname called with bigger buflen than " "size of destination buffer")));
7545 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
7546 __attribute__ ((__nothrow__)) gethostname (char *__buf, size_t __buflen)
7548 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
7550 if (!__builtin_constant_p (__buflen))
7551 return __gethostname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
7553 if (__buflen > __builtin_object_size (__buf, 2 > 1))
7554 return __gethostname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
7556 return __gethostname_alias (__buf, __buflen);
7562 extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal)
7563 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
7564 extern int __getdomainname_alias (char *__buf, size_t __buflen) __asm__ ("" "getdomainname") __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__));
7567 extern int __getdomainname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getdomainname_chk") __attribute__ ((__nothrow__))
7570 __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getdomainname called with bigger " "buflen than size of destination " "buffer")));
7574 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int
7575 __attribute__ ((__nothrow__)) getdomainname (char *__buf, size_t __buflen)
7577 if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1)
7579 if (!__builtin_constant_p (__buflen))
7580 return __getdomainname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
7582 if (__buflen > __builtin_object_size (__buf, 2 > 1))
7583 return __getdomainname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1));
7585 return __getdomainname_alias (__buf, __buflen);
7587 # 1115 "/usr/include/unistd.h" 2 3 4
7591 # 352 "./../include/my_global.h" 2
7592 # 371 "./../include/my_global.h"
7593 # 1 "/usr/include/errno.h" 1 3 4
7594 # 32 "/usr/include/errno.h" 3 4
7599 # 1 "/usr/include/bits/errno.h" 1 3 4
7600 # 25 "/usr/include/bits/errno.h" 3 4
7601 # 1 "/usr/include/linux/errno.h" 1 3 4
7605 # 1 "/usr/include/asm/errno.h" 1 3 4
7609 # 1 "/usr/include/asm-generic/errno.h" 1 3 4
7613 # 1 "/usr/include/asm-generic/errno-base.h" 1 3 4
7614 # 5 "/usr/include/asm-generic/errno.h" 2 3 4
7615 # 5 "/usr/include/asm/errno.h" 2 3 4
7616 # 5 "/usr/include/linux/errno.h" 2 3 4
7617 # 26 "/usr/include/bits/errno.h" 2 3 4
7618 # 43 "/usr/include/bits/errno.h" 3 4
7619 extern int *__errno_location (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
7620 # 37 "/usr/include/errno.h" 2 3 4
7621 # 55 "/usr/include/errno.h" 3 4
7622 extern char *program_invocation_name, *program_invocation_short_name;
7627 # 69 "/usr/include/errno.h" 3 4
7628 typedef int error_t;
7629 # 372 "./../include/my_global.h" 2
7632 # 1 "/usr/include/crypt.h" 1 3 4
7633 # 30 "/usr/include/crypt.h" 3 4
7637 extern char *crypt (__const char *__key, __const char *__salt)
7638 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7641 extern void setkey (__const char *__key) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7645 extern void encrypt (char *__block, int __edflag) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
7652 char keysched[16 * 8];
7658 char crypt_3_buf[14];
7659 char current_salt[2];
7660 long int current_saltbits;
7661 int direction, initialized;
7664 extern char *crypt_r (__const char *__key, __const char *__salt,
7665 struct crypt_data * __restrict __data)
7666 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3)));
7668 extern void setkey_r (__const char *__key,
7669 struct crypt_data * __restrict __data)
7670 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
7672 extern void encrypt_r (char *__block, int __edflag,
7673 struct crypt_data * __restrict __data)
7674 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3)));
7678 # 375 "./../include/my_global.h" 2
7686 # 1 "/usr/include/assert.h" 1 3 4
7687 # 66 "/usr/include/assert.h" 3 4
7691 extern void __assert_fail (__const char *__assertion, __const char *__file,
7692 unsigned int __line, __const char *__function)
7693 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
7696 extern void __assert_perror_fail (int __errnum, __const char *__file,
7697 unsigned int __line,
7698 __const char *__function)
7699 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
7704 extern void __assert (const char *__assertion, const char *__file, int __line)
7705 __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__));
7709 # 383 "./../include/my_global.h" 2
7710 # 508 "./../include/my_global.h"
7711 # 1 "./../include/my_attribute.h" 1
7712 # 509 "./../include/my_global.h" 2
7713 # 544 "./../include/my_global.h"
7714 # 1 "./../include/my_dbug.h" 1
7715 # 545 "./../include/my_global.h" 2
7725 typedef int my_socket;
7731 typedef void (*sig_return)();
7735 typedef char puchar;
7737 typedef short pshort;
7738 typedef float pfloat;
7747 typedef int (*qsort_cmp)(const void *,const void *);
7748 typedef int (*qsort_cmp2)(void*, const void *,const void *);
7750 # 590 "./../include/my_global.h"
7751 # 1 "/usr/include/sys/socket.h" 1 3 4
7752 # 26 "/usr/include/sys/socket.h" 3 4
7755 # 1 "/usr/include/sys/uio.h" 1 3 4
7756 # 26 "/usr/include/sys/uio.h" 3 4
7760 # 1 "/usr/include/bits/uio.h" 1 3 4
7761 # 30 "/usr/include/sys/uio.h" 2 3 4
7762 # 40 "/usr/include/sys/uio.h" 3 4
7763 extern ssize_t readv (int __fd, __const struct iovec *__iovec, int __count)
7764 __attribute__ ((__warn_unused_result__));
7765 # 51 "/usr/include/sys/uio.h" 3 4
7766 extern ssize_t writev (int __fd, __const struct iovec *__iovec, int __count)
7767 __attribute__ ((__warn_unused_result__));
7768 # 66 "/usr/include/sys/uio.h" 3 4
7769 extern ssize_t preadv (int __fd, __const struct iovec *__iovec, int __count,
7770 __off_t __offset) __attribute__ ((__warn_unused_result__));
7771 # 78 "/usr/include/sys/uio.h" 3 4
7772 extern ssize_t pwritev (int __fd, __const struct iovec *__iovec, int __count,
7773 __off_t __offset) __attribute__ ((__warn_unused_result__));
7774 # 104 "/usr/include/sys/uio.h" 3 4
7775 extern ssize_t preadv64 (int __fd, __const struct iovec *__iovec, int __count,
7776 __off64_t __offset) __attribute__ ((__warn_unused_result__));
7777 # 116 "/usr/include/sys/uio.h" 3 4
7778 extern ssize_t pwritev64 (int __fd, __const struct iovec *__iovec, int __count,
7779 __off64_t __offset) __attribute__ ((__warn_unused_result__));
7784 # 29 "/usr/include/sys/socket.h" 2 3 4
7786 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4
7787 # 31 "/usr/include/sys/socket.h" 2 3 4
7790 # 1 "/usr/include/bits/sigset.h" 1 3 4
7791 # 34 "/usr/include/sys/socket.h" 2 3 4
7798 # 1 "/usr/include/bits/socket.h" 1 3 4
7799 # 29 "/usr/include/bits/socket.h" 3 4
7800 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4
7801 # 30 "/usr/include/bits/socket.h" 2 3 4
7802 # 40 "/usr/include/bits/socket.h" 3 4
7828 SOCK_CLOEXEC = 02000000,
7831 SOCK_NONBLOCK = 04000
7835 # 169 "/usr/include/bits/socket.h" 3 4
7836 # 1 "/usr/include/bits/sockaddr.h" 1 3 4
7837 # 29 "/usr/include/bits/sockaddr.h" 3 4
7838 typedef unsigned short int sa_family_t;
7839 # 170 "/usr/include/bits/socket.h" 2 3 4
7844 sa_family_t sa_family;
7847 # 185 "/usr/include/bits/socket.h" 3 4
7848 struct sockaddr_storage
7850 sa_family_t ss_family;
7851 unsigned long int __ss_align;
7852 char __ss_padding[(128 - (2 * sizeof (unsigned long int)))];
7863 MSG_DONTROUTE = 0x04,
7867 MSG_TRYHARD = MSG_DONTROUTE,
7876 MSG_DONTWAIT = 0x40,
7880 MSG_WAITALL = 0x100,
7886 MSG_CONFIRM = 0x800,
7890 MSG_ERRQUEUE = 0x2000,
7892 MSG_NOSIGNAL = 0x4000,
7897 MSG_CMSG_CLOEXEC = 0x40000000
7909 socklen_t msg_namelen;
7911 struct iovec *msg_iov;
7915 size_t msg_controllen;
7934 __extension__ unsigned char __cmsg_data [];
7937 # 291 "/usr/include/bits/socket.h" 3 4
7938 extern struct cmsghdr *__cmsg_nxthdr (struct msghdr *__mhdr,
7939 struct cmsghdr *__cmsg) __attribute__ ((__nothrow__));
7944 extern __inline struct cmsghdr *
7945 __attribute__ ((__nothrow__)) __cmsg_nxthdr (struct msghdr *__mhdr, struct cmsghdr *__cmsg)
7947 if ((size_t) __cmsg->cmsg_len < sizeof (struct cmsghdr))
7951 __cmsg = (struct cmsghdr *) ((unsigned char *) __cmsg
7952 + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1)));
7953 if ((unsigned char *) (__cmsg + 1) > ((unsigned char *) __mhdr->msg_control
7954 + __mhdr->msg_controllen)
7955 || ((unsigned char *) __cmsg + (((__cmsg->cmsg_len) + sizeof (size_t) - 1) & (size_t) ~(sizeof (size_t) - 1))
7956 > ((unsigned char *) __mhdr->msg_control + __mhdr->msg_controllen)))
7970 , SCM_CREDENTIALS = 0x02
7983 # 364 "/usr/include/bits/socket.h" 3 4
7984 # 1 "/usr/include/asm/socket.h" 1 3 4
7985 # 11 "/usr/include/asm/socket.h" 3 4
7986 # 1 "/usr/include/asm/sockios.h" 1 3 4
7987 # 12 "/usr/include/asm/socket.h" 2 3 4
7988 # 365 "/usr/include/bits/socket.h" 2 3 4
7989 # 398 "/usr/include/bits/socket.h" 3 4
7995 # 41 "/usr/include/sys/socket.h" 2 3 4
8002 unsigned short int sa_family;
8003 unsigned char sa_data[14];
8018 # 92 "/usr/include/sys/socket.h" 3 4
8019 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__;
8020 } __SOCKADDR_ARG __attribute__ ((__transparent_union__));
8023 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__;
8024 } __CONST_SOCKADDR_ARG __attribute__ ((__transparent_union__));
8032 extern int socket (int __domain, int __type, int __protocol) __attribute__ ((__nothrow__));
8038 extern int socketpair (int __domain, int __type, int __protocol,
8039 int __fds[2]) __attribute__ ((__nothrow__));
8042 extern int bind (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len)
8043 __attribute__ ((__nothrow__));
8046 extern int getsockname (int __fd, __SOCKADDR_ARG __addr,
8047 socklen_t *__restrict __len) __attribute__ ((__nothrow__));
8048 # 129 "/usr/include/sys/socket.h" 3 4
8049 extern int connect (int __fd, __CONST_SOCKADDR_ARG __addr, socklen_t __len);
8053 extern int getpeername (int __fd, __SOCKADDR_ARG __addr,
8054 socklen_t *__restrict __len) __attribute__ ((__nothrow__));
8061 extern ssize_t send (int __fd, __const void *__buf, size_t __n, int __flags);
8068 extern ssize_t recv (int __fd, void *__buf, size_t __n, int __flags);
8075 extern ssize_t sendto (int __fd, __const void *__buf, size_t __n,
8076 int __flags, __CONST_SOCKADDR_ARG __addr,
8077 socklen_t __addr_len);
8078 # 166 "/usr/include/sys/socket.h" 3 4
8079 extern ssize_t recvfrom (int __fd, void *__restrict __buf, size_t __n,
8080 int __flags, __SOCKADDR_ARG __addr,
8081 socklen_t *__restrict __addr_len);
8089 extern ssize_t sendmsg (int __fd, __const struct msghdr *__message,
8097 extern ssize_t recvmsg (int __fd, struct msghdr *__message, int __flags);
8103 extern int getsockopt (int __fd, int __level, int __optname,
8104 void *__restrict __optval,
8105 socklen_t *__restrict __optlen) __attribute__ ((__nothrow__));
8110 extern int setsockopt (int __fd, int __level, int __optname,
8111 __const void *__optval, socklen_t __optlen) __attribute__ ((__nothrow__));
8117 extern int listen (int __fd, int __n) __attribute__ ((__nothrow__));
8118 # 214 "/usr/include/sys/socket.h" 3 4
8119 extern int accept (int __fd, __SOCKADDR_ARG __addr,
8120 socklen_t *__restrict __addr_len);
8127 extern int accept4 (int __fd, __SOCKADDR_ARG __addr,
8128 socklen_t *__restrict __addr_len, int __flags);
8129 # 232 "/usr/include/sys/socket.h" 3 4
8130 extern int shutdown (int __fd, int __how) __attribute__ ((__nothrow__));
8135 extern int sockatmark (int __fd) __attribute__ ((__nothrow__));
8143 extern int isfdtype (int __fd, int __fdtype) __attribute__ ((__nothrow__));
8149 # 1 "/usr/include/bits/socket2.h" 1 3 4
8150 # 24 "/usr/include/bits/socket2.h" 3 4
8151 extern ssize_t __recv_chk (int __fd, void *__buf, size_t __n, size_t __buflen,
8153 extern ssize_t __recv_alias (int __fd, void *__buf, size_t __n, int __flags) __asm__ ("" "recv");
8155 extern ssize_t __recv_chk_warn (int __fd, void *__buf, size_t __n, size_t __buflen, int __flags) __asm__ ("" "__recv_chk")
8158 __attribute__((__warning__ ("recv called with bigger length than size of destination " "buffer")));
8161 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) ssize_t
8162 recv (int __fd, void *__buf, size_t __n, int __flags)
8164 if (__builtin_object_size (__buf, 0) != (size_t) -1)
8166 if (!__builtin_constant_p (__n))
8167 return __recv_chk (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags);
8169 if (__n > __builtin_object_size (__buf, 0))
8170 return __recv_chk_warn (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags);
8172 return __recv_alias (__fd, __buf, __n, __flags);
8175 extern ssize_t __recvfrom_chk (int __fd, void *__restrict __buf, size_t __n,
8176 size_t __buflen, int __flags,
8177 __SOCKADDR_ARG __addr,
8178 socklen_t *__restrict __addr_len);
8179 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");
8183 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")
8188 __attribute__((__warning__ ("recvfrom called with bigger length than size of " "destination buffer")));
8191 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) ssize_t
8192 recvfrom (int __fd, void *__restrict __buf, size_t __n, int __flags,
8193 __SOCKADDR_ARG __addr, socklen_t *__restrict __addr_len)
8195 if (__builtin_object_size (__buf, 0) != (size_t) -1)
8197 if (!__builtin_constant_p (__n))
8198 return __recvfrom_chk (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags,
8199 __addr, __addr_len);
8200 if (__n > __builtin_object_size (__buf, 0))
8201 return __recvfrom_chk_warn (__fd, __buf, __n, __builtin_object_size (__buf, 0), __flags,
8202 __addr, __addr_len);
8204 return __recvfrom_alias (__fd, __buf, __n, __flags, __addr, __addr_len);
8206 # 252 "/usr/include/sys/socket.h" 2 3 4
8210 # 591 "./../include/my_global.h" 2
8212 typedef socklen_t size_socket;
8213 # 834 "./../include/my_global.h"
8214 typedef long long my_ptrdiff_t;
8215 # 882 "./../include/my_global.h"
8219 typedef signed char int8;
8220 typedef short int16;
8223 typedef unsigned char uchar;
8225 typedef unsigned char uint8;
8226 typedef unsigned short uint16;
8232 typedef unsigned int uint32;
8233 # 918 "./../include/my_global.h"
8234 typedef unsigned long long int ulonglong;
8235 typedef long long int longlong;
8236 # 931 "./../include/my_global.h"
8237 typedef unsigned long long my_ulonglong;
8238 # 951 "./../include/my_global.h"
8239 typedef ulonglong my_off_t;
8245 typedef off_t os_off_t;
8246 # 991 "./../include/my_global.h"
8248 typedef short int15;
8249 typedef char *my_string;
8250 typedef unsigned long size_s;
8255 typedef char my_bool;
8258 # 34 "./include/univ.i" 2
8259 # 1 "./../include/my_pthread.h" 1
8260 # 21 "./../include/my_pthread.h"
8261 # 1 "/usr/include/errno.h" 1 3 4
8262 # 22 "./../include/my_pthread.h" 2
8263 # 288 "./../include/my_pthread.h"
8264 extern int my_pthread_getprio(pthread_t thread_id);
8271 typedef void *(* pthread_handler)(void *);
8272 # 382 "./../include/my_pthread.h"
8273 extern void my_pthread_setprio(pthread_t thread_id,int prior);
8281 extern void my_pthread_attr_setprio(pthread_attr_t *attr, int priority);
8282 # 549 "./../include/my_pthread.h"
8283 typedef struct st_safe_mutex_t
8285 pthread_mutex_t global,mutex;
8293 # 576 "./../include/my_pthread.h"
8294 int safe_mutex_init(safe_mutex_t *mp, const pthread_mutexattr_t *attr,
8295 const char *file, uint line);
8296 int safe_mutex_lock(safe_mutex_t *mp, my_bool try_lock, const char *file, uint line);
8297 int safe_mutex_unlock(safe_mutex_t *mp,const char *file, uint line);
8298 int safe_mutex_destroy(safe_mutex_t *mp,const char *file, uint line);
8299 int safe_cond_wait(pthread_cond_t *cond, safe_mutex_t *mp,const char *file,
8301 int safe_cond_timedwait(pthread_cond_t *cond, safe_mutex_t *mp,
8302 struct timespec *abstime, const char *file, uint line);
8303 void safe_mutex_global_init(void);
8304 void safe_mutex_end(FILE *file);
8305 # 690 "./../include/my_pthread.h"
8306 extern pthread_mutexattr_t my_fast_mutexattr;
8312 extern pthread_mutexattr_t my_errorcheck_mutexattr;
8313 # 707 "./../include/my_pthread.h"
8314 extern my_bool my_thread_global_init(void);
8315 extern void my_thread_global_end(void);
8316 extern my_bool my_thread_init(void);
8317 extern void my_thread_end(void);
8318 extern const char *my_thread_name(void);
8319 extern long my_thread_id(void);
8320 extern int pthread_no_free(void *);
8321 extern int pthread_dummy(int);
8322 # 731 "./../include/my_pthread.h"
8323 struct st_my_thread_var
8326 pthread_cond_t suspend;
8327 pthread_mutex_t mutex;
8328 pthread_mutex_t * volatile current_mutex;
8329 pthread_cond_t * volatile current_cond;
8330 pthread_t pthread_self;
8335 struct st_my_thread_var *next,**prev;
8343 extern struct st_my_thread_var *_my_thread_var(void) __attribute__ ((const));
8344 extern uint my_thread_end_wait_time;
8345 # 766 "./../include/my_pthread.h"
8346 extern uint thd_lib_detected;
8347 # 35 "./include/univ.i" 2
8348 # 44 "./include/univ.i"
8349 # 1 "./include/../ib_config.h" 1
8350 # 45 "./include/univ.i" 2
8351 # 187 "./include/univ.i"
8352 typedef unsigned long int ulint;
8354 typedef long int lint;
8360 typedef longlong ib_longlong;
8363 typedef unsigned long long int ullint;
8364 # 207 "./include/univ.i"
8365 typedef double utfloat;
8366 # 272 "./include/univ.i"
8367 # 1 "./include/ut0dbg.h" 1
8368 # 12 "./include/ut0dbg.h"
8369 # 1 "./include/univ.i" 1
8370 # 13 "./include/ut0dbg.h" 2
8372 # 1 "./include/os0thread.h" 1
8373 # 33 "./include/os0thread.h"
8374 typedef pthread_t os_thread_t;
8375 typedef os_thread_t os_thread_id_t;
8381 typedef void* (*os_posix_f_t) (void*);
8413 os_posix_f_t start_f,
8420 os_thread_id_t* thread_id);
8425 os_thread_id_t thread_id);
8438 os_thread_get_curr_id(void);
8444 os_thread_get_curr(void);
8450 os_thread_yield(void);
8463 os_thread_get_priority(
8466 os_thread_t handle);
8471 os_thread_set_priority(
8479 os_thread_get_last_error(void);
8483 # 1 "./include/os0thread.ic" 1
8484 # 143 "./include/os0thread.h" 2
8485 # 15 "./include/ut0dbg.h" 2
8486 # 27 "./include/ut0dbg.h"
8488 ut_dbg_assertion_failed(
8493 # 46 "./include/ut0dbg.h"
8494 extern ulint ut_dbg_stop_threads;
8497 extern ulint* ut_dbg_null_ptr;
8507 # 273 "./include/univ.i" 2
8508 # 1 "./include/ut0ut.h" 1
8509 # 15 "./include/ut0ut.h"
8510 # 1 "/usr/include/ctype.h" 1 3 4
8511 # 30 "/usr/include/ctype.h" 3 4
8513 # 48 "/usr/include/ctype.h" 3 4
8516 _ISupper = (1 << (0)),
8517 _ISlower = (1 << (1)),
8518 _ISalpha = (1 << (2)),
8519 _ISdigit = (1 << (3)),
8520 _ISxdigit = (1 << (4)),
8521 _ISspace = (1 << (5)),
8522 _ISprint = (1 << (6)),
8523 _ISgraph = (1 << (7)),
8524 _ISblank = (1 << (8)),
8525 _IScntrl = (1 << (9)),
8526 _ISpunct = (1 << (10)),
8527 _ISalnum = (1 << (11))
8529 # 81 "/usr/include/ctype.h" 3 4
8530 extern __const unsigned short int **__ctype_b_loc (void)
8531 __attribute__ ((__nothrow__)) __attribute__ ((__const));
8532 extern __const __int32_t **__ctype_tolower_loc (void)
8533 __attribute__ ((__nothrow__)) __attribute__ ((__const));
8534 extern __const __int32_t **__ctype_toupper_loc (void)
8535 __attribute__ ((__nothrow__)) __attribute__ ((__const));
8536 # 96 "/usr/include/ctype.h" 3 4
8543 extern int isalnum (int) __attribute__ ((__nothrow__));
8544 extern int isalpha (int) __attribute__ ((__nothrow__));
8545 extern int iscntrl (int) __attribute__ ((__nothrow__));
8546 extern int isdigit (int) __attribute__ ((__nothrow__));
8547 extern int islower (int) __attribute__ ((__nothrow__));
8548 extern int isgraph (int) __attribute__ ((__nothrow__));
8549 extern int isprint (int) __attribute__ ((__nothrow__));
8550 extern int ispunct (int) __attribute__ ((__nothrow__));
8551 extern int isspace (int) __attribute__ ((__nothrow__));
8552 extern int isupper (int) __attribute__ ((__nothrow__));
8553 extern int isxdigit (int) __attribute__ ((__nothrow__));
8557 extern int tolower (int __c) __attribute__ ((__nothrow__));
8560 extern int toupper (int __c) __attribute__ ((__nothrow__));
8569 extern int isblank (int) __attribute__ ((__nothrow__));
8576 extern int isctype (int __c, int __mask) __attribute__ ((__nothrow__));
8583 extern int isascii (int __c) __attribute__ ((__nothrow__));
8587 extern int toascii (int __c) __attribute__ ((__nothrow__));
8591 extern int _toupper (int) __attribute__ ((__nothrow__));
8592 extern int _tolower (int) __attribute__ ((__nothrow__));
8593 # 190 "/usr/include/ctype.h" 3 4
8595 __attribute__ ((__nothrow__)) tolower (int __c)
8597 return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c;
8601 __attribute__ ((__nothrow__)) toupper (int __c)
8603 return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c;
8605 # 247 "/usr/include/ctype.h" 3 4
8606 extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__));
8607 extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__));
8608 extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__));
8609 extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
8610 extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__));
8611 extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__));
8612 extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__));
8613 extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__));
8614 extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__));
8615 extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__));
8616 extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__));
8618 extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__));
8622 extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
8623 extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
8626 extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
8627 extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__));
8628 # 323 "/usr/include/ctype.h" 3 4
8630 # 16 "./include/ut0ut.h" 2
8633 typedef time_t ib_time_t;
8742 ut_ulint_sort(ulint* arr, ulint* aux_arr, ulint low, ulint high);
8788 ut_sprintf_timestamp(
8796 ut_sprintf_timestamp_without_extra_chars(
8803 ut_get_year_month_day(
8824 const unsigned char* buf,
8845 struct trx_struct*trx,
8855 struct trx_struct*trx,
8869 # 1 "./include/ut0ut.ic" 1
8870 # 11 "./include/ut0ut.ic"
8879 return((n1 <= n2) ? n1 : n2);
8892 return((n1 <= n2) ? n2 : n1);
8910 *b = ut_min(b1, b2);
8911 } else if (a1 < a2) {
8932 } else if (a == b) {
8953 } else if (a1 < b1) {
8955 } else if (a2 > b2) {
8957 } else if (a2 < b2) {
8975 return(n & (m - 1));
8990 return(n & ~(m - 1));
9033 return((ulint) 1 << n);
9035 # 255 "./include/ut0ut.h" 2
9036 # 274 "./include/univ.i" 2
9037 # 1 "./include/db0err.h" 1
9038 # 275 "./include/univ.i" 2
9039 # 27 "./include/buf0buf.h" 2
9040 # 1 "./include/fil0fil.h" 1
9041 # 13 "./include/fil0fil.h"
9042 # 1 "./include/sync0rw.h" 1
9043 # 13 "./include/sync0rw.h"
9044 # 1 "./include/ut0lst.h" 1
9045 # 14 "./include/sync0rw.h" 2
9046 # 1 "./include/sync0sync.h" 1
9047 # 13 "./include/sync0sync.h"
9048 # 1 "./include/sync0types.h" 1
9049 # 13 "./include/sync0types.h"
9050 typedef struct mutex_struct ib_mutex_t;
9051 # 14 "./include/sync0sync.h" 2
9053 # 1 "./include/ut0mem.h" 1
9054 # 13 "./include/ut0mem.h"
9055 # 1 "/usr/include/string.h" 1 3 4
9056 # 28 "/usr/include/string.h" 3 4
9062 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4
9063 # 34 "/usr/include/string.h" 2 3 4
9073 extern void *memcpy (void *__restrict __dest,
9074 __const void *__restrict __src, size_t __n)
9075 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9078 extern void *memmove (void *__dest, __const void *__src, size_t __n)
9079 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9086 extern void *memccpy (void *__restrict __dest, __const void *__restrict __src,
9087 int __c, size_t __n)
9088 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9094 extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
9097 extern int memcmp (__const void *__s1, __const void *__s2, size_t __n)
9098 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
9099 # 94 "/usr/include/string.h" 3 4
9100 extern void *memchr (__const void *__s, int __c, size_t __n)
9101 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
9104 # 108 "/usr/include/string.h" 3 4
9105 extern void *rawmemchr (__const void *__s, int __c)
9106 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
9107 # 119 "/usr/include/string.h" 3 4
9108 extern void *memrchr (__const void *__s, int __c, size_t __n)
9109 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
9116 extern char *strcpy (char *__restrict __dest, __const char *__restrict __src)
9117 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9119 extern char *strncpy (char *__restrict __dest,
9120 __const char *__restrict __src, size_t __n)
9121 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9124 extern char *strcat (char *__restrict __dest, __const char *__restrict __src)
9125 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9127 extern char *strncat (char *__restrict __dest, __const char *__restrict __src,
9128 size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9131 extern int strcmp (__const char *__s1, __const char *__s2)
9132 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
9134 extern int strncmp (__const char *__s1, __const char *__s2, size_t __n)
9135 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
9138 extern int strcoll (__const char *__s1, __const char *__s2)
9139 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
9141 extern size_t strxfrm (char *__restrict __dest,
9142 __const char *__restrict __src, size_t __n)
9143 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
9145 # 164 "/usr/include/string.h" 3 4
9146 extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l)
9147 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
9149 extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n,
9150 __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
9155 extern char *strdup (__const char *__s)
9156 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
9163 extern char *strndup (__const char *__string, size_t __n)
9164 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1)));
9165 # 208 "/usr/include/string.h" 3 4
9167 # 233 "/usr/include/string.h" 3 4
9168 extern char *strchr (__const char *__s, int __c)
9169 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
9170 # 260 "/usr/include/string.h" 3 4
9171 extern char *strrchr (__const char *__s, int __c)
9172 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
9175 # 274 "/usr/include/string.h" 3 4
9176 extern char *strchrnul (__const char *__s, int __c)
9177 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
9184 extern size_t strcspn (__const char *__s, __const char *__reject)
9185 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
9188 extern size_t strspn (__const char *__s, __const char *__accept)
9189 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
9190 # 312 "/usr/include/string.h" 3 4
9191 extern char *strpbrk (__const char *__s, __const char *__accept)
9192 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
9193 # 340 "/usr/include/string.h" 3 4
9194 extern char *strstr (__const char *__haystack, __const char *__needle)
9195 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
9200 extern char *strtok (char *__restrict __s, __const char *__restrict __delim)
9201 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
9206 extern char *__strtok_r (char *__restrict __s,
9207 __const char *__restrict __delim,
9208 char **__restrict __save_ptr)
9209 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
9211 extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim,
9212 char **__restrict __save_ptr)
9213 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3)));
9214 # 371 "/usr/include/string.h" 3 4
9215 extern char *strcasestr (__const char *__haystack, __const char *__needle)
9216 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
9224 extern void *memmem (__const void *__haystack, size_t __haystacklen,
9225 __const void *__needle, size_t __needlelen)
9226 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3)));
9230 extern void *__mempcpy (void *__restrict __dest,
9231 __const void *__restrict __src, size_t __n)
9232 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9233 extern void *mempcpy (void *__restrict __dest,
9234 __const void *__restrict __src, size_t __n)
9235 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9241 extern size_t strlen (__const char *__s)
9242 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
9248 extern size_t strnlen (__const char *__string, size_t __maxlen)
9249 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
9255 extern char *strerror (int __errnum) __attribute__ ((__nothrow__));
9257 # 436 "/usr/include/string.h" 3 4
9258 extern char *strerror_r (int __errnum, char *__buf, size_t __buflen)
9259 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2)));
9265 extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__));
9271 extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
9275 extern void bcopy (__const void *__src, void *__dest, size_t __n)
9276 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9279 extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
9282 extern int bcmp (__const void *__s1, __const void *__s2, size_t __n)
9283 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
9284 # 487 "/usr/include/string.h" 3 4
9285 extern char *index (__const char *__s, int __c)
9286 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
9287 # 515 "/usr/include/string.h" 3 4
9288 extern char *rindex (__const char *__s, int __c)
9289 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1)));
9294 extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
9299 extern int ffsl (long int __l) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
9301 __extension__ extern int ffsll (long long int __ll)
9302 __attribute__ ((__nothrow__)) __attribute__ ((__const__));
9307 extern int strcasecmp (__const char *__s1, __const char *__s2)
9308 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
9311 extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n)
9312 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
9318 extern int strcasecmp_l (__const char *__s1, __const char *__s2,
9320 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3)));
9322 extern int strncasecmp_l (__const char *__s1, __const char *__s2,
9323 size_t __n, __locale_t __loc)
9324 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4)));
9330 extern char *strsep (char **__restrict __stringp,
9331 __const char *__restrict __delim)
9332 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9337 extern char *strsignal (int __sig) __attribute__ ((__nothrow__));
9340 extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src)
9341 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9342 extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src)
9343 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9347 extern char *__stpncpy (char *__restrict __dest,
9348 __const char *__restrict __src, size_t __n)
9349 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9350 extern char *stpncpy (char *__restrict __dest,
9351 __const char *__restrict __src, size_t __n)
9352 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2)));
9357 extern int strverscmp (__const char *__s1, __const char *__s2)
9358 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
9361 extern char *strfry (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
9364 extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
9365 # 604 "/usr/include/string.h" 3 4
9366 extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
9367 # 632 "/usr/include/string.h" 3 4
9368 # 1 "/usr/include/bits/string.h" 1 3 4
9369 # 633 "/usr/include/string.h" 2 3 4
9372 # 1 "/usr/include/bits/string2.h" 1 3 4
9373 # 80 "/usr/include/bits/string2.h" 3 4
9374 typedef struct { unsigned char __arr[2]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR2;
9375 typedef struct { unsigned char __arr[3]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR3;
9376 typedef struct { unsigned char __arr[4]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR4;
9377 typedef struct { unsigned char __arr[5]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR5;
9378 typedef struct { unsigned char __arr[6]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR6;
9379 typedef struct { unsigned char __arr[7]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR7;
9380 typedef struct { unsigned char __arr[8]; } __attribute__ ((__packed__)) __STRING2_COPY_ARR8;
9381 # 394 "/usr/include/bits/string2.h" 3 4
9382 extern void *__rawmemchr (const void *__s, int __c);
9383 # 969 "/usr/include/bits/string2.h" 3 4
9384 extern __inline size_t __strcspn_c1 (__const char *__s, int __reject);
9385 extern __inline size_t
9386 __strcspn_c1 (__const char *__s, int __reject)
9388 register size_t __result = 0;
9389 while (__s[__result] != '\0' && __s[__result] != __reject)
9394 extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1,
9396 extern __inline size_t
9397 __strcspn_c2 (__const char *__s, int __reject1, int __reject2)
9399 register size_t __result = 0;
9400 while (__s[__result] != '\0' && __s[__result] != __reject1
9401 && __s[__result] != __reject2)
9406 extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1,
9407 int __reject2, int __reject3);
9408 extern __inline size_t
9409 __strcspn_c3 (__const char *__s, int __reject1, int __reject2,
9412 register size_t __result = 0;
9413 while (__s[__result] != '\0' && __s[__result] != __reject1
9414 && __s[__result] != __reject2 && __s[__result] != __reject3)
9418 # 1045 "/usr/include/bits/string2.h" 3 4
9419 extern __inline size_t __strspn_c1 (__const char *__s, int __accept);
9420 extern __inline size_t
9421 __strspn_c1 (__const char *__s, int __accept)
9423 register size_t __result = 0;
9425 while (__s[__result] == __accept)
9430 extern __inline size_t __strspn_c2 (__const char *__s, int __accept1,
9432 extern __inline size_t
9433 __strspn_c2 (__const char *__s, int __accept1, int __accept2)
9435 register size_t __result = 0;
9437 while (__s[__result] == __accept1 || __s[__result] == __accept2)
9442 extern __inline size_t __strspn_c3 (__const char *__s, int __accept1,
9443 int __accept2, int __accept3);
9444 extern __inline size_t
9445 __strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3)
9447 register size_t __result = 0;
9449 while (__s[__result] == __accept1 || __s[__result] == __accept2
9450 || __s[__result] == __accept3)
9454 # 1121 "/usr/include/bits/string2.h" 3 4
9455 extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1,
9457 extern __inline char *
9458 __strpbrk_c2 (__const char *__s, int __accept1, int __accept2)
9461 while (*__s != '\0' && *__s != __accept1 && *__s != __accept2)
9463 return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
9466 extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1,
9467 int __accept2, int __accept3);
9468 extern __inline char *
9469 __strpbrk_c3 (__const char *__s, int __accept1, int __accept2,
9473 while (*__s != '\0' && *__s != __accept1 && *__s != __accept2
9474 && *__s != __accept3)
9476 return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s;
9478 # 1172 "/usr/include/bits/string2.h" 3 4
9479 extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp);
9480 extern __inline char *
9481 __strtok_r_1c (char *__s, char __sep, char **__nextp)
9484 if (__s == ((void *)0))
9486 while (*__s == __sep)
9488 __result = ((void *)0);
9492 while (*__s != '\0')
9493 if (*__s++ == __sep)
9502 # 1204 "/usr/include/bits/string2.h" 3 4
9503 extern char *__strsep_g (char **__stringp, __const char *__delim);
9504 # 1222 "/usr/include/bits/string2.h" 3 4
9505 extern __inline char *__strsep_1c (char **__s, char __reject);
9506 extern __inline char *
9507 __strsep_1c (char **__s, char __reject)
9509 register char *__retval = *__s;
9510 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))
9515 extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2);
9516 extern __inline char *
9517 __strsep_2c (char **__s, char __reject1, char __reject2)
9519 register char *__retval = *__s;
9520 if (__retval != ((void *)0))
9522 register char *__cp = __retval;
9530 if (*__cp == __reject1 || *__cp == __reject2)
9542 extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2,
9544 extern __inline char *
9545 __strsep_3c (char **__s, char __reject1, char __reject2, char __reject3)
9547 register char *__retval = *__s;
9548 if (__retval != ((void *)0))
9550 register char *__cp = __retval;
9558 if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3)
9569 # 1303 "/usr/include/bits/string2.h" 3 4
9570 extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
9571 # 1322 "/usr/include/bits/string2.h" 3 4
9572 extern char *__strndup (__const char *__string, size_t __n)
9573 __attribute__ ((__nothrow__)) __attribute__ ((__malloc__));
9574 # 636 "/usr/include/string.h" 2 3 4
9579 # 1 "/usr/include/bits/string3.h" 1 3 4
9580 # 23 "/usr/include/bits/string3.h" 3 4
9581 extern void __warn_memset_zero_len (void) __attribute__((__warning__ ("memset used with constant zero length parameter; this could be due to transposed parameters")));
9582 # 48 "/usr/include/bits/string3.h" 3 4
9583 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void *
9584 __attribute__ ((__nothrow__)) memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len)
9587 return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
9590 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void *
9591 __attribute__ ((__nothrow__)) memmove (void *__restrict __dest, __const void *__restrict __src, size_t __len)
9594 return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
9598 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void *
9599 __attribute__ ((__nothrow__)) mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len)
9602 return __builtin___mempcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
9604 # 77 "/usr/include/bits/string3.h" 3 4
9605 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void *
9606 __attribute__ ((__nothrow__)) memset (void *__dest, int __ch, size_t __len)
9608 if (__builtin_constant_p (__len) && __len == 0)
9610 __warn_memset_zero_len ();
9613 return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0));
9617 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void
9618 __attribute__ ((__nothrow__)) bcopy (__const void *__restrict __src, void *__restrict __dest, size_t __len)
9621 (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0));
9624 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void
9625 __attribute__ ((__nothrow__)) bzero (void *__dest, size_t __len)
9627 (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0));
9631 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
9632 __attribute__ ((__nothrow__)) strcpy (char *__restrict __dest, __const char *__restrict __src)
9634 return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
9638 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
9639 __attribute__ ((__nothrow__)) stpcpy (char *__restrict __dest, __const char *__restrict __src)
9641 return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
9646 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
9647 __attribute__ ((__nothrow__)) strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __len)
9650 return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1));
9654 extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n,
9655 size_t __destlen) __attribute__ ((__nothrow__));
9656 extern char *__stpncpy_alias (char *__dest, __const char *__src, size_t __n) __asm__ ("" "stpncpy") __attribute__ ((__nothrow__));
9660 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
9661 __attribute__ ((__nothrow__)) stpncpy (char *__dest, __const char *__src, size_t __n)
9663 if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1
9664 && (!__builtin_constant_p (__n) || __n <= __builtin_object_size (__dest, 2 > 1)))
9665 return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1));
9666 return __stpncpy_alias (__dest, __src, __n);
9670 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
9671 __attribute__ ((__nothrow__)) strcat (char *__restrict __dest, __const char *__restrict __src)
9673 return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1));
9677 extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char *
9678 __attribute__ ((__nothrow__)) strncat (char *__restrict __dest, __const char *__restrict __src, size_t __len)
9681 return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1));
9683 # 641 "/usr/include/string.h" 2 3 4
9688 # 14 "./include/ut0mem.h" 2
9692 extern ulint ut_total_allocated_memory;
9696 ut_memcpy(void* dest, const void* sour, ulint n);
9700 ut_memmove(void* dest, const void* sour, ulint n);
9704 ut_memcmp(const void* str1, const void* str2, ulint n);
9718 ulint assert_on_error);
9746 # 96 "./include/ut0mem.h"
9757 ut_free_all_mem(void);
9762 ut_strcpy(char* dest, const char* sour);
9766 ut_strlen(const char* str);
9770 ut_strcmp(const void* str1, const void* str2);
9835 # 1 "./include/ut0mem.ic" 1
9836 # 9 "./include/ut0mem.ic"
9839 ut_memcpy(void* dest, const void* sour, ulint n)
9841 return(memcpy(dest, sour, n));
9846 ut_memmove(void* dest, const void* sour, ulint n)
9848 return(memmove(dest, sour, n));
9853 ut_memcmp(const void* str1, const void* str2, ulint n)
9855 return(memcmp(str1, str2, n));
9860 ut_strcpy(char* dest, const char* sour)
9862 return(strcpy(dest, sour));
9867 ut_strlen(const char* str)
9869 return(strlen(str));
9874 ut_strcmp(const void* str1, const void* str2)
9876 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)))); }));
9891 for (len = 0; *str; len++, str++) {
9899 # 185 "./include/ut0mem.h" 2
9900 # 16 "./include/sync0sync.h" 2
9902 # 1 "./include/os0sync.h" 1
9903 # 31 "./include/os0sync.h"
9904 typedef pthread_mutex_t os_fast_mutex_t;
9906 typedef struct os_event_struct os_event_struct_t;
9907 typedef os_event_struct_t* os_event_t;
9909 struct os_event_struct {
9910 os_fast_mutex_t os_mutex;
9916 ib_longlong signal_count;
9918 pthread_cond_t cond_var;
9920 struct { os_event_struct_t * prev; os_event_struct_t * next; } os_event_list;
9925 typedef struct os_mutex_struct os_mutex_str_t;
9926 typedef os_mutex_str_t* os_mutex_t;
9933 extern os_mutex_t os_sync_mutex;
9937 extern ulint os_thread_count;
9939 extern ulint os_event_count;
9940 extern ulint os_mutex_count;
9941 extern ulint os_fast_mutex_count;
9965 # 109 "./include/os0sync.h"
9970 # 121 "./include/os0sync.h"
9982 # 156 "./include/os0sync.h"
9987 ib_longlong reset_sig_count);
10003 # 197 "./include/os0sync.h"
10036 os_fast_mutex_trylock(
10041 os_fast_mutex_t* fast_mutex);
10046 os_fast_mutex_unlock(
10048 os_fast_mutex_t* fast_mutex);
10053 os_fast_mutex_init(
10055 os_fast_mutex_t* fast_mutex);
10060 os_fast_mutex_lock(
10062 os_fast_mutex_t* fast_mutex);
10067 os_fast_mutex_free(
10069 os_fast_mutex_t* fast_mutex);
10072 # 1 "./include/os0sync.ic" 1
10073 # 16 "./include/os0sync.ic"
10076 os_fast_mutex_trylock(
10081 os_fast_mutex_t* fast_mutex)
10083 # 43 "./include/os0sync.ic"
10084 return((ulint) pthread_mutex_trylock(fast_mutex));
10088 # 266 "./include/os0sync.h" 2
10089 # 18 "./include/sync0sync.h" 2
10090 # 1 "./include/sync0arr.h" 1
10091 # 17 "./include/sync0arr.h"
10092 typedef struct sync_cell_struct sync_cell_t;
10093 typedef struct sync_array_struct sync_array_t;
10094 # 28 "./include/sync0arr.h"
10110 sync_array_t* arr);
10116 sync_array_reserve_cell(
10131 sync_array_wait_event(
10140 sync_array_free_cell(
10148 sync_array_object_signalled(
10150 sync_array_t* arr);
10157 sync_arr_wake_threads_if_sema_free(void);
10163 sync_array_print_long_waits(void);
10172 sync_array_validate(
10174 sync_array_t* arr);
10179 sync_array_print_info(
10182 sync_array_t* arr);
10186 # 1 "./include/sync0arr.ic" 1
10187 # 120 "./include/sync0arr.h" 2
10188 # 19 "./include/sync0sync.h" 2
10191 extern my_bool timed_mutexes;
10205 # 54 "./include/sync0sync.h"
10213 const char* cfile_name,
10224 ib_mutex_t* mutex);
10225 # 83 "./include/sync0sync.h"
10227 mutex_enter_noninline(
10229 ib_mutex_t* mutex);
10230 # 100 "./include/sync0sync.h"
10236 const char* file_name,
10243 mutex_enter_nowait(
10247 const char* file_name,
10256 ib_mutex_t* mutex);
10261 mutex_exit_noninline(
10263 ib_mutex_t* mutex);
10269 sync_all_freed(void);
10277 sync_print_wait_info(
10293 ib_mutex_t* mutex);
10308 sync_thread_add_level(
10317 sync_thread_reset_level(
10328 sync_thread_levels_empty(void);
10335 sync_thread_levels_empty_gen(
10339 ulint dict_mutex_allowed);
10340 # 249 "./include/sync0sync.h"
10343 mutex_get_lock_word(
10345 ib_mutex_t* mutex);
10346 # 461 "./include/sync0sync.h"
10347 struct mutex_struct {
10360 struct { ib_mutex_t * prev; ib_mutex_t * next; } list;
10370 const char* cfile_name;
10374 ulong count_os_wait;
10375 # 500 "./include/sync0sync.h"
10383 extern sync_array_t* sync_primary_wait_array;
10384 # 524 "./include/sync0sync.h"
10385 extern ulint mutex_system_call_count;
10386 extern ulint mutex_exit_count;
10389 extern ulint sync_order_checks_on;
10392 extern ulint sync_initialized;
10395 typedef struct { ulint count; ib_mutex_t * start; ib_mutex_t * end; } ut_list_base_node_t;
10396 extern ut_list_base_node_t mutex_list;
10399 extern ib_mutex_t mutex_list_mutex;
10403 # 1 "./include/sync0sync.ic" 1
10404 # 22 "./include/sync0sync.ic"
10419 const char* file_name,
10421 # 52 "./include/sync0sync.ic"
10423 mutex_signal_object(
10425 ib_mutex_t* mutex);
10432 mutex_test_and_set(
10438 # 104 "./include/sync0sync.ic"
10441 ret = os_fast_mutex_trylock(&(mutex->os_fast_mutex));
10446 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);
10448 mutex->lock_word = 1;
10460 mutex_reset_lock_word(
10464 # 144 "./include/sync0sync.ic"
10465 mutex->lock_word = 0;
10467 os_fast_mutex_unlock(&(mutex->os_fast_mutex));
10475 mutex_get_lock_word(
10479 volatile ulint* ptr;
10483 ptr = &(mutex->lock_word);
10497 volatile ulint* ptr;
10501 ptr = &(mutex->waiters);
10522 mutex_reset_lock_word(mutex);
10523 # 215 "./include/sync0sync.ic"
10524 if (mutex_get_waiters(mutex) != 0) {
10526 mutex_signal_object(mutex);
10543 const char* file_name,
10547 # 246 "./include/sync0sync.ic"
10548 if (!mutex_test_and_set(mutex))
10556 mutex_spin_wait(mutex, file_name, line);
10559 # 543 "./include/sync0sync.h" 2
10560 # 15 "./include/sync0rw.h" 2
10561 # 27 "./include/sync0rw.h"
10562 typedef struct rw_lock_struct rw_lock_t;
10567 typedef struct { ulint count; rw_lock_t * start; rw_lock_t * end; } rw_lock_list_t;
10569 extern rw_lock_list_t rw_lock_list;
10570 extern ib_mutex_t rw_lock_list_mutex;
10571 # 50 "./include/sync0rw.h"
10572 extern ulint rw_s_system_call_count;
10573 extern ulint rw_s_spin_wait_count;
10574 extern ulint rw_s_exit_count;
10575 extern ulint rw_s_os_wait_count;
10576 extern ulint rw_x_system_call_count;
10577 extern ulint rw_x_spin_wait_count;
10578 extern ulint rw_x_os_wait_count;
10579 extern ulint rw_x_exit_count;
10580 # 77 "./include/sync0rw.h"
10582 rw_lock_create_func(
10588 const char* cfile_name,
10607 # 128 "./include/sync0rw.h"
10610 rw_lock_s_lock_func(
10615 const char* file_name,
10623 rw_lock_s_lock_func_nowait(
10627 const char* file_name,
10635 rw_lock_x_lock_func_nowait(
10639 const char* file_name,
10645 rw_lock_s_unlock_func(
10653 # 217 "./include/sync0rw.h"
10655 rw_lock_x_lock_func(
10660 const char* file_name,
10666 rw_lock_x_unlock_func(
10674 # 257 "./include/sync0rw.h"
10677 rw_lock_s_lock_direct(
10680 const char* file_name,
10689 rw_lock_x_lock_direct(
10692 const char* file_name,
10695 # 286 "./include/sync0rw.h"
10697 rw_lock_x_lock_move_ownership(
10706 rw_lock_s_unlock_direct(
10714 rw_lock_x_unlock_direct(
10730 rw_lock_get_x_lock_count(
10738 rw_lock_get_s_waiters(
10743 rw_lock_get_x_waiters(
10748 rw_lock_get_wx_waiters(
10753 rw_lock_get_writer(
10758 rw_lock_get_reader_count(
10761 # 366 "./include/sync0rw.h"
10767 # 440 "./include/sync0rw.h"
10768 struct rw_lock_struct {
10770 os_event_t s_event;
10771 os_event_t x_event;
10772 os_event_t wait_ex_event;
10773 # 453 "./include/sync0rw.h"
10774 volatile lint lock_word;
10777 volatile ulint reader_count;
10779 volatile ulint writer;
10784 volatile os_thread_id_t writer_thread;
10786 volatile ulint writer_count;
10797 volatile ulint s_waiters;
10798 volatile ulint x_waiters;
10799 volatile ulint wait_ex_waiters;
10800 volatile ulint writer_is_wait_ex;
10807 struct { rw_lock_t * prev; rw_lock_t * next; } list;
10817 const char* cfile_name;
10819 const char* last_s_file_name;
10820 const char* last_x_file_name;
10825 # 525 "./include/sync0rw.h"
10826 # 1 "./include/sync0rw.ic" 1
10827 # 15 "./include/sync0rw.ic"
10829 rw_lock_s_lock_spin(
10834 const char* file_name,
10836 # 48 "./include/sync0rw.ic"
10839 rw_lock_get_s_waiters(
10843 return(lock->s_waiters);
10847 rw_lock_get_x_waiters(
10851 return(lock->x_waiters);
10855 rw_lock_get_wx_waiters(
10859 return(lock->wait_ex_waiters);
10863 rw_lock_set_s_waiters(
10868 __sync_lock_test_and_set(&lock->s_waiters, flag);
10875 rw_lock_set_x_waiters(
10880 __sync_lock_test_and_set(&lock->x_waiters, flag);
10887 rw_lock_set_wx_waiters(
10893 __sync_lock_test_and_set(&lock->wait_ex_waiters, flag);
10900 rw_lock_get_writer(
10905 if (lock->writer == 350) {
10909 if (lock->writer_is_wait_ex) {
10920 rw_lock_set_writer(
10925 lock->writer = flag;
10929 rw_lock_get_reader_count(
10933 return(lock->reader_count);
10937 rw_lock_set_reader_count(
10942 lock->reader_count = count;
10944 # 169 "./include/sync0rw.ic"
10947 rw_lock_get_x_lock_count(
10952 return(lock->writer_count);
10960 rw_lock_s_lock_low(
10964 ulint pass __attribute__((unused)),
10967 const char* file_name,
10976 if (__builtin_expect(rw_lock_get_writer(lock) == 350, (1))) {
10978 if(__sync_sub_and_fetch(&(lock->lock_word),1) <= 0) {
10980 __sync_fetch_and_add(&(lock->lock_word),1);
10984 __sync_fetch_and_add(&(lock->reader_count),1);
10985 # 219 "./include/sync0rw.ic"
10986 lock->last_s_file_name = file_name;
10987 lock->last_s_line = line;
11001 rw_lock_s_lock_direct(
11004 const char* file_name,
11012 __sync_fetch_and_add(&(lock->reader_count),1);
11017 lock->last_s_file_name = file_name;
11018 lock->last_s_line = line;
11031 rw_lock_x_lock_direct(
11034 const char* file_name,
11041 rw_lock_set_writer(lock, 351);
11042 lock->writer_thread = os_thread_get_curr_id();
11044 __sync_fetch_and_add(&(lock->writer_count),1);
11050 lock->last_x_file_name = file_name;
11051 lock->last_x_line = line;
11066 rw_lock_s_lock_func(
11071 const char* file_name,
11074 # 326 "./include/sync0rw.ic"
11075 if (__builtin_expect(rw_lock_s_lock_low(lock, pass, file_name, line), (1))) {
11087 rw_lock_s_lock_spin(lock, pass, file_name, line);
11099 rw_lock_s_lock_func_nowait(
11103 const char* file_name,
11106 ulint success = (0);
11109 if (rw_lock_get_writer(lock) == 350) {
11111 if(__sync_sub_and_fetch(&(lock->lock_word),1) <= 0) {
11113 __sync_fetch_and_add(&(lock->lock_word),1);
11117 __sync_fetch_and_add(&(lock->reader_count),1);
11118 # 382 "./include/sync0rw.ic"
11119 lock->last_s_file_name = file_name;
11120 lock->last_s_line = line;
11138 rw_lock_x_lock_func_nowait(
11142 const char* file_name,
11145 ulint success = (0);
11146 os_thread_id_t curr_thread = os_thread_get_curr_id();
11148 if (lock->reader_count == 0) {
11150 if(__sync_lock_test_and_set(&(lock->writer),351)
11155 if(__sync_sub_and_fetch(&(lock->lock_word),
11156 0x00100000) == 0) {
11158 lock->writer_thread = curr_thread;
11160 lock->writer_is_wait_ex = (0);
11163 __sync_fetch_and_add(&(lock->writer_count),1);
11169 lock->last_x_file_name = file_name;
11170 lock->last_x_line = line;
11177 if (__sync_fetch_and_add(&(lock->lock_word),0x00100000)
11182 __sync_lock_test_and_set(&(lock->writer),350);
11186 if (lock->pass == 0
11187 && os_thread_eq(lock->writer_thread, curr_thread)) {
11194 # 489 "./include/sync0rw.ic"
11201 rw_lock_s_unlock_func(
11217 # 520 "./include/sync0rw.ic"
11218 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);
11221 __sync_fetch_and_add(&(lock->lock_word),1);
11223 if(__sync_sub_and_fetch(&(lock->reader_count),1) == 0) {
11226 # 540 "./include/sync0rw.ic"
11227 if (__builtin_expect(last && __sync_lock_test_and_set(&lock->wait_ex_waiters, 0), (0))) {
11228 os_event_set(lock->wait_ex_event);
11229 sync_array_object_signalled(sync_primary_wait_array);
11231 else if (__builtin_expect(last && __sync_lock_test_and_set(&lock->x_waiters, 0), (0))) {
11232 os_event_set(lock->x_event);
11233 sync_array_object_signalled(sync_primary_wait_array);
11235 # 573 "./include/sync0rw.ic"
11248 rw_lock_s_unlock_direct(
11257 __sync_sub_and_fetch(&(lock->reader_count),1);
11258 # 604 "./include/sync0rw.ic"
11274 rw_lock_x_unlock_func(
11288 # 642 "./include/sync0rw.ic"
11292 if(__sync_sub_and_fetch(&(lock->writer_count),1) == 0) {
11298 __sync_fetch_and_add(&(lock->lock_word),0x00100000);
11302 lock->writer_thread = -1;
11303 __sync_lock_test_and_set(&(lock->writer),350);
11305 # 672 "./include/sync0rw.ic"
11307 if(__sync_lock_test_and_set(&lock->s_waiters, 0)){
11310 if(__sync_lock_test_and_set(&lock->x_waiters, 0)){
11314 # 695 "./include/sync0rw.ic"
11315 if (__builtin_expect(s_sg, (0))) {
11316 os_event_set(lock->s_event);
11317 sync_array_object_signalled(sync_primary_wait_array);
11319 if (__builtin_expect(x_sg, (0))) {
11324 os_event_set(lock->x_event);
11325 sync_array_object_signalled(sync_primary_wait_array);
11340 rw_lock_x_unlock_direct(
11350 if(__sync_sub_and_fetch(&(lock->writer_count),1) == 0) {
11356 rw_lock_set_writer(lock, 350);
11375 # 526 "./include/sync0rw.h" 2
11376 # 14 "./include/fil0fil.h" 2
11377 # 1 "./include/dict0types.h" 1
11378 # 12 "./include/dict0types.h"
11379 typedef struct dict_sys_struct dict_sys_t;
11380 typedef struct dict_col_struct dict_col_t;
11381 typedef struct dict_field_struct dict_field_t;
11382 typedef struct dict_index_struct dict_index_t;
11383 typedef struct dict_tree_struct dict_tree_t;
11384 typedef struct dict_table_struct dict_table_t;
11385 typedef struct dict_foreign_struct dict_foreign_t;
11390 typedef dict_table_t dict_cluster_t;
11392 typedef struct ind_node_struct ind_node_t;
11393 typedef struct tab_node_struct tab_node_t;
11394 # 15 "./include/fil0fil.h" 2
11395 # 1 "./include/ibuf0types.h" 1
11396 # 12 "./include/ibuf0types.h"
11397 typedef struct ibuf_data_struct ibuf_data_t;
11398 typedef struct ibuf_struct ibuf_t;
11399 # 16 "./include/fil0fil.h" 2
11400 # 1 "./include/ut0byte.h" 1
11401 # 20 "./include/ut0byte.h"
11402 typedef struct dulint_struct dulint;
11403 struct dulint_struct{
11409 extern dulint ut_dulint_zero;
11412 extern dulint ut_dulint_max;
11427 ut_dulint_get_high(
11444 ut_conv_dulint_to_longlong(
11497 ut_dulint_subtract(
11517 ut_dulint_align_down(
11527 ut_dulint_align_up(
11532 # 168 "./include/ut0byte.h"
11534 ut_dulint_sort(dulint* arr, dulint* aux_arr, ulint low, ulint high);
11553 ut_calc_align_down(
11577 __attribute__((const));
11589 __attribute__((const));
11612 # 1 "./include/ut0byte.ic" 1
11613 # 11 "./include/ut0byte.ic"
11637 ut_dulint_get_high(
11662 ut_conv_dulint_to_longlong(
11667 return((ib_longlong)d.low
11668 + (((ib_longlong)d.high) << 32));
11680 if ((a.low == 0) && (a.high == 0)) {
11699 if (a.high > b.high) {
11701 } else if (a.high < b.high) {
11703 } else if (a.low > b.low) {
11705 } else if (a.low < b.low) {
11722 if (ut_dulint_cmp(a, b) > 0) {
11740 if (ut_dulint_cmp(a, b) > 0) {
11758 if (0xFFFFFFFFUL - b >= a.low) {
11764 a.low = a.low - (0xFFFFFFFFUL - b) - 1;
11775 ut_dulint_subtract(
11789 a.low = 0xFFFFFFFFUL - b;
11812 if (a.high == b.high) {
11815 return(a.low - b.low);
11820 diff = (ulint)(0xFFFFFFFFUL - b.low);
11832 ut_dulint_align_down(
11844 low = ut_dulint_get_low(n);
11845 high = ut_dulint_get_high(n);
11847 low = low & ~(align_no - 1);
11849 return(ut_dulint_create(high, low));
11856 ut_dulint_align_up(
11863 return(ut_dulint_align_down(ut_dulint_add(n, align_no - 1), align_no));
11881 return((n + align_no - 1) & ~(align_no - 1));
11900 return((void*)((((ulint)ptr) + align_no - 1) & ~(align_no - 1)));
11909 ut_calc_align_down(
11918 return(n & ~(align_no - 1));
11938 return((void*)((((ulint)ptr)) & ~(align_no - 1)));
11959 return(((ulint)ptr) & (align_no - 1));
11976 return(1 & (a >> n));
11994 return(((ulint) 1 << n) | a);
11996 return(~((ulint) 1 << n) & a);
11999 # 248 "./include/ut0byte.h" 2
12000 # 17 "./include/fil0fil.h" 2
12001 # 1 "./include/os0file.h" 1
12002 # 14 "./include/os0file.h"
12003 # 1 "./include/trx0types.h" 1
12004 # 12 "./include/trx0types.h"
12005 # 1 "./include/lock0types.h" 1
12006 # 13 "./include/lock0types.h"
12007 typedef struct lock_struct ib_lock_t;
12008 typedef struct lock_sys_struct lock_sys_t;
12009 # 13 "./include/trx0types.h" 2
12013 typedef struct trx_struct trx_t;
12014 typedef struct trx_sys_struct trx_sys_t;
12015 typedef struct trx_doublewrite_struct trx_doublewrite_t;
12016 typedef struct trx_sig_struct trx_sig_t;
12017 typedef struct trx_rseg_struct trx_rseg_t;
12018 typedef struct trx_undo_struct trx_undo_t;
12019 typedef struct trx_undo_arr_struct trx_undo_arr_t;
12020 typedef struct trx_undo_inf_struct trx_undo_inf_t;
12021 typedef struct trx_purge_struct trx_purge_t;
12022 typedef struct roll_node_struct roll_node_t;
12023 typedef struct commit_node_struct commit_node_t;
12024 typedef struct trx_named_savept_struct trx_named_savept_t;
12027 typedef struct trx_savept_struct trx_savept_t;
12028 struct trx_savept_struct{
12029 dulint least_undo_no;
12033 typedef unsigned char trx_sysf_t;
12034 typedef unsigned char trx_rsegf_t;
12035 typedef unsigned char trx_usegf_t;
12036 typedef unsigned char trx_ulogf_t;
12037 typedef unsigned char trx_upagef_t;
12040 typedef unsigned char trx_undo_rec_t;
12041 # 15 "./include/os0file.h" 2
12044 # 1 "/usr/include/dirent.h" 1 3 4
12045 # 28 "/usr/include/dirent.h" 3 4
12047 # 62 "/usr/include/dirent.h" 3 4
12048 # 1 "/usr/include/bits/dirent.h" 1 3 4
12049 # 23 "/usr/include/bits/dirent.h" 3 4
12059 unsigned short int d_reclen;
12060 unsigned char d_type;
12069 unsigned short int d_reclen;
12070 unsigned char d_type;
12073 # 63 "/usr/include/dirent.h" 2 3 4
12074 # 98 "/usr/include/dirent.h" 3 4
12096 # 128 "/usr/include/dirent.h" 3 4
12097 typedef struct __dirstream DIR;
12104 extern DIR *opendir (__const char *__name) __attribute__ ((__nonnull__ (1)));
12111 extern DIR *fdopendir (int __fd);
12119 extern int closedir (DIR *__dirp) __attribute__ ((__nonnull__ (1)));
12120 # 163 "/usr/include/dirent.h" 3 4
12121 extern struct dirent *readdir (DIR *__dirp) __attribute__ ((__nonnull__ (1)));
12122 # 174 "/usr/include/dirent.h" 3 4
12123 extern struct dirent64 *readdir64 (DIR *__dirp) __attribute__ ((__nonnull__ (1)));
12124 # 184 "/usr/include/dirent.h" 3 4
12125 extern int readdir_r (DIR *__restrict __dirp,
12126 struct dirent *__restrict __entry,
12127 struct dirent **__restrict __result)
12128 __attribute__ ((__nonnull__ (1, 2, 3)));
12129 # 201 "/usr/include/dirent.h" 3 4
12130 extern int readdir64_r (DIR *__restrict __dirp,
12131 struct dirent64 *__restrict __entry,
12132 struct dirent64 **__restrict __result)
12133 __attribute__ ((__nonnull__ (1, 2, 3)));
12138 extern void rewinddir (DIR *__dirp) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
12144 extern void seekdir (DIR *__dirp, long int __pos) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
12147 extern long int telldir (DIR *__dirp) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
12153 extern int dirfd (DIR *__dirp) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1)));
12154 # 245 "/usr/include/dirent.h" 3 4
12155 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4
12156 # 246 "/usr/include/dirent.h" 2 3 4
12163 extern int scandir (__const char *__restrict __dir,
12164 struct dirent ***__restrict __namelist,
12165 int (*__selector) (__const struct dirent *),
12166 int (*__cmp) (__const struct dirent **,
12167 __const struct dirent **))
12168 __attribute__ ((__nonnull__ (1, 2)));
12169 # 275 "/usr/include/dirent.h" 3 4
12170 extern int scandir64 (__const char *__restrict __dir,
12171 struct dirent64 ***__restrict __namelist,
12172 int (*__selector) (__const struct dirent64 *),
12173 int (*__cmp) (__const struct dirent64 **,
12174 __const struct dirent64 **))
12175 __attribute__ ((__nonnull__ (1, 2)));
12180 extern int alphasort (__const struct dirent **__e1,
12181 __const struct dirent **__e2)
12182 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
12183 # 300 "/usr/include/dirent.h" 3 4
12184 extern int alphasort64 (__const struct dirent64 **__e1,
12185 __const struct dirent64 **__e2)
12186 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
12187 # 313 "/usr/include/dirent.h" 3 4
12188 extern __ssize_t getdirentries (int __fd, char *__restrict __buf,
12190 __off_t *__restrict __basep)
12191 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
12192 # 330 "/usr/include/dirent.h" 3 4
12193 extern __ssize_t getdirentries64 (int __fd, char *__restrict __buf,
12195 __off64_t *__restrict __basep)
12196 __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4)));
12203 extern int versionsort (__const struct dirent **__e1,
12204 __const struct dirent **__e2)
12205 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
12206 # 356 "/usr/include/dirent.h" 3 4
12207 extern int versionsort64 (__const struct dirent64 **__e1,
12208 __const struct dirent64 **__e2)
12209 __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2)));
12214 # 18 "./include/os0file.h" 2
12219 typedef struct fil_node_struct fil_node_t;
12224 extern ulint os_has_said_disk_full;
12225 extern ulint os_aio_print_debug;
12227 extern ulint os_file_n_pending_preads;
12228 extern ulint os_file_n_pending_pwrites;
12230 extern ulint os_n_pending_reads;
12231 extern ulint os_n_pending_writes;
12232 # 49 "./include/os0file.h"
12233 typedef int os_file_t;
12236 extern ulint os_innodb_umask;
12242 extern ulint os_aio_use_native_aio;
12243 # 138 "./include/os0file.h"
12244 extern ulint os_n_file_reads;
12245 extern ulint os_n_file_writes;
12246 extern ulint os_n_fsyncs;
12250 enum os_file_type_enum{
12251 OS_FILE_TYPE_UNKNOWN = 0,
12256 typedef enum os_file_type_enum os_file_type_t;
12257 # 159 "./include/os0file.h"
12258 struct os_file_stat_struct{
12260 os_file_type_t type;
12266 typedef struct os_file_stat_struct os_file_stat_t;
12271 typedef DIR* os_file_dir_t;
12278 os_get_os_version(void);
12285 os_io_init_simple(void);
12291 os_file_create_tmpfile(void);
12292 # 201 "./include/os0file.h"
12298 const char* dirname,
12300 ulint error_is_fatal);
12312 os_file_dir_t dir);
12318 os_file_readdir_next_file(
12322 const char* dirname,
12324 os_file_stat_t* info);
12332 os_file_create_directory(
12336 const char* pathname,
12338 ulint fail_if_exists);
12344 os_file_create_simple(
12365 os_file_create_simple_no_error_handling(
12422 os_file_delete_if_exists(
12434 const char* oldpath,
12436 const char* newpath);
12450 os_file_close_no_error_handling(
12469 os_file_get_size_as_iblonglong(
12509 os_file_get_last_error(
12513 ulint report_all_errors);
12540 os_file_read_string(
12550 os_file_read_no_error_handling(
12588 os_file_type_t* type);
12589 # 525 "./include/os0file.h"
12600 os_file_create_subdirs_if_needed(
12605 # 549 "./include/os0file.h"
12613 ulint n_read_threads,
12614 ulint n_write_threads,
12615 ulint n_slots_sync);
12626 # 581 "./include/os0file.h"
12637 fil_node_t* message1,
12648 os_aio_wake_all_threads_at_shutdown(void);
12655 os_aio_wait_until_no_pending_writes(void);
12661 os_aio_simulated_wake_handler_threads(void);
12670 os_aio_simulated_put_read_threads_to_sleep(void);
12671 # 681 "./include/os0file.h"
12673 os_aio_simulated_handle(
12681 fil_node_t**message1,
12692 os_aio_validate(void);
12706 os_aio_refresh_stats(void);
12707 # 730 "./include/os0file.h"
12709 os_file_get_status(
12713 os_file_stat_t* stat_info);
12714 # 18 "./include/fil0fil.h" 2
12719 extern const char* fil_path_to_mysql_datadir;
12720 # 34 "./include/fil0fil.h"
12721 typedef unsigned char fil_faddr_t;
12722 # 44 "./include/fil0fil.h"
12723 typedef struct fil_addr_struct fil_addr_t;
12724 struct fil_addr_struct{
12730 extern fil_addr_t fil_addr_null;
12731 # 92 "./include/fil0fil.h"
12732 extern ulint fil_n_log_flushes;
12734 extern ulint fil_n_pending_log_flushes;
12735 extern ulint fil_n_pending_tablespace_flushes;
12742 fil_space_get_version(
12751 fil_space_get_latch(
12759 fil_space_get_type(
12767 fil_space_get_ibuf_data(
12788 fil_space_truncate_start(
12819 fil_space_get_size(
12828 fil_check_adress_in_tablespace(
12855 fil_open_log_and_system_tablespace_files(void);
12862 fil_close_all_files(void);
12869 fil_set_max_space_id_if_bigger(
12878 fil_ibuf_init_at_db_start(void);
12885 fil_write_flushed_lsn_to_data_files(
12889 ulint arch_log_no);
12895 fil_read_flushed_lsn_and_arch_log_no(
12897 os_file_t data_file,
12898 ulint one_read_already,
12904 dulint* min_flushed_lsn,
12905 dulint* max_flushed_lsn);
12911 fil_inc_pending_ibuf_merges(
12920 fil_decr_pending_ibuf_merges(
12923 # 296 "./include/fil0fil.h"
12925 fil_op_log_parse_or_replay(
12930 unsigned char* ptr,
12933 unsigned char* end_ptr,
12945 fil_delete_tablespace(
12949 # 330 "./include/fil0fil.h"
12951 fil_discard_tablespace(
12960 fil_rename_tablespace(
12963 const char* old_name,
12968 const char* new_name);
12969 # 359 "./include/fil0fil.h"
12971 fil_create_new_single_table_tablespace(
12977 const char* tablename,
12984 # 385 "./include/fil0fil.h"
12986 fil_open_single_table_tablespace(
12989 ulint check_space_id,
12998 # 409 "./include/fil0fil.h"
13000 fil_reset_too_high_lsns(
13005 dulint current_lsn);
13006 # 426 "./include/fil0fil.h"
13008 fil_load_single_table_tablespaces(void);
13009 # 437 "./include/fil0fil.h"
13011 fil_print_orphaned_tablespaces(void);
13018 fil_tablespace_deleted_or_being_deleted_in_mem(
13023 ib_longlong version);
13030 fil_tablespace_exists_in_mem(
13040 fil_space_for_table_exists_in_mem(
13056 ulint print_error_if_does_not_exist);
13057 # 493 "./include/fil0fil.h"
13059 fil_extend_space_to_desired_size(
13062 ulint* actual_size,
13066 ulint size_after_extend);
13067 # 518 "./include/fil0fil.h"
13069 fil_space_reserve_free_extents(
13074 ulint n_to_reserve);
13079 fil_space_release_free_extents(
13088 fil_space_get_n_reserved_extents(
13104 # 562 "./include/fil0fil.h"
13107 ulint block_offset,
13133 ulint block_offset,
13156 ulint block_offset,
13180 FLUSH_FROM_DIRTY_BUFFER,
13182 FLUSH_FROM_CHECKPOINT,
13183 FLUSH_FROM_LOG_IO_COMPLETE,
13184 FLUSH_FROM_LOG_WRITE_UP_TO,
13185 FLUSH_FROM_ARCHIVE,
13197 flush_from_type flush_type);
13203 fil_flush_file_spaces(
13206 flush_from_type flush_type);
13211 fil_validate(void);
13226 fil_page_get_prev(unsigned char* page);
13228 fil_page_get_next(unsigned char* page);
13235 unsigned char* page,
13245 unsigned char* page);
13251 fil_system_hash_cells(void);
13255 fil_system_hash_nodes(void);
13258 typedef struct fil_space_struct fil_space_t;
13259 # 28 "./include/buf0buf.h" 2
13260 # 1 "./include/mtr0types.h" 1
13261 # 12 "./include/mtr0types.h"
13262 typedef struct mtr_struct mtr_t;
13263 # 29 "./include/buf0buf.h" 2
13264 # 1 "./include/buf0types.h" 1
13265 # 12 "./include/buf0types.h"
13266 typedef struct buf_block_struct buf_block_t;
13267 typedef struct buf_pool_struct buf_pool_t;
13269 typedef struct buf_io_counter_struct buf_io_counter_t;
13272 typedef unsigned char buf_frame_t;
13273 # 30 "./include/buf0buf.h" 2
13275 # 1 "./include/hash0hash.h" 1
13276 # 13 "./include/hash0hash.h"
13277 # 1 "./include/mem0mem.h" 1
13278 # 16 "./include/mem0mem.h"
13279 # 1 "./include/ut0rnd.h" 1
13280 # 22 "./include/ut0rnd.h"
13290 ut_rnd_gen_next_ulint(
13301 ut_rnd_gen_ulint(void);
13317 ut_rnd_gen_ibool(void);
13335 ut_fold_ulint_pair(
13363 const unsigned char* str,
13377 # 1 "./include/ut0rnd.ic" 1
13378 # 21 "./include/ut0rnd.ic"
13379 extern ulint ut_rnd_ulint_counter;
13389 ut_rnd_ulint_counter = seed;
13396 ut_rnd_gen_next_ulint(
13403 n_bits = 8 * sizeof(ulint);
13405 rnd = 119785373 * rnd + 126792457;
13406 rnd = 187678878 ^ rnd;
13407 rnd = (rnd << 20) + (rnd >> (n_bits - 20));
13408 rnd = 85689495 * rnd + 63498502;
13409 rnd = 143537923 ^ rnd;
13410 rnd = (rnd << 20) + (rnd >> (n_bits - 20));
13411 rnd = 151117737 * rnd + 98781234;
13423 ut_rnd_gen_ulint(void)
13430 n_bits = 8 * sizeof(ulint);
13432 ut_rnd_ulint_counter =
13433 151117737 * ut_rnd_ulint_counter + 119785373;
13435 rnd = ut_rnd_gen_next_ulint(ut_rnd_ulint_counter);
13459 rnd = ut_rnd_gen_ulint();
13461 return(low + (rnd % (high - low + 1)));
13468 ut_rnd_gen_ibool(void)
13474 x = ut_rnd_gen_ulint();
13476 if (((x >> 20) + (x >> 15)) & 1) {
13496 key = key ^ 1653893711;
13498 return(key % table_size);
13505 ut_fold_ulint_pair(
13511 return(((((n1 ^ n2 ^ 1653893711) << 8) + n1)
13512 ^ 1463735687) + n2);
13524 return(ut_fold_ulint_pair(ut_dulint_get_low(d),
13525 ut_dulint_get_high(d)));
13544 while (*str != '\0') {
13551 fold = ut_fold_ulint_pair(fold, (ulint)(*str));
13565 const unsigned char* str,
13568 const unsigned char* str_end = str + len;
13573 while (str < str_end) {
13574 fold = ut_fold_ulint_pair(fold, (ulint)(*str));
13581 # 119 "./include/ut0rnd.h" 2
13582 # 17 "./include/mem0mem.h" 2
13585 # 1 "./include/mach0data.h" 1
13586 # 23 "./include/mach0data.h"
13680 mach_write_compressed(
13689 mach_get_compressed_size(
13697 mach_read_compressed(
13759 mach_dulint_write_compressed(
13768 mach_dulint_get_compressed_size(
13776 mach_dulint_read_compressed(
13784 mach_dulint_write_much_compressed(
13793 mach_dulint_get_much_compressed_size(
13801 mach_dulint_read_much_compressed(
13809 mach_parse_compressed(
13813 unsigned char* ptr,
13814 unsigned char* end_ptr,
13820 mach_dulint_parse_compressed(
13824 unsigned char* ptr,
13825 unsigned char* end_ptr,
13863 mach_read_from_n_little_endian(
13866 unsigned char* buf,
13872 mach_write_to_n_little_endian(
13874 unsigned char* dest,
13881 mach_read_from_2_little_endian(
13884 unsigned char* buf);
13889 mach_write_to_2_little_endian(
13891 unsigned char* dest,
13895 # 1 "./include/mach0data.ic" 1
13896 # 12 "./include/mach0data.ic"
13907 b[0] = (unsigned char)n;
13920 return((ulint)(b[0]));
13936 b[0] = (unsigned char)(n >> 8);
13937 b[1] = (unsigned char)(n);
13951 return( ((ulint)(b[0]) << 8)
13969 mach_write_to_2((unsigned char*) &ret, n);
13984 return(mach_read_from_2((unsigned char*) &n));
14000 b[0] = (unsigned char)(n >> 16);
14001 b[1] = (unsigned char)(n >> 8);
14002 b[2] = (unsigned char)(n);
14016 return( ((ulint)(b[0]) << 16)
14017 + ((ulint)(b[1]) << 8)
14033 # 160 "./include/mach0data.ic"
14034 b[0] = (unsigned char)(n >> 24);
14035 b[1] = (unsigned char)(n >> 16);
14036 b[2] = (unsigned char)(n >> 8);
14037 b[3] = (unsigned char)n;
14051 # 192 "./include/mach0data.ic"
14053 return( ((ulint)(b[0]) << 24)
14054 + ((ulint)(b[1]) << 16)
14055 + ((ulint)(b[2]) << 8)
14060 # 208 "./include/mach0data.ic"
14063 mach_write_compressed(
14072 mach_write_to_1(b, n);
14074 } else if (n < 0x4000UL) {
14075 mach_write_to_2(b, n | 0x8000UL);
14077 } else if (n < 0x200000UL) {
14078 mach_write_to_3(b, n | 0xC00000UL);
14080 } else if (n < 0x10000000UL) {
14081 mach_write_to_4(b, n | 0xE0000000UL);
14084 mach_write_to_1(b, 0xF0UL);
14085 mach_write_to_4(b + 1, n);
14094 mach_get_compressed_size(
14101 } else if (n < 0x4000UL) {
14103 } else if (n < 0x200000UL) {
14105 } else if (n < 0x10000000UL) {
14116 mach_read_compressed(
14125 flag = mach_read_from_1(b);
14127 if (flag < 0x80UL) {
14129 } else if (flag < 0xC0UL) {
14130 return(mach_read_from_2(b) & 0x7FFFUL);
14131 } else if (flag < 0xE0UL) {
14132 return(mach_read_from_3(b) & 0x3FFFFFUL);
14133 } else if (flag < 0xF0UL) {
14134 return(mach_read_from_4(b) & 0x1FFFFFFFUL);
14137 return(mach_read_from_4(b + 1));
14153 mach_write_to_4(b, ut_dulint_get_high(n));
14154 mach_write_to_4(b + 4, ut_dulint_get_low(n));
14172 high = mach_read_from_4(b);
14173 low = mach_read_from_4(b + 4);
14175 return(ut_dulint_create(high, low));
14190 mach_write_to_3(b, ut_dulint_get_high(n));
14191 mach_write_to_4(b + 3, ut_dulint_get_low(n));
14209 high = mach_read_from_3(b);
14210 low = mach_read_from_4(b + 3);
14212 return(ut_dulint_create(high, low));
14227 mach_write_to_2(b, ut_dulint_get_high(n));
14228 mach_write_to_4(b + 2, ut_dulint_get_low(n));
14246 high = mach_read_from_2(b);
14247 low = mach_read_from_4(b + 2);
14249 return(ut_dulint_create(high, low));
14256 mach_dulint_write_compressed(
14266 size = mach_write_compressed(b, ut_dulint_get_high(n));
14267 mach_write_to_4(b + size, ut_dulint_get_low(n));
14276 mach_dulint_get_compressed_size(
14281 return(4 + mach_get_compressed_size(ut_dulint_get_high(n)));
14288 mach_dulint_read_compressed(
14299 high = mach_read_compressed(b);
14301 size = mach_get_compressed_size(high);
14303 low = mach_read_from_4(b + size);
14305 return(ut_dulint_create(high, low));
14312 mach_dulint_write_much_compressed(
14322 if (ut_dulint_get_high(n) == 0) {
14323 return(mach_write_compressed(b, ut_dulint_get_low(n)));
14326 *b = (unsigned char)0xFF;
14327 size = 1 + mach_write_compressed(b + 1, ut_dulint_get_high(n));
14329 size += mach_write_compressed(b + size, ut_dulint_get_low(n));
14338 mach_dulint_get_much_compressed_size(
14343 if (0 == ut_dulint_get_high(n)) {
14344 return(mach_get_compressed_size(ut_dulint_get_low(n)));
14347 return(1 + mach_get_compressed_size(ut_dulint_get_high(n))
14348 + mach_get_compressed_size(ut_dulint_get_low(n)));
14355 mach_dulint_read_much_compressed(
14366 if (*b != (unsigned char)0xFF) {
14370 high = mach_read_compressed(b + 1);
14372 size = 1 + mach_get_compressed_size(high);
14375 low = mach_read_compressed(b + size);
14377 return(ut_dulint_create(high, low));
14391 unsigned char* ptr;
14393 ptr = (unsigned char*)&d;
14395 for (i = 0; i < sizeof(double); i++) {
14397 ptr[sizeof(double) - i - 1] = b[i];
14416 unsigned char* ptr;
14418 ptr = (unsigned char*)&d;
14420 for (i = 0; i < sizeof(double); i++) {
14422 b[i] = ptr[sizeof(double) - i - 1];
14440 unsigned char* ptr;
14442 ptr = (unsigned char*)&d;
14444 for (i = 0; i < sizeof(float); i++) {
14446 ptr[sizeof(float) - i - 1] = b[i];
14465 unsigned char* ptr;
14467 ptr = (unsigned char*)&d;
14469 for (i = 0; i < sizeof(float); i++) {
14471 b[i] = ptr[sizeof(float) - i - 1];
14482 mach_read_from_n_little_endian(
14485 unsigned char* buf,
14489 unsigned char* ptr;
14494 ptr = buf + buf_size;
14501 n += (ulint)(*ptr);
14515 mach_write_to_n_little_endian(
14517 unsigned char* dest,
14521 unsigned char* end;
14526 end = dest + dest_size;
14529 *dest = (unsigned char)(n & 0xFF);
14547 mach_read_from_2_little_endian(
14550 unsigned char* buf)
14552 return((ulint)(*buf) + ((ulint)(*(buf + 1))) * 256);
14559 mach_write_to_2_little_endian(
14561 unsigned char* dest,
14566 *dest = (unsigned char)(n & 0xFFUL);
14571 *dest = (unsigned char)(n & 0xFFUL);
14573 # 332 "./include/mach0data.h" 2
14574 # 20 "./include/mem0mem.h" 2
14579 typedef struct mem_block_info_struct mem_block_info_t;
14583 typedef mem_block_info_t mem_block_t;
14586 typedef mem_block_t mem_heap_t;
14587 # 57 "./include/mem0mem.h"
14592 # 103 "./include/mem0mem.h"
14595 mem_heap_create_func(
14605 # 124 "./include/mem0mem.h"
14608 const char* file_name,
14617 mem_heap_free_func(
14620 const char* file_name,
14638 mem_heap_get_heap_top(
14648 mem_heap_free_heap_top(
14651 unsigned char* old_top);
14685 # 219 "./include/mem0mem.h"
14693 const char* file_name,
14703 mem_alloc_func_noninline(
14708 const char* file_name,
14711 # 253 "./include/mem0mem.h"
14717 const char* file_name,
14772 # 328 "./include/mem0mem.h"
14773 struct mem_block_info_struct {
14777 struct { ulint count; mem_block_t * start; mem_block_t * end; } base;
14780 struct { mem_block_t * prev; mem_block_t * next; } list;
14794 unsigned char* free_block;
14795 # 360 "./include/mem0mem.h"
14804 # 1 "./include/mem0dbg.h" 1
14805 # 41 "./include/mem0dbg.h"
14807 mem_heap_validate_or_print(
14810 unsigned char* top,
14826 # 75 "./include/mem0dbg.h"
14840 # 115 "./include/mem0dbg.h"
14842 mem_analyze_corruption(
14844 unsigned char* ptr);
14850 mem_print_info(void);
14857 mem_print_new_info(void);
14858 # 369 "./include/mem0mem.h" 2
14861 # 1 "./include/mem0mem.ic" 1
14862 # 9 "./include/mem0mem.ic"
14863 # 1 "./include/mem0dbg.ic" 1
14864 # 10 "./include/mem0mem.ic" 2
14866 # 1 "./include/mem0pool.h" 1
14867 # 16 "./include/mem0pool.h"
14868 typedef struct mem_area_struct mem_area_t;
14869 typedef struct mem_pool_struct mem_pool_t;
14872 extern mem_pool_t* mem_comm_pool;
14876 struct mem_area_struct{
14877 ulint size_and_free;
14881 struct { mem_area_t * prev; mem_area_t * next; }
14884 # 40 "./include/mem0pool.h"
14915 mem_pool_get_reserved(
14923 mem_pool_mutex_enter(void);
14929 mem_pool_mutex_exit(void);
14943 mem_pool_print_info(
14950 # 1 "./include/mem0pool.ic" 1
14951 # 106 "./include/mem0pool.h" 2
14952 # 12 "./include/mem0mem.ic" 2
14958 mem_heap_create_block(
14970 const char* file_name,
14976 mem_heap_block_free(
14979 mem_block_t* block);
14984 mem_heap_free_block_free(
14991 mem_heap_add_block(
15000 mem_block_set_len(mem_block_t* block, ulint len)
15009 mem_block_get_len(mem_block_t* block)
15011 return(block->len);
15016 mem_block_set_type(mem_block_t* block, ulint type)
15021 block->type = type;
15026 mem_block_get_type(mem_block_t* block)
15028 return(block->type);
15033 mem_block_set_free(mem_block_t* block, ulint free)
15038 block->free = free;
15043 mem_block_get_free(mem_block_t* block)
15045 return(block->free);
15050 mem_block_set_start(mem_block_t* block, ulint start)
15054 block->start = start;
15059 mem_block_get_start(mem_block_t* block)
15061 return(block->start);
15076 mem_block_t* block;
15082 block = (heap->base).end;
15089 if (mem_block_get_len(block)
15090 < mem_block_get_free(block) + ut_calc_align((n), 8)) {
15092 block = mem_heap_add_block(heap, n);
15094 if (block == ((void *)0)) {
15096 return(((void *)0));
15100 free = mem_block_get_free(block);
15102 buf = (unsigned char*)block + free;
15104 mem_block_set_free(block, free + ut_calc_align((n), 8));
15105 # 178 "./include/mem0mem.ic"
15113 mem_heap_get_heap_top(
15118 mem_block_t* block;
15119 unsigned char* buf;
15123 block = (heap->base).end;
15125 buf = (unsigned char*)block + mem_block_get_free(block);
15136 mem_heap_free_heap_top(
15139 unsigned char* old_top)
15141 mem_block_t* block;
15142 mem_block_t* prev_block;
15150 # 237 "./include/mem0mem.ic"
15151 block = (heap->base).end;
15153 while (block != ((void *)0)) {
15154 if (((unsigned char*)block + mem_block_get_free(block) >= old_top)
15155 && ((unsigned char*)block <= old_top)) {
15164 prev_block = (((block)->list).prev);
15166 mem_heap_block_free(heap, block);
15168 block = prev_block;
15174 mem_block_set_free(block, old_top - (unsigned char*)block);
15175 # 279 "./include/mem0mem.ic"
15176 if ((heap != block) && (mem_block_get_free(block) ==
15177 mem_block_get_start(block))) {
15178 mem_heap_block_free(heap, block);
15190 mem_heap_free_heap_top(heap, (unsigned char*)heap + mem_block_get_start(heap));
15192 if (heap->free_block) {
15193 mem_heap_free_block_free(heap);
15208 mem_block_t* block;
15213 block = (heap->base).end;
15215 buf = (unsigned char*)block + mem_block_get_free(block) - ut_calc_align((n), 8);
15216 # 332 "./include/mem0mem.ic"
15230 mem_block_t* block;
15234 block = (heap->base).end;
15237 mem_block_set_free(block, mem_block_get_free(block)
15238 - ut_calc_align((n), 8));
15239 # 365 "./include/mem0mem.ic"
15240 if ((heap != block) && (mem_block_get_free(block) ==
15241 mem_block_get_start(block))) {
15242 mem_heap_block_free(heap, block);
15252 mem_heap_create_func(
15262 # 396 "./include/mem0mem.ic"
15265 const char* file_name,
15269 mem_block_t* block;
15272 block = mem_heap_create_block(((void *)0), n, init_block, type,
15275 block = mem_heap_create_block(((void *)0), 64,
15276 init_block, type, file_name, line);
15281 { (block->base).count = 0; (block->base).start = ((void *)0); (block->base).end = ((void *)0);};
15284 { ; ((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); }};
15285 # 430 "./include/mem0mem.ic"
15295 mem_heap_free_func(
15298 const char* file_name __attribute__((unused)),
15300 ulint line __attribute__((unused)))
15302 mem_block_t* block;
15303 mem_block_t* prev_block;
15307 block = (heap->base).end;
15308 # 462 "./include/mem0mem.ic"
15309 if (heap->free_block) {
15310 mem_heap_free_block_free(heap);
15313 while (block != ((void *)0)) {
15317 prev_block = (((block)->list).prev);
15319 mem_heap_block_free(heap, block);
15321 block = prev_block;
15337 const char* file_name,
15344 heap = mem_heap_create_func(n, ((void *)0), 0, file_name,
15346 if (heap == ((void *)0)) {
15348 return(((void *)0));
15356 buf = mem_heap_alloc(heap, n);
15358 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);
15372 const char* file_name,
15378 heap = (mem_heap_t*)((unsigned char*)ptr - ut_calc_align(sizeof(mem_block_info_t), 8)
15380 mem_heap_free_func(heap, file_name, line);
15391 mem_block_t* block;
15398 while (block != ((void *)0)) {
15400 size += mem_block_get_len(block);
15401 block = (((block)->list).next);
15404 if (heap->free_block) {
15405 size += (2 * 8192);
15421 ulint len = strlen(str) + 1;
15422 return(memcpy(mem_alloc_func((len), "./include/mem0mem.ic", 575), str, len));
15436 char* s = mem_alloc_func((len + 1), "./include/mem0mem.ic", 589);
15438 return(memcpy(s, str, len));
15454 const char* s = str;
15455 size_t len = strlen(str) + 3;
15457 while((s = (__extension__ (__builtin_constant_p (q) && !__builtin_constant_p (s) && (q) == '\0' ? (char *) __rawmemchr (s, q) : __builtin_strchr (s, q)))) != ((void *)0)) {
15462 d = dst = mem_alloc_func((len), "./include/mem0mem.ic", 615);
15466 if ((*d++ = *s++) == q) {
15488 char* s = mem_heap_alloc(heap, len + 1);
15490 return(memcpy(s, str, len));
15492 # 372 "./include/mem0mem.h" 2
15493 # 14 "./include/hash0hash.h" 2
15496 typedef struct hash_table_struct hash_table_t;
15497 typedef struct hash_cell_struct hash_cell_t;
15499 typedef void* hash_node_t;
15500 # 28 "./include/hash0hash.h"
15510 hash_create_mutexes(
15512 hash_table_t* table,
15522 hash_table_t* table);
15531 hash_table_t* table);
15532 # 154 "./include/hash0hash.h"
15538 hash_table_t* table,
15547 hash_table_t* table);
15548 # 230 "./include/hash0hash.h"
15554 hash_table_t* table,
15563 hash_table_t* table,
15572 hash_table_t* table,
15578 hash_get_nth_mutex(
15581 hash_table_t* table,
15590 hash_table_t* table,
15598 hash_table_t* table,
15606 hash_table_t* table,
15612 hash_mutex_enter_all(
15614 hash_table_t* table);
15619 hash_mutex_exit_all(
15621 hash_table_t* table);
15624 struct hash_cell_struct{
15629 struct hash_table_struct {
15633 hash_cell_t* array;
15636 ib_mutex_t* mutexes;
15638 mem_heap_t** heaps;
15649 # 1 "./include/hash0hash.ic" 1
15650 # 13 "./include/hash0hash.ic"
15656 hash_table_t* table,
15661 return(table->array + n);
15671 hash_table_t* table)
15673 return(table->n_cells);
15684 hash_table_t* table)
15686 return(ut_hash_ulint(fold, table->n_cells));
15696 hash_table_t* table,
15699 return(ut_2pow_remainder(fold, table->n_mutexes));
15709 hash_table_t* table,
15714 return(table->heaps[i]);
15724 hash_table_t* table,
15730 return(table->heap);
15733 i = hash_get_mutex_no(table, fold);
15735 return(hash_get_nth_heap(table, i));
15742 hash_get_nth_mutex(
15745 hash_table_t* table,
15750 return(table->mutexes + i);
15760 hash_table_t* table,
15765 i = hash_get_mutex_no(table, fold);
15767 return(hash_get_nth_mutex(table, i));
15769 # 331 "./include/hash0hash.h" 2
15770 # 32 "./include/buf0buf.h" 2
15772 # 1 "./include/os0proc.h" 1
15773 # 16 "./include/os0proc.h"
15774 # 1 "/usr/include/sys/ipc.h" 1 3 4
15775 # 29 "/usr/include/sys/ipc.h" 3 4
15776 # 1 "/usr/include/bits/ipctypes.h" 1 3 4
15777 # 33 "/usr/include/bits/ipctypes.h" 3 4
15778 typedef int __ipc_pid_t;
15779 # 30 "/usr/include/sys/ipc.h" 2 3 4
15780 # 1 "/usr/include/bits/ipc.h" 1 3 4
15781 # 43 "/usr/include/bits/ipc.h" 3 4
15792 __uint64_t __unused1;
15793 __uint64_t __unused2;
15800 extern int __ipc (int __call, int __first, int __second, int __third,
15801 void *__ptr) __attribute__ ((__nothrow__));
15804 # 31 "/usr/include/sys/ipc.h" 2 3 4
15805 # 52 "/usr/include/sys/ipc.h" 3 4
15809 extern key_t ftok (__const char *__pathname, int __proj_id) __attribute__ ((__nothrow__));
15812 # 17 "./include/os0proc.h" 2
15813 # 1 "/usr/include/sys/shm.h" 1 3 4
15814 # 25 "/usr/include/sys/shm.h" 3 4
15815 # 1 "/usr/lib/gcc/powerpc64-unknown-linux-gnu/4.3.4/include/stddef.h" 1 3 4
15816 # 26 "/usr/include/sys/shm.h" 2 3 4
15822 # 1 "/usr/include/bits/shm.h" 1 3 4
15823 # 40 "/usr/include/bits/shm.h" 3 4
15828 extern int __getpagesize (void) __attribute__ ((__nothrow__)) __attribute__ ((__const__));
15832 typedef unsigned long int shmatt_t;
15837 struct ipc_perm shm_perm;
15841 __time_t shm_atime;
15845 __time_t shm_dtime;
15849 __time_t shm_ctime;
15856 shmatt_t shm_nattch;
15857 unsigned long __unused5;
15858 unsigned long __unused6;
15860 # 89 "/usr/include/bits/shm.h" 3 4
15863 unsigned long int shmmax;
15864 unsigned long int shmmin;
15865 unsigned long int shmmni;
15866 unsigned long int shmseg;
15867 unsigned long int shmall;
15868 unsigned long int __unused1;
15869 unsigned long int __unused2;
15870 unsigned long int __unused3;
15871 unsigned long int __unused4;
15877 unsigned long int shm_tot;
15878 unsigned long int shm_rss;
15879 unsigned long int shm_swp;
15880 unsigned long int swap_attempts;
15881 unsigned long int swap_successes;
15887 # 32 "/usr/include/sys/shm.h" 2 3 4
15888 # 45 "/usr/include/sys/shm.h" 3 4
15895 extern int shmctl (int __shmid, int __cmd, struct shmid_ds *__buf) __attribute__ ((__nothrow__));
15898 extern int shmget (key_t __key, size_t __size, int __shmflg) __attribute__ ((__nothrow__));
15901 extern void *shmat (int __shmid, __const void *__shmaddr, int __shmflg)
15902 __attribute__ ((__nothrow__));
15905 extern int shmdt (__const void *__shmaddr) __attribute__ ((__nothrow__));
15908 # 18 "./include/os0proc.h" 2
15911 typedef void* os_process_t;
15912 typedef unsigned long int os_process_id_t;
15918 typedef ulint os_awe_t;
15926 extern ulint os_use_large_pages;
15928 extern ulint os_large_page_size;
15936 os_awe_enable_lock_pages_in_mem(void);
15945 os_awe_allocate_physical_mem(
15948 os_awe_t** page_info,
15952 ulint n_megabytes);
15958 os_awe_allocate_virtual_mem_window(
15963 # 83 "./include/os0proc.h"
15965 os_awe_map_physical_mem_to_window(
15969 unsigned char* ptr,
15975 os_awe_t* page_info);
15976 # 103 "./include/os0proc.h"
15978 os_proc_get_number(void);
15984 os_mem_alloc_nocache(
15992 os_mem_alloc_large(
15998 ulint assert_on_error);
16012 os_process_set_priority_boost(
16018 # 1 "./include/os0proc.ic" 1
16019 # 145 "./include/os0proc.h" 2
16020 # 34 "./include/buf0buf.h" 2
16021 # 58 "./include/buf0buf.h"
16022 extern buf_pool_t* buf_pool;
16028 extern ulint srv_buf_pool_write_requests;
16054 buf_pool_get_curr_size(void);
16062 buf_pool_get_max_size(void);
16070 buf_pool_get_oldest_modification(void);
16078 buf_frame_alloc(void);
16087 buf_frame_t* frame);
16095 unsigned char* buf,
16096 buf_frame_t* frame);
16097 # 165 "./include/buf0buf.h"
16099 buf_page_optimistic_get_func(
16103 buf_block_t* block,
16104 buf_frame_t* guess,
16106 dulint modify_clock,
16118 buf_page_get_release_on_io(
16125 buf_frame_t* guess,
16135 buf_page_get_known_nowait(
16139 buf_frame_t* guess,
16154 buf_frame_t* guess,
16178 buf_page_init_for_backup_restore(
16183 buf_block_t* block);
16191 buf_block_t* block,
16201 buf_page_make_young(
16203 buf_frame_t* frame);
16222 buf_page_peek_block(
16234 buf_reset_check_index_page_at_flush(
16245 buf_page_set_file_page_was_freed(
16258 buf_page_reset_file_page_was_freed(
16270 buf_block_peek_if_too_old(
16273 buf_block_t* block);
16280 buf_page_peek_if_search_hashed(
16291 buf_frame_get_newest_modification(
16294 buf_frame_t* frame);
16301 buf_frame_modify_clock_inc(
16304 buf_frame_t* frame);
16311 buf_block_modify_clock_inc(
16314 buf_block_t* block);
16320 buf_block_get_modify_clock(
16323 buf_block_t* block);
16330 buf_calc_page_new_checksum(
16333 unsigned char* page);
16334 # 409 "./include/buf0buf.h"
16336 buf_calc_page_old_checksum(
16339 unsigned char* page);
16344 buf_page_is_corrupted(
16347 unsigned char* read_buf);
16353 buf_frame_get_page_no(
16356 unsigned char* ptr);
16362 buf_frame_get_space_id(
16365 unsigned char* ptr);
16371 buf_ptr_get_fsp_addr(
16373 unsigned char* ptr,
16381 buf_frame_get_lock_hash_val(
16384 unsigned char* ptr);
16390 buf_frame_get_mutex(
16393 unsigned char* ptr);
16401 unsigned char* ptr);
16411 # 510 "./include/buf0buf.h"
16415 unsigned char* read_buf);
16421 buf_get_n_pending_ios(void);
16435 buf_get_modified_ratio_pct(void);
16441 buf_refresh_io_stats(void);
16447 buf_all_freed(void);
16454 buf_pool_check_no_pending_io(void);
16463 buf_pool_invalidate(void);
16464 # 572 "./include/buf0buf.h"
16466 buf_awe_map_page_to_frame(
16468 buf_block_t* block,
16470 ulint add_to_mapped_list);
16471 # 596 "./include/buf0buf.h"
16474 buf_block_get_frame(
16477 buf_block_t* block);
16482 buf_block_get_space(
16485 buf_block_t* block);
16490 buf_block_get_page_no(
16493 buf_block_t* block);
16501 unsigned char* ptr);
16510 buf_block_t* block);
16515 buf_pool_get_nth_block(
16520 # 656 "./include/buf0buf.h"
16522 buf_page_init_for_read(
16528 ib_longlong tablespace_version,
16537 buf_page_io_complete(
16539 buf_block_t* block);
16545 buf_page_address_fold(
16564 buf_pool_clock_tic(void);
16571 buf_get_free_list_len(void);
16574 void buf_pool_dump(void);
16575 buf_block_t* buf_pool_get_nth_block_no_inline(buf_pool_t* pool, ulint i);
16583 buf_io_counter_control(void);
16587 buf_io_counter_clear(void);
16592 struct buf_block_struct{
16602 unsigned char* frame;
16610 os_awe_t* awe_info;
16617 ulint lock_hash_val;
16629 ulint check_index_page_at_flush;
16630 # 774 "./include/buf0buf.h"
16631 struct { buf_block_t * prev; buf_block_t * next; } flush_list;
16634 dulint newest_modification;
16638 dulint oldest_modification;
16651 struct { buf_block_t * prev; buf_block_t * next; } free;
16653 ulint in_free_list;
16655 struct { buf_block_t * prev; buf_block_t * next; } LRU;
16657 struct { buf_block_t * prev; buf_block_t * next; } awe_LRU_free_mapped;
16663 ulint LRU_position;
16671 ulint freed_page_clock;
16686 ulint buf_fix_count;
16695 dulint modify_clock;
16696 # 853 "./include/buf0buf.h"
16697 ulint n_hash_helps;
16704 # 873 "./include/buf0buf.h"
16714 ulint curr_n_fields;
16716 ulint curr_n_bytes;
16720 dict_index_t* index;
16721 # 897 "./include/buf0buf.h"
16722 ulint file_page_was_freed;
16732 struct buf_pool_struct{
16739 unsigned char* frame_mem;
16744 unsigned char* frame_zero;
16747 unsigned char* high_end;
16750 buf_block_t* blocks;
16751 buf_block_t** blocks_of_frames;
16752 # 937 "./include/buf0buf.h"
16753 os_awe_t* awe_info;
16761 hash_table_t* io_counter_hash;
16762 mem_heap_t* io_counter_heap;
16764 hash_table_t* page_hash;
16765 rw_lock_t hash_latch;
16767 ulint n_pend_reads;
16769 time_t last_printout_time;
16771 ulint n_pages_read;
16772 ulint n_pages_written;
16773 ulint n_pages_created;
16781 ulint n_pages_awe_remapped;
16784 ulint n_page_gets_old;
16787 ulint n_pages_read_old;
16789 ulint n_pages_written_old;
16790 ulint n_pages_created_old;
16792 ulint n_pages_awe_remapped_old;
16795 struct { ulint count; buf_block_t * start; buf_block_t * end; } flush_list;
16798 ib_mutex_t flush_list_mutex;
16799 ulint init_flush[3 + 1];
16802 ulint n_flush[3 + 1];
16805 os_event_t no_flush[3 + 1];
16813 ulint freed_page_clock;
16820 ulint LRU_flush_ended;
16827 struct { ulint count; buf_block_t * start; buf_block_t * end; } free;
16832 ib_mutex_t free_mutex;
16833 struct { ulint count; buf_block_t * start; buf_block_t * end; } LRU;
16835 ib_mutex_t LRU_mutex;
16836 buf_block_t* LRU_old;
16845 struct { ulint count; buf_block_t * start; buf_block_t * end; } awe_LRU_free_mapped;
16853 struct buf_io_counter_struct{
16856 buf_io_counter_t* hash;
16861 # 1104 "./include/buf0buf.h"
16862 # 1 "./include/buf0buf.ic" 1
16863 # 9 "./include/buf0buf.ic"
16864 # 1 "./include/buf0flu.h" 1
16865 # 20 "./include/buf0flu.h"
16867 buf_flush_write_complete(
16869 buf_block_t* block);
16875 buf_flush_free_margin(
16882 buf_flush_init_for_writing(
16884 unsigned char* page,
16914 buf_flush_wait_batch_end(
16923 buf_flush_note_modification(
16925 buf_block_t* block,
16931 buf_flush_recv_note_modification(
16933 buf_block_t* block,
16942 buf_flush_ready_for_replace(
16945 buf_block_t* block);
16951 buf_flush_validate(void);
16952 # 118 "./include/buf0flu.h"
16953 # 1 "./include/buf0flu.ic" 1
16954 # 9 "./include/buf0flu.ic"
16955 # 1 "./include/buf0buf.h" 1
16956 # 10 "./include/buf0flu.ic" 2
16957 # 1 "./include/mtr0mtr.h" 1
16958 # 14 "./include/mtr0mtr.h"
16959 # 1 "./include/dyn0dyn.h" 1
16960 # 16 "./include/dyn0dyn.h"
16961 typedef struct dyn_block_struct dyn_block_t;
16962 typedef dyn_block_t dyn_array_t;
16963 # 26 "./include/dyn0dyn.h"
16997 unsigned char* ptr);
17013 dyn_array_get_element(
17023 dyn_array_get_data_size(
17031 dyn_array_get_first_block(
17038 dyn_array_get_last_block(
17045 dyn_array_get_next_block(
17049 dyn_block_t* block);
17054 dyn_block_get_used(
17057 dyn_block_t* block);
17062 dyn_block_get_data(
17065 dyn_block_t* block);
17073 const unsigned char* str,
17080 struct dyn_block_struct{
17084 unsigned char data[512];
17086 struct { ulint count; dyn_block_t * start; dyn_block_t * end; } base;
17089 struct { dyn_block_t * prev; dyn_block_t * next; } list;
17101 # 1 "./include/dyn0dyn.ic" 1
17102 # 15 "./include/dyn0dyn.ic"
17104 dyn_array_add_block(
17114 dyn_array_get_first_block(
17125 dyn_array_get_last_block(
17129 if (arr->heap == ((void *)0)) {
17134 return((arr->base).end);
17141 dyn_array_get_next_block(
17145 dyn_block_t* block)
17149 if (arr->heap == ((void *)0)) {
17152 return(((void *)0));
17155 return((((block)->list).next));
17162 dyn_block_get_used(
17165 dyn_block_t* block)
17169 return((block->used) & ~0x1000000UL);
17176 dyn_block_get_data(
17179 dyn_block_t* block)
17183 return(block->data);
17199 arr->heap = ((void *)0);
17217 if (arr->heap != ((void *)0)) {
17218 mem_heap_free_func( (arr->heap), "./include/dyn0dyn.ic", 130);
17237 dyn_block_t* block;
17246 used = block->used;
17248 if (used + size > 512) {
17251 block = dyn_array_get_last_block(arr);
17252 used = block->used;
17254 if (used + size > 512) {
17255 block = dyn_array_add_block(arr);
17256 used = block->used;
17260 block->used = used + size;
17263 return((block->data) + used);
17279 dyn_block_t* block;
17288 used = block->used;
17290 if (used + size > 512) {
17293 block = dyn_array_get_last_block(arr);
17294 used = block->used;
17296 if (used + size > 512) {
17297 block = dyn_array_add_block(arr);
17298 used = block->used;
17299 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);
17309 return((block->data) + used);
17319 unsigned char* ptr)
17321 dyn_block_t* block;
17326 block = dyn_array_get_last_block(arr);
17330 block->used = ptr - block->data;
17343 dyn_array_get_element(
17350 dyn_block_t* block;
17357 block = dyn_array_get_first_block(arr);
17359 if (arr->heap != ((void *)0)) {
17360 used = dyn_block_get_used(block);
17362 while (pos >= used) {
17364 block = (((block)->list).next);
17367 used = dyn_block_get_used(block);
17374 return(block->data + pos);
17381 dyn_array_get_data_size(
17386 dyn_block_t* block;
17392 if (arr->heap == ((void *)0)) {
17398 block = dyn_array_get_first_block(arr);
17400 while (block != ((void *)0)) {
17401 sum += dyn_block_get_used(block);
17402 block = dyn_array_get_next_block(arr, block);
17415 const unsigned char* str,
17427 memcpy(dyn_array_push(arr, n_copied), str, n_copied);
17433 # 164 "./include/dyn0dyn.h" 2
17434 # 15 "./include/mtr0mtr.h" 2
17439 # 1 "./include/page0types.h" 1
17440 # 17 "./include/page0types.h"
17441 typedef unsigned char ib_page_t;
17442 typedef struct page_search_struct page_search_t;
17443 typedef struct page_cur_struct page_cur_t;
17444 # 20 "./include/mtr0mtr.h" 2
17445 # 139 "./include/mtr0mtr.h"
17458 mtr_start_noninline(
17484 mtr_rollback_to_savepoint(
17493 mtr_release_s_latch_at_savepoint(
17522 unsigned char* ptr,
17532 unsigned char* ptr,
17534 # 238 "./include/mtr0mtr.h"
17605 typedef struct mtr_memo_slot_struct mtr_memo_slot_t;
17606 struct mtr_memo_slot_struct{
17616 ulint modifications;
17630 # 341 "./include/mtr0mtr.h"
17631 # 1 "./include/mtr0mtr.ic" 1
17632 # 16 "./include/mtr0mtr.ic"
17641 dyn_array_create(&(mtr->memo));
17642 dyn_array_create(&(mtr->log));
17644 mtr->log_mode = 21;
17645 mtr->modifications = (0);
17646 mtr->n_log_recs = 0;
17666 mtr_memo_slot_t* slot;
17674 memo = &(mtr->memo);
17676 slot = dyn_array_push(memo, sizeof(mtr_memo_slot_t));
17678 slot->object = object;
17696 memo = &(mtr->memo);
17698 return(dyn_array_get_data_size(memo));
17706 mtr_release_s_latch_at_savepoint(
17712 mtr_memo_slot_t* slot;
17719 memo = &(mtr->memo);
17723 slot = dyn_array_get_element(memo, savepoint);
17728 rw_lock_s_unlock_func(lock);
17730 slot->object = ((void *)0);
17744 mtr_memo_slot_t* slot;
17751 memo = &(mtr->memo);
17753 offset = dyn_array_get_data_size(memo);
17755 while (offset > 0) {
17756 offset -= sizeof(mtr_memo_slot_t);
17758 slot = dyn_array_get_element(memo, offset);
17760 if ((object == slot->object) && (type == slot->type)) {
17781 return(&(mtr->log));
17797 return(mtr->log_mode);
17816 old_mode = mtr->log_mode;
17818 if ((mode == 24) && (old_mode == 22)) {
17821 mtr->log_mode = mode;
17844 rw_lock_s_lock_func(lock, 0, file, line);
17846 mtr_memo_push(mtr, lock, 55);
17863 rw_lock_x_lock_func(lock, 0, file, line);
17865 mtr_memo_push(mtr, lock, 56);
17867 # 342 "./include/mtr0mtr.h" 2
17868 # 11 "./include/buf0flu.ic" 2
17874 buf_flush_insert_into_flush_list(
17876 buf_block_t* block);
17883 buf_flush_insert_sorted_into_flush_list(
17885 buf_block_t* block);
17893 buf_flush_note_modification(
17895 buf_block_t* block,
17910 block->newest_modification = mtr->end_lsn;
17912 if (ut_dulint_is_zero(block->oldest_modification)) {
17914 block->oldest_modification = mtr->start_lsn;
17917 buf_flush_insert_into_flush_list(block);
17923 ++srv_buf_pool_write_requests;
17930 buf_flush_recv_note_modification(
17932 buf_block_t* block,
17945 mutex_enter_func((&(buf_pool->flush_list_mutex)), "./include/buf0flu.ic", 87);
17949 block->newest_modification = end_lsn;
17951 if (ut_dulint_is_zero(block->oldest_modification)) {
17953 block->oldest_modification = start_lsn;
17957 buf_flush_insert_sorted_into_flush_list(block);
17963 mutex_exit(&(buf_pool->flush_list_mutex));
17965 # 119 "./include/buf0flu.h" 2
17966 # 10 "./include/buf0buf.ic" 2
17967 # 1 "./include/buf0lru.h" 1
17968 # 25 "./include/buf0lru.h"
17970 buf_LRU_try_free_flushed_blocks(void);
17978 buf_LRU_buf_pool_running_out(void);
17979 # 55 "./include/buf0lru.h"
17981 buf_LRU_invalidate_tablespace(
17990 buf_LRU_get_recent_limit(void);
17998 buf_LRU_search_and_free_block(
18001 ulint n_iterations);
18002 # 87 "./include/buf0lru.h"
18004 buf_LRU_get_free_block(void);
18013 buf_LRU_block_free_non_file_page(
18015 buf_block_t* block);
18022 buf_block_t* block,
18031 buf_LRU_make_block_young(
18033 buf_block_t* block);
18038 buf_LRU_make_block_old(
18040 buf_block_t* block);
18045 buf_LRU_validate(void);
18051 buf_LRU_print(void);
18055 # 1 "./include/buf0lru.ic" 1
18056 # 140 "./include/buf0lru.h" 2
18057 # 11 "./include/buf0buf.ic" 2
18058 # 1 "./include/buf0rea.h" 1
18059 # 23 "./include/buf0rea.h"
18068 # 55 "./include/buf0rea.h"
18070 buf_read_ahead_linear(
18083 buf_read_ibuf_merge_pages(
18089 ib_longlong* space_versions,
18101 buf_read_recv_pages(
18110 # 12 "./include/buf0buf.ic" 2
18117 buf_print_diagnostic(
18120 const buf_block_t* block);
18121 # 32 "./include/buf0buf.ic"
18124 buf_block_peek_if_too_old(
18127 buf_block_t* block)
18129 return(buf_pool->freed_page_clock >= block->freed_page_clock
18130 + 1 + (buf_pool->curr_size / 1024));
18138 buf_pool_get_curr_size(void)
18142 return((buf_pool->n_frames) * (2 * 8192));
18150 buf_pool_get_max_size(void)
18154 return((buf_pool->n_frames) * (2 * 8192));
18161 buf_pool_get_nth_block(
18164 buf_pool_t* buf_pool,
18170 return(i + buf_pool->blocks);
18183 if ((buf_pool->blocks <= (buf_block_t*)ptr)
18184 && ((buf_block_t*)ptr < buf_pool->blocks + buf_pool->max_size)) {
18197 buf_pool_get_oldest_modification(void)
18202 buf_block_t* block;
18205 mutex_enter_func((&(buf_pool->flush_list_mutex)), "./include/buf0buf.ic", 115);
18207 block = (buf_pool->flush_list).end;
18209 if (block == ((void *)0)) {
18210 lsn = ut_dulint_zero;
18212 lsn = block->oldest_modification;
18215 mutex_exit(&(buf_pool->flush_list_mutex));
18225 buf_pool_clock_tic(void)
18233 buf_pool->ulint_clock++;
18235 return(buf_pool->ulint_clock);
18242 buf_block_get_frame(
18245 buf_block_t* block)
18254 return(block->frame);
18261 buf_block_get_space(
18264 buf_block_t* block)
18269 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);
18272 return(block->space);
18279 buf_block_get_page_no(
18282 buf_block_t* block)
18287 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);
18290 return(block->offset);
18300 unsigned char* ptr)
18302 buf_block_t* block;
18303 buf_frame_t* frame_zero;
18307 frame_zero = buf_pool->frame_zero;
18309 if (__builtin_expect((ulint)ptr < (ulint)frame_zero, (0))
18310 || __builtin_expect((ulint)ptr > (ulint)(buf_pool->high_end), (0))) {
18312 ut_print_timestamp(stderr);
18314 "InnoDB: Error: trying to access a stray pointer %p\n"
18315 "InnoDB: buf pool start is at %p, end at %p\n"
18316 "InnoDB: Probable reason is database corruption or memory\n"
18317 "InnoDB: corruption. If this happens in an InnoDB database recovery, see\n"
18318 "InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html\n"
18319 "InnoDB: how to force recovery.\n",
18321 buf_pool->high_end);
18322 do { ut_dbg_assertion_failed(0, "./include/buf0buf.ic", (ulint) 232); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0);
18325 block = *(buf_pool->blocks_of_frames + (((ulint)(ptr - frame_zero))
18337 unsigned char* ptr)
18339 buf_frame_t* frame;
18343 frame = ut_align_down(ptr, (2 * 8192));
18345 if (__builtin_expect((ulint)frame < (ulint)(buf_pool->frame_zero), (0))
18346 || __builtin_expect((ulint)frame >= (ulint)(buf_pool->high_end), (0))) {
18348 ut_print_timestamp(stderr);
18350 "InnoDB: Error: trying to access a stray pointer %p\n"
18351 "InnoDB: buf pool start is at %p, end at %p\n"
18352 "InnoDB: Probable reason is database corruption or memory\n"
18353 "InnoDB: corruption. If this happens in an InnoDB database recovery, see\n"
18354 "InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html\n"
18355 "InnoDB: how to force recovery.\n",
18356 ptr, buf_pool->frame_zero,
18357 buf_pool->high_end);
18358 do { ut_dbg_assertion_failed(0, "./include/buf0buf.ic", (ulint) 268); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0);
18369 buf_frame_get_page_no(
18372 unsigned char* ptr)
18374 return(buf_block_get_page_no(buf_block_align(ptr)));
18382 buf_frame_get_space_id(
18385 unsigned char* ptr)
18387 return(buf_block_get_space(buf_block_align(ptr)));
18395 buf_ptr_get_fsp_addr(
18397 unsigned char* ptr,
18401 buf_block_t* block;
18403 block = buf_block_align(ptr);
18405 *space = buf_block_get_space(block);
18406 addr->page = buf_block_get_page_no(block);
18407 addr->boffset = ptr - buf_frame_align(ptr);
18415 buf_frame_get_lock_hash_val(
18418 unsigned char* ptr)
18420 buf_block_t* block;
18422 block = buf_block_align(ptr);
18424 return(block->lock_hash_val);
18432 buf_frame_get_mutex(
18435 unsigned char* ptr)
18437 buf_block_t* block;
18439 block = buf_block_align(ptr);
18441 return(&block->mutex);
18451 unsigned char* buf,
18452 buf_frame_t* frame)
18456 ut_memcpy(buf, frame, (2 * 8192));
18466 buf_page_address_fold(
18472 return((space << 20) + space + offset);
18483 buf_block_t* block)
18485 mutex_enter_func((&block->mutex), "./include/buf0buf.ic", 395);
18490 if (block->io_fix != 0) {
18491 mutex_exit(&block->mutex);
18496 mutex_exit(&block->mutex);
18506 buf_frame_get_newest_modification(
18509 buf_frame_t* frame)
18511 buf_block_t* block;
18516 block = buf_block_align(frame);
18518 mutex_enter_func((&block->mutex), "./include/buf0buf.ic", 428);
18520 if (block->state == 213) {
18521 lsn = block->newest_modification;
18523 lsn = ut_dulint_zero;
18526 mutex_exit(&block->mutex);
18537 buf_frame_modify_clock_inc(
18540 buf_frame_t* frame)
18542 buf_block_t* block;
18546 block = buf_block_align(frame);
18553 { 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; }};
18555 return(block->modify_clock);
18564 buf_block_modify_clock_inc(
18567 buf_block_t* block)
18574 { 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; }};
18576 return(block->modify_clock);
18584 buf_block_get_modify_clock(
18587 buf_block_t* block)
18594 return(block->modify_clock);
18596 # 531 "./include/buf0buf.ic"
18599 buf_block_buf_fix_inc(
18601 buf_block_t* block)
18606 block->buf_fix_count++;
18619 buf_block_t* block;
18629 fold = buf_page_address_fold(space, offset);
18631 { (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); } }};
18633 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);
18645 buf_page_get_release_on_io(
18652 buf_frame_t* guess,
18658 buf_frame_t* frame;
18660 frame = buf_page_get_gen(space, offset, rw_latch, guess,
18662 "./include/buf0buf.ic", 596,
18664 if (frame != ((void *)0)) {
18672 mtr_rollback_to_savepoint(mtr, savepoint);
18674 buf_page_get_gen( space, offset, 1, ((void *)0), 10, "./include/buf0buf.ic", 608, mtr);
18679 mtr_rollback_to_savepoint(mtr, savepoint);
18681 return(((void *)0));
18691 buf_block_t* block,
18698 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);
18700 if (rw_latch == 2 && mtr->modifications) {
18701 mutex_enter_func((&buf_pool->flush_list_mutex), "./include/buf0buf.ic", 635);
18702 buf_flush_note_modification(block, mtr);
18703 mutex_exit(&buf_pool->flush_list_mutex);
18706 mutex_enter_func((&block->mutex), "./include/buf0buf.ic", 640);
18709 if (__builtin_expect(block->buf_fix_count == 0, (0))) {
18710 buf_print_diagnostic(mtr, block);
18711 do { ut_dbg_assertion_failed(0, "./include/buf0buf.ic", (ulint) 645); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0);
18717 --block->buf_fix_count;
18719 mutex_exit(&block->mutex);
18721 if (rw_latch == 1) {
18722 rw_lock_s_unlock_func(&(block->lock));
18723 } else if (rw_latch == 2) {
18724 rw_lock_x_unlock_func(&(block->lock));
18727 # 1105 "./include/buf0buf.h" 2
18728 # 24 "buf/buf0buf.c" 2
18734 # 1 "./include/mem0mem.h" 1
18735 # 30 "buf/buf0buf.c" 2
18736 # 1 "./include/btr0btr.h" 1
18737 # 14 "./include/btr0btr.h"
18738 # 1 "./include/dict0dict.h" 1
18739 # 14 "./include/dict0dict.h"
18740 # 1 "./include/dict0mem.h" 1
18741 # 14 "./include/dict0mem.h"
18742 # 1 "./include/data0type.h" 1
18743 # 14 "./include/data0type.h"
18744 extern ulint data_mysql_default_charset_coll;
18749 typedef struct dtype_struct dtype_t;
18753 extern dtype_t* dtype_binary;
18754 # 162 "./include/data0type.h"
18757 dtype_get_mysql_type(
18768 dtype_get_at_most_n_mbchars(
18772 const dtype_t* dtype,
18784 dtype_is_string_type(
18794 dtype_is_binary_string_type(
18806 dtype_is_non_binary_string_type(
18848 dtype_get_charset_coll_noninline(
18855 dtype_get_charset_coll(
18867 ulint charset_coll);
18886 dtype_get_mbminlen(
18890 const dtype_t* type);
18895 dtype_get_mbmaxlen(
18899 const dtype_t* type);
18904 dtype_get_pad_char(
18908 const dtype_t* type);
18913 dtype_get_fixed_size(
18921 dtype_get_min_size(
18924 const dtype_t* type);
18930 dtype_get_sql_null_size(
18938 dtype_is_fixed_size(
18947 dtype_read_for_order_and_null_size(
18950 unsigned char* buf);
18957 dtype_new_store_for_order_and_null_size(
18959 unsigned char* buf,
18971 dtype_new_read_for_order_and_null_size(
18974 unsigned char* buf);
18991 # 407 "./include/data0type.h"
18992 struct dtype_struct{
19015 # 1 "./include/data0type.ic" 1
19016 # 16 "./include/data0type.ic"
19019 innobase_get_cset_width(
19029 dtype_get_charset_coll(
19033 return((prtype >> 16) & 0xFFUL);
19040 dtype_get_mysql_type(
19046 return(type->prtype & 0xFFUL);
19058 if (dtype_is_string_type(type->mtype)) {
19059 innobase_get_cset_width(dtype_get_charset_coll(type->prtype),
19060 &type->mbminlen, &type->mbmaxlen);
19063 type->mbminlen = type->mbmaxlen = 0;
19082 type->mtype = mtype;
19083 type->prtype = prtype;
19087 dtype_set_mblen(type);
19115 return(type->mtype);
19128 return(type->prtype);
19154 return(type->prec);
19161 dtype_get_mbminlen(
19165 const dtype_t* type)
19168 return(type->mbminlen);
19174 dtype_get_mbmaxlen(
19178 const dtype_t* type)
19181 return(type->mbmaxlen);
19188 dtype_get_pad_char(
19192 const dtype_t* type)
19194 switch (type->mtype) {
19197 if (__builtin_expect(dtype_get_charset_coll(type->prtype) == 63, (0))) {
19201 return(((ulint)(-1)));
19213 if ((type->prtype & 1024) == 0) {
19219 return(((ulint)(-1)));
19229 dtype_new_store_for_order_and_null_size(
19231 unsigned char* buf,
19243 buf[0] = (unsigned char)(type->mtype & 0xFFUL);
19245 if (type->prtype & 1024) {
19246 buf[0] = buf[0] | 128;
19254 buf[1] = (unsigned char)(type->prtype & 0xFFUL);
19256 len = prefix_len ? prefix_len : type->len;
19258 mach_write_to_2(buf + 2, len & 0xFFFFUL);
19261 mach_write_to_2(buf + 4, dtype_get_charset_coll(type->prtype));
19263 if (type->prtype & 256) {
19274 dtype_read_for_order_and_null_size(
19277 unsigned char* buf)
19281 type->mtype = buf[0] & 63;
19282 type->prtype = buf[1];
19284 if (buf[0] & 128) {
19285 type->prtype = type->prtype | 1024;
19288 type->len = mach_read_from_2(buf + 2);
19290 type->prtype = dtype_form_prtype(type->prtype,
19291 data_mysql_default_charset_coll);
19292 dtype_set_mblen(type);
19301 dtype_new_read_for_order_and_null_size(
19304 unsigned char* buf)
19306 ulint charset_coll;
19312 type->mtype = buf[0] & 63;
19313 type->prtype = buf[1];
19315 if (buf[0] & 128) {
19316 type->prtype |= 1024;
19319 if (buf[4] & 128) {
19320 type->prtype |= 256;
19323 type->len = mach_read_from_2(buf + 2);
19325 mach_read_from_2(buf + 4);
19327 charset_coll = mach_read_from_2(buf + 4) & 0x7fff;
19329 if (dtype_is_string_type(type->mtype)) {
19330 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);
19332 if (charset_coll == 0) {
19339 charset_coll = data_mysql_default_charset_coll;
19342 type->prtype = dtype_form_prtype(type->prtype, charset_coll);
19344 dtype_set_mblen(type);
19352 dtype_get_fixed_size(
19359 mtype = dtype_get_mtype(type);
19363 # 381 "./include/data0type.ic"
19369 return(dtype_get_len(type));
19371 if (type->prtype & 1024) {
19372 return(dtype_get_len(type));
19374 # 399 "./include/data0type.ic"
19375 ulint mbminlen, mbmaxlen;
19377 innobase_get_cset_width(
19378 dtype_get_charset_coll(type->prtype),
19379 &mbminlen, &mbmaxlen);
19381 if (__builtin_expect(type->mbminlen != mbminlen, (0))
19382 || __builtin_expect(type->mbmaxlen != mbmaxlen, (0))) {
19384 ut_print_timestamp(stderr);
19385 fprintf(stderr, " InnoDB: "
19388 "type->mbminlen=%lu, "
19389 "type->mbmaxlen=%lu\n",
19392 (ulong) type->mbminlen,
19393 (ulong) type->mbmaxlen);
19395 if (mbminlen == mbmaxlen) {
19396 return(dtype_get_len(type));
19406 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);
19416 dtype_get_min_size(
19419 const dtype_t* type)
19421 switch (type->mtype) {
19423 # 466 "./include/data0type.ic"
19431 if ((type->prtype & 1024)
19432 || type->mbminlen == type->mbmaxlen) {
19436 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);
19437 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);
19438 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);
19439 return(type->len * type->mbminlen / type->mbmaxlen);
19446 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);
19458 dtype_get_sql_null_size(
19463 return(dtype_get_fixed_size(type));
19470 dtype_is_fixed_size(
19477 size = dtype_get_fixed_size(type);
19485 # 431 "./include/data0type.h" 2
19486 # 15 "./include/dict0mem.h" 2
19487 # 1 "./include/data0data.h" 1
19488 # 14 "./include/data0data.h"
19489 # 1 "./include/data0types.h" 1
19490 # 13 "./include/data0types.h"
19491 typedef struct dfield_struct dfield_t;
19494 typedef struct dtuple_struct dtuple_t;
19495 # 15 "./include/data0data.h" 2
19500 typedef struct big_rec_struct big_rec_t;
19504 dfield_set_data_noninline(
19509 dfield_get_data_noninline(
19512 dfield_get_len_noninline(
19515 dtuple_get_n_fields_noninline(
19518 dtuple_get_nth_field_noninline(
19576 data_write_sql_null(
19578 unsigned char* data,
19600 dfield_datas_are_binary_equal(
19609 dfield_data_is_binary_equal(
19614 unsigned char* data);
19619 dtuple_get_n_fields(
19627 dtuple_get_nth_field(
19636 dtuple_get_info_bits(
19644 dtuple_set_info_bits(
19652 dtuple_get_n_fields_cmp(
19661 dtuple_set_n_fields_cmp(
19664 ulint n_fields_cmp);
19682 dtuple_create_for_mysql(
19691 dtuple_free_for_mysql(
19699 dtuple_set_n_fields(
19708 dtuple_get_data_size(
19718 dtuple_datas_are_ordering_equal(
19742 dtuple_set_types_binary(
19750 dtuple_contains_null(
19758 dfield_check_typed(
19766 dtuple_check_typed(
19774 dtuple_check_typed_no_assert(
19778 # 311 "./include/data0data.h"
19788 dfield_print_also_hex(
19806 dtuple_convert_big_rec(
19812 dict_index_t* index,
19825 dtuple_convert_back_big_rec(
19827 dict_index_t* index,
19829 big_rec_t* vector);
19835 dtuple_big_rec_free(
19837 big_rec_t* vector);
19843 struct dfield_struct{
19849 struct dtuple_struct {
19855 ulint n_fields_cmp;
19863 struct { dtuple_t * prev; dtuple_t * next; } tuple_list;
19872 typedef struct big_rec_field_struct big_rec_field_t;
19873 struct big_rec_field_struct {
19876 unsigned char* data;
19882 struct big_rec_struct {
19885 big_rec_field_t* fields;
19889 # 1 "./include/data0data.ic" 1
19890 # 12 "./include/data0data.ic"
19891 extern unsigned char data_error;
19904 return(&(field->type));
19918 field->type = *type;
19934 return(field->data);
19951 return(field->len);
19980 field->data = (void*) data;
19995 field1->data = field2->data;
19996 field1->len = field2->len;
20015 dfield_datas_are_binary_equal(
20025 if ((len != field2->len)
20026 || ((len != 0xFFFFFFFF)
20027 && (0 != ut_memcmp(field1->data, field2->data, len)))) {
20039 dtuple_get_info_bits(
20046 return(tuple->info_bits);
20053 dtuple_set_info_bits(
20060 tuple->info_bits = info_bits;
20067 dtuple_get_n_fields_cmp(
20075 return(tuple->n_fields_cmp);
20082 dtuple_set_n_fields_cmp(
20085 ulint n_fields_cmp)
20091 tuple->n_fields_cmp = n_fields_cmp;
20098 dtuple_get_n_fields(
20105 return(tuple->n_fields);
20112 dtuple_get_nth_field(
20121 return(tuple->fields + n);
20140 tuple = (dtuple_t*) mem_heap_alloc(heap, sizeof(dtuple_t)
20141 + n_fields * sizeof(dfield_t));
20142 tuple->info_bits = 0;
20143 tuple->n_fields = n_fields;
20144 tuple->n_fields_cmp = n_fields;
20145 tuple->fields = (dfield_t*)(((unsigned char*)tuple) + sizeof(dtuple_t));
20146 # 280 "./include/data0data.ic"
20156 dtuple_get_data_size(
20171 n_fields = tuple->n_fields;
20173 for (i = 0; i < n_fields; i++) {
20174 field = dtuple_get_nth_field(tuple, i);
20175 len = dfield_get_len(field);
20177 if (len == 0xFFFFFFFF) {
20178 len = dtype_get_sql_null_size(dfield_get_type(field));
20191 dtuple_set_types_binary(
20196 dtype_t* dfield_type;
20199 for (i = 0; i < n; i++) {
20200 dfield_type = dfield_get_type(dtuple_get_nth_field(tuple, i));
20201 dtype_set(dfield_type, 4, 0, 0, 0);
20220 unsigned char* data;
20228 fold = ut_fold_dulint(tree_id);
20230 for (i = 0; i < n_fields; i++) {
20231 field = dtuple_get_nth_field(tuple, i);
20233 data = (unsigned char*) dfield_get_data(field);
20234 len = dfield_get_len(field);
20236 if (len != 0xFFFFFFFF) {
20237 fold = ut_fold_ulint_pair(fold,
20238 ut_fold_binary(data, len));
20243 field = dtuple_get_nth_field(tuple, i);
20245 data = (unsigned char*) dfield_get_data(field);
20246 len = dfield_get_len(field);
20248 if (len != 0xFFFFFFFF) {
20249 if (len > n_bytes) {
20253 fold = ut_fold_ulint_pair(fold,
20254 ut_fold_binary(data, len));
20265 data_write_sql_null(
20267 unsigned char* data,
20272 for (j = 0; j < len; j++) {
20281 dtuple_contains_null(
20289 n = dtuple_get_n_fields(tuple);
20291 for (i = 0; i < n; i++) {
20292 if (dfield_get_len(dtuple_get_nth_field(tuple, i))
20301 # 422 "./include/data0data.h" 2
20302 # 16 "./include/dict0mem.h" 2
20304 # 1 "./include/rem0types.h" 1
20305 # 13 "./include/rem0types.h"
20306 typedef unsigned char rec_t;
20307 # 18 "./include/dict0mem.h" 2
20308 # 1 "./include/btr0types.h" 1
20309 # 17 "./include/btr0types.h"
20310 typedef struct btr_pcur_struct btr_pcur_t;
20311 typedef struct btr_cur_struct btr_cur_t;
20312 typedef struct btr_search_struct btr_search_t;
20313 # 19 "./include/dict0mem.h" 2
20321 # 1 "./include/que0types.h" 1
20322 # 16 "./include/que0types.h"
20323 typedef void que_node_t;
20325 typedef struct que_fork_struct que_fork_t;
20328 typedef que_fork_t que_t;
20330 typedef struct que_thr_struct que_thr_t;
20331 typedef struct que_common_struct que_common_t;
20336 struct que_common_struct{
20338 que_node_t* parent;
20339 que_node_t* brother;
20341 ulint val_buf_size;
20349 # 27 "./include/dict0mem.h" 2
20350 # 48 "./include/dict0mem.h"
20352 dict_mem_table_create(
20366 dict_mem_table_free(
20368 dict_table_t* table);
20373 dict_mem_cluster_create(
20388 dict_mem_table_make_cluster_member(
20390 dict_table_t* table,
20391 const char* cluster_name);
20396 dict_mem_table_add_col(
20398 dict_table_t* table,
20408 dict_mem_index_create(
20411 const char* table_name,
20412 const char* index_name,
20425 dict_mem_index_add_field(
20427 dict_index_t* index,
20438 dict_mem_index_free(
20440 dict_index_t* index);
20445 dict_mem_foreign_create(void);
20450 struct dict_col_struct{
20460 dict_table_t* table;
20464 # 173 "./include/dict0mem.h"
20465 struct dict_field_struct{
20487 struct dict_tree_struct{
20494 unsigned char pad[64];
20502 struct { ulint count; dict_index_t * start; dict_index_t * end; }
20515 struct dict_index_struct{
20520 const char* table_name;
20521 dict_table_t* table;
20523 ulint trx_id_offset;
20527 ulint n_user_defined_cols;
20536 dict_field_t* fields;
20538 struct { dict_index_t * prev; dict_index_t * next; }
20541 struct { dict_index_t * prev; dict_index_t * next; }
20546 btr_search_t* search_info;
20548 ib_longlong* stat_n_diff_key_vals;
20553 ulint stat_index_size;
20555 ulint stat_n_leaf_pages;
20564 struct dict_foreign_struct{
20571 char* foreign_table_name;
20572 dict_table_t* foreign_table;
20573 const char** foreign_col_names;
20575 char* referenced_table_name;
20576 dict_table_t* referenced_table;
20578 const char** referenced_col_names;
20586 dict_index_t* foreign_index;
20591 dict_index_t* referenced_index;
20592 struct { dict_foreign_t * prev; dict_foreign_t * next; }
20595 struct { dict_foreign_t * prev; dict_foreign_t * next; }
20599 # 321 "./include/dict0mem.h"
20600 struct dict_table_struct{
20605 const char* dir_path_of_temp_table;
20613 ulint ibd_file_missing;
20617 ulint tablespace_discarded;
20621 hash_node_t name_hash;
20622 hash_node_t id_hash;
20626 struct { ulint count; dict_index_t * start; dict_index_t * end; }
20628 struct { ulint count; dict_foreign_t * start; dict_foreign_t * end; }
20632 struct { ulint count; dict_foreign_t * start; dict_foreign_t * end; }
20635 struct { dict_table_t * prev; dict_table_t * next; }
20640 ulint n_mysql_handles_opened;
20646 ulint n_foreign_key_checks_running;
20654 ib_lock_t* auto_inc_lock;
20661 dulint query_cache_inv_trx_id;
20668 struct { ulint count; ib_lock_t * start; ib_lock_t * end; }
20676 unsigned char mix_id_buf[12];
20679 const char* cluster_name;
20682 ulint does_not_fit_in_memory;
20683 # 413 "./include/dict0mem.h"
20684 ib_longlong stat_n_rows;
20687 ulint stat_clustered_index_size;
20690 ulint stat_sum_of_other_index_sizes;
20692 ulint stat_initialized;
20695 ulint stat_modified_counter;
20696 # 437 "./include/dict0mem.h"
20697 ib_mutex_t autoinc_mutex;
20700 ulint autoinc_inited;
20704 ib_longlong autoinc;
20711 # 1 "./include/dict0mem.ic" 1
20712 # 452 "./include/dict0mem.h" 2
20713 # 15 "./include/dict0dict.h" 2
20714 # 32 "./include/dict0dict.h"
20723 dict_get_db_name_len(
20737 const char* string,
20744 dict_table_decrement_handle_count(
20746 dict_table_t* table);
20752 # 77 "./include/dict0dict.h"
20754 dict_load_space_id_list(void);
20763 # 100 "./include/dict0dict.h"
20773 dict_col_get_clust_pos(
20781 dict_col_name_is_reserved(
20790 dict_table_autoinc_initialize(
20792 dict_table_t* table,
20793 ib_longlong value);
20799 dict_table_autoinc_get(
20802 dict_table_t* table);
20807 dict_table_autoinc_decrement(
20809 dict_table_t* table);
20815 dict_table_autoinc_read(
20818 dict_table_t* table);
20824 dict_table_autoinc_peek(
20827 dict_table_t* table);
20833 dict_table_autoinc_update(
20836 dict_table_t* table,
20837 ib_longlong value);
20842 dict_table_add_to_cache(
20844 dict_table_t* table);
20849 dict_table_remove_from_cache(
20851 dict_table_t* table);
20856 dict_table_rename_in_cache(
20859 dict_table_t* table,
20860 const char* new_name,
20861 ulint rename_also_foreigns);
20869 dict_table_change_id_in_cache(
20871 dict_table_t* table,
20880 dict_foreign_add_to_cache(
20883 dict_foreign_t* foreign,
20884 ulint check_charsets);
20890 dict_table_referenced_by_foreign_key(
20894 dict_table_t* table);
20895 # 239 "./include/dict0dict.h"
20897 dict_create_foreign_constraints(
20901 const char* sql_string,
20919 dict_foreign_parse_drop_constraints(
20928 dict_table_t* table,
20931 const char*** constraints_to_drop);
20943 const char* table_name,
20950 dict_table_get_and_increment_handle_count(
20954 const char* table_name,
20960 dict_table_get_on_id(
20969 dict_table_get_on_id_low(
20978 dict_table_release(
20980 dict_table_t* table);
20985 dict_table_check_if_in_cache_low(
20988 const char* table_name);
20994 dict_table_get_low(
20997 const char* table_name);
21002 dict_table_get_index(
21005 dict_table_t* table,
21011 dict_table_get_index_noninline(
21014 dict_table_t* table,
21022 dict_table_t* table);
21027 dict_table_print_low(
21029 dict_table_t* table);
21034 dict_table_print_by_name(
21041 dict_print_info_on_foreign_keys(
21043 ulint create_table_format,
21049 dict_table_t* table);
21054 dict_print_info_on_foreign_key_in_create_format(
21058 dict_foreign_t* foreign,
21059 ulint add_newline);
21063 dict_index_name_print(
21067 const dict_index_t* index);
21072 dict_table_get_first_index(
21075 dict_table_t* table);
21080 dict_table_get_first_index_noninline(
21083 dict_table_t* table);
21088 dict_table_get_next_index(
21091 dict_index_t* index);
21096 dict_table_get_next_index_noninline(
21099 dict_index_t* index);
21105 dict_table_get_n_user_cols(
21109 dict_table_t* table);
21114 dict_table_get_n_sys_cols(
21118 dict_table_t* table);
21124 dict_table_get_n_cols(
21127 dict_table_t* table);
21132 dict_table_get_nth_col(
21135 dict_table_t* table,
21141 dict_table_get_nth_col_noninline(
21144 dict_table_t* table,
21150 dict_table_get_sys_col(
21153 dict_table_t* table,
21159 dict_table_get_sys_col_no(
21162 dict_table_t* table,
21169 dict_table_col_in_clustered_key(
21173 dict_table_t* table,
21179 dict_table_copy_types(
21182 dict_table_t* table);
21189 dict_index_find_on_id_low(
21197 dict_index_add_to_cache(
21200 dict_table_t* table,
21201 dict_index_t* index,
21209 dict_index_get_n_fields(
21212 dict_index_t* index);
21221 dict_index_get_n_unique(
21224 dict_index_t* index);
21232 dict_index_get_n_unique_in_tree(
21235 dict_index_t* index);
21244 dict_index_get_n_ordering_defined_by_user(
21247 dict_index_t* index);
21253 dict_index_get_nth_field(
21256 dict_index_t* index,
21262 dict_index_get_nth_type(
21265 dict_index_t* index,
21271 dict_index_get_nth_col_no(
21274 dict_index_t* index,
21280 dict_index_get_nth_col_pos(
21285 dict_index_t* index,
21291 dict_index_contains_col_or_prefix(
21295 dict_index_t* index,
21304 dict_index_get_nth_field_pos(
21309 dict_index_t* index,
21310 dict_index_t* index2,
21316 dict_table_get_nth_col_pos(
21320 dict_table_t* table,
21326 dict_index_get_sys_col_pos(
21330 dict_index_t* index,
21336 dict_index_add_col(
21338 dict_index_t* index,
21346 dict_index_copy_types(
21349 dict_index_t* index,
21355 dict_index_get_tree(
21358 dict_index_t* index);
21363 dict_field_get_order(
21365 dict_field_t* field);
21370 dict_field_get_col(
21372 dict_field_t* field);
21380 dict_index_t* index,
21390 dict_tree_t* tree);
21395 dict_tree_find_index(
21405 dict_tree_find_index_for_tuple(
21415 dict_is_mixed_table_rec(
21419 dict_table_t* table,
21425 dict_index_get_if_in_cache(
21434 dict_tree_check_search_tuple(
21443 dict_tree_build_node_ptr(
21458 dict_tree_copy_rec_order_prefix(
21464 unsigned char** buf,
21471 dict_tree_build_data_tuple(
21482 dict_tree_get_space(
21485 dict_tree_t* tree);
21490 dict_tree_set_space(
21498 dict_tree_get_page(
21501 dict_tree_t* tree);
21506 dict_tree_set_page(
21514 dict_tree_get_type(
21517 dict_tree_t* tree);
21522 dict_tree_get_lock(
21525 dict_tree_t* tree);
21532 dict_tree_get_space_reserve(
21536 dict_tree_t* tree);
21541 dict_index_calc_min_rec_len(
21543 dict_index_t* index);
21549 dict_update_statistics_low(
21551 dict_table_t* table,
21552 ulint has_dict_mutex);
21559 dict_update_statistics(
21561 dict_table_t* table);
21566 dict_mutex_enter_for_mysql(void);
21572 dict_mutex_exit_for_mysql(void);
21578 dict_tables_have_same_db(
21583 const char* name2);
21596 const char* string);
21599 dict_table_LRU_trim(
21601 dict_table_t* self);
21605 extern FILE* dict_foreign_err_file;
21606 extern ib_mutex_t dict_foreign_err_mutex;
21608 extern dict_sys_t* dict_sys;
21609 extern rw_lock_t dict_operation_lock;
21612 struct dict_sys_struct{
21626 hash_table_t* table_hash;
21628 hash_table_t* table_id_hash;
21630 hash_table_t* col_hash;
21631 struct { ulint count; dict_table_t * start; dict_table_t * end; }
21636 dict_table_t* sys_tables;
21637 dict_table_t* sys_columns;
21638 dict_table_t* sys_indexes;
21639 dict_table_t* sys_fields;
21643 # 1 "./include/dict0dict.ic" 1
21644 # 9 "./include/dict0dict.ic"
21645 # 1 "./include/dict0load.h" 1
21646 # 26 "./include/dict0load.h"
21648 dict_check_tablespaces_and_store_max_id(
21650 ulint in_crash_recovery);
21655 dict_get_first_table_name_in_db(
21681 dict_load_table_on_id(
21691 dict_load_sys_table(
21693 dict_table_t* table);
21702 dict_load_foreigns(
21705 const char* table_name,
21706 ulint check_charsets);
21718 # 1 "./include/dict0load.ic" 1
21719 # 98 "./include/dict0load.h" 2
21720 # 10 "./include/dict0dict.ic" 2
21721 # 1 "./include/trx0undo.h" 1
21722 # 15 "./include/trx0undo.h"
21723 # 1 "./include/trx0sys.h" 1
21724 # 16 "./include/trx0sys.h"
21725 # 1 "./include/mtr0log.h" 1
21726 # 20 "./include/mtr0log.h"
21730 unsigned char* ptr,
21732 unsigned char type,
21741 unsigned char* ptr,
21751 unsigned char* ptr,
21752 const unsigned char* str,
21760 mlog_write_initial_log_record(
21762 unsigned char* ptr,
21765 unsigned char type,
21771 mlog_write_initial_log_record_for_file_op(
21778 unsigned char* log_ptr,
21784 mlog_catenate_ulint(
21793 mlog_catenate_string(
21796 const unsigned char* str,
21802 mlog_catenate_ulint_compressed(
21810 mlog_catenate_dulint_compressed(
21831 unsigned char* ptr);
21838 mlog_write_initial_log_record_fast(
21841 unsigned char* ptr,
21843 unsigned char type,
21844 unsigned char* log_ptr,
21850 mlog_parse_initial_log_record(
21854 unsigned char* ptr,
21855 unsigned char* end_ptr,
21856 unsigned char* type,
21868 unsigned char* ptr,
21869 unsigned char* end_ptr,
21870 unsigned char* page);
21879 unsigned char* ptr,
21880 unsigned char* end_ptr,
21881 unsigned char* page);
21882 # 183 "./include/mtr0log.h"
21884 mlog_open_and_write_index(
21889 unsigned char* rec,
21890 dict_index_t* index,
21891 unsigned char type,
21903 unsigned char* ptr,
21904 unsigned char* end_ptr,
21907 dict_index_t** index);
21914 # 1 "./include/mtr0log.ic" 1
21915 # 15 "./include/mtr0log.ic"
21927 mtr->modifications = (1);
21929 if (mtr_get_log_mode(mtr) == 22) {
21931 return(((void *)0));
21934 mlog = &(mtr->log);
21936 return(dyn_array_open(mlog, size));
21946 unsigned char* ptr)
21952 mlog = &(mtr->log);
21954 dyn_array_close(mlog, ptr);
21961 mlog_catenate_ulint(
21968 unsigned char* ptr;
21970 if (mtr_get_log_mode(mtr) == 22) {
21975 mlog = &(mtr->log);
21981 ptr = dyn_array_push(mlog, type);
21983 if (type == ((unsigned char)4)) {
21984 mach_write_to_4(ptr, val);
21985 } else if (type == ((unsigned char)2)) {
21986 mach_write_to_2(ptr, val);
21989 mach_write_to_1(ptr, val);
21997 mlog_catenate_ulint_compressed(
22002 unsigned char* log_ptr;
22004 log_ptr = mlog_open(mtr, 10);
22007 if (log_ptr == ((void *)0)) {
22012 log_ptr += mach_write_compressed(log_ptr, val);
22014 mlog_close(mtr, log_ptr);
22021 mlog_catenate_dulint_compressed(
22026 unsigned char* log_ptr;
22028 log_ptr = mlog_open(mtr, 15);
22031 if (log_ptr == ((void *)0)) {
22036 log_ptr += mach_dulint_write_compressed(log_ptr, val);
22038 mlog_close(mtr, log_ptr);
22047 mlog_write_initial_log_record_fast(
22050 unsigned char* ptr,
22052 unsigned char type,
22053 unsigned char* log_ptr,
22056 buf_block_t* block;
22065 block = buf_block_align(ptr);
22067 space = buf_block_get_space(block);
22068 offset = buf_block_get_page_no(block);
22070 mach_write_to_1(log_ptr, type);
22072 log_ptr += mach_write_compressed(log_ptr, space);
22073 log_ptr += mach_write_compressed(log_ptr, offset);
22076 # 190 "./include/mtr0log.ic"
22084 mlog_write_initial_log_record_for_file_op(
22091 unsigned char* log_ptr,
22096 mach_write_to_1(log_ptr, type);
22100 log_ptr += mach_write_compressed(log_ptr, space_id);
22101 log_ptr += mach_write_compressed(log_ptr, page_no);
22107 # 215 "./include/mtr0log.h" 2
22108 # 17 "./include/trx0sys.h" 2
22115 # 1 "./include/fut0lst.h" 1
22116 # 22 "./include/fut0lst.h"
22117 typedef unsigned char flst_base_node_t;
22118 typedef unsigned char flst_node_t;
22119 # 34 "./include/fut0lst.h"
22124 flst_base_node_t* base,
22132 flst_base_node_t* base,
22141 flst_base_node_t* base,
22150 flst_base_node_t* base,
22151 flst_node_t* node1,
22152 flst_node_t* node2,
22158 flst_insert_before(
22160 flst_base_node_t* base,
22161 flst_node_t* node2,
22162 flst_node_t* node3,
22170 flst_base_node_t* base,
22171 flst_node_t* node2,
22181 flst_base_node_t* base,
22182 flst_node_t* node2,
22194 flst_base_node_t* base,
22195 flst_node_t* node2,
22205 flst_base_node_t* base,
22214 flst_base_node_t* base,
22223 flst_base_node_t* base,
22229 flst_get_next_addr(
22238 flst_get_prev_addr(
22249 fil_faddr_t* faddr,
22259 fil_faddr_t* faddr,
22268 flst_base_node_t* base,
22276 flst_base_node_t* base,
22281 # 1 "./include/fut0lst.ic" 1
22282 # 9 "./include/fut0lst.ic"
22283 # 1 "./include/fut0fut.h" 1
22284 # 20 "./include/fut0fut.h"
22297 # 1 "./include/fut0fut.ic" 1
22298 # 14 "./include/fut0fut.ic"
22310 unsigned char* ptr;
22316 ptr = buf_page_get_gen( space, addr.page, rw_latch, ((void *)0), 10, "./include/fut0fut.ic", 31, mtr) + addr.boffset;
22324 # 33 "./include/fut0fut.h" 2
22325 # 10 "./include/fut0lst.ic" 2
22326 # 31 "./include/fut0lst.ic"
22331 fil_faddr_t* faddr,
22339 mlog_write_ulint(faddr + 0, addr.page, ((unsigned char)4), mtr);
22340 mlog_write_ulint(faddr + 4, addr.boffset,
22341 ((unsigned char)2), mtr);
22351 fil_faddr_t* faddr,
22358 addr.page = mtr_read_ulint(faddr + 0, ((unsigned char)4), mtr);
22359 addr.boffset = mtr_read_ulint(faddr + 4, ((unsigned char)2),
22370 flst_base_node_t* base,
22375 mlog_write_ulint(base + 0, 0, ((unsigned char)4), mtr);
22376 flst_write_addr(base + 4, fil_addr_null, mtr);
22377 flst_write_addr(base + (4 + 6), fil_addr_null, mtr);
22387 flst_base_node_t* base,
22390 return(mtr_read_ulint(base + 0, ((unsigned char)4), mtr));
22400 flst_base_node_t* base,
22403 return(flst_read_addr(base + 4, mtr));
22413 flst_base_node_t* base,
22416 return(flst_read_addr(base + (4 + 6), mtr));
22423 flst_get_next_addr(
22429 return(flst_read_addr(node + 6, mtr));
22436 flst_get_prev_addr(
22442 return(flst_read_addr(node + 0, mtr));
22444 # 196 "./include/fut0lst.h" 2
22445 # 24 "./include/trx0sys.h" 2
22446 # 1 "./include/fsp0fsp.h" 1
22447 # 34 "./include/fsp0fsp.h"
22448 typedef unsigned char fseg_header_t;
22449 # 45 "./include/fsp0fsp.h"
22460 fsp_header_get_free_limit(
22470 fsp_header_get_tablespace_size(
22486 fsp_header_get_space_id(
22495 fsp_header_write_space_id(
22513 fsp_header_inc_size(
22539 fseg_create_general(
22551 ulint has_done_reservation,
22563 fseg_n_reserved_pages(
22566 fseg_header_t* header,
22575 fseg_alloc_free_page(
22579 fseg_header_t* seg_header,
22581 unsigned char direction,
22593 fseg_alloc_free_page_general(
22597 fseg_header_t* seg_header,
22599 unsigned char direction,
22604 ulint has_done_reservation,
22610 # 231 "./include/fsp0fsp.h"
22612 fsp_reserve_free_extents(
22629 fsp_get_available_space_in_free_extents(
22639 fseg_header_t* seg_header,
22665 fseg_header_t* header,
22675 fseg_free_step_not_header(
22679 fseg_header_t* header,
22694 fsp_parse_init_file_page(
22697 unsigned char* ptr,
22698 unsigned char* end_ptr,
22722 fseg_header_t* header,
22730 fseg_header_t* header,
22732 # 384 "./include/fsp0fsp.h"
22733 # 1 "./include/fsp0fsp.ic" 1
22734 # 11 "./include/fsp0fsp.ic"
22742 if (page_no % (2 * 8192) == 0) {
22749 # 385 "./include/fsp0fsp.h" 2
22750 # 25 "./include/trx0sys.h" 2
22751 # 1 "./include/read0types.h" 1
22752 # 12 "./include/read0types.h"
22753 typedef struct read_view_struct read_view_t;
22754 typedef struct cursor_view_struct cursor_view_t;
22755 # 26 "./include/trx0sys.h" 2
22762 extern char trx_sys_mysql_master_log_name[];
22763 extern ib_longlong trx_sys_mysql_master_log_pos;
22770 extern char trx_sys_mysql_bin_log_name[];
22771 extern ib_longlong trx_sys_mysql_bin_log_pos;
22774 extern trx_sys_t* trx_sys;
22777 extern trx_doublewrite_t* trx_doublewrite;
22778 extern ulint trx_doublewrite_must_reset_space_ids;
22779 extern ulint trx_sys_multiple_tablespace_format;
22786 trx_sys_create_doublewrite_buf(void);
22787 # 66 "./include/trx0sys.h"
22789 trx_sys_doublewrite_init_or_restore_pages(
22791 ulint restore_corrupt_pages);
22797 trx_sys_mark_upgraded_to_multiple_tablespaces(void);
22803 trx_doublewrite_page_inside(
22822 trx_sys_init_at_db_start(void);
22828 trx_sys_create(void);
22834 trx_sys_create_extra_rseg(
22841 trx_sysf_rseg_find_free(
22850 trx_sys_get_nth_rseg(
22860 trx_sys_set_nth_rseg(
22879 trx_sysf_rseg_get_space(
22882 trx_sysf_t* sys_header,
22890 trx_sysf_rseg_get_page_no(
22894 trx_sysf_t* sys_header,
22902 trx_sysf_rseg_set_space(
22904 trx_sysf_t* sys_header,
22913 trx_sysf_rseg_set_page_no(
22915 trx_sysf_t* sys_header,
22924 trx_sys_get_new_trx_id(void);
22931 trx_sys_get_new_trx_no(void);
22942 unsigned char* ptr,
22953 unsigned char* ptr);
22969 trx_list_get_min_trx_id(void);
22996 trx_sys_update_mysql_binlog_offset(
22998 const char* file_name,
22999 ib_longlong offset,
23008 trx_sys_print_mysql_binlog_offset(void);
23009 # 303 "./include/trx0sys.h"
23011 trx_sys_print_mysql_master_log_pos(void);
23012 # 403 "./include/trx0sys.h"
23013 struct trx_doublewrite_struct{
23021 unsigned char* write_buf;
23025 unsigned char* write_buf_unaligned;
23033 struct trx_sys_struct{
23037 struct { ulint count; trx_t * start; trx_t * end; } trx_list;
23041 struct { ulint count; trx_t * start; trx_t * end; } mysql_trx_list;
23044 struct { ulint count; trx_rseg_t * start; trx_rseg_t * end; } rseg_list;
23046 trx_rseg_t* latest_rseg;
23049 trx_rseg_t* rseg_array[256];
23052 ulint rseg_history_len;
23056 struct { ulint count; read_view_t * start; read_view_t * end; } view_list;
23067 # 1 "./include/trx0sys.ic" 1
23068 # 9 "./include/trx0sys.ic"
23069 # 1 "./include/srv0srv.h" 1
23070 # 19 "./include/srv0srv.h"
23071 extern const char* srv_main_thread_op_info;
23075 extern os_event_t srv_lock_timeout_thread_event;
23082 extern ulint srv_slow_log;
23085 extern ulint srv_lower_case_table_names;
23088 extern ib_mutex_t srv_monitor_file_mutex;
23090 extern FILE* srv_monitor_file;
23094 extern ib_mutex_t srv_dict_tmpfile_mutex;
23096 extern FILE* srv_dict_tmpfile;
23100 extern ib_mutex_t srv_misc_tmpfile_mutex;
23102 extern FILE* srv_misc_tmpfile;
23106 extern char* srv_data_home;
23111 extern ulint srv_file_per_table;
23112 extern ulint srv_locks_unsafe_for_binlog;
23114 extern ulint srv_n_data_files;
23115 extern char** srv_data_file_names;
23116 extern ulint* srv_data_file_sizes;
23117 extern ulint* srv_data_file_is_raw_partition;
23119 extern ulint srv_auto_extend_last_data_file;
23120 extern ulint srv_last_file_size_max;
23121 extern ulong srv_auto_extend_increment;
23123 extern ulint srv_created_new_raw;
23128 extern char** srv_log_group_home_dirs;
23130 extern ulint srv_n_log_groups;
23131 extern ulint srv_n_log_files;
23132 extern ulint srv_log_file_size;
23133 extern ulint srv_log_buffer_size;
23134 extern ulong srv_flush_log_at_trx_commit;
23135 extern ulong srv_show_locks_held;
23136 extern ulong srv_show_verbose_locks;
23138 extern unsigned char srv_latin1_ordering[256];
23140 extern ulint srv_pool_size;
23141 extern ulint srv_awe_window_size;
23142 extern ulint srv_mem_pool_size;
23143 extern ulint srv_lock_table_size;
23145 extern ulint srv_thread_concurrency_timer_based;
23147 extern ulint srv_n_file_io_threads;
23148 extern ulint srv_n_read_io_threads;
23149 extern ulint srv_n_write_io_threads;
23157 extern ulint srv_lock_wait_timeout;
23159 extern char* srv_file_flush_method_str;
23160 extern ulint srv_unix_file_flush_method;
23161 extern ulint srv_win_file_flush_method;
23163 extern ulint srv_max_n_open_files;
23165 extern ulint srv_max_dirty_pages_pct;
23167 extern ulint srv_force_recovery;
23168 extern ulong srv_thread_concurrency;
23169 extern ulong srv_commit_concurrency;
23171 extern ulint srv_max_n_threads;
23173 extern lint srv_conc_n_threads;
23175 extern ulint srv_fast_shutdown;
23182 extern ulint srv_innodb_status;
23184 extern ulint srv_use_doublewrite_buf;
23185 extern ulint srv_use_checksums;
23187 extern ulint srv_set_thread_priorities;
23188 extern int srv_query_thread_priority;
23190 extern ulong srv_max_buf_pool_modified_pct;
23191 extern ulong srv_max_purge_lag;
23192 extern ulint srv_use_awe;
23193 extern ulint srv_use_adaptive_hash_indexes;
23195 extern ulint srv_io_capacity;
23196 extern long long srv_ibuf_max_size;
23197 extern ulint srv_ibuf_active_contract;
23198 extern ulint srv_ibuf_accel_rate;
23199 extern ulint srv_flush_neighbor_pages;
23200 extern ulint srv_enable_unsafe_group_commit;
23201 extern uint srv_read_ahead;
23202 extern ulint srv_adaptive_checkpoint;
23204 extern ulint srv_extra_rsegments;
23206 extern ulint srv_dict_size_limit;
23208 extern volatile ulint srv_io_pattern;
23209 extern ulong srv_io_pattern_trace;
23210 extern ulong srv_io_pattern_trace_running;
23211 extern ulong srv_io_pattern_size_limit;
23214 extern ulint srv_n_rows_inserted;
23215 extern ulint srv_n_rows_updated;
23216 extern ulint srv_n_rows_deleted;
23217 extern ulint srv_n_rows_read;
23219 extern ulint srv_print_innodb_monitor;
23220 extern ulint srv_print_innodb_lock_monitor;
23221 extern ulint srv_print_innodb_tablespace_monitor;
23222 extern ulint srv_print_verbose_log;
23223 extern ulint srv_print_innodb_table_monitor;
23225 extern ulint srv_lock_timeout_and_monitor_active;
23226 extern ulint srv_error_monitor_active;
23228 extern ulong srv_n_spin_wait_rounds;
23229 extern ulong srv_n_free_tickets_to_enter;
23230 extern ulong srv_thread_sleep_delay;
23231 extern ulint srv_spin_wait_delay;
23232 extern ulint srv_priority_boost;
23234 extern ulint srv_pool_size;
23235 extern ulint srv_mem_pool_size;
23236 extern ulint srv_lock_table_size;
23238 extern ulint srv_sim_disk_wait_pct;
23239 extern ulint srv_sim_disk_wait_len;
23240 extern ulint srv_sim_disk_wait_by_yield;
23241 extern ulint srv_sim_disk_wait_by_wait;
23243 extern ulint srv_measure_contention;
23244 extern ulint srv_measure_by_spin;
23246 extern ulint srv_print_thread_releases;
23247 extern ulint srv_print_lock_waits;
23248 extern ulint srv_print_buf_io;
23249 extern ulint srv_print_log_io;
23250 extern ulint srv_print_parsed_sql;
23251 extern ulint srv_print_latch_waits;
23253 extern ulint srv_test_nocache;
23254 extern ulint srv_test_cache_evict;
23256 extern ulint srv_test_extra_mutexes;
23257 extern ulint srv_test_sync;
23258 extern ulint srv_test_n_threads;
23259 extern ulint srv_test_n_loops;
23260 extern ulint srv_test_n_free_rnds;
23261 extern ulint srv_test_n_reserved_rnds;
23262 extern ulint srv_test_n_mutexes;
23263 extern ulint srv_test_array_size;
23265 extern ulint srv_activity_count;
23266 extern ulint srv_fatal_semaphore_wait_threshold;
23267 extern ulint srv_dml_needed_delay;
23269 extern ib_mutex_t* kernel_mutex_temp;
23270 # 227 "./include/srv0srv.h"
23271 extern const char* srv_io_thread_op_info[];
23272 extern const char* srv_io_thread_function[];
23275 extern ulint srv_log_write_requests;
23278 extern ulint srv_log_writes;
23281 extern ulint srv_os_log_written;
23284 extern ulint srv_os_log_pending_writes;
23288 extern ulint srv_log_waits;
23291 extern ulint srv_data_read;
23294 extern ulint srv_data_written;
23298 extern ulint srv_dblwr_writes;
23302 extern ulint srv_dblwr_pages_written;
23305 extern ulint srv_buf_pool_write_requests;
23310 extern ulint srv_buf_pool_wait_free;
23314 extern ulint srv_buf_pool_flushed;
23318 extern ulint srv_buf_pool_reads;
23321 extern ulint srv_read_ahead_seq;
23324 extern ulint srv_read_ahead_rnd;
23330 extern char srv_use_legacy_cardinality_algorithm;
23333 typedef struct export_var_struct export_struc;
23335 extern export_struc export_vars;
23337 typedef struct srv_sys_struct srv_sys_t;
23340 extern srv_sys_t* srv_sys;
23341 # 338 "./include/srv0srv.h"
23363 srv_general_init(void);
23369 srv_get_n_threads(void);
23375 srv_get_thread_type(void);
23382 srv_set_io_thread_op_info(
23392 srv_release_threads(
23411 # 415 "./include/srv0srv.h"
23413 srv_active_wake_master_thread(void);
23419 srv_wake_master_thread(void);
23426 srv_conc_enter_innodb(
23435 srv_conc_force_enter_innodb(
23444 srv_conc_force_exit_innodb(
23452 srv_conc_exit_innodb(
23455 # 466 "./include/srv0srv.h"
23457 srv_suspend_mysql_thread(
23466 srv_release_mysql_thread_if_suspended(
23479 srv_lock_timeout_and_monitor_thread(
23493 srv_error_monitor_thread(
23502 srv_printf_innodb_monitor(
23514 srv_export_innodb_status(void);
23515 # 546 "./include/srv0srv.h"
23516 typedef struct srv_slot_struct srv_slot_t;
23519 typedef srv_slot_t srv_table_t;
23522 struct export_var_struct{
23523 ulint innodb_data_pending_reads;
23524 ulint innodb_data_pending_writes;
23525 ulint innodb_data_pending_fsyncs;
23526 ulint innodb_data_fsyncs;
23527 ulint innodb_data_read;
23528 ulint innodb_data_writes;
23529 ulint innodb_data_written;
23530 ulint innodb_data_reads;
23531 ulint innodb_dict_tables;
23532 ulint innodb_buffer_pool_pages_total;
23533 ulint innodb_buffer_pool_pages_data;
23534 ulint innodb_buffer_pool_pages_dirty;
23535 ulint innodb_buffer_pool_pages_misc;
23536 ulint innodb_buffer_pool_pages_free;
23540 ulint innodb_buffer_pool_read_requests;
23541 ulint innodb_buffer_pool_reads;
23542 ulint innodb_buffer_pool_wait_free;
23543 ulint innodb_buffer_pool_pages_flushed;
23544 ulint innodb_buffer_pool_write_requests;
23545 ulint innodb_buffer_pool_read_ahead_seq;
23546 ulint innodb_buffer_pool_read_ahead_rnd;
23547 ulint innodb_dblwr_pages_written;
23548 ulint innodb_dblwr_writes;
23549 ulint innodb_log_waits;
23550 ulint innodb_log_write_requests;
23551 ulint innodb_log_writes;
23552 ulint innodb_os_log_written;
23553 ulint innodb_os_log_fsyncs;
23554 ulint innodb_os_log_pending_writes;
23555 ulint innodb_os_log_pending_fsyncs;
23556 ulint innodb_page_size;
23557 ulint innodb_pages_created;
23558 ulint innodb_pages_read;
23559 ulint innodb_pages_written;
23560 ulint innodb_row_lock_waits;
23561 ulint innodb_row_lock_current_waits;
23562 ib_longlong innodb_row_lock_time;
23563 ulint innodb_row_lock_time_avg;
23564 ulint innodb_row_lock_time_max;
23565 ulint innodb_rows_read;
23566 ulint innodb_rows_inserted;
23567 ulint innodb_rows_updated;
23568 ulint innodb_rows_deleted;
23572 struct srv_sys_struct{
23573 os_event_t operational;
23576 srv_table_t* threads;
23577 struct { ulint count; que_thr_t * start; que_thr_t * end; }
23579 dict_index_t* dummy_ind1;
23581 dict_index_t* dummy_ind2;
23585 extern ulint srv_n_threads_active[];
23586 # 10 "./include/trx0sys.ic" 2
23587 # 1 "./include/trx0trx.h" 1
23588 # 15 "./include/trx0trx.h"
23589 # 1 "./include/usr0types.h" 1
23590 # 12 "./include/usr0types.h"
23591 typedef struct sess_struct sess_t;
23592 # 16 "./include/trx0trx.h" 2
23597 # 1 "./include/trx0xa.h" 1
23598 # 18 "./include/trx0xa.h"
23605 typedef struct xid_t XID;
23606 # 21 "./include/trx0trx.h" 2
23608 extern ulint trx_n_mysql_transactions;
23614 trx_reset_new_rec_lock_info(
23623 trx_register_new_rec_lock(
23626 dict_index_t* index);
23632 trx_new_rec_locks_contain(
23637 dict_index_t* index);
23642 trx_search_latch_release_if_reserved(
23648 trx_set_detailed_error(
23657 trx_set_detailed_error_from_file(
23665 trx_get_error_info(
23681 trx_allocate_for_mysql(void);
23688 trx_allocate_for_background(void);
23702 trx_free_for_mysql(
23709 trx_free_for_background(
23720 trx_lists_init_at_db_start(void);
23749 trx_start_if_not_started(
23757 trx_start_if_not_started_low(
23764 trx_start_if_not_started_noninline(
23771 trx_commit_off_kernel(
23780 trx_cleanup_at_db_startup(
23787 trx_commit_for_mysql(
23795 trx_prepare_for_mysql(
23804 trx_recover_for_mysql(
23813 trx_get_trx_by_xid(
23822 trx_commit_complete_for_mysql(
23830 trx_mark_sql_stat_end(
23839 trx_assign_read_view(
23864 que_thr_t* receiver_thr,
23867 trx_savept_t* savept,
23869 que_thr_t** next_thr);
23870 # 293 "./include/trx0trx.h"
23875 que_thr_t** next_thr);
23892 trx_sig_start_handle(
23895 que_thr_t** next_thr);
23896 # 328 "./include/trx0trx.h"
23898 trx_end_signal_handling(
23905 commit_node_create(
23929 uint max_query_len);
23937 trx_is_interrupted(
23947 struct trx_sig_struct{
23953 que_thr_t* receiver;
23956 trx_savept_t savept;
23957 struct { trx_sig_t * prev; trx_sig_t * next; }
23960 struct { trx_sig_t * prev; trx_sig_t * next; }
23975 const char* op_info;
23986 ulint isolation_level;
23987 ulint check_foreigns;
23991 ulint check_unique_secondary;
24010 ulint flush_log_later;
24014 ulint must_flush_log_later;
24021 ulint dict_operation;
24034 char** mysql_query_str;
24037 const char* mysql_log_file_name;
24042 ib_longlong mysql_log_offset;
24045 const char* mysql_master_log_file_name;
24052 ib_longlong mysql_master_log_pos;
24059 char* repl_wait_binlog_name;
24067 ib_longlong repl_wait_binlog_pos;
24070 os_thread_id_t mysql_thread_id;
24072 ulint mysql_process_no;
24076 ulint n_mysql_tables_in_use;
24079 ulint mysql_n_tables_locked;
24083 ulint dict_operation_lock_mode;
24087 ulint has_search_latch;
24090 ulint search_latch_timeout;
24091 # 532 "./include/trx0trx.h"
24092 ulint declared_to_be_inside_innodb;
24097 ulint n_tickets_to_enter_innodb;
24103 ib_lock_t* auto_inc_lock;
24106 dict_index_t* new_rec_locks[2];
24107 # 558 "./include/trx0trx.h"
24108 struct { trx_t * prev; trx_t * next; }
24110 struct { trx_t * prev; trx_t * next; }
24131 ulint n_active_thrs;
24132 ulint handling_signals;
24134 que_t* graph_before_signal_handling;
24141 struct { ulint count; trx_sig_t * start; trx_sig_t * end; }
24144 struct { ulint count; trx_sig_t * start; trx_sig_t * end; }
24151 ib_lock_t* wait_lock;
24155 ulint was_chosen_as_deadlock_victim;
24161 time_t wait_started;
24162 struct { ulint count; que_thr_t * start; que_thr_t * end; }
24166 ulint deadlock_mark;
24169 mem_heap_t* lock_heap;
24171 struct { ulint count; ib_lock_t * start; ib_lock_t * end; }
24174 mem_heap_t* global_read_view_heap;
24177 read_view_t* global_read_view;
24180 read_view_t* read_view;
24187 struct { ulint count; trx_named_savept_t * start; trx_named_savept_t * end; }
24191 ib_mutex_t undo_mutex;
24199 trx_savept_t last_sql_stat_start;
24207 trx_undo_t* insert_undo;
24209 trx_undo_t* update_undo;
24213 ulint pages_undone;
24215 trx_undo_arr_t* undo_no_arr;
24219 char detailed_error[256];
24223 ib_longlong io_read;
24224 ulint io_reads_wait_timer;
24225 ib_longlong lock_que_wait_ustarted;
24226 ulint lock_que_wait_timer;
24227 ulint innodb_que_wait_timer;
24228 ulint distinct_page_access;
24230 unsigned char* distinct_page_access_hash;
24233 # 759 "./include/trx0trx.h"
24234 struct commit_node_struct{
24235 que_common_t common;
24245 # 1 "./include/trx0trx.ic" 1
24246 # 11 "./include/trx0trx.ic"
24249 trx_start_if_not_started(
24255 if (trx->conc_state == 1) {
24257 trx_start(trx, ((ulint)(-1)));
24266 trx_start_if_not_started_low(
24272 if (trx->conc_state == 1) {
24274 trx_start_low(trx, ((ulint)(-1)));
24282 trx_reset_new_rec_lock_info(
24286 trx->new_rec_locks[0] = ((void *)0);
24287 trx->new_rec_locks[1] = ((void *)0);
24296 trx_register_new_rec_lock(
24299 dict_index_t* index)
24302 if (trx->new_rec_locks[0] == ((void *)0)) {
24303 trx->new_rec_locks[0] = index;
24308 if (trx->new_rec_locks[0] == index) {
24313 if (trx->new_rec_locks[1] != ((void *)0)) {
24318 trx->new_rec_locks[1] = index;
24325 trx_new_rec_locks_contain(
24330 dict_index_t* index)
24332 return(trx->new_rec_locks[0] == index
24333 || trx->new_rec_locks[1] == index);
24335 # 771 "./include/trx0trx.h" 2
24336 # 11 "./include/trx0sys.ic" 2
24340 typedef unsigned char trx_sysf_rseg_t;
24341 # 30 "./include/trx0sys.ic"
24343 trx_sys_flush_max_trx_id(void);
24356 if ((space == 0) && (page_no == 5)) {
24368 trx_sys_get_nth_rseg(
24380 return(sys->rseg_array[n]);
24387 trx_sys_set_nth_rseg(
24396 sys->rseg_array[n] = rseg;
24408 trx_sysf_t* header;
24412 header = 38 + buf_page_get_gen( 0, 5, 2, ((void *)0), 10, "./include/trx0sys.ic", 101, mtr);
24427 trx_sysf_rseg_get_space(
24430 trx_sysf_t* sys_header,
24440 return(mtr_read_ulint(sys_header + (8 + 10)
24442 + 0, ((unsigned char)4), mtr));
24450 trx_sysf_rseg_get_page_no(
24454 trx_sysf_t* sys_header,
24464 return(mtr_read_ulint(sys_header + (8 + 10)
24466 + 4, ((unsigned char)4), mtr));
24474 trx_sysf_rseg_set_space(
24476 trx_sysf_t* sys_header,
24487 mlog_write_ulint(sys_header + (8 + 10)
24491 ((unsigned char)4), mtr);
24499 trx_sysf_rseg_set_page_no(
24501 trx_sysf_t* sys_header,
24513 mlog_write_ulint(sys_header + (8 + 10)
24517 ((unsigned char)4), mtr);
24528 unsigned char* ptr,
24533 mach_write_to_6(ptr, id);
24545 unsigned char* ptr)
24549 return(mach_read_from_6(ptr));
24567 trx = (trx_sys->trx_list).start;
24569 while (trx != ((void *)0)) {
24570 if (0 == ut_dulint_cmp(trx_id, trx->id)) {
24575 trx = (((trx)->trx_list).next);
24578 return(((void *)0));
24588 trx_list_get_min_trx_id(void)
24599 trx = (trx_sys->trx_list).end;
24601 if (trx == ((void *)0)) {
24603 return(trx_sys->max_trx_id);
24624 if (ut_dulint_cmp(trx_id, trx_list_get_min_trx_id()) < 0) {
24629 if (ut_dulint_cmp(trx_id, trx_sys->max_trx_id) >= 0) {
24639 trx = trx_get_on_id(trx_id);
24640 if (trx && (trx->conc_state == 2 ||
24641 trx->conc_state == 4)) {
24653 trx_sys_get_new_trx_id(void)
24658 # 358 "./include/trx0sys.ic"
24659 if (ut_dulint_get_low(trx_sys->max_trx_id)
24662 trx_sys_flush_max_trx_id();
24665 id = trx_sys->max_trx_id;
24667 { 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; }};
24676 trx_sys_get_new_trx_no(void)
24684 return(trx_sys_get_new_trx_id());
24686 # 458 "./include/trx0sys.h" 2
24687 # 16 "./include/trx0undo.h" 2
24695 trx_undo_build_roll_ptr(
24706 trx_undo_decode_roll_ptr(
24717 trx_undo_roll_ptr_is_insert(
24727 trx_write_roll_ptr(
24729 unsigned char* ptr,
24740 unsigned char* ptr);
24755 trx_undo_page_get_s_latched(
24766 trx_undo_page_get_prev_rec(
24769 trx_undo_rec_t* rec,
24777 trx_undo_page_get_next_rec(
24780 trx_undo_rec_t* rec,
24788 trx_undo_page_get_last_rec(
24791 ib_page_t* undo_page,
24799 trx_undo_page_get_first_rec(
24802 ib_page_t* undo_page,
24809 trx_undo_get_prev_rec(
24813 trx_undo_rec_t* rec,
24821 trx_undo_get_next_rec(
24825 trx_undo_rec_t* rec,
24833 trx_undo_get_first_rec(
24860 trx_undo_truncate_end(
24871 trx_undo_truncate_start(
24878 # 215 "./include/trx0undo.h"
24880 trx_undo_lists_init(
24890 trx_undo_assign_undo(
24903 trx_undo_set_state_at_finish(
24915 trx_undo_set_state_at_prepare(
24929 trx_undo_update_cleanup(
24932 ib_page_t* undo_page,
24941 trx_undo_insert_cleanup(
24948 trx_undo_parse_page_init(
24951 unsigned char* ptr,
24952 unsigned char* end_ptr,
24959 trx_undo_parse_page_header(
24963 unsigned char* ptr,
24964 unsigned char* end_ptr,
24971 trx_undo_parse_discard_latest(
24974 unsigned char* ptr,
24975 unsigned char* end_ptr,
24978 # 335 "./include/trx0undo.h"
24979 struct trx_undo_struct{
24999 ulint dict_operation;
25010 ulint last_page_no;
25024 dulint top_undo_no;
25025 ib_page_t* guess_page;
25028 struct { trx_undo_t * prev; trx_undo_t * next; } undo_list;
25032 # 500 "./include/trx0undo.h"
25033 # 1 "./include/trx0undo.ic" 1
25034 # 13 "./include/trx0undo.ic"
25037 trx_undo_build_roll_ptr(
25048 return(ut_dulint_create(is_insert * 128 * 256 * 256
25049 + rseg_id * 256 * 256
25050 + (page_no / 256) / 256,
25051 (page_no % (256 * 256)) * 256 * 256
25059 trx_undo_decode_roll_ptr(
25073 high = ut_dulint_get_high(roll_ptr);
25074 low = ut_dulint_get_low(roll_ptr);
25076 *offset = low % (256 * 256);
25078 *is_insert = high / (256 * 256 * 128);
25079 *rseg_id = (high / (256 * 256)) % 128;
25081 *page_no = (high % (256 * 256)) * 256 * 256
25082 + (low / 256) / 256;
25089 trx_undo_roll_ptr_is_insert(
25099 high = ut_dulint_get_high(roll_ptr);
25101 return(high / (256 * 256 * 128));
25110 trx_write_roll_ptr(
25112 unsigned char* ptr,
25117 mach_write_to_7(ptr, roll_ptr);
25129 unsigned char* ptr)
25133 return(mach_read_from_7(ptr));
25149 page = buf_page_get_gen( space, page_no, 2, ((void *)0), 10, "./include/trx0undo.ic", 127, mtr);
25162 trx_undo_page_get_s_latched(
25171 page = buf_page_get_gen( space, page_no, 1, ((void *)0), 10, "./include/trx0undo.ic", 149, mtr);
25185 trx_undo_page_get_start(
25188 ib_page_t* undo_page,
25194 if (page_no == buf_frame_get_page_no(undo_page)) {
25196 start = mach_read_from_2(offset + undo_page
25199 start = 38 + (6 + (2 * 6));
25210 trx_undo_page_get_end(
25213 ib_page_t* undo_page,
25217 trx_ulogf_t* log_hdr;
25220 if (page_no == buf_frame_get_page_no(undo_page)) {
25222 log_hdr = undo_page + offset;
25224 end = mach_read_from_2(log_hdr + 30);
25227 end = mach_read_from_2(undo_page + 38
25231 end = mach_read_from_2(undo_page + 38
25243 trx_undo_page_get_prev_rec(
25246 trx_undo_rec_t* rec,
25250 ib_page_t* undo_page;
25253 undo_page = buf_frame_align(rec);
25255 start = trx_undo_page_get_start(undo_page, page_no, offset);
25257 if (start + undo_page == rec) {
25259 return(((void *)0));
25262 return(undo_page + mach_read_from_2(rec - 2));
25270 trx_undo_page_get_next_rec(
25273 trx_undo_rec_t* rec,
25277 ib_page_t* undo_page;
25281 undo_page = buf_frame_align(rec);
25283 end = trx_undo_page_get_end(undo_page, page_no, offset);
25285 next = mach_read_from_2(rec);
25289 return(((void *)0));
25292 return(undo_page + next);
25300 trx_undo_page_get_last_rec(
25303 ib_page_t* undo_page,
25310 start = trx_undo_page_get_start(undo_page, page_no, offset);
25311 end = trx_undo_page_get_end(undo_page, page_no, offset);
25313 if (start == end) {
25315 return(((void *)0));
25318 return(undo_page + mach_read_from_2(undo_page + end - 2));
25326 trx_undo_page_get_first_rec(
25329 ib_page_t* undo_page,
25336 start = trx_undo_page_get_start(undo_page, page_no, offset);
25337 end = trx_undo_page_get_end(undo_page, page_no, offset);
25339 if (start == end) {
25341 return(((void *)0));
25344 return(undo_page + start);
25346 # 501 "./include/trx0undo.h" 2
25347 # 11 "./include/dict0dict.ic" 2
25360 return(&col->type);
25362 # 52 "./include/dict0dict.ic"
25378 dict_col_get_clust_pos(
25384 return(col->clust_pos);
25391 dict_table_get_first_index(
25394 dict_table_t* table)
25399 return((table->indexes).start);
25406 dict_table_get_next_index(
25409 dict_index_t* index)
25414 return((((index)->indexes).next));
25422 dict_table_get_n_user_cols(
25426 dict_table_t* table)
25431 return(table->n_cols - 4);
25438 dict_table_get_n_sys_cols(
25442 dict_table_t* table __attribute__((unused)))
25456 dict_table_get_n_cols(
25459 dict_table_t* table)
25464 return(table->n_cols);
25471 dict_table_get_nth_col(
25474 dict_table_t* table,
25481 return((table->cols) + pos);
25488 dict_table_get_sys_col(
25491 dict_table_t* table,
25500 col = dict_table_get_nth_col(table, table->n_cols
25512 dict_table_get_sys_col_no(
25515 dict_table_t* table,
25522 return(table->n_cols - 4 + sys);
25530 dict_index_get_n_fields(
25533 dict_index_t* index)
25539 return(index->n_fields);
25549 dict_index_get_n_unique(
25552 dict_index_t* index)
25559 return(index->n_uniq);
25568 dict_index_get_n_unique_in_tree(
25571 dict_index_t* index)
25578 if (index->type & 1) {
25580 return(dict_index_get_n_unique(index));
25583 return(dict_index_get_n_fields(index));
25593 dict_index_get_n_ordering_defined_by_user(
25596 dict_index_t* index)
25599 return(index->n_user_defined_cols);
25606 dict_index_get_nth_field(
25609 dict_index_t* index,
25616 return((index->fields) + pos);
25623 dict_index_get_sys_col_pos(
25627 dict_index_t* index,
25636 col = dict_table_get_sys_col(index->table, type);
25638 if (index->type & 1) {
25640 return(col->clust_pos);
25643 return(dict_index_get_nth_col_pos(index,
25644 dict_table_get_sys_col_no(index->table, type)));
25651 dict_index_get_tree(
25654 dict_index_t* index)
25659 return(index->tree);
25666 dict_field_get_order(
25668 dict_field_t* field)
25672 return(field->order);
25679 dict_field_get_col(
25681 dict_field_t* field)
25685 return(field->col);
25692 dict_index_get_nth_type(
25695 dict_index_t* index,
25698 return(dict_col_get_type(dict_field_get_col(
25699 dict_index_get_nth_field(index, pos))));
25706 dict_index_get_nth_col_no(
25709 dict_index_t* index,
25712 return(dict_col_get_no(dict_field_get_col(
25713 dict_index_get_nth_field(index, pos))));
25720 dict_tree_get_space(
25728 return(tree->space);
25735 dict_tree_set_space(
25743 tree->space = space;
25750 dict_tree_get_page(
25758 return(tree->page);
25765 dict_tree_set_page(
25780 dict_tree_get_type(
25788 return(tree->type);
25795 dict_tree_get_lock(
25803 return(&(tree->lock));
25812 dict_tree_get_space_reserve(
25822 return((2 * 8192) / 16);
25829 dict_table_check_if_in_cache_low(
25832 const char* table_name)
25834 dict_table_t* table;
25843 table_fold = ut_fold_string(table_name);
25845 { (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); } }};
25850 { ; 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; }};
25851 { ; ((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); }};
25862 dict_table_get_low(
25865 const char* table_name)
25867 dict_table_t* table;
25874 table = dict_table_check_if_in_cache_low(table_name);
25876 if (table == ((void *)0)) {
25877 table = dict_load_table(table_name);
25887 dict_table_get_on_id_low(
25893 dict_table_t* table;
25902 fold = ut_fold_dulint(table_id);
25904 { (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); } }};
25906 if (table == ((void *)0)) {
25907 table = dict_load_table_on_id(table_id);
25910 if (table != ((void *)0)) {
25914 { ; 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; }};
25915 { ; ((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); }};
25929 dict_table_release(
25931 dict_table_t* table)
25933 mutex_enter_func((&(dict_sys->mutex)), "./include/dict0dict.ic", 622);
25937 mutex_exit(&(dict_sys->mutex));
25944 dict_table_get_index(
25947 dict_table_t* table,
25950 dict_index_t* index = ((void *)0);
25952 index = dict_table_get_first_index(table);
25954 while (index != ((void *)0)) {
25955 if (ut_strcmp(name, index->name) == 0) {
25960 index = dict_table_get_next_index(index);
25965 # 987 "./include/dict0dict.h" 2
25966 # 15 "./include/btr0btr.h" 2
25968 # 1 "./include/page0cur.h" 1
25969 # 15 "./include/page0cur.h"
25970 # 1 "./include/page0page.h" 1
25971 # 19 "./include/page0page.h"
25972 # 1 "./include/rem0rec.h" 1
25973 # 47 "./include/rem0rec.h"
25997 rec_get_n_fields_old(
26010 dict_index_t* index);
26073 rec_get_info_and_status_bits(
26083 rec_set_info_and_status_bits(
26093 rec_get_deleted_flag(
26102 rec_set_deleted_flag(
26111 rec_get_node_ptr_flag(
26140 rec_get_1byte_offs_flag(
26149 rec_get_offsets_func(
26153 dict_index_t* index,
26174 dict_index_t* index,
26175 const ulint* offsets);
26181 rec_offs_make_valid(
26184 dict_index_t* index,
26192 rec_get_nth_field_old(
26205 rec_get_nth_field_size(
26219 const ulint* offsets,
26231 const ulint* offsets);
26236 rec_offs_nth_extern(
26239 const ulint* offsets,
26245 rec_offs_nth_sql_null(
26248 const ulint* offsets,
26257 const ulint* offsets,
26265 rec_offs_any_extern(
26268 const ulint* offsets);
26273 rec_set_nth_field_extern_bit(
26276 dict_index_t* index,
26286 rec_set_field_extern_bits(
26289 dict_index_t* index,
26293 # 374 "./include/rem0rec.h"
26299 const ulint* offsets,
26310 rec_get_data_size_old(
26321 const ulint* offsets);
26329 rec_offs_data_size(
26332 const ulint* offsets);
26339 rec_offs_extra_size(
26342 const ulint* offsets);
26350 const ulint* offsets);
26359 const ulint* offsets);
26368 const ulint* offsets);
26378 const ulint* offsets);
26384 rec_copy_prefix_to_buf(
26388 dict_index_t* index,
26390 unsigned char** buf,
26401 const ulint* offsets,
26413 rec_convert_dtuple_to_rec(
26417 unsigned char* buf,
26419 dict_index_t* index,
26426 rec_get_converted_extra_size(
26431 __attribute__((const));
26437 rec_get_converted_size(
26440 dict_index_t* index,
26447 rec_copy_prefix_to_dtuple(
26451 dict_index_t* index,
26462 const ulint* offsets);
26479 const ulint* offsets);
26488 dict_index_t* index);
26489 # 582 "./include/rem0rec.h"
26490 # 1 "./include/rem0rec.ic" 1
26491 # 134 "./include/rem0rec.ic"
26493 rec_set_nth_field_null_bit(
26503 rec_set_nth_field_sql_null(
26512 rec_set_nth_field_extern_bit_old(
26524 rec_set_nth_field_extern_bit_new(
26527 dict_index_t* index,
26538 rec_get_bit_field_1(
26547 return((mach_read_from_1(rec - offs) & mask) >> shift);
26554 rec_set_bit_field_1(
26569 mach_write_to_1(rec - offs,
26570 (mach_read_from_1(rec - offs) & ~mask)
26578 rec_get_bit_field_2(
26587 return((mach_read_from_2(rec - offs) & mask) >> shift);
26594 rec_set_bit_field_2(
26611 mach_write_to_2(rec - offs,
26612 (mach_read_from_2(rec - offs) & ~mask)
26633 field_value = mach_read_from_2(rec - 2);
26636 # 288 "./include/rem0rec.ic"
26643 if (field_value == 0) {
26648 return(ut_align_offset(rec + field_value, (2 * 8192)));
26652 return(field_value);
26680 field_value = (ulint)((lint)next
26681 - (lint)ut_align_offset(rec, (2 * 8192)));
26682 field_value &= 0xFFFFUL;
26687 mach_write_to_2(rec - 2, field_value);
26689 mach_write_to_2(rec - 2, next);
26698 rec_get_n_fields_old(
26707 ret = rec_get_bit_field_2(rec, 4,
26720 rec_set_n_fields_old(
26729 rec_set_bit_field_2(rec, n_fields, 4,
26746 ret = rec_get_bit_field_1(rec, 3,
26762 dict_index_t* index)
26766 if (__builtin_expect(!index->table->comp, (0))) {
26767 return(rec_get_n_fields_old(rec));
26769 switch (rec_get_status(rec)) {
26771 return(dict_index_get_n_fields(index));
26773 return(dict_index_get_n_unique_in_tree(index) + 1);
26778 do { ut_dbg_assertion_failed(0, "./include/rem0rec.ic", (ulint) 429); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0);
26779 return(((ulint)(-1)));
26798 ret = rec_get_bit_field_1(rec,
26819 rec_set_bit_field_1(rec, n_owned,
26838 ret = rec_get_bit_field_1(rec,
26859 rec_set_bit_field_1(rec, bits,
26876 rec_set_bit_field_1(rec, bits, 3,
26885 rec_get_info_and_status_bits(
26896 if (__builtin_expect(comp, ((ulint) 1 << 31))) {
26897 bits = rec_get_info_bits(rec, (1)) | rec_get_status(rec);
26899 bits = rec_get_info_bits(rec, (0));
26909 rec_set_info_and_status_bits(
26920 rec_set_status(rec, bits & 0x7UL);
26924 rec_set_info_bits(rec, comp, bits & ~0x7UL);
26931 rec_get_deleted_flag(
26937 if (__builtin_expect(comp, ((ulint) 1 << 31))) {
26938 return(__builtin_expect(rec_get_bit_field_1(rec, 5, 0x20UL, 0), (0)));
26942 return(__builtin_expect(rec_get_bit_field_1(rec, 6, 0x20UL, 0), (0)));
26952 rec_set_deleted_flag(
26960 val = rec_get_info_bits(rec, comp);
26968 rec_set_info_bits(rec, comp, val);
26975 rec_get_node_ptr_flag(
26980 return(1 == rec_get_status(rec));
26998 ret = rec_get_bit_field_2(rec,
27018 rec_set_bit_field_2(rec, heap_no,
27028 rec_get_1byte_offs_flag(
27037 return(rec_get_bit_field_1(rec, 3, 0x1UL,
27045 rec_set_1byte_offs_flag(
27055 rec_set_bit_field_1(rec, flag, 3, 0x1UL,
27065 rec_1_get_field_end_info(
27075 return(mach_read_from_1(rec - (6 + n + 1)));
27084 rec_2_get_field_end_info(
27094 return(mach_read_from_2(rec - (6 + 2 * n + 2)));
27096 # 764 "./include/rem0rec.ic"
27099 rec_offs_get_n_alloc(
27102 const ulint* offsets)
27106 n_alloc = offsets[0];
27116 rec_offs_set_n_alloc(
27123 offsets[0] = n_alloc;
27133 const ulint* offsets)
27137 n_fields = offsets[1];
27153 dict_index_t* index,
27154 const ulint* offsets)
27156 ulint i = rec_offs_n_fields(offsets);
27157 ulint last = ((ulint)(-2));
27158 ulint comp = *(offsets + 2) & ((ulint) 1 << 31);
27163 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);
27167 ulint max_n_fields;
27169 max_n_fields = ut_max(
27170 dict_index_get_n_fields(index),
27171 dict_index_get_n_unique_in_tree(index) + 1);
27173 switch (rec_get_status(rec)) {
27178 dict_index_get_n_unique_in_tree(index) + 1;
27185 do { ut_dbg_assertion_failed(0, "./include/rem0rec.ic", (ulint) 852); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0);
27189 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);
27190 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);
27193 ulint curr = (offsets + 2)[1 + i] & (((ulint) 1 << 30) - 1);
27194 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);
27204 rec_offs_make_valid(
27206 rec_t* rec __attribute__((unused)),
27208 dict_index_t* index __attribute__((unused)),
27210 ulint* offsets __attribute__((unused)))
27229 const ulint* offsets,
27234 unsigned char* field;
27241 if (__builtin_expect(n == 0, (0))) {
27244 field = rec + ((offsets + 2)[n] & (((ulint) 1 << 30) - 1));
27247 length = (offsets + 2)[1 + n];
27249 if (length & ((ulint) 1 << 31)) {
27250 length = 0xFFFFFFFF;
27252 length &= (((ulint) 1 << 30) - 1);
27253 length -= field - rec;
27268 const ulint* offsets)
27271 return(*(offsets + 2) & ((ulint) 1 << 31));
27278 rec_offs_nth_extern(
27281 const ulint* offsets,
27286 return(__builtin_expect((offsets + 2)[1 + n] & ((ulint) 1 << 30), (0)));
27294 rec_offs_nth_sql_null(
27297 const ulint* offsets,
27302 return(__builtin_expect((offsets + 2)[1 + n] & ((ulint) 1 << 31), (0)));
27313 const ulint* offsets,
27319 return((offsets + 2)[1 + n] & (((ulint) 1 << 30) - 1));
27321 return(((offsets + 2)[1 + n] - (offsets + 2)[n])
27322 & (((ulint) 1 << 30) - 1));
27330 rec_offs_any_extern(
27333 const ulint* offsets)
27336 for (i = rec_offs_n_fields(offsets); i--; ) {
27337 if (rec_offs_nth_extern(offsets, i)) {
27348 rec_set_nth_field_extern_bit(
27351 dict_index_t* index,
27358 if (__builtin_expect(index->table->comp, (1))) {
27359 rec_set_nth_field_extern_bit_new(rec, index, i, val, mtr);
27361 rec_set_nth_field_extern_bit_old(rec, i, val, mtr);
27373 rec_1_get_prev_field_end_info(
27383 return(mach_read_from_1(rec - (6 + n)));
27392 rec_2_get_prev_field_end_info(
27402 return(mach_read_from_2(rec - (6 + 2 * n)));
27410 rec_1_set_field_end_info(
27419 mach_write_to_1(rec - (6 + n + 1), info);
27427 rec_2_set_field_end_info(
27436 mach_write_to_2(rec - (6 + 2 * n + 2), info);
27444 rec_1_get_field_start_offs(
27458 return(rec_1_get_prev_field_end_info(rec, n)
27467 rec_2_get_field_start_offs(
27481 return(rec_2_get_prev_field_end_info(rec, n)
27482 & ~(0x8000UL | 0x4000UL));
27492 rec_get_field_start_offs(
27506 if (rec_get_1byte_offs_flag(rec)) {
27508 return(rec_1_get_field_start_offs(rec, n));
27511 return(rec_2_get_field_start_offs(rec, n));
27520 rec_get_nth_field_size(
27529 os = rec_get_field_start_offs(rec, n);
27530 next_os = rec_get_field_start_offs(rec, n + 1);
27534 return(next_os - os);
27548 const ulint* offsets,
27554 unsigned char* data2;
27560 if (__builtin_expect(len == 0xFFFFFFFF, (0))) {
27561 if (!rec_offs_nth_sql_null(offsets, n)) {
27562 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);
27563 rec_set_nth_field_sql_null(rec, n);
27569 data2 = rec_get_nth_field(rec, offsets, n, &len2);
27570 if (len2 == 0xFFFFFFFF) {
27572 rec_set_nth_field_null_bit(rec, n, (0));
27578 ut_memcpy(data2, data, len);
27588 rec_get_data_size_old(
27595 return(rec_get_field_start_offs(rec, rec_get_n_fields_old(rec)));
27602 rec_offs_set_n_fields(
27612 offsets[1] = n_fields;
27622 rec_offs_data_size(
27625 const ulint* offsets)
27630 size = (offsets + 2)[rec_offs_n_fields(offsets)]
27631 & (((ulint) 1 << 30) - 1);
27642 rec_offs_extra_size(
27645 const ulint* offsets)
27649 size = *(offsets + 2) & ~((ulint) 1 << 31);
27661 const ulint* offsets)
27663 return(rec_offs_data_size(offsets) + rec_offs_extra_size(offsets));
27674 const ulint* offsets)
27676 return(rec + rec_offs_data_size(offsets));
27687 const ulint* offsets)
27689 return(rec - rec_offs_extra_size(offsets));
27701 const ulint* offsets)
27710 extra_len = rec_offs_extra_size(offsets);
27711 data_len = rec_offs_data_size(offsets);
27713 ut_memcpy(buf, rec - extra_len, extra_len + data_len);
27715 return((unsigned char*)buf + extra_len);
27723 rec_get_converted_extra_size(
27729 if (data_size <= 0x7FUL) {
27731 return(6 + n_fields);
27734 return(6 + 2 * n_fields);
27742 rec_get_converted_size_new(
27745 dict_index_t* index,
27752 rec_get_converted_size(
27755 dict_index_t* index,
27772 if (__builtin_expect(index->table->comp, (1))) {
27773 return(rec_get_converted_size_new(index, dtuple));
27776 data_size = dtuple_get_data_size(dtuple);
27778 extra_size = rec_get_converted_extra_size(
27779 data_size, dtuple_get_n_fields(dtuple));
27781 return(data_size + extra_size);
27793 const ulint* offsets,
27802 unsigned char* data;
27805 ulint n_fields_rec;
27811 n_fields_rec = rec_offs_n_fields(offsets);
27815 if (n_fields > n_fields_rec) {
27816 n_fields = n_fields_rec;
27819 if (n_fields == n_fields_rec) {
27823 fold = ut_fold_dulint(tree_id);
27825 for (i = 0; i < n_fields; i++) {
27826 data = rec_get_nth_field(rec, offsets, i, &len);
27828 if (len != 0xFFFFFFFF) {
27829 fold = ut_fold_ulint_pair(fold,
27830 ut_fold_binary(data, len));
27835 data = rec_get_nth_field(rec, offsets, i, &len);
27837 if (len != 0xFFFFFFFF) {
27838 if (len > n_bytes) {
27842 fold = ut_fold_ulint_pair(fold,
27843 ut_fold_binary(data, len));
27849 # 583 "./include/rem0rec.h" 2
27850 # 20 "./include/page0page.h" 2
27851 # 33 "./include/page0page.h"
27852 typedef unsigned char page_header_t;
27853 # 114 "./include/page0page.h"
27854 typedef unsigned char page_dir_slot_t;
27855 typedef page_dir_slot_t page_dir_t;
27856 # 137 "./include/page0page.h"
27859 page_get_max_trx_id(
27866 page_set_max_trx_id(
27875 page_update_max_trx_id(
27883 page_header_get_field(
27891 page_header_set_field(
27900 page_header_get_ptr(
27909 page_header_set_ptr(
27913 unsigned char* ptr);
27919 page_header_reset_last_insert(
27927 page_get_infimum_rec(
27935 page_get_supremum_rec(
27944 page_get_middle_rec(
27956 page_cmp_dtuple_rec_with_match(
27966 const ulint* offsets,
27967 ulint* matched_fields,
27970 ulint* matched_bytes);
27985 page_get_n_recs_noninline(
27994 page_rec_get_n_recs_before(
28002 page_dir_get_n_heap(
28010 page_dir_set_n_heap(
28018 page_dir_get_n_slots(
28026 page_dir_set_n_slots(
28035 page_dir_get_nth_slot(
28052 page_dir_slot_get_rec(
28055 page_dir_slot_t* slot);
28060 page_dir_slot_set_rec(
28062 page_dir_slot_t* slot,
28068 page_dir_slot_get_n_owned(
28071 page_dir_slot_t* slot);
28076 page_dir_slot_set_n_owned(
28078 page_dir_slot_t* slot,
28088 page_dir_calc_reserved_space(
28095 page_dir_find_owner_slot(
28148 page_rec_is_user_rec_low(
28156 page_rec_is_supremum_low(
28164 page_rec_is_infimum_low(
28173 page_rec_is_user_rec(
28181 page_rec_is_supremum(
28189 page_rec_is_infimum(
28197 page_rec_find_owner_rec(
28207 page_rec_write_index_page_no(
28218 page_get_max_insert_size(
28228 page_get_max_insert_size_after_reorganize(
28237 page_get_free_space_of_empty(
28241 __attribute__((const));
28247 page_get_data_size(
28253 page_get_data_size_noninline(
28267 dict_index_t* index,
28279 const ulint* offsets);
28287 buf_frame_t* frame,
28296 page_copy_rec_list_end_no_locks(
28298 ib_page_t* new_page,
28301 dict_index_t* index,
28309 page_copy_rec_list_end(
28311 ib_page_t* new_page,
28314 dict_index_t* index,
28322 page_copy_rec_list_start(
28324 ib_page_t* new_page,
28327 dict_index_t* index,
28334 page_delete_rec_list_end(
28338 dict_index_t* index,
28350 page_delete_rec_list_start(
28354 dict_index_t* index,
28361 page_move_rec_list_end(
28363 ib_page_t* new_page,
28366 dict_index_t* index,
28373 page_move_rec_list_start(
28375 ib_page_t* new_page,
28378 dict_index_t* index,
28384 page_dir_split_slot(
28395 page_dir_balance_slot(
28403 page_parse_delete_rec_list(
28406 unsigned char type,
28410 unsigned char* ptr,
28411 unsigned char* end_ptr,
28412 dict_index_t* index,
28422 unsigned char* ptr,
28423 unsigned char* end_ptr,
28435 const ulint* offsets);
28453 dict_index_t* index,
28470 dict_index_t* index,
28485 const ulint* offsets);
28501 page_simple_validate(
28513 dict_index_t* index);
28519 page_find_rec_with_heap_no(
28531 # 1 "./include/page0page.ic" 1
28532 # 10 "./include/page0page.ic"
28533 # 1 "./include/rem0cmp.h" 1
28534 # 21 "./include/rem0cmp.h"
28536 cmp_types_are_equal(
28542 ulint check_charsets);
28553 unsigned char* data1,
28556 unsigned char* data2,
28564 cmp_data_data_slow(
28569 unsigned char* data1,
28572 unsigned char* data2,
28585 dfield_t* dfield2);
28586 # 81 "./include/rem0cmp.h"
28588 cmp_dtuple_rec_with_match(
28600 const ulint* offsets,
28601 ulint* matched_fields,
28604 ulint* matched_bytes);
28619 const ulint* offsets);
28625 cmp_dtuple_is_prefix_of_rec(
28630 const ulint* offsets);
28637 cmp_rec_rec_with_match(
28644 const ulint* offsets1,
28645 const ulint* offsets2,
28646 dict_index_t* index,
28647 ulint* matched_fields,
28651 ulint* matched_bytes);
28667 const ulint* offsets1,
28668 const ulint* offsets2,
28669 dict_index_t* index);
28673 # 1 "./include/rem0cmp.ic" 1
28674 # 12 "./include/rem0cmp.ic"
28682 unsigned char* data1,
28685 unsigned char* data2,
28689 return(cmp_data_data_slow(cur_type, data1, len1, data2, len2));
28706 return(cmp_data_data(dfield_get_type(dfield1),
28707 dfield_get_data(dfield1), dfield_get_len(dfield1),
28708 dfield_get_data(dfield2), dfield_get_len(dfield2)));
28723 const ulint* offsets1,
28724 const ulint* offsets2,
28725 dict_index_t* index)
28730 return(cmp_rec_rec_with_match(rec1, rec2, offsets1, offsets2, index,
28731 &match_f, &match_b));
28733 # 168 "./include/rem0cmp.h" 2
28734 # 11 "./include/page0page.ic" 2
28735 # 20 "./include/page0page.ic"
28738 page_get_max_trx_id(
28744 return(mach_read_from_8(page + 38 + 18));
28752 page_update_max_trx_id(
28759 if (ut_dulint_cmp(page_get_max_trx_id(page), trx_id) < 0) {
28761 page_set_max_trx_id(page, trx_id);
28769 page_header_get_field(
28777 return(mach_read_from_2(page + 38 + field));
28784 page_header_set_field(
28795 mach_write_to_2(page + 38 + field, val);
28802 page_header_get_ptr(
28815 offs = page_header_get_field(page, field);
28821 return(((void *)0));
28824 return(page + offs);
28831 page_header_set_ptr(
28835 unsigned char* ptr)
28844 if (ptr == ((void *)0)) {
28852 page_header_set_field(page, field, offs);
28860 page_header_reset_last_insert(
28867 mlog_write_ulint(page + 38 + 10, 0,
28868 ((unsigned char)2), mtr);
28881 return(__builtin_expect(page_header_get_field(page, 4) & 0x8000, 0x8000));
28894 return(page_is_comp(ut_align_down((rec_t*) rec, (2 * 8192))));
28901 page_get_infimum_rec(
28908 if (page_is_comp(page)) {
28909 return(page + ((38 + 36 + 2 * 10) + 5));
28911 return(page + ((38 + 36 + 2 * 10) + 1 + 6));
28919 page_get_supremum_rec(
28926 if (page_is_comp(page)) {
28927 return(page + ((38 + 36 + 2 * 10) + 2 * 5 + 8));
28929 return(page + ((38 + 36 + 2 * 10) + 2 + 2 * 6 + 8));
28937 page_rec_is_user_rec_low(
28943 # 245 "./include/page0page.ic"
28946 return(__builtin_expect(offset != ((38 + 36 + 2 * 10) + 2 * 5 + 8), (1))
28947 && __builtin_expect(offset != ((38 + 36 + 2 * 10) + 5), (1))
28948 && __builtin_expect(offset != ((38 + 36 + 2 * 10) + 1 + 6), (1))
28949 && __builtin_expect(offset != ((38 + 36 + 2 * 10) + 2 + 2 * 6 + 8), (1)));
28956 page_rec_is_supremum_low(
28964 return(__builtin_expect(offset == ((38 + 36 + 2 * 10) + 2 * 5 + 8), (0))
28965 || __builtin_expect(offset == ((38 + 36 + 2 * 10) + 2 + 2 * 6 + 8), (0)));
28972 page_rec_is_infimum_low(
28980 return(__builtin_expect(offset == ((38 + 36 + 2 * 10) + 5), (0))
28981 || __builtin_expect(offset == ((38 + 36 + 2 * 10) + 1 + 6), (0)));
28988 page_rec_is_user_rec(
28993 return(page_rec_is_user_rec_low(
28994 ut_align_offset(rec, (2 * 8192))));
29001 page_rec_is_supremum(
29006 return(page_rec_is_supremum_low(
29007 ut_align_offset(rec, (2 * 8192))));
29014 page_rec_is_infimum(
29019 return(page_rec_is_infimum_low(
29020 ut_align_offset(rec, (2 * 8192))));
29031 page_cmp_dtuple_rec_with_match(
29041 const ulint* offsets,
29042 ulint* matched_fields,
29045 ulint* matched_bytes)
29056 rec_offset = ut_align_offset(rec, (2 * 8192));
29058 if (__builtin_expect(rec_offset == ((38 + 36 + 2 * 10) + 5), (0))
29059 || __builtin_expect(rec_offset == ((38 + 36 + 2 * 10) + 1 + 6), (0))) {
29062 if (__builtin_expect(rec_offset == ((38 + 36 + 2 * 10) + 2 * 5 + 8), (0))
29063 || __builtin_expect(rec_offset == ((38 + 36 + 2 * 10) + 2 + 2 * 6 + 8), (0))) {
29067 return(cmp_dtuple_rec_with_match(dtuple, rec, offsets,
29082 return(page_header_get_field(page, 16));
29089 page_dir_get_n_slots(
29094 return(page_header_get_field(page, 0));
29100 page_dir_set_n_slots(
29106 page_header_set_field(page, 0, n_slots);
29113 page_dir_get_n_heap(
29118 return(page_header_get_field(page, 4) & 0x7fff);
29125 page_dir_set_n_heap(
29132 page_header_set_field(page, 4, n_heap | (0x8000 &
29133 page_header_get_field(page, 4)));
29140 page_dir_get_nth_slot(
29148 return(page + (2 * 8192) - 8
29163 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);
29165 page = buf_frame_align(rec);
29167 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);
29168 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);
29177 page_dir_slot_get_rec(
29180 page_dir_slot_t* slot)
29182 return(buf_frame_align(slot) + mach_read_from_2(slot));
29189 page_dir_slot_set_rec(
29191 page_dir_slot_t* slot,
29196 mach_write_to_2(slot, ut_align_offset(rec, (2 * 8192)));
29203 page_dir_slot_get_n_owned(
29206 page_dir_slot_t* slot)
29208 rec_t* rec = page_dir_slot_get_rec(slot);
29209 return(rec_get_n_owned(rec, page_rec_is_comp(rec)));
29216 page_dir_slot_set_n_owned(
29218 page_dir_slot_t* slot,
29222 rec_t* rec = page_dir_slot_get_rec(slot);
29223 rec_set_n_owned(rec, page_rec_is_comp(rec), n);
29232 page_dir_calc_reserved_space(
29236 return((2 * n_recs + 4 - 1)
29254 page = ut_align_down(rec, (2 * 8192));
29256 offs = rec_get_next_offs(rec, page_is_comp(page));
29258 if (__builtin_expect(offs >= (2 * 8192), (0))) {
29260 "InnoDB: Next record offset is nonsensical %lu in record at offset %lu\n"
29261 "InnoDB: rec address %p, first buffer frame %p\n"
29262 "InnoDB: buffer pool high end %p, buf fix count %lu\n",
29263 (ulong)offs, (ulong)(rec - page),
29264 rec, buf_pool->frame_zero,
29265 buf_pool->high_end,
29266 (ulong)buf_block_align(rec)->buf_fix_count);
29267 buf_page_print(page);
29269 do { ut_dbg_assertion_failed(0, "./include/page0page.ic", (ulint) 570); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0);
29272 if (__builtin_expect(offs == 0, (0))) {
29274 return(((void *)0));
29277 return(page + offs);
29295 page = ut_align_down(rec, (2 * 8192));
29300 offs = (ulint) (next - page);
29305 rec_set_next_offs(rec, page_is_comp(page), offs);
29318 page_dir_slot_t* slot;
29321 rec_t* prev_rec = ((void *)0);
29326 page = ut_align_down(rec, (2 * 8192));
29330 slot_no = page_dir_find_owner_slot(rec);
29332 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);
29334 slot = page_dir_get_nth_slot(page, slot_no - 1);
29336 rec2 = page_dir_slot_get_rec(slot);
29338 while (rec != rec2) {
29340 rec2 = page_rec_get_next(rec2);
29343 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);
29352 page_rec_find_owner_rec(
29359 if (page_rec_is_comp(rec)) {
29360 while (rec_get_n_owned(rec, (1)) == 0) {
29361 rec = page_rec_get_next(rec);
29364 while (rec_get_n_owned(rec, (0)) == 0) {
29365 rec = page_rec_get_next(rec);
29377 page_get_data_size(
29384 ret = (ulint)(page_header_get_field(page, 2)
29385 - (page_is_comp(page)
29386 ? (((38 + 36 + 2 * 10) + 2 * 5 + 8) + 8)
29387 : (((38 + 36 + 2 * 10) + 2 + 2 * 6 + 8) + 9))
29388 - page_header_get_field(page, 8));
29399 page_get_free_space_of_empty(
29404 if (__builtin_expect(comp, (1))) {
29405 return((ulint)((2 * 8192)
29406 - (((38 + 36 + 2 * 10) + 2 * 5 + 8) + 8)
29411 return((ulint)((2 * 8192)
29412 - (((38 + 36 + 2 * 10) + 2 + 2 * 6 + 8) + 9)
29416 # 725 "./include/page0page.ic"
29419 page_get_max_insert_size(
29428 if (page_is_comp(page)) {
29429 occupied = page_header_get_field(page, 2)
29430 - (((38 + 36 + 2 * 10) + 2 * 5 + 8) + 8) + page_dir_calc_reserved_space(
29431 n_recs + page_dir_get_n_heap(page) - 2);
29433 free_space = page_get_free_space_of_empty((1));
29435 occupied = page_header_get_field(page, 2)
29436 - (((38 + 36 + 2 * 10) + 2 + 2 * 6 + 8) + 9) + page_dir_calc_reserved_space(
29437 n_recs + page_dir_get_n_heap(page) - 2);
29439 free_space = page_get_free_space_of_empty((0));
29446 if (occupied > free_space) {
29451 return(free_space - occupied);
29459 page_get_max_insert_size_after_reorganize(
29468 occupied = page_get_data_size(page)
29469 + page_dir_calc_reserved_space(n_recs + page_get_n_recs(page));
29471 free_space = page_get_free_space_of_empty(page_is_comp(page));
29473 if (occupied > free_space) {
29478 return(free_space - occupied);
29489 const ulint* offsets)
29496 free = page_header_get_ptr(page, 6);
29498 page_rec_set_next(rec, free);
29499 page_header_set_ptr(page, 6, rec);
29500 # 819 "./include/page0page.ic"
29501 garbage = page_header_get_field(page, 8);
29503 page_header_set_field(page, 8,
29504 garbage + rec_offs_size(offsets));
29506 # 812 "./include/page0page.h" 2
29507 # 16 "./include/page0cur.h" 2
29508 # 46 "./include/page0cur.h"
29528 page_cur_set_before_first(
29537 page_cur_set_after_last(
29545 page_cur_is_before_first(
29548 const page_cur_t* cur);
29553 page_cur_is_after_last(
29556 const page_cur_t* cur);
29569 page_cur_invalidate(
29576 page_cur_move_to_next(
29583 page_cur_move_to_prev(
29592 page_cur_tuple_insert(
29596 page_cur_t* cursor,
29598 dict_index_t* index,
29606 page_cur_rec_insert(
29610 page_cur_t* cursor,
29612 dict_index_t* index,
29622 page_cur_insert_rec_low(
29626 page_cur_t* cursor,
29628 dict_index_t* index,
29637 page_copy_rec_list_end_to_created_page(
29639 ib_page_t* new_page,
29642 dict_index_t* index,
29649 page_cur_delete_rec(
29651 page_cur_t* cursor,
29652 dict_index_t* index,
29653 const ulint* offsets,
29663 dict_index_t* index,
29667 page_cur_t* cursor);
29672 page_cur_search_with_match(
29675 dict_index_t* index,
29679 ulint* iup_matched_fields,
29682 ulint* iup_matched_bytes,
29685 ulint* ilow_matched_fields,
29688 ulint* ilow_matched_bytes,
29691 page_cur_t* cursor);
29697 page_cur_open_on_rnd_user_rec(
29700 page_cur_t* cursor);
29705 page_cur_parse_insert_rec(
29709 unsigned char* ptr,
29710 unsigned char* end_ptr,
29711 dict_index_t* index,
29718 page_parse_copy_rec_list_to_created_page(
29721 unsigned char* ptr,
29722 unsigned char* end_ptr,
29723 dict_index_t* index,
29730 page_cur_parse_delete_rec(
29733 unsigned char* ptr,
29734 unsigned char* end_ptr,
29735 dict_index_t* index,
29741 struct page_cur_struct{
29742 unsigned char* rec;
29746 # 1 "./include/page0cur.ic" 1
29747 # 14 "./include/page0cur.ic"
29757 return(buf_frame_align(cur->rec));
29779 page_cur_set_before_first(
29784 cur->rec = page_get_infimum_rec(page);
29792 page_cur_set_after_last(
29797 cur->rec = page_get_supremum_rec(page);
29804 page_cur_is_before_first(
29807 const page_cur_t* cur)
29809 return(page_rec_is_infimum(cur->rec));
29816 page_cur_is_after_last(
29819 const page_cur_t* cur)
29821 return(page_rec_is_supremum(cur->rec));
29842 page_cur_invalidate(
29848 cur->rec = ((void *)0);
29855 page_cur_move_to_next(
29861 cur->rec = page_rec_get_next(cur->rec);
29868 page_cur_move_to_prev(
29874 cur->rec = page_rec_get_prev(cur->rec);
29885 dict_index_t* index,
29889 page_cur_t* cursor)
29891 ulint low_matched_fields = 0;
29892 ulint low_matched_bytes = 0;
29893 ulint up_matched_fields = 0;
29894 ulint up_matched_bytes = 0;
29898 page_cur_search_with_match(page, index, tuple, mode,
29899 &up_matched_fields,
29901 &low_matched_fields,
29902 &low_matched_bytes,
29904 return(low_matched_fields);
29913 page_cur_tuple_insert(
29917 page_cur_t* cursor,
29919 dict_index_t* index,
29922 return(page_cur_insert_rec_low(cursor, tuple, index, ((void *)0), ((void *)0), mtr));
29931 page_cur_rec_insert(
29935 page_cur_t* cursor,
29937 dict_index_t* index,
29941 return(page_cur_insert_rec_low(cursor, ((void *)0), index, rec,
29944 # 284 "./include/page0cur.h" 2
29945 # 17 "./include/btr0btr.h" 2
29946 # 51 "./include/btr0btr.h"
29967 btr_page_get_index_id(
29973 btr_page_get_index_id_noninline(
29981 btr_page_get_level_low(
29989 btr_page_get_level(
30017 btr_get_prev_user_rec(
30028 btr_get_next_user_rec(
30038 btr_leaf_page_release(
30047 btr_node_ptr_get_child_page_no(
30051 const ulint* offsets);
30070 btr_free_but_not_root(
30073 ulint root_page_no);
30081 ulint root_page_no,
30083 # 195 "./include/btr0btr.h"
30085 btr_root_raise_and_insert(
30098 btr_page_reorganize(
30101 dict_index_t* index,
30108 btr_page_get_split_rec_to_left(
30112 rec_t** split_rec);
30120 btr_page_get_split_rec_to_right(
30124 rec_t** split_rec);
30125 # 246 "./include/btr0btr.h"
30127 btr_page_split_and_insert(
30142 btr_insert_on_non_leaf_level(
30152 btr_set_min_rec_mark(
30161 btr_node_ptr_delete(
30170 btr_check_node_ptr(
30176 # 306 "./include/btr0btr.h"
30201 btr_parse_set_min_rec_mark(
30204 unsigned char* ptr,
30205 unsigned char* end_ptr,
30213 btr_parse_page_reorganize(
30216 unsigned char* ptr,
30217 unsigned char* end_ptr,
30218 dict_index_t* index,
30228 dict_index_t* index,
30240 ulint hint_page_no,
30241 unsigned char file_direction,
30268 # 419 "./include/btr0btr.h"
30270 btr_index_rec_validate(
30274 dict_index_t* index,
30275 ulint dump_on_error);
30292 # 1 "./include/btr0btr.ic" 1
30293 # 17 "./include/btr0btr.ic"
30305 page = buf_page_get_gen( space, page_no, mode, ((void *)0), 10, "./include/btr0btr.ic", 28, mtr);
30319 btr_page_set_index_id(
30325 mlog_write_dulint(page + 38 + 28, id, mtr);
30332 btr_page_get_index_id(
30337 return(mach_read_from_8(page + 38 + 28));
30344 btr_page_get_level_low(
30353 level = mach_read_from_2(page + 38 + 26);
30364 btr_page_get_level(
30368 mtr_t* mtr __attribute__((unused)))
30372 return(btr_page_get_level_low(page));
30379 btr_page_set_level(
30388 mlog_write_ulint(page + 38 + 26, level,
30389 ((unsigned char)2), mtr);
30400 mtr_t* mtr __attribute__((unused)))
30408 return(mach_read_from_4(page + 12));
30423 mlog_write_ulint(page + 12, next, ((unsigned char)4), mtr);
30434 mtr_t* mtr __attribute__((unused)))
30438 return(mach_read_from_4(page + 8));
30453 mlog_write_ulint(page + 8, prev, ((unsigned char)4), mtr);
30460 btr_node_ptr_get_child_page_no(
30464 const ulint* offsets)
30466 unsigned char* field;
30473 field = rec_get_nth_field(rec, offsets,
30474 rec_offs_n_fields(offsets) - 1, &len);
30478 page_no = mach_read_from_4(field);
30480 if (__builtin_expect(page_no == 0, (0))) {
30482 "InnoDB: a nonsensical page number 0 in a node ptr record at offset %lu\n",
30483 (ulong) ut_align_offset(rec, (2 * 8192)));
30484 buf_page_print(buf_frame_align(rec));
30494 btr_leaf_page_release(
30502 if (latch_mode == 1) {
30503 mtr_memo_release(mtr, buf_block_align(page),
30507 mtr_memo_release(mtr, buf_block_align(page),
30511 # 443 "./include/btr0btr.h" 2
30512 # 31 "buf/buf0buf.c" 2
30513 # 1 "./include/fil0fil.h" 1
30514 # 32 "buf/buf0buf.c" 2
30515 # 1 "./include/lock0lock.h" 1
30516 # 26 "./include/lock0lock.h"
30517 extern FILE* lock_latest_err_file;
30523 lock_get_size(void);
30538 lock_sec_rec_some_has_impl_off_kernel(
30543 dict_index_t* index,
30544 const ulint* offsets);
30550 lock_clust_rec_some_has_impl(
30555 dict_index_t* index,
30556 const ulint* offsets);
30563 lock_rec_inherit_to_gap(
30575 lock_move_reorganize_page(
30578 ib_page_t* new_page);
30584 lock_move_rec_list_end(
30586 ib_page_t* new_page,
30595 lock_move_rec_list_start(
30597 ib_page_t* new_page,
30607 lock_update_split_right(
30609 ib_page_t* right_page,
30610 ib_page_t* left_page);
30615 lock_update_merge_right(
30619 ib_page_t* left_page);
30620 # 138 "./include/lock0lock.h"
30622 lock_update_root_raise(
30624 ib_page_t* new_page,
30631 lock_update_copy_and_discard(
30633 ib_page_t* new_page,
30639 lock_update_split_left(
30641 ib_page_t* right_page,
30642 ib_page_t* left_page);
30647 lock_update_merge_left(
30649 ib_page_t* left_page,
30652 ib_page_t* right_page);
30659 lock_rec_reset_and_inherit_gap_locks(
30667 lock_update_discard(
30675 lock_update_insert(
30682 lock_update_delete(
30685 # 210 "./include/lock0lock.h"
30687 lock_rec_store_on_page_infimum(
30698 lock_rec_restore_from_page_infimum(
30708 lock_rec_expl_exist_on_page(
30722 lock_rec_insert_check_and_lock(
30729 dict_index_t* index,
30732 # 266 "./include/lock0lock.h"
30734 lock_clust_rec_modify_check_and_lock(
30741 dict_index_t* index,
30742 const ulint* offsets,
30749 lock_sec_rec_modify_check_and_lock(
30759 dict_index_t* index,
30766 lock_sec_rec_read_check_and_lock(
30775 dict_index_t* index,
30776 const ulint* offsets,
30783 # 324 "./include/lock0lock.h"
30785 lock_clust_rec_read_check_and_lock(
30794 dict_index_t* index,
30795 const ulint* offsets,
30802 # 352 "./include/lock0lock.h"
30804 lock_clust_rec_read_check_and_lock_alt(
30813 dict_index_t* index,
30824 lock_clust_rec_cons_read_sees(
30830 dict_index_t* index,
30831 const ulint* offsets,
30832 read_view_t* view);
30837 lock_sec_rec_cons_read_sees(
30838 # 396 "./include/lock0lock.h"
30841 dict_index_t* index,
30842 read_view_t* view);
30854 dict_table_t* table,
30864 dict_table_t* table);
30890 lock_table_unlock_auto_inc(
30898 lock_release_off_kernel(
30906 lock_cancel_waiting_and_release(
30914 lock_reset_all_on_table(
30916 dict_table_t* table);
30942 lock_get_src_table(
30950 dict_table_t* dest,
30958 lock_is_table_exclusive(
30962 dict_table_t* table,
30968 lock_check_trx_id_sanity(
30973 dict_index_t* index,
30974 const ulint* offsets,
30975 ulint has_kernel_mutex);
30981 lock_rec_queue_validate(
30985 dict_index_t* index,
30986 const ulint* offsets);
31007 lock_print_info_summary(
31014 lock_print_info_all_transactions(
31021 lock_table_queue_validate(
31024 dict_table_t* table);
31029 lock_rec_validate_page(
31038 lock_validate(void);
31043 extern lock_sys_t* lock_sys;
31044 # 659 "./include/lock0lock.h"
31045 typedef struct lock_op_struct lock_op_t;
31046 struct lock_op_struct{
31047 dict_table_t* table;
31055 struct lock_sys_struct{
31056 hash_table_t* rec_hash;
31060 extern lock_sys_t* lock_sys;
31064 # 1 "./include/lock0lock.ic" 1
31065 # 12 "./include/lock0lock.ic"
31066 # 1 "./include/row0row.h" 1
31067 # 24 "./include/row0row.h"
31070 row_get_rec_trx_id(
31074 dict_index_t* index,
31075 const ulint* offsets);
31080 row_get_rec_roll_ptr(
31084 dict_index_t* index,
31085 const ulint* offsets);
31090 row_set_rec_trx_id(
31093 dict_index_t* index,
31094 const ulint* offsets,
31100 row_set_rec_roll_ptr(
31103 dict_index_t* index,
31104 const ulint* offsets,
31111 row_build_index_entry(
31116 dict_index_t* index,
31133 dict_index_t* index,
31141 const ulint* offsets,
31150 row_rec_to_index_entry(
31158 dict_index_t* index,
31181 dict_index_t* index,
31196 row_build_row_ref_in_tuple(
31200 dict_index_t* index,
31213 row_build_row_ref_from_row(
31218 dict_table_t* table,
31227 row_build_row_ref_fast(
31237 const ulint* offsets);
31243 row_search_on_row_ref(
31249 dict_table_t* table,
31262 dict_index_t* index,
31263 dict_index_t** clust_index,
31269 row_search_index_entry(
31272 dict_index_t* index,
31278 # 249 "./include/row0row.h"
31279 # 1 "./include/row0row.ic" 1
31280 # 17 "./include/row0row.ic"
31282 row_get_rec_sys_field(
31287 dict_index_t* index,
31288 const ulint* offsets);
31294 row_set_rec_sys_field(
31299 dict_index_t* index,
31300 const ulint* offsets,
31307 row_get_rec_trx_id(
31311 dict_index_t* index,
31312 const ulint* offsets)
31319 offset = index->trx_id_offset;
31322 return(trx_read_trx_id(rec + offset));
31324 return(row_get_rec_sys_field(1,
31325 rec, index, offsets));
31333 row_get_rec_roll_ptr(
31337 dict_index_t* index,
31338 const ulint* offsets)
31345 offset = index->trx_id_offset;
31348 return(trx_read_roll_ptr(rec + offset + 6));
31350 return(row_get_rec_sys_field(2,
31351 rec, index, offsets));
31359 row_set_rec_trx_id(
31362 dict_index_t* index,
31363 const ulint* offsets,
31371 offset = index->trx_id_offset;
31374 trx_write_trx_id(rec + offset, trx_id);
31376 row_set_rec_sys_field(1,
31377 rec, index, offsets, trx_id);
31385 row_set_rec_roll_ptr(
31388 dict_index_t* index,
31389 const ulint* offsets,
31397 offset = index->trx_id_offset;
31400 trx_write_roll_ptr(rec + offset + 6, roll_ptr);
31402 row_set_rec_sys_field(2,
31403 rec, index, offsets, roll_ptr);
31412 row_build_row_ref_fast(
31422 const ulint* offsets)
31425 unsigned char* field;
31432 ref_len = dtuple_get_n_fields(ref);
31434 for (i = 0; i < ref_len; i++) {
31435 dfield = dtuple_get_nth_field(ref, i);
31437 field_no = *(map + i);
31439 if (field_no != ((ulint)(-1))) {
31441 field = rec_get_nth_field(rec, offsets,
31443 dfield_set_data(dfield, field, len);
31447 # 250 "./include/row0row.h" 2
31448 # 13 "./include/lock0lock.ic" 2
31454 # 1 "./include/row0vers.h" 1
31455 # 26 "./include/row0vers.h"
31457 row_vers_impl_x_locked_off_kernel(
31463 dict_index_t* index,
31464 const ulint* offsets);
31470 row_vers_must_preserve_del_marked(
31475 # 53 "./include/row0vers.h"
31477 row_vers_old_has_index_entry(
31487 dict_index_t* index,
31495 row_vers_build_for_consistent_read(
31504 dict_index_t* index,
31508 mem_heap_t** offset_heap,
31510 mem_heap_t* in_heap,
31520 # 1 "./include/row0vers.ic" 1
31521 # 11 "./include/row0vers.ic"
31522 # 1 "./include/read0read.h" 1
31523 # 24 "./include/read0read.h"
31525 read_view_open_now(
31535 read_view_oldest_copy_or_open_new(
31546 read_view_t* view);
31552 read_view_close_for_mysql(
31559 read_view_sees_trx_id(
31570 read_view_t* view);
31577 read_cursor_view_create_for_mysql(
31585 read_cursor_view_close_for_mysql(
31588 cursor_view_t* curview);
31595 read_cursor_set_for_mysql(
31598 cursor_view_t* curview);
31603 struct read_view_struct{
31604 ulint can_be_too_old;
31608 dulint low_limit_no;
31613 dulint low_limit_id;
31615 dulint up_limit_id;
31626 struct { read_view_t * prev; read_view_t * next; } view_list;
31634 struct cursor_view_struct{
31637 read_view_t* read_view;
31639 ulint n_mysql_tables_in_use;
31645 # 1 "./include/read0read.ic" 1
31646 # 11 "./include/read0read.ic"
31649 read_view_get_nth_trx_id(
31657 return(*(view->trx_ids + n));
31664 read_view_set_nth_trx_id(
31672 *(view->trx_ids + n) = trx_id;
31679 read_view_sees_trx_id(
31689 if (ut_dulint_cmp(trx_id, view->up_limit_id) < 0) {
31694 if (ut_dulint_cmp(trx_id, view->low_limit_id) >= 0) {
31704 n_ids = view->n_trx_ids;
31706 for (i = 0; i < n_ids; i++) {
31708 cmp = ut_dulint_cmp(trx_id,
31709 read_view_get_nth_trx_id(view, n_ids - i - 1));
31717 # 146 "./include/read0read.h" 2
31718 # 12 "./include/row0vers.ic" 2
31720 # 1 "./include/log0recv.h" 1
31721 # 16 "./include/log0recv.h"
31722 # 1 "./include/log0log.h" 1
31723 # 17 "./include/log0log.h"
31724 typedef struct log_struct log_t;
31725 typedef struct log_group_struct log_group_t;
31726 # 38 "./include/log0log.h"
31728 log_fsp_current_free_limit_set_and_checkpoint(
31735 log_calc_where_lsn_is(
31738 ib_longlong* log_file_offset,
31740 dulint first_header_lsn,
31746 ib_longlong log_file_size);
31753 log_reserve_and_write_fast(
31757 unsigned char* str,
31774 log_free_check(void);
31781 log_reserve_and_open(
31792 unsigned char* str,
31826 ulint archive_space_id);
31837 log_group_t* group);
31843 LOG_WRITE_FROM_DIRTY_BUFFER,
31844 LOG_WRITE_FROM_BACKGROUND_SYNC,
31845 LOG_WRITE_FROM_BACKGROUND_ASYNC,
31846 LOG_WRITE_FROM_INTERNAL,
31847 LOG_WRITE_FROM_CHECKPOINT_SYNC,
31848 LOG_WRITE_FROM_CHECKPOINT_ASYNC,
31849 LOG_WRITE_FROM_LOG_ARCHIVE,
31850 LOG_WRITE_FROM_COMMIT_SYNC,
31851 LOG_WRITE_FROM_COMMIT_ASYNC,
31852 LOG_WRITE_FROM_NUMBER
31867 ulint flush_to_disk,
31869 log_sync_type caller);
31874 log_buffer_flush_to_disk(void);
31881 log_buffer_flush_maybe_sync(void);
31889 log_preflush_pool_modified_pages(
31911 ulint write_always);
31912 # 231 "./include/log0log.h"
31914 log_make_checkpoint_at(
31919 ulint write_always);
31920 # 249 "./include/log0log.h"
31922 logs_empty_and_mark_files_at_shutdown(void);
31928 log_group_read_checkpoint_info(
31930 log_group_t* group,
31936 log_checkpoint_get_nth_group_info(
31938 unsigned char* buf,
31946 log_groups_write_checkpoint_info(void);
31953 log_reset_first_header_and_checkpoint(
31955 unsigned char* hdr_buf,
31970 # 306 "./include/log0log.h"
31972 log_archive_stop(void);
31979 log_archive_start(void);
31986 log_archive_noarchivelog(void);
31993 log_archive_archivelog(void);
32000 log_archived_file_name_gen(
32012 log_check_margins(void);
32018 log_group_read_log_seg(
32021 unsigned char* buf,
32022 log_group_t* group,
32029 log_group_write_buf(
32031 log_group_t* group,
32032 unsigned char* buf,
32038 ulint new_data_offset);
32039 # 382 "./include/log0log.h"
32041 log_group_set_fields(
32043 log_group_t* group,
32051 log_group_get_capacity(
32054 log_group_t* group);
32059 log_block_get_flush_bit(
32063 unsigned char* log_block);
32068 log_block_get_hdr_no(
32072 unsigned char* log_block);
32077 log_block_get_data_len(
32081 unsigned char* log_block);
32086 log_block_set_data_len(
32088 unsigned char* log_block,
32094 log_block_calc_checksum(
32097 unsigned char* block);
32102 log_block_get_checksum(
32105 unsigned char* log_block);
32110 log_block_set_checksum(
32112 unsigned char* log_block,
32118 log_block_get_first_rec_group(
32122 unsigned char* log_block);
32127 log_block_set_first_rec_group(
32129 unsigned char* log_block,
32135 log_block_get_checkpoint_no(
32138 unsigned char* log_block);
32145 unsigned char* log_block,
32152 log_block_init_in_old_format(
32154 unsigned char* log_block,
32160 log_block_convert_lsn_to_no(
32184 log_refresh_stats(void);
32187 extern log_t* log_sys;
32188 # 661 "./include/log0log.h"
32189 struct log_group_struct{
32202 ulint n_pending_writes;
32204 unsigned char** file_header_bufs;
32207 unsigned char** archive_file_header_bufs;
32209 ulint archive_space_id;
32211 ulint archived_file_no;
32213 ulint archived_offset;
32217 ulint next_archived_file_no;
32223 ulint next_archived_offset;
32225 dulint scanned_lsn;
32228 unsigned char* checkpoint_buf;
32230 struct { log_group_t * prev; log_group_t * next; }
32235 unsigned char pad[64];
32242 unsigned char* buf;
32244 ulint max_buf_free;
32247 ulint old_buf_free;
32252 ulint check_flush_or_checkpoint;
32253 # 733 "./include/log0log.h"
32254 struct { ulint count; log_group_t * start; log_group_t * end; }
32259 ulint buf_next_to_write;
32266 dulint written_to_some_lsn;
32272 dulint written_to_all_lsn;
32280 ulint write_end_offset;
32284 dulint current_flush_lsn;
32286 dulint flushed_to_disk_lsn;
32289 ulint n_pending_writes;
32291 ulint log_sync_callers[LOG_WRITE_FROM_NUMBER];
32293 ulint log_sync_syncers[LOG_WRITE_FROM_NUMBER];
32296 ulint n_checkpoints;
32301 os_event_t no_flush_event;
32310 os_event_t one_flushed_event;
32311 # 798 "./include/log0log.h"
32314 ulint n_log_ios_old;
32316 time_t last_printout_time;
32320 ulint log_group_capacity;
32325 ulint max_modified_age_async;
32330 ulint max_modified_age_sync;
32335 ulint adm_checkpoint_interval;
32340 ulint max_checkpoint_age_async;
32344 ulint max_checkpoint_age;
32348 dulint next_checkpoint_no;
32350 dulint last_checkpoint_lsn;
32352 dulint next_checkpoint_lsn;
32354 ulint n_pending_checkpoint_writes;
32357 rw_lock_t checkpoint_lock;
32361 unsigned char* checkpoint_buf;
32364 ulint archiving_state;
32366 dulint archived_lsn;
32368 ulint max_archived_lsn_age_async;
32372 ulint max_archived_lsn_age;
32375 dulint next_archived_lsn;
32381 ulint archiving_phase;
32383 ulint n_pending_archive_ios;
32386 rw_lock_t archive_lock;
32390 ulint archive_buf_size;
32391 unsigned char* archive_buf;
32393 os_event_t archiving_on;
32397 # 891 "./include/log0log.h"
32398 # 1 "./include/log0log.ic" 1
32399 # 17 "./include/log0log.ic"
32401 log_check_log_recs(
32403 unsigned char* buf,
32406 dulint buf_start_lsn);
32412 log_block_get_flush_bit(
32416 unsigned char* log_block)
32419 & mach_read_from_4(log_block + 0)) {
32431 log_block_set_flush_bit(
32433 unsigned char* log_block,
32438 field = mach_read_from_4(log_block + 0);
32441 field = field | 0x80000000UL;
32443 field = field & ~0x80000000UL;
32446 mach_write_to_4(log_block + 0, field);
32453 log_block_get_hdr_no(
32457 unsigned char* log_block)
32459 return(~0x80000000UL
32460 & mach_read_from_4(log_block + 0));
32468 log_block_set_hdr_no(
32470 unsigned char* log_block,
32477 mach_write_to_4(log_block + 0, n);
32484 log_block_get_data_len(
32488 unsigned char* log_block)
32490 return(mach_read_from_2(log_block + 4));
32497 log_block_set_data_len(
32499 unsigned char* log_block,
32502 mach_write_to_2(log_block + 4, len);
32509 log_block_get_first_rec_group(
32513 unsigned char* log_block)
32515 return(mach_read_from_2(log_block + 6));
32522 log_block_set_first_rec_group(
32524 unsigned char* log_block,
32527 mach_write_to_2(log_block + 6, offset);
32534 log_block_get_checkpoint_no(
32537 unsigned char* log_block)
32539 return(mach_read_from_4(log_block + 8));
32546 log_block_set_checkpoint_no(
32548 unsigned char* log_block,
32551 mach_write_to_4(log_block + 8,
32552 ut_dulint_get_low(no));
32559 log_block_convert_lsn_to_no(
32566 no = ut_dulint_get_low(lsn) / 512;
32567 no += (ut_dulint_get_high(lsn) % 512)
32568 * 2 * (0x80000000UL / 512);
32570 no = no & 0x3FFFFFFFUL;
32579 log_block_calc_checksum(
32582 unsigned char* block)
32591 for (i = 0; i < 512 - 4; i++) {
32592 sum = sum & 0x7FFFFFFFUL;
32593 sum += (((ulint)(*(block + i))) << sh) + (ulint)(*(block + i));
32607 log_block_get_checksum(
32610 unsigned char* log_block)
32612 return(mach_read_from_4(log_block + 512
32620 log_block_set_checksum(
32622 unsigned char* log_block,
32625 mach_write_to_4(log_block + 512
32636 unsigned char* log_block,
32645 no = log_block_convert_lsn_to_no(lsn);
32647 log_block_set_hdr_no(log_block, no);
32649 log_block_set_data_len(log_block, 12);
32650 log_block_set_first_rec_group(log_block, 0);
32658 log_block_init_in_old_format(
32660 unsigned char* log_block,
32669 no = log_block_convert_lsn_to_no(lsn);
32671 log_block_set_hdr_no(log_block, no);
32672 mach_write_to_4(log_block + 512
32674 log_block_set_data_len(log_block, 12);
32675 log_block_set_first_rec_group(log_block, 0);
32683 log_reserve_and_write_fast(
32687 unsigned char* str,
32692 log_t* log = log_sys;
32698 mutex_enter_func((&(log->mutex)), "./include/log0log.ic", 315);
32700 data_len = len + log->buf_free % 512;
32702 if (data_len >= 512 - 4) {
32709 mutex_exit(&(log->mutex));
32711 return(ut_dulint_zero);
32714 *start_lsn = log->lsn;
32716 ut_memcpy(log->buf + log->buf_free, str, len);
32718 log_block_set_data_len(ut_align_down(log->buf + log->buf_free,
32725 log->buf_free += len;
32729 lsn = ut_dulint_add(log->lsn, len);
32747 mutex_exit(&(log_sys->mutex));
32760 mutex_enter_func((&(log_sys->mutex)), "./include/log0log.ic", 377);
32762 lsn = log_sys->lsn;
32764 mutex_exit(&(log_sys->mutex));
32776 log_free_check(void)
32781 if (log_sys->check_flush_or_checkpoint) {
32783 log_check_margins();
32786 # 892 "./include/log0log.h" 2
32787 # 17 "./include/log0recv.h" 2
32788 # 25 "./include/log0recv.h"
32790 recv_read_cp_info_for_backup(
32793 unsigned char* hdr,
32799 dulint* first_header_lsn);
32806 recv_scan_log_seg_for_backup(
32808 unsigned char* buf,
32810 dulint* scanned_lsn,
32812 ulint* scanned_checkpoint_no,
32816 ulint* n_bytes_scanned);
32823 recv_recovery_is_on(void);
32829 recv_recovery_from_backup_is_on(void);
32839 ulint recover_backup,
32843 ulint just_read_in,
32855 recv_recovery_from_checkpoint_start(
32860 dulint min_flushed_lsn,
32861 dulint max_flushed_lsn);
32866 recv_recovery_from_checkpoint_finish(void);
32873 recv_scan_log_recs(
32877 ulint apply_automatically,
32882 ulint available_memory,
32884 ulint store_to_hash,
32887 unsigned char* buf,
32891 dulint* contiguous_lsn,
32893 dulint* group_scanned_lsn);
32906 ulint new_logs_created);
32907 # 161 "./include/log0recv.h"
32909 recv_sys_create(void);
32917 ulint recover_from_backup,
32919 ulint available_memory);
32925 recv_apply_hashed_log_recs(
32928 # 220 "./include/log0recv.h"
32930 recv_compare_spaces(
32942 recv_compare_spaces_low(
32949 typedef struct recv_data_struct recv_data_t;
32950 struct recv_data_struct{
32958 typedef struct recv_struct recv_t;
32959 struct recv_struct{
32960 unsigned char type;
32972 struct { recv_t * prev; recv_t * next; }
32977 typedef struct recv_addr_struct recv_addr_t;
32978 struct recv_addr_struct{
32983 struct { ulint count; recv_t * start; recv_t * end; }
32985 hash_node_t addr_hash;
32989 typedef struct recv_sys_struct recv_sys_t;
32990 struct recv_sys_struct{
32994 ulint apply_log_recs;
32999 ulint apply_batch_on;
33003 ulint last_log_buf_size;
33006 unsigned char* last_block;
33009 unsigned char* last_block_buf_start;
33012 unsigned char* buf;
33014 dulint parse_start_lsn;
33019 dulint scanned_lsn;
33022 ulint scanned_checkpoint_no;
33025 ulint recovered_offset;
33028 dulint recovered_lsn;
33033 ulint found_corrupt_log;
33038 log_group_t* archive_group;
33043 hash_table_t* addr_hash;
33048 extern recv_sys_t* recv_sys;
33049 extern ulint recv_recovery_on;
33050 extern ulint recv_no_ibuf_operations;
33051 extern ulint recv_needed_recovery;
33053 extern ulint recv_lsn_checks_on;
33057 extern ulint recv_max_parsed_page_no;
33058 # 369 "./include/log0recv.h"
33059 extern ulint recv_n_pool_free_frames;
33062 # 1 "./include/log0recv.ic" 1
33063 # 14 "./include/log0recv.ic"
33064 extern ulint recv_recovery_from_backup_on;
33070 recv_recovery_is_on(void)
33073 return(recv_recovery_on);
33080 recv_recovery_from_backup_is_on(void)
33083 return(recv_recovery_from_backup_on);
33085 # 373 "./include/log0recv.h" 2
33086 # 13 "./include/row0vers.ic" 2
33087 # 98 "./include/row0vers.h" 2
33088 # 19 "./include/lock0lock.ic" 2
33089 # 1 "./include/que0que.h" 1
33090 # 19 "./include/que0que.h"
33091 # 1 "./include/row0types.h" 1
33092 # 12 "./include/row0types.h"
33093 typedef struct plan_struct plan_t;
33095 typedef struct upd_struct upd_t;
33097 typedef struct upd_field_struct upd_field_t;
33099 typedef struct upd_node_struct upd_node_t;
33101 typedef struct del_node_struct del_node_t;
33103 typedef struct ins_node_struct ins_node_t;
33105 typedef struct sel_node_struct sel_node_t;
33107 typedef struct open_node_struct open_node_t;
33109 typedef struct fetch_node_struct fetch_node_t;
33111 typedef struct row_printf_node_struct row_printf_node_t;
33112 typedef struct sel_buf_struct sel_buf_t;
33114 typedef struct undo_node_struct undo_node_t;
33116 typedef struct purge_node_struct purge_node_t;
33117 # 20 "./include/que0que.h" 2
33118 # 1 "./include/pars0types.h" 1
33119 # 12 "./include/pars0types.h"
33120 typedef struct sym_node_struct sym_node_t;
33121 typedef struct sym_tab_struct sym_tab_t;
33122 typedef struct pars_res_word_struct pars_res_word_t;
33123 typedef struct func_node_struct func_node_t;
33124 typedef struct order_node_struct order_node_t;
33125 typedef struct proc_node_struct proc_node_t;
33126 typedef struct elsif_node_struct elsif_node_t;
33127 typedef struct if_node_struct if_node_t;
33128 typedef struct while_node_struct while_node_t;
33129 typedef struct for_node_struct for_node_t;
33130 typedef struct return_node_struct return_node_t;
33131 typedef struct assign_node_struct assign_node_t;
33132 typedef struct col_assign_node_struct col_assign_node_t;
33134 typedef struct { ulint count; sym_node_t * start; sym_node_t * end; } sym_node_list_t;
33135 # 21 "./include/que0que.h" 2
33139 extern ulint que_trace_on;
33159 que_node_t* parent,
33166 que_fork_get_first_thr(
33173 que_fork_get_child(
33180 que_node_set_parent(
33183 que_node_t* parent);
33191 que_fork_t* parent,
33199 que_graph_try_free(
33208 que_graph_free_recursive(
33218 # 112 "./include/que0que.h"
33229 que_thr_move_to_run_state_for_mysql(
33238 que_thr_stop_for_mysql_no_error(
33249 que_thr_stop_for_mysql(
33267 que_fork_error_handle(
33277 que_thr_handle_error(
33281 unsigned char* err_str,
33298 que_thr_t** next_thr);
33307 que_thr_end_wait_no_next_thr(
33310 # 212 "./include/que0que.h"
33312 que_fork_start_command(
33337 que_node_get_data_type(
33351 que_node_get_val_buf_size(
33360 que_node_set_val_buf_size(
33375 que_node_get_parent(
33383 que_node_list_add_last(
33386 que_node_t* node_list,
33392 que_node_list_get_len(
33395 que_node_t* node_list);
33413 que_graph_is_select(
33421 que_node_print_info(
33429 struct que_thr_struct{
33430 que_common_t common;
33441 struct { que_thr_t * prev; que_thr_t * next; }
33444 struct { que_thr_t * prev; que_thr_t * next; }
33447 struct { que_thr_t * prev; que_thr_t * next; }
33454 que_node_t* run_node;
33457 que_node_t* prev_node;
33469 struct que_fork_struct{
33470 que_common_t common;
33473 ulint n_active_thrs;
33483 struct { ulint count; que_thr_t * start; que_thr_t * end; }
33487 sym_tab_t* sym_tab;
33505 sel_node_t* last_sel_node;
33507 struct { que_fork_t * prev; que_fork_t * next; }
33515 # 499 "./include/que0que.h"
33516 # 1 "./include/que0que.ic" 1
33517 # 9 "./include/que0que.ic"
33518 # 1 "./include/usr0sess.h" 1
33519 # 25 "./include/usr0sess.h"
33535 struct sess_struct{
33542 struct { ulint count; que_t * start; que_t * end; }
33553 # 1 "./include/usr0sess.ic" 1
33554 # 59 "./include/usr0sess.h" 2
33555 # 10 "./include/que0que.ic" 2
33567 return(thr->graph->trx);
33574 que_fork_get_first_thr(
33578 return((fork->thrs).start);
33585 que_fork_get_child(
33591 thr = (fork->thrs).start;
33593 return(thr->child);
33606 return(((que_common_t*)node)->type);
33619 return(&(((que_common_t*)node)->val));
33626 que_node_get_val_buf_size(
33634 return(((que_common_t*)node)->val_buf_size);
33641 que_node_set_val_buf_size(
33648 ((que_common_t*)node)->val_buf_size = size;
33655 que_node_set_parent(
33658 que_node_t* parent)
33662 ((que_common_t*)node)->parent = parent;
33669 que_node_get_data_type(
33675 return(&(((que_common_t*)node)->val.type));
33682 que_node_list_add_last(
33685 que_node_t* node_list,
33688 que_common_t* cnode;
33689 que_common_t* cnode2;
33693 cnode->brother = ((void *)0);
33695 if (node_list == ((void *)0)) {
33700 cnode2 = node_list;
33702 while (cnode2->brother != ((void *)0)) {
33703 cnode2 = cnode2->brother;
33706 cnode2->brother = node;
33720 return(((que_common_t*)node)->brother);
33727 que_node_list_get_len(
33730 que_node_t* node_list)
33732 que_common_t* cnode;
33738 while (cnode != ((void *)0)) {
33740 cnode = cnode->brother;
33750 que_node_get_parent(
33755 return(((que_common_t*)node)->parent);
33775 graph = thr->graph;
33778 if (graph->state != 1
33779 || trx->que_state == 2
33780 || ((trx->signals).count > 0
33781 && trx->que_state == 1)) {
33792 que_graph_is_select(
33797 if (graph->fork_type == 2
33798 || graph->fork_type == 1) {
33805 # 500 "./include/que0que.h" 2
33806 # 20 "./include/lock0lock.ic" 2
33807 # 1 "./include/btr0cur.h" 1
33808 # 19 "./include/btr0cur.h"
33809 # 1 "./include/ha0ha.h" 1
33810 # 19 "./include/ha0ha.h"
33813 ha_search_and_get_data(
33818 hash_table_t* table,
33825 ha_search_and_update_if_found(
33827 hash_table_t* table,
33839 ulint in_btr_search,
33844 ulint mutex_level);
33852 ha_insert_for_fold(
33856 hash_table_t* table,
33867 ha_insert_for_fold_mutex(
33871 hash_table_t* table,
33883 hash_table_t* table,
33892 ha_search_and_delete_if_found(
33895 hash_table_t* table,
33903 ha_remove_all_nodes_to_page(
33905 hash_table_t* table,
33915 hash_table_t* table,
33925 hash_table_t* table);
33929 typedef struct ha_node_struct ha_node_t;
33930 struct ha_node_struct {
33937 # 1 "./include/ha0ha.ic" 1
33938 # 15 "./include/ha0ha.ic"
33940 ha_delete_hash_node(
33942 hash_table_t* table,
33943 ha_node_t* del_node);
33954 return(node->data);
33978 return(node->next);
33985 ha_chain_get_first(
33988 hash_table_t* table,
33991 return(hash_get_nth_cell(table, hash_calc_hash(fold, table))->node);
34003 hash_table_t* table,
34012 node = ha_chain_get_first(table, fold);
34015 if (node->fold == fold) {
34020 node = ha_chain_get_next(node);
34023 return(((void *)0));
34030 ha_search_and_get_data(
34035 hash_table_t* table,
34044 node = ha_chain_get_first(table, fold);
34047 if (node->fold == fold) {
34049 return(node->data);
34052 node = ha_chain_get_next(node);
34055 return(((void *)0));
34062 ha_search_with_data(
34066 hash_table_t* table,
34076 node = ha_chain_get_first(table, fold);
34079 if (node->data == data) {
34084 node = ha_chain_get_next(node);
34087 return(((void *)0));
34095 ha_search_and_delete_if_found(
34098 hash_table_t* table,
34108 node = ha_search_with_data(table, fold, data);
34111 ha_delete_hash_node(table, node);
34124 ha_insert_for_fold_mutex(
34128 hash_table_t* table,
34137 hash_mutex_enter(table, fold);
34139 ret = ha_insert_for_fold(table, fold, data);
34141 hash_mutex_exit(table, fold);
34145 # 146 "./include/ha0ha.h" 2
34146 # 20 "./include/btr0cur.h" 2
34147 # 32 "./include/btr0cur.h"
34150 btr_cur_get_page_cur(
34153 btr_cur_t* cursor);
34161 btr_cur_t* cursor);
34166 btr_cur_invalidate(
34168 btr_cur_t* cursor);
34176 btr_cur_t* cursor);
34184 btr_cur_t* cursor);
34191 dict_index_t* index,
34193 btr_cur_t* cursor);
34194 # 86 "./include/btr0cur.h"
34196 btr_cur_search_to_nth_level(
34198 dict_index_t* index,
34211 # 111 "./include/btr0cur.h"
34214 ulint has_search_latch,
34222 btr_cur_open_at_index_side(
34226 dict_index_t* index,
34234 btr_cur_open_at_rnd_pos(
34236 dict_index_t* index,
34248 btr_cur_optimistic_insert(
34260 big_rec_t** big_rec,
34272 btr_cur_pessimistic_insert(
34286 big_rec_t** big_rec,
34295 btr_cur_update_in_place(
34314 btr_cur_optimistic_update(
34336 btr_cur_pessimistic_update(
34342 big_rec_t** big_rec,
34358 btr_cur_del_mark_set_clust_rec(
34371 btr_cur_del_mark_set_sec_rec(
34385 btr_cur_del_unmark_for_ibuf(
34410 btr_cur_compress_if_useful(
34423 btr_cur_optimistic_delete(
34432 # 339 "./include/btr0cur.h"
34434 btr_cur_pessimistic_delete(
34442 ulint has_reserved_extents,
34456 btr_cur_parse_update_in_place(
34459 unsigned char* ptr,
34460 unsigned char* end_ptr,
34462 dict_index_t* index);
34468 btr_cur_parse_del_mark_set_clust_rec(
34471 unsigned char* ptr,
34472 unsigned char* end_ptr,
34473 dict_index_t* index,
34480 btr_cur_parse_del_mark_set_sec_rec(
34483 unsigned char* ptr,
34484 unsigned char* end_ptr,
34490 btr_estimate_n_rows_in_range(
34493 dict_index_t* index,
34504 btr_estimate_number_of_different_key_vals(
34506 dict_index_t* index);
34514 btr_cur_mark_extern_inherited_fields(
34517 const ulint* offsets,
34526 btr_cur_mark_dtuple_inherited_extern(
34538 btr_cur_unmark_dtuple_extern_fields(
34550 btr_store_big_rec_extern_fields(
34553 dict_index_t* index,
34556 const ulint* offsets,
34560 big_rec_t* big_rec_vec,
34571 btr_free_externally_stored_field(
34573 dict_index_t* index,
34581 unsigned char* data,
34585 ulint do_not_free_inherited,
34595 btr_rec_free_externally_stored_fields(
34597 dict_index_t* index,
34600 const ulint* offsets,
34601 ulint do_not_free_inherited,
34611 btr_rec_copy_externally_stored_field(
34615 const ulint* offsets,
34626 btr_copy_externally_stored_field(
34630 unsigned char* data,
34643 btr_push_update_extern_fields(
34648 const ulint* offsets,
34650 # 568 "./include/btr0cur.h"
34651 typedef struct btr_path_struct btr_path_t;
34652 struct btr_path_struct{
34666 struct btr_cur_struct {
34667 dict_index_t* index;
34668 page_cur_t page_cur;
34669 ib_page_t* left_page;
34688 # 618 "./include/btr0cur.h"
34712 btr_path_t* path_arr;
34717 # 695 "./include/btr0cur.h"
34718 extern ulint btr_cur_n_non_sea;
34719 extern ulint btr_cur_n_sea;
34720 extern ulint btr_cur_n_non_sea_old;
34721 extern ulint btr_cur_n_sea_old;
34725 void innobase_mysql_thd_init_innodb_scan_cont();
34726 void innobase_mysql_thd_increment_innodb_scan_cont(ulong length);
34727 void innobase_mysql_thd_init_innodb_scan_jump();
34728 void innobase_mysql_thd_increment_innodb_scan_jump(ulong length);
34729 void innobase_mysql_thd_init_innodb_scan_data();
34730 void innobase_mysql_thd_increment_innodb_scan_data(ulong length);
34731 void innobase_mysql_thd_init_innodb_scan_garbage();
34732 void innobase_mysql_thd_increment_innodb_scan_garbage(ulong length);
34735 # 1 "./include/btr0cur.ic" 1
34736 # 9 "./include/btr0cur.ic"
34737 # 1 "./include/btr0btr.h" 1
34738 # 10 "./include/btr0cur.ic" 2
34744 btr_cur_get_page_cur(
34749 return(&(cursor->page_cur));
34761 return(page_cur_get_rec(&(cursor->page_cur)));
34768 btr_cur_invalidate(
34772 page_cur_invalidate(&(cursor->page_cur));
34784 return(buf_frame_align(page_cur_get_rec(&(cursor->page_cur))));
34796 return((cursor->index)->tree);
34805 dict_index_t* index,
34809 page_cur_position(rec, btr_cur_get_page_cur(cursor));
34811 cursor->index = index;
34819 btr_cur_compress_recommendation(
34831 page = btr_cur_get_page(cursor);
34833 if ((page_get_data_size(page) < ((2 * 8192) / 2))
34834 || ((btr_page_get_next(page, mtr) == 0xFFFFFFFF)
34835 && (btr_page_get_prev(page, mtr) == 0xFFFFFFFF))) {
34842 if (dict_tree_get_page((cursor->index)->tree)
34843 == buf_frame_get_page_no(page)) {
34861 btr_cur_can_delete_without_compress(
34875 page = btr_cur_get_page(cursor);
34877 if ((page_get_data_size(page) - rec_size < ((2 * 8192) / 2))
34878 || ((btr_page_get_next(page, mtr) == 0xFFFFFFFF)
34879 && (btr_page_get_prev(page, mtr) == 0xFFFFFFFF))
34880 || (page_get_n_recs(page) < 2)) {
34887 if (dict_tree_get_page((cursor->index)->tree)
34888 == buf_frame_get_page_no(page)) {
34900 # 713 "./include/btr0cur.h" 2
34901 # 21 "./include/lock0lock.ic" 2
34916 return(ut_fold_ulint_pair(space, page_no));
34930 return(hash_calc_hash(lock_rec_fold(space, page_no),
34931 lock_sys->rec_hash));
34939 lock_clust_rec_some_has_impl(
34944 dict_index_t* index,
34945 const ulint* offsets)
34955 trx_id = row_get_rec_trx_id(rec, index, offsets);
34957 if (trx_is_active(trx_id)) {
34960 return(trx_get_on_id(trx_id));
34963 return(((void *)0));
34965 # 679 "./include/lock0lock.h" 2
34966 # 33 "buf/buf0buf.c" 2
34967 # 1 "./include/btr0sea.h" 1
34968 # 23 "./include/btr0sea.h"
34970 btr_search_sys_create(
34977 btr_search_get_info(
34980 dict_index_t* index);
34985 btr_search_info_create(
34993 btr_search_info_get_ref_count(
34996 btr_search_t* info);
35001 btr_search_info_update(
35003 dict_index_t* index,
35004 btr_cur_t* cursor);
35012 btr_search_guess_on_hash(
35015 dict_index_t* index,
35016 btr_search_t* info,
35021 ulint has_search_latch,
35032 btr_search_move_or_delete_hash_entries(
35034 ib_page_t* new_page,
35037 dict_index_t* index);
35042 btr_search_drop_page_hash_index(
35050 btr_search_drop_page_hash_when_freed(
35058 btr_search_update_hash_node_on_insert(
35060 btr_cur_t* cursor);
35068 btr_search_update_hash_on_insert(
35070 btr_cur_t* cursor);
35078 btr_search_update_hash_on_delete(
35080 btr_cur_t* cursor);
35087 btr_search_validate(void);
35088 # 153 "./include/btr0sea.h"
35089 struct btr_search_struct{
35099 rec_t* last_search;
35106 dulint modify_clock;
35112 ib_page_t* root_guess;
35114 ulint hash_analysis;
35117 ulint last_hash_succ;
35122 ulint n_hash_potential;
35148 typedef struct btr_search_sys_struct btr_search_sys_t;
35150 struct btr_search_sys_struct{
35151 hash_table_t* hash_index;
35154 extern btr_search_sys_t* btr_search_sys;
35155 # 232 "./include/btr0sea.h"
35156 extern rw_lock_t* btr_search_latch_temp;
35163 extern ulint btr_search_n_hash_fail;
35164 # 267 "./include/btr0sea.h"
35165 # 1 "./include/btr0sea.ic" 1
35166 # 16 "./include/btr0sea.ic"
35168 btr_search_info_update_slow(
35170 btr_search_t* info,
35171 btr_cur_t* cursor);
35177 btr_search_get_info(
35180 dict_index_t* index)
35184 return(index->search_info);
35191 btr_search_info_update(
35193 dict_index_t* index,
35196 btr_search_t* info;
35203 info = btr_search_get_info(index);
35205 info->hash_analysis++;
35207 if (info->hash_analysis < 17) {
35217 btr_search_info_update_slow(info, cursor);
35219 # 268 "./include/btr0sea.h" 2
35220 # 34 "buf/buf0buf.c" 2
35221 # 1 "./include/ibuf0ibuf.h" 1
35222 # 21 "./include/ibuf0ibuf.h"
35223 extern ibuf_t* ibuf;
35232 ibuf_data_init_for_space(
35242 ibuf_init_at_db_start(void);
35249 ibuf_update_max_tablespace_id(void);
35255 ibuf_bitmap_page_init(
35266 ibuf_reset_free_bits_with_type(
35270 # 76 "./include/ibuf0ibuf.h"
35272 ibuf_reset_free_bits(
35274 dict_index_t* index,
35285 ibuf_update_free_bits_if_full(
35287 dict_index_t* index,
35293 ulint max_ins_size,
35305 ibuf_update_free_bits_low(
35307 dict_index_t* index,
35309 ulint max_ins_size,
35319 ibuf_update_free_bits_for_two_pages_low(
35321 dict_index_t* index,
35332 dict_index_t* index,
35333 ulint ignore_sec_unique);
35381 ibuf_free_excess_pages(
35394 dict_index_t* index,
35398 # 211 "./include/ibuf0ibuf.h"
35400 ibuf_merge_or_delete_for_page(
35406 ulint update_ibuf_bitmap);
35407 # 228 "./include/ibuf0ibuf.h"
35409 ibuf_delete_for_discarded_space(
35428 ibuf_contract_for_n_pages(
35443 ibuf_parse_bitmap_init(
35446 unsigned char* ptr,
35447 unsigned char* end_ptr,
35464 ibuf_is_empty(void);
35474 # 304 "./include/ibuf0ibuf.h"
35475 # 1 "./include/ibuf0ibuf.ic" 1
35476 # 12 "./include/ibuf0ibuf.ic"
35477 extern ulint ibuf_flush_count;
35478 # 21 "./include/ibuf0ibuf.ic"
35479 struct ibuf_data_struct{
35488 ulint free_list_len;
35491 dict_index_t* index;
35492 struct { ibuf_data_t * prev; ibuf_data_t * next; } data_list;
35497 ulint n_merged_recs;
35504 struct ibuf_struct{
35513 struct { ulint count; ibuf_data_t * start; ibuf_data_t * end; } data_list;
35525 ibuf_set_free_bits(
35542 dict_index_t* index,
35543 ulint ignore_sec_unique)
35548 if (!(index->type & 1)
35549 && (ignore_sec_unique || !(index->type & 2))
35550 && ibuf->meter > 50) {
35552 ibuf_flush_count++;
35554 if (ibuf_flush_count % 8 == 0) {
35556 buf_LRU_try_free_flushed_blocks();
35574 if (page_no % (2 * 8192) == 1) {
35586 ibuf_index_page_calc_free_bits(
35589 ulint max_ins_size)
35594 n = max_ins_size / ((2 * 8192) / 32);
35611 ibuf_index_page_calc_free_from_bits(
35620 return(4 * (2 * 8192) / 32);
35623 return(bits * (2 * 8192) / 32);
35630 ibuf_index_page_calc_free(
35635 return(ibuf_index_page_calc_free_bits(
35636 page_get_max_insert_size_after_reorganize(page, 1)));
35646 ibuf_update_free_bits_if_full(
35648 dict_index_t* index,
35654 ulint max_ins_size,
35664 before = ibuf_index_page_calc_free_bits(max_ins_size);
35666 if (max_ins_size >= increase) {
35669 after = ibuf_index_page_calc_free_bits(max_ins_size
35675 after = ibuf_index_page_calc_free(page);
35684 buf_page_make_young(page);
35687 if (before > after) {
35688 ibuf_set_free_bits(index->type, page, after, before);
35691 # 305 "./include/ibuf0ibuf.h" 2
35692 # 35 "buf/buf0buf.c" 2
35693 # 1 "./include/dict0dict.h" 1
35694 # 36 "buf/buf0buf.c" 2
35695 # 1 "./include/log0recv.h" 1
35696 # 37 "buf/buf0buf.c" 2
35697 # 1 "./include/log0log.h" 1
35698 # 38 "buf/buf0buf.c" 2
35699 # 1 "./include/trx0undo.h" 1
35700 # 39 "buf/buf0buf.c" 2
35701 # 1 "./include/srv0srv.h" 1
35702 # 40 "buf/buf0buf.c" 2
35703 # 1 "./include/trx0trx.h" 1
35704 # 41 "buf/buf0buf.c" 2
35707 trx_t* innobase_get_trx();
35708 # 229 "buf/buf0buf.c"
35709 static const int WAIT_FOR_READ = 20000;
35711 buf_pool_t* buf_pool = ((void *)0);
35712 # 246 "buf/buf0buf.c"
35714 buf_calc_page_new_checksum(
35717 unsigned char* page)
35720 # 262 "buf/buf0buf.c"
35721 checksum = ut_fold_binary(page + 4,
35723 + ut_fold_binary(page + 38,
35726 checksum = checksum & 0xFFFFFFFFUL;
35730 # 280 "buf/buf0buf.c"
35732 buf_calc_page_old_checksum(
35735 unsigned char* page)
35739 checksum = ut_fold_binary(page, 26);
35741 checksum = checksum & 0xFFFFFFFFUL;
35750 buf_page_is_corrupted(
35753 unsigned char* read_buf)
35756 ulint old_checksum;
35757 ulint checksum_field;
35758 ulint old_checksum_field;
35760 dulint current_lsn;
35762 if (mach_read_from_4(read_buf + 16 + 4)
35763 != mach_read_from_4(read_buf + (2 * 8192)
35773 if (recv_lsn_checks_on && log_peek_lsn(¤t_lsn)) {
35774 if (ut_dulint_cmp(current_lsn,
35775 mach_read_from_8(read_buf + 16))
35777 ut_print_timestamp(stderr);
35780 " InnoDB: Error: page %lu log sequence number %lu %lu\n"
35781 "InnoDB: is in the future! Current system log sequence number %lu %lu.\n"
35782 "InnoDB: Your database may be corrupt or you may have copied the InnoDB\n"
35783 "InnoDB: tablespace but not the InnoDB log files. See\n"
35784 "InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html\n"
35785 "InnoDB: for more information.\n",
35786 (ulong) mach_read_from_4(read_buf + 4),
35787 (ulong) ut_dulint_get_high(
35788 mach_read_from_8(read_buf + 16)),
35789 (ulong) ut_dulint_get_low(
35790 mach_read_from_8(read_buf + 16)),
35791 (ulong) ut_dulint_get_high(current_lsn),
35792 (ulong) ut_dulint_get_low(current_lsn));
35802 if (srv_use_checksums) {
35803 old_checksum = buf_calc_page_old_checksum(read_buf);
35805 old_checksum_field = mach_read_from_4(read_buf + (2 * 8192)
35813 if (old_checksum_field != mach_read_from_4(read_buf + 16)
35814 && old_checksum_field != old_checksum
35815 && old_checksum_field != 0xDEADBEEFUL) {
35820 checksum = buf_calc_page_new_checksum(read_buf);
35821 checksum_field = mach_read_from_4(read_buf + 0);
35826 if (checksum_field != 0 && checksum_field != checksum
35827 && checksum_field != 0xDEADBEEFUL) {
35842 unsigned char* read_buf)
35844 dict_index_t* index;
35846 ulint old_checksum;
35848 ut_print_timestamp(stderr);
35849 fprintf(stderr, " InnoDB: Page dump in ascii and hex (%lu bytes):\n",
35850 (ulint)(2 * 8192));
35851 ut_print_buf(stderr, read_buf, (2 * 8192));
35852 fputs("InnoDB: End of page dump\n", stderr);
35854 checksum = srv_use_checksums ?
35855 buf_calc_page_new_checksum(read_buf) : 0xDEADBEEFUL;
35856 old_checksum = srv_use_checksums ?
35857 buf_calc_page_old_checksum(read_buf) : 0xDEADBEEFUL;
35859 ut_print_timestamp(stderr);
35861 " InnoDB: Page checksum %lu, prior-to-4.0.14-form checksum %lu\n"
35862 "InnoDB: stored checksum %lu, prior-to-4.0.14-form stored checksum %lu\n",
35863 (ulong) checksum, (ulong) old_checksum,
35864 (ulong) mach_read_from_4(read_buf + 0),
35865 (ulong) mach_read_from_4(read_buf + (2 * 8192)
35868 "InnoDB: Page lsn %lu %lu, low 4 bytes of lsn at page end %lu\n"
35869 "InnoDB: Page number (if stored to page already) %lu,\n"
35870 "InnoDB: space id (if created with >= MySQL-4.1.1 and stored already) %lu\n",
35871 (ulong) mach_read_from_4(read_buf + 16),
35872 (ulong) mach_read_from_4(read_buf + 16 + 4),
35873 (ulong) mach_read_from_4(read_buf + (2 * 8192)
35875 (ulong) mach_read_from_4(read_buf + 4),
35876 (ulong) mach_read_from_4(read_buf + 34));
35878 if (mach_read_from_2(read_buf + 38 + 0)
35881 "InnoDB: Page may be an insert undo log page\n");
35882 } else if (mach_read_from_2(read_buf + 38
35886 "InnoDB: Page may be an update undo log page\n");
35889 if (fil_page_get_type(read_buf) == 17855) {
35891 "InnoDB: Page may be an index page where index id is %lu %lu\n",
35892 (ulong) ut_dulint_get_high(btr_page_get_index_id(read_buf)),
35893 (ulong) ut_dulint_get_low(btr_page_get_index_id(read_buf)));
35898 if (dict_sys != ((void *)0)) {
35900 index = dict_index_find_on_id_low(
35901 btr_page_get_index_id(read_buf));
35903 fputs("InnoDB: (", stderr);
35904 dict_index_name_print(stderr, ((void *)0), index);
35905 fputs(")\n", stderr);
35908 } else if (fil_page_get_type(read_buf) == 3) {
35909 fputs("InnoDB: Page may be an 'inode' page\n", stderr);
35910 } else if (fil_page_get_type(read_buf) == 4) {
35911 fputs("InnoDB: Page may be an insert buffer free list page\n",
35922 buf_block_t* block,
35923 unsigned char* frame)
35926 block->magic_n = 0;
35928 block->state = 211;
35930 block->frame = frame;
35932 block->awe_info = ((void *)0);
35934 block->buf_fix_count = 0;
35937 block->modify_clock = ut_dulint_zero;
35939 block->file_page_was_freed = (0);
35941 block->check_index_page_at_flush = (0);
35942 block->index = ((void *)0);
35944 block->in_free_list = (0);
35945 block->in_LRU_list = (0);
35947 block->n_pointers = 0;
35949 mutex_create_func((&block->mutex), "buf/buf0buf.c", 498);
35950 mutex_set_level(&block->mutex, 149);
35952 rw_lock_create_func((&(block->lock)), "buf/buf0buf.c", 501);
35980 unsigned char* frame;
35982 buf_block_t* block;
35984 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);
35985 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);
35987 if (n_frames > curr_size) {
35989 "InnoDB: AWE: Error: you must specify in my.cnf .._awe_mem_mb larger\n"
35990 "InnoDB: than .._buffer_pool_size. Now the former is %lu pages,\n"
35991 "InnoDB: the latter %lu pages.\n", (ulong) curr_size, (ulong) n_frames);
35993 return(((void *)0));
35996 buf_pool = mem_alloc_func((sizeof(buf_pool_t)), "buf/buf0buf.c", 545);
36000 mutex_create_func((&(buf_pool->mutex)), "buf/buf0buf.c", 549);
36001 mutex_set_level(&(buf_pool->mutex), 150);
36003 mutex_create_func((&(buf_pool->flush_list_mutex)), "buf/buf0buf.c", 552);
36004 mutex_create_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 553);
36005 mutex_create_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 554);
36006 rw_lock_create_func((&(buf_pool->hash_latch)), "buf/buf0buf.c", 555);
36007 mutex_set_level(&(buf_pool->flush_list_mutex), 3000);
36008 mutex_set_level(&(buf_pool->LRU_mutex), 3000);
36009 mutex_set_level(&(buf_pool->free_mutex), 3000);
36010 rw_lock_set_level(&(buf_pool->hash_latch), 3000);
36012 mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 561);
36013 mutex_enter_func((&(buf_pool->flush_list_mutex)), "buf/buf0buf.c", 562);
36014 mutex_enter_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 563);
36015 rw_lock_x_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 564);
36016 mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 565);
36023 buf_pool->frame_mem = os_awe_allocate_virtual_mem_window(
36024 (2 * 8192) * (n_frames + 1));
36029 if ((curr_size % ((1024 * 1024) / (2 * 8192))) != 0) {
36032 "InnoDB: AWE: Error: physical memory must be allocated in full megabytes.\n"
36033 "InnoDB: Trying to allocate %lu database pages.\n",
36034 (ulong) curr_size);
36036 return(((void *)0));
36039 if (!os_awe_allocate_physical_mem(&(buf_pool->awe_info),
36040 curr_size / ((1024 * 1024) / (2 * 8192)))) {
36042 return(((void *)0));
36046 buf_pool->frame_mem = os_mem_alloc_large(
36047 (2 * 8192) * (n_frames + 1),
36051 if (buf_pool->frame_mem == ((void *)0)) {
36053 return(((void *)0));
36056 buf_pool->blocks = ut_malloc(sizeof(buf_block_t) * max_size);
36058 if (buf_pool->blocks == ((void *)0)) {
36060 return(((void *)0));
36063 buf_pool->max_size = max_size;
36064 buf_pool->curr_size = curr_size;
36066 buf_pool->n_frames = n_frames;
36070 frame = ut_align(buf_pool->frame_mem, (2 * 8192));
36072 buf_pool->frame_zero = frame;
36073 buf_pool->high_end = frame + (2 * 8192) * n_frames;
36080 os_awe_map_physical_mem_to_window(buf_pool->frame_zero,
36082 ((2 * 8192) / 4096),
36083 buf_pool->awe_info);
36087 buf_pool->blocks_of_frames = ut_malloc(sizeof(void*) * n_frames);
36089 if (buf_pool->blocks_of_frames == ((void *)0)) {
36091 return(((void *)0));
36099 for (i = 0; i < max_size; i++) {
36101 block = buf_pool_get_nth_block(buf_pool, i);
36103 if (i < n_frames) {
36104 frame = buf_pool->frame_zero + i * (2 * 8192);
36105 *(buf_pool->blocks_of_frames + i) = block;
36107 frame = ((void *)0);
36110 buf_block_init(block, frame);
36114 block->awe_info = buf_pool->awe_info
36115 + i * ((2 * 8192) / 4096);
36120 buf_pool->page_hash = hash0_create(2 * max_size);
36121 buf_pool->io_counter_hash = ((void *)0);
36122 buf_pool->io_counter_heap = ((void *)0);
36123 buf_pool->io_counters = 0;
36125 buf_pool->n_pend_reads = 0;
36127 buf_pool->last_printout_time = time(((void *)0));
36129 buf_pool->n_pages_read = 0;
36130 buf_pool->n_pages_written = 0;
36131 buf_pool->n_pages_created = 0;
36132 buf_pool->n_pages_awe_remapped = 0;
36134 buf_pool->n_page_gets = 0;
36135 buf_pool->n_page_gets_old = 0;
36136 buf_pool->n_pages_read_old = 0;
36137 buf_pool->n_pages_written_old = 0;
36138 buf_pool->n_pages_created_old = 0;
36139 buf_pool->n_pages_awe_remapped_old = 0;
36143 { (buf_pool->flush_list).count = 0; (buf_pool->flush_list).start = ((void *)0); (buf_pool->flush_list).end = ((void *)0);};
36145 for (i = 1; i <= 3; i++) {
36146 buf_pool->n_flush[i] = 0;
36147 buf_pool->init_flush[i] = (0);
36148 buf_pool->no_flush[i] = os_event_create(((void *)0));
36151 buf_pool->LRU_flush_ended = 0;
36153 buf_pool->ulint_clock = 1;
36154 buf_pool->freed_page_clock = 0;
36158 { (buf_pool->LRU).count = 0; (buf_pool->LRU).start = ((void *)0); (buf_pool->LRU).end = ((void *)0);};
36160 buf_pool->LRU_old = ((void *)0);
36162 { (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);};
36165 { (buf_pool->free).count = 0; (buf_pool->free).start = ((void *)0); (buf_pool->free).end = ((void *)0);};
36167 for (i = 0; i < curr_size; i++) {
36169 block = buf_pool_get_nth_block(buf_pool, i);
36171 if (block->frame) {
36182 { ; ((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); }};
36187 { ; ((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); }};
36188 block->in_free_list = (1);
36191 mutex_exit(&(buf_pool->LRU_mutex));
36192 mutex_exit(&(buf_pool->flush_list_mutex));
36193 mutex_exit(&(buf_pool->free_mutex));
36194 rw_lock_x_unlock_func(&(buf_pool->hash_latch));
36195 mutex_exit(&(buf_pool->mutex));
36197 if (srv_use_adaptive_hash_indexes) {
36198 btr_search_sys_create(
36199 curr_size * (2 * 8192) / sizeof(void*) / 64);
36202 btr_search_sys_create(1000);
36213 buf_awe_map_page_to_frame(
36215 buf_block_t* block,
36217 ulint add_to_mapped_list)
36229 if (block->frame) {
36237 bck = (buf_pool->awe_LRU_free_mapped).end;
36242 mutex_enter_func((&bck->mutex), "buf/buf0buf.c", 791);
36244 skip = (bck->state == 213
36245 && (bck->buf_fix_count != 0 || bck->io_fix != 0));
36248 mutex_exit(&bck->mutex);
36251 bck = (((bck)->awe_LRU_free_mapped).prev);
36255 os_awe_map_physical_mem_to_window(
36260 block->frame = bck->frame;
36262 *(buf_pool->blocks_of_frames
36263 + (((ulint)(block->frame
36264 - buf_pool->frame_zero))
36268 bck->frame = ((void *)0);
36269 { ; 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; }};
36273 if (add_to_mapped_list) {
36274 { ; ((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); }};
36279 buf_pool->n_pages_awe_remapped++;
36281 mutex_exit(&bck->mutex);
36288 "InnoDB: AWE: Fatal error: cannot find a page to unmap\n"
36289 "InnoDB: awe_LRU_free_mapped list length %lu\n",
36290 (ulong) (buf_pool->awe_LRU_free_mapped).count);
36292 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);
36299 buf_block_alloc(void)
36305 buf_block_t* block;
36307 block = buf_LRU_get_free_block();
36317 buf_block_make_young(
36319 buf_block_t* block)
36328 if (buf_pool->freed_page_clock >= block->freed_page_clock
36329 + 1 + (buf_pool->curr_size / 4)) {
36331 mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 880);
36335 buf_LRU_make_block_young(block);
36336 mutex_exit(&(buf_pool->LRU_mutex));
36346 buf_page_make_young(
36348 buf_frame_t* frame)
36350 buf_block_t* block;
36352 mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 901);
36354 block = buf_block_align(frame);
36356 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);
36358 buf_LRU_make_block_young(block);
36360 mutex_exit(&(buf_pool->LRU_mutex));
36369 buf_block_t* block)
36371 mutex_enter_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 920);
36373 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 922);
36375 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);
36377 buf_LRU_block_free_non_file_page(block);
36379 mutex_exit(&block->mutex);
36381 mutex_exit(&(buf_pool->free_mutex));
36388 buf_frame_alloc(void)
36392 return(buf_block_alloc()->frame);
36401 buf_frame_t* frame)
36403 buf_block_free(buf_block_align(frame));
36412 buf_page_peek_block(
36420 buf_block_t* block;
36422 rw_lock_s_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 971);
36424 block = buf_page_hash_get(space, offset);
36426 rw_lock_s_unlock_func(&(buf_pool->hash_latch));
36436 buf_reset_check_index_page_at_flush(
36441 buf_block_t* block;
36443 rw_lock_s_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 992);
36445 block = buf_page_hash_get(space, offset);
36448 block->check_index_page_at_flush = (0);
36451 rw_lock_s_unlock_func(&(buf_pool->hash_latch));
36460 buf_page_peek_if_search_hashed(
36467 buf_block_t* block;
36470 rw_lock_s_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 1019);
36472 block = buf_page_hash_get(space, offset);
36477 is_hashed = block->is_hashed;
36480 rw_lock_s_unlock_func(&(buf_pool->hash_latch));
36498 if (buf_page_peek_block(space, offset)) {
36513 buf_page_set_file_page_was_freed(
36520 buf_block_t* block;
36522 rw_lock_s_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 1071);
36524 block = buf_page_hash_get(space, offset);
36527 block->file_page_was_freed = (1);
36530 rw_lock_s_unlock_func(&(buf_pool->hash_latch));
36542 buf_page_reset_file_page_was_freed(
36549 buf_block_t* block;
36551 rw_lock_s_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 1100);
36553 block = buf_page_hash_get(space, offset);
36556 block->file_page_was_freed = (0);
36559 rw_lock_s_unlock_func(&(buf_pool->hash_latch));
36564 inline void _increment_page_get_statistics(buf_block_t* block, trx_t* trx)
36567 ulint block_hash_byte;
36568 unsigned char block_hash_offset;
36572 if (!srv_slow_log || !trx || !trx->take_stats)
36575 if (!trx->distinct_page_access_hash) {
36576 trx->distinct_page_access_hash = mem_alloc_func((8192), "buf/buf0buf.c", 1125);
36577 memset(trx->distinct_page_access_hash, 0, 8192);
36580 block_hash = ut_hash_ulint((block->space << 20) + block->space +
36581 block->offset, 8192 << 3);
36582 block_hash_byte = block_hash >> 3;
36583 block_hash_offset = (unsigned char) block_hash & 0x07;
36584 if (block_hash_byte < 0 || block_hash_byte >= 8192)
36585 fprintf(stderr, "!!! block_hash_byte = %lu block_hash_offset = %lu !!!\n", block_hash_byte, block_hash_offset);
36586 if (block_hash_offset < 0 || block_hash_offset > 7)
36587 fprintf(stderr, "!!! block_hash_byte = %lu block_hash_offset = %lu !!!\n", block_hash_byte, block_hash_offset);
36588 if ((trx->distinct_page_access_hash[block_hash_byte] & ((unsigned char) 0x01 << block_hash_offset)) == 0)
36589 trx->distinct_page_access++;
36590 trx->distinct_page_access_hash[block_hash_byte] |= (unsigned char) 0x01 << block_hash_offset;
36604 buf_frame_t* guess,
36611 buf_block_t* block;
36616 trx_t* trx = ((void *)0);
36619 ib_longlong start_time;
36620 ib_longlong finish_time;
36632 if (srv_slow_log) {
36633 trx = innobase_get_trx();
36635 buf_pool->n_page_gets++;
36637 block = ((void *)0);
36641 block = buf_block_align(guess);
36643 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1192);
36644 if ((offset != block->offset) || (space != block->space)
36645 || (block->state != 213)) {
36647 mutex_exit(&block->mutex);
36648 block = ((void *)0);
36652 if (block == ((void *)0)) {
36653 rw_lock_s_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 1202);
36654 block = buf_page_hash_get(space, offset);
36656 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1205);
36658 rw_lock_s_unlock_func(&(buf_pool->hash_latch));
36661 if (block == ((void *)0)) {
36668 return(((void *)0));
36671 buf_read_page(space, offset, trx);
36672 # 1229 "buf/buf0buf.c"
36678 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);
36682 if (block->io_fix == 561) {
36689 mutex_exit(&block->mutex);
36691 return(((void *)0));
36698 if (block->frame == ((void *)0)) {
36699 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);
36705 mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 1261);
36706 buf_awe_map_page_to_frame(block, (1));
36707 mutex_exit(&buf_pool->mutex);
36713 buf_block_buf_fix_inc(block);
36719 accessed = block->accessed;
36721 block->accessed = (1);
36723 mutex_exit(&block->mutex);
36725 buf_block_make_young(block);
36726 # 1295 "buf/buf0buf.c"
36727 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);
36731 if (rw_latch == 1) {
36732 success = rw_lock_s_lock_func_nowait(&(block->lock),
36737 success = rw_lock_x_lock_func_nowait(&(block->lock),
36743 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1311);
36747 if (__builtin_expect(block->buf_fix_count == 0, (0))) {
36748 buf_print_diagnostic(mtr, block);
36749 do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 1317); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0);
36752 block->buf_fix_count--;
36754 mutex_exit(&block->mutex);
36759 return(((void *)0));
36761 } else if (rw_latch == 3) {
36767 if (srv_slow_log && trx && trx->take_stats)
36769 ut_usectime(&sec, &ms);
36770 start_time = (ib_longlong)sec * 1000000 + ms;
36773 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1341);
36775 if (block->io_fix == 561) {
36777 mutex_exit(&block->mutex);
36779 os_thread_sleep(WAIT_FOR_READ);
36782 mutex_exit(&block->mutex);
36787 if (srv_slow_log && trx && trx->take_stats && start_time)
36789 ut_usectime(&sec, &ms);
36790 finish_time = (ib_longlong)sec * 1000000 + ms;
36791 trx->io_reads_wait_timer += (ulint)(finish_time - start_time);
36796 } else if (rw_latch == 1) {
36798 rw_lock_s_lock_func(&(block->lock), 0, file, line);
36802 rw_lock_x_lock_func(&(block->lock), 0, file, line);
36807 mtr_memo_push(mtr, block, fix_type);
36813 buf_read_ahead_linear(space, offset, trx);
36820 if (srv_slow_log) {
36821 _increment_page_get_statistics(block, trx);
36824 return(block->frame);
36832 buf_page_optimistic_get_func(
36836 buf_block_t* block,
36837 buf_frame_t* guess,
36839 dulint modify_clock,
36848 trx_t* trx = ((void *)0);
36855 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1423);
36857 if (__builtin_expect(block->state != 213, (0))
36858 || __builtin_expect(block->frame != guess, (0))) {
36860 mutex_exit(&block->mutex);
36868 buf_block_buf_fix_inc(block);
36870 accessed = block->accessed;
36871 block->accessed = (1);
36873 mutex_exit(&block->mutex);
36875 buf_block_make_young(block);
36881 if (rw_latch == 1) {
36882 success = rw_lock_s_lock_func_nowait(&(block->lock),
36886 success = rw_lock_x_lock_func_nowait(&(block->lock),
36891 if (__builtin_expect(!success, (0))) {
36892 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1460);
36896 if (__builtin_expect(block->buf_fix_count == 0, (0))) {
36897 buf_print_diagnostic(mtr, block);
36898 do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 1466); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0);
36901 block->buf_fix_count--;
36903 mutex_exit(&block->mutex);
36911 if (__builtin_expect(!(((modify_clock).low == (block->modify_clock).low) && ((modify_clock).high == (block->modify_clock).high)), (0))) {
36915 if (rw_latch == 1) {
36916 rw_lock_s_unlock_func(&(block->lock));
36918 rw_lock_x_unlock_func(&(block->lock));
36921 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1489);
36925 if (__builtin_expect(block->buf_fix_count == 0, (0))) {
36926 buf_print_diagnostic(mtr, block);
36927 do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 1495); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0);
36930 block->buf_fix_count--;
36932 mutex_exit(&block->mutex);
36940 mtr_memo_push(mtr, block, fix_type);
36941 # 1519 "buf/buf0buf.c"
36942 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);
36949 if (__builtin_expect(!accessed, (0))) {
36953 buf_read_ahead_linear(buf_frame_get_space_id(guess),
36954 buf_frame_get_page_no(guess), trx);
36960 buf_pool->n_page_gets++;
36962 if (srv_slow_log) {
36963 trx = innobase_get_trx();
36964 _increment_page_get_statistics(block, trx);
36976 buf_page_get_known_nowait(
36980 buf_frame_t* guess,
36986 buf_block_t* block;
36989 trx_t* trx = ((void *)0);
36994 block = buf_block_align(guess);
36996 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1573);
36998 if (block->state == 215) {
37006 mutex_exit(&block->mutex);
37011 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);
37016 buf_block_buf_fix_inc(block);
37018 mutex_exit(&block->mutex);
37021 buf_block_make_young(block);
37026 if (rw_latch == 1) {
37027 success = rw_lock_s_lock_func_nowait(&(block->lock),
37031 success = rw_lock_x_lock_func_nowait(&(block->lock),
37037 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1614);
37041 if (__builtin_expect(block->buf_fix_count == 0, (0))) {
37042 buf_print_diagnostic(mtr, block);
37043 do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 1620); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0);
37046 block->buf_fix_count--;
37048 mutex_exit(&block->mutex);
37057 mtr_memo_push(mtr, block, fix_type);
37058 # 1644 "buf/buf0buf.c"
37059 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);
37061 # 1654 "buf/buf0buf.c"
37062 buf_pool->n_page_gets++;
37064 if (srv_slow_log) {
37065 trx = innobase_get_trx();
37066 _increment_page_get_statistics(block, trx);
37076 buf_page_init_for_backup_restore(
37081 buf_block_t* block)
37084 block->magic_n = 41526563;
37086 block->state = 213;
37087 block->space = space;
37088 block->offset = offset;
37090 block->lock_hash_val = 0;
37092 block->freed_page_clock = 0;
37094 block->newest_modification = ut_dulint_zero;
37095 block->oldest_modification = ut_dulint_zero;
37097 block->accessed = (0);
37098 block->buf_fix_count = 0;
37101 block->n_hash_helps = 0;
37102 block->is_hashed = (0);
37103 block->n_fields = 1;
37104 block->n_bytes = 0;
37107 block->file_page_was_freed = (0);
37119 buf_block_t* block)
37125 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);
37128 block->magic_n = 41526563;
37130 block->state = 213;
37131 block->space = space;
37132 block->offset = offset;
37134 block->check_index_page_at_flush = (0);
37135 block->index = ((void *)0);
37137 block->lock_hash_val = lock_rec_hash(space, offset);
37141 if (buf_page_hash_get(space, offset)) {
37143 "InnoDB: Error: page %lu %lu already found from the hash table\n",
37152 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);
37155 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);
37158 block->freed_page_clock = 0;
37160 block->newest_modification = ut_dulint_zero;
37161 block->oldest_modification = ut_dulint_zero;
37163 block->accessed = (0);
37164 block->buf_fix_count = 0;
37167 block->n_hash_helps = 0;
37168 block->is_hashed = (0);
37169 block->n_fields = 1;
37170 block->n_bytes = 0;
37173 block->file_page_was_freed = (0);
37175 # 1780 "buf/buf0buf.c"
37177 buf_page_init_for_read(
37183 ib_longlong tablespace_version,
37188 buf_block_t* block;
37203 if (!ibuf_page_low(space, offset, &mtr)) {
37207 return(((void *)0));
37213 block = buf_block_alloc();
37215 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);
37217 mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 1821);
37218 rw_lock_x_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 1822);
37219 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1823);
37221 if (fil_tablespace_deleted_or_being_deleted_in_mem(space,
37222 tablespace_version)) {
37227 || ((void *)0) != buf_page_hash_get(space, offset)) {
37232 mutex_exit(&block->mutex);
37233 mutex_exit(&(buf_pool->LRU_mutex));
37234 rw_lock_x_unlock_func(&(buf_pool->hash_latch));
37236 buf_block_free(block);
37243 return(((void *)0));
37248 buf_page_init(space, offset, block);
37249 rw_lock_x_unlock_func(&(buf_pool->hash_latch));
37253 buf_LRU_add_block(block, (1));
37254 mutex_exit(&(buf_pool->LRU_mutex));
37256 mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 1860);
37258 block->io_fix = 561;
37260 buf_pool->n_pend_reads++;
37261 # 1873 "buf/buf0buf.c"
37262 rw_lock_x_lock_func( (&(block->lock)), (561), "buf/buf0buf.c", 1873);
37264 mutex_exit(&block->mutex);
37265 mutex_exit(&(buf_pool->mutex));
37290 buf_frame_t* frame;
37291 buf_block_t* block;
37292 buf_block_t* free_block = ((void *)0);
37296 free_block = buf_LRU_get_free_block();
37298 mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 1909);
37299 rw_lock_x_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 1910);
37301 block = buf_page_hash_get(space, offset);
37303 if (block != ((void *)0)) {
37307 block->file_page_was_freed = (0);
37310 mutex_exit(&(buf_pool->LRU_mutex));
37311 rw_lock_x_unlock_func(&(buf_pool->hash_latch));
37313 buf_block_free(free_block);
37315 frame = buf_page_get_gen( space, offset, 3, ((void *)0), 14, "buf/buf0buf.c", 1926, mtr);
37319 # 1940 "buf/buf0buf.c"
37320 block = free_block;
37322 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 1942);
37324 buf_page_init(space, offset, block);
37325 rw_lock_x_unlock_func(&(buf_pool->hash_latch));
37328 buf_LRU_add_block(block, (0));
37333 buf_block_buf_fix_inc(block);
37335 buf_pool->n_pages_created++;
37337 mutex_exit(&(buf_pool->LRU_mutex));
37339 mtr_memo_push(mtr, block, 3);
37341 block->accessed = (1);
37343 mutex_exit(&block->mutex);
37348 ibuf_merge_or_delete_for_page(((void *)0), space, offset, (1));
37351 buf_flush_free_margin((0));
37353 frame = block->frame;
37361 memset(frame + 26, 0, 8);
37362 # 1993 "buf/buf0buf.c"
37371 buf_page_io_complete(
37373 buf_block_t* block)
37376 ulint read_page_no;
37379 buf_io_counter_t* io_counter;
37384 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);
37392 io_type = block->io_fix;
37394 if (io_type == 561) {
37399 read_page_no = mach_read_from_4((block->frame)
37401 if (read_page_no != 0
37402 && !trx_doublewrite_page_inside(read_page_no)
37403 && read_page_no != block->offset) {
37406 "InnoDB: Error: page n:o stored in the page read in is %lu, should be %lu!\n",
37407 (ulong) read_page_no, (ulong) block->offset);
37412 if (buf_page_is_corrupted(block->frame)) {
37414 "InnoDB: Database page corruption on disk or a failed\n"
37415 "InnoDB: file read of page %lu.\n", (ulong) block->offset);
37418 "InnoDB: You may have to recover from a backup.\n", stderr);
37420 buf_page_print(block->frame);
37423 "InnoDB: Database page corruption on disk or a failed\n"
37424 "InnoDB: file read of page %lu.\n", (ulong) block->offset);
37426 "InnoDB: You may have to recover from a backup.\n", stderr);
37428 "InnoDB: It is also possible that your operating\n"
37429 "InnoDB: system has corrupted its own file cache\n"
37430 "InnoDB: and rebooting your computer removes the\n"
37432 "InnoDB: If the corrupt page is an index page\n"
37433 "InnoDB: you can also try to fix the corruption\n"
37434 "InnoDB: by dumping, dropping, and reimporting\n"
37435 "InnoDB: the corrupt table. You can use CHECK\n"
37436 "InnoDB: TABLE to scan your table for corruption.\n"
37437 "InnoDB: See also "
37438 "InnoDB: http://dev.mysql.com/doc/refman/5.0/en/forcing-recovery.html\n"
37439 "InnoDB: about forcing recovery.\n", stderr);
37441 if (srv_force_recovery < 1) {
37443 "InnoDB: Ending processing because of a corrupt database page.\n",
37449 if (recv_recovery_is_on()) {
37450 recv_recover_page((0), (1), block->frame,
37451 block->space, block->offset);
37454 if (!recv_no_ibuf_operations) {
37455 ibuf_merge_or_delete_for_page(block->frame,
37456 block->space, block->offset, (1));
37459 # 2098 "buf/buf0buf.c"
37460 if (io_type == 561) {
37461 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 2099);
37462 mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 2100);
37471 buf_pool->n_pend_reads--;
37472 buf_pool->n_pages_read++;
37474 rw_lock_x_unlock_func(&(block->lock));
37476 if (srv_io_pattern && srv_io_pattern_trace_running) {
37477 fold = buf_page_address_fold(block->space, block->offset);
37478 { (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); } }};
37480 if (io_counter == ((void *)0) && buf_pool->io_counters < srv_io_pattern_size_limit) {
37481 io_counter = mem_heap_alloc(buf_pool->io_counter_heap,(sizeof(buf_io_counter_t)));
37482 io_counter->space = block->space;
37483 io_counter->offset = block->offset;
37484 io_counter->n_read = 0;
37485 io_counter->n_write = 0;
37486 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);
37488 buf_pool->io_counters++;
37490 if (io_counter != ((void *)0)) {
37491 io_counter->index_id = ut_dulint_get_low(btr_page_get_index_id(buf_block_get_frame(block)));
37492 io_counter->n_read++;
37496 mutex_exit(&(buf_pool->mutex));
37497 mutex_exit(&block->mutex);
37506 flush_type = block->flush_type;
37507 if (flush_type == 1) {
37508 mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 2146);
37510 mutex_enter_func((&(buf_pool->flush_list_mutex)), "buf/buf0buf.c", 2148);
37511 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 2149);
37512 mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 2150);
37519 buf_flush_write_complete(block);
37521 mutex_exit(&(buf_pool->flush_list_mutex));
37522 if (flush_type == 1) {
37523 mutex_exit(&(buf_pool->LRU_mutex));
37526 rw_lock_s_unlock_func(&(block->lock));
37528 if (srv_io_pattern && srv_io_pattern_trace_running) {
37529 fold = buf_page_address_fold(block->space, block->offset);
37530 { (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); } }};
37532 if (io_counter == ((void *)0) && buf_pool->io_counters < srv_io_pattern_size_limit) {
37533 io_counter = mem_heap_alloc(buf_pool->io_counter_heap,(sizeof(buf_io_counter_t)));
37534 io_counter->space = block->space;
37535 io_counter->offset = block->offset;
37536 io_counter->n_read = 0;
37537 io_counter->n_write = 0;
37538 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);
37540 buf_pool->io_counters++;
37542 if (io_counter != ((void *)0)) {
37543 io_counter->index_id = ut_dulint_get_low(btr_page_get_index_id(buf_block_get_frame(block)));
37544 io_counter->n_write++;
37548 buf_pool->n_pages_written++;
37550 mutex_exit(&(buf_pool->mutex));
37551 mutex_exit(&block->mutex);
37574 buf_pool_invalidate(void)
37584 freed = buf_LRU_search_and_free_block(100);
37587 mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 2225);
37591 mutex_exit(&(buf_pool->LRU_mutex));
37601 buf_block_t* block;
37603 ulint n_single_flush = 0;
37604 ulint n_lru_flush = 0;
37605 ulint n_list_flush = 0;
37610 ulint n_single_flush_tmp = 0;
37611 ulint n_lru_flush_tmp = 0;
37612 ulint n_list_flush_tmp = 0;
37616 mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 2254);
37617 mutex_enter_func((&(buf_pool->flush_list_mutex)), "buf/buf0buf.c", 2255);
37618 mutex_enter_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 2256);
37619 rw_lock_x_lock_func( (&(buf_pool->hash_latch)), 0, "buf/buf0buf.c", 2257);
37621 mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 2259);
37622 n_single_flush_tmp = buf_pool->n_flush[2];
37623 n_list_flush_tmp = buf_pool->n_flush[3];
37624 n_lru_flush_tmp = buf_pool->n_flush[1];
37625 mutex_exit(&(buf_pool->mutex));
37627 for (i = 0; i < buf_pool->curr_size; i++) {
37629 block = buf_pool_get_nth_block(buf_pool, i);
37631 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 2269);
37633 if (block->state == 213) {
37635 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);
37644 if (block->io_fix == 562) {
37646 if (block->flush_type == 1) {
37648 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);
37650 } else if (block->flush_type ==
37653 } else if (block->flush_type ==
37657 do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 2295); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0);
37660 } else if (block->io_fix == 561) {
37662 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);
37668 if (ut_dulint_cmp(block->oldest_modification,
37669 ut_dulint_zero) > 0) {
37673 } else if (block->state == 211) {
37677 mutex_exit(&block->mutex);
37680 if (n_lru + n_free > buf_pool->curr_size) {
37681 fprintf(stderr, "n LRU %lu, n free %lu\n", (ulong) n_lru, (ulong) n_free);
37682 do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 2320); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0);
37685 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);
37686 if ((buf_pool->free).count != n_free) {
37687 fprintf(stderr, "Free list len %lu, free blocks %lu\n",
37688 (ulong) (buf_pool->free).count, (ulong) n_free);
37689 do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 2327); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0);
37691 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);
37693 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);
37694 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);
37695 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);
37697 mutex_exit(&(buf_pool->LRU_mutex));
37698 mutex_exit(&(buf_pool->flush_list_mutex));
37699 mutex_exit(&(buf_pool->free_mutex));
37700 rw_lock_x_unlock_func(&(buf_pool->hash_latch));
37702 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);
37703 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);
37722 buf_frame_t* frame;
37723 dict_index_t* index;
37727 size = buf_pool->curr_size;
37729 index_ids = mem_alloc_func((sizeof(dulint) * size), "buf/buf0buf.c", 2367);
37730 counts = mem_alloc_func((sizeof(ulint) * size), "buf/buf0buf.c", 2368);
37732 mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 2370);
37733 mutex_enter_func((&(buf_pool->flush_list_mutex)), "buf/buf0buf.c", 2371);
37734 mutex_enter_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 2372);
37737 "buf_pool size %lu\n"
37738 "database pages %lu\n"
37740 "modified database pages %lu\n"
37741 "n pending reads %lu\n"
37742 "n pending flush LRU %lu list %lu single page %lu\n"
37743 "pages read %lu, created %lu, written %lu\n",
37745 (ulong) (buf_pool->LRU).count,
37746 (ulong) (buf_pool->free).count,
37747 (ulong) (buf_pool->flush_list).count,
37748 (ulong) buf_pool->n_pend_reads,
37749 (ulong) buf_pool->n_flush[1],
37750 (ulong) buf_pool->n_flush[3],
37751 (ulong) buf_pool->n_flush[2],
37752 (ulong) buf_pool->n_pages_read, buf_pool->n_pages_created,
37753 (ulong) buf_pool->n_pages_written);
37759 for (i = 0; i < size; i++) {
37760 frame = buf_pool_get_nth_block(buf_pool, i)->frame;
37762 if (fil_page_get_type(frame) == 17855) {
37764 id = btr_page_get_index_id(frame);
37769 while (j < n_found) {
37771 if (ut_dulint_cmp(index_ids[j], id) == 0) {
37779 if (j == n_found) {
37787 mutex_exit(&(buf_pool->LRU_mutex));
37788 mutex_exit(&(buf_pool->flush_list_mutex));
37789 mutex_exit(&(buf_pool->free_mutex));
37791 for (i = 0; i < n_found; i++) {
37792 index = dict_index_get_if_in_cache(index_ids[i]);
37795 "Block count for index %lu in buffer is about %lu",
37796 (ulong) ut_dulint_get_low(index_ids[i]),
37797 (ulong) counts[i]);
37800 _IO_putc (' ', stderr);
37801 dict_index_name_print(stderr, ((void *)0), index);
37804 _IO_putc ('\n', stderr);
37807 mem_free_func((index_ids), "buf/buf0buf.c", 2445);
37808 mem_free_func((counts), "buf/buf0buf.c", 2446);
37810 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);
37812 # 2484 "buf/buf0buf.c"
37814 buf_get_n_pending_ios(void)
37817 return(buf_pool->n_pend_reads
37818 + buf_pool->n_flush[1]
37819 + buf_pool->n_flush[3]
37820 + buf_pool->n_flush[2]);
37828 buf_get_modified_ratio_pct(void)
37833 mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 2504);
37834 mutex_enter_func((&(buf_pool->flush_list_mutex)), "buf/buf0buf.c", 2505);
37835 mutex_enter_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 2506);
37837 ratio = (100 * (buf_pool->flush_list).count)
37838 / (1 + (buf_pool->LRU).count
37839 + (buf_pool->free).count);
37843 mutex_exit(&(buf_pool->LRU_mutex));
37844 mutex_exit(&(buf_pool->flush_list_mutex));
37845 mutex_exit(&(buf_pool->free_mutex));
37858 time_t current_time;
37859 double time_elapsed;
37863 size = buf_pool->curr_size;
37865 mutex_enter_func((&(buf_pool->LRU_mutex)), "buf/buf0buf.c", 2536);
37866 mutex_enter_func((&(buf_pool->flush_list_mutex)), "buf/buf0buf.c", 2537);
37867 mutex_enter_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 2538);
37868 mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 2539);
37872 "AWE: Buffer pool memory frames %lu\n",
37873 (ulong) buf_pool->n_frames);
37876 "AWE: Database pages and free buffers mapped in frames %lu\n",
37877 (ulong) (buf_pool->awe_LRU_free_mapped).count);
37880 "Buffer pool size %lu\n"
37881 "Buffer pool size, bytes %lu\n"
37882 "Free buffers %lu\n"
37883 "Database pages %lu\n"
37884 "Modified db pages %lu\n"
37885 "Pending reads %lu\n"
37886 "Pending writes: LRU %lu, flush list %lu, single page %lu\n",
37888 (ulong) size * (2 * 8192),
37889 (ulong) (buf_pool->free).count,
37890 (ulong) (buf_pool->LRU).count,
37891 (ulong) (buf_pool->flush_list).count,
37892 (ulong) buf_pool->n_pend_reads,
37893 (ulong) buf_pool->n_flush[1]
37894 + buf_pool->init_flush[1],
37895 (ulong) buf_pool->n_flush[3]
37896 + buf_pool->init_flush[3],
37897 (ulong) buf_pool->n_flush[2]);
37899 current_time = time(((void *)0));
37900 time_elapsed = 0.001 + difftime(current_time,
37901 buf_pool->last_printout_time);
37902 buf_pool->last_printout_time = current_time;
37905 "Pages read %lu, created %lu, written %lu\n"
37906 "%.2f reads/s, %.2f creates/s, %.2f writes/s\n",
37907 (ulong) buf_pool->n_pages_read,
37908 (ulong) buf_pool->n_pages_created,
37909 (ulong) buf_pool->n_pages_written,
37910 (buf_pool->n_pages_read - buf_pool->n_pages_read_old)
37912 (buf_pool->n_pages_created - buf_pool->n_pages_created_old)
37914 (buf_pool->n_pages_written - buf_pool->n_pages_written_old)
37918 fprintf(file, "AWE: %.2f page remaps/s\n",
37919 (buf_pool->n_pages_awe_remapped
37920 - buf_pool->n_pages_awe_remapped_old)
37924 if (buf_pool->n_page_gets > buf_pool->n_page_gets_old) {
37925 fprintf(file, "Buffer pool hit rate %lu / 1000\n",
37928 (buf_pool->n_pages_read - buf_pool->n_pages_read_old))
37929 / (buf_pool->n_page_gets - buf_pool->n_page_gets_old))));
37931 fputs("No buffer pool page gets since the last printout\n",
37935 buf_pool->n_page_gets_old = buf_pool->n_page_gets;
37936 buf_pool->n_pages_read_old = buf_pool->n_pages_read;
37937 buf_pool->n_pages_created_old = buf_pool->n_pages_created;
37938 buf_pool->n_pages_written_old = buf_pool->n_pages_written;
37939 buf_pool->n_pages_awe_remapped_old = buf_pool->n_pages_awe_remapped;
37941 mutex_exit(&(buf_pool->LRU_mutex));
37942 mutex_exit(&(buf_pool->flush_list_mutex));
37943 mutex_exit(&(buf_pool->free_mutex));
37944 mutex_exit(&(buf_pool->mutex));
37951 buf_refresh_io_stats(void)
37954 buf_pool->last_printout_time = time(((void *)0));
37955 buf_pool->n_page_gets_old = buf_pool->n_page_gets;
37956 buf_pool->n_pages_read_old = buf_pool->n_pages_read;
37957 buf_pool->n_pages_created_old = buf_pool->n_pages_created;
37958 buf_pool->n_pages_written_old = buf_pool->n_pages_written;
37959 buf_pool->n_pages_awe_remapped_old = buf_pool->n_pages_awe_remapped;
37966 buf_all_freed(void)
37969 buf_block_t* block;
37974 for (i = 0; i < buf_pool->curr_size; i++) {
37976 block = buf_pool_get_nth_block(buf_pool, i);
37978 mutex_enter_func((&block->mutex), "buf/buf0buf.c", 2649);
37980 if (block->state == 213) {
37982 if (!buf_flush_ready_for_replace(block)) {
37985 "Page %lu %lu still fixed or dirty\n",
37986 (ulong) block->space,
37987 (ulong) block->offset);
37988 do { ut_dbg_assertion_failed(0, "buf/buf0buf.c", (ulint) 2659); if (*(ut_dbg_null_ptr)) ut_dbg_null_ptr = ((void *)0); } while (0);
37992 mutex_exit(&block->mutex);
38003 buf_pool_check_no_pending_io(void)
38009 mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 2680);
38011 if (buf_pool->n_pend_reads + buf_pool->n_flush[1]
38012 + buf_pool->n_flush[3]
38013 + buf_pool->n_flush[2]) {
38019 mutex_exit(&(buf_pool->mutex));
38028 buf_get_free_list_len(void)
38033 mutex_enter_func((&(buf_pool->free_mutex)), "buf/buf0buf.c", 2704);
38035 len = (buf_pool->free).count;
38037 mutex_exit(&(buf_pool->free_mutex));
38048 const buf_block_t* block)
38051 "BLOCK fields\nmagic_n: 0x%lx\n"
38052 "state: %lu frame: 0x%lx space:offset: 0x%lx:0x%lx\n"
38053 "hash value: 0x%lx check_index_page_at_flush: %ld\n"
38054 "newest_modification %lu:%lu oldest_modification %lu:%lu\n"
38055 "flush_type: %lu in_free_list: %ld in_LRU_list: %ld\n"
38056 "LRU_position: %ld freed_page_clock: %lu old: %ld\n"
38057 "accessed: %ld buf_fix_count: %lu io_fix: %ld "
38058 "modify_clock: %lu:%lu\n"
38059 "n_hash_helps: %lu n_fields: %ld n_bytes: %lu side: %lu\n"
38060 "is_hashed: %lu n_pointers: %lu curr_n_fields: %lu\n"
38061 "curr_n_bytes: %lu curr_side: %lu index name: %s\n"
38062 "file_page_was_freed: %lu\n",
38063 block->magic_n, block->state, (ulint) block->frame,
38064 block->space, block->offset, block->lock_hash_val,
38065 block->check_index_page_at_flush,
38066 ut_dulint_get_high(block->newest_modification),
38067 ut_dulint_get_low(block->newest_modification),
38068 ut_dulint_get_high(block->oldest_modification),
38069 ut_dulint_get_low(block->oldest_modification),
38070 block->flush_type, block->in_free_list, block->in_LRU_list,
38071 block->LRU_position, block->freed_page_clock,
38072 block->old, block->accessed, block->buf_fix_count,
38074 ut_dulint_get_high(block->modify_clock),
38075 ut_dulint_get_low(block->modify_clock),
38076 block->n_hash_helps, block->n_fields, block->n_bytes,
38077 block->side, block->is_hashed, block->n_pointers,
38078 block->curr_n_fields, block->curr_n_bytes,
38079 block->curr_side, block->index->name,
38080 block->file_page_was_freed);
38087 buf_print_diagnostic(
38090 const buf_block_t* block)
38092 fprintf(stderr, "=== MTR ===\n");
38096 buf_LRU_validate();
38097 buf_print_io(stderr);
38098 fprintf(stderr, "=== BLOCK ===\n");
38099 buf_block_print(block);
38103 buf_pool_get_nth_block_no_inline(
38106 buf_pool_t* buf_pool,
38109 return buf_pool_get_nth_block(buf_pool, i);
38118 buf_io_counter_control(void)
38123 mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 2794);
38124 if (srv_io_pattern_trace) {
38125 if (buf_pool->io_counter_hash == ((void *)0)) {
38127 buf_pool->io_counter_hash = hash0_create(20 * buf_pool->max_size);
38128 buf_pool->io_counter_heap = mem_heap_create_func( (4096 * 1024), ((void *)0), 0, "buf/buf0buf.c", 2799);
38129 buf_pool->io_counters = 0;
38131 srv_io_pattern = (1);
38134 if (buf_pool->io_counter_hash != ((void *)0)) {
38135 srv_io_pattern = (0);
38137 for (n = 0; n < buf_pool->io_counter_hash->n_cells; n++) {
38138 (buf_pool->io_counter_hash->array + n)->node = ((void *)0);
38140 mem_heap_free_func( (buf_pool->io_counter_heap), "buf/buf0buf.c", 2811);
38141 buf_pool->io_counter_heap = ((void *)0);
38142 buf_pool->io_counters = 0;
38144 hash_table_free(buf_pool->io_counter_hash);
38145 buf_pool->io_counter_hash = ((void *)0);
38148 mutex_exit(&(buf_pool->mutex));
38152 buf_io_counter_clear(void)
38157 mutex_enter_func((&(buf_pool->mutex)), "buf/buf0buf.c", 2828);
38158 if (buf_pool->io_counter_hash != ((void *)0)) {
38159 for (n = 0; n < buf_pool->io_counter_hash->n_cells; n++) {
38160 (buf_pool->io_counter_hash->array + n)->node = ((void *)0);
38162 mem_heap_empty(buf_pool->io_counter_heap);
38163 buf_pool->io_counters = 0;
38165 mutex_exit(&(buf_pool->mutex));