X-Git-Url: https://git.wh0rd.org/?p=ICEs.git;a=blobdiff_plain;f=434908%2Fop_helper.i;fp=434908%2Fop_helper.i;h=1314a390800b66241263eba85c716569ba8514e8;hp=0000000000000000000000000000000000000000;hb=bd3239d2bbe0de3a200b266503e3330b1e391489;hpb=dbff64cb4b7530861c2309c794efdd4e0cf47a23 diff --git a/434908/op_helper.i b/434908/op_helper.i new file mode 100644 index 0000000..1314a39 --- /dev/null +++ b/434908/op_helper.i @@ -0,0 +1,30286 @@ +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +# 1 "" +# 1 "" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +# 20 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +# 1 "/usr/include/math.h" 1 3 4 +# 28 "/usr/include/math.h" 3 4 +# 1 "/usr/include/features.h" 1 3 4 +# 358 "/usr/include/features.h" 3 4 +# 1 "/usr/include/sys/cdefs.h" 1 3 4 +# 378 "/usr/include/sys/cdefs.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 379 "/usr/include/sys/cdefs.h" 2 3 4 +# 359 "/usr/include/features.h" 2 3 4 +# 382 "/usr/include/features.h" 3 4 +# 1 "/usr/include/gnu/stubs.h" 1 3 4 + + + +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 5 "/usr/include/gnu/stubs.h" 2 3 4 + + +# 1 "/usr/include/gnu/stubs-32.h" 1 3 4 +# 8 "/usr/include/gnu/stubs.h" 2 3 4 +# 383 "/usr/include/features.h" 2 3 4 +# 29 "/usr/include/math.h" 2 3 4 + + + + + +# 1 "/usr/include/bits/huge_val.h" 1 3 4 +# 35 "/usr/include/math.h" 2 3 4 + +# 1 "/usr/include/bits/huge_valf.h" 1 3 4 +# 37 "/usr/include/math.h" 2 3 4 +# 1 "/usr/include/bits/huge_vall.h" 1 3 4 +# 38 "/usr/include/math.h" 2 3 4 + + +# 1 "/usr/include/bits/inf.h" 1 3 4 +# 41 "/usr/include/math.h" 2 3 4 + + +# 1 "/usr/include/bits/nan.h" 1 3 4 +# 44 "/usr/include/math.h" 2 3 4 + + + +# 1 "/usr/include/bits/mathdef.h" 1 3 4 +# 36 "/usr/include/bits/mathdef.h" 3 4 +typedef long double float_t; + +typedef long double double_t; +# 48 "/usr/include/math.h" 2 3 4 +# 71 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + + +extern double acos (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __acos (double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern double asin (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __asin (double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern double atan (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __atan (double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern double atan2 (double __y, double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __atan2 (double __y, double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern double cos (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __cos (double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern double sin (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __sin (double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern double tan (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __tan (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern double cosh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __cosh (double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern double sinh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __sinh (double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern double tanh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __tanh (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern void sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__ , __leaf__)); extern void __sincos (double __x, double *__sinx, double *__cosx) __attribute__ ((__nothrow__ , __leaf__)) + ; + + + + + +extern double acosh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __acosh (double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern double asinh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __asinh (double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern double atanh (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __atanh (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + +extern double exp (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __exp (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern double frexp (double __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); extern double __frexp (double __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); + + +extern double ldexp (double __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); extern double __ldexp (double __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); + + +extern double log (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __log (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern double log10 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __log10 (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern double modf (double __x, double *__iptr) __attribute__ ((__nothrow__ , __leaf__)); extern double __modf (double __x, double *__iptr) __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__nonnull__ (2))); + + + + +extern double exp10 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __exp10 (double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern double pow10 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __pow10 (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern double expm1 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __expm1 (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern double log1p (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __log1p (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern double logb (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __logb (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern double exp2 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __exp2 (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern double log2 (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __log2 (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + + +extern double pow (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __pow (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); + + +extern double sqrt (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __sqrt (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern double hypot (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __hypot (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern double cbrt (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __cbrt (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + + +extern double ceil (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __ceil (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern double fabs (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __fabs (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern double floor (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __floor (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern double fmod (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __fmod (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int __isinf (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern int __finite (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + + + +extern int isinf (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern int finite (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern double drem (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __drem (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern double significand (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __significand (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern double copysign (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __copysign (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + + + + +extern double nan (__const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __nan (__const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + + + +extern int __isnan (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + +extern int isnan (double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern double j0 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __j0 (double) __attribute__ ((__nothrow__ , __leaf__)); +extern double j1 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __j1 (double) __attribute__ ((__nothrow__ , __leaf__)); +extern double jn (int, double) __attribute__ ((__nothrow__ , __leaf__)); extern double __jn (int, double) __attribute__ ((__nothrow__ , __leaf__)); +extern double y0 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __y0 (double) __attribute__ ((__nothrow__ , __leaf__)); +extern double y1 (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __y1 (double) __attribute__ ((__nothrow__ , __leaf__)); +extern double yn (int, double) __attribute__ ((__nothrow__ , __leaf__)); extern double __yn (int, double) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern double erf (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __erf (double) __attribute__ ((__nothrow__ , __leaf__)); +extern double erfc (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __erfc (double) __attribute__ ((__nothrow__ , __leaf__)); +extern double lgamma (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __lgamma (double) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern double tgamma (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __tgamma (double) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern double gamma (double) __attribute__ ((__nothrow__ , __leaf__)); extern double __gamma (double) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern double lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); extern double __lgamma_r (double, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + +extern double rint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __rint (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern double nextafter (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __nextafter (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + +extern double nexttoward (double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __nexttoward (double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + +extern double remainder (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __remainder (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern double scalbn (double __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); extern double __scalbn (double __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int ilogb (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern int __ilogb (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern double scalbln (double __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); extern double __scalbln (double __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern double nearbyint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern double __nearbyint (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern double round (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __round (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + +extern double trunc (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern double __trunc (double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + + +extern double remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); extern double __remquo (double __x, double __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern long int lrint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lrint (double __x) __attribute__ ((__nothrow__ , __leaf__)); +extern long long int llrint (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llrint (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern long int lround (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lround (double __x) __attribute__ ((__nothrow__ , __leaf__)); +extern long long int llround (double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llround (double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern double fdim (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __fdim (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); + + +extern double fmax (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __fmax (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); + + +extern double fmin (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); extern double __fmin (double __x, double __y) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int __fpclassify (double __value) __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__const__)); + + +extern int __signbit (double __value) __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__const__)); + + + +extern double fma (double __x, double __y, double __z) __attribute__ ((__nothrow__ , __leaf__)); extern double __fma (double __x, double __y, double __z) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + + +extern double scalb (double __x, double __n) __attribute__ ((__nothrow__ , __leaf__)); extern double __scalb (double __x, double __n) __attribute__ ((__nothrow__ , __leaf__)); +# 72 "/usr/include/math.h" 2 3 4 +# 94 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + + +extern float acosf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __acosf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern float asinf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __asinf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern float atanf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __atanf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern float atan2f (float __y, float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __atan2f (float __y, float __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern float cosf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __cosf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern float sinf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __sinf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern float tanf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __tanf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern float coshf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __coshf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern float sinhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __sinhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern float tanhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __tanhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern void + sincosf +# 82 "/usr/include/bits/mathcalls.h" 3 4 + (float __x, float *__sinx, float *__cosx) __attribute__ ((__nothrow__ , __leaf__)); extern void + __sincosf +# 82 "/usr/include/bits/mathcalls.h" 3 4 + (float __x, float *__sinx, float *__cosx) __attribute__ ((__nothrow__ , __leaf__)) + ; + + + + + +extern float acoshf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __acoshf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern float asinhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __asinhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern float atanhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __atanhf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + +extern float expf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __expf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern float frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); extern float __frexpf (float __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); + + +extern float ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); extern float __ldexpf (float __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); + + +extern float logf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __logf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern float log10f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __log10f (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern float modff (float __x, float *__iptr) __attribute__ ((__nothrow__ , __leaf__)); extern float __modff (float __x, float *__iptr) __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__nonnull__ (2))); + + + + +extern float exp10f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __exp10f (float __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern float pow10f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __pow10f (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern float expm1f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __expm1f (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern float log1pf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __log1pf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern float logbf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __logbf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern float exp2f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __exp2f (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern float log2f (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __log2f (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + + +extern float powf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __powf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); + + +extern float sqrtf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __sqrtf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern float hypotf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __hypotf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern float cbrtf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __cbrtf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + + +extern float ceilf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __ceilf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern float fabsf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __fabsf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern float floorf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __floorf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern float fmodf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __fmodf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int __isinff (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern int __finitef (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + + + +extern int isinff (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern int finitef (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern float dremf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __dremf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern float significandf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __significandf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern float copysignf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __copysignf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + + + + +extern float nanf (__const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __nanf (__const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + + + +extern int __isnanf (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + +extern int isnanf (float __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern float j0f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __j0f (float) __attribute__ ((__nothrow__ , __leaf__)); +extern float j1f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __j1f (float) __attribute__ ((__nothrow__ , __leaf__)); +extern float jnf (int, float) __attribute__ ((__nothrow__ , __leaf__)); extern float __jnf (int, float) __attribute__ ((__nothrow__ , __leaf__)); +extern float y0f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __y0f (float) __attribute__ ((__nothrow__ , __leaf__)); +extern float y1f (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __y1f (float) __attribute__ ((__nothrow__ , __leaf__)); +extern float ynf (int, float) __attribute__ ((__nothrow__ , __leaf__)); extern float __ynf (int, float) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern float erff (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __erff (float) __attribute__ ((__nothrow__ , __leaf__)); +extern float erfcf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __erfcf (float) __attribute__ ((__nothrow__ , __leaf__)); +extern float lgammaf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __lgammaf (float) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern float tgammaf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __tgammaf (float) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern float gammaf (float) __attribute__ ((__nothrow__ , __leaf__)); extern float __gammaf (float) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern float lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); extern float __lgammaf_r (float, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + +extern float rintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __rintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern float nextafterf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __nextafterf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + +extern float nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __nexttowardf (float __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + +extern float remainderf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __remainderf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern float scalbnf (float __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); extern float __scalbnf (float __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int ilogbf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern int __ilogbf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern float scalblnf (float __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); extern float __scalblnf (float __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern float nearbyintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern float __nearbyintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern float roundf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __roundf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + +extern float truncf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern float __truncf (float __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + + +extern float remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); extern float __remquof (float __x, float __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern long int lrintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lrintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); +extern long long int llrintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llrintf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern long int lroundf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lroundf (float __x) __attribute__ ((__nothrow__ , __leaf__)); +extern long long int llroundf (float __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llroundf (float __x) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern float fdimf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __fdimf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); + + +extern float fmaxf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __fmaxf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); + + +extern float fminf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); extern float __fminf (float __x, float __y) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int __fpclassifyf (float __value) __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__const__)); + + +extern int __signbitf (float __value) __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__const__)); + + + +extern float fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__ , __leaf__)); extern float __fmaf (float __x, float __y, float __z) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + + +extern float scalbf (float __x, float __n) __attribute__ ((__nothrow__ , __leaf__)); extern float __scalbf (float __x, float __n) __attribute__ ((__nothrow__ , __leaf__)); +# 95 "/usr/include/math.h" 2 3 4 +# 143 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathcalls.h" 1 3 4 +# 53 "/usr/include/bits/mathcalls.h" 3 4 + + +extern long double acosl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __acosl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern long double asinl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __asinl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern long double atanl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __atanl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern long double atan2l (long double __y, long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __atan2l (long double __y, long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern long double cosl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __cosl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern long double sinl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __sinl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern long double tanl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __tanl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern long double coshl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __coshl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern long double sinhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __sinhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern long double tanhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __tanhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern void + sincosl +# 82 "/usr/include/bits/mathcalls.h" 3 4 + (long double __x, long double *__sinx, long double *__cosx) __attribute__ ((__nothrow__ , __leaf__)); extern void + __sincosl +# 82 "/usr/include/bits/mathcalls.h" 3 4 + (long double __x, long double *__sinx, long double *__cosx) __attribute__ ((__nothrow__ , __leaf__)) + ; + + + + + +extern long double acoshl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __acoshl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern long double asinhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __asinhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern long double atanhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __atanhl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + +extern long double expl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __expl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern long double frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); extern long double __frexpl (long double __x, int *__exponent) __attribute__ ((__nothrow__ , __leaf__)); + + +extern long double ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); extern long double __ldexpl (long double __x, int __exponent) __attribute__ ((__nothrow__ , __leaf__)); + + +extern long double logl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __logl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern long double log10l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __log10l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern long double modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__ , __leaf__)); extern long double __modfl (long double __x, long double *__iptr) __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__nonnull__ (2))); + + + + +extern long double exp10l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __exp10l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + +extern long double pow10l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __pow10l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern long double expm1l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __expm1l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern long double log1pl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __log1pl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern long double logbl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __logbl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern long double exp2l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __exp2l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern long double log2l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __log2l (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + + +extern long double powl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __powl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); + + +extern long double sqrtl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __sqrtl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern long double hypotl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __hypotl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern long double cbrtl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __cbrtl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + + +extern long double ceill (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __ceill (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern long double fabsl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __fabsl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern long double floorl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __floorl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern long double fmodl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __fmodl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int __isinfl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern int __finitel (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + + + +extern int isinfl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern int finitel (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern long double dreml (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __dreml (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern long double significandl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __significandl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern long double copysignl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __copysignl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + + + + +extern long double nanl (__const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __nanl (__const char *__tagb) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + + + +extern int __isnanl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + +extern int isnanl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern long double j0l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __j0l (long double) __attribute__ ((__nothrow__ , __leaf__)); +extern long double j1l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __j1l (long double) __attribute__ ((__nothrow__ , __leaf__)); +extern long double jnl (int, long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __jnl (int, long double) __attribute__ ((__nothrow__ , __leaf__)); +extern long double y0l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __y0l (long double) __attribute__ ((__nothrow__ , __leaf__)); +extern long double y1l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __y1l (long double) __attribute__ ((__nothrow__ , __leaf__)); +extern long double ynl (int, long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __ynl (int, long double) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern long double erfl (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __erfl (long double) __attribute__ ((__nothrow__ , __leaf__)); +extern long double erfcl (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __erfcl (long double) __attribute__ ((__nothrow__ , __leaf__)); +extern long double lgammal (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __lgammal (long double) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern long double tgammal (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __tgammal (long double) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern long double gammal (long double) __attribute__ ((__nothrow__ , __leaf__)); extern long double __gammal (long double) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern long double lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); extern long double __lgammal_r (long double, int *__signgamp) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + +extern long double rintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __rintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + +extern long double nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __nextafterl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + +extern long double nexttowardl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __nexttowardl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + +extern long double remainderl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __remainderl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern long double scalbnl (long double __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); extern long double __scalbnl (long double __x, int __n) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int ilogbl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern int __ilogbl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern long double scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); extern long double __scalblnl (long double __x, long int __n) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern long double nearbyintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long double __nearbyintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern long double roundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __roundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + +extern long double truncl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); extern long double __truncl (long double __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + + +extern long double remquol (long double __x, long double __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); extern long double __remquol (long double __x, long double __y, int *__quo) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern long int lrintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lrintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); +extern long long int llrintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llrintl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern long int lroundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long int __lroundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); +extern long long int llroundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); extern long long int __llroundl (long double __x) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern long double fdiml (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __fdiml (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); + + +extern long double fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __fmaxl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); + + +extern long double fminl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); extern long double __fminl (long double __x, long double __y) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int __fpclassifyl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__const__)); + + +extern int __signbitl (long double __value) __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__const__)); + + + +extern long double fmal (long double __x, long double __y, long double __z) __attribute__ ((__nothrow__ , __leaf__)); extern long double __fmal (long double __x, long double __y, long double __z) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + + +extern long double scalbl (long double __x, long double __n) __attribute__ ((__nothrow__ , __leaf__)); extern long double __scalbl (long double __x, long double __n) __attribute__ ((__nothrow__ , __leaf__)); +# 144 "/usr/include/math.h" 2 3 4 +# 159 "/usr/include/math.h" 3 4 +extern int signgam; +# 200 "/usr/include/math.h" 3 4 +enum + { + FP_NAN, + + FP_INFINITE, + + FP_ZERO, + + FP_SUBNORMAL, + + FP_NORMAL + + }; +# 293 "/usr/include/math.h" 3 4 +typedef enum +{ + _IEEE_ = -1, + _SVID_, + _XOPEN_, + _POSIX_, + _ISOC_ +} _LIB_VERSION_TYPE; + + + + +extern _LIB_VERSION_TYPE _LIB_VERSION; +# 318 "/usr/include/math.h" 3 4 +struct exception + + { + int type; + char *name; + double arg1; + double arg2; + double retval; + }; + + + + +extern int matherr (struct exception *__exc); +# 418 "/usr/include/math.h" 3 4 +# 1 "/usr/include/bits/mathinline.h" 1 3 4 +# 127 "/usr/include/bits/mathinline.h" 3 4 +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) __signbitf (float __x) +{ + __extension__ union { float __f; int __i; } __u = { __f: __x }; + return __u.__i < 0; +} +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) __signbit (double __x) +{ + __extension__ union { double __d; int __i[2]; } __u = { __d: __x }; + return __u.__i[1] < 0; +} +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) __signbitl (long double __x) +{ + __extension__ union { long double __l; int __i[3]; } __u = { __l: __x }; + return (__u.__i[2] & 0x8000) != 0; +} +# 295 "/usr/include/bits/mathinline.h" 3 4 +extern __inline double __sgn (double) __attribute__ ((__nothrow__ , __leaf__)); extern __inline double __attribute__ ((__nothrow__ , __leaf__)) __sgn (double __x) { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } extern __inline float __sgnf (float) __attribute__ ((__nothrow__ , __leaf__)); extern __inline float __attribute__ ((__nothrow__ , __leaf__)) __sgnf (float __x) { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } extern __inline long double __sgnl (long double) __attribute__ ((__nothrow__ , __leaf__)); extern __inline long double __attribute__ ((__nothrow__ , __leaf__)) __sgnl (long double __x) { return __x == 0.0 ? 0.0 : (__x > 0.0 ? 1.0 : -1.0); } +# 437 "/usr/include/bits/mathinline.h" 3 4 +extern __inline long double __attribute__ ((__nothrow__ , __leaf__)) __atan2l (long double __y, long double __x) { return __builtin_atan2l (__y, __x); } +# 477 "/usr/include/bits/mathinline.h" 3 4 +extern __inline double __attribute__ ((__nothrow__ , __leaf__)) fabs (double __x) { return __builtin_fabs (__x); } + +extern __inline float __attribute__ ((__nothrow__ , __leaf__)) fabsf (float __x) { return __builtin_fabsf (__x); } +extern __inline long double __attribute__ ((__nothrow__ , __leaf__)) fabsl (long double __x) { return __builtin_fabsl (__x); } + +extern __inline long double __attribute__ ((__nothrow__ , __leaf__)) __fabsl (long double __x) { return __builtin_fabsl (__x); } +# 510 "/usr/include/bits/mathinline.h" 3 4 +extern __inline long double __sgn1l (long double) __attribute__ ((__nothrow__ , __leaf__)); extern __inline long double __attribute__ ((__nothrow__ , __leaf__)) __sgn1l (long double __x) { __extension__ union { long double __xld; unsigned int __xi[3]; } __n = { __xld: __x }; __n.__xi[2] = (__n.__xi[2] & 0x8000) | 0x3fff; __n.__xi[1] = 0x80000000; __n.__xi[0] = 0; return __n.__xld; } +# 534 "/usr/include/bits/mathinline.h" 3 4 +extern __inline double __attribute__ ((__nothrow__ , __leaf__)) floor (double __x) { register long double __value; register int __ignore; unsigned short int __cw; unsigned short int __cwtmp; __asm __volatile ("fnstcw %3\n\t" "movzwl %3, %1\n\t" "andl $0xf3ff, %1\n\t" "orl $0x0400, %1\n\t" "movw %w1, %2\n\t" "fldcw %2\n\t" "frndint\n\t" "fldcw %3" : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp), "=m" (__cw) : "0" (__x)); return __value; } extern __inline float __attribute__ ((__nothrow__ , __leaf__)) floorf (float __x) { register long double __value; register int __ignore; unsigned short int __cw; unsigned short int __cwtmp; __asm __volatile ("fnstcw %3\n\t" "movzwl %3, %1\n\t" "andl $0xf3ff, %1\n\t" "orl $0x0400, %1\n\t" "movw %w1, %2\n\t" "fldcw %2\n\t" "frndint\n\t" "fldcw %3" : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp), "=m" (__cw) : "0" (__x)); return __value; } extern __inline long double __attribute__ ((__nothrow__ , __leaf__)) floorl (long double __x) { register long double __value; register int __ignore; unsigned short int __cw; unsigned short int __cwtmp; __asm __volatile ("fnstcw %3\n\t" "movzwl %3, %1\n\t" "andl $0xf3ff, %1\n\t" "orl $0x0400, %1\n\t" "movw %w1, %2\n\t" "fldcw %2\n\t" "frndint\n\t" "fldcw %3" : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp), "=m" (__cw) : "0" (__x)); return __value; } +# 552 "/usr/include/bits/mathinline.h" 3 4 +extern __inline double __attribute__ ((__nothrow__ , __leaf__)) ceil (double __x) { register long double __value; register int __ignore; unsigned short int __cw; unsigned short int __cwtmp; __asm __volatile ("fnstcw %3\n\t" "movzwl %3, %1\n\t" "andl $0xf3ff, %1\n\t" "orl $0x0800, %1\n\t" "movw %w1, %2\n\t" "fldcw %2\n\t" "frndint\n\t" "fldcw %3" : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp), "=m" (__cw) : "0" (__x)); return __value; } extern __inline float __attribute__ ((__nothrow__ , __leaf__)) ceilf (float __x) { register long double __value; register int __ignore; unsigned short int __cw; unsigned short int __cwtmp; __asm __volatile ("fnstcw %3\n\t" "movzwl %3, %1\n\t" "andl $0xf3ff, %1\n\t" "orl $0x0800, %1\n\t" "movw %w1, %2\n\t" "fldcw %2\n\t" "frndint\n\t" "fldcw %3" : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp), "=m" (__cw) : "0" (__x)); return __value; } extern __inline long double __attribute__ ((__nothrow__ , __leaf__)) ceill (long double __x) { register long double __value; register int __ignore; unsigned short int __cw; unsigned short int __cwtmp; __asm __volatile ("fnstcw %3\n\t" "movzwl %3, %1\n\t" "andl $0xf3ff, %1\n\t" "orl $0x0800, %1\n\t" "movw %w1, %2\n\t" "fldcw %2\n\t" "frndint\n\t" "fldcw %3" : "=t" (__value), "=&q" (__ignore), "=m" (__cwtmp), "=m" (__cw) : "0" (__x)); return __value; } +# 669 "/usr/include/bits/mathinline.h" 3 4 +extern __inline long int +__attribute__ ((__nothrow__ , __leaf__)) lrintf (float __x) +{ + long int __lrintres; __asm__ __volatile__ ("fistpl %0" : "=m" (__lrintres) : "t" (__x) : "st"); return __lrintres; +} +extern __inline long int +__attribute__ ((__nothrow__ , __leaf__)) lrint (double __x) +{ + long int __lrintres; __asm__ __volatile__ ("fistpl %0" : "=m" (__lrintres) : "t" (__x) : "st"); return __lrintres; +} +extern __inline long int +__attribute__ ((__nothrow__ , __leaf__)) lrintl (long double __x) +{ + long int __lrintres; __asm__ __volatile__ ("fistpl %0" : "=m" (__lrintres) : "t" (__x) : "st"); return __lrintres; +} +# 692 "/usr/include/bits/mathinline.h" 3 4 +extern __inline long long int +__attribute__ ((__nothrow__ , __leaf__)) llrintf (float __x) +{ + long long int __llrintres; __asm__ __volatile__ ("fistpll %0" : "=m" (__llrintres) : "t" (__x) : "st"); return __llrintres; +} +extern __inline long long int +__attribute__ ((__nothrow__ , __leaf__)) llrint (double __x) +{ + long long int __llrintres; __asm__ __volatile__ ("fistpll %0" : "=m" (__llrintres) : "t" (__x) : "st"); return __llrintres; +} +extern __inline long long int +__attribute__ ((__nothrow__ , __leaf__)) llrintl (long double __x) +{ + long long int __llrintres; __asm__ __volatile__ ("fistpll %0" : "=m" (__llrintres) : "t" (__x) : "st"); return __llrintres; +} +# 729 "/usr/include/bits/mathinline.h" 3 4 +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) __finite (double __x) +{ + return (__extension__ + (((((union { double __d; int __i[2]; }) {__d: __x}).__i[1] + | 0x800fffffu) + 1) >> 31)); +} +# 419 "/usr/include/math.h" 2 3 4 +# 480 "/usr/include/math.h" 3 4 + +# 21 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" 1 +# 22 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/config.h" 1 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/config-host.h" 1 +# 2 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/config.h" 2 +# 1 "./config-target.h" 1 +# 2 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/config.h" 2 +# 23 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 1 + + + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/compiler.h" 1 + + + + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/config-host.h" 1 +# 7 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/compiler.h" 2 +# 6 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/config-host.h" 1 +# 7 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 + + + + + + + +typedef struct QEMUTimer QEMUTimer; +typedef struct QEMUFile QEMUFile; +typedef struct DeviceState DeviceState; + +struct Monitor; +typedef struct Monitor Monitor; + + +# 1 "/usr/include/stdlib.h" 1 3 4 +# 33 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 1 3 4 +# 212 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 3 4 +typedef unsigned int size_t; +# 324 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 3 4 +typedef int wchar_t; +# 34 "/usr/include/stdlib.h" 2 3 4 + + + + + + + + +# 1 "/usr/include/bits/waitflags.h" 1 3 4 +# 43 "/usr/include/stdlib.h" 2 3 4 +# 1 "/usr/include/bits/waitstatus.h" 1 3 4 +# 65 "/usr/include/bits/waitstatus.h" 3 4 +# 1 "/usr/include/endian.h" 1 3 4 +# 37 "/usr/include/endian.h" 3 4 +# 1 "/usr/include/bits/endian.h" 1 3 4 +# 38 "/usr/include/endian.h" 2 3 4 +# 61 "/usr/include/endian.h" 3 4 +# 1 "/usr/include/bits/byteswap.h" 1 3 4 +# 62 "/usr/include/endian.h" 2 3 4 +# 66 "/usr/include/bits/waitstatus.h" 2 3 4 + +union wait + { + int w_status; + struct + { + + unsigned int __w_termsig:7; + unsigned int __w_coredump:1; + unsigned int __w_retcode:8; + unsigned int:16; + + + + + + + + } __wait_terminated; + struct + { + + unsigned int __w_stopval:8; + unsigned int __w_stopsig:8; + unsigned int:16; + + + + + + + } __wait_stopped; + }; +# 44 "/usr/include/stdlib.h" 2 3 4 +# 68 "/usr/include/stdlib.h" 3 4 +typedef union + { + union wait *__uptr; + int *__iptr; + } __WAIT_STATUS __attribute__ ((__transparent_union__)); +# 96 "/usr/include/stdlib.h" 3 4 + + +typedef struct + { + int quot; + int rem; + } div_t; + + + +typedef struct + { + long int quot; + long int rem; + } ldiv_t; + + + + + + + +__extension__ typedef struct + { + long long int quot; + long long int rem; + } lldiv_t; + + +# 140 "/usr/include/stdlib.h" 3 4 +extern size_t __ctype_get_mb_cur_max (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + +extern double atof (__const char *__nptr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + +extern int atoi (__const char *__nptr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + +extern long int atol (__const char *__nptr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + + +__extension__ extern long long int atoll (__const char *__nptr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + + +extern double strtod (__const char *__restrict __nptr, + char **__restrict __endptr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + + +extern float strtof (__const char *__restrict __nptr, + char **__restrict __endptr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + +extern long double strtold (__const char *__restrict __nptr, + char **__restrict __endptr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + + +extern long int strtol (__const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + +extern unsigned long int strtoul (__const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + +__extension__ +extern long long int strtoq (__const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + +__extension__ +extern unsigned long long int strtouq (__const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + + +__extension__ +extern long long int strtoll (__const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + +__extension__ +extern unsigned long long int strtoull (__const char *__restrict __nptr, + char **__restrict __endptr, int __base) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + +# 236 "/usr/include/stdlib.h" 3 4 +# 1 "/usr/include/xlocale.h" 1 3 4 +# 28 "/usr/include/xlocale.h" 3 4 +typedef struct __locale_struct +{ + + struct __locale_data *__locales[13]; + + + const unsigned short int *__ctype_b; + const int *__ctype_tolower; + const int *__ctype_toupper; + + + const char *__names[13]; +} *__locale_t; + + +typedef __locale_t locale_t; +# 237 "/usr/include/stdlib.h" 2 3 4 + + + +extern long int strtol_l (__const char *__restrict __nptr, + char **__restrict __endptr, int __base, + __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__)); + +extern unsigned long int strtoul_l (__const char *__restrict __nptr, + char **__restrict __endptr, + int __base, __locale_t __loc) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__)); + +__extension__ +extern long long int strtoll_l (__const char *__restrict __nptr, + char **__restrict __endptr, int __base, + __locale_t __loc) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__)); + +__extension__ +extern unsigned long long int strtoull_l (__const char *__restrict __nptr, + char **__restrict __endptr, + int __base, __locale_t __loc) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 4))) __attribute__ ((__warn_unused_result__)); + +extern double strtod_l (__const char *__restrict __nptr, + char **__restrict __endptr, __locale_t __loc) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); + +extern float strtof_l (__const char *__restrict __nptr, + char **__restrict __endptr, __locale_t __loc) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); + +extern long double strtold_l (__const char *__restrict __nptr, + char **__restrict __endptr, + __locale_t __loc) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); + + + + + +extern __inline double +__attribute__ ((__nothrow__ , __leaf__)) atof (__const char *__nptr) +{ + return strtod (__nptr, (char **) ((void *)0)); +} +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) atoi (__const char *__nptr) +{ + return (int) strtol (__nptr, (char **) ((void *)0), 10); +} +extern __inline long int +__attribute__ ((__nothrow__ , __leaf__)) atol (__const char *__nptr) +{ + return strtol (__nptr, (char **) ((void *)0), 10); +} + + + + +__extension__ extern __inline long long int +__attribute__ ((__nothrow__ , __leaf__)) atoll (__const char *__nptr) +{ + return strtoll (__nptr, (char **) ((void *)0), 10); +} + +# 311 "/usr/include/stdlib.h" 3 4 +extern char *l64a (long int __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + +extern long int a64l (__const char *__s) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + +# 1 "/usr/include/sys/types.h" 1 3 4 +# 28 "/usr/include/sys/types.h" 3 4 + + +# 1 "/usr/include/bits/types.h" 1 3 4 +# 28 "/usr/include/bits/types.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 29 "/usr/include/bits/types.h" 2 3 4 + + +typedef unsigned char __u_char; +typedef unsigned short int __u_short; +typedef unsigned int __u_int; +typedef unsigned long int __u_long; + + +typedef signed char __int8_t; +typedef unsigned char __uint8_t; +typedef signed short int __int16_t; +typedef unsigned short int __uint16_t; +typedef signed int __int32_t; +typedef unsigned int __uint32_t; + + + + +__extension__ typedef signed long long int __int64_t; +__extension__ typedef unsigned long long int __uint64_t; + + + + + + + +__extension__ typedef long long int __quad_t; +__extension__ typedef unsigned long long int __u_quad_t; +# 131 "/usr/include/bits/types.h" 3 4 +# 1 "/usr/include/bits/typesizes.h" 1 3 4 +# 132 "/usr/include/bits/types.h" 2 3 4 + + +__extension__ typedef __u_quad_t __dev_t; +__extension__ typedef unsigned int __uid_t; +__extension__ typedef unsigned int __gid_t; +__extension__ typedef unsigned long int __ino_t; +__extension__ typedef __u_quad_t __ino64_t; +__extension__ typedef unsigned int __mode_t; +__extension__ typedef unsigned int __nlink_t; +__extension__ typedef long int __off_t; +__extension__ typedef __quad_t __off64_t; +__extension__ typedef int __pid_t; +__extension__ typedef struct { int __val[2]; } __fsid_t; +__extension__ typedef long int __clock_t; +__extension__ typedef unsigned long int __rlim_t; +__extension__ typedef __u_quad_t __rlim64_t; +__extension__ typedef unsigned int __id_t; +__extension__ typedef long int __time_t; +__extension__ typedef unsigned int __useconds_t; +__extension__ typedef long int __suseconds_t; + +__extension__ typedef int __daddr_t; +__extension__ typedef long int __swblk_t; +__extension__ typedef int __key_t; + + +__extension__ typedef int __clockid_t; + + +__extension__ typedef void * __timer_t; + + +__extension__ typedef long int __blksize_t; + + + + +__extension__ typedef long int __blkcnt_t; +__extension__ typedef __quad_t __blkcnt64_t; + + +__extension__ typedef unsigned long int __fsblkcnt_t; +__extension__ typedef __u_quad_t __fsblkcnt64_t; + + +__extension__ typedef unsigned long int __fsfilcnt_t; +__extension__ typedef __u_quad_t __fsfilcnt64_t; + +__extension__ typedef int __ssize_t; + + + +typedef __off64_t __loff_t; +typedef __quad_t *__qaddr_t; +typedef char *__caddr_t; + + +__extension__ typedef int __intptr_t; + + +__extension__ typedef unsigned int __socklen_t; +# 31 "/usr/include/sys/types.h" 2 3 4 + + + +typedef __u_char u_char; +typedef __u_short u_short; +typedef __u_int u_int; +typedef __u_long u_long; +typedef __quad_t quad_t; +typedef __u_quad_t u_quad_t; +typedef __fsid_t fsid_t; + + + + +typedef __loff_t loff_t; + + + + + +typedef __ino64_t ino_t; + + + + +typedef __ino64_t ino64_t; + + + + +typedef __dev_t dev_t; + + + + +typedef __gid_t gid_t; + + + + +typedef __mode_t mode_t; + + + + +typedef __nlink_t nlink_t; + + + + +typedef __uid_t uid_t; + + + + + + + +typedef __off64_t off_t; + + + + +typedef __off64_t off64_t; + + + + +typedef __pid_t pid_t; + + + + + +typedef __id_t id_t; + + + + +typedef __ssize_t ssize_t; + + + + + +typedef __daddr_t daddr_t; +typedef __caddr_t caddr_t; + + + + + +typedef __key_t key_t; +# 133 "/usr/include/sys/types.h" 3 4 +# 1 "/usr/include/time.h" 1 3 4 +# 58 "/usr/include/time.h" 3 4 + + +typedef __clock_t clock_t; + + + +# 74 "/usr/include/time.h" 3 4 + + +typedef __time_t time_t; + + + +# 92 "/usr/include/time.h" 3 4 +typedef __clockid_t clockid_t; +# 104 "/usr/include/time.h" 3 4 +typedef __timer_t timer_t; +# 134 "/usr/include/sys/types.h" 2 3 4 + + + +typedef __useconds_t useconds_t; + + + +typedef __suseconds_t suseconds_t; + + + + + +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 1 3 4 +# 148 "/usr/include/sys/types.h" 2 3 4 + + + +typedef unsigned long int ulong; +typedef unsigned short int ushort; +typedef unsigned int uint; +# 195 "/usr/include/sys/types.h" 3 4 +typedef int int8_t __attribute__ ((__mode__ (__QI__))); +typedef int int16_t __attribute__ ((__mode__ (__HI__))); +typedef int int32_t __attribute__ ((__mode__ (__SI__))); +typedef int int64_t __attribute__ ((__mode__ (__DI__))); + + +typedef unsigned int u_int8_t __attribute__ ((__mode__ (__QI__))); +typedef unsigned int u_int16_t __attribute__ ((__mode__ (__HI__))); +typedef unsigned int u_int32_t __attribute__ ((__mode__ (__SI__))); +typedef unsigned int u_int64_t __attribute__ ((__mode__ (__DI__))); + +typedef int register_t __attribute__ ((__mode__ (__word__))); +# 220 "/usr/include/sys/types.h" 3 4 +# 1 "/usr/include/sys/select.h" 1 3 4 +# 31 "/usr/include/sys/select.h" 3 4 +# 1 "/usr/include/bits/select.h" 1 3 4 +# 32 "/usr/include/sys/select.h" 2 3 4 + + +# 1 "/usr/include/bits/sigset.h" 1 3 4 +# 24 "/usr/include/bits/sigset.h" 3 4 +typedef int __sig_atomic_t; + + + + +typedef struct + { + unsigned long int __val[(1024 / (8 * sizeof (unsigned long int)))]; + } __sigset_t; +# 35 "/usr/include/sys/select.h" 2 3 4 + + + +typedef __sigset_t sigset_t; + + + + + +# 1 "/usr/include/time.h" 1 3 4 +# 120 "/usr/include/time.h" 3 4 +struct timespec + { + __time_t tv_sec; + long int tv_nsec; + }; +# 45 "/usr/include/sys/select.h" 2 3 4 + +# 1 "/usr/include/bits/time.h" 1 3 4 +# 31 "/usr/include/bits/time.h" 3 4 +struct timeval + { + __time_t tv_sec; + __suseconds_t tv_usec; + }; +# 47 "/usr/include/sys/select.h" 2 3 4 +# 55 "/usr/include/sys/select.h" 3 4 +typedef long int __fd_mask; +# 65 "/usr/include/sys/select.h" 3 4 +typedef struct + { + + + + __fd_mask fds_bits[1024 / (8 * (int) sizeof (__fd_mask))]; + + + + + + } fd_set; + + + + + + +typedef __fd_mask fd_mask; +# 97 "/usr/include/sys/select.h" 3 4 + +# 107 "/usr/include/sys/select.h" 3 4 +extern int select (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + struct timeval *__restrict __timeout); +# 119 "/usr/include/sys/select.h" 3 4 +extern int pselect (int __nfds, fd_set *__restrict __readfds, + fd_set *__restrict __writefds, + fd_set *__restrict __exceptfds, + const struct timespec *__restrict __timeout, + const __sigset_t *__restrict __sigmask); + + + + + +# 1 "/usr/include/bits/select2.h" 1 3 4 +# 25 "/usr/include/bits/select2.h" 3 4 +extern long int __fdelt_chk (long int __d); +extern long int __fdelt_warn (long int __d) + __attribute__((__warning__ ("bit outside of fd_set selected"))); +# 130 "/usr/include/sys/select.h" 2 3 4 + + + +# 221 "/usr/include/sys/types.h" 2 3 4 + + +# 1 "/usr/include/sys/sysmacros.h" 1 3 4 +# 30 "/usr/include/sys/sysmacros.h" 3 4 + + +__extension__ +extern unsigned int gnu_dev_major (unsigned long long int __dev) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); +__extension__ +extern unsigned int gnu_dev_minor (unsigned long long int __dev) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); +__extension__ +extern unsigned long long int gnu_dev_makedev (unsigned int __major, + unsigned int __minor) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +__extension__ extern __inline __attribute__ ((__const__)) unsigned int +__attribute__ ((__nothrow__ , __leaf__)) gnu_dev_major (unsigned long long int __dev) +{ + return ((__dev >> 8) & 0xfff) | ((unsigned int) (__dev >> 32) & ~0xfff); +} + +__extension__ extern __inline __attribute__ ((__const__)) unsigned int +__attribute__ ((__nothrow__ , __leaf__)) gnu_dev_minor (unsigned long long int __dev) +{ + return (__dev & 0xff) | ((unsigned int) (__dev >> 12) & ~0xff); +} + +__extension__ extern __inline __attribute__ ((__const__)) unsigned long long int +__attribute__ ((__nothrow__ , __leaf__)) gnu_dev_makedev (unsigned int __major, unsigned int __minor) +{ + return ((__minor & 0xff) | ((__major & 0xfff) << 8) + | (((unsigned long long int) (__minor & ~0xff)) << 12) + | (((unsigned long long int) (__major & ~0xfff)) << 32)); +} + + +# 224 "/usr/include/sys/types.h" 2 3 4 + + + + + +typedef __blksize_t blksize_t; +# 249 "/usr/include/sys/types.h" 3 4 +typedef __blkcnt64_t blkcnt_t; + + + +typedef __fsblkcnt64_t fsblkcnt_t; + + + +typedef __fsfilcnt64_t fsfilcnt_t; + + + + + +typedef __blkcnt64_t blkcnt64_t; +typedef __fsblkcnt64_t fsblkcnt64_t; +typedef __fsfilcnt64_t fsfilcnt64_t; + + + + + +# 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 +# 36 "/usr/include/bits/pthreadtypes.h" 3 4 +typedef unsigned long int pthread_t; + + +typedef union +{ + char __size[36]; + long int __align; +} pthread_attr_t; + + +typedef struct __pthread_internal_slist +{ + struct __pthread_internal_slist *__next; +} __pthread_slist_t; + + + + +typedef union +{ + struct __pthread_mutex_s + { + int __lock; + unsigned int __count; + int __owner; + + + int __kind; + unsigned int __nusers; + __extension__ union + { + int __spins; + __pthread_slist_t __list; + }; + } __data; + char __size[24]; + long int __align; +} pthread_mutex_t; + +typedef union +{ + char __size[4]; + long int __align; +} pthread_mutexattr_t; + + + + +typedef union +{ + struct + { + int __lock; + unsigned int __futex; + __extension__ unsigned long long int __total_seq; + __extension__ unsigned long long int __wakeup_seq; + __extension__ unsigned long long int __woken_seq; + void *__mutex; + unsigned int __nwaiters; + unsigned int __broadcast_seq; + } __data; + char __size[48]; + __extension__ long long int __align; +} pthread_cond_t; + +typedef union +{ + char __size[4]; + long int __align; +} pthread_condattr_t; + + + +typedef unsigned int pthread_key_t; + + + +typedef int pthread_once_t; + + + + + +typedef union +{ + struct + { + int __lock; + unsigned int __nr_readers; + unsigned int __readers_wakeup; + unsigned int __writer_wakeup; + unsigned int __nr_readers_queued; + unsigned int __nr_writers_queued; + + + unsigned char __flags; + unsigned char __shared; + unsigned char __pad1; + unsigned char __pad2; + int __writer; + } __data; + char __size[32]; + long int __align; +} pthread_rwlock_t; + +typedef union +{ + char __size[8]; + long int __align; +} pthread_rwlockattr_t; + + + + + +typedef volatile int pthread_spinlock_t; + + + + +typedef union +{ + char __size[20]; + long int __align; +} pthread_barrier_t; + +typedef union +{ + char __size[4]; + int __align; +} pthread_barrierattr_t; +# 272 "/usr/include/sys/types.h" 2 3 4 + + + +# 321 "/usr/include/stdlib.h" 2 3 4 + + + + + + +extern long int random (void) __attribute__ ((__nothrow__ , __leaf__)); + + +extern void srandom (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern char *initstate (unsigned int __seed, char *__statebuf, + size_t __statelen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + + + +extern char *setstate (char *__statebuf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + + + +struct random_data + { + int32_t *fptr; + int32_t *rptr; + int32_t *state; + int rand_type; + int rand_deg; + int rand_sep; + int32_t *end_ptr; + }; + +extern int random_r (struct random_data *__restrict __buf, + int32_t *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + +extern int srandom_r (unsigned int __seed, struct random_data *__buf) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + +extern int initstate_r (unsigned int __seed, char *__restrict __statebuf, + size_t __statelen, + struct random_data *__restrict __buf) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))); + +extern int setstate_r (char *__restrict __statebuf, + struct random_data *__restrict __buf) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + + +extern int rand (void) __attribute__ ((__nothrow__ , __leaf__)); + +extern void srand (unsigned int __seed) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int rand_r (unsigned int *__seed) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + +extern double drand48 (void) __attribute__ ((__nothrow__ , __leaf__)); +extern double erand48 (unsigned short int __xsubi[3]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern long int lrand48 (void) __attribute__ ((__nothrow__ , __leaf__)); +extern long int nrand48 (unsigned short int __xsubi[3]) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern long int mrand48 (void) __attribute__ ((__nothrow__ , __leaf__)); +extern long int jrand48 (unsigned short int __xsubi[3]) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern void srand48 (long int __seedval) __attribute__ ((__nothrow__ , __leaf__)); +extern unsigned short int *seed48 (unsigned short int __seed16v[3]) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); +extern void lcong48 (unsigned short int __param[7]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + +struct drand48_data + { + unsigned short int __x[3]; + unsigned short int __old_x[3]; + unsigned short int __c; + unsigned short int __init; + unsigned long long int __a; + }; + + +extern int drand48_r (struct drand48_data *__restrict __buffer, + double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); +extern int erand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + double *__restrict __result) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int lrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); +extern int nrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int mrand48_r (struct drand48_data *__restrict __buffer, + long int *__restrict __result) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); +extern int jrand48_r (unsigned short int __xsubi[3], + struct drand48_data *__restrict __buffer, + long int *__restrict __result) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int srand48_r (long int __seedval, struct drand48_data *__buffer) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + +extern int seed48_r (unsigned short int __seed16v[3], + struct drand48_data *__buffer) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + +extern int lcong48_r (unsigned short int __param[7], + struct drand48_data *__buffer) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + + + + + +extern void *malloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); + +extern void *calloc (size_t __nmemb, size_t __size) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); + + + + + + + + + + +extern void *realloc (void *__ptr, size_t __size) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + +extern void free (void *__ptr) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern void cfree (void *__ptr) __attribute__ ((__nothrow__ , __leaf__)); + + + +# 1 "/usr/include/alloca.h" 1 3 4 +# 25 "/usr/include/alloca.h" 3 4 +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 1 3 4 +# 26 "/usr/include/alloca.h" 2 3 4 + + + + + + + +extern void *alloca (size_t __size) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +# 498 "/usr/include/stdlib.h" 2 3 4 + + + + + +extern void *valloc (size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); + + + + +extern int posix_memalign (void **__memptr, size_t __alignment, size_t __size) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + +extern void abort (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); + + + +extern int atexit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); +# 528 "/usr/include/stdlib.h" 3 4 +extern int at_quick_exit (void (*__func) (void)) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + + + +extern int on_exit (void (*__func) (int __status, void *__arg), void *__arg) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern void exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); + + + + + + + +extern void quick_exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); + + + + + + + +extern void _Exit (int __status) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); + + + + + + +extern char *getenv (__const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + +extern char *__secure_getenv (__const char *__name) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + + +extern int putenv (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern int setenv (__const char *__name, __const char *__value, int __replace) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + + +extern int unsetenv (__const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern int clearenv (void) __attribute__ ((__nothrow__ , __leaf__)); +# 606 "/usr/include/stdlib.h" 3 4 +extern char *mktemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); +# 623 "/usr/include/stdlib.h" 3 4 +extern int mkstemp (char *__template) __asm__ ("" "mkstemp64") + __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + + +extern int mkstemp64 (char *__template) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); +# 645 "/usr/include/stdlib.h" 3 4 +extern int mkstemps (char *__template, int __suffixlen) __asm__ ("" "mkstemps64") + __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + + +extern int mkstemps64 (char *__template, int __suffixlen) + __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); +# 663 "/usr/include/stdlib.h" 3 4 +extern char *mkdtemp (char *__template) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); +# 677 "/usr/include/stdlib.h" 3 4 +extern int mkostemp (char *__template, int __flags) __asm__ ("" "mkostemp64") + __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + + +extern int mkostemp64 (char *__template, int __flags) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); +# 698 "/usr/include/stdlib.h" 3 4 +extern int mkostemps (char *__template, int __suffixlen, int __flags) __asm__ ("" "mkostemps64") + + __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + + +extern int mkostemps64 (char *__template, int __suffixlen, int __flags) + __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + + + + + + +extern int system (__const char *__command) __attribute__ ((__warn_unused_result__)); + + + + + + +extern char *canonicalize_file_name (__const char *__name) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); +# 734 "/usr/include/stdlib.h" 3 4 +extern char *realpath (__const char *__restrict __name, + char *__restrict __resolved) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + + + +typedef int (*__compar_fn_t) (__const void *, __const void *); + + +typedef __compar_fn_t comparison_fn_t; + + + +typedef int (*__compar_d_fn_t) (__const void *, __const void *, void *); + + + + + +extern void *bsearch (__const void *__key, __const void *__base, + size_t __nmemb, size_t __size, __compar_fn_t __compar) + __attribute__ ((__nonnull__ (1, 2, 5))) __attribute__ ((__warn_unused_result__)); + + + +extern void qsort (void *__base, size_t __nmemb, size_t __size, + __compar_fn_t __compar) __attribute__ ((__nonnull__ (1, 4))); + +extern void qsort_r (void *__base, size_t __nmemb, size_t __size, + __compar_d_fn_t __compar, void *__arg) + __attribute__ ((__nonnull__ (1, 4))); + + + + +extern int abs (int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); +extern long int labs (long int __x) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); + + + +__extension__ extern long long int llabs (long long int __x) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); + + + + + + + +extern div_t div (int __numer, int __denom) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); +extern ldiv_t ldiv (long int __numer, long int __denom) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); + + + + +__extension__ extern lldiv_t lldiv (long long int __numer, + long long int __denom) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)) __attribute__ ((__warn_unused_result__)); + +# 808 "/usr/include/stdlib.h" 3 4 +extern char *ecvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); + + + + +extern char *fcvt (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); + + + + +extern char *gcvt (double __value, int __ndigit, char *__buf) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); + + + + +extern char *qecvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); +extern char *qfcvt (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))) __attribute__ ((__warn_unused_result__)); +extern char *qgcvt (long double __value, int __ndigit, char *__buf) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))) __attribute__ ((__warn_unused_result__)); + + + + +extern int ecvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); +extern int fcvt_r (double __value, int __ndigit, int *__restrict __decpt, + int *__restrict __sign, char *__restrict __buf, + size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); + +extern int qecvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); +extern int qfcvt_r (long double __value, int __ndigit, + int *__restrict __decpt, int *__restrict __sign, + char *__restrict __buf, size_t __len) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4, 5))); + + + + + + + +extern int mblen (__const char *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + +extern int mbtowc (wchar_t *__restrict __pwc, + __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + +extern int wctomb (char *__s, wchar_t __wchar) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + +extern size_t mbstowcs (wchar_t *__restrict __pwcs, + __const char *__restrict __s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); + +extern size_t wcstombs (char *__restrict __s, + __const wchar_t *__restrict __pwcs, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + + +extern int rpmatch (__const char *__response) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); +# 896 "/usr/include/stdlib.h" 3 4 +extern int getsubopt (char **__restrict __optionp, + char *__const *__restrict __tokens, + char **__restrict __valuep) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))) __attribute__ ((__warn_unused_result__)); + + + + + +extern void setkey (__const char *__key) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + + + +extern int posix_openpt (int __oflag) __attribute__ ((__warn_unused_result__)); + + + + + + + +extern int grantpt (int __fd) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int unlockpt (int __fd) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern char *ptsname (int __fd) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + + + +extern int ptsname_r (int __fd, char *__buf, size_t __buflen) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + + +extern int getpt (void); + + + + + + +extern int getloadavg (double __loadavg[], int __nelem) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + +# 1 "/usr/include/bits/stdlib.h" 1 3 4 +# 24 "/usr/include/bits/stdlib.h" 3 4 +extern char *__realpath_chk (__const char *__restrict __name, + char *__restrict __resolved, + size_t __resolvedlen) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); +extern char *__realpath_alias (__const char *__restrict __name, char *__restrict __resolved) __asm__ ("" "realpath") __attribute__ ((__nothrow__ , __leaf__)) + + __attribute__ ((__warn_unused_result__)); +extern char *__realpath_chk_warn (__const char *__restrict __name, char *__restrict __resolved, size_t __resolvedlen) __asm__ ("" "__realpath_chk") __attribute__ ((__nothrow__ , __leaf__)) + + + __attribute__ ((__warn_unused_result__)) + __attribute__((__warning__ ("second argument of realpath must be either NULL or at " "least PATH_MAX bytes long buffer"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * +__attribute__ ((__nothrow__ , __leaf__)) realpath (__const char *__restrict __name, char *__restrict __resolved) +{ + if (__builtin_object_size (__resolved, 2 > 1) != (size_t) -1) + { + + + + + return __realpath_chk (__name, __resolved, __builtin_object_size (__resolved, 2 > 1)); + } + + return __realpath_alias (__name, __resolved); +} + + +extern int __ptsname_r_chk (int __fd, char *__buf, size_t __buflen, + size_t __nreal) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); +extern int __ptsname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ptsname_r") __attribute__ ((__nothrow__ , __leaf__)) + + __attribute__ ((__nonnull__ (2))); +extern int __ptsname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ptsname_r_chk") __attribute__ ((__nothrow__ , __leaf__)) + + + __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ptsname_r called with buflen bigger than " "size of buf"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +__attribute__ ((__nothrow__ , __leaf__)) ptsname_r (int __fd, char *__buf, size_t __buflen) +{ + if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) + { + if (!__builtin_constant_p (__buflen)) + return __ptsname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); + if (__buflen > __builtin_object_size (__buf, 2 > 1)) + return __ptsname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); + } + return __ptsname_r_alias (__fd, __buf, __buflen); +} + + +extern int __wctomb_chk (char *__s, wchar_t __wchar, size_t __buflen) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); +extern int __wctomb_alias (char *__s, wchar_t __wchar) __asm__ ("" "wctomb") __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__warn_unused_result__)); + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) int +__attribute__ ((__nothrow__ , __leaf__)) wctomb (char *__s, wchar_t __wchar) +{ + + + + + + + + if (__builtin_object_size (__s, 2 > 1) != (size_t) -1 && 16 > __builtin_object_size (__s, 2 > 1)) + return __wctomb_chk (__s, __wchar, __builtin_object_size (__s, 2 > 1)); + return __wctomb_alias (__s, __wchar); +} + + +extern size_t __mbstowcs_chk (wchar_t *__restrict __dst, + __const char *__restrict __src, + size_t __len, size_t __dstlen) __attribute__ ((__nothrow__ , __leaf__)); +extern size_t __mbstowcs_alias (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) __asm__ ("" "mbstowcs") __attribute__ ((__nothrow__ , __leaf__)) + + + ; +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__ , __leaf__)) + + + + __attribute__((__warning__ ("mbstowcs called with dst buffer smaller than len " "* sizeof (wchar_t)"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t +__attribute__ ((__nothrow__ , __leaf__)) mbstowcs (wchar_t *__restrict __dst, __const char *__restrict __src, size_t __len) + +{ + if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) + { + if (!__builtin_constant_p (__len)) + return __mbstowcs_chk (__dst, __src, __len, + __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); + + if (__len > __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)) + return __mbstowcs_chk_warn (__dst, __src, __len, + __builtin_object_size (__dst, 2 > 1) / sizeof (wchar_t)); + } + return __mbstowcs_alias (__dst, __src, __len); +} + + +extern size_t __wcstombs_chk (char *__restrict __dst, + __const wchar_t *__restrict __src, + size_t __len, size_t __dstlen) __attribute__ ((__nothrow__ , __leaf__)); +extern size_t __wcstombs_alias (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) __asm__ ("" "wcstombs") __attribute__ ((__nothrow__ , __leaf__)) + + + ; +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__ , __leaf__)) + + + + __attribute__((__warning__ ("wcstombs called with dst buffer smaller than len"))); + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t +__attribute__ ((__nothrow__ , __leaf__)) wcstombs (char *__restrict __dst, __const wchar_t *__restrict __src, size_t __len) + +{ + if (__builtin_object_size (__dst, 2 > 1) != (size_t) -1) + { + if (!__builtin_constant_p (__len)) + return __wcstombs_chk (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); + if (__len > __builtin_object_size (__dst, 2 > 1)) + return __wcstombs_chk_warn (__dst, __src, __len, __builtin_object_size (__dst, 2 > 1)); + } + return __wcstombs_alias (__dst, __src, __len); +} +# 956 "/usr/include/stdlib.h" 2 3 4 +# 964 "/usr/include/stdlib.h" 3 4 + +# 23 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/include/stdio.h" 1 3 4 +# 30 "/usr/include/stdio.h" 3 4 + + + + +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 1 3 4 +# 35 "/usr/include/stdio.h" 2 3 4 +# 45 "/usr/include/stdio.h" 3 4 +struct _IO_FILE; + + + +typedef struct _IO_FILE FILE; + + + + + +# 65 "/usr/include/stdio.h" 3 4 +typedef struct _IO_FILE __FILE; +# 75 "/usr/include/stdio.h" 3 4 +# 1 "/usr/include/libio.h" 1 3 4 +# 32 "/usr/include/libio.h" 3 4 +# 1 "/usr/include/_G_config.h" 1 3 4 +# 15 "/usr/include/_G_config.h" 3 4 +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 1 3 4 +# 16 "/usr/include/_G_config.h" 2 3 4 + + + + +# 1 "/usr/include/wchar.h" 1 3 4 +# 83 "/usr/include/wchar.h" 3 4 +typedef struct +{ + int __count; + union + { + + unsigned int __wch; + + + + char __wchb[4]; + } __value; +} __mbstate_t; +# 21 "/usr/include/_G_config.h" 2 3 4 + +typedef struct +{ + __off_t __pos; + __mbstate_t __state; +} _G_fpos_t; +typedef struct +{ + __off64_t __pos; + __mbstate_t __state; +} _G_fpos64_t; +# 53 "/usr/include/_G_config.h" 3 4 +typedef int _G_int16_t __attribute__ ((__mode__ (__HI__))); +typedef int _G_int32_t __attribute__ ((__mode__ (__SI__))); +typedef unsigned int _G_uint16_t __attribute__ ((__mode__ (__HI__))); +typedef unsigned int _G_uint32_t __attribute__ ((__mode__ (__SI__))); +# 33 "/usr/include/libio.h" 2 3 4 +# 53 "/usr/include/libio.h" 3 4 +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stdarg.h" 1 3 4 +# 40 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stdarg.h" 3 4 +typedef __builtin_va_list __gnuc_va_list; +# 54 "/usr/include/libio.h" 2 3 4 +# 172 "/usr/include/libio.h" 3 4 +struct _IO_jump_t; struct _IO_FILE; +# 182 "/usr/include/libio.h" 3 4 +typedef void _IO_lock_t; + + + + + +struct _IO_marker { + struct _IO_marker *_next; + struct _IO_FILE *_sbuf; + + + + int _pos; +# 205 "/usr/include/libio.h" 3 4 +}; + + +enum __codecvt_result +{ + __codecvt_ok, + __codecvt_partial, + __codecvt_error, + __codecvt_noconv +}; +# 273 "/usr/include/libio.h" 3 4 +struct _IO_FILE { + int _flags; + + + + + char* _IO_read_ptr; + char* _IO_read_end; + char* _IO_read_base; + char* _IO_write_base; + char* _IO_write_ptr; + char* _IO_write_end; + char* _IO_buf_base; + char* _IO_buf_end; + + char *_IO_save_base; + char *_IO_backup_base; + char *_IO_save_end; + + struct _IO_marker *_markers; + + struct _IO_FILE *_chain; + + int _fileno; + + + + int _flags2; + + __off_t _old_offset; + + + + unsigned short _cur_column; + signed char _vtable_offset; + char _shortbuf[1]; + + + + _IO_lock_t *_lock; +# 321 "/usr/include/libio.h" 3 4 + __off64_t _offset; +# 330 "/usr/include/libio.h" 3 4 + void *__pad1; + void *__pad2; + void *__pad3; + void *__pad4; + size_t __pad5; + + int _mode; + + char _unused2[15 * sizeof (int) - 4 * sizeof (void *) - sizeof (size_t)]; + +}; + + +typedef struct _IO_FILE _IO_FILE; + + +struct _IO_FILE_plus; + +extern struct _IO_FILE_plus _IO_2_1_stdin_; +extern struct _IO_FILE_plus _IO_2_1_stdout_; +extern struct _IO_FILE_plus _IO_2_1_stderr_; +# 366 "/usr/include/libio.h" 3 4 +typedef __ssize_t __io_read_fn (void *__cookie, char *__buf, size_t __nbytes); + + + + + + + +typedef __ssize_t __io_write_fn (void *__cookie, __const char *__buf, + size_t __n); + + + + + + + +typedef int __io_seek_fn (void *__cookie, __off64_t *__pos, int __w); + + +typedef int __io_close_fn (void *__cookie); + + + + +typedef __io_read_fn cookie_read_function_t; +typedef __io_write_fn cookie_write_function_t; +typedef __io_seek_fn cookie_seek_function_t; +typedef __io_close_fn cookie_close_function_t; + + +typedef struct +{ + __io_read_fn *read; + __io_write_fn *write; + __io_seek_fn *seek; + __io_close_fn *close; +} _IO_cookie_io_functions_t; +typedef _IO_cookie_io_functions_t cookie_io_functions_t; + +struct _IO_cookie_file; + + +extern void _IO_cookie_init (struct _IO_cookie_file *__cfile, int __read_write, + void *__cookie, _IO_cookie_io_functions_t __fns); + + + + + + + +extern int __underflow (_IO_FILE *); +extern int __uflow (_IO_FILE *); +extern int __overflow (_IO_FILE *, int); +# 462 "/usr/include/libio.h" 3 4 +extern int _IO_getc (_IO_FILE *__fp); +extern int _IO_putc (int __c, _IO_FILE *__fp); +extern int _IO_feof (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__)); +extern int _IO_ferror (_IO_FILE *__fp) __attribute__ ((__nothrow__ , __leaf__)); + +extern int _IO_peekc_locked (_IO_FILE *__fp); + + + + + +extern void _IO_flockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); +extern void _IO_funlockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); +extern int _IO_ftrylockfile (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); +# 492 "/usr/include/libio.h" 3 4 +extern int _IO_vfscanf (_IO_FILE * __restrict, const char * __restrict, + __gnuc_va_list, int *__restrict); +extern int _IO_vfprintf (_IO_FILE *__restrict, const char *__restrict, + __gnuc_va_list); +extern __ssize_t _IO_padn (_IO_FILE *, int, __ssize_t); +extern size_t _IO_sgetn (_IO_FILE *, void *, size_t); + +extern __off64_t _IO_seekoff (_IO_FILE *, __off64_t, int, int); +extern __off64_t _IO_seekpos (_IO_FILE *, __off64_t, int); + +extern void _IO_free_backup_area (_IO_FILE *) __attribute__ ((__nothrow__ , __leaf__)); +# 76 "/usr/include/stdio.h" 2 3 4 + + + + +typedef __gnuc_va_list va_list; +# 109 "/usr/include/stdio.h" 3 4 + + + + +typedef _G_fpos64_t fpos_t; + + + +typedef _G_fpos64_t fpos64_t; +# 165 "/usr/include/stdio.h" 3 4 +# 1 "/usr/include/bits/stdio_lim.h" 1 3 4 +# 166 "/usr/include/stdio.h" 2 3 4 + + + +extern struct _IO_FILE *stdin; +extern struct _IO_FILE *stdout; +extern struct _IO_FILE *stderr; + + + + + + + +extern int remove (__const char *__filename) __attribute__ ((__nothrow__ , __leaf__)); + +extern int rename (__const char *__old, __const char *__new) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int renameat (int __oldfd, __const char *__old, int __newfd, + __const char *__new) __attribute__ ((__nothrow__ , __leaf__)); + + + +# 199 "/usr/include/stdio.h" 3 4 +extern FILE *tmpfile (void) __asm__ ("" "tmpfile64") __attribute__ ((__warn_unused_result__)); + + + + + + +extern FILE *tmpfile64 (void) __attribute__ ((__warn_unused_result__)); + + + +extern char *tmpnam (char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + + +extern char *tmpnam_r (char *__s) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); +# 228 "/usr/include/stdio.h" 3 4 +extern char *tempnam (__const char *__dir, __const char *__pfx) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__warn_unused_result__)); + + + + + + + + +extern int fclose (FILE *__stream); + + + + +extern int fflush (FILE *__stream); + +# 253 "/usr/include/stdio.h" 3 4 +extern int fflush_unlocked (FILE *__stream); +# 263 "/usr/include/stdio.h" 3 4 +extern int fcloseall (void); + + + + +# 284 "/usr/include/stdio.h" 3 4 +extern FILE *fopen (__const char *__restrict __filename, __const char *__restrict __modes) __asm__ ("" "fopen64") + + __attribute__ ((__warn_unused_result__)); +extern FILE *freopen (__const char *__restrict __filename, __const char *__restrict __modes, FILE *__restrict __stream) __asm__ ("" "freopen64") + + + __attribute__ ((__warn_unused_result__)); + + + + + + + +extern FILE *fopen64 (__const char *__restrict __filename, + __const char *__restrict __modes) __attribute__ ((__warn_unused_result__)); +extern FILE *freopen64 (__const char *__restrict __filename, + __const char *__restrict __modes, + FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); + + + + +extern FILE *fdopen (int __fd, __const char *__modes) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + + +extern FILE *fopencookie (void *__restrict __magic_cookie, + __const char *__restrict __modes, + _IO_cookie_io_functions_t __io_funcs) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + +extern FILE *fmemopen (void *__s, size_t __len, __const char *__modes) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + +extern FILE *open_memstream (char **__bufloc, size_t *__sizeloc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + + + +extern void setbuf (FILE *__restrict __stream, char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int setvbuf (FILE *__restrict __stream, char *__restrict __buf, + int __modes, size_t __n) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern void setbuffer (FILE *__restrict __stream, char *__restrict __buf, + size_t __size) __attribute__ ((__nothrow__ , __leaf__)); + + +extern void setlinebuf (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + + +extern int fprintf (FILE *__restrict __stream, + __const char *__restrict __format, ...); + + + + +extern int printf (__const char *__restrict __format, ...); + +extern int sprintf (char *__restrict __s, + __const char *__restrict __format, ...) __attribute__ ((__nothrow__)); + + + + + +extern int vfprintf (FILE *__restrict __s, __const char *__restrict __format, + __gnuc_va_list __arg); + + + + +extern int vprintf (__const char *__restrict __format, __gnuc_va_list __arg); + +extern int vsprintf (char *__restrict __s, __const char *__restrict __format, + __gnuc_va_list __arg) __attribute__ ((__nothrow__)); + + + + + +extern int snprintf (char *__restrict __s, size_t __maxlen, + __const char *__restrict __format, ...) + __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 4))); + +extern int vsnprintf (char *__restrict __s, size_t __maxlen, + __const char *__restrict __format, __gnuc_va_list __arg) + __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 3, 0))); + + + + + + +extern int vasprintf (char **__restrict __ptr, __const char *__restrict __f, + __gnuc_va_list __arg) + __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))) __attribute__ ((__warn_unused_result__)); +extern int __asprintf (char **__restrict __ptr, + __const char *__restrict __fmt, ...) + __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); +extern int asprintf (char **__restrict __ptr, + __const char *__restrict __fmt, ...) + __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))) __attribute__ ((__warn_unused_result__)); +# 418 "/usr/include/stdio.h" 3 4 +extern int vdprintf (int __fd, __const char *__restrict __fmt, + __gnuc_va_list __arg) + __attribute__ ((__format__ (__printf__, 2, 0))); +extern int dprintf (int __fd, __const char *__restrict __fmt, ...) + __attribute__ ((__format__ (__printf__, 2, 3))); + + + + + + + + +extern int fscanf (FILE *__restrict __stream, + __const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); + + + + +extern int scanf (__const char *__restrict __format, ...) __attribute__ ((__warn_unused_result__)); + +extern int sscanf (__const char *__restrict __s, + __const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__)); +# 469 "/usr/include/stdio.h" 3 4 + + + + + + + + +extern int vfscanf (FILE *__restrict __s, __const char *__restrict __format, + __gnuc_va_list __arg) + __attribute__ ((__format__ (__scanf__, 2, 0))) __attribute__ ((__warn_unused_result__)); + + + + + +extern int vscanf (__const char *__restrict __format, __gnuc_va_list __arg) + __attribute__ ((__format__ (__scanf__, 1, 0))) __attribute__ ((__warn_unused_result__)); + + +extern int vsscanf (__const char *__restrict __s, + __const char *__restrict __format, __gnuc_va_list __arg) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__scanf__, 2, 0))); +# 528 "/usr/include/stdio.h" 3 4 + + + + + + + + + +extern int fgetc (FILE *__stream); +extern int getc (FILE *__stream); + + + + + +extern int getchar (void); + +# 556 "/usr/include/stdio.h" 3 4 +extern int getc_unlocked (FILE *__stream); +extern int getchar_unlocked (void); +# 567 "/usr/include/stdio.h" 3 4 +extern int fgetc_unlocked (FILE *__stream); + + + + + + + + + + + +extern int fputc (int __c, FILE *__stream); +extern int putc (int __c, FILE *__stream); + + + + + +extern int putchar (int __c); + +# 600 "/usr/include/stdio.h" 3 4 +extern int fputc_unlocked (int __c, FILE *__stream); + + + + + + + +extern int putc_unlocked (int __c, FILE *__stream); +extern int putchar_unlocked (int __c); + + + + + + +extern int getw (FILE *__stream); + + +extern int putw (int __w, FILE *__stream); + + + + + + + + +extern char *fgets (char *__restrict __s, int __n, FILE *__restrict __stream) + __attribute__ ((__warn_unused_result__)); + + + + + + +extern char *gets (char *__s) __attribute__ ((__warn_unused_result__)); + +# 646 "/usr/include/stdio.h" 3 4 +extern char *fgets_unlocked (char *__restrict __s, int __n, + FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); +# 662 "/usr/include/stdio.h" 3 4 +extern __ssize_t __getdelim (char **__restrict __lineptr, + size_t *__restrict __n, int __delimiter, + FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); +extern __ssize_t getdelim (char **__restrict __lineptr, + size_t *__restrict __n, int __delimiter, + FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); + + + + + + + +extern __ssize_t getline (char **__restrict __lineptr, + size_t *__restrict __n, + FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); + + + + + + + + +extern int fputs (__const char *__restrict __s, FILE *__restrict __stream); + + + + + +extern int puts (__const char *__s); + + + + + + +extern int ungetc (int __c, FILE *__stream); + + + + + + +extern size_t fread (void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); + + + + +extern size_t fwrite (__const void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __s) __attribute__ ((__warn_unused_result__)); + +# 723 "/usr/include/stdio.h" 3 4 +extern int fputs_unlocked (__const char *__restrict __s, + FILE *__restrict __stream); +# 734 "/usr/include/stdio.h" 3 4 +extern size_t fread_unlocked (void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); +extern size_t fwrite_unlocked (__const void *__restrict __ptr, size_t __size, + size_t __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); + + + + + + + + +extern int fseek (FILE *__stream, long int __off, int __whence); + + + + +extern long int ftell (FILE *__stream) __attribute__ ((__warn_unused_result__)); + + + + +extern void rewind (FILE *__stream); + +# 778 "/usr/include/stdio.h" 3 4 +extern int fseeko (FILE *__stream, __off64_t __off, int __whence) __asm__ ("" "fseeko64") + + ; +extern __off64_t ftello (FILE *__stream) __asm__ ("" "ftello64"); + + + + + + + + +# 803 "/usr/include/stdio.h" 3 4 +extern int fgetpos (FILE *__restrict __stream, fpos_t *__restrict __pos) __asm__ ("" "fgetpos64") + ; +extern int fsetpos (FILE *__stream, __const fpos_t *__pos) __asm__ ("" "fsetpos64") + ; + + + + + + + + +extern int fseeko64 (FILE *__stream, __off64_t __off, int __whence); +extern __off64_t ftello64 (FILE *__stream) __attribute__ ((__warn_unused_result__)); +extern int fgetpos64 (FILE *__restrict __stream, fpos64_t *__restrict __pos); +extern int fsetpos64 (FILE *__stream, __const fpos64_t *__pos); + + + + +extern void clearerr (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); + +extern int feof (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + +extern int ferror (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + +extern void clearerr_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); +extern int feof_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); +extern int ferror_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + + + + + +extern void perror (__const char *__s); + + + + + + +# 1 "/usr/include/bits/sys_errlist.h" 1 3 4 +# 27 "/usr/include/bits/sys_errlist.h" 3 4 +extern int sys_nerr; +extern __const char *__const sys_errlist[]; + + +extern int _sys_nerr; +extern __const char *__const _sys_errlist[]; +# 851 "/usr/include/stdio.h" 2 3 4 + + + + +extern int fileno (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + +extern int fileno_unlocked (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); +# 870 "/usr/include/stdio.h" 3 4 +extern FILE *popen (__const char *__command, __const char *__modes) __attribute__ ((__warn_unused_result__)); + + + + + +extern int pclose (FILE *__stream); + + + + + +extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern char *cuserid (char *__s); + + + + +struct obstack; + + +extern int obstack_printf (struct obstack *__restrict __obstack, + __const char *__restrict __format, ...) + __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 3))); +extern int obstack_vprintf (struct obstack *__restrict __obstack, + __const char *__restrict __format, + __gnuc_va_list __args) + __attribute__ ((__nothrow__)) __attribute__ ((__format__ (__printf__, 2, 0))); + + + + + + + +extern void flockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int ftrylockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + +extern void funlockfile (FILE *__stream) __attribute__ ((__nothrow__ , __leaf__)); +# 931 "/usr/include/stdio.h" 3 4 +# 1 "/usr/include/bits/stdio.h" 1 3 4 +# 44 "/usr/include/bits/stdio.h" 3 4 +extern __inline int +getchar (void) +{ + return _IO_getc (stdin); +} + + + + +extern __inline int +fgetc_unlocked (FILE *__fp) +{ + return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); +} + + + + + +extern __inline int +getc_unlocked (FILE *__fp) +{ + return (__builtin_expect (((__fp)->_IO_read_ptr >= (__fp)->_IO_read_end), 0) ? __uflow (__fp) : *(unsigned char *) (__fp)->_IO_read_ptr++); +} + + +extern __inline int +getchar_unlocked (void) +{ + return (__builtin_expect (((stdin)->_IO_read_ptr >= (stdin)->_IO_read_end), 0) ? __uflow (stdin) : *(unsigned char *) (stdin)->_IO_read_ptr++); +} + + + + +extern __inline int +putchar (int __c) +{ + return _IO_putc (__c, stdout); +} + + + + +extern __inline int +fputc_unlocked (int __c, FILE *__stream) +{ + return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); +} + + + + + +extern __inline int +putc_unlocked (int __c, FILE *__stream) +{ + return (__builtin_expect (((__stream)->_IO_write_ptr >= (__stream)->_IO_write_end), 0) ? __overflow (__stream, (unsigned char) (__c)) : (unsigned char) (*(__stream)->_IO_write_ptr++ = (__c))); +} + + +extern __inline int +putchar_unlocked (int __c) +{ + return (__builtin_expect (((stdout)->_IO_write_ptr >= (stdout)->_IO_write_end), 0) ? __overflow (stdout, (unsigned char) (__c)) : (unsigned char) (*(stdout)->_IO_write_ptr++ = (__c))); +} + + + + + +extern __inline __ssize_t +getline (char **__lineptr, size_t *__n, FILE *__stream) +{ + return __getdelim (__lineptr, __n, '\n', __stream); +} + + + + + +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) feof_unlocked (FILE *__stream) +{ + return (((__stream)->_flags & 0x10) != 0); +} + + +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) ferror_unlocked (FILE *__stream) +{ + return (((__stream)->_flags & 0x20) != 0); +} +# 932 "/usr/include/stdio.h" 2 3 4 + + +# 1 "/usr/include/bits/stdio2.h" 1 3 4 +# 24 "/usr/include/bits/stdio2.h" 3 4 +extern int __sprintf_chk (char *__restrict __s, int __flag, size_t __slen, + __const char *__restrict __format, ...) __attribute__ ((__nothrow__ , __leaf__)); +extern int __vsprintf_chk (char *__restrict __s, int __flag, size_t __slen, + __const char *__restrict __format, + __gnuc_va_list __ap) __attribute__ ((__nothrow__ , __leaf__)); + + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +__attribute__ ((__nothrow__ , __leaf__)) sprintf (char *__restrict __s, __const char *__restrict __fmt, ...) +{ + return __builtin___sprintf_chk (__s, 2 - 1, + __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); +} + + + + + + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +__attribute__ ((__nothrow__ , __leaf__)) vsprintf (char *__restrict __s, __const char *__restrict __fmt, __gnuc_va_list __ap) + +{ + return __builtin___vsprintf_chk (__s, 2 - 1, + __builtin_object_size (__s, 2 > 1), __fmt, __ap); +} + + + +extern int __snprintf_chk (char *__restrict __s, size_t __n, int __flag, + size_t __slen, __const char *__restrict __format, + ...) __attribute__ ((__nothrow__ , __leaf__)); +extern int __vsnprintf_chk (char *__restrict __s, size_t __n, int __flag, + size_t __slen, __const char *__restrict __format, + __gnuc_va_list __ap) __attribute__ ((__nothrow__ , __leaf__)); + + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +__attribute__ ((__nothrow__ , __leaf__)) snprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, ...) + +{ + return __builtin___snprintf_chk (__s, __n, 2 - 1, + __builtin_object_size (__s, 2 > 1), __fmt, __builtin_va_arg_pack ()); +} + + + + + + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +__attribute__ ((__nothrow__ , __leaf__)) vsnprintf (char *__restrict __s, size_t __n, __const char *__restrict __fmt, __gnuc_va_list __ap) + +{ + return __builtin___vsnprintf_chk (__s, __n, 2 - 1, + __builtin_object_size (__s, 2 > 1), __fmt, __ap); +} + + + + + +extern int __fprintf_chk (FILE *__restrict __stream, int __flag, + __const char *__restrict __format, ...); +extern int __printf_chk (int __flag, __const char *__restrict __format, ...); +extern int __vfprintf_chk (FILE *__restrict __stream, int __flag, + __const char *__restrict __format, __gnuc_va_list __ap); +extern int __vprintf_chk (int __flag, __const char *__restrict __format, + __gnuc_va_list __ap); + + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +fprintf (FILE *__restrict __stream, __const char *__restrict __fmt, ...) +{ + return __fprintf_chk (__stream, 2 - 1, __fmt, + __builtin_va_arg_pack ()); +} + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +printf (__const char *__restrict __fmt, ...) +{ + return __printf_chk (2 - 1, __fmt, __builtin_va_arg_pack ()); +} + + + + + + + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +vprintf (__const char *__restrict __fmt, __gnuc_va_list __ap) +{ + + return __vfprintf_chk (stdout, 2 - 1, __fmt, __ap); + + + +} + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +vfprintf (FILE *__restrict __stream, + __const char *__restrict __fmt, __gnuc_va_list __ap) +{ + return __vfprintf_chk (__stream, 2 - 1, __fmt, __ap); +} + + + +extern int __asprintf_chk (char **__restrict __ptr, int __flag, + __const char *__restrict __fmt, ...) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__printf__, 3, 4))) __attribute__ ((__warn_unused_result__)); +extern int __vasprintf_chk (char **__restrict __ptr, int __flag, + __const char *__restrict __fmt, __gnuc_va_list __arg) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__printf__, 3, 0))) __attribute__ ((__warn_unused_result__)); +extern int __dprintf_chk (int __fd, int __flag, __const char *__restrict __fmt, + ...) __attribute__ ((__format__ (__printf__, 3, 4))); +extern int __vdprintf_chk (int __fd, int __flag, + __const char *__restrict __fmt, __gnuc_va_list __arg) + __attribute__ ((__format__ (__printf__, 3, 0))); +extern int __obstack_printf_chk (struct obstack *__restrict __obstack, + int __flag, __const char *__restrict __format, + ...) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__printf__, 3, 4))); +extern int __obstack_vprintf_chk (struct obstack *__restrict __obstack, + int __flag, + __const char *__restrict __format, + __gnuc_va_list __args) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__format__ (__printf__, 3, 0))); + + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +__attribute__ ((__nothrow__ , __leaf__)) asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) +{ + return __asprintf_chk (__ptr, 2 - 1, __fmt, + __builtin_va_arg_pack ()); +} + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +__attribute__ ((__nothrow__ , __leaf__)) __asprintf (char **__restrict __ptr, __const char *__restrict __fmt, ...) + +{ + return __asprintf_chk (__ptr, 2 - 1, __fmt, + __builtin_va_arg_pack ()); +} + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +dprintf (int __fd, __const char *__restrict __fmt, ...) +{ + return __dprintf_chk (__fd, 2 - 1, __fmt, + __builtin_va_arg_pack ()); +} + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +__attribute__ ((__nothrow__ , __leaf__)) obstack_printf (struct obstack *__restrict __obstack, __const char *__restrict __fmt, ...) + +{ + return __obstack_printf_chk (__obstack, 2 - 1, __fmt, + __builtin_va_arg_pack ()); +} +# 195 "/usr/include/bits/stdio2.h" 3 4 +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +__attribute__ ((__nothrow__ , __leaf__)) vasprintf (char **__restrict __ptr, __const char *__restrict __fmt, __gnuc_va_list __ap) + +{ + return __vasprintf_chk (__ptr, 2 - 1, __fmt, __ap); +} + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +vdprintf (int __fd, __const char *__restrict __fmt, __gnuc_va_list __ap) +{ + return __vdprintf_chk (__fd, 2 - 1, __fmt, __ap); +} + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +__attribute__ ((__nothrow__ , __leaf__)) obstack_vprintf (struct obstack *__restrict __obstack, __const char *__restrict __fmt, __gnuc_va_list __ap) + +{ + return __obstack_vprintf_chk (__obstack, 2 - 1, __fmt, + __ap); +} + + + + + +extern char *__gets_chk (char *__str, size_t) __attribute__ ((__warn_unused_result__)); +extern char *__gets_warn (char *__str) __asm__ ("" "gets") + __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use fgets or getline instead, gets can't " "specify buffer size"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * +gets (char *__str) +{ + if (__builtin_object_size (__str, 2 > 1) != (size_t) -1) + return __gets_chk (__str, __builtin_object_size (__str, 2 > 1)); + return __gets_warn (__str); +} + +extern char *__fgets_chk (char *__restrict __s, size_t __size, int __n, + FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); +extern char *__fgets_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets") + + __attribute__ ((__warn_unused_result__)); +extern char *__fgets_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_chk") + + + __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets called with bigger size than length " "of destination buffer"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * +fgets (char *__restrict __s, int __n, FILE *__restrict __stream) +{ + if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) + { + if (!__builtin_constant_p (__n) || __n <= 0) + return __fgets_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); + + if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) + return __fgets_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); + } + return __fgets_alias (__s, __n, __stream); +} + +extern size_t __fread_chk (void *__restrict __ptr, size_t __ptrlen, + size_t __size, size_t __n, + FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); +extern size_t __fread_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread") + + + __attribute__ ((__warn_unused_result__)); +extern size_t __fread_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_chk") + + + + + __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread called with bigger size * nmemb than length " "of destination buffer"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t +fread (void *__restrict __ptr, size_t __size, size_t __n, + FILE *__restrict __stream) +{ + if (__builtin_object_size (__ptr, 0) != (size_t) -1) + { + if (!__builtin_constant_p (__size) + || !__builtin_constant_p (__n) + || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) + return __fread_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); + + if (__size * __n > __builtin_object_size (__ptr, 0)) + return __fread_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, __stream); + } + return __fread_alias (__ptr, __size, __n, __stream); +} + + +extern char *__fgets_unlocked_chk (char *__restrict __s, size_t __size, + int __n, FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); +extern char *__fgets_unlocked_alias (char *__restrict __s, int __n, FILE *__restrict __stream) __asm__ ("" "fgets_unlocked") + + __attribute__ ((__warn_unused_result__)); +extern char *__fgets_unlocked_chk_warn (char *__restrict __s, size_t __size, int __n, FILE *__restrict __stream) __asm__ ("" "__fgets_unlocked_chk") + + + __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fgets_unlocked called with bigger size than length " "of destination buffer"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * +fgets_unlocked (char *__restrict __s, int __n, FILE *__restrict __stream) +{ + if (__builtin_object_size (__s, 2 > 1) != (size_t) -1) + { + if (!__builtin_constant_p (__n) || __n <= 0) + return __fgets_unlocked_chk (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); + + if ((size_t) __n > __builtin_object_size (__s, 2 > 1)) + return __fgets_unlocked_chk_warn (__s, __builtin_object_size (__s, 2 > 1), __n, __stream); + } + return __fgets_unlocked_alias (__s, __n, __stream); +} + + + + +extern size_t __fread_unlocked_chk (void *__restrict __ptr, size_t __ptrlen, + size_t __size, size_t __n, + FILE *__restrict __stream) __attribute__ ((__warn_unused_result__)); +extern size_t __fread_unlocked_alias (void *__restrict __ptr, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "fread_unlocked") + + + __attribute__ ((__warn_unused_result__)); +extern size_t __fread_unlocked_chk_warn (void *__restrict __ptr, size_t __ptrlen, size_t __size, size_t __n, FILE *__restrict __stream) __asm__ ("" "__fread_unlocked_chk") + + + + + __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("fread_unlocked called with bigger size * nmemb than " "length of destination buffer"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) size_t +fread_unlocked (void *__restrict __ptr, size_t __size, size_t __n, + FILE *__restrict __stream) +{ + if (__builtin_object_size (__ptr, 0) != (size_t) -1) + { + if (!__builtin_constant_p (__size) + || !__builtin_constant_p (__n) + || (__size | __n) >= (((size_t) 1) << (8 * sizeof (size_t) / 2))) + return __fread_unlocked_chk (__ptr, __builtin_object_size (__ptr, 0), __size, __n, + __stream); + + if (__size * __n > __builtin_object_size (__ptr, 0)) + return __fread_unlocked_chk_warn (__ptr, __builtin_object_size (__ptr, 0), __size, __n, + __stream); + } + + + if (__builtin_constant_p (__size) + && __builtin_constant_p (__n) + && (__size | __n) < (((size_t) 1) << (8 * sizeof (size_t) / 2)) + && __size * __n <= 8) + { + size_t __cnt = __size * __n; + char *__cptr = (char *) __ptr; + if (__cnt == 0) + return 0; + + for (; __cnt > 0; --__cnt) + { + int __c = (__builtin_expect (((__stream)->_IO_read_ptr >= (__stream)->_IO_read_end), 0) ? __uflow (__stream) : *(unsigned char *) (__stream)->_IO_read_ptr++); + if (__c == (-1)) + break; + *__cptr++ = __c; + } + return (__cptr - (char *) __ptr) / __size; + } + + return __fread_unlocked_alias (__ptr, __size, __n, __stream); +} +# 935 "/usr/include/stdio.h" 2 3 4 + + + + + + +# 24 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stdarg.h" 1 3 4 +# 25 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stdbool.h" 1 3 4 +# 26 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/include/string.h" 1 3 4 +# 29 "/usr/include/string.h" 3 4 + + + + + +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 1 3 4 +# 35 "/usr/include/string.h" 2 3 4 + + + + + + + + + +extern void *memcpy (void *__restrict __dest, + __const void *__restrict __src, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern void *memmove (void *__dest, __const void *__src, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + + +extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, + int __c, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 95 "/usr/include/string.h" 3 4 +extern void *memchr (__const void *__s, int __c, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + +# 109 "/usr/include/string.h" 3 4 +extern void *rawmemchr (__const void *__s, int __c) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 120 "/usr/include/string.h" 3 4 +extern void *memrchr (__const void *__s, int __c, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncpy (char *__restrict __dest, + __const char *__restrict __src, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strcat (char *__restrict __dest, __const char *__restrict __src) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + +extern char *strncat (char *__restrict __dest, __const char *__restrict __src, + size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcmp (__const char *__s1, __const char *__s2) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strcoll (__const char *__s1, __const char *__s2) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + +extern size_t strxfrm (char *__restrict __dest, + __const char *__restrict __src, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + +# 165 "/usr/include/string.h" 3 4 +extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + +extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, + __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))); + + + + + +extern char *strdup (__const char *__s) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern char *strndup (__const char *__string, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); +# 210 "/usr/include/string.h" 3 4 + +# 235 "/usr/include/string.h" 3 4 +extern char *strchr (__const char *__s, int __c) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 262 "/usr/include/string.h" 3 4 +extern char *strrchr (__const char *__s, int __c) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + +# 276 "/usr/include/string.h" 3 4 +extern char *strchrnul (__const char *__s, int __c) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern size_t strcspn (__const char *__s, __const char *__reject) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern size_t strspn (__const char *__s, __const char *__accept) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 314 "/usr/include/string.h" 3 4 +extern char *strpbrk (__const char *__s, __const char *__accept) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 342 "/usr/include/string.h" 3 4 +extern char *strstr (__const char *__haystack, __const char *__needle) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern char *strtok (char *__restrict __s, __const char *__restrict __delim) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + + + + +extern char *__strtok_r (char *__restrict __s, + __const char *__restrict __delim, + char **__restrict __save_ptr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); + +extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, + char **__restrict __save_ptr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); +# 373 "/usr/include/string.h" 3 4 +extern char *strcasestr (__const char *__haystack, __const char *__needle) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + + + +extern void *memmem (__const void *__haystack, size_t __haystacklen, + __const void *__needle, size_t __needlelen) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); + + + +extern void *__mempcpy (void *__restrict __dest, + __const void *__restrict __src, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); +extern void *mempcpy (void *__restrict __dest, + __const void *__restrict __src, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern size_t strlen (__const char *__s) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern size_t strnlen (__const char *__string, size_t __maxlen) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern char *strerror (int __errnum) __attribute__ ((__nothrow__ , __leaf__)); + +# 438 "/usr/include/string.h" 3 4 +extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + + + + + +extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + +extern void bcopy (__const void *__src, void *__dest, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); +# 489 "/usr/include/string.h" 3 4 +extern char *index (__const char *__s, int __c) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); +# 517 "/usr/include/string.h" 3 4 +extern char *rindex (__const char *__s, int __c) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); + + + + +extern int ffs (int __i) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + + +extern int ffsl (long int __l) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + +__extension__ extern int ffsll (long long int __ll) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + + +extern int strcasecmp (__const char *__s1, __const char *__s2) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern int strcasecmp_l (__const char *__s1, __const char *__s2, + __locale_t __loc) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); + +extern int strncasecmp_l (__const char *__s1, __const char *__s2, + size_t __n, __locale_t __loc) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); + + + + + +extern char *strsep (char **__restrict __stringp, + __const char *__restrict __delim) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern char *strsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__)); + + +extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); +extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern char *__stpncpy (char *__restrict __dest, + __const char *__restrict __src, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); +extern char *stpncpy (char *__restrict __dest, + __const char *__restrict __src, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern int strverscmp (__const char *__s1, __const char *__s2) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern char *strfry (char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); +# 606 "/usr/include/string.h" 3 4 +extern char *basename (__const char *__filename) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); +# 634 "/usr/include/string.h" 3 4 +# 1 "/usr/include/bits/string.h" 1 3 4 +# 635 "/usr/include/string.h" 2 3 4 + + +# 1 "/usr/include/bits/string2.h" 1 3 4 +# 394 "/usr/include/bits/string2.h" 3 4 +extern void *__rawmemchr (const void *__s, int __c); +# 969 "/usr/include/bits/string2.h" 3 4 +extern __inline size_t __strcspn_c1 (__const char *__s, int __reject); +extern __inline size_t +__strcspn_c1 (__const char *__s, int __reject) +{ + register size_t __result = 0; + while (__s[__result] != '\0' && __s[__result] != __reject) + ++__result; + return __result; +} + +extern __inline size_t __strcspn_c2 (__const char *__s, int __reject1, + int __reject2); +extern __inline size_t +__strcspn_c2 (__const char *__s, int __reject1, int __reject2) +{ + register size_t __result = 0; + while (__s[__result] != '\0' && __s[__result] != __reject1 + && __s[__result] != __reject2) + ++__result; + return __result; +} + +extern __inline size_t __strcspn_c3 (__const char *__s, int __reject1, + int __reject2, int __reject3); +extern __inline size_t +__strcspn_c3 (__const char *__s, int __reject1, int __reject2, + int __reject3) +{ + register size_t __result = 0; + while (__s[__result] != '\0' && __s[__result] != __reject1 + && __s[__result] != __reject2 && __s[__result] != __reject3) + ++__result; + return __result; +} +# 1045 "/usr/include/bits/string2.h" 3 4 +extern __inline size_t __strspn_c1 (__const char *__s, int __accept); +extern __inline size_t +__strspn_c1 (__const char *__s, int __accept) +{ + register size_t __result = 0; + + while (__s[__result] == __accept) + ++__result; + return __result; +} + +extern __inline size_t __strspn_c2 (__const char *__s, int __accept1, + int __accept2); +extern __inline size_t +__strspn_c2 (__const char *__s, int __accept1, int __accept2) +{ + register size_t __result = 0; + + while (__s[__result] == __accept1 || __s[__result] == __accept2) + ++__result; + return __result; +} + +extern __inline size_t __strspn_c3 (__const char *__s, int __accept1, + int __accept2, int __accept3); +extern __inline size_t +__strspn_c3 (__const char *__s, int __accept1, int __accept2, int __accept3) +{ + register size_t __result = 0; + + while (__s[__result] == __accept1 || __s[__result] == __accept2 + || __s[__result] == __accept3) + ++__result; + return __result; +} +# 1121 "/usr/include/bits/string2.h" 3 4 +extern __inline char *__strpbrk_c2 (__const char *__s, int __accept1, + int __accept2); +extern __inline char * +__strpbrk_c2 (__const char *__s, int __accept1, int __accept2) +{ + + while (*__s != '\0' && *__s != __accept1 && *__s != __accept2) + ++__s; + return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; +} + +extern __inline char *__strpbrk_c3 (__const char *__s, int __accept1, + int __accept2, int __accept3); +extern __inline char * +__strpbrk_c3 (__const char *__s, int __accept1, int __accept2, + int __accept3) +{ + + while (*__s != '\0' && *__s != __accept1 && *__s != __accept2 + && *__s != __accept3) + ++__s; + return *__s == '\0' ? ((void *)0) : (char *) (size_t) __s; +} +# 1172 "/usr/include/bits/string2.h" 3 4 +extern __inline char *__strtok_r_1c (char *__s, char __sep, char **__nextp); +extern __inline char * +__strtok_r_1c (char *__s, char __sep, char **__nextp) +{ + char *__result; + if (__s == ((void *)0)) + __s = *__nextp; + while (*__s == __sep) + ++__s; + __result = ((void *)0); + if (*__s != '\0') + { + __result = __s++; + while (*__s != '\0') + if (*__s++ == __sep) + { + __s[-1] = '\0'; + break; + } + } + *__nextp = __s; + return __result; +} +# 1204 "/usr/include/bits/string2.h" 3 4 +extern char *__strsep_g (char **__stringp, __const char *__delim); +# 1222 "/usr/include/bits/string2.h" 3 4 +extern __inline char *__strsep_1c (char **__s, char __reject); +extern __inline char * +__strsep_1c (char **__s, char __reject) +{ + register char *__retval = *__s; + if (__retval != ((void *)0) && (*__s = (__extension__ (__builtin_constant_p (__reject) && !__builtin_constant_p (__retval) && (__reject) == '\0' ? (char *) __rawmemchr (__retval, __reject) : __builtin_strchr (__retval, __reject)))) != ((void *)0)) + *(*__s)++ = '\0'; + return __retval; +} + +extern __inline char *__strsep_2c (char **__s, char __reject1, char __reject2); +extern __inline char * +__strsep_2c (char **__s, char __reject1, char __reject2) +{ + register char *__retval = *__s; + if (__retval != ((void *)0)) + { + register char *__cp = __retval; + while (1) + { + if (*__cp == '\0') + { + __cp = ((void *)0); + break; + } + if (*__cp == __reject1 || *__cp == __reject2) + { + *__cp++ = '\0'; + break; + } + ++__cp; + } + *__s = __cp; + } + return __retval; +} + +extern __inline char *__strsep_3c (char **__s, char __reject1, char __reject2, + char __reject3); +extern __inline char * +__strsep_3c (char **__s, char __reject1, char __reject2, char __reject3) +{ + register char *__retval = *__s; + if (__retval != ((void *)0)) + { + register char *__cp = __retval; + while (1) + { + if (*__cp == '\0') + { + __cp = ((void *)0); + break; + } + if (*__cp == __reject1 || *__cp == __reject2 || *__cp == __reject3) + { + *__cp++ = '\0'; + break; + } + ++__cp; + } + *__s = __cp; + } + return __retval; +} +# 1303 "/usr/include/bits/string2.h" 3 4 +extern char *__strdup (__const char *__string) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)); +# 1322 "/usr/include/bits/string2.h" 3 4 +extern char *__strndup (__const char *__string, size_t __n) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__malloc__)); +# 638 "/usr/include/string.h" 2 3 4 + + + + +# 1 "/usr/include/bits/string3.h" 1 3 4 +# 23 "/usr/include/bits/string3.h" 3 4 +extern void __warn_memset_zero_len (void) __attribute__((__warning__ ("memset used with constant zero length parameter; this could be due to transposed parameters"))) + ; +# 48 "/usr/include/bits/string3.h" 3 4 +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void * +__attribute__ ((__nothrow__ , __leaf__)) memcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len) + +{ + return __builtin___memcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); +} + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void * +__attribute__ ((__nothrow__ , __leaf__)) memmove (void *__dest, __const void *__src, size_t __len) +{ + return __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); +} + + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void * +__attribute__ ((__nothrow__ , __leaf__)) mempcpy (void *__restrict __dest, __const void *__restrict __src, size_t __len) + +{ + return __builtin___mempcpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); +} +# 76 "/usr/include/bits/string3.h" 3 4 +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void * +__attribute__ ((__nothrow__ , __leaf__)) memset (void *__dest, int __ch, size_t __len) +{ + if (__builtin_constant_p (__len) && __len == 0 + && (!__builtin_constant_p (__ch) || __ch != 0)) + { + __warn_memset_zero_len (); + return __dest; + } + return __builtin___memset_chk (__dest, __ch, __len, __builtin_object_size (__dest, 0)); +} + + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void +__attribute__ ((__nothrow__ , __leaf__)) bcopy (__const void *__src, void *__dest, size_t __len) +{ + (void) __builtin___memmove_chk (__dest, __src, __len, __builtin_object_size (__dest, 0)); +} + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) void +__attribute__ ((__nothrow__ , __leaf__)) bzero (void *__dest, size_t __len) +{ + (void) __builtin___memset_chk (__dest, '\0', __len, __builtin_object_size (__dest, 0)); +} + + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * +__attribute__ ((__nothrow__ , __leaf__)) strcpy (char *__restrict __dest, __const char *__restrict __src) +{ + return __builtin___strcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); +} + + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * +__attribute__ ((__nothrow__ , __leaf__)) stpcpy (char *__restrict __dest, __const char *__restrict __src) +{ + return __builtin___stpcpy_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); +} + + + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * +__attribute__ ((__nothrow__ , __leaf__)) strncpy (char *__restrict __dest, __const char *__restrict __src, size_t __len) + +{ + return __builtin___strncpy_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); +} + + +extern char *__stpncpy_chk (char *__dest, __const char *__src, size_t __n, + size_t __destlen) __attribute__ ((__nothrow__ , __leaf__)); +extern char *__stpncpy_alias (char *__dest, __const char *__src, size_t __n) __asm__ ("" "stpncpy") __attribute__ ((__nothrow__ , __leaf__)) + + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * +__attribute__ ((__nothrow__ , __leaf__)) stpncpy (char *__dest, __const char *__src, size_t __n) +{ + if (__builtin_object_size (__dest, 2 > 1) != (size_t) -1 + && (!__builtin_constant_p (__n) || __n <= __builtin_object_size (__dest, 2 > 1))) + return __stpncpy_chk (__dest, __src, __n, __builtin_object_size (__dest, 2 > 1)); + return __stpncpy_alias (__dest, __src, __n); +} + + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * +__attribute__ ((__nothrow__ , __leaf__)) strcat (char *__restrict __dest, __const char *__restrict __src) +{ + return __builtin___strcat_chk (__dest, __src, __builtin_object_size (__dest, 2 > 1)); +} + + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) char * +__attribute__ ((__nothrow__ , __leaf__)) strncat (char *__restrict __dest, __const char *__restrict __src, size_t __len) + +{ + return __builtin___strncat_chk (__dest, __src, __len, __builtin_object_size (__dest, 2 > 1)); +} +# 643 "/usr/include/string.h" 2 3 4 + + + + +# 27 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/include/strings.h" 1 3 4 +# 28 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/include/inttypes.h" 1 3 4 +# 28 "/usr/include/inttypes.h" 3 4 +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stdint.h" 1 3 4 + + +# 1 "/usr/include/stdint.h" 1 3 4 +# 27 "/usr/include/stdint.h" 3 4 +# 1 "/usr/include/bits/wchar.h" 1 3 4 +# 28 "/usr/include/stdint.h" 2 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 29 "/usr/include/stdint.h" 2 3 4 +# 49 "/usr/include/stdint.h" 3 4 +typedef unsigned char uint8_t; +typedef unsigned short int uint16_t; + +typedef unsigned int uint32_t; + + + + + +__extension__ +typedef unsigned long long int uint64_t; + + + + + + +typedef signed char int_least8_t; +typedef short int int_least16_t; +typedef int int_least32_t; + + + +__extension__ +typedef long long int int_least64_t; + + + +typedef unsigned char uint_least8_t; +typedef unsigned short int uint_least16_t; +typedef unsigned int uint_least32_t; + + + +__extension__ +typedef unsigned long long int uint_least64_t; + + + + + + +typedef signed char int_fast8_t; + + + + + +typedef int int_fast16_t; +typedef int int_fast32_t; +__extension__ +typedef long long int int_fast64_t; + + + +typedef unsigned char uint_fast8_t; + + + + + +typedef unsigned int uint_fast16_t; +typedef unsigned int uint_fast32_t; +__extension__ +typedef unsigned long long int uint_fast64_t; +# 126 "/usr/include/stdint.h" 3 4 +typedef int intptr_t; + + +typedef unsigned int uintptr_t; +# 138 "/usr/include/stdint.h" 3 4 +__extension__ +typedef long long int intmax_t; +__extension__ +typedef unsigned long long int uintmax_t; +# 4 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stdint.h" 2 3 4 +# 29 "/usr/include/inttypes.h" 2 3 4 + + + + + + +typedef int __gwchar_t; +# 274 "/usr/include/inttypes.h" 3 4 + +# 288 "/usr/include/inttypes.h" 3 4 +typedef struct + { + long long int quot; + long long int rem; + } imaxdiv_t; + + + + + +extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern intmax_t strtoimax (__const char *__restrict __nptr, + char **__restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)); + + +extern uintmax_t strtoumax (__const char *__restrict __nptr, + char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__ , __leaf__)); + + +extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr, + __gwchar_t **__restrict __endptr, int __base) + __attribute__ ((__nothrow__ , __leaf__)); + + +extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr, + __gwchar_t ** __restrict __endptr, int __base) + __attribute__ ((__nothrow__ , __leaf__)); +# 379 "/usr/include/inttypes.h" 3 4 +__extension__ +extern long long int __strtoll_internal (__const char *__restrict __nptr, + char **__restrict __endptr, + int __base, int __group) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + +extern __inline intmax_t +__attribute__ ((__nothrow__ , __leaf__)) strtoimax (__const char *__restrict nptr, char **__restrict endptr, int base) + +{ + return __strtoll_internal (nptr, endptr, base, 0); +} + +__extension__ +extern unsigned long long int __strtoull_internal (__const char * + __restrict __nptr, + char ** + __restrict __endptr, + int __base, + int __group) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + +extern __inline uintmax_t +__attribute__ ((__nothrow__ , __leaf__)) strtoumax (__const char *__restrict nptr, char **__restrict endptr, int base) + +{ + return __strtoull_internal (nptr, endptr, base, 0); +} + +__extension__ +extern long long int __wcstoll_internal (__const __gwchar_t * + __restrict __nptr, + __gwchar_t **__restrict __endptr, + int __base, int __group) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + +extern __inline intmax_t +__attribute__ ((__nothrow__ , __leaf__)) wcstoimax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) + +{ + return __wcstoll_internal (nptr, endptr, base, 0); +} + + +__extension__ +extern unsigned long long int __wcstoull_internal (__const __gwchar_t * + __restrict __nptr, + __gwchar_t ** + __restrict __endptr, + int __base, + int __group) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + +extern __inline uintmax_t +__attribute__ ((__nothrow__ , __leaf__)) wcstoumax (__const __gwchar_t *__restrict nptr, __gwchar_t **__restrict endptr, int base) + +{ + return __wcstoull_internal (nptr, endptr, base, 0); +} + + + + + +# 29 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include-fixed/limits.h" 1 3 4 +# 34 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include-fixed/limits.h" 3 4 +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include-fixed/syslimits.h" 1 3 4 + + + + + + +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include-fixed/limits.h" 1 3 4 +# 169 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include-fixed/limits.h" 3 4 +# 1 "/usr/include/limits.h" 1 3 4 +# 145 "/usr/include/limits.h" 3 4 +# 1 "/usr/include/bits/posix1_lim.h" 1 3 4 +# 157 "/usr/include/bits/posix1_lim.h" 3 4 +# 1 "/usr/include/bits/local_lim.h" 1 3 4 +# 39 "/usr/include/bits/local_lim.h" 3 4 +# 1 "/usr/include/linux/limits.h" 1 3 4 +# 40 "/usr/include/bits/local_lim.h" 2 3 4 +# 158 "/usr/include/bits/posix1_lim.h" 2 3 4 +# 146 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/bits/posix2_lim.h" 1 3 4 +# 150 "/usr/include/limits.h" 2 3 4 + + + +# 1 "/usr/include/bits/xopen_lim.h" 1 3 4 +# 34 "/usr/include/bits/xopen_lim.h" 3 4 +# 1 "/usr/include/bits/stdio_lim.h" 1 3 4 +# 35 "/usr/include/bits/xopen_lim.h" 2 3 4 +# 154 "/usr/include/limits.h" 2 3 4 +# 170 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include-fixed/limits.h" 2 3 4 +# 8 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include-fixed/syslimits.h" 2 3 4 +# 35 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include-fixed/limits.h" 2 3 4 +# 30 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/include/time.h" 1 3 4 +# 30 "/usr/include/time.h" 3 4 + + + + + + + + +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 1 3 4 +# 39 "/usr/include/time.h" 2 3 4 + + + +# 1 "/usr/include/bits/time.h" 1 3 4 +# 86 "/usr/include/bits/time.h" 3 4 +# 1 "/usr/include/bits/timex.h" 1 3 4 +# 24 "/usr/include/bits/timex.h" 3 4 +struct timex +{ + unsigned int modes; + long int offset; + long int freq; + long int maxerror; + long int esterror; + int status; + long int constant; + long int precision; + long int tolerance; + struct timeval time; + long int tick; + + long int ppsfreq; + long int jitter; + int shift; + long int stabil; + long int jitcnt; + long int calcnt; + long int errcnt; + long int stbcnt; + + int tai; + + + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; int :32; + int :32; int :32; int :32; +}; +# 87 "/usr/include/bits/time.h" 2 3 4 + + + + +extern int clock_adjtime (__clockid_t __clock_id, struct timex *__utx) __attribute__ ((__nothrow__ , __leaf__)); + + +# 43 "/usr/include/time.h" 2 3 4 +# 131 "/usr/include/time.h" 3 4 + + +struct tm +{ + int tm_sec; + int tm_min; + int tm_hour; + int tm_mday; + int tm_mon; + int tm_year; + int tm_wday; + int tm_yday; + int tm_isdst; + + + long int tm_gmtoff; + __const char *tm_zone; + + + + +}; + + + + + + + + +struct itimerspec + { + struct timespec it_interval; + struct timespec it_value; + }; + + +struct sigevent; +# 180 "/usr/include/time.h" 3 4 + + + +extern clock_t clock (void) __attribute__ ((__nothrow__ , __leaf__)); + + +extern time_t time (time_t *__timer) __attribute__ ((__nothrow__ , __leaf__)); + + +extern double difftime (time_t __time1, time_t __time0) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern time_t mktime (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern size_t strftime (char *__restrict __s, size_t __maxsize, + __const char *__restrict __format, + __const struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern char *strptime (__const char *__restrict __s, + __const char *__restrict __fmt, struct tm *__tp) + __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + +extern size_t strftime_l (char *__restrict __s, size_t __maxsize, + __const char *__restrict __format, + __const struct tm *__restrict __tp, + __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern char *strptime_l (__const char *__restrict __s, + __const char *__restrict __fmt, struct tm *__tp, + __locale_t __loc) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern struct tm *gmtime (__const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern struct tm *localtime (__const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern struct tm *gmtime_r (__const time_t *__restrict __timer, + struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern struct tm *localtime_r (__const time_t *__restrict __timer, + struct tm *__restrict __tp) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern char *asctime (__const struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__)); + + +extern char *ctime (__const time_t *__timer) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + +extern char *asctime_r (__const struct tm *__restrict __tp, + char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)); + + +extern char *ctime_r (__const time_t *__restrict __timer, + char *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern char *__tzname[2]; +extern int __daylight; +extern long int __timezone; + + + + +extern char *tzname[2]; + + + +extern void tzset (void) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int daylight; +extern long int timezone; + + + + + +extern int stime (__const time_t *__when) __attribute__ ((__nothrow__ , __leaf__)); +# 313 "/usr/include/time.h" 3 4 +extern time_t timegm (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__)); + + +extern time_t timelocal (struct tm *__tp) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int dysize (int __year) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); +# 328 "/usr/include/time.h" 3 4 +extern int nanosleep (__const struct timespec *__requested_time, + struct timespec *__remaining); + + + +extern int clock_getres (clockid_t __clock_id, struct timespec *__res) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int clock_gettime (clockid_t __clock_id, struct timespec *__tp) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int clock_settime (clockid_t __clock_id, __const struct timespec *__tp) + __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern int clock_nanosleep (clockid_t __clock_id, int __flags, + __const struct timespec *__req, + struct timespec *__rem); + + +extern int clock_getcpuclockid (pid_t __pid, clockid_t *__clock_id) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int timer_create (clockid_t __clock_id, + struct sigevent *__restrict __evp, + timer_t *__restrict __timerid) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int timer_delete (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int timer_settime (timer_t __timerid, int __flags, + __const struct itimerspec *__restrict __value, + struct itimerspec *__restrict __ovalue) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int timer_gettime (timer_t __timerid, struct itimerspec *__value) + __attribute__ ((__nothrow__ , __leaf__)); + + +extern int timer_getoverrun (timer_t __timerid) __attribute__ ((__nothrow__ , __leaf__)); +# 390 "/usr/include/time.h" 3 4 +extern int getdate_err; +# 399 "/usr/include/time.h" 3 4 +extern struct tm *getdate (__const char *__string); +# 413 "/usr/include/time.h" 3 4 +extern int getdate_r (__const char *__restrict __string, + struct tm *__restrict __resbufp); + + + +# 31 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/include/ctype.h" 1 3 4 +# 30 "/usr/include/ctype.h" 3 4 + +# 48 "/usr/include/ctype.h" 3 4 +enum +{ + _ISupper = ((0) < 8 ? ((1 << (0)) << 8) : ((1 << (0)) >> 8)), + _ISlower = ((1) < 8 ? ((1 << (1)) << 8) : ((1 << (1)) >> 8)), + _ISalpha = ((2) < 8 ? ((1 << (2)) << 8) : ((1 << (2)) >> 8)), + _ISdigit = ((3) < 8 ? ((1 << (3)) << 8) : ((1 << (3)) >> 8)), + _ISxdigit = ((4) < 8 ? ((1 << (4)) << 8) : ((1 << (4)) >> 8)), + _ISspace = ((5) < 8 ? ((1 << (5)) << 8) : ((1 << (5)) >> 8)), + _ISprint = ((6) < 8 ? ((1 << (6)) << 8) : ((1 << (6)) >> 8)), + _ISgraph = ((7) < 8 ? ((1 << (7)) << 8) : ((1 << (7)) >> 8)), + _ISblank = ((8) < 8 ? ((1 << (8)) << 8) : ((1 << (8)) >> 8)), + _IScntrl = ((9) < 8 ? ((1 << (9)) << 8) : ((1 << (9)) >> 8)), + _ISpunct = ((10) < 8 ? ((1 << (10)) << 8) : ((1 << (10)) >> 8)), + _ISalnum = ((11) < 8 ? ((1 << (11)) << 8) : ((1 << (11)) >> 8)) +}; +# 81 "/usr/include/ctype.h" 3 4 +extern __const unsigned short int **__ctype_b_loc (void) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const)); +extern __const __int32_t **__ctype_tolower_loc (void) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const)); +extern __const __int32_t **__ctype_toupper_loc (void) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const)); +# 106 "/usr/include/ctype.h" 3 4 + + + + + + +extern int isalnum (int) __attribute__ ((__nothrow__ , __leaf__)); +extern int isalpha (int) __attribute__ ((__nothrow__ , __leaf__)); +extern int iscntrl (int) __attribute__ ((__nothrow__ , __leaf__)); +extern int isdigit (int) __attribute__ ((__nothrow__ , __leaf__)); +extern int islower (int) __attribute__ ((__nothrow__ , __leaf__)); +extern int isgraph (int) __attribute__ ((__nothrow__ , __leaf__)); +extern int isprint (int) __attribute__ ((__nothrow__ , __leaf__)); +extern int ispunct (int) __attribute__ ((__nothrow__ , __leaf__)); +extern int isspace (int) __attribute__ ((__nothrow__ , __leaf__)); +extern int isupper (int) __attribute__ ((__nothrow__ , __leaf__)); +extern int isxdigit (int) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int tolower (int __c) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int toupper (int __c) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + + +extern int isblank (int) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern int isctype (int __c, int __mask) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern int isascii (int __c) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int toascii (int __c) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int _toupper (int) __attribute__ ((__nothrow__ , __leaf__)); +extern int _tolower (int) __attribute__ ((__nothrow__ , __leaf__)); +# 216 "/usr/include/ctype.h" 3 4 +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) tolower (int __c) +{ + return __c >= -128 && __c < 256 ? (*__ctype_tolower_loc ())[__c] : __c; +} + +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) toupper (int __c) +{ + return __c >= -128 && __c < 256 ? (*__ctype_toupper_loc ())[__c] : __c; +} +# 273 "/usr/include/ctype.h" 3 4 +extern int isalnum_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); +extern int isalpha_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); +extern int iscntrl_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); +extern int isdigit_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); +extern int islower_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); +extern int isgraph_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); +extern int isprint_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); +extern int ispunct_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); +extern int isspace_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); +extern int isupper_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); +extern int isxdigit_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); + +extern int isblank_l (int, __locale_t) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int __tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); +extern int tolower_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int __toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); +extern int toupper_l (int __c, __locale_t __l) __attribute__ ((__nothrow__ , __leaf__)); +# 349 "/usr/include/ctype.h" 3 4 + +# 32 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/include/errno.h" 1 3 4 +# 32 "/usr/include/errno.h" 3 4 + + + + +# 1 "/usr/include/bits/errno.h" 1 3 4 +# 25 "/usr/include/bits/errno.h" 3 4 +# 1 "/usr/include/linux/errno.h" 1 3 4 + + + +# 1 "/usr/include/asm/errno.h" 1 3 4 +# 1 "/usr/include/asm-generic/errno.h" 1 3 4 + + + +# 1 "/usr/include/asm-generic/errno-base.h" 1 3 4 +# 5 "/usr/include/asm-generic/errno.h" 2 3 4 +# 1 "/usr/include/asm/errno.h" 2 3 4 +# 5 "/usr/include/linux/errno.h" 2 3 4 +# 26 "/usr/include/bits/errno.h" 2 3 4 +# 47 "/usr/include/bits/errno.h" 3 4 +extern int *__errno_location (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); +# 37 "/usr/include/errno.h" 2 3 4 +# 55 "/usr/include/errno.h" 3 4 +extern char *program_invocation_name, *program_invocation_short_name; + + + + +# 69 "/usr/include/errno.h" 3 4 +typedef int error_t; +# 33 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/include/unistd.h" 1 3 4 +# 28 "/usr/include/unistd.h" 3 4 + +# 203 "/usr/include/unistd.h" 3 4 +# 1 "/usr/include/bits/posix_opt.h" 1 3 4 +# 204 "/usr/include/unistd.h" 2 3 4 + + + +# 1 "/usr/include/bits/environments.h" 1 3 4 +# 208 "/usr/include/unistd.h" 2 3 4 +# 227 "/usr/include/unistd.h" 3 4 +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 1 3 4 +# 228 "/usr/include/unistd.h" 2 3 4 +# 275 "/usr/include/unistd.h" 3 4 +typedef __socklen_t socklen_t; +# 288 "/usr/include/unistd.h" 3 4 +extern int access (__const char *__name, int __type) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + +extern int euidaccess (__const char *__name, int __type) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int eaccess (__const char *__name, int __type) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern int faccessat (int __fd, __const char *__file, int __type, int __flag) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); +# 338 "/usr/include/unistd.h" 3 4 +extern __off64_t lseek (int __fd, __off64_t __offset, int __whence) __asm__ ("" "lseek64") __attribute__ ((__nothrow__ , __leaf__)) + + ; + + + + + +extern __off64_t lseek64 (int __fd, __off64_t __offset, int __whence) + __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern int close (int __fd); + + + + + + +extern ssize_t read (int __fd, void *__buf, size_t __nbytes) __attribute__ ((__warn_unused_result__)); + + + + + +extern ssize_t write (int __fd, __const void *__buf, size_t __n) __attribute__ ((__warn_unused_result__)); +# 389 "/usr/include/unistd.h" 3 4 +extern ssize_t pread (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pread64") + + __attribute__ ((__warn_unused_result__)); +extern ssize_t pwrite (int __fd, __const void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pwrite64") + + __attribute__ ((__warn_unused_result__)); +# 405 "/usr/include/unistd.h" 3 4 +extern ssize_t pread64 (int __fd, void *__buf, size_t __nbytes, + __off64_t __offset) __attribute__ ((__warn_unused_result__)); + + +extern ssize_t pwrite64 (int __fd, __const void *__buf, size_t __n, + __off64_t __offset) __attribute__ ((__warn_unused_result__)); + + + + + + + +extern int pipe (int __pipedes[2]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + +extern int pipe2 (int __pipedes[2], int __flags) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); +# 433 "/usr/include/unistd.h" 3 4 +extern unsigned int alarm (unsigned int __seconds) __attribute__ ((__nothrow__ , __leaf__)); +# 445 "/usr/include/unistd.h" 3 4 +extern unsigned int sleep (unsigned int __seconds); + + + + + + + +extern __useconds_t ualarm (__useconds_t __value, __useconds_t __interval) + __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern int usleep (__useconds_t __useconds); +# 470 "/usr/include/unistd.h" 3 4 +extern int pause (void); + + + +extern int chown (__const char *__file, __uid_t __owner, __gid_t __group) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + +extern int fchown (int __fd, __uid_t __owner, __gid_t __group) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + +extern int lchown (__const char *__file, __uid_t __owner, __gid_t __group) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + + + +extern int fchownat (int __fd, __const char *__file, __uid_t __owner, + __gid_t __group, int __flag) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); + + + +extern int chdir (__const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + +extern int fchdir (int __fd) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); +# 512 "/usr/include/unistd.h" 3 4 +extern char *getcwd (char *__buf, size_t __size) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + + +extern char *get_current_dir_name (void) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + +extern char *getwd (char *__buf) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)); + + + + +extern int dup (int __fd) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + +extern int dup2 (int __fd, int __fd2) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int dup3 (int __fd, int __fd2, int __flags) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern char **__environ; + +extern char **environ; + + + + + +extern int execve (__const char *__path, char *__const __argv[], + char *__const __envp[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern int fexecve (int __fd, char *__const __argv[], char *__const __envp[]) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + + + + +extern int execv (__const char *__path, char *__const __argv[]) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern int execle (__const char *__path, __const char *__arg, ...) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern int execl (__const char *__path, __const char *__arg, ...) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern int execvp (__const char *__file, char *__const __argv[]) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern int execlp (__const char *__file, __const char *__arg, ...) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern int execvpe (__const char *__file, char *__const __argv[], + char *__const __envp[]) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern int nice (int __inc) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + +extern void _exit (int __status) __attribute__ ((__noreturn__)); + + + + + +# 1 "/usr/include/bits/confname.h" 1 3 4 +# 26 "/usr/include/bits/confname.h" 3 4 +enum + { + _PC_LINK_MAX, + + _PC_MAX_CANON, + + _PC_MAX_INPUT, + + _PC_NAME_MAX, + + _PC_PATH_MAX, + + _PC_PIPE_BUF, + + _PC_CHOWN_RESTRICTED, + + _PC_NO_TRUNC, + + _PC_VDISABLE, + + _PC_SYNC_IO, + + _PC_ASYNC_IO, + + _PC_PRIO_IO, + + _PC_SOCK_MAXBUF, + + _PC_FILESIZEBITS, + + _PC_REC_INCR_XFER_SIZE, + + _PC_REC_MAX_XFER_SIZE, + + _PC_REC_MIN_XFER_SIZE, + + _PC_REC_XFER_ALIGN, + + _PC_ALLOC_SIZE_MIN, + + _PC_SYMLINK_MAX, + + _PC_2_SYMLINKS + + }; + + +enum + { + _SC_ARG_MAX, + + _SC_CHILD_MAX, + + _SC_CLK_TCK, + + _SC_NGROUPS_MAX, + + _SC_OPEN_MAX, + + _SC_STREAM_MAX, + + _SC_TZNAME_MAX, + + _SC_JOB_CONTROL, + + _SC_SAVED_IDS, + + _SC_REALTIME_SIGNALS, + + _SC_PRIORITY_SCHEDULING, + + _SC_TIMERS, + + _SC_ASYNCHRONOUS_IO, + + _SC_PRIORITIZED_IO, + + _SC_SYNCHRONIZED_IO, + + _SC_FSYNC, + + _SC_MAPPED_FILES, + + _SC_MEMLOCK, + + _SC_MEMLOCK_RANGE, + + _SC_MEMORY_PROTECTION, + + _SC_MESSAGE_PASSING, + + _SC_SEMAPHORES, + + _SC_SHARED_MEMORY_OBJECTS, + + _SC_AIO_LISTIO_MAX, + + _SC_AIO_MAX, + + _SC_AIO_PRIO_DELTA_MAX, + + _SC_DELAYTIMER_MAX, + + _SC_MQ_OPEN_MAX, + + _SC_MQ_PRIO_MAX, + + _SC_VERSION, + + _SC_PAGESIZE, + + + _SC_RTSIG_MAX, + + _SC_SEM_NSEMS_MAX, + + _SC_SEM_VALUE_MAX, + + _SC_SIGQUEUE_MAX, + + _SC_TIMER_MAX, + + + + + _SC_BC_BASE_MAX, + + _SC_BC_DIM_MAX, + + _SC_BC_SCALE_MAX, + + _SC_BC_STRING_MAX, + + _SC_COLL_WEIGHTS_MAX, + + _SC_EQUIV_CLASS_MAX, + + _SC_EXPR_NEST_MAX, + + _SC_LINE_MAX, + + _SC_RE_DUP_MAX, + + _SC_CHARCLASS_NAME_MAX, + + + _SC_2_VERSION, + + _SC_2_C_BIND, + + _SC_2_C_DEV, + + _SC_2_FORT_DEV, + + _SC_2_FORT_RUN, + + _SC_2_SW_DEV, + + _SC_2_LOCALEDEF, + + + _SC_PII, + + _SC_PII_XTI, + + _SC_PII_SOCKET, + + _SC_PII_INTERNET, + + _SC_PII_OSI, + + _SC_POLL, + + _SC_SELECT, + + _SC_UIO_MAXIOV, + + _SC_IOV_MAX = _SC_UIO_MAXIOV, + + _SC_PII_INTERNET_STREAM, + + _SC_PII_INTERNET_DGRAM, + + _SC_PII_OSI_COTS, + + _SC_PII_OSI_CLTS, + + _SC_PII_OSI_M, + + _SC_T_IOV_MAX, + + + + _SC_THREADS, + + _SC_THREAD_SAFE_FUNCTIONS, + + _SC_GETGR_R_SIZE_MAX, + + _SC_GETPW_R_SIZE_MAX, + + _SC_LOGIN_NAME_MAX, + + _SC_TTY_NAME_MAX, + + _SC_THREAD_DESTRUCTOR_ITERATIONS, + + _SC_THREAD_KEYS_MAX, + + _SC_THREAD_STACK_MIN, + + _SC_THREAD_THREADS_MAX, + + _SC_THREAD_ATTR_STACKADDR, + + _SC_THREAD_ATTR_STACKSIZE, + + _SC_THREAD_PRIORITY_SCHEDULING, + + _SC_THREAD_PRIO_INHERIT, + + _SC_THREAD_PRIO_PROTECT, + + _SC_THREAD_PROCESS_SHARED, + + + _SC_NPROCESSORS_CONF, + + _SC_NPROCESSORS_ONLN, + + _SC_PHYS_PAGES, + + _SC_AVPHYS_PAGES, + + _SC_ATEXIT_MAX, + + _SC_PASS_MAX, + + + _SC_XOPEN_VERSION, + + _SC_XOPEN_XCU_VERSION, + + _SC_XOPEN_UNIX, + + _SC_XOPEN_CRYPT, + + _SC_XOPEN_ENH_I18N, + + _SC_XOPEN_SHM, + + + _SC_2_CHAR_TERM, + + _SC_2_C_VERSION, + + _SC_2_UPE, + + + _SC_XOPEN_XPG2, + + _SC_XOPEN_XPG3, + + _SC_XOPEN_XPG4, + + + _SC_CHAR_BIT, + + _SC_CHAR_MAX, + + _SC_CHAR_MIN, + + _SC_INT_MAX, + + _SC_INT_MIN, + + _SC_LONG_BIT, + + _SC_WORD_BIT, + + _SC_MB_LEN_MAX, + + _SC_NZERO, + + _SC_SSIZE_MAX, + + _SC_SCHAR_MAX, + + _SC_SCHAR_MIN, + + _SC_SHRT_MAX, + + _SC_SHRT_MIN, + + _SC_UCHAR_MAX, + + _SC_UINT_MAX, + + _SC_ULONG_MAX, + + _SC_USHRT_MAX, + + + _SC_NL_ARGMAX, + + _SC_NL_LANGMAX, + + _SC_NL_MSGMAX, + + _SC_NL_NMAX, + + _SC_NL_SETMAX, + + _SC_NL_TEXTMAX, + + + _SC_XBS5_ILP32_OFF32, + + _SC_XBS5_ILP32_OFFBIG, + + _SC_XBS5_LP64_OFF64, + + _SC_XBS5_LPBIG_OFFBIG, + + + _SC_XOPEN_LEGACY, + + _SC_XOPEN_REALTIME, + + _SC_XOPEN_REALTIME_THREADS, + + + _SC_ADVISORY_INFO, + + _SC_BARRIERS, + + _SC_BASE, + + _SC_C_LANG_SUPPORT, + + _SC_C_LANG_SUPPORT_R, + + _SC_CLOCK_SELECTION, + + _SC_CPUTIME, + + _SC_THREAD_CPUTIME, + + _SC_DEVICE_IO, + + _SC_DEVICE_SPECIFIC, + + _SC_DEVICE_SPECIFIC_R, + + _SC_FD_MGMT, + + _SC_FIFO, + + _SC_PIPE, + + _SC_FILE_ATTRIBUTES, + + _SC_FILE_LOCKING, + + _SC_FILE_SYSTEM, + + _SC_MONOTONIC_CLOCK, + + _SC_MULTI_PROCESS, + + _SC_SINGLE_PROCESS, + + _SC_NETWORKING, + + _SC_READER_WRITER_LOCKS, + + _SC_SPIN_LOCKS, + + _SC_REGEXP, + + _SC_REGEX_VERSION, + + _SC_SHELL, + + _SC_SIGNALS, + + _SC_SPAWN, + + _SC_SPORADIC_SERVER, + + _SC_THREAD_SPORADIC_SERVER, + + _SC_SYSTEM_DATABASE, + + _SC_SYSTEM_DATABASE_R, + + _SC_TIMEOUTS, + + _SC_TYPED_MEMORY_OBJECTS, + + _SC_USER_GROUPS, + + _SC_USER_GROUPS_R, + + _SC_2_PBS, + + _SC_2_PBS_ACCOUNTING, + + _SC_2_PBS_LOCATE, + + _SC_2_PBS_MESSAGE, + + _SC_2_PBS_TRACK, + + _SC_SYMLOOP_MAX, + + _SC_STREAMS, + + _SC_2_PBS_CHECKPOINT, + + + _SC_V6_ILP32_OFF32, + + _SC_V6_ILP32_OFFBIG, + + _SC_V6_LP64_OFF64, + + _SC_V6_LPBIG_OFFBIG, + + + _SC_HOST_NAME_MAX, + + _SC_TRACE, + + _SC_TRACE_EVENT_FILTER, + + _SC_TRACE_INHERIT, + + _SC_TRACE_LOG, + + + _SC_LEVEL1_ICACHE_SIZE, + + _SC_LEVEL1_ICACHE_ASSOC, + + _SC_LEVEL1_ICACHE_LINESIZE, + + _SC_LEVEL1_DCACHE_SIZE, + + _SC_LEVEL1_DCACHE_ASSOC, + + _SC_LEVEL1_DCACHE_LINESIZE, + + _SC_LEVEL2_CACHE_SIZE, + + _SC_LEVEL2_CACHE_ASSOC, + + _SC_LEVEL2_CACHE_LINESIZE, + + _SC_LEVEL3_CACHE_SIZE, + + _SC_LEVEL3_CACHE_ASSOC, + + _SC_LEVEL3_CACHE_LINESIZE, + + _SC_LEVEL4_CACHE_SIZE, + + _SC_LEVEL4_CACHE_ASSOC, + + _SC_LEVEL4_CACHE_LINESIZE, + + + + _SC_IPV6 = _SC_LEVEL1_ICACHE_SIZE + 50, + + _SC_RAW_SOCKETS, + + + _SC_V7_ILP32_OFF32, + + _SC_V7_ILP32_OFFBIG, + + _SC_V7_LP64_OFF64, + + _SC_V7_LPBIG_OFFBIG, + + + _SC_SS_REPL_MAX, + + + _SC_TRACE_EVENT_NAME_MAX, + + _SC_TRACE_NAME_MAX, + + _SC_TRACE_SYS_MAX, + + _SC_TRACE_USER_EVENT_MAX, + + + _SC_XOPEN_STREAMS, + + + _SC_THREAD_ROBUST_PRIO_INHERIT, + + _SC_THREAD_ROBUST_PRIO_PROTECT + + }; + + +enum + { + _CS_PATH, + + + _CS_V6_WIDTH_RESTRICTED_ENVS, + + + + _CS_GNU_LIBC_VERSION, + + _CS_GNU_LIBPTHREAD_VERSION, + + + _CS_V5_WIDTH_RESTRICTED_ENVS, + + + + _CS_V7_WIDTH_RESTRICTED_ENVS, + + + + _CS_LFS_CFLAGS = 1000, + + _CS_LFS_LDFLAGS, + + _CS_LFS_LIBS, + + _CS_LFS_LINTFLAGS, + + _CS_LFS64_CFLAGS, + + _CS_LFS64_LDFLAGS, + + _CS_LFS64_LIBS, + + _CS_LFS64_LINTFLAGS, + + + _CS_XBS5_ILP32_OFF32_CFLAGS = 1100, + + _CS_XBS5_ILP32_OFF32_LDFLAGS, + + _CS_XBS5_ILP32_OFF32_LIBS, + + _CS_XBS5_ILP32_OFF32_LINTFLAGS, + + _CS_XBS5_ILP32_OFFBIG_CFLAGS, + + _CS_XBS5_ILP32_OFFBIG_LDFLAGS, + + _CS_XBS5_ILP32_OFFBIG_LIBS, + + _CS_XBS5_ILP32_OFFBIG_LINTFLAGS, + + _CS_XBS5_LP64_OFF64_CFLAGS, + + _CS_XBS5_LP64_OFF64_LDFLAGS, + + _CS_XBS5_LP64_OFF64_LIBS, + + _CS_XBS5_LP64_OFF64_LINTFLAGS, + + _CS_XBS5_LPBIG_OFFBIG_CFLAGS, + + _CS_XBS5_LPBIG_OFFBIG_LDFLAGS, + + _CS_XBS5_LPBIG_OFFBIG_LIBS, + + _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS, + + + _CS_POSIX_V6_ILP32_OFF32_CFLAGS, + + _CS_POSIX_V6_ILP32_OFF32_LDFLAGS, + + _CS_POSIX_V6_ILP32_OFF32_LIBS, + + _CS_POSIX_V6_ILP32_OFF32_LINTFLAGS, + + _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS, + + _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS, + + _CS_POSIX_V6_ILP32_OFFBIG_LIBS, + + _CS_POSIX_V6_ILP32_OFFBIG_LINTFLAGS, + + _CS_POSIX_V6_LP64_OFF64_CFLAGS, + + _CS_POSIX_V6_LP64_OFF64_LDFLAGS, + + _CS_POSIX_V6_LP64_OFF64_LIBS, + + _CS_POSIX_V6_LP64_OFF64_LINTFLAGS, + + _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS, + + _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS, + + _CS_POSIX_V6_LPBIG_OFFBIG_LIBS, + + _CS_POSIX_V6_LPBIG_OFFBIG_LINTFLAGS, + + + _CS_POSIX_V7_ILP32_OFF32_CFLAGS, + + _CS_POSIX_V7_ILP32_OFF32_LDFLAGS, + + _CS_POSIX_V7_ILP32_OFF32_LIBS, + + _CS_POSIX_V7_ILP32_OFF32_LINTFLAGS, + + _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS, + + _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS, + + _CS_POSIX_V7_ILP32_OFFBIG_LIBS, + + _CS_POSIX_V7_ILP32_OFFBIG_LINTFLAGS, + + _CS_POSIX_V7_LP64_OFF64_CFLAGS, + + _CS_POSIX_V7_LP64_OFF64_LDFLAGS, + + _CS_POSIX_V7_LP64_OFF64_LIBS, + + _CS_POSIX_V7_LP64_OFF64_LINTFLAGS, + + _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS, + + _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS, + + _CS_POSIX_V7_LPBIG_OFFBIG_LIBS, + + _CS_POSIX_V7_LPBIG_OFFBIG_LINTFLAGS, + + + _CS_V6_ENV, + + _CS_V7_ENV + + }; +# 611 "/usr/include/unistd.h" 2 3 4 + + +extern long int pathconf (__const char *__path, int __name) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern long int fpathconf (int __fd, int __name) __attribute__ ((__nothrow__ , __leaf__)); + + +extern long int sysconf (int __name) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern size_t confstr (int __name, char *__buf, size_t __len) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern __pid_t getpid (void) __attribute__ ((__nothrow__ , __leaf__)); + + +extern __pid_t getppid (void) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern __pid_t getpgrp (void) __attribute__ ((__nothrow__ , __leaf__)); +# 647 "/usr/include/unistd.h" 3 4 +extern __pid_t __getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__)); + +extern __pid_t getpgid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern int setpgid (__pid_t __pid, __pid_t __pgid) __attribute__ ((__nothrow__ , __leaf__)); +# 673 "/usr/include/unistd.h" 3 4 +extern int setpgrp (void) __attribute__ ((__nothrow__ , __leaf__)); +# 690 "/usr/include/unistd.h" 3 4 +extern __pid_t setsid (void) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern __pid_t getsid (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern __uid_t getuid (void) __attribute__ ((__nothrow__ , __leaf__)); + + +extern __uid_t geteuid (void) __attribute__ ((__nothrow__ , __leaf__)); + + +extern __gid_t getgid (void) __attribute__ ((__nothrow__ , __leaf__)); + + +extern __gid_t getegid (void) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int getgroups (int __size, __gid_t __list[]) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + +extern int group_member (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern int setuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int setreuid (__uid_t __ruid, __uid_t __euid) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int seteuid (__uid_t __uid) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern int setgid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int setregid (__gid_t __rgid, __gid_t __egid) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int setegid (__gid_t __gid) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern int getresuid (__uid_t *__ruid, __uid_t *__euid, __uid_t *__suid) + __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int getresgid (__gid_t *__rgid, __gid_t *__egid, __gid_t *__sgid) + __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int setresuid (__uid_t __ruid, __uid_t __euid, __uid_t __suid) + __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int setresgid (__gid_t __rgid, __gid_t __egid, __gid_t __sgid) + __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern __pid_t fork (void) __attribute__ ((__nothrow__)); + + + + + + + +extern __pid_t vfork (void) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern char *ttyname (int __fd) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int ttyname_r (int __fd, char *__buf, size_t __buflen) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); + + + +extern int isatty (int __fd) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern int ttyslot (void) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int link (__const char *__from, __const char *__to) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); + + + + +extern int linkat (int __fromfd, __const char *__from, int __tofd, + __const char *__to, int __flags) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))) __attribute__ ((__warn_unused_result__)); + + + + +extern int symlink (__const char *__from, __const char *__to) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); + + + + +extern ssize_t readlink (__const char *__restrict __path, + char *__restrict __buf, size_t __len) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); + + + + +extern int symlinkat (__const char *__from, int __tofd, + __const char *__to) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))) __attribute__ ((__warn_unused_result__)); + + +extern ssize_t readlinkat (int __fd, __const char *__restrict __path, + char *__restrict __buf, size_t __len) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); + + + +extern int unlink (__const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + +extern int unlinkat (int __fd, __const char *__name, int __flag) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + + + +extern int rmdir (__const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + +extern __pid_t tcgetpgrp (int __fd) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int tcsetpgrp (int __fd, __pid_t __pgrp_id) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern char *getlogin (void); + + + + + + + +extern int getlogin_r (char *__name, size_t __name_len) __attribute__ ((__nonnull__ (1))); + + + + +extern int setlogin (__const char *__name) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); +# 894 "/usr/include/unistd.h" 3 4 +# 1 "/usr/include/getopt.h" 1 3 4 +# 59 "/usr/include/getopt.h" 3 4 +extern char *optarg; +# 73 "/usr/include/getopt.h" 3 4 +extern int optind; + + + + +extern int opterr; + + + +extern int optopt; +# 152 "/usr/include/getopt.h" 3 4 +extern int getopt (int ___argc, char *const *___argv, const char *__shortopts) + __attribute__ ((__nothrow__ , __leaf__)); +# 895 "/usr/include/unistd.h" 2 3 4 + + + + + + + +extern int gethostname (char *__name, size_t __len) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern int sethostname (__const char *__name, size_t __len) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + +extern int sethostid (long int __id) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + + +extern int getdomainname (char *__name, size_t __len) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); +extern int setdomainname (__const char *__name, size_t __len) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + + +extern int vhangup (void) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int revoke (__const char *__file) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + + + + +extern int profil (unsigned short int *__sample_buffer, size_t __size, + size_t __offset, unsigned int __scale) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern int acct (__const char *__name) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern char *getusershell (void) __attribute__ ((__nothrow__ , __leaf__)); +extern void endusershell (void) __attribute__ ((__nothrow__ , __leaf__)); +extern void setusershell (void) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern int daemon (int __nochdir, int __noclose) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + + + +extern int chroot (__const char *__path) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + +extern char *getpass (__const char *__prompt) __attribute__ ((__nonnull__ (1))); +# 980 "/usr/include/unistd.h" 3 4 +extern int fsync (int __fd); + + + + + + +extern int syncfs (int __fd) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern long int gethostid (void); + + +extern void sync (void) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern int getpagesize (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + + + +extern int getdtablesize (void) __attribute__ ((__nothrow__ , __leaf__)); +# 1022 "/usr/include/unistd.h" 3 4 +extern int truncate (__const char *__file, __off64_t __length) __asm__ ("" "truncate64") __attribute__ ((__nothrow__ , __leaf__)) + + __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); + + + + + +extern int truncate64 (__const char *__file, __off64_t __length) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); +# 1043 "/usr/include/unistd.h" 3 4 +extern int ftruncate (int __fd, __off64_t __length) __asm__ ("" "ftruncate64") __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__warn_unused_result__)); + + + + + +extern int ftruncate64 (int __fd, __off64_t __length) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); +# 1061 "/usr/include/unistd.h" 3 4 +extern int brk (void *__addr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); + + + + + +extern void *sbrk (intptr_t __delta) __attribute__ ((__nothrow__ , __leaf__)); +# 1082 "/usr/include/unistd.h" 3 4 +extern long int syscall (long int __sysno, ...) __attribute__ ((__nothrow__ , __leaf__)); +# 1108 "/usr/include/unistd.h" 3 4 +extern int lockf (int __fd, int __cmd, __off64_t __len) __asm__ ("" "lockf64") + __attribute__ ((__warn_unused_result__)); + + + + + +extern int lockf64 (int __fd, int __cmd, __off64_t __len) __attribute__ ((__warn_unused_result__)); +# 1136 "/usr/include/unistd.h" 3 4 +extern int fdatasync (int __fildes); + + + + + + + +extern char *crypt (__const char *__key, __const char *__salt) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern void encrypt (char *__block, int __edflag) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern void swab (__const void *__restrict __from, void *__restrict __to, + ssize_t __n) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + + + +extern char *ctermid (char *__s) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +# 1 "/usr/include/bits/unistd.h" 1 3 4 +# 24 "/usr/include/bits/unistd.h" 3 4 +extern ssize_t __read_chk (int __fd, void *__buf, size_t __nbytes, + size_t __buflen) __attribute__ ((__warn_unused_result__)); +extern ssize_t __read_alias (int __fd, void *__buf, size_t __nbytes) __asm__ ("" "read") + __attribute__ ((__warn_unused_result__)); +extern ssize_t __read_chk_warn (int __fd, void *__buf, size_t __nbytes, size_t __buflen) __asm__ ("" "__read_chk") + + + __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("read called with bigger length than size of " "the destination buffer"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t +read (int __fd, void *__buf, size_t __nbytes) +{ + if (__builtin_object_size (__buf, 0) != (size_t) -1) + { + if (!__builtin_constant_p (__nbytes)) + return __read_chk (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0)); + + if (__nbytes > __builtin_object_size (__buf, 0)) + return __read_chk_warn (__fd, __buf, __nbytes, __builtin_object_size (__buf, 0)); + } + return __read_alias (__fd, __buf, __nbytes); +} + + +extern ssize_t __pread_chk (int __fd, void *__buf, size_t __nbytes, + __off_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__)); +extern ssize_t __pread64_chk (int __fd, void *__buf, size_t __nbytes, + __off64_t __offset, size_t __bufsize) __attribute__ ((__warn_unused_result__)); +extern ssize_t __pread_alias (int __fd, void *__buf, size_t __nbytes, __off_t __offset) __asm__ ("" "pread") + + __attribute__ ((__warn_unused_result__)); +extern ssize_t __pread64_alias (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) __asm__ ("" "pread64") + + __attribute__ ((__warn_unused_result__)); +extern ssize_t __pread_chk_warn (int __fd, void *__buf, size_t __nbytes, __off_t __offset, size_t __bufsize) __asm__ ("" "__pread_chk") + + + __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread called with bigger length than size of " "the destination buffer"))) + ; +extern ssize_t __pread64_chk_warn (int __fd, void *__buf, size_t __nbytes, __off64_t __offset, size_t __bufsize) __asm__ ("" "__pread64_chk") + + + + __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("pread64 called with bigger length than size of " "the destination buffer"))) + ; +# 87 "/usr/include/bits/unistd.h" 3 4 +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t +pread (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) +{ + if (__builtin_object_size (__buf, 0) != (size_t) -1) + { + if (!__builtin_constant_p (__nbytes)) + return __pread64_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)); + + if ( __nbytes > __builtin_object_size (__buf, 0)) + return __pread64_chk_warn (__fd, __buf, __nbytes, __offset, + __builtin_object_size (__buf, 0)); + } + + return __pread64_alias (__fd, __buf, __nbytes, __offset); +} + + + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) ssize_t +pread64 (int __fd, void *__buf, size_t __nbytes, __off64_t __offset) +{ + if (__builtin_object_size (__buf, 0) != (size_t) -1) + { + if (!__builtin_constant_p (__nbytes)) + return __pread64_chk (__fd, __buf, __nbytes, __offset, __builtin_object_size (__buf, 0)); + + if ( __nbytes > __builtin_object_size (__buf, 0)) + return __pread64_chk_warn (__fd, __buf, __nbytes, __offset, + __builtin_object_size (__buf, 0)); + } + + return __pread64_alias (__fd, __buf, __nbytes, __offset); +} + + + + +extern ssize_t __readlink_chk (__const char *__restrict __path, + char *__restrict __buf, size_t __len, + size_t __buflen) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); +extern ssize_t __readlink_alias (__const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlink") __attribute__ ((__nothrow__ , __leaf__)) + + + __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)); +extern ssize_t __readlink_chk_warn (__const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlink_chk") __attribute__ ((__nothrow__ , __leaf__)) + + + + __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlink called with bigger length " "than size of destination buffer"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__warn_unused_result__)) ssize_t +__attribute__ ((__nothrow__ , __leaf__)) readlink (__const char *__restrict __path, char *__restrict __buf, size_t __len) + +{ + if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) + { + if (!__builtin_constant_p (__len)) + return __readlink_chk (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); + + if ( __len > __builtin_object_size (__buf, 2 > 1)) + return __readlink_chk_warn (__path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); + } + return __readlink_alias (__path, __buf, __len); +} + + + +extern ssize_t __readlinkat_chk (int __fd, __const char *__restrict __path, + char *__restrict __buf, size_t __len, + size_t __buflen) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); +extern ssize_t __readlinkat_alias (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) __asm__ ("" "readlinkat") __attribute__ ((__nothrow__ , __leaf__)) + + + + __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)); +extern ssize_t __readlinkat_chk_warn (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len, size_t __buflen) __asm__ ("" "__readlinkat_chk") __attribute__ ((__nothrow__ , __leaf__)) + + + + __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("readlinkat called with bigger " "length than size of destination " "buffer"))) + + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (2, 3))) __attribute__ ((__warn_unused_result__)) ssize_t +__attribute__ ((__nothrow__ , __leaf__)) readlinkat (int __fd, __const char *__restrict __path, char *__restrict __buf, size_t __len) + +{ + if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) + { + if (!__builtin_constant_p (__len)) + return __readlinkat_chk (__fd, __path, __buf, __len, __builtin_object_size (__buf, 2 > 1)); + + if (__len > __builtin_object_size (__buf, 2 > 1)) + return __readlinkat_chk_warn (__fd, __path, __buf, __len, + __builtin_object_size (__buf, 2 > 1)); + } + return __readlinkat_alias (__fd, __path, __buf, __len); +} + + +extern char *__getcwd_chk (char *__buf, size_t __size, size_t __buflen) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); +extern char *__getcwd_alias (char *__buf, size_t __size) __asm__ ("" "getcwd") __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__warn_unused_result__)); +extern char *__getcwd_chk_warn (char *__buf, size_t __size, size_t __buflen) __asm__ ("" "__getcwd_chk") __attribute__ ((__nothrow__ , __leaf__)) + + + __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getcwd caller with bigger length than size of " "destination buffer"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__warn_unused_result__)) char * +__attribute__ ((__nothrow__ , __leaf__)) getcwd (char *__buf, size_t __size) +{ + if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) + { + if (!__builtin_constant_p (__size)) + return __getcwd_chk (__buf, __size, __builtin_object_size (__buf, 2 > 1)); + + if (__size > __builtin_object_size (__buf, 2 > 1)) + return __getcwd_chk_warn (__buf, __size, __builtin_object_size (__buf, 2 > 1)); + } + return __getcwd_alias (__buf, __size); +} + + +extern char *__getwd_chk (char *__buf, size_t buflen) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); +extern char *__getwd_warn (char *__buf) __asm__ ("" "getwd") __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("please use getcwd instead, as getwd " "doesn't specify buffer size"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)) __attribute__ ((__warn_unused_result__)) char * +__attribute__ ((__nothrow__ , __leaf__)) getwd (char *__buf) +{ + if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) + return __getwd_chk (__buf, __builtin_object_size (__buf, 2 > 1)); + return __getwd_warn (__buf); +} + + +extern size_t __confstr_chk (int __name, char *__buf, size_t __len, + size_t __buflen) __attribute__ ((__nothrow__ , __leaf__)); +extern size_t __confstr_alias (int __name, char *__buf, size_t __len) __asm__ ("" "confstr") __attribute__ ((__nothrow__ , __leaf__)) + ; +extern size_t __confstr_chk_warn (int __name, char *__buf, size_t __len, size_t __buflen) __asm__ ("" "__confstr_chk") __attribute__ ((__nothrow__ , __leaf__)) + + + __attribute__((__warning__ ("confstr called with bigger length than size of destination " "buffer"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) size_t +__attribute__ ((__nothrow__ , __leaf__)) confstr (int __name, char *__buf, size_t __len) +{ + if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) + { + if (!__builtin_constant_p (__len)) + return __confstr_chk (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1)); + + if (__builtin_object_size (__buf, 2 > 1) < __len) + return __confstr_chk_warn (__name, __buf, __len, __builtin_object_size (__buf, 2 > 1)); + } + return __confstr_alias (__name, __buf, __len); +} + + +extern int __getgroups_chk (int __size, __gid_t __list[], size_t __listlen) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); +extern int __getgroups_alias (int __size, __gid_t __list[]) __asm__ ("" "getgroups") __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__warn_unused_result__)); +extern int __getgroups_chk_warn (int __size, __gid_t __list[], size_t __listlen) __asm__ ("" "__getgroups_chk") __attribute__ ((__nothrow__ , __leaf__)) + + + __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getgroups called with bigger group count than what " "can fit into destination buffer"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +__attribute__ ((__nothrow__ , __leaf__)) getgroups (int __size, __gid_t __list[]) +{ + if (__builtin_object_size (__list, 2 > 1) != (size_t) -1) + { + if (!__builtin_constant_p (__size) || __size < 0) + return __getgroups_chk (__size, __list, __builtin_object_size (__list, 2 > 1)); + + if (__size * sizeof (__gid_t) > __builtin_object_size (__list, 2 > 1)) + return __getgroups_chk_warn (__size, __list, __builtin_object_size (__list, 2 > 1)); + } + return __getgroups_alias (__size, __list); +} + + +extern int __ttyname_r_chk (int __fd, char *__buf, size_t __buflen, + size_t __nreal) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); +extern int __ttyname_r_alias (int __fd, char *__buf, size_t __buflen) __asm__ ("" "ttyname_r") __attribute__ ((__nothrow__ , __leaf__)) + + __attribute__ ((__nonnull__ (2))); +extern int __ttyname_r_chk_warn (int __fd, char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__ttyname_r_chk") __attribute__ ((__nothrow__ , __leaf__)) + + + __attribute__ ((__nonnull__ (2))) __attribute__((__warning__ ("ttyname_r called with bigger buflen than " "size of destination buffer"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +__attribute__ ((__nothrow__ , __leaf__)) ttyname_r (int __fd, char *__buf, size_t __buflen) +{ + if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) + { + if (!__builtin_constant_p (__buflen)) + return __ttyname_r_chk (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); + + if (__buflen > __builtin_object_size (__buf, 2 > 1)) + return __ttyname_r_chk_warn (__fd, __buf, __buflen, __builtin_object_size (__buf, 2 > 1)); + } + return __ttyname_r_alias (__fd, __buf, __buflen); +} + + + +extern int __getlogin_r_chk (char *__buf, size_t __buflen, size_t __nreal) + __attribute__ ((__nonnull__ (1))); +extern int __getlogin_r_alias (char *__buf, size_t __buflen) __asm__ ("" "getlogin_r") + __attribute__ ((__nonnull__ (1))); +extern int __getlogin_r_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getlogin_r_chk") + + + __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("getlogin_r called with bigger buflen than " "size of destination buffer"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +getlogin_r (char *__buf, size_t __buflen) +{ + if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) + { + if (!__builtin_constant_p (__buflen)) + return __getlogin_r_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); + + if (__buflen > __builtin_object_size (__buf, 2 > 1)) + return __getlogin_r_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); + } + return __getlogin_r_alias (__buf, __buflen); +} + + + + +extern int __gethostname_chk (char *__buf, size_t __buflen, size_t __nreal) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); +extern int __gethostname_alias (char *__buf, size_t __buflen) __asm__ ("" "gethostname") __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__nonnull__ (1))); +extern int __gethostname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__gethostname_chk") __attribute__ ((__nothrow__ , __leaf__)) + + + __attribute__ ((__nonnull__ (1))) __attribute__((__warning__ ("gethostname called with bigger buflen than " "size of destination buffer"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +__attribute__ ((__nothrow__ , __leaf__)) gethostname (char *__buf, size_t __buflen) +{ + if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) + { + if (!__builtin_constant_p (__buflen)) + return __gethostname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); + + if (__buflen > __builtin_object_size (__buf, 2 > 1)) + return __gethostname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); + } + return __gethostname_alias (__buf, __buflen); +} + + + + +extern int __getdomainname_chk (char *__buf, size_t __buflen, size_t __nreal) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); +extern int __getdomainname_alias (char *__buf, size_t __buflen) __asm__ ("" "getdomainname") __attribute__ ((__nothrow__ , __leaf__)) + + __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)); +extern int __getdomainname_chk_warn (char *__buf, size_t __buflen, size_t __nreal) __asm__ ("" "__getdomainname_chk") __attribute__ ((__nothrow__ , __leaf__)) + + + __attribute__ ((__nonnull__ (1))) __attribute__ ((__warn_unused_result__)) __attribute__((__warning__ ("getdomainname called with bigger " "buflen than size of destination " "buffer"))) + + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +__attribute__ ((__nothrow__ , __leaf__)) getdomainname (char *__buf, size_t __buflen) +{ + if (__builtin_object_size (__buf, 2 > 1) != (size_t) -1) + { + if (!__builtin_constant_p (__buflen)) + return __getdomainname_chk (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); + + if (__buflen > __builtin_object_size (__buf, 2 > 1)) + return __getdomainname_chk_warn (__buf, __buflen, __builtin_object_size (__buf, 2 > 1)); + } + return __getdomainname_alias (__buf, __buflen); +} +# 1172 "/usr/include/unistd.h" 2 3 4 + + + +# 34 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/include/fcntl.h" 1 3 4 +# 30 "/usr/include/fcntl.h" 3 4 + + + + +# 1 "/usr/include/bits/fcntl.h" 1 3 4 +# 27 "/usr/include/bits/fcntl.h" 3 4 +# 1 "/usr/include/bits/uio.h" 1 3 4 +# 44 "/usr/include/bits/uio.h" 3 4 +struct iovec + { + void *iov_base; + size_t iov_len; + }; +# 28 "/usr/include/bits/fcntl.h" 2 3 4 +# 153 "/usr/include/bits/fcntl.h" 3 4 +struct flock + { + short int l_type; + short int l_whence; + + + + + __off64_t l_start; + __off64_t l_len; + + __pid_t l_pid; + }; + + +struct flock64 + { + short int l_type; + short int l_whence; + __off64_t l_start; + __off64_t l_len; + __pid_t l_pid; + }; + + + + +enum __pid_type + { + F_OWNER_TID = 0, + F_OWNER_PID, + F_OWNER_PGRP, + F_OWNER_GID = F_OWNER_PGRP + }; + + +struct f_owner_ex + { + enum __pid_type type; + __pid_t pid; + }; +# 239 "/usr/include/bits/fcntl.h" 3 4 +struct file_handle +{ + unsigned int handle_bytes; + int handle_type; + + unsigned char f_handle[0]; +}; + + + + + + + + + + +extern ssize_t readahead (int __fd, __off64_t __offset, size_t __count) + __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int sync_file_range (int __fd, __off64_t __offset, __off64_t __count, + unsigned int __flags); + + + + + + +extern ssize_t vmsplice (int __fdout, const struct iovec *__iov, + size_t __count, unsigned int __flags); + + + + + +extern ssize_t splice (int __fdin, __off64_t *__offin, int __fdout, + __off64_t *__offout, size_t __len, + unsigned int __flags); + + + + + +extern ssize_t tee (int __fdin, int __fdout, size_t __len, + unsigned int __flags); +# 295 "/usr/include/bits/fcntl.h" 3 4 +extern int fallocate (int __fd, int __mode, __off64_t __offset, __off64_t __len) __asm__ ("" "fallocate64") + + ; + + + + + +extern int fallocate64 (int __fd, int __mode, __off64_t __offset, + __off64_t __len); + + + + +extern int name_to_handle_at (int __dfd, const char *__name, + struct file_handle *__handle, int *__mnt_id, + int __flags) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern int open_by_handle_at (int __mountdirfd, struct file_handle *__handle, + int __flags); + + + + +# 35 "/usr/include/fcntl.h" 2 3 4 + + + + + + +# 1 "/usr/include/bits/stat.h" 1 3 4 +# 39 "/usr/include/bits/stat.h" 3 4 +struct stat + { + __dev_t st_dev; + unsigned short int __pad1; + + + + __ino_t __st_ino; + + __mode_t st_mode; + __nlink_t st_nlink; + __uid_t st_uid; + __gid_t st_gid; + __dev_t st_rdev; + unsigned short int __pad2; + + + + __off64_t st_size; + + __blksize_t st_blksize; + + + + + __blkcnt64_t st_blocks; +# 73 "/usr/include/bits/stat.h" 3 4 + struct timespec st_atim; + struct timespec st_mtim; + struct timespec st_ctim; +# 91 "/usr/include/bits/stat.h" 3 4 + __ino64_t st_ino; + + }; + + +struct stat64 + { + __dev_t st_dev; + unsigned int __pad1; + + __ino_t __st_ino; + __mode_t st_mode; + __nlink_t st_nlink; + __uid_t st_uid; + __gid_t st_gid; + __dev_t st_rdev; + unsigned int __pad2; + __off64_t st_size; + __blksize_t st_blksize; + + __blkcnt64_t st_blocks; + + + + + + + + struct timespec st_atim; + struct timespec st_mtim; + struct timespec st_ctim; +# 130 "/usr/include/bits/stat.h" 3 4 + __ino64_t st_ino; + }; +# 42 "/usr/include/fcntl.h" 2 3 4 +# 125 "/usr/include/fcntl.h" 3 4 +extern int fcntl (int __fd, int __cmd, ...); +# 137 "/usr/include/fcntl.h" 3 4 +extern int open (__const char *__file, int __oflag, ...) __asm__ ("" "open64") + __attribute__ ((__nonnull__ (1))); + + + + + +extern int open64 (__const char *__file, int __oflag, ...) __attribute__ ((__nonnull__ (1))); +# 162 "/usr/include/fcntl.h" 3 4 +extern int openat (int __fd, __const char *__file, int __oflag, ...) __asm__ ("" "openat64") + __attribute__ ((__nonnull__ (2))); + + + + + +extern int openat64 (int __fd, __const char *__file, int __oflag, ...) + __attribute__ ((__nonnull__ (2))); +# 183 "/usr/include/fcntl.h" 3 4 +extern int creat (__const char *__file, __mode_t __mode) __asm__ ("" "creat64") + __attribute__ ((__nonnull__ (1))); + + + + + +extern int creat64 (__const char *__file, __mode_t __mode) __attribute__ ((__nonnull__ (1))); +# 230 "/usr/include/fcntl.h" 3 4 +extern int posix_fadvise (int __fd, __off64_t __offset, __off64_t __len, int __advise) __asm__ ("" "posix_fadvise64") __attribute__ ((__nothrow__ , __leaf__)) + + ; + + + + + +extern int posix_fadvise64 (int __fd, __off64_t __offset, __off64_t __len, + int __advise) __attribute__ ((__nothrow__ , __leaf__)); +# 251 "/usr/include/fcntl.h" 3 4 +extern int posix_fallocate (int __fd, __off64_t __offset, __off64_t __len) __asm__ ("" "posix_fallocate64") + + ; + + + + + +extern int posix_fallocate64 (int __fd, __off64_t __offset, __off64_t __len); + + + + + + + +# 1 "/usr/include/bits/fcntl2.h" 1 3 4 +# 31 "/usr/include/bits/fcntl2.h" 3 4 +extern int __open_2 (__const char *__path, int __oflag) __asm__ ("" "__open64_2") + __attribute__ ((__nonnull__ (1))); +extern int __open_alias (__const char *__path, int __oflag, ...) __asm__ ("" "open64") + __attribute__ ((__nonnull__ (1))); + +extern void __open_too_many_args (void) __attribute__((__error__ ("open can be called either with 2 or 3 arguments, not more"))) + ; +extern void __open_missing_mode (void) __attribute__((__error__ ("open with O_CREAT in second argument needs 3 arguments"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +open (__const char *__path, int __oflag, ...) +{ + if (__builtin_va_arg_pack_len () > 1) + __open_too_many_args (); + + if (__builtin_constant_p (__oflag)) + { + if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) + { + __open_missing_mode (); + return __open_2 (__path, __oflag); + } + return __open_alias (__path, __oflag, __builtin_va_arg_pack ()); + } + + if (__builtin_va_arg_pack_len () < 1) + return __open_2 (__path, __oflag); + + return __open_alias (__path, __oflag, __builtin_va_arg_pack ()); +} + + + +extern int __open64_2 (__const char *__path, int __oflag) __attribute__ ((__nonnull__ (1))); +extern int __open64_alias (__const char *__path, int __oflag, ...) __asm__ ("" "open64") + __attribute__ ((__nonnull__ (1))); +extern void __open64_too_many_args (void) __attribute__((__error__ ("open64 can be called either with 2 or 3 arguments, not more"))) + ; +extern void __open64_missing_mode (void) __attribute__((__error__ ("open64 with O_CREAT in second argument needs 3 arguments"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +open64 (__const char *__path, int __oflag, ...) +{ + if (__builtin_va_arg_pack_len () > 1) + __open64_too_many_args (); + + if (__builtin_constant_p (__oflag)) + { + if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) + { + __open64_missing_mode (); + return __open64_2 (__path, __oflag); + } + return __open64_alias (__path, __oflag, __builtin_va_arg_pack ()); + } + + if (__builtin_va_arg_pack_len () < 1) + return __open64_2 (__path, __oflag); + + return __open64_alias (__path, __oflag, __builtin_va_arg_pack ()); +} +# 105 "/usr/include/bits/fcntl2.h" 3 4 +extern int __openat_2 (int __fd, __const char *__path, int __oflag) __asm__ ("" "__openat64_2") + + __attribute__ ((__nonnull__ (2))); +extern int __openat_alias (int __fd, __const char *__path, int __oflag, ...) __asm__ ("" "openat64") + + __attribute__ ((__nonnull__ (2))); + +extern void __openat_too_many_args (void) __attribute__((__error__ ("openat can be called either with 3 or 4 arguments, not more"))) + ; +extern void __openat_missing_mode (void) __attribute__((__error__ ("openat with O_CREAT in third argument needs 4 arguments"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +openat (int __fd, __const char *__path, int __oflag, ...) +{ + if (__builtin_va_arg_pack_len () > 1) + __openat_too_many_args (); + + if (__builtin_constant_p (__oflag)) + { + if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) + { + __openat_missing_mode (); + return __openat_2 (__fd, __path, __oflag); + } + return __openat_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); + } + + if (__builtin_va_arg_pack_len () < 1) + return __openat_2 (__fd, __path, __oflag); + + return __openat_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); +} + + + +extern int __openat64_2 (int __fd, __const char *__path, int __oflag) + __attribute__ ((__nonnull__ (2))); +extern int __openat64_alias (int __fd, __const char *__path, int __oflag, ...) __asm__ ("" "openat64") + + __attribute__ ((__nonnull__ (2))); +extern void __openat64_too_many_args (void) __attribute__((__error__ ("openat64 can be called either with 3 or 4 arguments, not more"))) + ; +extern void __openat64_missing_mode (void) __attribute__((__error__ ("openat64 with O_CREAT in third argument needs 4 arguments"))) + ; + +extern __inline __attribute__ ((__always_inline__)) __attribute__ ((__artificial__)) int +openat64 (int __fd, __const char *__path, int __oflag, ...) +{ + if (__builtin_va_arg_pack_len () > 1) + __openat64_too_many_args (); + + if (__builtin_constant_p (__oflag)) + { + if ((__oflag & 0100) != 0 && __builtin_va_arg_pack_len () < 1) + { + __openat64_missing_mode (); + return __openat64_2 (__fd, __path, __oflag); + } + return __openat64_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); + } + + if (__builtin_va_arg_pack_len () < 1) + return __openat64_2 (__fd, __path, __oflag); + + return __openat64_alias (__fd, __path, __oflag, __builtin_va_arg_pack ()); +} +# 268 "/usr/include/fcntl.h" 2 3 4 + + + +# 35 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/include/sys/stat.h" 1 3 4 +# 105 "/usr/include/sys/stat.h" 3 4 + + +# 1 "/usr/include/bits/stat.h" 1 3 4 +# 108 "/usr/include/sys/stat.h" 2 3 4 +# 219 "/usr/include/sys/stat.h" 3 4 +extern int stat (__const char *__restrict __file, struct stat *__restrict __buf) __asm__ ("" "stat64") __attribute__ ((__nothrow__ , __leaf__)) + + __attribute__ ((__nonnull__ (1, 2))); +extern int fstat (int __fd, struct stat *__buf) __asm__ ("" "fstat64") __attribute__ ((__nothrow__ , __leaf__)) + __attribute__ ((__nonnull__ (2))); + + + + + + +extern int stat64 (__const char *__restrict __file, + struct stat64 *__restrict __buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); +extern int fstat64 (int __fd, struct stat64 *__buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); +# 245 "/usr/include/sys/stat.h" 3 4 +extern int fstatat (int __fd, __const char *__restrict __file, struct stat *__restrict __buf, int __flag) __asm__ ("" "fstatat64") __attribute__ ((__nothrow__ , __leaf__)) + + + __attribute__ ((__nonnull__ (2, 3))); + + + + + + +extern int fstatat64 (int __fd, __const char *__restrict __file, + struct stat64 *__restrict __buf, int __flag) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); +# 269 "/usr/include/sys/stat.h" 3 4 +extern int lstat (__const char *__restrict __file, struct stat *__restrict __buf) __asm__ ("" "lstat64") __attribute__ ((__nothrow__ , __leaf__)) + + + __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern int lstat64 (__const char *__restrict __file, + struct stat64 *__restrict __buf) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + + + +extern int chmod (__const char *__file, __mode_t __mode) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern int lchmod (__const char *__file, __mode_t __mode) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + +extern int fchmod (int __fd, __mode_t __mode) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern int fchmodat (int __fd, __const char *__file, __mode_t __mode, + int __flag) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))) __attribute__ ((__warn_unused_result__)); + + + + + + +extern __mode_t umask (__mode_t __mask) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern __mode_t getumask (void) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int mkdir (__const char *__path, __mode_t __mode) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern int mkdirat (int __fd, __const char *__path, __mode_t __mode) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + + + + + + +extern int mknod (__const char *__path, __mode_t __mode, __dev_t __dev) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern int mknodat (int __fd, __const char *__path, __mode_t __mode, + __dev_t __dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + + + + + +extern int mkfifo (__const char *__path, __mode_t __mode) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern int mkfifoat (int __fd, __const char *__path, __mode_t __mode) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + + + + + +extern int utimensat (int __fd, __const char *__path, + __const struct timespec __times[2], + int __flags) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + + + + +extern int futimens (int __fd, __const struct timespec __times[2]) __attribute__ ((__nothrow__ , __leaf__)); +# 412 "/usr/include/sys/stat.h" 3 4 +extern int __fxstat (int __ver, int __fildes, struct stat *__stat_buf) __asm__ ("" "__fxstat64") __attribute__ ((__nothrow__ , __leaf__)) + + __attribute__ ((__nonnull__ (3))); +extern int __xstat (int __ver, __const char *__filename, struct stat *__stat_buf) __asm__ ("" "__xstat64") __attribute__ ((__nothrow__ , __leaf__)) + + __attribute__ ((__nonnull__ (2, 3))); +extern int __lxstat (int __ver, __const char *__filename, struct stat *__stat_buf) __asm__ ("" "__lxstat64") __attribute__ ((__nothrow__ , __leaf__)) + + __attribute__ ((__nonnull__ (2, 3))); +extern int __fxstatat (int __ver, int __fildes, __const char *__filename, struct stat *__stat_buf, int __flag) __asm__ ("" "__fxstatat64") __attribute__ ((__nothrow__ , __leaf__)) + + + __attribute__ ((__nonnull__ (3, 4))); +# 434 "/usr/include/sys/stat.h" 3 4 +extern int __fxstat64 (int __ver, int __fildes, struct stat64 *__stat_buf) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))); +extern int __xstat64 (int __ver, __const char *__filename, + struct stat64 *__stat_buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); +extern int __lxstat64 (int __ver, __const char *__filename, + struct stat64 *__stat_buf) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); +extern int __fxstatat64 (int __ver, int __fildes, __const char *__filename, + struct stat64 *__stat_buf, int __flag) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 4))); + +extern int __xmknod (int __ver, __const char *__path, __mode_t __mode, + __dev_t *__dev) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 4))); + +extern int __xmknodat (int __ver, int __fd, __const char *__path, + __mode_t __mode, __dev_t *__dev) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3, 5))); + + + + +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) stat (__const char *__path, struct stat *__statbuf) +{ + return __xstat (3, __path, __statbuf); +} + + +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) lstat (__const char *__path, struct stat *__statbuf) +{ + return __lxstat (3, __path, __statbuf); +} + + +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) fstat (int __fd, struct stat *__statbuf) +{ + return __fxstat (3, __fd, __statbuf); +} + + +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) fstatat (int __fd, __const char *__filename, struct stat *__statbuf, int __flag) + +{ + return __fxstatat (3, __fd, __filename, __statbuf, __flag); +} + + + +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) mknod (__const char *__path, __mode_t __mode, __dev_t __dev) +{ + return __xmknod (1, __path, __mode, &__dev); +} + + + +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) mknodat (int __fd, __const char *__path, __mode_t __mode, __dev_t __dev) + +{ + return __xmknodat (1, __fd, __path, __mode, &__dev); +} + + + + + +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) stat64 (__const char *__path, struct stat64 *__statbuf) +{ + return __xstat64 (3, __path, __statbuf); +} + + +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) lstat64 (__const char *__path, struct stat64 *__statbuf) +{ + return __lxstat64 (3, __path, __statbuf); +} + + +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) fstat64 (int __fd, struct stat64 *__statbuf) +{ + return __fxstat64 (3, __fd, __statbuf); +} + + +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) fstatat64 (int __fd, __const char *__filename, struct stat64 *__statbuf, int __flag) + +{ + return __fxstatat64 (3, __fd, __filename, __statbuf, __flag); +} + + + + + + + +# 36 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/include/sys/time.h" 1 3 4 +# 29 "/usr/include/sys/time.h" 3 4 +# 1 "/usr/include/bits/time.h" 1 3 4 +# 30 "/usr/include/sys/time.h" 2 3 4 +# 39 "/usr/include/sys/time.h" 3 4 + +# 57 "/usr/include/sys/time.h" 3 4 +struct timezone + { + int tz_minuteswest; + int tz_dsttime; + }; + +typedef struct timezone *__restrict __timezone_ptr_t; +# 73 "/usr/include/sys/time.h" 3 4 +extern int gettimeofday (struct timeval *__restrict __tv, + __timezone_ptr_t __tz) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + +extern int settimeofday (__const struct timeval *__tv, + __const struct timezone *__tz) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern int adjtime (__const struct timeval *__delta, + struct timeval *__olddelta) __attribute__ ((__nothrow__ , __leaf__)); + + + + +enum __itimer_which + { + + ITIMER_REAL = 0, + + + ITIMER_VIRTUAL = 1, + + + + ITIMER_PROF = 2 + + }; + + + +struct itimerval + { + + struct timeval it_interval; + + struct timeval it_value; + }; + + + + +typedef enum __itimer_which __itimer_which_t; + + + + + + +extern int getitimer (__itimer_which_t __which, + struct itimerval *__value) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int setitimer (__itimer_which_t __which, + __const struct itimerval *__restrict __new, + struct itimerval *__restrict __old) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int utimes (__const char *__file, __const struct timeval __tvp[2]) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + +extern int lutimes (__const char *__file, __const struct timeval __tvp[2]) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int futimes (int __fd, __const struct timeval __tvp[2]) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern int futimesat (int __fd, __const char *__file, + __const struct timeval __tvp[2]) __attribute__ ((__nothrow__ , __leaf__)); +# 191 "/usr/include/sys/time.h" 3 4 + +# 37 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/include/assert.h" 1 3 4 +# 66 "/usr/include/assert.h" 3 4 + + + +extern void __assert_fail (__const char *__assertion, __const char *__file, + unsigned int __line, __const char *__function) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); + + +extern void __assert_perror_fail (int __errnum, __const char *__file, + unsigned int __line, + __const char *__function) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); + + + + +extern void __assert (const char *__assertion, const char *__file, int __line) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__noreturn__)); + + + +# 38 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/include/signal.h" 1 3 4 +# 31 "/usr/include/signal.h" 3 4 + + +# 1 "/usr/include/bits/sigset.h" 1 3 4 +# 104 "/usr/include/bits/sigset.h" 3 4 +extern int __sigismember (__const __sigset_t *, int); +extern int __sigaddset (__sigset_t *, int); +extern int __sigdelset (__sigset_t *, int); +# 118 "/usr/include/bits/sigset.h" 3 4 +extern __inline int __sigismember (__const __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return (__set->__val[__word] & __mask) ? 1 : 0; } +extern __inline int __sigaddset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] |= __mask), 0); } +extern __inline int __sigdelset ( __sigset_t *__set, int __sig) { unsigned long int __mask = (((unsigned long int) 1) << (((__sig) - 1) % (8 * sizeof (unsigned long int)))); unsigned long int __word = (((__sig) - 1) / (8 * sizeof (unsigned long int))); return ((__set->__val[__word] &= ~__mask), 0); } +# 34 "/usr/include/signal.h" 2 3 4 + + + + + + + +typedef __sig_atomic_t sig_atomic_t; + +# 58 "/usr/include/signal.h" 3 4 +# 1 "/usr/include/bits/signum.h" 1 3 4 +# 59 "/usr/include/signal.h" 2 3 4 +# 79 "/usr/include/signal.h" 3 4 +# 1 "/usr/include/bits/siginfo.h" 1 3 4 +# 25 "/usr/include/bits/siginfo.h" 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 26 "/usr/include/bits/siginfo.h" 2 3 4 + + + + + + + +typedef union sigval + { + int sival_int; + void *sival_ptr; + } sigval_t; +# 51 "/usr/include/bits/siginfo.h" 3 4 +typedef struct siginfo + { + int si_signo; + int si_errno; + + int si_code; + + union + { + int _pad[((128 / sizeof (int)) - 3)]; + + + struct + { + __pid_t si_pid; + __uid_t si_uid; + } _kill; + + + struct + { + int si_tid; + int si_overrun; + sigval_t si_sigval; + } _timer; + + + struct + { + __pid_t si_pid; + __uid_t si_uid; + sigval_t si_sigval; + } _rt; + + + struct + { + __pid_t si_pid; + __uid_t si_uid; + int si_status; + __clock_t si_utime; + __clock_t si_stime; + } _sigchld; + + + struct + { + void *si_addr; + } _sigfault; + + + struct + { + long int si_band; + int si_fd; + } _sigpoll; + } _sifields; + } siginfo_t; +# 129 "/usr/include/bits/siginfo.h" 3 4 +enum +{ + SI_ASYNCNL = -60, + + SI_TKILL = -6, + + SI_SIGIO, + + SI_ASYNCIO, + + SI_MESGQ, + + SI_TIMER, + + SI_QUEUE, + + SI_USER, + + SI_KERNEL = 0x80 + +}; + + + +enum +{ + ILL_ILLOPC = 1, + + ILL_ILLOPN, + + ILL_ILLADR, + + ILL_ILLTRP, + + ILL_PRVOPC, + + ILL_PRVREG, + + ILL_COPROC, + + ILL_BADSTK + +}; + + +enum +{ + FPE_INTDIV = 1, + + FPE_INTOVF, + + FPE_FLTDIV, + + FPE_FLTOVF, + + FPE_FLTUND, + + FPE_FLTRES, + + FPE_FLTINV, + + FPE_FLTSUB + +}; + + +enum +{ + SEGV_MAPERR = 1, + + SEGV_ACCERR + +}; + + +enum +{ + BUS_ADRALN = 1, + + BUS_ADRERR, + + BUS_OBJERR + +}; + + +enum +{ + TRAP_BRKPT = 1, + + TRAP_TRACE + +}; + + +enum +{ + CLD_EXITED = 1, + + CLD_KILLED, + + CLD_DUMPED, + + CLD_TRAPPED, + + CLD_STOPPED, + + CLD_CONTINUED + +}; + + +enum +{ + POLL_IN = 1, + + POLL_OUT, + + POLL_MSG, + + POLL_ERR, + + POLL_PRI, + + POLL_HUP + +}; +# 273 "/usr/include/bits/siginfo.h" 3 4 +typedef struct sigevent + { + sigval_t sigev_value; + int sigev_signo; + int sigev_notify; + + union + { + int _pad[((64 / sizeof (int)) - 3)]; + + + + __pid_t _tid; + + struct + { + void (*_function) (sigval_t); + void *_attribute; + } _sigev_thread; + } _sigev_un; + } sigevent_t; + + + + + + +enum +{ + SIGEV_SIGNAL = 0, + + SIGEV_NONE, + + SIGEV_THREAD, + + + SIGEV_THREAD_ID = 4 + +}; +# 80 "/usr/include/signal.h" 2 3 4 + + + + +typedef void (*__sighandler_t) (int); + + + + +extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler) + __attribute__ ((__nothrow__ , __leaf__)); + +extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler) + __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + +extern __sighandler_t signal (int __sig, __sighandler_t __handler) + __attribute__ ((__nothrow__ , __leaf__)); +# 113 "/usr/include/signal.h" 3 4 + + + + + +extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler) + __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int raise (int __sig) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) + __attribute__ ((__nothrow__ , __leaf__)); +extern int gsignal (int __sig) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern void psignal (int __sig, __const char *__s); + + + + +extern void psiginfo (__const siginfo_t *__pinfo, __const char *__s); +# 168 "/usr/include/signal.h" 3 4 +extern int __sigpause (int __sig_or_mask, int __is_sig); +# 177 "/usr/include/signal.h" 3 4 +extern int sigpause (int __sig) __asm__ ("__xpg_sigpause"); +# 196 "/usr/include/signal.h" 3 4 +extern int sigblock (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); + + +extern int sigsetmask (int __mask) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); + + +extern int siggetmask (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); +# 211 "/usr/include/signal.h" 3 4 +typedef __sighandler_t sighandler_t; + + + + +typedef __sighandler_t sig_t; + + + + + +extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int sigismember (__const sigset_t *__set, int __signo) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + +extern int sigisemptyset (__const sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int sigandset (sigset_t *__set, __const sigset_t *__left, + __const sigset_t *__right) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))); + + +extern int sigorset (sigset_t *__set, __const sigset_t *__left, + __const sigset_t *__right) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))); + + + + +# 1 "/usr/include/bits/sigaction.h" 1 3 4 +# 25 "/usr/include/bits/sigaction.h" 3 4 +struct sigaction + { + + + union + { + + __sighandler_t sa_handler; + + void (*sa_sigaction) (int, siginfo_t *, void *); + } + __sigaction_handler; + + + + + + + + __sigset_t sa_mask; + + + int sa_flags; + + + void (*sa_restorer) (void); + }; +# 253 "/usr/include/signal.h" 2 3 4 + + +extern int sigprocmask (int __how, __const sigset_t *__restrict __set, + sigset_t *__restrict __oset) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +extern int sigsuspend (__const sigset_t *__set) __attribute__ ((__nonnull__ (1))); + + +extern int sigaction (int __sig, __const struct sigaction *__restrict __act, + struct sigaction *__restrict __oact) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern int sigwait (__const sigset_t *__restrict __set, int *__restrict __sig) + __attribute__ ((__nonnull__ (1, 2))); + + + + + + +extern int sigwaitinfo (__const sigset_t *__restrict __set, + siginfo_t *__restrict __info) __attribute__ ((__nonnull__ (1))); + + + + + + +extern int sigtimedwait (__const sigset_t *__restrict __set, + siginfo_t *__restrict __info, + __const struct timespec *__restrict __timeout) + __attribute__ ((__nonnull__ (1))); + + + +extern int sigqueue (__pid_t __pid, int __sig, __const union sigval __val) + __attribute__ ((__nothrow__ , __leaf__)); +# 310 "/usr/include/signal.h" 3 4 +extern __const char *__const _sys_siglist[65]; +extern __const char *__const sys_siglist[65]; + + +struct sigvec + { + __sighandler_t sv_handler; + int sv_mask; + + int sv_flags; + + }; +# 334 "/usr/include/signal.h" 3 4 +extern int sigvec (int __sig, __const struct sigvec *__vec, + struct sigvec *__ovec) __attribute__ ((__nothrow__ , __leaf__)); + + + +# 1 "/usr/include/bits/sigcontext.h" 1 3 4 +# 28 "/usr/include/bits/sigcontext.h" 3 4 +# 1 "/usr/include/asm/sigcontext.h" 1 3 4 + + + + +# 1 "/usr/include/linux/types.h" 1 3 4 + + + +# 1 "/usr/include/asm/types.h" 1 3 4 + + + +# 1 "/usr/include/asm-generic/types.h" 1 3 4 + + + + + + +# 1 "/usr/include/asm-generic/int-ll64.h" 1 3 4 +# 11 "/usr/include/asm-generic/int-ll64.h" 3 4 +# 1 "/usr/include/asm/bitsperlong.h" 1 3 4 +# 10 "/usr/include/asm/bitsperlong.h" 3 4 +# 1 "/usr/include/asm-generic/bitsperlong.h" 1 3 4 +# 11 "/usr/include/asm/bitsperlong.h" 2 3 4 +# 12 "/usr/include/asm-generic/int-ll64.h" 2 3 4 + + + + + + + +typedef __signed__ char __s8; +typedef unsigned char __u8; + +typedef __signed__ short __s16; +typedef unsigned short __u16; + +typedef __signed__ int __s32; +typedef unsigned int __u32; + + +__extension__ typedef __signed__ long long __s64; +__extension__ typedef unsigned long long __u64; +# 8 "/usr/include/asm-generic/types.h" 2 3 4 + + + +typedef unsigned short umode_t; +# 5 "/usr/include/asm/types.h" 2 3 4 +# 5 "/usr/include/linux/types.h" 2 3 4 + + + +# 1 "/usr/include/linux/posix_types.h" 1 3 4 + + + +# 1 "/usr/include/linux/stddef.h" 1 3 4 +# 14 "/usr/include/linux/stddef.h" 3 4 +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 1 3 4 +# 150 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 3 4 +typedef int ptrdiff_t; +# 15 "/usr/include/linux/stddef.h" 2 3 4 +# 5 "/usr/include/linux/posix_types.h" 2 3 4 +# 36 "/usr/include/linux/posix_types.h" 3 4 +typedef struct { + unsigned long fds_bits [(1024/(8 * sizeof(unsigned long)))]; +} __kernel_fd_set; + + +typedef void (*__kernel_sighandler_t)(int); + + +typedef int __kernel_key_t; +typedef int __kernel_mqd_t; + +# 1 "/usr/include/asm/posix_types.h" 1 3 4 + +# 1 "/usr/include/asm/posix_types_32.h" 1 3 4 +# 10 "/usr/include/asm/posix_types_32.h" 3 4 +typedef unsigned long __kernel_ino_t; +typedef unsigned short __kernel_mode_t; +typedef unsigned short __kernel_nlink_t; +typedef long __kernel_off_t; +typedef int __kernel_pid_t; +typedef unsigned short __kernel_ipc_pid_t; +typedef unsigned short __kernel_uid_t; +typedef unsigned short __kernel_gid_t; +typedef unsigned int __kernel_size_t; +typedef int __kernel_ssize_t; +typedef int __kernel_ptrdiff_t; +typedef long __kernel_time_t; +typedef long __kernel_suseconds_t; +typedef long __kernel_clock_t; +typedef int __kernel_timer_t; +typedef int __kernel_clockid_t; +typedef int __kernel_daddr_t; +typedef char * __kernel_caddr_t; +typedef unsigned short __kernel_uid16_t; +typedef unsigned short __kernel_gid16_t; +typedef unsigned int __kernel_uid32_t; +typedef unsigned int __kernel_gid32_t; + +typedef unsigned short __kernel_old_uid_t; +typedef unsigned short __kernel_old_gid_t; +typedef unsigned short __kernel_old_dev_t; + + +typedef long long __kernel_loff_t; + + +typedef struct { + int val[2]; +} __kernel_fsid_t; +# 3 "/usr/include/asm/posix_types.h" 2 3 4 +# 48 "/usr/include/linux/posix_types.h" 2 3 4 +# 9 "/usr/include/linux/types.h" 2 3 4 +# 27 "/usr/include/linux/types.h" 3 4 +typedef __u16 __le16; +typedef __u16 __be16; +typedef __u32 __le32; +typedef __u32 __be32; +typedef __u64 __le64; +typedef __u64 __be64; + +typedef __u16 __sum16; +typedef __u32 __wsum; +# 6 "/usr/include/asm/sigcontext.h" 2 3 4 +# 23 "/usr/include/asm/sigcontext.h" 3 4 +struct _fpx_sw_bytes { + __u32 magic1; + __u32 extended_size; + + + __u64 xstate_bv; + + + + + __u32 xstate_size; + + + + + __u32 padding[7]; +}; +# 56 "/usr/include/asm/sigcontext.h" 3 4 +struct _fpreg { + unsigned short significand[4]; + unsigned short exponent; +}; + +struct _fpxreg { + unsigned short significand[4]; + unsigned short exponent; + unsigned short padding[3]; +}; + +struct _xmmreg { + unsigned long element[4]; +}; + +struct _fpstate { + + unsigned long cw; + unsigned long sw; + unsigned long tag; + unsigned long ipoff; + unsigned long cssel; + unsigned long dataoff; + unsigned long datasel; + struct _fpreg _st[8]; + unsigned short status; + unsigned short magic; + + + unsigned long _fxsr_env[6]; + unsigned long mxcsr; + unsigned long reserved; + struct _fpxreg _fxsr_st[8]; + struct _xmmreg _xmm[8]; + unsigned long padding1[44]; + + union { + unsigned long padding2[12]; + struct _fpx_sw_bytes sw_reserved; + + }; +}; + + + + + + +struct sigcontext { + unsigned short gs, __gsh; + unsigned short fs, __fsh; + unsigned short es, __esh; + unsigned short ds, __dsh; + unsigned long edi; + unsigned long esi; + unsigned long ebp; + unsigned long esp; + unsigned long ebx; + unsigned long edx; + unsigned long ecx; + unsigned long eax; + unsigned long trapno; + unsigned long err; + unsigned long eip; + unsigned short cs, __csh; + unsigned long eflags; + unsigned long esp_at_signal; + unsigned short ss, __ssh; + struct _fpstate *fpstate; + unsigned long oldmask; + unsigned long cr2; +}; +# 190 "/usr/include/asm/sigcontext.h" 3 4 +struct _xsave_hdr { + __u64 xstate_bv; + __u64 reserved1[2]; + __u64 reserved2[5]; +}; + +struct _ymmh_state { + + __u32 ymmh_space[64]; +}; + + + + + + + +struct _xstate { + struct _fpstate fpstate; + struct _xsave_hdr xstate_hdr; + struct _ymmh_state ymmh; + +}; +# 29 "/usr/include/bits/sigcontext.h" 2 3 4 + + + +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 1 3 4 +# 33 "/usr/include/bits/sigcontext.h" 2 3 4 +# 340 "/usr/include/signal.h" 2 3 4 + + +extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 1 3 4 +# 350 "/usr/include/signal.h" 2 3 4 + + + + +extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__ , __leaf__)); + +# 1 "/usr/include/bits/sigstack.h" 1 3 4 +# 26 "/usr/include/bits/sigstack.h" 3 4 +struct sigstack + { + void *ss_sp; + int ss_onstack; + }; + + + +enum +{ + SS_ONSTACK = 1, + + SS_DISABLE + +}; +# 50 "/usr/include/bits/sigstack.h" 3 4 +typedef struct sigaltstack + { + void *ss_sp; + int ss_flags; + size_t ss_size; + } stack_t; +# 357 "/usr/include/signal.h" 2 3 4 + + +# 1 "/usr/include/sys/ucontext.h" 1 3 4 +# 23 "/usr/include/sys/ucontext.h" 3 4 +# 1 "/usr/include/signal.h" 1 3 4 +# 24 "/usr/include/sys/ucontext.h" 2 3 4 + + + +# 1 "/usr/include/bits/sigcontext.h" 1 3 4 +# 28 "/usr/include/sys/ucontext.h" 2 3 4 + + + +typedef int greg_t; + + + + + +typedef greg_t gregset_t[19]; + + + +enum +{ + REG_GS = 0, + + REG_FS, + + REG_ES, + + REG_DS, + + REG_EDI, + + REG_ESI, + + REG_EBP, + + REG_ESP, + + REG_EBX, + + REG_EDX, + + REG_ECX, + + REG_EAX, + + REG_TRAPNO, + + REG_ERR, + + REG_EIP, + + REG_CS, + + REG_EFL, + + REG_UESP, + + REG_SS + +}; + + + +struct _libc_fpreg +{ + unsigned short int significand[4]; + unsigned short int exponent; +}; + +struct _libc_fpstate +{ + unsigned long int cw; + unsigned long int sw; + unsigned long int tag; + unsigned long int ipoff; + unsigned long int cssel; + unsigned long int dataoff; + unsigned long int datasel; + struct _libc_fpreg _st[8]; + unsigned long int status; +}; + + +typedef struct _libc_fpstate *fpregset_t; + + +typedef struct + { + gregset_t gregs; + + + fpregset_t fpregs; + unsigned long int oldmask; + unsigned long int cr2; + } mcontext_t; + + +typedef struct ucontext + { + unsigned long int uc_flags; + struct ucontext *uc_link; + stack_t uc_stack; + mcontext_t uc_mcontext; + __sigset_t uc_sigmask; + struct _libc_fpstate __fpregs_mem; + } ucontext_t; +# 360 "/usr/include/signal.h" 2 3 4 + + + + + +extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__deprecated__)); + + + +extern int sigaltstack (__const struct sigaltstack *__restrict __ss, + struct sigaltstack *__restrict __oss) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + +extern int sighold (int __sig) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int sigrelse (int __sig) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int sigignore (int __sig) __attribute__ ((__nothrow__ , __leaf__)); + + +extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + +# 1 "/usr/include/bits/sigthread.h" 1 3 4 +# 31 "/usr/include/bits/sigthread.h" 3 4 +extern int pthread_sigmask (int __how, + __const __sigset_t *__restrict __newmask, + __sigset_t *__restrict __oldmask)__attribute__ ((__nothrow__ , __leaf__)); + + +extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern int pthread_sigqueue (pthread_t __threadid, int __signo, + const union sigval __value) __attribute__ ((__nothrow__ , __leaf__)); +# 396 "/usr/include/signal.h" 2 3 4 + + + + + + +extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__ , __leaf__)); + +extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__ , __leaf__)); + + + + +# 39 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 1 "/usr/include/glib-2.0/glib.h" 1 +# 32 "/usr/include/glib-2.0/glib.h" +# 1 "/usr/include/glib-2.0/glib/galloca.h" 1 +# 34 "/usr/include/glib-2.0/glib/galloca.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 34 "/usr/include/glib-2.0/glib/gtypes.h" +# 1 "/usr/lib/glib-2.0/include/glibconfig.h" 1 +# 9 "/usr/lib/glib-2.0/include/glibconfig.h" +# 1 "/usr/include/glib-2.0/glib/gmacros.h" 1 +# 40 "/usr/include/glib-2.0/glib/gmacros.h" +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 1 3 4 +# 41 "/usr/include/glib-2.0/glib/gmacros.h" 2 +# 10 "/usr/lib/glib-2.0/include/glibconfig.h" 2 + +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include-fixed/limits.h" 1 3 4 +# 12 "/usr/lib/glib-2.0/include/glibconfig.h" 2 +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/float.h" 1 3 4 +# 13 "/usr/lib/glib-2.0/include/glibconfig.h" 2 +# 22 "/usr/lib/glib-2.0/include/glibconfig.h" + +# 38 "/usr/lib/glib-2.0/include/glibconfig.h" +typedef signed char gint8; +typedef unsigned char guint8; +typedef signed short gint16; +typedef unsigned short guint16; + + + +typedef signed int gint32; +typedef unsigned int guint32; + + + + + +__extension__ typedef signed long long gint64; +__extension__ typedef unsigned long long guint64; +# 65 "/usr/lib/glib-2.0/include/glibconfig.h" +typedef signed int gssize; +typedef unsigned int gsize; +# 75 "/usr/lib/glib-2.0/include/glibconfig.h" +typedef gint64 goffset; +# 90 "/usr/lib/glib-2.0/include/glibconfig.h" +typedef signed int gintptr; +typedef unsigned int guintptr; +# 197 "/usr/lib/glib-2.0/include/glibconfig.h" +typedef int GPid; +# 207 "/usr/lib/glib-2.0/include/glibconfig.h" + +# 35 "/usr/include/glib-2.0/glib/gtypes.h" 2 +# 1 "/usr/include/glib-2.0/glib/gmacros.h" 1 +# 36 "/usr/include/glib-2.0/glib/gtypes.h" 2 +# 1 "/usr/include/glib-2.0/glib/gversionmacros.h" 1 +# 37 "/usr/include/glib-2.0/glib/gtypes.h" 2 + + + +# 48 "/usr/include/glib-2.0/glib/gtypes.h" +typedef char gchar; +typedef short gshort; +typedef long glong; +typedef int gint; +typedef gint gboolean; + +typedef unsigned char guchar; +typedef unsigned short gushort; +typedef unsigned long gulong; +typedef unsigned int guint; + +typedef float gfloat; +typedef double gdouble; +# 79 "/usr/include/glib-2.0/glib/gtypes.h" +typedef void* gpointer; +typedef const void *gconstpointer; + +typedef gint (*GCompareFunc) (gconstpointer a, + gconstpointer b); +typedef gint (*GCompareDataFunc) (gconstpointer a, + gconstpointer b, + gpointer user_data); +typedef gboolean (*GEqualFunc) (gconstpointer a, + gconstpointer b); +typedef void (*GDestroyNotify) (gpointer data); +typedef void (*GFunc) (gpointer data, + gpointer user_data); +typedef guint (*GHashFunc) (gconstpointer key); +typedef void (*GHFunc) (gpointer key, + gpointer value, + gpointer user_data); +# 105 "/usr/include/glib-2.0/glib/gtypes.h" +typedef void (*GFreeFunc) (gpointer data); +# 119 "/usr/include/glib-2.0/glib/gtypes.h" +typedef const gchar * (*GTranslateFunc) (const gchar *str, + gpointer data); +# 401 "/usr/include/glib-2.0/glib/gtypes.h" +typedef union _GDoubleIEEE754 GDoubleIEEE754; +typedef union _GFloatIEEE754 GFloatIEEE754; + + + + + +union _GFloatIEEE754 +{ + gfloat v_float; + struct { + guint mantissa : 23; + guint biased_exponent : 8; + guint sign : 1; + } mpn; +}; +union _GDoubleIEEE754 +{ + gdouble v_double; + struct { + guint mantissa_low : 32; + guint mantissa_high : 20; + guint biased_exponent : 11; + guint sign : 1; + } mpn; +}; +# 451 "/usr/include/glib-2.0/glib/gtypes.h" +typedef struct _GTimeVal GTimeVal; + +struct _GTimeVal +{ + glong tv_sec; + glong tv_usec; +}; + + +# 35 "/usr/include/glib-2.0/glib/galloca.h" 2 +# 33 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/garray.h" 1 +# 34 "/usr/include/glib-2.0/glib/garray.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/garray.h" 2 + + + +typedef struct _GBytes GBytes; +typedef struct _GArray GArray; +typedef struct _GByteArray GByteArray; +typedef struct _GPtrArray GPtrArray; + +struct _GArray +{ + gchar *data; + guint len; +}; + +struct _GByteArray +{ + guint8 *data; + guint len; +}; + +struct _GPtrArray +{ + gpointer *pdata; + guint len; +}; +# 71 "/usr/include/glib-2.0/glib/garray.h" +GArray* g_array_new (gboolean zero_terminated, + gboolean clear_, + guint element_size); +GArray* g_array_sized_new (gboolean zero_terminated, + gboolean clear_, + guint element_size, + guint reserved_size); +gchar* g_array_free (GArray *array, + gboolean free_segment); +GArray *g_array_ref (GArray *array); +void g_array_unref (GArray *array); +guint g_array_get_element_size (GArray *array); +GArray* g_array_append_vals (GArray *array, + gconstpointer data, + guint len); +GArray* g_array_prepend_vals (GArray *array, + gconstpointer data, + guint len); +GArray* g_array_insert_vals (GArray *array, + guint index_, + gconstpointer data, + guint len); +GArray* g_array_set_size (GArray *array, + guint length); +GArray* g_array_remove_index (GArray *array, + guint index_); +GArray* g_array_remove_index_fast (GArray *array, + guint index_); +GArray* g_array_remove_range (GArray *array, + guint index_, + guint length); +void g_array_sort (GArray *array, + GCompareFunc compare_func); +void g_array_sort_with_data (GArray *array, + GCompareDataFunc compare_func, + gpointer user_data); +void g_array_set_clear_func (GArray *array, + GDestroyNotify clear_func); + + + + + + +GPtrArray* g_ptr_array_new (void); +GPtrArray* g_ptr_array_new_with_free_func (GDestroyNotify element_free_func); +GPtrArray* g_ptr_array_sized_new (guint reserved_size); +GPtrArray* g_ptr_array_new_full (guint reserved_size, + GDestroyNotify element_free_func); +gpointer* g_ptr_array_free (GPtrArray *array, + gboolean free_seg); +GPtrArray* g_ptr_array_ref (GPtrArray *array); +void g_ptr_array_unref (GPtrArray *array); +void g_ptr_array_set_free_func (GPtrArray *array, + GDestroyNotify element_free_func); +void g_ptr_array_set_size (GPtrArray *array, + gint length); +gpointer g_ptr_array_remove_index (GPtrArray *array, + guint index_); +gpointer g_ptr_array_remove_index_fast (GPtrArray *array, + guint index_); +gboolean g_ptr_array_remove (GPtrArray *array, + gpointer data); +gboolean g_ptr_array_remove_fast (GPtrArray *array, + gpointer data); +void g_ptr_array_remove_range (GPtrArray *array, + guint index_, + guint length); +void g_ptr_array_add (GPtrArray *array, + gpointer data); +void g_ptr_array_sort (GPtrArray *array, + GCompareFunc compare_func); +void g_ptr_array_sort_with_data (GPtrArray *array, + GCompareDataFunc compare_func, + gpointer user_data); +void g_ptr_array_foreach (GPtrArray *array, + GFunc func, + gpointer user_data); + + + + + + +GByteArray* g_byte_array_new (void); +GByteArray* g_byte_array_new_take (guint8 *data, + gsize len); +GByteArray* g_byte_array_sized_new (guint reserved_size); +guint8* g_byte_array_free (GByteArray *array, + gboolean free_segment); +GBytes* g_byte_array_free_to_bytes (GByteArray *array); +GByteArray *g_byte_array_ref (GByteArray *array); +void g_byte_array_unref (GByteArray *array); +GByteArray* g_byte_array_append (GByteArray *array, + const guint8 *data, + guint len); +GByteArray* g_byte_array_prepend (GByteArray *array, + const guint8 *data, + guint len); +GByteArray* g_byte_array_set_size (GByteArray *array, + guint length); +GByteArray* g_byte_array_remove_index (GByteArray *array, + guint index_); +GByteArray* g_byte_array_remove_index_fast (GByteArray *array, + guint index_); +GByteArray* g_byte_array_remove_range (GByteArray *array, + guint index_, + guint length); +void g_byte_array_sort (GByteArray *array, + GCompareFunc compare_func); +void g_byte_array_sort_with_data (GByteArray *array, + GCompareDataFunc compare_func, + gpointer user_data); + + +# 34 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gasyncqueue.h" 1 +# 34 "/usr/include/glib-2.0/glib/gasyncqueue.h" +# 1 "/usr/include/glib-2.0/glib/gthread.h" 1 +# 34 "/usr/include/glib-2.0/glib/gthread.h" +# 1 "/usr/include/glib-2.0/glib/gatomic.h" 1 +# 29 "/usr/include/glib-2.0/glib/gatomic.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 30 "/usr/include/glib-2.0/glib/gatomic.h" 2 + + + +gint g_atomic_int_get (volatile gint *atomic); +void g_atomic_int_set (volatile gint *atomic, + gint newval); +void g_atomic_int_inc (volatile gint *atomic); +gboolean g_atomic_int_dec_and_test (volatile gint *atomic); +gboolean g_atomic_int_compare_and_exchange (volatile gint *atomic, + gint oldval, + gint newval); +gint g_atomic_int_add (volatile gint *atomic, + gint val); + +guint g_atomic_int_and (volatile guint *atomic, + guint val); + +guint g_atomic_int_or (volatile guint *atomic, + guint val); +guint g_atomic_int_xor (volatile guint *atomic, + guint val); + +gpointer g_atomic_pointer_get (volatile void *atomic); +void g_atomic_pointer_set (volatile void *atomic, + gpointer newval); +gboolean g_atomic_pointer_compare_and_exchange (volatile void *atomic, + gpointer oldval, + gpointer newval); +gssize g_atomic_pointer_add (volatile void *atomic, + gssize val); + +gsize g_atomic_pointer_and (volatile void *atomic, + gsize val); + +gsize g_atomic_pointer_or (volatile void *atomic, + gsize val); +gsize g_atomic_pointer_xor (volatile void *atomic, + gsize val); + +__attribute__((__deprecated__("Use '" "g_atomic_add" "' instead"))) +gint g_atomic_int_exchange_and_add (volatile gint *atomic, + gint val); + + +# 35 "/usr/include/glib-2.0/glib/gthread.h" 2 +# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 +# 30 "/usr/include/glib-2.0/glib/gerror.h" +# 1 "/usr/include/glib-2.0/glib/gquark.h" 1 +# 34 "/usr/include/glib-2.0/glib/gquark.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/gquark.h" 2 + + + +typedef guint32 GQuark; + + + +GQuark g_quark_try_string (const gchar *string); +GQuark g_quark_from_static_string (const gchar *string); +GQuark g_quark_from_string (const gchar *string); +const gchar * g_quark_to_string (GQuark quark) __attribute__((__const__)); + +const gchar * g_intern_string (const gchar *string); +const gchar * g_intern_static_string (const gchar *string); + + +# 31 "/usr/include/glib-2.0/glib/gerror.h" 2 + + +# 43 "/usr/include/glib-2.0/glib/gerror.h" +typedef struct _GError GError; + +struct _GError +{ + GQuark domain; + gint code; + gchar *message; +}; + +GError* g_error_new (GQuark domain, + gint code, + const gchar *format, + ...) __attribute__((__format__ (__printf__, 3, 4))); + +GError* g_error_new_literal (GQuark domain, + gint code, + const gchar *message); +GError* g_error_new_valist (GQuark domain, + gint code, + const gchar *format, + va_list args); + +void g_error_free (GError *error); +GError* g_error_copy (const GError *error); + +gboolean g_error_matches (const GError *error, + GQuark domain, + gint code); + + + + +void g_set_error (GError **err, + GQuark domain, + gint code, + const gchar *format, + ...) __attribute__((__format__ (__printf__, 4, 5))); + +void g_set_error_literal (GError **err, + GQuark domain, + gint code, + const gchar *message); + + + +void g_propagate_error (GError **dest, + GError *src); + + +void g_clear_error (GError **err); + + +void g_prefix_error (GError **err, + const gchar *format, + ...) __attribute__((__format__ (__printf__, 2, 3))); + + +void g_propagate_prefixed_error (GError **dest, + GError *src, + const gchar *format, + ...) __attribute__((__format__ (__printf__, 3, 4))); + + +# 36 "/usr/include/glib-2.0/glib/gthread.h" 2 + + + + +GQuark g_thread_error_quark (void); + +typedef enum +{ + G_THREAD_ERROR_AGAIN +} GThreadError; + +typedef gpointer (*GThreadFunc) (gpointer data); + +typedef struct _GThread GThread; + +typedef union _GMutex GMutex; +typedef struct _GRecMutex GRecMutex; +typedef struct _GRWLock GRWLock; +typedef struct _GCond GCond; +typedef struct _GPrivate GPrivate; +typedef struct _GOnce GOnce; + +union _GMutex +{ + + gpointer p; + guint i[2]; +}; + +struct _GRWLock +{ + + gpointer p; + guint i[2]; +}; + +struct _GCond +{ + + gpointer p; + guint i[2]; +}; + +struct _GRecMutex +{ + + gpointer p; + guint i[2]; +}; + + +struct _GPrivate +{ + + gpointer p; + GDestroyNotify notify; + gpointer future[2]; +}; + +typedef enum +{ + G_ONCE_STATUS_NOTCALLED, + G_ONCE_STATUS_PROGRESS, + G_ONCE_STATUS_READY +} GOnceStatus; + + +struct _GOnce +{ + volatile GOnceStatus status; + volatile gpointer retval; +}; +# 140 "/usr/include/glib-2.0/glib/gthread.h" +GThread * g_thread_ref (GThread *thread); +void g_thread_unref (GThread *thread); +GThread * g_thread_new (const gchar *name, + GThreadFunc func, + gpointer data); +GThread * g_thread_try_new (const gchar *name, + GThreadFunc func, + gpointer data, + GError **error); +GThread * g_thread_self (void); +void g_thread_exit (gpointer retval); +gpointer g_thread_join (GThread *thread); +void g_thread_yield (void); + + +void g_mutex_init (GMutex *mutex); +void g_mutex_clear (GMutex *mutex); +void g_mutex_lock (GMutex *mutex); +gboolean g_mutex_trylock (GMutex *mutex); +void g_mutex_unlock (GMutex *mutex); + +void g_rw_lock_init (GRWLock *rw_lock); +void g_rw_lock_clear (GRWLock *rw_lock); +void g_rw_lock_writer_lock (GRWLock *rw_lock); +gboolean g_rw_lock_writer_trylock (GRWLock *rw_lock); +void g_rw_lock_writer_unlock (GRWLock *rw_lock); +void g_rw_lock_reader_lock (GRWLock *rw_lock); +gboolean g_rw_lock_reader_trylock (GRWLock *rw_lock); +void g_rw_lock_reader_unlock (GRWLock *rw_lock); + +void g_rec_mutex_init (GRecMutex *rec_mutex); +void g_rec_mutex_clear (GRecMutex *rec_mutex); +void g_rec_mutex_lock (GRecMutex *rec_mutex); +gboolean g_rec_mutex_trylock (GRecMutex *rec_mutex); +void g_rec_mutex_unlock (GRecMutex *rec_mutex); + +void g_cond_init (GCond *cond); +void g_cond_clear (GCond *cond); +void g_cond_wait (GCond *cond, + GMutex *mutex); +void g_cond_signal (GCond *cond); +void g_cond_broadcast (GCond *cond); +gboolean g_cond_wait_until (GCond *cond, + GMutex *mutex, + gint64 end_time); + +gpointer g_private_get (GPrivate *key); +void g_private_set (GPrivate *key, + gpointer value); +void g_private_replace (GPrivate *key, + gpointer value); + +gpointer g_once_impl (GOnce *once, + GThreadFunc func, + gpointer arg); +gboolean g_once_init_enter (volatile void *location); +void g_once_init_leave (volatile void *location, + gsize result); +# 229 "/usr/include/glib-2.0/glib/gthread.h" + +# 35 "/usr/include/glib-2.0/glib/gasyncqueue.h" 2 + + + +typedef struct _GAsyncQueue GAsyncQueue; + +GAsyncQueue *g_async_queue_new (void); +GAsyncQueue *g_async_queue_new_full (GDestroyNotify item_free_func); +void g_async_queue_lock (GAsyncQueue *queue); +void g_async_queue_unlock (GAsyncQueue *queue); +GAsyncQueue *g_async_queue_ref (GAsyncQueue *queue); +void g_async_queue_unref (GAsyncQueue *queue); + +__attribute__((__deprecated__("Use '" "g_async_queue_ref" "' instead"))) +void g_async_queue_ref_unlocked (GAsyncQueue *queue); + +__attribute__((__deprecated__("Use '" "g_async_queue_unref" "' instead"))) +void g_async_queue_unref_and_unlock (GAsyncQueue *queue); + +void g_async_queue_push (GAsyncQueue *queue, + gpointer data); +void g_async_queue_push_unlocked (GAsyncQueue *queue, + gpointer data); +void g_async_queue_push_sorted (GAsyncQueue *queue, + gpointer data, + GCompareDataFunc func, + gpointer user_data); +void g_async_queue_push_sorted_unlocked (GAsyncQueue *queue, + gpointer data, + GCompareDataFunc func, + gpointer user_data); +gpointer g_async_queue_pop (GAsyncQueue *queue); +gpointer g_async_queue_pop_unlocked (GAsyncQueue *queue); +gpointer g_async_queue_try_pop (GAsyncQueue *queue); +gpointer g_async_queue_try_pop_unlocked (GAsyncQueue *queue); +gpointer g_async_queue_timeout_pop (GAsyncQueue *queue, + guint64 timeout); +gpointer g_async_queue_timeout_pop_unlocked (GAsyncQueue *queue, + guint64 timeout); +gint g_async_queue_length (GAsyncQueue *queue); +gint g_async_queue_length_unlocked (GAsyncQueue *queue); +void g_async_queue_sort (GAsyncQueue *queue, + GCompareDataFunc func, + gpointer user_data); +void g_async_queue_sort_unlocked (GAsyncQueue *queue, + GCompareDataFunc func, + gpointer user_data); + +__attribute__((__deprecated__("Use '" "g_async_queue_timeout_pop" "' instead"))) +gpointer g_async_queue_timed_pop (GAsyncQueue *queue, + GTimeVal *end_time); +__attribute__((__deprecated__("Use '" "g_async_queue_timeout_pop_unlocked" "' instead"))) +gpointer g_async_queue_timed_pop_unlocked (GAsyncQueue *queue, + GTimeVal *end_time); + + +# 35 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gatomic.h" 1 +# 36 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gbacktrace.h" 1 +# 34 "/usr/include/glib-2.0/glib/gbacktrace.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/gbacktrace.h" 2 + + + + +void g_on_error_query (const gchar *prg_name); +void g_on_error_stack_trace (const gchar *prg_name); +# 62 "/usr/include/glib-2.0/glib/gbacktrace.h" + +# 37 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gbase64.h" 1 +# 28 "/usr/include/glib-2.0/glib/gbase64.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 29 "/usr/include/glib-2.0/glib/gbase64.h" 2 + + + +gsize g_base64_encode_step (const guchar *in, + gsize len, + gboolean break_lines, + gchar *out, + gint *state, + gint *save); +gsize g_base64_encode_close (gboolean break_lines, + gchar *out, + gint *state, + gint *save); +gchar* g_base64_encode (const guchar *data, + gsize len) __attribute__((__malloc__)); +gsize g_base64_decode_step (const gchar *in, + gsize len, + guchar *out, + gint *state, + guint *save); +guchar *g_base64_decode (const gchar *text, + gsize *out_len) __attribute__((__malloc__)); +guchar *g_base64_decode_inplace (gchar *text, + gsize *out_len); + + + +# 38 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gbitlock.h" 1 +# 26 "/usr/include/glib-2.0/glib/gbitlock.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 27 "/usr/include/glib-2.0/glib/gbitlock.h" 2 + + + + + + + +void g_bit_lock (volatile gint *address, + gint lock_bit); +gboolean g_bit_trylock (volatile gint *address, + gint lock_bit); +void g_bit_unlock (volatile gint *address, + gint lock_bit); + +void g_pointer_bit_lock (volatile void *address, + gint lock_bit); +gboolean g_pointer_bit_trylock (volatile void *address, + gint lock_bit); +void g_pointer_bit_unlock (volatile void *address, + gint lock_bit); +# 70 "/usr/include/glib-2.0/glib/gbitlock.h" + +# 39 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gbookmarkfile.h" 1 +# 27 "/usr/include/glib-2.0/glib/gbookmarkfile.h" +# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 +# 28 "/usr/include/glib-2.0/glib/gbookmarkfile.h" 2 + + + +# 57 "/usr/include/glib-2.0/glib/gbookmarkfile.h" +typedef enum +{ + G_BOOKMARK_FILE_ERROR_INVALID_URI, + G_BOOKMARK_FILE_ERROR_INVALID_VALUE, + G_BOOKMARK_FILE_ERROR_APP_NOT_REGISTERED, + G_BOOKMARK_FILE_ERROR_URI_NOT_FOUND, + G_BOOKMARK_FILE_ERROR_READ, + G_BOOKMARK_FILE_ERROR_UNKNOWN_ENCODING, + G_BOOKMARK_FILE_ERROR_WRITE, + G_BOOKMARK_FILE_ERROR_FILE_NOT_FOUND +} GBookmarkFileError; + +GQuark g_bookmark_file_error_quark (void); + + + + + + + +typedef struct _GBookmarkFile GBookmarkFile; + +GBookmarkFile *g_bookmark_file_new (void); +void g_bookmark_file_free (GBookmarkFile *bookmark); + +gboolean g_bookmark_file_load_from_file (GBookmarkFile *bookmark, + const gchar *filename, + GError **error); +gboolean g_bookmark_file_load_from_data (GBookmarkFile *bookmark, + const gchar *data, + gsize length, + GError **error); +gboolean g_bookmark_file_load_from_data_dirs (GBookmarkFile *bookmark, + const gchar *file, + gchar **full_path, + GError **error); +gchar * g_bookmark_file_to_data (GBookmarkFile *bookmark, + gsize *length, + GError **error) __attribute__((__malloc__)); +gboolean g_bookmark_file_to_file (GBookmarkFile *bookmark, + const gchar *filename, + GError **error); + +void g_bookmark_file_set_title (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *title); +gchar * g_bookmark_file_get_title (GBookmarkFile *bookmark, + const gchar *uri, + GError **error) __attribute__((__malloc__)); +void g_bookmark_file_set_description (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *description); +gchar * g_bookmark_file_get_description (GBookmarkFile *bookmark, + const gchar *uri, + GError **error) __attribute__((__malloc__)); +void g_bookmark_file_set_mime_type (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *mime_type); +gchar * g_bookmark_file_get_mime_type (GBookmarkFile *bookmark, + const gchar *uri, + GError **error) __attribute__((__malloc__)); +void g_bookmark_file_set_groups (GBookmarkFile *bookmark, + const gchar *uri, + const gchar **groups, + gsize length); +void g_bookmark_file_add_group (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *group); +gboolean g_bookmark_file_has_group (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *group, + GError **error); +gchar ** g_bookmark_file_get_groups (GBookmarkFile *bookmark, + const gchar *uri, + gsize *length, + GError **error) __attribute__((__malloc__)); +void g_bookmark_file_add_application (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *name, + const gchar *exec); +gboolean g_bookmark_file_has_application (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *name, + GError **error); +gchar ** g_bookmark_file_get_applications (GBookmarkFile *bookmark, + const gchar *uri, + gsize *length, + GError **error) __attribute__((__malloc__)); +gboolean g_bookmark_file_set_app_info (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *name, + const gchar *exec, + gint count, + time_t stamp, + GError **error); +gboolean g_bookmark_file_get_app_info (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *name, + gchar **exec, + guint *count, + time_t *stamp, + GError **error); +void g_bookmark_file_set_is_private (GBookmarkFile *bookmark, + const gchar *uri, + gboolean is_private); +gboolean g_bookmark_file_get_is_private (GBookmarkFile *bookmark, + const gchar *uri, + GError **error); +void g_bookmark_file_set_icon (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *href, + const gchar *mime_type); +gboolean g_bookmark_file_get_icon (GBookmarkFile *bookmark, + const gchar *uri, + gchar **href, + gchar **mime_type, + GError **error); +void g_bookmark_file_set_added (GBookmarkFile *bookmark, + const gchar *uri, + time_t added); +time_t g_bookmark_file_get_added (GBookmarkFile *bookmark, + const gchar *uri, + GError **error); +void g_bookmark_file_set_modified (GBookmarkFile *bookmark, + const gchar *uri, + time_t modified); +time_t g_bookmark_file_get_modified (GBookmarkFile *bookmark, + const gchar *uri, + GError **error); +void g_bookmark_file_set_visited (GBookmarkFile *bookmark, + const gchar *uri, + time_t visited); +time_t g_bookmark_file_get_visited (GBookmarkFile *bookmark, + const gchar *uri, + GError **error); +gboolean g_bookmark_file_has_item (GBookmarkFile *bookmark, + const gchar *uri); +gint g_bookmark_file_get_size (GBookmarkFile *bookmark); +gchar ** g_bookmark_file_get_uris (GBookmarkFile *bookmark, + gsize *length) __attribute__((__malloc__)); +gboolean g_bookmark_file_remove_group (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *group, + GError **error); +gboolean g_bookmark_file_remove_application (GBookmarkFile *bookmark, + const gchar *uri, + const gchar *name, + GError **error); +gboolean g_bookmark_file_remove_item (GBookmarkFile *bookmark, + const gchar *uri, + GError **error); +gboolean g_bookmark_file_move_item (GBookmarkFile *bookmark, + const gchar *old_uri, + const gchar *new_uri, + GError **error); + + +# 40 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gbytes.h" 1 +# 31 "/usr/include/glib-2.0/glib/gbytes.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 32 "/usr/include/glib-2.0/glib/gbytes.h" 2 +# 1 "/usr/include/glib-2.0/glib/garray.h" 1 +# 33 "/usr/include/glib-2.0/glib/gbytes.h" 2 + + + +GBytes * g_bytes_new (gconstpointer data, + gsize size); + +GBytes * g_bytes_new_take (gpointer data, + gsize size); + +GBytes * g_bytes_new_static (gconstpointer data, + gsize size); + +GBytes * g_bytes_new_with_free_func (gconstpointer data, + gsize size, + GDestroyNotify free_func, + gpointer user_data); + +GBytes * g_bytes_new_from_bytes (GBytes *bytes, + gsize offset, + gsize length); + +gconstpointer g_bytes_get_data (GBytes *bytes, + gsize *size); + +gsize g_bytes_get_size (GBytes *bytes); + +GBytes * g_bytes_ref (GBytes *bytes); + +void g_bytes_unref (GBytes *bytes); + +gpointer g_bytes_unref_to_data (GBytes *bytes, + gsize *size); + +GByteArray * g_bytes_unref_to_array (GBytes *bytes); + +guint g_bytes_hash (gconstpointer bytes); + +gboolean g_bytes_equal (gconstpointer bytes1, + gconstpointer bytes2); + +gint g_bytes_compare (gconstpointer bytes1, + gconstpointer bytes2); + + +# 41 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gcharset.h" 1 +# 28 "/usr/include/glib-2.0/glib/gcharset.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 29 "/usr/include/glib-2.0/glib/gcharset.h" 2 + + + +gboolean g_get_charset (const char **charset); +gchar * g_get_codeset (void); + +const gchar * const * g_get_language_names (void); +gchar ** g_get_locale_variants (const gchar *locale); + + +# 42 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gchecksum.h" 1 +# 28 "/usr/include/glib-2.0/glib/gchecksum.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 29 "/usr/include/glib-2.0/glib/gchecksum.h" 2 + + +# 46 "/usr/include/glib-2.0/glib/gchecksum.h" +typedef enum { + G_CHECKSUM_MD5, + G_CHECKSUM_SHA1, + G_CHECKSUM_SHA256 +} GChecksumType; +# 61 "/usr/include/glib-2.0/glib/gchecksum.h" +typedef struct _GChecksum GChecksum; + +gssize g_checksum_type_get_length (GChecksumType checksum_type); + +GChecksum * g_checksum_new (GChecksumType checksum_type); +void g_checksum_reset (GChecksum *checksum); +GChecksum * g_checksum_copy (const GChecksum *checksum); +void g_checksum_free (GChecksum *checksum); +void g_checksum_update (GChecksum *checksum, + const guchar *data, + gssize length); +const gchar * g_checksum_get_string (GChecksum *checksum); +void g_checksum_get_digest (GChecksum *checksum, + guint8 *buffer, + gsize *digest_len); + +gchar *g_compute_checksum_for_data (GChecksumType checksum_type, + const guchar *data, + gsize length); +gchar *g_compute_checksum_for_string (GChecksumType checksum_type, + const gchar *str, + gssize length); + + +# 43 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gconvert.h" 1 +# 34 "/usr/include/glib-2.0/glib/gconvert.h" +# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 +# 35 "/usr/include/glib-2.0/glib/gconvert.h" 2 + + +# 50 "/usr/include/glib-2.0/glib/gconvert.h" +typedef enum +{ + G_CONVERT_ERROR_NO_CONVERSION, + G_CONVERT_ERROR_ILLEGAL_SEQUENCE, + G_CONVERT_ERROR_FAILED, + G_CONVERT_ERROR_PARTIAL_INPUT, + G_CONVERT_ERROR_BAD_URI, + G_CONVERT_ERROR_NOT_ABSOLUTE_PATH +} GConvertError; +# 68 "/usr/include/glib-2.0/glib/gconvert.h" +GQuark g_convert_error_quark (void); +# 77 "/usr/include/glib-2.0/glib/gconvert.h" +typedef struct _GIConv *GIConv; + +GIConv g_iconv_open (const gchar *to_codeset, + const gchar *from_codeset); +gsize g_iconv (GIConv converter, + gchar **inbuf, + gsize *inbytes_left, + gchar **outbuf, + gsize *outbytes_left); +gint g_iconv_close (GIConv converter); + + +gchar* g_convert (const gchar *str, + gssize len, + const gchar *to_codeset, + const gchar *from_codeset, + gsize *bytes_read, + gsize *bytes_written, + GError **error) __attribute__((__malloc__)); +gchar* g_convert_with_iconv (const gchar *str, + gssize len, + GIConv converter, + gsize *bytes_read, + gsize *bytes_written, + GError **error) __attribute__((__malloc__)); +gchar* g_convert_with_fallback (const gchar *str, + gssize len, + const gchar *to_codeset, + const gchar *from_codeset, + const gchar *fallback, + gsize *bytes_read, + gsize *bytes_written, + GError **error) __attribute__((__malloc__)); + + + + +gchar* g_locale_to_utf8 (const gchar *opsysstring, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error) __attribute__((__malloc__)); +gchar* g_locale_from_utf8 (const gchar *utf8string, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error) __attribute__((__malloc__)); +# 137 "/usr/include/glib-2.0/glib/gconvert.h" +gchar* g_filename_to_utf8 (const gchar *opsysstring, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error) __attribute__((__malloc__)); +gchar* g_filename_from_utf8 (const gchar *utf8string, + gssize len, + gsize *bytes_read, + gsize *bytes_written, + GError **error) __attribute__((__malloc__)); + +gchar *g_filename_from_uri (const gchar *uri, + gchar **hostname, + GError **error) __attribute__((__malloc__)); + +gchar *g_filename_to_uri (const gchar *filename, + const gchar *hostname, + GError **error) __attribute__((__malloc__)); +gchar *g_filename_display_name (const gchar *filename) __attribute__((__malloc__)); +gboolean g_get_filename_charsets (const gchar ***charsets); + +gchar *g_filename_display_basename (const gchar *filename) __attribute__((__malloc__)); + +gchar **g_uri_list_extract_uris (const gchar *uri_list) __attribute__((__malloc__)); + + +# 44 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gdataset.h" 1 +# 34 "/usr/include/glib-2.0/glib/gdataset.h" +# 1 "/usr/include/glib-2.0/glib/gquark.h" 1 +# 35 "/usr/include/glib-2.0/glib/gdataset.h" 2 + + + +typedef struct _GData GData; + +typedef void (*GDataForeachFunc) (GQuark key_id, + gpointer data, + gpointer user_data); + + + +void g_datalist_init (GData **datalist); +void g_datalist_clear (GData **datalist); +gpointer g_datalist_id_get_data (GData **datalist, + GQuark key_id); +void g_datalist_id_set_data_full (GData **datalist, + GQuark key_id, + gpointer data, + GDestroyNotify destroy_func); +gpointer g_datalist_id_remove_no_notify (GData **datalist, + GQuark key_id); +void g_datalist_foreach (GData **datalist, + GDataForeachFunc func, + gpointer user_data); +# 69 "/usr/include/glib-2.0/glib/gdataset.h" +void g_datalist_set_flags (GData **datalist, + guint flags); +void g_datalist_unset_flags (GData **datalist, + guint flags); +guint g_datalist_get_flags (GData **datalist); +# 91 "/usr/include/glib-2.0/glib/gdataset.h" +void g_dataset_destroy (gconstpointer dataset_location); +gpointer g_dataset_id_get_data (gconstpointer dataset_location, + GQuark key_id); +gpointer g_datalist_get_data (GData **datalist, + const gchar *key); +void g_dataset_id_set_data_full (gconstpointer dataset_location, + GQuark key_id, + gpointer data, + GDestroyNotify destroy_func); +gpointer g_dataset_id_remove_no_notify (gconstpointer dataset_location, + GQuark key_id); +void g_dataset_foreach (gconstpointer dataset_location, + GDataForeachFunc func, + gpointer user_data); +# 120 "/usr/include/glib-2.0/glib/gdataset.h" + +# 45 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gdate.h" 1 +# 36 "/usr/include/glib-2.0/glib/gdate.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 37 "/usr/include/glib-2.0/glib/gdate.h" 2 +# 1 "/usr/include/glib-2.0/glib/gquark.h" 1 +# 38 "/usr/include/glib-2.0/glib/gdate.h" 2 + + +# 50 "/usr/include/glib-2.0/glib/gdate.h" +typedef gint32 GTime; +typedef guint16 GDateYear; +typedef guint8 GDateDay; +typedef struct _GDate GDate; + + +typedef enum +{ + G_DATE_DAY = 0, + G_DATE_MONTH = 1, + G_DATE_YEAR = 2 +} GDateDMY; + + +typedef enum +{ + G_DATE_BAD_WEEKDAY = 0, + G_DATE_MONDAY = 1, + G_DATE_TUESDAY = 2, + G_DATE_WEDNESDAY = 3, + G_DATE_THURSDAY = 4, + G_DATE_FRIDAY = 5, + G_DATE_SATURDAY = 6, + G_DATE_SUNDAY = 7 +} GDateWeekday; +typedef enum +{ + G_DATE_BAD_MONTH = 0, + G_DATE_JANUARY = 1, + G_DATE_FEBRUARY = 2, + G_DATE_MARCH = 3, + G_DATE_APRIL = 4, + G_DATE_MAY = 5, + G_DATE_JUNE = 6, + G_DATE_JULY = 7, + G_DATE_AUGUST = 8, + G_DATE_SEPTEMBER = 9, + G_DATE_OCTOBER = 10, + G_DATE_NOVEMBER = 11, + G_DATE_DECEMBER = 12 +} GDateMonth; +# 101 "/usr/include/glib-2.0/glib/gdate.h" +struct _GDate +{ + guint julian_days : 32; + + + + + + guint julian : 1; + guint dmy : 1; + + + guint day : 6; + guint month : 4; + guint year : 16; +}; + + + + + +GDate* g_date_new (void); +GDate* g_date_new_dmy (GDateDay day, + GDateMonth month, + GDateYear year); +GDate* g_date_new_julian (guint32 julian_day); +void g_date_free (GDate *date); + + + + + + +gboolean g_date_valid (const GDate *date); +gboolean g_date_valid_day (GDateDay day) __attribute__((__const__)); +gboolean g_date_valid_month (GDateMonth month) __attribute__((__const__)); +gboolean g_date_valid_year (GDateYear year) __attribute__((__const__)); +gboolean g_date_valid_weekday (GDateWeekday weekday) __attribute__((__const__)); +gboolean g_date_valid_julian (guint32 julian_date) __attribute__((__const__)); +gboolean g_date_valid_dmy (GDateDay day, + GDateMonth month, + GDateYear year) __attribute__((__const__)); + +GDateWeekday g_date_get_weekday (const GDate *date); +GDateMonth g_date_get_month (const GDate *date); +GDateYear g_date_get_year (const GDate *date); +GDateDay g_date_get_day (const GDate *date); +guint32 g_date_get_julian (const GDate *date); +guint g_date_get_day_of_year (const GDate *date); + + + + + + +guint g_date_get_monday_week_of_year (const GDate *date); +guint g_date_get_sunday_week_of_year (const GDate *date); +guint g_date_get_iso8601_week_of_year (const GDate *date); + + + + + +void g_date_clear (GDate *date, + guint n_dates); + + + + + +void g_date_set_parse (GDate *date, + const gchar *str); +void g_date_set_time_t (GDate *date, + time_t timet); +void g_date_set_time_val (GDate *date, + GTimeVal *timeval); + +__attribute__((__deprecated__("Use '" "g_date_set_time_t" "' instead"))) +void g_date_set_time (GDate *date, + GTime time_); + +void g_date_set_month (GDate *date, + GDateMonth month); +void g_date_set_day (GDate *date, + GDateDay day); +void g_date_set_year (GDate *date, + GDateYear year); +void g_date_set_dmy (GDate *date, + GDateDay day, + GDateMonth month, + GDateYear y); +void g_date_set_julian (GDate *date, + guint32 julian_date); +gboolean g_date_is_first_of_month (const GDate *date); +gboolean g_date_is_last_of_month (const GDate *date); + + +void g_date_add_days (GDate *date, + guint n_days); +void g_date_subtract_days (GDate *date, + guint n_days); + + +void g_date_add_months (GDate *date, + guint n_months); +void g_date_subtract_months (GDate *date, + guint n_months); + + +void g_date_add_years (GDate *date, + guint n_years); +void g_date_subtract_years (GDate *date, + guint n_years); +gboolean g_date_is_leap_year (GDateYear year) __attribute__((__const__)); +guint8 g_date_get_days_in_month (GDateMonth month, + GDateYear year) __attribute__((__const__)); +guint8 g_date_get_monday_weeks_in_year (GDateYear year) __attribute__((__const__)); +guint8 g_date_get_sunday_weeks_in_year (GDateYear year) __attribute__((__const__)); + + + +gint g_date_days_between (const GDate *date1, + const GDate *date2); + + +gint g_date_compare (const GDate *lhs, + const GDate *rhs); +void g_date_to_struct_tm (const GDate *date, + struct tm *tm); + +void g_date_clamp (GDate *date, + const GDate *min_date, + const GDate *max_date); + + +void g_date_order (GDate *date1, GDate *date2); + + + + +gsize g_date_strftime (gchar *s, + gsize slen, + const gchar *format, + const GDate *date); +# 262 "/usr/include/glib-2.0/glib/gdate.h" + +# 46 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gdatetime.h" 1 +# 33 "/usr/include/glib-2.0/glib/gdatetime.h" +# 1 "/usr/include/glib-2.0/glib/gtimezone.h" 1 +# 29 "/usr/include/glib-2.0/glib/gtimezone.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 30 "/usr/include/glib-2.0/glib/gtimezone.h" 2 + + + +typedef struct _GTimeZone GTimeZone; +# 50 "/usr/include/glib-2.0/glib/gtimezone.h" +typedef enum +{ + G_TIME_TYPE_STANDARD, + G_TIME_TYPE_DAYLIGHT, + G_TIME_TYPE_UNIVERSAL +} GTimeType; + +GTimeZone * g_time_zone_new (const gchar *identifier); +GTimeZone * g_time_zone_new_utc (void); +GTimeZone * g_time_zone_new_local (void); + +GTimeZone * g_time_zone_ref (GTimeZone *tz); +void g_time_zone_unref (GTimeZone *tz); + +gint g_time_zone_find_interval (GTimeZone *tz, + GTimeType type, + gint64 time_); + +gint g_time_zone_adjust_time (GTimeZone *tz, + GTimeType type, + gint64 *time_); + +const gchar * g_time_zone_get_abbreviation (GTimeZone *tz, + gint interval); +gint32 g_time_zone_get_offset (GTimeZone *tz, + gint interval); +gboolean g_time_zone_is_dst (GTimeZone *tz, + gint interval); + + +# 34 "/usr/include/glib-2.0/glib/gdatetime.h" 2 + + +# 89 "/usr/include/glib-2.0/glib/gdatetime.h" +typedef gint64 GTimeSpan; +# 99 "/usr/include/glib-2.0/glib/gdatetime.h" +typedef struct _GDateTime GDateTime; + +void g_date_time_unref (GDateTime *datetime); +GDateTime * g_date_time_ref (GDateTime *datetime); + +GDateTime * g_date_time_new_now (GTimeZone *tz); +GDateTime * g_date_time_new_now_local (void); +GDateTime * g_date_time_new_now_utc (void); + +GDateTime * g_date_time_new_from_unix_local (gint64 t); +GDateTime * g_date_time_new_from_unix_utc (gint64 t); + +GDateTime * g_date_time_new_from_timeval_local (const GTimeVal *tv); +GDateTime * g_date_time_new_from_timeval_utc (const GTimeVal *tv); + +GDateTime * g_date_time_new (GTimeZone *tz, + gint year, + gint month, + gint day, + gint hour, + gint minute, + gdouble seconds); +GDateTime * g_date_time_new_local (gint year, + gint month, + gint day, + gint hour, + gint minute, + gdouble seconds); +GDateTime * g_date_time_new_utc (gint year, + gint month, + gint day, + gint hour, + gint minute, + gdouble seconds); + +__attribute__((warn_unused_result)) +GDateTime * g_date_time_add (GDateTime *datetime, + GTimeSpan timespan); + +__attribute__((warn_unused_result)) +GDateTime * g_date_time_add_years (GDateTime *datetime, + gint years); +__attribute__((warn_unused_result)) +GDateTime * g_date_time_add_months (GDateTime *datetime, + gint months); +__attribute__((warn_unused_result)) +GDateTime * g_date_time_add_weeks (GDateTime *datetime, + gint weeks); +__attribute__((warn_unused_result)) +GDateTime * g_date_time_add_days (GDateTime *datetime, + gint days); + +__attribute__((warn_unused_result)) +GDateTime * g_date_time_add_hours (GDateTime *datetime, + gint hours); +__attribute__((warn_unused_result)) +GDateTime * g_date_time_add_minutes (GDateTime *datetime, + gint minutes); +__attribute__((warn_unused_result)) +GDateTime * g_date_time_add_seconds (GDateTime *datetime, + gdouble seconds); + +__attribute__((warn_unused_result)) +GDateTime * g_date_time_add_full (GDateTime *datetime, + gint years, + gint months, + gint days, + gint hours, + gint minutes, + gdouble seconds); + +gint g_date_time_compare (gconstpointer dt1, + gconstpointer dt2); +GTimeSpan g_date_time_difference (GDateTime *end, + GDateTime *begin); +guint g_date_time_hash (gconstpointer datetime); +gboolean g_date_time_equal (gconstpointer dt1, + gconstpointer dt2); + +void g_date_time_get_ymd (GDateTime *datetime, + gint *year, + gint *month, + gint *day); + +gint g_date_time_get_year (GDateTime *datetime); +gint g_date_time_get_month (GDateTime *datetime); +gint g_date_time_get_day_of_month (GDateTime *datetime); + +gint g_date_time_get_week_numbering_year (GDateTime *datetime); +gint g_date_time_get_week_of_year (GDateTime *datetime); +gint g_date_time_get_day_of_week (GDateTime *datetime); + +gint g_date_time_get_day_of_year (GDateTime *datetime); + +gint g_date_time_get_hour (GDateTime *datetime); +gint g_date_time_get_minute (GDateTime *datetime); +gint g_date_time_get_second (GDateTime *datetime); +gint g_date_time_get_microsecond (GDateTime *datetime); +gdouble g_date_time_get_seconds (GDateTime *datetime); + +gint64 g_date_time_to_unix (GDateTime *datetime); +gboolean g_date_time_to_timeval (GDateTime *datetime, + GTimeVal *tv); + +GTimeSpan g_date_time_get_utc_offset (GDateTime *datetime); +const gchar * g_date_time_get_timezone_abbreviation (GDateTime *datetime); +gboolean g_date_time_is_daylight_savings (GDateTime *datetime); + +GDateTime * g_date_time_to_timezone (GDateTime *datetime, + GTimeZone *tz); +GDateTime * g_date_time_to_local (GDateTime *datetime); +GDateTime * g_date_time_to_utc (GDateTime *datetime); + +gchar * g_date_time_format (GDateTime *datetime, + const gchar *format) __attribute__((__malloc__)); + + +# 47 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gdir.h" 1 +# 31 "/usr/include/glib-2.0/glib/gdir.h" +# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 +# 32 "/usr/include/glib-2.0/glib/gdir.h" 2 + + + +typedef struct _GDir GDir; +# 45 "/usr/include/glib-2.0/glib/gdir.h" +GDir * g_dir_open (const gchar *path, + guint flags, + GError **error); +const gchar * g_dir_read_name (GDir *dir); +void g_dir_rewind (GDir *dir); +void g_dir_close (GDir *dir); + + +# 48 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/genviron.h" 1 +# 34 "/usr/include/glib-2.0/glib/genviron.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/genviron.h" 2 + + +# 46 "/usr/include/glib-2.0/glib/genviron.h" +const gchar * g_getenv (const gchar *variable); +gboolean g_setenv (const gchar *variable, + const gchar *value, + gboolean overwrite); +void g_unsetenv (const gchar *variable); +gchar ** g_listenv (void); + +gchar ** g_get_environ (void); +const gchar * g_environ_getenv (gchar **envp, + const gchar *variable); +gchar ** g_environ_setenv (gchar **envp, + const gchar *variable, + const gchar *value, + gboolean overwrite) __attribute__((warn_unused_result)); +gchar ** g_environ_unsetenv (gchar **envp, + const gchar *variable) __attribute__((warn_unused_result)); + + +# 49 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 +# 50 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gfileutils.h" 1 +# 28 "/usr/include/glib-2.0/glib/gfileutils.h" +# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 +# 29 "/usr/include/glib-2.0/glib/gfileutils.h" 2 + + + + + +typedef enum +{ + G_FILE_ERROR_EXIST, + G_FILE_ERROR_ISDIR, + G_FILE_ERROR_ACCES, + G_FILE_ERROR_NAMETOOLONG, + G_FILE_ERROR_NOENT, + G_FILE_ERROR_NOTDIR, + G_FILE_ERROR_NXIO, + G_FILE_ERROR_NODEV, + G_FILE_ERROR_ROFS, + G_FILE_ERROR_TXTBSY, + G_FILE_ERROR_FAULT, + G_FILE_ERROR_LOOP, + G_FILE_ERROR_NOSPC, + G_FILE_ERROR_NOMEM, + G_FILE_ERROR_MFILE, + G_FILE_ERROR_NFILE, + G_FILE_ERROR_BADF, + G_FILE_ERROR_INVAL, + G_FILE_ERROR_PIPE, + G_FILE_ERROR_AGAIN, + G_FILE_ERROR_INTR, + G_FILE_ERROR_IO, + G_FILE_ERROR_PERM, + G_FILE_ERROR_NOSYS, + G_FILE_ERROR_FAILED +} GFileError; + + + + + +typedef enum +{ + G_FILE_TEST_IS_REGULAR = 1 << 0, + G_FILE_TEST_IS_SYMLINK = 1 << 1, + G_FILE_TEST_IS_DIR = 1 << 2, + G_FILE_TEST_IS_EXECUTABLE = 1 << 3, + G_FILE_TEST_EXISTS = 1 << 4 +} GFileTest; + +GQuark g_file_error_quark (void); + +GFileError g_file_error_from_errno (gint err_no); +# 89 "/usr/include/glib-2.0/glib/gfileutils.h" +gboolean g_file_test (const gchar *filename, + GFileTest test); +gboolean g_file_get_contents (const gchar *filename, + gchar **contents, + gsize *length, + GError **error); +gboolean g_file_set_contents (const gchar *filename, + const gchar *contents, + gssize length, + GError **error); +gchar *g_file_read_link (const gchar *filename, + GError **error); + + + +gchar *g_mkdtemp (gchar *tmpl); + +gchar *g_mkdtemp_full (gchar *tmpl, + gint mode); + + +gint g_mkstemp (gchar *tmpl); +gint g_mkstemp_full (gchar *tmpl, + gint flags, + gint mode); + + +gint g_file_open_tmp (const gchar *tmpl, + gchar **name_used, + GError **error); + +gchar *g_dir_make_tmp (const gchar *tmpl, + GError **error); + +gchar *g_build_path (const gchar *separator, + const gchar *first_element, + ...) __attribute__((__malloc__)) __attribute__((__sentinel__)); +gchar *g_build_pathv (const gchar *separator, + gchar **args) __attribute__((__malloc__)); + +gchar *g_build_filename (const gchar *first_element, + ...) __attribute__((__malloc__)) __attribute__((__sentinel__)); +gchar *g_build_filenamev (gchar **args) __attribute__((__malloc__)); + +gint g_mkdir_with_parents (const gchar *pathname, + gint mode); +# 158 "/usr/include/glib-2.0/glib/gfileutils.h" +gboolean g_path_is_absolute (const gchar *file_name); +const gchar *g_path_skip_root (const gchar *file_name); + +__attribute__((__deprecated__("Use '" "g_path_get_basename" "' instead"))) +const gchar *g_basename (const gchar *file_name); +# 173 "/usr/include/glib-2.0/glib/gfileutils.h" +gchar *g_get_current_dir (void); +gchar *g_path_get_basename (const gchar *file_name) __attribute__((__malloc__)); +gchar *g_path_get_dirname (const gchar *file_name) __attribute__((__malloc__)); + + +# 51 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/ggettext.h" 1 +# 34 "/usr/include/glib-2.0/glib/ggettext.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/ggettext.h" 2 + + + +const gchar *g_strip_context (const gchar *msgid, + const gchar *msgval) __attribute__((__format_arg__ (1))); + +const gchar *g_dgettext (const gchar *domain, + const gchar *msgid) __attribute__((__format_arg__ (2))); +const gchar *g_dcgettext (const gchar *domain, + const gchar *msgid, + gint category) __attribute__((__format_arg__ (2))); +const gchar *g_dngettext (const gchar *domain, + const gchar *msgid, + const gchar *msgid_plural, + gulong n) __attribute__((__format_arg__ (3))); +const gchar *g_dpgettext (const gchar *domain, + const gchar *msgctxtid, + gsize msgidoffset) __attribute__((__format_arg__ (2))); +const gchar *g_dpgettext2 (const gchar *domain, + const gchar *context, + const gchar *msgid) __attribute__((__format_arg__ (3))); + + +# 52 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/ghash.h" 1 +# 34 "/usr/include/glib-2.0/glib/ghash.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/ghash.h" 2 +# 1 "/usr/include/glib-2.0/glib/glist.h" 1 +# 34 "/usr/include/glib-2.0/glib/glist.h" +# 1 "/usr/include/glib-2.0/glib/gmem.h" 1 +# 34 "/usr/include/glib-2.0/glib/gmem.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/gmem.h" 2 + + +# 51 "/usr/include/glib-2.0/glib/gmem.h" +typedef struct _GMemVTable GMemVTable; +# 70 "/usr/include/glib-2.0/glib/gmem.h" +void g_free (gpointer mem); + +gpointer g_malloc (gsize n_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1))); +gpointer g_malloc0 (gsize n_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1))); +gpointer g_realloc (gpointer mem, + gsize n_bytes) __attribute__((warn_unused_result)); +gpointer g_try_malloc (gsize n_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1))); +gpointer g_try_malloc0 (gsize n_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1))); +gpointer g_try_realloc (gpointer mem, + gsize n_bytes) __attribute__((warn_unused_result)); + +gpointer g_malloc_n (gsize n_blocks, + gsize n_block_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1,2))); +gpointer g_malloc0_n (gsize n_blocks, + gsize n_block_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1,2))); +gpointer g_realloc_n (gpointer mem, + gsize n_blocks, + gsize n_block_bytes) __attribute__((warn_unused_result)); +gpointer g_try_malloc_n (gsize n_blocks, + gsize n_block_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1,2))); +gpointer g_try_malloc0_n (gsize n_blocks, + gsize n_block_bytes) __attribute__((__malloc__)) __attribute__((__alloc_size__(1,2))); +gpointer g_try_realloc_n (gpointer mem, + gsize n_blocks, + gsize n_block_bytes) __attribute__((warn_unused_result)); +# 240 "/usr/include/glib-2.0/glib/gmem.h" +struct _GMemVTable { + gpointer (*malloc) (gsize n_bytes); + gpointer (*realloc) (gpointer mem, + gsize n_bytes); + void (*free) (gpointer mem); + + gpointer (*calloc) (gsize n_blocks, + gsize n_block_bytes); + gpointer (*try_malloc) (gsize n_bytes); + gpointer (*try_realloc) (gpointer mem, + gsize n_bytes); +}; +void g_mem_set_vtable (GMemVTable *vtable); +gboolean g_mem_is_system_malloc (void); + +extern gboolean g_mem_gc_friendly; + + + +extern GMemVTable *glib_mem_profiler_table; +void g_mem_profile (void); + + +# 35 "/usr/include/glib-2.0/glib/glist.h" 2 + + + +typedef struct _GList GList; + +struct _GList +{ + gpointer data; + GList *next; + GList *prev; +}; + + + +GList* g_list_alloc (void) __attribute__((warn_unused_result)); +void g_list_free (GList *list); +void g_list_free_1 (GList *list); + +void g_list_free_full (GList *list, + GDestroyNotify free_func); +GList* g_list_append (GList *list, + gpointer data) __attribute__((warn_unused_result)); +GList* g_list_prepend (GList *list, + gpointer data) __attribute__((warn_unused_result)); +GList* g_list_insert (GList *list, + gpointer data, + gint position) __attribute__((warn_unused_result)); +GList* g_list_insert_sorted (GList *list, + gpointer data, + GCompareFunc func) __attribute__((warn_unused_result)); +GList* g_list_insert_sorted_with_data (GList *list, + gpointer data, + GCompareDataFunc func, + gpointer user_data) __attribute__((warn_unused_result)); +GList* g_list_insert_before (GList *list, + GList *sibling, + gpointer data) __attribute__((warn_unused_result)); +GList* g_list_concat (GList *list1, + GList *list2) __attribute__((warn_unused_result)); +GList* g_list_remove (GList *list, + gconstpointer data) __attribute__((warn_unused_result)); +GList* g_list_remove_all (GList *list, + gconstpointer data) __attribute__((warn_unused_result)); +GList* g_list_remove_link (GList *list, + GList *llink) __attribute__((warn_unused_result)); +GList* g_list_delete_link (GList *list, + GList *link_) __attribute__((warn_unused_result)); +GList* g_list_reverse (GList *list) __attribute__((warn_unused_result)); +GList* g_list_copy (GList *list) __attribute__((warn_unused_result)); +GList* g_list_nth (GList *list, + guint n); +GList* g_list_nth_prev (GList *list, + guint n); +GList* g_list_find (GList *list, + gconstpointer data); +GList* g_list_find_custom (GList *list, + gconstpointer data, + GCompareFunc func); +gint g_list_position (GList *list, + GList *llink); +gint g_list_index (GList *list, + gconstpointer data); +GList* g_list_last (GList *list); +GList* g_list_first (GList *list); +guint g_list_length (GList *list); +void g_list_foreach (GList *list, + GFunc func, + gpointer user_data); +GList* g_list_sort (GList *list, + GCompareFunc compare_func) __attribute__((warn_unused_result)); +GList* g_list_sort_with_data (GList *list, + GCompareDataFunc compare_func, + gpointer user_data) __attribute__((warn_unused_result)); +gpointer g_list_nth_data (GList *list, + guint n); + + + + + + +# 36 "/usr/include/glib-2.0/glib/ghash.h" 2 + + + +typedef struct _GHashTable GHashTable; + +typedef gboolean (*GHRFunc) (gpointer key, + gpointer value, + gpointer user_data); + +typedef struct _GHashTableIter GHashTableIter; + +struct _GHashTableIter +{ + + gpointer dummy1; + gpointer dummy2; + gpointer dummy3; + int dummy4; + gboolean dummy5; + gpointer dummy6; +}; + +GHashTable* g_hash_table_new (GHashFunc hash_func, + GEqualFunc key_equal_func); +GHashTable* g_hash_table_new_full (GHashFunc hash_func, + GEqualFunc key_equal_func, + GDestroyNotify key_destroy_func, + GDestroyNotify value_destroy_func); +void g_hash_table_destroy (GHashTable *hash_table); +void g_hash_table_insert (GHashTable *hash_table, + gpointer key, + gpointer value); +void g_hash_table_replace (GHashTable *hash_table, + gpointer key, + gpointer value); +void g_hash_table_add (GHashTable *hash_table, + gpointer key); +gboolean g_hash_table_remove (GHashTable *hash_table, + gconstpointer key); +void g_hash_table_remove_all (GHashTable *hash_table); +gboolean g_hash_table_steal (GHashTable *hash_table, + gconstpointer key); +void g_hash_table_steal_all (GHashTable *hash_table); +gpointer g_hash_table_lookup (GHashTable *hash_table, + gconstpointer key); +gboolean g_hash_table_contains (GHashTable *hash_table, + gconstpointer key); +gboolean g_hash_table_lookup_extended (GHashTable *hash_table, + gconstpointer lookup_key, + gpointer *orig_key, + gpointer *value); +void g_hash_table_foreach (GHashTable *hash_table, + GHFunc func, + gpointer user_data); +gpointer g_hash_table_find (GHashTable *hash_table, + GHRFunc predicate, + gpointer user_data); +guint g_hash_table_foreach_remove (GHashTable *hash_table, + GHRFunc func, + gpointer user_data); +guint g_hash_table_foreach_steal (GHashTable *hash_table, + GHRFunc func, + gpointer user_data); +guint g_hash_table_size (GHashTable *hash_table); +GList * g_hash_table_get_keys (GHashTable *hash_table); +GList * g_hash_table_get_values (GHashTable *hash_table); + +void g_hash_table_iter_init (GHashTableIter *iter, + GHashTable *hash_table); +gboolean g_hash_table_iter_next (GHashTableIter *iter, + gpointer *key, + gpointer *value); +GHashTable* g_hash_table_iter_get_hash_table (GHashTableIter *iter); +void g_hash_table_iter_remove (GHashTableIter *iter); + +void g_hash_table_iter_replace (GHashTableIter *iter, + gpointer value); +void g_hash_table_iter_steal (GHashTableIter *iter); + +GHashTable* g_hash_table_ref (GHashTable *hash_table); +void g_hash_table_unref (GHashTable *hash_table); +# 125 "/usr/include/glib-2.0/glib/ghash.h" +gboolean g_str_equal (gconstpointer v1, + gconstpointer v2); +guint g_str_hash (gconstpointer v); + +gboolean g_int_equal (gconstpointer v1, + gconstpointer v2); +guint g_int_hash (gconstpointer v); + +gboolean g_int64_equal (gconstpointer v1, + gconstpointer v2); +guint g_int64_hash (gconstpointer v); + +gboolean g_double_equal (gconstpointer v1, + gconstpointer v2); +guint g_double_hash (gconstpointer v); + +guint g_direct_hash (gconstpointer v) __attribute__((__const__)); +gboolean g_direct_equal (gconstpointer v1, + gconstpointer v2) __attribute__((__const__)); + + +# 53 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/ghmac.h" 1 +# 28 "/usr/include/glib-2.0/glib/ghmac.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 29 "/usr/include/glib-2.0/glib/ghmac.h" 2 +# 1 "/usr/include/glib-2.0/glib/gchecksum.h" 1 +# 30 "/usr/include/glib-2.0/glib/ghmac.h" 2 + + +# 42 "/usr/include/glib-2.0/glib/ghmac.h" +typedef struct _GHmac GHmac; + + +GHmac * g_hmac_new (GChecksumType digest_type, + const guchar *key, + gsize key_len); + +GHmac * g_hmac_copy (const GHmac *hmac); + +GHmac * g_hmac_ref (GHmac *hmac); + +void g_hmac_unref (GHmac *hmac); + +void g_hmac_update (GHmac *hmac, + const guchar *data, + gssize length); + +const gchar * g_hmac_get_string (GHmac *hmac); + +void g_hmac_get_digest (GHmac *hmac, + guint8 *buffer, + gsize *digest_len); + + +gchar *g_compute_hmac_for_data (GChecksumType digest_type, + const guchar *key, + gsize key_len, + const guchar *data, + gsize length); + +gchar *g_compute_hmac_for_string (GChecksumType digest_type, + const guchar *key, + gsize key_len, + const gchar *str, + gssize length); + + +# 54 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/ghook.h" 1 +# 34 "/usr/include/glib-2.0/glib/ghook.h" +# 1 "/usr/include/glib-2.0/glib/gmem.h" 1 +# 35 "/usr/include/glib-2.0/glib/ghook.h" 2 + + + + + +typedef struct _GHook GHook; +typedef struct _GHookList GHookList; + +typedef gint (*GHookCompareFunc) (GHook *new_hook, + GHook *sibling); +typedef gboolean (*GHookFindFunc) (GHook *hook, + gpointer data); +typedef void (*GHookMarshaller) (GHook *hook, + gpointer marshal_data); +typedef gboolean (*GHookCheckMarshaller) (GHook *hook, + gpointer marshal_data); +typedef void (*GHookFunc) (gpointer data); +typedef gboolean (*GHookCheckFunc) (gpointer data); +typedef void (*GHookFinalizeFunc) (GHookList *hook_list, + GHook *hook); +typedef enum +{ + G_HOOK_FLAG_ACTIVE = 1 << 0, + G_HOOK_FLAG_IN_CALL = 1 << 1, + G_HOOK_FLAG_MASK = 0x0f +} GHookFlagMask; + + + + +struct _GHookList +{ + gulong seq_id; + guint hook_size : 16; + guint is_setup : 1; + GHook *hooks; + gpointer dummy3; + GHookFinalizeFunc finalize_hook; + gpointer dummy[2]; +}; +struct _GHook +{ + gpointer data; + GHook *next; + GHook *prev; + guint ref_count; + gulong hook_id; + guint flags; + gpointer func; + GDestroyNotify destroy; +}; +# 106 "/usr/include/glib-2.0/glib/ghook.h" +void g_hook_list_init (GHookList *hook_list, + guint hook_size); +void g_hook_list_clear (GHookList *hook_list); +GHook* g_hook_alloc (GHookList *hook_list); +void g_hook_free (GHookList *hook_list, + GHook *hook); +GHook * g_hook_ref (GHookList *hook_list, + GHook *hook); +void g_hook_unref (GHookList *hook_list, + GHook *hook); +gboolean g_hook_destroy (GHookList *hook_list, + gulong hook_id); +void g_hook_destroy_link (GHookList *hook_list, + GHook *hook); +void g_hook_prepend (GHookList *hook_list, + GHook *hook); +void g_hook_insert_before (GHookList *hook_list, + GHook *sibling, + GHook *hook); +void g_hook_insert_sorted (GHookList *hook_list, + GHook *hook, + GHookCompareFunc func); +GHook* g_hook_get (GHookList *hook_list, + gulong hook_id); +GHook* g_hook_find (GHookList *hook_list, + gboolean need_valids, + GHookFindFunc func, + gpointer data); +GHook* g_hook_find_data (GHookList *hook_list, + gboolean need_valids, + gpointer data); +GHook* g_hook_find_func (GHookList *hook_list, + gboolean need_valids, + gpointer func); +GHook* g_hook_find_func_data (GHookList *hook_list, + gboolean need_valids, + gpointer func, + gpointer data); + +GHook* g_hook_first_valid (GHookList *hook_list, + gboolean may_be_in_call); + + + +GHook* g_hook_next_valid (GHookList *hook_list, + GHook *hook, + gboolean may_be_in_call); + +gint g_hook_compare_ids (GHook *new_hook, + GHook *sibling); + + + + + +void g_hook_list_invoke (GHookList *hook_list, + gboolean may_recurse); + + + +void g_hook_list_invoke_check (GHookList *hook_list, + gboolean may_recurse); + + +void g_hook_list_marshal (GHookList *hook_list, + gboolean may_recurse, + GHookMarshaller marshaller, + gpointer marshal_data); +void g_hook_list_marshal_check (GHookList *hook_list, + gboolean may_recurse, + GHookCheckMarshaller marshaller, + gpointer marshal_data); + + +# 55 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/ghostutils.h" 1 +# 27 "/usr/include/glib-2.0/glib/ghostutils.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 28 "/usr/include/glib-2.0/glib/ghostutils.h" 2 + + + +gboolean g_hostname_is_non_ascii (const gchar *hostname); +gboolean g_hostname_is_ascii_encoded (const gchar *hostname); +gboolean g_hostname_is_ip_address (const gchar *hostname); + +gchar *g_hostname_to_ascii (const gchar *hostname); +gchar *g_hostname_to_unicode (const gchar *hostname); + + +# 56 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/giochannel.h" 1 +# 34 "/usr/include/glib-2.0/glib/giochannel.h" +# 1 "/usr/include/glib-2.0/glib/gconvert.h" 1 +# 35 "/usr/include/glib-2.0/glib/giochannel.h" 2 +# 1 "/usr/include/glib-2.0/glib/gmain.h" 1 +# 27 "/usr/include/glib-2.0/glib/gmain.h" +# 1 "/usr/include/glib-2.0/glib/gpoll.h" 1 +# 27 "/usr/include/glib-2.0/glib/gpoll.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 28 "/usr/include/glib-2.0/glib/gpoll.h" 2 + + +# 61 "/usr/include/glib-2.0/glib/gpoll.h" +typedef struct _GPollFD GPollFD; +# 76 "/usr/include/glib-2.0/glib/gpoll.h" +typedef gint (*GPollFunc) (GPollFD *ufds, + guint nfsd, + gint timeout_); +# 93 "/usr/include/glib-2.0/glib/gpoll.h" +struct _GPollFD +{ + + + + gint fd; + + gushort events; + gushort revents; +}; +# 114 "/usr/include/glib-2.0/glib/gpoll.h" +gint g_poll (GPollFD *fds, + guint nfds, + gint timeout); + + +# 28 "/usr/include/glib-2.0/glib/gmain.h" 2 +# 1 "/usr/include/glib-2.0/glib/gslist.h" 1 +# 34 "/usr/include/glib-2.0/glib/gslist.h" +# 1 "/usr/include/glib-2.0/glib/gmem.h" 1 +# 35 "/usr/include/glib-2.0/glib/gslist.h" 2 + + + +typedef struct _GSList GSList; + +struct _GSList +{ + gpointer data; + GSList *next; +}; + + + +GSList* g_slist_alloc (void) __attribute__((warn_unused_result)); +void g_slist_free (GSList *list); +void g_slist_free_1 (GSList *list); + +void g_slist_free_full (GSList *list, + GDestroyNotify free_func); +GSList* g_slist_append (GSList *list, + gpointer data) __attribute__((warn_unused_result)); +GSList* g_slist_prepend (GSList *list, + gpointer data) __attribute__((warn_unused_result)); +GSList* g_slist_insert (GSList *list, + gpointer data, + gint position) __attribute__((warn_unused_result)); +GSList* g_slist_insert_sorted (GSList *list, + gpointer data, + GCompareFunc func) __attribute__((warn_unused_result)); +GSList* g_slist_insert_sorted_with_data (GSList *list, + gpointer data, + GCompareDataFunc func, + gpointer user_data) __attribute__((warn_unused_result)); +GSList* g_slist_insert_before (GSList *slist, + GSList *sibling, + gpointer data) __attribute__((warn_unused_result)); +GSList* g_slist_concat (GSList *list1, + GSList *list2) __attribute__((warn_unused_result)); +GSList* g_slist_remove (GSList *list, + gconstpointer data) __attribute__((warn_unused_result)); +GSList* g_slist_remove_all (GSList *list, + gconstpointer data) __attribute__((warn_unused_result)); +GSList* g_slist_remove_link (GSList *list, + GSList *link_) __attribute__((warn_unused_result)); +GSList* g_slist_delete_link (GSList *list, + GSList *link_) __attribute__((warn_unused_result)); +GSList* g_slist_reverse (GSList *list) __attribute__((warn_unused_result)); +GSList* g_slist_copy (GSList *list) __attribute__((warn_unused_result)); +GSList* g_slist_nth (GSList *list, + guint n); +GSList* g_slist_find (GSList *list, + gconstpointer data); +GSList* g_slist_find_custom (GSList *list, + gconstpointer data, + GCompareFunc func); +gint g_slist_position (GSList *list, + GSList *llink); +gint g_slist_index (GSList *list, + gconstpointer data); +GSList* g_slist_last (GSList *list); +guint g_slist_length (GSList *list); +void g_slist_foreach (GSList *list, + GFunc func, + gpointer user_data); +GSList* g_slist_sort (GSList *list, + GCompareFunc compare_func) __attribute__((warn_unused_result)); +GSList* g_slist_sort_with_data (GSList *list, + GCompareDataFunc compare_func, + gpointer user_data) __attribute__((warn_unused_result)); +gpointer g_slist_nth_data (GSList *list, + guint n); + + + + +# 29 "/usr/include/glib-2.0/glib/gmain.h" 2 +# 1 "/usr/include/glib-2.0/glib/gthread.h" 1 +# 30 "/usr/include/glib-2.0/glib/gmain.h" 2 + + + + + + + + + +typedef struct _GMainContext GMainContext; + + + + + + + +typedef struct _GMainLoop GMainLoop; + + + + + + + +typedef struct _GSource GSource; +typedef struct _GSourcePrivate GSourcePrivate; +# 68 "/usr/include/glib-2.0/glib/gmain.h" +typedef struct _GSourceCallbackFuncs GSourceCallbackFuncs; +# 113 "/usr/include/glib-2.0/glib/gmain.h" +typedef struct _GSourceFuncs GSourceFuncs; +# 137 "/usr/include/glib-2.0/glib/gmain.h" +typedef gboolean (*GSourceFunc) (gpointer user_data); +# 148 "/usr/include/glib-2.0/glib/gmain.h" +typedef void (*GChildWatchFunc) (GPid pid, + gint status, + gpointer user_data); +struct _GSource +{ + + gpointer callback_data; + GSourceCallbackFuncs *callback_funcs; + + GSourceFuncs *source_funcs; + guint ref_count; + + GMainContext *context; + + gint priority; + guint flags; + guint source_id; + + GSList *poll_fds; + + GSource *prev; + GSource *next; + + char *name; + + GSourcePrivate *priv; +}; + +struct _GSourceCallbackFuncs +{ + void (*ref) (gpointer cb_data); + void (*unref) (gpointer cb_data); + void (*get) (gpointer cb_data, + GSource *source, + GSourceFunc *func, + gpointer *data); +}; + + + + + + + +typedef void (*GSourceDummyMarshal) (void); + +struct _GSourceFuncs +{ + gboolean (*prepare) (GSource *source, + gint *timeout_); + gboolean (*check) (GSource *source); + gboolean (*dispatch) (GSource *source, + GSourceFunc callback, + gpointer user_data); + void (*finalize) (GSource *source); + + + + GSourceFunc closure_callback; + GSourceDummyMarshal closure_marshal; +}; +# 285 "/usr/include/glib-2.0/glib/gmain.h" +GMainContext *g_main_context_new (void); +GMainContext *g_main_context_ref (GMainContext *context); +void g_main_context_unref (GMainContext *context); +GMainContext *g_main_context_default (void); + +gboolean g_main_context_iteration (GMainContext *context, + gboolean may_block); +gboolean g_main_context_pending (GMainContext *context); + + + +GSource *g_main_context_find_source_by_id (GMainContext *context, + guint source_id); +GSource *g_main_context_find_source_by_user_data (GMainContext *context, + gpointer user_data); +GSource *g_main_context_find_source_by_funcs_user_data (GMainContext *context, + GSourceFuncs *funcs, + gpointer user_data); + + + +void g_main_context_wakeup (GMainContext *context); +gboolean g_main_context_acquire (GMainContext *context); +void g_main_context_release (GMainContext *context); +gboolean g_main_context_is_owner (GMainContext *context); +gboolean g_main_context_wait (GMainContext *context, + GCond *cond, + GMutex *mutex); + +gboolean g_main_context_prepare (GMainContext *context, + gint *priority); +gint g_main_context_query (GMainContext *context, + gint max_priority, + gint *timeout_, + GPollFD *fds, + gint n_fds); +gint g_main_context_check (GMainContext *context, + gint max_priority, + GPollFD *fds, + gint n_fds); +void g_main_context_dispatch (GMainContext *context); + +void g_main_context_set_poll_func (GMainContext *context, + GPollFunc func); +GPollFunc g_main_context_get_poll_func (GMainContext *context); + + + +void g_main_context_add_poll (GMainContext *context, + GPollFD *fd, + gint priority); +void g_main_context_remove_poll (GMainContext *context, + GPollFD *fd); + +gint g_main_depth (void); +GSource *g_main_current_source (void); + + + +void g_main_context_push_thread_default (GMainContext *context); +void g_main_context_pop_thread_default (GMainContext *context); +GMainContext *g_main_context_get_thread_default (void); +GMainContext *g_main_context_ref_thread_default (void); + + + +GMainLoop *g_main_loop_new (GMainContext *context, + gboolean is_running); +void g_main_loop_run (GMainLoop *loop); +void g_main_loop_quit (GMainLoop *loop); +GMainLoop *g_main_loop_ref (GMainLoop *loop); +void g_main_loop_unref (GMainLoop *loop); +gboolean g_main_loop_is_running (GMainLoop *loop); +GMainContext *g_main_loop_get_context (GMainLoop *loop); + + + +GSource *g_source_new (GSourceFuncs *source_funcs, + guint struct_size); +GSource *g_source_ref (GSource *source); +void g_source_unref (GSource *source); + +guint g_source_attach (GSource *source, + GMainContext *context); +void g_source_destroy (GSource *source); + +void g_source_set_priority (GSource *source, + gint priority); +gint g_source_get_priority (GSource *source); +void g_source_set_can_recurse (GSource *source, + gboolean can_recurse); +gboolean g_source_get_can_recurse (GSource *source); +guint g_source_get_id (GSource *source); + +GMainContext *g_source_get_context (GSource *source); + +void g_source_set_callback (GSource *source, + GSourceFunc func, + gpointer data, + GDestroyNotify notify); + +void g_source_set_funcs (GSource *source, + GSourceFuncs *funcs); +gboolean g_source_is_destroyed (GSource *source); + +void g_source_set_name (GSource *source, + const char *name); +const char * g_source_get_name (GSource *source); +void g_source_set_name_by_id (guint tag, + const char *name); + + + +void g_source_set_callback_indirect (GSource *source, + gpointer callback_data, + GSourceCallbackFuncs *callback_funcs); + +void g_source_add_poll (GSource *source, + GPollFD *fd); +void g_source_remove_poll (GSource *source, + GPollFD *fd); + +void g_source_add_child_source (GSource *source, + GSource *child_source); +void g_source_remove_child_source (GSource *source, + GSource *child_source); + +__attribute__((__deprecated__("Use '" "g_source_get_time" "' instead"))) +void g_source_get_current_time (GSource *source, + GTimeVal *timeval); + +gint64 g_source_get_time (GSource *source); + + + + + + + +GSource *g_idle_source_new (void); +GSource *g_child_watch_source_new (GPid pid); +GSource *g_timeout_source_new (guint interval); +GSource *g_timeout_source_new_seconds (guint interval); + + + +void g_get_current_time (GTimeVal *result); +gint64 g_get_monotonic_time (void); +gint64 g_get_real_time (void); + + + +gboolean g_source_remove (guint tag); +gboolean g_source_remove_by_user_data (gpointer user_data); +gboolean g_source_remove_by_funcs_user_data (GSourceFuncs *funcs, + gpointer user_data); + + +guint g_timeout_add_full (gint priority, + guint interval, + GSourceFunc function, + gpointer data, + GDestroyNotify notify); +guint g_timeout_add (guint interval, + GSourceFunc function, + gpointer data); +guint g_timeout_add_seconds_full (gint priority, + guint interval, + GSourceFunc function, + gpointer data, + GDestroyNotify notify); +guint g_timeout_add_seconds (guint interval, + GSourceFunc function, + gpointer data); +guint g_child_watch_add_full (gint priority, + GPid pid, + GChildWatchFunc function, + gpointer data, + GDestroyNotify notify); +guint g_child_watch_add (GPid pid, + GChildWatchFunc function, + gpointer data); +guint g_idle_add (GSourceFunc function, + gpointer data); +guint g_idle_add_full (gint priority, + GSourceFunc function, + gpointer data, + GDestroyNotify notify); +gboolean g_idle_remove_by_data (gpointer data); + +void g_main_context_invoke_full (GMainContext *context, + gint priority, + GSourceFunc function, + gpointer data, + GDestroyNotify notify); +void g_main_context_invoke (GMainContext *context, + GSourceFunc function, + gpointer data); + + +extern GSourceFuncs g_timeout_funcs; +extern GSourceFuncs g_child_watch_funcs; +extern GSourceFuncs g_idle_funcs; + + +# 36 "/usr/include/glib-2.0/glib/giochannel.h" 2 +# 1 "/usr/include/glib-2.0/glib/gstring.h" 1 +# 34 "/usr/include/glib-2.0/glib/gstring.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/gstring.h" 2 +# 1 "/usr/include/glib-2.0/glib/gunicode.h" 1 +# 29 "/usr/include/glib-2.0/glib/gunicode.h" +# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 +# 30 "/usr/include/glib-2.0/glib/gunicode.h" 2 +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 31 "/usr/include/glib-2.0/glib/gunicode.h" 2 + + +# 61 "/usr/include/glib-2.0/glib/gunicode.h" +typedef guint32 gunichar; +# 79 "/usr/include/glib-2.0/glib/gunicode.h" +typedef guint16 gunichar2; +# 118 "/usr/include/glib-2.0/glib/gunicode.h" +typedef enum +{ + G_UNICODE_CONTROL, + G_UNICODE_FORMAT, + G_UNICODE_UNASSIGNED, + G_UNICODE_PRIVATE_USE, + G_UNICODE_SURROGATE, + G_UNICODE_LOWERCASE_LETTER, + G_UNICODE_MODIFIER_LETTER, + G_UNICODE_OTHER_LETTER, + G_UNICODE_TITLECASE_LETTER, + G_UNICODE_UPPERCASE_LETTER, + G_UNICODE_SPACING_MARK, + G_UNICODE_ENCLOSING_MARK, + G_UNICODE_NON_SPACING_MARK, + G_UNICODE_DECIMAL_NUMBER, + G_UNICODE_LETTER_NUMBER, + G_UNICODE_OTHER_NUMBER, + G_UNICODE_CONNECT_PUNCTUATION, + G_UNICODE_DASH_PUNCTUATION, + G_UNICODE_CLOSE_PUNCTUATION, + G_UNICODE_FINAL_PUNCTUATION, + G_UNICODE_INITIAL_PUNCTUATION, + G_UNICODE_OTHER_PUNCTUATION, + G_UNICODE_OPEN_PUNCTUATION, + G_UNICODE_CURRENCY_SYMBOL, + G_UNICODE_MODIFIER_SYMBOL, + G_UNICODE_MATH_SYMBOL, + G_UNICODE_OTHER_SYMBOL, + G_UNICODE_LINE_SEPARATOR, + G_UNICODE_PARAGRAPH_SEPARATOR, + G_UNICODE_SPACE_SEPARATOR +} GUnicodeType; +# 214 "/usr/include/glib-2.0/glib/gunicode.h" +typedef enum +{ + G_UNICODE_BREAK_MANDATORY, + G_UNICODE_BREAK_CARRIAGE_RETURN, + G_UNICODE_BREAK_LINE_FEED, + G_UNICODE_BREAK_COMBINING_MARK, + G_UNICODE_BREAK_SURROGATE, + G_UNICODE_BREAK_ZERO_WIDTH_SPACE, + G_UNICODE_BREAK_INSEPARABLE, + G_UNICODE_BREAK_NON_BREAKING_GLUE, + G_UNICODE_BREAK_CONTINGENT, + G_UNICODE_BREAK_SPACE, + G_UNICODE_BREAK_AFTER, + G_UNICODE_BREAK_BEFORE, + G_UNICODE_BREAK_BEFORE_AND_AFTER, + G_UNICODE_BREAK_HYPHEN, + G_UNICODE_BREAK_NON_STARTER, + G_UNICODE_BREAK_OPEN_PUNCTUATION, + G_UNICODE_BREAK_CLOSE_PUNCTUATION, + G_UNICODE_BREAK_QUOTATION, + G_UNICODE_BREAK_EXCLAMATION, + G_UNICODE_BREAK_IDEOGRAPHIC, + G_UNICODE_BREAK_NUMERIC, + G_UNICODE_BREAK_INFIX_SEPARATOR, + G_UNICODE_BREAK_SYMBOL, + G_UNICODE_BREAK_ALPHABETIC, + G_UNICODE_BREAK_PREFIX, + G_UNICODE_BREAK_POSTFIX, + G_UNICODE_BREAK_COMPLEX_CONTEXT, + G_UNICODE_BREAK_AMBIGUOUS, + G_UNICODE_BREAK_UNKNOWN, + G_UNICODE_BREAK_NEXT_LINE, + G_UNICODE_BREAK_WORD_JOINER, + G_UNICODE_BREAK_HANGUL_L_JAMO, + G_UNICODE_BREAK_HANGUL_V_JAMO, + G_UNICODE_BREAK_HANGUL_T_JAMO, + G_UNICODE_BREAK_HANGUL_LV_SYLLABLE, + G_UNICODE_BREAK_HANGUL_LVT_SYLLABLE, + G_UNICODE_BREAK_CLOSE_PARANTHESIS, + G_UNICODE_BREAK_CONDITIONAL_JAPANESE_STARTER, + G_UNICODE_BREAK_HEBREW_LETTER +} GUnicodeBreakType; +# 387 "/usr/include/glib-2.0/glib/gunicode.h" +typedef enum +{ + G_UNICODE_SCRIPT_INVALID_CODE = -1, + G_UNICODE_SCRIPT_COMMON = 0, + G_UNICODE_SCRIPT_INHERITED, + G_UNICODE_SCRIPT_ARABIC, + G_UNICODE_SCRIPT_ARMENIAN, + G_UNICODE_SCRIPT_BENGALI, + G_UNICODE_SCRIPT_BOPOMOFO, + G_UNICODE_SCRIPT_CHEROKEE, + G_UNICODE_SCRIPT_COPTIC, + G_UNICODE_SCRIPT_CYRILLIC, + G_UNICODE_SCRIPT_DESERET, + G_UNICODE_SCRIPT_DEVANAGARI, + G_UNICODE_SCRIPT_ETHIOPIC, + G_UNICODE_SCRIPT_GEORGIAN, + G_UNICODE_SCRIPT_GOTHIC, + G_UNICODE_SCRIPT_GREEK, + G_UNICODE_SCRIPT_GUJARATI, + G_UNICODE_SCRIPT_GURMUKHI, + G_UNICODE_SCRIPT_HAN, + G_UNICODE_SCRIPT_HANGUL, + G_UNICODE_SCRIPT_HEBREW, + G_UNICODE_SCRIPT_HIRAGANA, + G_UNICODE_SCRIPT_KANNADA, + G_UNICODE_SCRIPT_KATAKANA, + G_UNICODE_SCRIPT_KHMER, + G_UNICODE_SCRIPT_LAO, + G_UNICODE_SCRIPT_LATIN, + G_UNICODE_SCRIPT_MALAYALAM, + G_UNICODE_SCRIPT_MONGOLIAN, + G_UNICODE_SCRIPT_MYANMAR, + G_UNICODE_SCRIPT_OGHAM, + G_UNICODE_SCRIPT_OLD_ITALIC, + G_UNICODE_SCRIPT_ORIYA, + G_UNICODE_SCRIPT_RUNIC, + G_UNICODE_SCRIPT_SINHALA, + G_UNICODE_SCRIPT_SYRIAC, + G_UNICODE_SCRIPT_TAMIL, + G_UNICODE_SCRIPT_TELUGU, + G_UNICODE_SCRIPT_THAANA, + G_UNICODE_SCRIPT_THAI, + G_UNICODE_SCRIPT_TIBETAN, + G_UNICODE_SCRIPT_CANADIAN_ABORIGINAL, + G_UNICODE_SCRIPT_YI, + G_UNICODE_SCRIPT_TAGALOG, + G_UNICODE_SCRIPT_HANUNOO, + G_UNICODE_SCRIPT_BUHID, + G_UNICODE_SCRIPT_TAGBANWA, + + + G_UNICODE_SCRIPT_BRAILLE, + G_UNICODE_SCRIPT_CYPRIOT, + G_UNICODE_SCRIPT_LIMBU, + G_UNICODE_SCRIPT_OSMANYA, + G_UNICODE_SCRIPT_SHAVIAN, + G_UNICODE_SCRIPT_LINEAR_B, + G_UNICODE_SCRIPT_TAI_LE, + G_UNICODE_SCRIPT_UGARITIC, + + + G_UNICODE_SCRIPT_NEW_TAI_LUE, + G_UNICODE_SCRIPT_BUGINESE, + G_UNICODE_SCRIPT_GLAGOLITIC, + G_UNICODE_SCRIPT_TIFINAGH, + G_UNICODE_SCRIPT_SYLOTI_NAGRI, + G_UNICODE_SCRIPT_OLD_PERSIAN, + G_UNICODE_SCRIPT_KHAROSHTHI, + + + G_UNICODE_SCRIPT_UNKNOWN, + G_UNICODE_SCRIPT_BALINESE, + G_UNICODE_SCRIPT_CUNEIFORM, + G_UNICODE_SCRIPT_PHOENICIAN, + G_UNICODE_SCRIPT_PHAGS_PA, + G_UNICODE_SCRIPT_NKO, + + + G_UNICODE_SCRIPT_KAYAH_LI, + G_UNICODE_SCRIPT_LEPCHA, + G_UNICODE_SCRIPT_REJANG, + G_UNICODE_SCRIPT_SUNDANESE, + G_UNICODE_SCRIPT_SAURASHTRA, + G_UNICODE_SCRIPT_CHAM, + G_UNICODE_SCRIPT_OL_CHIKI, + G_UNICODE_SCRIPT_VAI, + G_UNICODE_SCRIPT_CARIAN, + G_UNICODE_SCRIPT_LYCIAN, + G_UNICODE_SCRIPT_LYDIAN, + + + G_UNICODE_SCRIPT_AVESTAN, + G_UNICODE_SCRIPT_BAMUM, + G_UNICODE_SCRIPT_EGYPTIAN_HIEROGLYPHS, + G_UNICODE_SCRIPT_IMPERIAL_ARAMAIC, + G_UNICODE_SCRIPT_INSCRIPTIONAL_PAHLAVI, + G_UNICODE_SCRIPT_INSCRIPTIONAL_PARTHIAN, + G_UNICODE_SCRIPT_JAVANESE, + G_UNICODE_SCRIPT_KAITHI, + G_UNICODE_SCRIPT_LISU, + G_UNICODE_SCRIPT_MEETEI_MAYEK, + G_UNICODE_SCRIPT_OLD_SOUTH_ARABIAN, + G_UNICODE_SCRIPT_OLD_TURKIC, + G_UNICODE_SCRIPT_SAMARITAN, + G_UNICODE_SCRIPT_TAI_THAM, + G_UNICODE_SCRIPT_TAI_VIET, + + + G_UNICODE_SCRIPT_BATAK, + G_UNICODE_SCRIPT_BRAHMI, + G_UNICODE_SCRIPT_MANDAIC, + + + G_UNICODE_SCRIPT_CHAKMA, + G_UNICODE_SCRIPT_MEROITIC_CURSIVE, + G_UNICODE_SCRIPT_MEROITIC_HIEROGLYPHS, + G_UNICODE_SCRIPT_MIAO, + G_UNICODE_SCRIPT_SHARADA, + G_UNICODE_SCRIPT_SORA_SOMPENG, + G_UNICODE_SCRIPT_TAKRI +} GUnicodeScript; + +guint32 g_unicode_script_to_iso15924 (GUnicodeScript script); +GUnicodeScript g_unicode_script_from_iso15924 (guint32 iso15924); + + + +gboolean g_unichar_isalnum (gunichar c) __attribute__((__const__)); +gboolean g_unichar_isalpha (gunichar c) __attribute__((__const__)); +gboolean g_unichar_iscntrl (gunichar c) __attribute__((__const__)); +gboolean g_unichar_isdigit (gunichar c) __attribute__((__const__)); +gboolean g_unichar_isgraph (gunichar c) __attribute__((__const__)); +gboolean g_unichar_islower (gunichar c) __attribute__((__const__)); +gboolean g_unichar_isprint (gunichar c) __attribute__((__const__)); +gboolean g_unichar_ispunct (gunichar c) __attribute__((__const__)); +gboolean g_unichar_isspace (gunichar c) __attribute__((__const__)); +gboolean g_unichar_isupper (gunichar c) __attribute__((__const__)); +gboolean g_unichar_isxdigit (gunichar c) __attribute__((__const__)); +gboolean g_unichar_istitle (gunichar c) __attribute__((__const__)); +gboolean g_unichar_isdefined (gunichar c) __attribute__((__const__)); +gboolean g_unichar_iswide (gunichar c) __attribute__((__const__)); +gboolean g_unichar_iswide_cjk(gunichar c) __attribute__((__const__)); +gboolean g_unichar_iszerowidth(gunichar c) __attribute__((__const__)); +gboolean g_unichar_ismark (gunichar c) __attribute__((__const__)); + + + +gunichar g_unichar_toupper (gunichar c) __attribute__((__const__)); +gunichar g_unichar_tolower (gunichar c) __attribute__((__const__)); +gunichar g_unichar_totitle (gunichar c) __attribute__((__const__)); + + + +gint g_unichar_digit_value (gunichar c) __attribute__((__const__)); + +gint g_unichar_xdigit_value (gunichar c) __attribute__((__const__)); + + +GUnicodeType g_unichar_type (gunichar c) __attribute__((__const__)); + + +GUnicodeBreakType g_unichar_break_type (gunichar c) __attribute__((__const__)); + + +gint g_unichar_combining_class (gunichar uc) __attribute__((__const__)); + +gboolean g_unichar_get_mirror_char (gunichar ch, + gunichar *mirrored_ch); + +GUnicodeScript g_unichar_get_script (gunichar ch) __attribute__((__const__)); + + +gboolean g_unichar_validate (gunichar ch) __attribute__((__const__)); + + +gboolean g_unichar_compose (gunichar a, + gunichar b, + gunichar *ch); +gboolean g_unichar_decompose (gunichar ch, + gunichar *a, + gunichar *b); + +gsize g_unichar_fully_decompose (gunichar ch, + gboolean compat, + gunichar *result, + gsize result_len); +# 589 "/usr/include/glib-2.0/glib/gunicode.h" +void g_unicode_canonical_ordering (gunichar *string, + gsize len); + + +__attribute__((__deprecated__)) +gunichar *g_unicode_canonical_decomposition (gunichar ch, + gsize *result_len) __attribute__((__malloc__)); + + + +extern const gchar * const g_utf8_skip; +# 614 "/usr/include/glib-2.0/glib/gunicode.h" +gunichar g_utf8_get_char (const gchar *p) __attribute__((__pure__)); +gunichar g_utf8_get_char_validated (const gchar *p, + gssize max_len) __attribute__((__pure__)); + +gchar* g_utf8_offset_to_pointer (const gchar *str, + glong offset) __attribute__((__pure__)); +glong g_utf8_pointer_to_offset (const gchar *str, + const gchar *pos) __attribute__((__pure__)); +gchar* g_utf8_prev_char (const gchar *p) __attribute__((__pure__)); +gchar* g_utf8_find_next_char (const gchar *p, + const gchar *end) __attribute__((__pure__)); +gchar* g_utf8_find_prev_char (const gchar *str, + const gchar *p) __attribute__((__pure__)); + +glong g_utf8_strlen (const gchar *p, + gssize max) __attribute__((__pure__)); + + +gchar *g_utf8_substring (const gchar *str, + glong start_pos, + glong end_pos) __attribute__((__malloc__)); + +gchar *g_utf8_strncpy (gchar *dest, + const gchar *src, + gsize n); + + + +gchar* g_utf8_strchr (const gchar *p, + gssize len, + gunichar c); +gchar* g_utf8_strrchr (const gchar *p, + gssize len, + gunichar c); +gchar* g_utf8_strreverse (const gchar *str, + gssize len); + +gunichar2 *g_utf8_to_utf16 (const gchar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) __attribute__((__malloc__)); +gunichar * g_utf8_to_ucs4 (const gchar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) __attribute__((__malloc__)); +gunichar * g_utf8_to_ucs4_fast (const gchar *str, + glong len, + glong *items_written) __attribute__((__malloc__)); +gunichar * g_utf16_to_ucs4 (const gunichar2 *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) __attribute__((__malloc__)); +gchar* g_utf16_to_utf8 (const gunichar2 *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) __attribute__((__malloc__)); +gunichar2 *g_ucs4_to_utf16 (const gunichar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) __attribute__((__malloc__)); +gchar* g_ucs4_to_utf8 (const gunichar *str, + glong len, + glong *items_read, + glong *items_written, + GError **error) __attribute__((__malloc__)); + +gint g_unichar_to_utf8 (gunichar c, + gchar *outbuf); + +gboolean g_utf8_validate (const gchar *str, + gssize max_len, + const gchar **end); + +gchar *g_utf8_strup (const gchar *str, + gssize len) __attribute__((__malloc__)); +gchar *g_utf8_strdown (const gchar *str, + gssize len) __attribute__((__malloc__)); +gchar *g_utf8_casefold (const gchar *str, + gssize len) __attribute__((__malloc__)); +# 723 "/usr/include/glib-2.0/glib/gunicode.h" +typedef enum { + G_NORMALIZE_DEFAULT, + G_NORMALIZE_NFD = G_NORMALIZE_DEFAULT, + G_NORMALIZE_DEFAULT_COMPOSE, + G_NORMALIZE_NFC = G_NORMALIZE_DEFAULT_COMPOSE, + G_NORMALIZE_ALL, + G_NORMALIZE_NFKD = G_NORMALIZE_ALL, + G_NORMALIZE_ALL_COMPOSE, + G_NORMALIZE_NFKC = G_NORMALIZE_ALL_COMPOSE +} GNormalizeMode; + +gchar *g_utf8_normalize (const gchar *str, + gssize len, + GNormalizeMode mode) __attribute__((__malloc__)); + +gint g_utf8_collate (const gchar *str1, + const gchar *str2) __attribute__((__pure__)); +gchar *g_utf8_collate_key (const gchar *str, + gssize len) __attribute__((__malloc__)); +gchar *g_utf8_collate_key_for_filename (const gchar *str, + gssize len) __attribute__((__malloc__)); + + + + +gchar *_g_utf8_make_valid (const gchar *name); + + +# 36 "/usr/include/glib-2.0/glib/gstring.h" 2 +# 1 "/usr/include/glib-2.0/glib/gutils.h" 1 +# 34 "/usr/include/glib-2.0/glib/gutils.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/gutils.h" 2 + + + +# 96 "/usr/include/glib-2.0/glib/gutils.h" +const gchar * g_get_user_name (void); +const gchar * g_get_real_name (void); +const gchar * g_get_home_dir (void); +const gchar * g_get_tmp_dir (void); +const gchar * g_get_host_name (void); +gchar * g_get_prgname (void); +void g_set_prgname (const gchar *prgname); +const gchar * g_get_application_name (void); +void g_set_application_name (const gchar *application_name); + +void g_reload_user_special_dirs_cache (void); +const gchar * g_get_user_data_dir (void); +const gchar * g_get_user_config_dir (void); +const gchar * g_get_user_cache_dir (void); +const gchar * const * g_get_system_data_dirs (void); +# 130 "/usr/include/glib-2.0/glib/gutils.h" +const gchar * const * g_get_system_config_dirs (void); + +const gchar * g_get_user_runtime_dir (void); +# 156 "/usr/include/glib-2.0/glib/gutils.h" +typedef enum { + G_USER_DIRECTORY_DESKTOP, + G_USER_DIRECTORY_DOCUMENTS, + G_USER_DIRECTORY_DOWNLOAD, + G_USER_DIRECTORY_MUSIC, + G_USER_DIRECTORY_PICTURES, + G_USER_DIRECTORY_PUBLIC_SHARE, + G_USER_DIRECTORY_TEMPLATES, + G_USER_DIRECTORY_VIDEOS, + + G_USER_N_DIRECTORIES +} GUserDirectory; + +const gchar * g_get_user_special_dir (GUserDirectory directory); +# 179 "/usr/include/glib-2.0/glib/gutils.h" +typedef struct _GDebugKey GDebugKey; +struct _GDebugKey +{ + const gchar *key; + guint value; +}; + + + +guint g_parse_debug_string (const gchar *string, + const GDebugKey *keys, + guint nkeys); + +gint g_snprintf (gchar *string, + gulong n, + gchar const *format, + ...) __attribute__((__format__ (__printf__, 3, 4))); +gint g_vsnprintf (gchar *string, + gulong n, + gchar const *format, + va_list args); + +void g_nullify_pointer (gpointer *nullify_location); + +typedef enum +{ + G_FORMAT_SIZE_DEFAULT = 0, + G_FORMAT_SIZE_LONG_FORMAT = 1 << 0, + G_FORMAT_SIZE_IEC_UNITS = 1 << 1 +} GFormatSizeFlags; + + +gchar *g_format_size_full (guint64 size, + GFormatSizeFlags flags); + +gchar *g_format_size (guint64 size); + +__attribute__((__deprecated__("Use '" "g_format_size" "' instead"))) +gchar *g_format_size_for_display (goffset size); +# 227 "/usr/include/glib-2.0/glib/gutils.h" +typedef void (*GVoidFunc) (void); +# 238 "/usr/include/glib-2.0/glib/gutils.h" +__attribute__((__deprecated__)) +void g_atexit (GVoidFunc func); +# 263 "/usr/include/glib-2.0/glib/gutils.h" +gchar* g_find_program_in_path (const gchar *program); + + + +static __inline __attribute__ ((unused)) gint g_bit_nth_lsf (gulong mask, + gint nth_bit) __attribute__((__const__)); +static __inline __attribute__ ((unused)) gint g_bit_nth_msf (gulong mask, + gint nth_bit) __attribute__((__const__)); +static __inline __attribute__ ((unused)) guint g_bit_storage (gulong number) __attribute__((__const__)); + + + + +static __inline __attribute__ ((unused)) gint +g_bit_nth_lsf (gulong mask, + gint nth_bit) +{ + if ((__builtin_expect (__extension__ ({ int _g_boolean_var_; if (nth_bit < -1) _g_boolean_var_ = 1; else _g_boolean_var_ = 0; _g_boolean_var_; }), 0))) + nth_bit = -1; + while (nth_bit < ((4 * 8) - 1)) + { + nth_bit++; + if (mask & (1UL << nth_bit)) + return nth_bit; + } + return -1; +} +static __inline __attribute__ ((unused)) gint +g_bit_nth_msf (gulong mask, + gint nth_bit) +{ + if (nth_bit < 0 || (__builtin_expect (__extension__ ({ int _g_boolean_var_; if (nth_bit > 4 * 8) _g_boolean_var_ = 1; else _g_boolean_var_ = 0; _g_boolean_var_; }), 0))) + nth_bit = 4 * 8; + while (nth_bit > 0) + { + nth_bit--; + if (mask & (1UL << nth_bit)) + return nth_bit; + } + return -1; +} +static __inline __attribute__ ((unused)) guint +g_bit_storage (gulong number) +{ + + return (__builtin_expect (__extension__ ({ int _g_boolean_var_; if (number) _g_boolean_var_ = 1; else _g_boolean_var_ = 0; _g_boolean_var_; }), 1)) ? + ((4 * 8U - 1) ^ (guint) __builtin_clzl(number)) + 1 : 1; +# 321 "/usr/include/glib-2.0/glib/gutils.h" +} + + + +# 37 "/usr/include/glib-2.0/glib/gstring.h" 2 + + + +typedef struct _GString GString; + +struct _GString +{ + gchar *str; + gsize len; + gsize allocated_len; +}; + +GString* g_string_new (const gchar *init); +GString* g_string_new_len (const gchar *init, + gssize len); +GString* g_string_sized_new (gsize dfl_size); +gchar* g_string_free (GString *string, + gboolean free_segment); +gboolean g_string_equal (const GString *v, + const GString *v2); +guint g_string_hash (const GString *str); +GString* g_string_assign (GString *string, + const gchar *rval); +GString* g_string_truncate (GString *string, + gsize len); +GString* g_string_set_size (GString *string, + gsize len); +GString* g_string_insert_len (GString *string, + gssize pos, + const gchar *val, + gssize len); +GString* g_string_append (GString *string, + const gchar *val); +GString* g_string_append_len (GString *string, + const gchar *val, + gssize len); +GString* g_string_append_c (GString *string, + gchar c); +GString* g_string_append_unichar (GString *string, + gunichar wc); +GString* g_string_prepend (GString *string, + const gchar *val); +GString* g_string_prepend_c (GString *string, + gchar c); +GString* g_string_prepend_unichar (GString *string, + gunichar wc); +GString* g_string_prepend_len (GString *string, + const gchar *val, + gssize len); +GString* g_string_insert (GString *string, + gssize pos, + const gchar *val); +GString* g_string_insert_c (GString *string, + gssize pos, + gchar c); +GString* g_string_insert_unichar (GString *string, + gssize pos, + gunichar wc); +GString* g_string_overwrite (GString *string, + gsize pos, + const gchar *val); +GString* g_string_overwrite_len (GString *string, + gsize pos, + const gchar *val, + gssize len); +GString* g_string_erase (GString *string, + gssize pos, + gssize len); +GString* g_string_ascii_down (GString *string); +GString* g_string_ascii_up (GString *string); +void g_string_vprintf (GString *string, + const gchar *format, + va_list args); +void g_string_printf (GString *string, + const gchar *format, + ...) __attribute__((__format__ (__printf__, 2, 3))); +void g_string_append_vprintf (GString *string, + const gchar *format, + va_list args); +void g_string_append_printf (GString *string, + const gchar *format, + ...) __attribute__((__format__ (__printf__, 2, 3))); +GString* g_string_append_uri_escaped (GString *string, + const gchar *unescaped, + const gchar *reserved_chars_allowed, + gboolean allow_utf8); + + + +static inline GString* +g_string_append_c_inline (GString *gstring, + gchar c) +{ + if (gstring->len + 1 < gstring->allocated_len) + { + gstring->str[gstring->len++] = c; + gstring->str[gstring->len] = 0; + } + else + g_string_insert_c (gstring, -1, c); + return gstring; +} + + + + +__attribute__((__deprecated__)) +GString *g_string_down (GString *string); +__attribute__((__deprecated__)) +GString *g_string_up (GString *string); + + + + + + + +# 37 "/usr/include/glib-2.0/glib/giochannel.h" 2 + + + + + + +typedef struct _GIOChannel GIOChannel; +typedef struct _GIOFuncs GIOFuncs; + +typedef enum +{ + G_IO_ERROR_NONE, + G_IO_ERROR_AGAIN, + G_IO_ERROR_INVAL, + G_IO_ERROR_UNKNOWN +} GIOError; + + + +typedef enum +{ + + G_IO_CHANNEL_ERROR_FBIG, + G_IO_CHANNEL_ERROR_INVAL, + G_IO_CHANNEL_ERROR_IO, + G_IO_CHANNEL_ERROR_ISDIR, + G_IO_CHANNEL_ERROR_NOSPC, + G_IO_CHANNEL_ERROR_NXIO, + G_IO_CHANNEL_ERROR_OVERFLOW, + G_IO_CHANNEL_ERROR_PIPE, + + G_IO_CHANNEL_ERROR_FAILED +} GIOChannelError; + +typedef enum +{ + G_IO_STATUS_ERROR, + G_IO_STATUS_NORMAL, + G_IO_STATUS_EOF, + G_IO_STATUS_AGAIN +} GIOStatus; + +typedef enum +{ + G_SEEK_CUR, + G_SEEK_SET, + G_SEEK_END +} GSeekType; + +typedef enum +{ + G_IO_IN =1, + G_IO_OUT =4, + G_IO_PRI =2, + G_IO_ERR =8, + G_IO_HUP =16, + G_IO_NVAL =32 +} GIOCondition; + +typedef enum +{ + G_IO_FLAG_APPEND = 1 << 0, + G_IO_FLAG_NONBLOCK = 1 << 1, + G_IO_FLAG_IS_READABLE = 1 << 2, + G_IO_FLAG_IS_WRITABLE = 1 << 3, + G_IO_FLAG_IS_SEEKABLE = 1 << 4, + G_IO_FLAG_MASK = (1 << 5) - 1, + G_IO_FLAG_GET_MASK = G_IO_FLAG_MASK, + G_IO_FLAG_SET_MASK = G_IO_FLAG_APPEND | G_IO_FLAG_NONBLOCK +} GIOFlags; + + + + +struct _GIOChannel +{ + + gint ref_count; + GIOFuncs *funcs; + + gchar *encoding; + GIConv read_cd; + GIConv write_cd; + gchar *line_term; + guint line_term_len; + + gsize buf_size; + GString *read_buf; + GString *encoded_read_buf; + GString *write_buf; + gchar partial_write_buf[6]; + + + + guint use_buffer : 1; + guint do_encode : 1; + guint close_on_unref : 1; + guint is_readable : 1; + guint is_writeable : 1; + guint is_seekable : 1; + + gpointer reserved1; + gpointer reserved2; +}; + +typedef gboolean (*GIOFunc) (GIOChannel *source, + GIOCondition condition, + gpointer data); +struct _GIOFuncs +{ + GIOStatus (*io_read) (GIOChannel *channel, + gchar *buf, + gsize count, + gsize *bytes_read, + GError **err); + GIOStatus (*io_write) (GIOChannel *channel, + const gchar *buf, + gsize count, + gsize *bytes_written, + GError **err); + GIOStatus (*io_seek) (GIOChannel *channel, + gint64 offset, + GSeekType type, + GError **err); + GIOStatus (*io_close) (GIOChannel *channel, + GError **err); + GSource* (*io_create_watch) (GIOChannel *channel, + GIOCondition condition); + void (*io_free) (GIOChannel *channel); + GIOStatus (*io_set_flags) (GIOChannel *channel, + GIOFlags flags, + GError **err); + GIOFlags (*io_get_flags) (GIOChannel *channel); +}; + +void g_io_channel_init (GIOChannel *channel); +GIOChannel *g_io_channel_ref (GIOChannel *channel); +void g_io_channel_unref (GIOChannel *channel); + +__attribute__((__deprecated__("Use '" "g_io_channel_read_for" "' instead"))) +GIOError g_io_channel_read (GIOChannel *channel, + gchar *buf, + gsize count, + gsize *bytes_read); + +__attribute__((__deprecated__("Use '" "g_io_channel_write_chars" "' instead"))) +GIOError g_io_channel_write (GIOChannel *channel, + const gchar *buf, + gsize count, + gsize *bytes_written); + +__attribute__((__deprecated__("Use '" "g_io_channel_seek_position" "' instead"))) +GIOError g_io_channel_seek (GIOChannel *channel, + gint64 offset, + GSeekType type); + +__attribute__((__deprecated__("Use '" "g_io_channel_shutdown" "' instead"))) +void g_io_channel_close (GIOChannel *channel); + +GIOStatus g_io_channel_shutdown (GIOChannel *channel, + gboolean flush, + GError **err); +guint g_io_add_watch_full (GIOChannel *channel, + gint priority, + GIOCondition condition, + GIOFunc func, + gpointer user_data, + GDestroyNotify notify); +GSource * g_io_create_watch (GIOChannel *channel, + GIOCondition condition); +guint g_io_add_watch (GIOChannel *channel, + GIOCondition condition, + GIOFunc func, + gpointer user_data); + + + + +void g_io_channel_set_buffer_size (GIOChannel *channel, + gsize size); +gsize g_io_channel_get_buffer_size (GIOChannel *channel); +GIOCondition g_io_channel_get_buffer_condition (GIOChannel *channel); +GIOStatus g_io_channel_set_flags (GIOChannel *channel, + GIOFlags flags, + GError **error); +GIOFlags g_io_channel_get_flags (GIOChannel *channel); +void g_io_channel_set_line_term (GIOChannel *channel, + const gchar *line_term, + gint length); +const gchar * g_io_channel_get_line_term (GIOChannel *channel, + gint *length); +void g_io_channel_set_buffered (GIOChannel *channel, + gboolean buffered); +gboolean g_io_channel_get_buffered (GIOChannel *channel); +GIOStatus g_io_channel_set_encoding (GIOChannel *channel, + const gchar *encoding, + GError **error); +const gchar * g_io_channel_get_encoding (GIOChannel *channel); +void g_io_channel_set_close_on_unref (GIOChannel *channel, + gboolean do_close); +gboolean g_io_channel_get_close_on_unref (GIOChannel *channel); + + +GIOStatus g_io_channel_flush (GIOChannel *channel, + GError **error); +GIOStatus g_io_channel_read_line (GIOChannel *channel, + gchar **str_return, + gsize *length, + gsize *terminator_pos, + GError **error); +GIOStatus g_io_channel_read_line_string (GIOChannel *channel, + GString *buffer, + gsize *terminator_pos, + GError **error); +GIOStatus g_io_channel_read_to_end (GIOChannel *channel, + gchar **str_return, + gsize *length, + GError **error); +GIOStatus g_io_channel_read_chars (GIOChannel *channel, + gchar *buf, + gsize count, + gsize *bytes_read, + GError **error); +GIOStatus g_io_channel_read_unichar (GIOChannel *channel, + gunichar *thechar, + GError **error); +GIOStatus g_io_channel_write_chars (GIOChannel *channel, + const gchar *buf, + gssize count, + gsize *bytes_written, + GError **error); +GIOStatus g_io_channel_write_unichar (GIOChannel *channel, + gunichar thechar, + GError **error); +GIOStatus g_io_channel_seek_position (GIOChannel *channel, + gint64 offset, + GSeekType type, + GError **error); + + + + +GIOChannel* g_io_channel_new_file (const gchar *filename, + const gchar *mode, + GError **error); + + + +GQuark g_io_channel_error_quark (void); +GIOChannelError g_io_channel_error_from_errno (gint en); +# 306 "/usr/include/glib-2.0/glib/giochannel.h" +GIOChannel* g_io_channel_unix_new (int fd); +gint g_io_channel_unix_get_fd (GIOChannel *channel); + + + +extern GSourceFuncs g_io_watch_funcs; +# 372 "/usr/include/glib-2.0/glib/giochannel.h" + +# 57 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gkeyfile.h" 1 +# 30 "/usr/include/glib-2.0/glib/gkeyfile.h" +# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 +# 31 "/usr/include/glib-2.0/glib/gkeyfile.h" 2 + + + +typedef enum +{ + G_KEY_FILE_ERROR_UNKNOWN_ENCODING, + G_KEY_FILE_ERROR_PARSE, + G_KEY_FILE_ERROR_NOT_FOUND, + G_KEY_FILE_ERROR_KEY_NOT_FOUND, + G_KEY_FILE_ERROR_GROUP_NOT_FOUND, + G_KEY_FILE_ERROR_INVALID_VALUE +} GKeyFileError; + + + +GQuark g_key_file_error_quark (void); + +typedef struct _GKeyFile GKeyFile; + +typedef enum +{ + G_KEY_FILE_NONE = 0, + G_KEY_FILE_KEEP_COMMENTS = 1 << 0, + G_KEY_FILE_KEEP_TRANSLATIONS = 1 << 1 +} GKeyFileFlags; + +GKeyFile *g_key_file_new (void); +GKeyFile *g_key_file_ref (GKeyFile *key_file); +void g_key_file_unref (GKeyFile *key_file); +void g_key_file_free (GKeyFile *key_file); +void g_key_file_set_list_separator (GKeyFile *key_file, + gchar separator); +gboolean g_key_file_load_from_file (GKeyFile *key_file, + const gchar *file, + GKeyFileFlags flags, + GError **error); +gboolean g_key_file_load_from_data (GKeyFile *key_file, + const gchar *data, + gsize length, + GKeyFileFlags flags, + GError **error); +gboolean g_key_file_load_from_dirs (GKeyFile *key_file, + const gchar *file, + const gchar **search_dirs, + gchar **full_path, + GKeyFileFlags flags, + GError **error); +gboolean g_key_file_load_from_data_dirs (GKeyFile *key_file, + const gchar *file, + gchar **full_path, + GKeyFileFlags flags, + GError **error); +gchar *g_key_file_to_data (GKeyFile *key_file, + gsize *length, + GError **error) __attribute__((__malloc__)); +gchar *g_key_file_get_start_group (GKeyFile *key_file) __attribute__((__malloc__)); +gchar **g_key_file_get_groups (GKeyFile *key_file, + gsize *length) __attribute__((__malloc__)); +gchar **g_key_file_get_keys (GKeyFile *key_file, + const gchar *group_name, + gsize *length, + GError **error) __attribute__((__malloc__)); +gboolean g_key_file_has_group (GKeyFile *key_file, + const gchar *group_name); +gboolean g_key_file_has_key (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +gchar *g_key_file_get_value (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error) __attribute__((__malloc__)); +void g_key_file_set_value (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *value); +gchar *g_key_file_get_string (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error) __attribute__((__malloc__)); +void g_key_file_set_string (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *string); +gchar *g_key_file_get_locale_string (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *locale, + GError **error) __attribute__((__malloc__)); +void g_key_file_set_locale_string (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *locale, + const gchar *string); +gboolean g_key_file_get_boolean (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +void g_key_file_set_boolean (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gboolean value); +gint g_key_file_get_integer (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +void g_key_file_set_integer (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gint value); +gint64 g_key_file_get_int64 (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +void g_key_file_set_int64 (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gint64 value); +guint64 g_key_file_get_uint64 (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +void g_key_file_set_uint64 (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + guint64 value); +gdouble g_key_file_get_double (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +void g_key_file_set_double (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gdouble value); +gchar **g_key_file_get_string_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gsize *length, + GError **error) __attribute__((__malloc__)); +void g_key_file_set_string_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar * const list[], + gsize length); +gchar **g_key_file_get_locale_string_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *locale, + gsize *length, + GError **error) __attribute__((__malloc__)); +void g_key_file_set_locale_string_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *locale, + const gchar * const list[], + gsize length); +gboolean *g_key_file_get_boolean_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gsize *length, + GError **error) __attribute__((__malloc__)); +void g_key_file_set_boolean_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gboolean list[], + gsize length); +gint *g_key_file_get_integer_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gsize *length, + GError **error) __attribute__((__malloc__)); +void g_key_file_set_double_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gdouble list[], + gsize length); +gdouble *g_key_file_get_double_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gsize *length, + GError **error) __attribute__((__malloc__)); +void g_key_file_set_integer_list (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + gint list[], + gsize length); +gboolean g_key_file_set_comment (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + const gchar *comment, + GError **error); +gchar *g_key_file_get_comment (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error) __attribute__((__malloc__)); + +gboolean g_key_file_remove_comment (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +gboolean g_key_file_remove_key (GKeyFile *key_file, + const gchar *group_name, + const gchar *key, + GError **error); +gboolean g_key_file_remove_group (GKeyFile *key_file, + const gchar *group_name, + GError **error); +# 266 "/usr/include/glib-2.0/glib/gkeyfile.h" + +# 58 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/glist.h" 1 +# 59 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gmacros.h" 1 +# 60 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gmain.h" 1 +# 61 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gmappedfile.h" 1 +# 29 "/usr/include/glib-2.0/glib/gmappedfile.h" +# 1 "/usr/include/glib-2.0/glib/gbytes.h" 1 +# 30 "/usr/include/glib-2.0/glib/gmappedfile.h" 2 +# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 +# 31 "/usr/include/glib-2.0/glib/gmappedfile.h" 2 + + + +typedef struct _GMappedFile GMappedFile; + +GMappedFile *g_mapped_file_new (const gchar *filename, + gboolean writable, + GError **error) __attribute__((__malloc__)); +GMappedFile *g_mapped_file_new_from_fd (gint fd, + gboolean writable, + GError **error) __attribute__((__malloc__)); +gsize g_mapped_file_get_length (GMappedFile *file); +gchar *g_mapped_file_get_contents (GMappedFile *file); +GMappedFile *g_mapped_file_ref (GMappedFile *file); +void g_mapped_file_unref (GMappedFile *file); + +__attribute__((__deprecated__("Use '" "g_mapped_file_unref" "' instead"))) +void g_mapped_file_free (GMappedFile *file); + + +# 62 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gmarkup.h" 1 +# 30 "/usr/include/glib-2.0/glib/gmarkup.h" +# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 +# 31 "/usr/include/glib-2.0/glib/gmarkup.h" 2 +# 1 "/usr/include/glib-2.0/glib/gslist.h" 1 +# 32 "/usr/include/glib-2.0/glib/gmarkup.h" 2 + + +# 51 "/usr/include/glib-2.0/glib/gmarkup.h" +typedef enum +{ + G_MARKUP_ERROR_BAD_UTF8, + G_MARKUP_ERROR_EMPTY, + G_MARKUP_ERROR_PARSE, + + + + G_MARKUP_ERROR_UNKNOWN_ELEMENT, + G_MARKUP_ERROR_UNKNOWN_ATTRIBUTE, + G_MARKUP_ERROR_INVALID_CONTENT, + G_MARKUP_ERROR_MISSING_ATTRIBUTE +} GMarkupError; +# 74 "/usr/include/glib-2.0/glib/gmarkup.h" +GQuark g_markup_error_quark (void); +# 92 "/usr/include/glib-2.0/glib/gmarkup.h" +typedef enum +{ + G_MARKUP_DO_NOT_USE_THIS_UNSUPPORTED_FLAG = 1 << 0, + G_MARKUP_TREAT_CDATA_AS_TEXT = 1 << 1, + G_MARKUP_PREFIX_ERROR_POSITION = 1 << 2 +} GMarkupParseFlags; +# 108 "/usr/include/glib-2.0/glib/gmarkup.h" +typedef struct _GMarkupParseContext GMarkupParseContext; +typedef struct _GMarkupParser GMarkupParser; +# 138 "/usr/include/glib-2.0/glib/gmarkup.h" +struct _GMarkupParser +{ + + void (*start_element) (GMarkupParseContext *context, + const gchar *element_name, + const gchar **attribute_names, + const gchar **attribute_values, + gpointer user_data, + GError **error); + + + void (*end_element) (GMarkupParseContext *context, + const gchar *element_name, + gpointer user_data, + GError **error); + + + + void (*text) (GMarkupParseContext *context, + const gchar *text, + gsize text_len, + gpointer user_data, + GError **error); + + + + + + + void (*passthrough) (GMarkupParseContext *context, + const gchar *passthrough_text, + gsize text_len, + gpointer user_data, + GError **error); + + + + + void (*error) (GMarkupParseContext *context, + GError *error, + gpointer user_data); +}; + +GMarkupParseContext *g_markup_parse_context_new (const GMarkupParser *parser, + GMarkupParseFlags flags, + gpointer user_data, + GDestroyNotify user_data_dnotify); +void g_markup_parse_context_free (GMarkupParseContext *context); +gboolean g_markup_parse_context_parse (GMarkupParseContext *context, + const gchar *text, + gssize text_len, + GError **error); +void g_markup_parse_context_push (GMarkupParseContext *context, + const GMarkupParser *parser, + gpointer user_data); +gpointer g_markup_parse_context_pop (GMarkupParseContext *context); + +gboolean g_markup_parse_context_end_parse (GMarkupParseContext *context, + GError **error); +const gchar * g_markup_parse_context_get_element (GMarkupParseContext *context); +const GSList * g_markup_parse_context_get_element_stack (GMarkupParseContext *context); + + +void g_markup_parse_context_get_position (GMarkupParseContext *context, + gint *line_number, + gint *char_number); +gpointer g_markup_parse_context_get_user_data (GMarkupParseContext *context); + + +gchar* g_markup_escape_text (const gchar *text, + gssize length); + +gchar *g_markup_printf_escaped (const char *format, + ...) __attribute__((__format__ (__printf__, 1, 2))); +gchar *g_markup_vprintf_escaped (const char *format, + va_list args); + +typedef enum +{ + G_MARKUP_COLLECT_INVALID, + G_MARKUP_COLLECT_STRING, + G_MARKUP_COLLECT_STRDUP, + G_MARKUP_COLLECT_BOOLEAN, + G_MARKUP_COLLECT_TRISTATE, + + G_MARKUP_COLLECT_OPTIONAL = (1 << 16) +} GMarkupCollectType; + + + +gboolean g_markup_collect_attributes (const gchar *element_name, + const gchar **attribute_names, + const gchar **attribute_values, + GError **error, + GMarkupCollectType first_type, + const gchar *first_attr, + ...); + + +# 63 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gmem.h" 1 +# 64 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gmessages.h" 1 +# 35 "/usr/include/glib-2.0/glib/gmessages.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 36 "/usr/include/glib-2.0/glib/gmessages.h" 2 +# 1 "/usr/include/glib-2.0/glib/gmacros.h" 1 +# 37 "/usr/include/glib-2.0/glib/gmessages.h" 2 + + + + + +# 42 "/usr/include/glib-2.0/glib/gmessages.h" 3 + + + + + + +gsize g_printf_string_upper_bound (const gchar* format, + va_list args); +# 58 "/usr/include/glib-2.0/glib/gmessages.h" 3 +typedef enum +{ + + G_LOG_FLAG_RECURSION = 1 << 0, + G_LOG_FLAG_FATAL = 1 << 1, + + + G_LOG_LEVEL_ERROR = 1 << 2, + G_LOG_LEVEL_CRITICAL = 1 << 3, + G_LOG_LEVEL_WARNING = 1 << 4, + G_LOG_LEVEL_MESSAGE = 1 << 5, + G_LOG_LEVEL_INFO = 1 << 6, + G_LOG_LEVEL_DEBUG = 1 << 7, + + G_LOG_LEVEL_MASK = ~(G_LOG_FLAG_RECURSION | G_LOG_FLAG_FATAL) +} GLogLevelFlags; + + + + +typedef void (*GLogFunc) (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *message, + gpointer user_data); + + + +guint g_log_set_handler (const gchar *log_domain, + GLogLevelFlags log_levels, + GLogFunc log_func, + gpointer user_data); +void g_log_remove_handler (const gchar *log_domain, + guint handler_id); +void g_log_default_handler (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *message, + gpointer unused_data); +GLogFunc g_log_set_default_handler (GLogFunc log_func, + gpointer user_data); +void g_log (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *format, + ...) __attribute__((__format__ (__printf__, 3, 4))); +void g_logv (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *format, + va_list args); +GLogLevelFlags g_log_set_fatal_mask (const gchar *log_domain, + GLogLevelFlags fatal_mask); +GLogLevelFlags g_log_set_always_fatal (GLogLevelFlags fatal_mask); + + +__attribute__((visibility("hidden"))) void _g_log_fallback_handler (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *message, + gpointer unused_data); + + +void g_return_if_fail_warning (const char *log_domain, + const char *pretty_function, + const char *expression); +void g_warn_message (const char *domain, + const char *file, + int line, + const char *func, + const char *warnexpr); +__attribute__((__deprecated__)) +void g_assert_warning (const char *log_domain, + const char *file, + const int line, + const char *pretty_function, + const char *expression) __attribute__((__noreturn__)); +# 235 "/usr/include/glib-2.0/glib/gmessages.h" 3 +typedef void (*GPrintFunc) (const gchar *string); +void g_print (const gchar *format, + ...) __attribute__((__format__ (__printf__, 1, 2))); +GPrintFunc g_set_print_handler (GPrintFunc func); +void g_printerr (const gchar *format, + ...) __attribute__((__format__ (__printf__, 1, 2))); +GPrintFunc g_set_printerr_handler (GPrintFunc func); +# 402 "/usr/include/glib-2.0/glib/gmessages.h" 3 + +# 65 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gnode.h" 1 +# 34 "/usr/include/glib-2.0/glib/gnode.h" +# 1 "/usr/include/glib-2.0/glib/gmem.h" 1 +# 35 "/usr/include/glib-2.0/glib/gnode.h" 2 + + + +typedef struct _GNode GNode; + + +typedef enum +{ + G_TRAVERSE_LEAVES = 1 << 0, + G_TRAVERSE_NON_LEAVES = 1 << 1, + G_TRAVERSE_ALL = G_TRAVERSE_LEAVES | G_TRAVERSE_NON_LEAVES, + G_TRAVERSE_MASK = 0x03, + G_TRAVERSE_LEAFS = G_TRAVERSE_LEAVES, + G_TRAVERSE_NON_LEAFS = G_TRAVERSE_NON_LEAVES +} GTraverseFlags; + + +typedef enum +{ + G_IN_ORDER, + G_PRE_ORDER, + G_POST_ORDER, + G_LEVEL_ORDER +} GTraverseType; + +typedef gboolean (*GNodeTraverseFunc) (GNode *node, + gpointer data); +typedef void (*GNodeForeachFunc) (GNode *node, + gpointer data); +# 77 "/usr/include/glib-2.0/glib/gnode.h" +typedef gpointer (*GCopyFunc) (gconstpointer src, + gpointer data); + + + +struct _GNode +{ + gpointer data; + GNode *next; + GNode *prev; + GNode *parent; + GNode *children; +}; +# 115 "/usr/include/glib-2.0/glib/gnode.h" +GNode* g_node_new (gpointer data); +void g_node_destroy (GNode *root); +void g_node_unlink (GNode *node); +GNode* g_node_copy_deep (GNode *node, + GCopyFunc copy_func, + gpointer data); +GNode* g_node_copy (GNode *node); +GNode* g_node_insert (GNode *parent, + gint position, + GNode *node); +GNode* g_node_insert_before (GNode *parent, + GNode *sibling, + GNode *node); +GNode* g_node_insert_after (GNode *parent, + GNode *sibling, + GNode *node); +GNode* g_node_prepend (GNode *parent, + GNode *node); +guint g_node_n_nodes (GNode *root, + GTraverseFlags flags); +GNode* g_node_get_root (GNode *node); +gboolean g_node_is_ancestor (GNode *node, + GNode *descendant); +guint g_node_depth (GNode *node); +GNode* g_node_find (GNode *root, + GTraverseType order, + GTraverseFlags flags, + gpointer data); +# 226 "/usr/include/glib-2.0/glib/gnode.h" +void g_node_traverse (GNode *root, + GTraverseType order, + GTraverseFlags flags, + gint max_depth, + GNodeTraverseFunc func, + gpointer data); + + + + + + +guint g_node_max_height (GNode *root); + +void g_node_children_foreach (GNode *node, + GTraverseFlags flags, + GNodeForeachFunc func, + gpointer data); +void g_node_reverse_children (GNode *node); +guint g_node_n_children (GNode *node); +GNode* g_node_nth_child (GNode *node, + guint n); +GNode* g_node_last_child (GNode *node); +GNode* g_node_find_child (GNode *node, + GTraverseFlags flags, + gpointer data); +gint g_node_child_position (GNode *node, + GNode *child); +gint g_node_child_index (GNode *node, + gpointer data); + +GNode* g_node_first_sibling (GNode *node); +GNode* g_node_last_sibling (GNode *node); +# 296 "/usr/include/glib-2.0/glib/gnode.h" + +# 66 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/goption.h" 1 +# 28 "/usr/include/glib-2.0/glib/goption.h" +# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 +# 29 "/usr/include/glib-2.0/glib/goption.h" 2 +# 1 "/usr/include/glib-2.0/glib/gquark.h" 1 +# 30 "/usr/include/glib-2.0/glib/goption.h" 2 + + +# 40 "/usr/include/glib-2.0/glib/goption.h" +typedef struct _GOptionContext GOptionContext; +# 53 "/usr/include/glib-2.0/glib/goption.h" +typedef struct _GOptionGroup GOptionGroup; +typedef struct _GOptionEntry GOptionEntry; +# 82 "/usr/include/glib-2.0/glib/goption.h" +typedef enum +{ + G_OPTION_FLAG_HIDDEN = 1 << 0, + G_OPTION_FLAG_IN_MAIN = 1 << 1, + G_OPTION_FLAG_REVERSE = 1 << 2, + G_OPTION_FLAG_NO_ARG = 1 << 3, + G_OPTION_FLAG_FILENAME = 1 << 4, + G_OPTION_FLAG_OPTIONAL_ARG = 1 << 5, + G_OPTION_FLAG_NOALIAS = 1 << 6 +} GOptionFlags; +# 118 "/usr/include/glib-2.0/glib/goption.h" +typedef enum +{ + G_OPTION_ARG_NONE, + G_OPTION_ARG_STRING, + G_OPTION_ARG_INT, + G_OPTION_ARG_CALLBACK, + G_OPTION_ARG_FILENAME, + G_OPTION_ARG_STRING_ARRAY, + G_OPTION_ARG_FILENAME_ARRAY, + G_OPTION_ARG_DOUBLE, + G_OPTION_ARG_INT64 +} GOptionArg; +# 148 "/usr/include/glib-2.0/glib/goption.h" +typedef gboolean (*GOptionArgFunc) (const gchar *option_name, + const gchar *value, + gpointer data, + GError **error); +# 166 "/usr/include/glib-2.0/glib/goption.h" +typedef gboolean (*GOptionParseFunc) (GOptionContext *context, + GOptionGroup *group, + gpointer data, + GError **error); +# 181 "/usr/include/glib-2.0/glib/goption.h" +typedef void (*GOptionErrorFunc) (GOptionContext *context, + GOptionGroup *group, + gpointer data, + GError **error); +# 205 "/usr/include/glib-2.0/glib/goption.h" +typedef enum +{ + G_OPTION_ERROR_UNKNOWN_OPTION, + G_OPTION_ERROR_BAD_VALUE, + G_OPTION_ERROR_FAILED +} GOptionError; + +GQuark g_option_error_quark (void); +# 279 "/usr/include/glib-2.0/glib/goption.h" +struct _GOptionEntry +{ + const gchar *long_name; + gchar short_name; + gint flags; + + GOptionArg arg; + gpointer arg_data; + + const gchar *description; + const gchar *arg_description; +}; +# 310 "/usr/include/glib-2.0/glib/goption.h" +GOptionContext *g_option_context_new (const gchar *parameter_string); +void g_option_context_set_summary (GOptionContext *context, + const gchar *summary); +const gchar * g_option_context_get_summary (GOptionContext *context); +void g_option_context_set_description (GOptionContext *context, + const gchar *description); +const gchar * g_option_context_get_description (GOptionContext *context); +void g_option_context_free (GOptionContext *context); +void g_option_context_set_help_enabled (GOptionContext *context, + gboolean help_enabled); +gboolean g_option_context_get_help_enabled (GOptionContext *context); +void g_option_context_set_ignore_unknown_options (GOptionContext *context, + gboolean ignore_unknown); +gboolean g_option_context_get_ignore_unknown_options (GOptionContext *context); + +void g_option_context_add_main_entries (GOptionContext *context, + const GOptionEntry *entries, + const gchar *translation_domain); +gboolean g_option_context_parse (GOptionContext *context, + gint *argc, + gchar ***argv, + GError **error); +void g_option_context_set_translate_func (GOptionContext *context, + GTranslateFunc func, + gpointer data, + GDestroyNotify destroy_notify); +void g_option_context_set_translation_domain (GOptionContext *context, + const gchar *domain); + +void g_option_context_add_group (GOptionContext *context, + GOptionGroup *group); +void g_option_context_set_main_group (GOptionContext *context, + GOptionGroup *group); +GOptionGroup *g_option_context_get_main_group (GOptionContext *context); +gchar *g_option_context_get_help (GOptionContext *context, + gboolean main_help, + GOptionGroup *group); + +GOptionGroup *g_option_group_new (const gchar *name, + const gchar *description, + const gchar *help_description, + gpointer user_data, + GDestroyNotify destroy); +void g_option_group_set_parse_hooks (GOptionGroup *group, + GOptionParseFunc pre_parse_func, + GOptionParseFunc post_parse_func); +void g_option_group_set_error_hook (GOptionGroup *group, + GOptionErrorFunc error_func); +void g_option_group_free (GOptionGroup *group); +void g_option_group_add_entries (GOptionGroup *group, + const GOptionEntry *entries); +void g_option_group_set_translate_func (GOptionGroup *group, + GTranslateFunc func, + gpointer data, + GDestroyNotify destroy_notify); +void g_option_group_set_translation_domain (GOptionGroup *group, + const gchar *domain); + + +# 67 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gpattern.h" 1 +# 27 "/usr/include/glib-2.0/glib/gpattern.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 28 "/usr/include/glib-2.0/glib/gpattern.h" 2 + + + + +typedef struct _GPatternSpec GPatternSpec; + +GPatternSpec* g_pattern_spec_new (const gchar *pattern); +void g_pattern_spec_free (GPatternSpec *pspec); +gboolean g_pattern_spec_equal (GPatternSpec *pspec1, + GPatternSpec *pspec2); +gboolean g_pattern_match (GPatternSpec *pspec, + guint string_length, + const gchar *string, + const gchar *string_reversed); +gboolean g_pattern_match_string (GPatternSpec *pspec, + const gchar *string); +gboolean g_pattern_match_simple (const gchar *pattern, + const gchar *string); + + +# 68 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gpoll.h" 1 +# 69 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gprimes.h" 1 +# 34 "/usr/include/glib-2.0/glib/gprimes.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/gprimes.h" 2 + + +# 47 "/usr/include/glib-2.0/glib/gprimes.h" +guint g_spaced_primes_closest (guint num) __attribute__((__const__)); + + +# 70 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gqsort.h" 1 +# 34 "/usr/include/glib-2.0/glib/gqsort.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/gqsort.h" 2 + + + +void g_qsort_with_data (gconstpointer pbase, + gint total_elems, + gsize size, + GCompareDataFunc compare_func, + gpointer user_data); + + +# 71 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gquark.h" 1 +# 72 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gqueue.h" 1 +# 34 "/usr/include/glib-2.0/glib/gqueue.h" +# 1 "/usr/include/glib-2.0/glib/glist.h" 1 +# 35 "/usr/include/glib-2.0/glib/gqueue.h" 2 + + + +typedef struct _GQueue GQueue; +# 49 "/usr/include/glib-2.0/glib/gqueue.h" +struct _GQueue +{ + GList *head; + GList *tail; + guint length; +}; +# 74 "/usr/include/glib-2.0/glib/gqueue.h" +GQueue* g_queue_new (void); +void g_queue_free (GQueue *queue); +void g_queue_free_full (GQueue *queue, + GDestroyNotify free_func); +void g_queue_init (GQueue *queue); +void g_queue_clear (GQueue *queue); +gboolean g_queue_is_empty (GQueue *queue); +guint g_queue_get_length (GQueue *queue); +void g_queue_reverse (GQueue *queue); +GQueue * g_queue_copy (GQueue *queue); +void g_queue_foreach (GQueue *queue, + GFunc func, + gpointer user_data); +GList * g_queue_find (GQueue *queue, + gconstpointer data); +GList * g_queue_find_custom (GQueue *queue, + gconstpointer data, + GCompareFunc func); +void g_queue_sort (GQueue *queue, + GCompareDataFunc compare_func, + gpointer user_data); + +void g_queue_push_head (GQueue *queue, + gpointer data); +void g_queue_push_tail (GQueue *queue, + gpointer data); +void g_queue_push_nth (GQueue *queue, + gpointer data, + gint n); +gpointer g_queue_pop_head (GQueue *queue); +gpointer g_queue_pop_tail (GQueue *queue); +gpointer g_queue_pop_nth (GQueue *queue, + guint n); +gpointer g_queue_peek_head (GQueue *queue); +gpointer g_queue_peek_tail (GQueue *queue); +gpointer g_queue_peek_nth (GQueue *queue, + guint n); +gint g_queue_index (GQueue *queue, + gconstpointer data); +gboolean g_queue_remove (GQueue *queue, + gconstpointer data); +guint g_queue_remove_all (GQueue *queue, + gconstpointer data); +void g_queue_insert_before (GQueue *queue, + GList *sibling, + gpointer data); +void g_queue_insert_after (GQueue *queue, + GList *sibling, + gpointer data); +void g_queue_insert_sorted (GQueue *queue, + gpointer data, + GCompareDataFunc func, + gpointer user_data); + +void g_queue_push_head_link (GQueue *queue, + GList *link_); +void g_queue_push_tail_link (GQueue *queue, + GList *link_); +void g_queue_push_nth_link (GQueue *queue, + gint n, + GList *link_); +GList* g_queue_pop_head_link (GQueue *queue); +GList* g_queue_pop_tail_link (GQueue *queue); +GList* g_queue_pop_nth_link (GQueue *queue, + guint n); +GList* g_queue_peek_head_link (GQueue *queue); +GList* g_queue_peek_tail_link (GQueue *queue); +GList* g_queue_peek_nth_link (GQueue *queue, + guint n); +gint g_queue_link_index (GQueue *queue, + GList *link_); +void g_queue_unlink (GQueue *queue, + GList *link_); +void g_queue_delete_link (GQueue *queue, + GList *link_); + + +# 73 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/grand.h" 1 +# 34 "/usr/include/glib-2.0/glib/grand.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/grand.h" 2 + + + +typedef struct _GRand GRand; +# 49 "/usr/include/glib-2.0/glib/grand.h" +GRand* g_rand_new_with_seed (guint32 seed); +GRand* g_rand_new_with_seed_array (const guint32 *seed, + guint seed_length); +GRand* g_rand_new (void); +void g_rand_free (GRand *rand_); +GRand* g_rand_copy (GRand *rand_); +void g_rand_set_seed (GRand *rand_, + guint32 seed); +void g_rand_set_seed_array (GRand *rand_, + const guint32 *seed, + guint seed_length); + + + +guint32 g_rand_int (GRand *rand_); +gint32 g_rand_int_range (GRand *rand_, + gint32 begin, + gint32 end); +gdouble g_rand_double (GRand *rand_); +gdouble g_rand_double_range (GRand *rand_, + gdouble begin, + gdouble end); +void g_random_set_seed (guint32 seed); + + + +guint32 g_random_int (void); +gint32 g_random_int_range (gint32 begin, + gint32 end); +gdouble g_random_double (void); +gdouble g_random_double_range (gdouble begin, + gdouble end); + + + +# 74 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gregex.h" 1 +# 29 "/usr/include/glib-2.0/glib/gregex.h" +# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 +# 30 "/usr/include/glib-2.0/glib/gregex.h" 2 +# 1 "/usr/include/glib-2.0/glib/gstring.h" 1 +# 31 "/usr/include/glib-2.0/glib/gregex.h" 2 + + +# 117 "/usr/include/glib-2.0/glib/gregex.h" +typedef enum +{ + G_REGEX_ERROR_COMPILE, + G_REGEX_ERROR_OPTIMIZE, + G_REGEX_ERROR_REPLACE, + G_REGEX_ERROR_MATCH, + G_REGEX_ERROR_INTERNAL, + + + G_REGEX_ERROR_STRAY_BACKSLASH = 101, + G_REGEX_ERROR_MISSING_CONTROL_CHAR = 102, + G_REGEX_ERROR_UNRECOGNIZED_ESCAPE = 103, + G_REGEX_ERROR_QUANTIFIERS_OUT_OF_ORDER = 104, + G_REGEX_ERROR_QUANTIFIER_TOO_BIG = 105, + G_REGEX_ERROR_UNTERMINATED_CHARACTER_CLASS = 106, + G_REGEX_ERROR_INVALID_ESCAPE_IN_CHARACTER_CLASS = 107, + G_REGEX_ERROR_RANGE_OUT_OF_ORDER = 108, + G_REGEX_ERROR_NOTHING_TO_REPEAT = 109, + G_REGEX_ERROR_UNRECOGNIZED_CHARACTER = 112, + G_REGEX_ERROR_POSIX_NAMED_CLASS_OUTSIDE_CLASS = 113, + G_REGEX_ERROR_UNMATCHED_PARENTHESIS = 114, + G_REGEX_ERROR_INEXISTENT_SUBPATTERN_REFERENCE = 115, + G_REGEX_ERROR_UNTERMINATED_COMMENT = 118, + G_REGEX_ERROR_EXPRESSION_TOO_LARGE = 120, + G_REGEX_ERROR_MEMORY_ERROR = 121, + G_REGEX_ERROR_VARIABLE_LENGTH_LOOKBEHIND = 125, + G_REGEX_ERROR_MALFORMED_CONDITION = 126, + G_REGEX_ERROR_TOO_MANY_CONDITIONAL_BRANCHES = 127, + G_REGEX_ERROR_ASSERTION_EXPECTED = 128, + G_REGEX_ERROR_UNKNOWN_POSIX_CLASS_NAME = 130, + G_REGEX_ERROR_POSIX_COLLATING_ELEMENTS_NOT_SUPPORTED = 131, + G_REGEX_ERROR_HEX_CODE_TOO_LARGE = 134, + G_REGEX_ERROR_INVALID_CONDITION = 135, + G_REGEX_ERROR_SINGLE_BYTE_MATCH_IN_LOOKBEHIND = 136, + G_REGEX_ERROR_INFINITE_LOOP = 140, + G_REGEX_ERROR_MISSING_SUBPATTERN_NAME_TERMINATOR = 142, + G_REGEX_ERROR_DUPLICATE_SUBPATTERN_NAME = 143, + G_REGEX_ERROR_MALFORMED_PROPERTY = 146, + G_REGEX_ERROR_UNKNOWN_PROPERTY = 147, + G_REGEX_ERROR_SUBPATTERN_NAME_TOO_LONG = 148, + G_REGEX_ERROR_TOO_MANY_SUBPATTERNS = 149, + G_REGEX_ERROR_INVALID_OCTAL_VALUE = 151, + G_REGEX_ERROR_TOO_MANY_BRANCHES_IN_DEFINE = 154, + G_REGEX_ERROR_DEFINE_REPETION = 155, + G_REGEX_ERROR_INCONSISTENT_NEWLINE_OPTIONS = 156, + G_REGEX_ERROR_MISSING_BACK_REFERENCE = 157 +} GRegexError; +# 176 "/usr/include/glib-2.0/glib/gregex.h" +GQuark g_regex_error_quark (void); +# 243 "/usr/include/glib-2.0/glib/gregex.h" +typedef enum +{ + G_REGEX_CASELESS = 1 << 0, + G_REGEX_MULTILINE = 1 << 1, + G_REGEX_DOTALL = 1 << 2, + G_REGEX_EXTENDED = 1 << 3, + G_REGEX_ANCHORED = 1 << 4, + G_REGEX_DOLLAR_ENDONLY = 1 << 5, + G_REGEX_UNGREEDY = 1 << 9, + G_REGEX_RAW = 1 << 11, + G_REGEX_NO_AUTO_CAPTURE = 1 << 12, + G_REGEX_OPTIMIZE = 1 << 13, + G_REGEX_DUPNAMES = 1 << 19, + G_REGEX_NEWLINE_CR = 1 << 20, + G_REGEX_NEWLINE_LF = 1 << 21, + G_REGEX_NEWLINE_CRLF = G_REGEX_NEWLINE_CR | G_REGEX_NEWLINE_LF +} GRegexCompileFlags; +# 306 "/usr/include/glib-2.0/glib/gregex.h" +typedef enum +{ + G_REGEX_MATCH_ANCHORED = 1 << 4, + G_REGEX_MATCH_NOTBOL = 1 << 7, + G_REGEX_MATCH_NOTEOL = 1 << 8, + G_REGEX_MATCH_NOTEMPTY = 1 << 10, + G_REGEX_MATCH_PARTIAL = 1 << 15, + G_REGEX_MATCH_NEWLINE_CR = 1 << 20, + G_REGEX_MATCH_NEWLINE_LF = 1 << 21, + G_REGEX_MATCH_NEWLINE_CRLF = G_REGEX_MATCH_NEWLINE_CR | G_REGEX_MATCH_NEWLINE_LF, + G_REGEX_MATCH_NEWLINE_ANY = 1 << 22 +} GRegexMatchFlags; +# 327 "/usr/include/glib-2.0/glib/gregex.h" +typedef struct _GRegex GRegex; + + +typedef struct _GMatchInfo GMatchInfo; +# 349 "/usr/include/glib-2.0/glib/gregex.h" +typedef gboolean (*GRegexEvalCallback) (const GMatchInfo *match_info, + GString *result, + gpointer user_data); + + +GRegex *g_regex_new (const gchar *pattern, + GRegexCompileFlags compile_options, + GRegexMatchFlags match_options, + GError **error); +GRegex *g_regex_ref (GRegex *regex); +void g_regex_unref (GRegex *regex); +const gchar *g_regex_get_pattern (const GRegex *regex); +gint g_regex_get_max_backref (const GRegex *regex); +gint g_regex_get_capture_count (const GRegex *regex); +gint g_regex_get_string_number (const GRegex *regex, + const gchar *name); +gchar *g_regex_escape_string (const gchar *string, + gint length); +gchar *g_regex_escape_nul (const gchar *string, + gint length); + +GRegexCompileFlags g_regex_get_compile_flags (const GRegex *regex); +GRegexMatchFlags g_regex_get_match_flags (const GRegex *regex); + + +gboolean g_regex_match_simple (const gchar *pattern, + const gchar *string, + GRegexCompileFlags compile_options, + GRegexMatchFlags match_options); +gboolean g_regex_match (const GRegex *regex, + const gchar *string, + GRegexMatchFlags match_options, + GMatchInfo **match_info); +gboolean g_regex_match_full (const GRegex *regex, + const gchar *string, + gssize string_len, + gint start_position, + GRegexMatchFlags match_options, + GMatchInfo **match_info, + GError **error); +gboolean g_regex_match_all (const GRegex *regex, + const gchar *string, + GRegexMatchFlags match_options, + GMatchInfo **match_info); +gboolean g_regex_match_all_full (const GRegex *regex, + const gchar *string, + gssize string_len, + gint start_position, + GRegexMatchFlags match_options, + GMatchInfo **match_info, + GError **error); + + +gchar **g_regex_split_simple (const gchar *pattern, + const gchar *string, + GRegexCompileFlags compile_options, + GRegexMatchFlags match_options); +gchar **g_regex_split (const GRegex *regex, + const gchar *string, + GRegexMatchFlags match_options); +gchar **g_regex_split_full (const GRegex *regex, + const gchar *string, + gssize string_len, + gint start_position, + GRegexMatchFlags match_options, + gint max_tokens, + GError **error); + + +gchar *g_regex_replace (const GRegex *regex, + const gchar *string, + gssize string_len, + gint start_position, + const gchar *replacement, + GRegexMatchFlags match_options, + GError **error); +gchar *g_regex_replace_literal (const GRegex *regex, + const gchar *string, + gssize string_len, + gint start_position, + const gchar *replacement, + GRegexMatchFlags match_options, + GError **error); +gchar *g_regex_replace_eval (const GRegex *regex, + const gchar *string, + gssize string_len, + gint start_position, + GRegexMatchFlags match_options, + GRegexEvalCallback eval, + gpointer user_data, + GError **error); +gboolean g_regex_check_replacement (const gchar *replacement, + gboolean *has_references, + GError **error); + + +GRegex *g_match_info_get_regex (const GMatchInfo *match_info); +const gchar *g_match_info_get_string (const GMatchInfo *match_info); + +GMatchInfo *g_match_info_ref (GMatchInfo *match_info); +void g_match_info_unref (GMatchInfo *match_info); +void g_match_info_free (GMatchInfo *match_info); +gboolean g_match_info_next (GMatchInfo *match_info, + GError **error); +gboolean g_match_info_matches (const GMatchInfo *match_info); +gint g_match_info_get_match_count (const GMatchInfo *match_info); +gboolean g_match_info_is_partial_match (const GMatchInfo *match_info); +gchar *g_match_info_expand_references(const GMatchInfo *match_info, + const gchar *string_to_expand, + GError **error); +gchar *g_match_info_fetch (const GMatchInfo *match_info, + gint match_num); +gboolean g_match_info_fetch_pos (const GMatchInfo *match_info, + gint match_num, + gint *start_pos, + gint *end_pos); +gchar *g_match_info_fetch_named (const GMatchInfo *match_info, + const gchar *name); +gboolean g_match_info_fetch_named_pos (const GMatchInfo *match_info, + const gchar *name, + gint *start_pos, + gint *end_pos); +gchar **g_match_info_fetch_all (const GMatchInfo *match_info); + + +# 75 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gscanner.h" 1 +# 34 "/usr/include/glib-2.0/glib/gscanner.h" +# 1 "/usr/include/glib-2.0/glib/gdataset.h" 1 +# 35 "/usr/include/glib-2.0/glib/gscanner.h" 2 +# 1 "/usr/include/glib-2.0/glib/ghash.h" 1 +# 36 "/usr/include/glib-2.0/glib/gscanner.h" 2 + + + +typedef struct _GScanner GScanner; +typedef struct _GScannerConfig GScannerConfig; +typedef union _GTokenValue GTokenValue; + +typedef void (*GScannerMsgFunc) (GScanner *scanner, + gchar *message, + gboolean error); +# 64 "/usr/include/glib-2.0/glib/gscanner.h" +typedef enum +{ + G_ERR_UNKNOWN, + G_ERR_UNEXP_EOF, + G_ERR_UNEXP_EOF_IN_STRING, + G_ERR_UNEXP_EOF_IN_COMMENT, + G_ERR_NON_DIGIT_IN_CONST, + G_ERR_DIGIT_RADIX, + G_ERR_FLOAT_RADIX, + G_ERR_FLOAT_MALFORMED +} GErrorType; + + +typedef enum +{ + G_TOKEN_EOF = 0, + + G_TOKEN_LEFT_PAREN = '(', + G_TOKEN_RIGHT_PAREN = ')', + G_TOKEN_LEFT_CURLY = '{', + G_TOKEN_RIGHT_CURLY = '}', + G_TOKEN_LEFT_BRACE = '[', + G_TOKEN_RIGHT_BRACE = ']', + G_TOKEN_EQUAL_SIGN = '=', + G_TOKEN_COMMA = ',', + + G_TOKEN_NONE = 256, + + G_TOKEN_ERROR, + + G_TOKEN_CHAR, + G_TOKEN_BINARY, + G_TOKEN_OCTAL, + G_TOKEN_INT, + G_TOKEN_HEX, + G_TOKEN_FLOAT, + G_TOKEN_STRING, + + G_TOKEN_SYMBOL, + G_TOKEN_IDENTIFIER, + G_TOKEN_IDENTIFIER_NULL, + + G_TOKEN_COMMENT_SINGLE, + G_TOKEN_COMMENT_MULTI, + + + G_TOKEN_LAST +} GTokenType; + +union _GTokenValue +{ + gpointer v_symbol; + gchar *v_identifier; + gulong v_binary; + gulong v_octal; + gulong v_int; + guint64 v_int64; + gdouble v_float; + gulong v_hex; + gchar *v_string; + gchar *v_comment; + guchar v_char; + guint v_error; +}; + +struct _GScannerConfig +{ + + + gchar *cset_skip_characters; + gchar *cset_identifier_first; + gchar *cset_identifier_nth; + gchar *cpair_comment_single; + + + + guint case_sensitive : 1; + + + + + guint skip_comment_multi : 1; + guint skip_comment_single : 1; + guint scan_comment_multi : 1; + guint scan_identifier : 1; + guint scan_identifier_1char : 1; + guint scan_identifier_NULL : 1; + guint scan_symbols : 1; + guint scan_binary : 1; + guint scan_octal : 1; + guint scan_float : 1; + guint scan_hex : 1; + guint scan_hex_dollar : 1; + guint scan_string_sq : 1; + guint scan_string_dq : 1; + guint numbers_2_int : 1; + guint int_2_float : 1; + guint identifier_2_string : 1; + guint char_2_token : 1; + guint symbol_2_token : 1; + guint scope_0_fallback : 1; + guint store_int64 : 1; + + + guint padding_dummy; +}; + +struct _GScanner +{ + + gpointer user_data; + guint max_parse_errors; + + + guint parse_errors; + + + const gchar *input_name; + + + GData *qdata; + + + GScannerConfig *config; + + + GTokenType token; + GTokenValue value; + guint line; + guint position; + + + GTokenType next_token; + GTokenValue next_value; + guint next_line; + guint next_position; + + + + GHashTable *symbol_table; + gint input_fd; + const gchar *text; + const gchar *text_end; + gchar *buffer; + guint scope_id; + + + + GScannerMsgFunc msg_handler; +}; + +GScanner* g_scanner_new (const GScannerConfig *config_templ); +void g_scanner_destroy (GScanner *scanner); +void g_scanner_input_file (GScanner *scanner, + gint input_fd); +void g_scanner_sync_file_offset (GScanner *scanner); +void g_scanner_input_text (GScanner *scanner, + const gchar *text, + guint text_len); +GTokenType g_scanner_get_next_token (GScanner *scanner); +GTokenType g_scanner_peek_next_token (GScanner *scanner); +GTokenType g_scanner_cur_token (GScanner *scanner); +GTokenValue g_scanner_cur_value (GScanner *scanner); +guint g_scanner_cur_line (GScanner *scanner); +guint g_scanner_cur_position (GScanner *scanner); +gboolean g_scanner_eof (GScanner *scanner); +guint g_scanner_set_scope (GScanner *scanner, + guint scope_id); +void g_scanner_scope_add_symbol (GScanner *scanner, + guint scope_id, + const gchar *symbol, + gpointer value); +void g_scanner_scope_remove_symbol (GScanner *scanner, + guint scope_id, + const gchar *symbol); +gpointer g_scanner_scope_lookup_symbol (GScanner *scanner, + guint scope_id, + const gchar *symbol); +void g_scanner_scope_foreach_symbol (GScanner *scanner, + guint scope_id, + GHFunc func, + gpointer user_data); +gpointer g_scanner_lookup_symbol (GScanner *scanner, + const gchar *symbol); +void g_scanner_unexp_token (GScanner *scanner, + GTokenType expected_token, + const gchar *identifier_spec, + const gchar *symbol_spec, + const gchar *symbol_name, + const gchar *message, + gint is_error); +void g_scanner_error (GScanner *scanner, + const gchar *format, + ...) __attribute__((__format__ (__printf__, 2, 3))); +void g_scanner_warn (GScanner *scanner, + const gchar *format, + ...) __attribute__((__format__ (__printf__, 2, 3))); +# 282 "/usr/include/glib-2.0/glib/gscanner.h" + +# 76 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gsequence.h" 1 +# 28 "/usr/include/glib-2.0/glib/gsequence.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 29 "/usr/include/glib-2.0/glib/gsequence.h" 2 + + + +typedef struct _GSequence GSequence; +typedef struct _GSequenceNode GSequenceIter; + +typedef gint (* GSequenceIterCompareFunc) (GSequenceIter *a, + GSequenceIter *b, + gpointer data); + + + +GSequence * g_sequence_new (GDestroyNotify data_destroy); +void g_sequence_free (GSequence *seq); +gint g_sequence_get_length (GSequence *seq); +void g_sequence_foreach (GSequence *seq, + GFunc func, + gpointer user_data); +void g_sequence_foreach_range (GSequenceIter *begin, + GSequenceIter *end, + GFunc func, + gpointer user_data); +void g_sequence_sort (GSequence *seq, + GCompareDataFunc cmp_func, + gpointer cmp_data); +void g_sequence_sort_iter (GSequence *seq, + GSequenceIterCompareFunc cmp_func, + gpointer cmp_data); + + + +GSequenceIter *g_sequence_get_begin_iter (GSequence *seq); +GSequenceIter *g_sequence_get_end_iter (GSequence *seq); +GSequenceIter *g_sequence_get_iter_at_pos (GSequence *seq, + gint pos); +GSequenceIter *g_sequence_append (GSequence *seq, + gpointer data); +GSequenceIter *g_sequence_prepend (GSequence *seq, + gpointer data); +GSequenceIter *g_sequence_insert_before (GSequenceIter *iter, + gpointer data); +void g_sequence_move (GSequenceIter *src, + GSequenceIter *dest); +void g_sequence_swap (GSequenceIter *a, + GSequenceIter *b); +GSequenceIter *g_sequence_insert_sorted (GSequence *seq, + gpointer data, + GCompareDataFunc cmp_func, + gpointer cmp_data); +GSequenceIter *g_sequence_insert_sorted_iter (GSequence *seq, + gpointer data, + GSequenceIterCompareFunc iter_cmp, + gpointer cmp_data); +void g_sequence_sort_changed (GSequenceIter *iter, + GCompareDataFunc cmp_func, + gpointer cmp_data); +void g_sequence_sort_changed_iter (GSequenceIter *iter, + GSequenceIterCompareFunc iter_cmp, + gpointer cmp_data); +void g_sequence_remove (GSequenceIter *iter); +void g_sequence_remove_range (GSequenceIter *begin, + GSequenceIter *end); +void g_sequence_move_range (GSequenceIter *dest, + GSequenceIter *begin, + GSequenceIter *end); +GSequenceIter *g_sequence_search (GSequence *seq, + gpointer data, + GCompareDataFunc cmp_func, + gpointer cmp_data); +GSequenceIter *g_sequence_search_iter (GSequence *seq, + gpointer data, + GSequenceIterCompareFunc iter_cmp, + gpointer cmp_data); +GSequenceIter *g_sequence_lookup (GSequence *seq, + gpointer data, + GCompareDataFunc cmp_func, + gpointer cmp_data); +GSequenceIter *g_sequence_lookup_iter (GSequence *seq, + gpointer data, + GSequenceIterCompareFunc iter_cmp, + gpointer cmp_data); + + + +gpointer g_sequence_get (GSequenceIter *iter); +void g_sequence_set (GSequenceIter *iter, + gpointer data); + + +gboolean g_sequence_iter_is_begin (GSequenceIter *iter); +gboolean g_sequence_iter_is_end (GSequenceIter *iter); +GSequenceIter *g_sequence_iter_next (GSequenceIter *iter); +GSequenceIter *g_sequence_iter_prev (GSequenceIter *iter); +gint g_sequence_iter_get_position (GSequenceIter *iter); +GSequenceIter *g_sequence_iter_move (GSequenceIter *iter, + gint delta); +GSequence * g_sequence_iter_get_sequence (GSequenceIter *iter); + + + +gint g_sequence_iter_compare (GSequenceIter *a, + GSequenceIter *b); +GSequenceIter *g_sequence_range_get_midpoint (GSequenceIter *begin, + GSequenceIter *end); + + +# 77 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gshell.h" 1 +# 28 "/usr/include/glib-2.0/glib/gshell.h" +# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 +# 29 "/usr/include/glib-2.0/glib/gshell.h" 2 + + + + + +typedef enum +{ + + G_SHELL_ERROR_BAD_QUOTING, + + G_SHELL_ERROR_EMPTY_STRING, + G_SHELL_ERROR_FAILED +} GShellError; + +GQuark g_shell_error_quark (void); + +gchar* g_shell_quote (const gchar *unquoted_string); +gchar* g_shell_unquote (const gchar *quoted_string, + GError **error); +gboolean g_shell_parse_argv (const gchar *command_line, + gint *argcp, + gchar ***argvp, + GError **error); + + +# 78 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gslice.h" 1 +# 27 "/usr/include/glib-2.0/glib/gslice.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 28 "/usr/include/glib-2.0/glib/gslice.h" 2 + + + + + +gpointer g_slice_alloc (gsize block_size) __attribute__((__malloc__)) __attribute__((__alloc_size__(1))); +gpointer g_slice_alloc0 (gsize block_size) __attribute__((__malloc__)) __attribute__((__alloc_size__(1))); +gpointer g_slice_copy (gsize block_size, + gconstpointer mem_block) __attribute__((__malloc__)) __attribute__((__alloc_size__(1))); +void g_slice_free1 (gsize block_size, + gpointer mem_block); +void g_slice_free_chain_with_offset (gsize block_size, + gpointer mem_chain, + gsize next_offset); +# 72 "/usr/include/glib-2.0/glib/gslice.h" +typedef enum { + G_SLICE_CONFIG_ALWAYS_MALLOC = 1, + G_SLICE_CONFIG_BYPASS_MAGAZINES, + G_SLICE_CONFIG_WORKING_SET_MSECS, + G_SLICE_CONFIG_COLOR_INCREMENT, + G_SLICE_CONFIG_CHUNK_SIZES, + G_SLICE_CONFIG_CONTENTION_COUNTER +} GSliceConfig; +void g_slice_set_config (GSliceConfig ckey, gint64 value); +gint64 g_slice_get_config (GSliceConfig ckey); +gint64* g_slice_get_config_state (GSliceConfig ckey, gint64 address, guint *n_values); + + +# 79 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gslist.h" 1 +# 80 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gspawn.h" 1 +# 28 "/usr/include/glib-2.0/glib/gspawn.h" +# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 +# 29 "/usr/include/glib-2.0/glib/gspawn.h" 2 + + +# 70 "/usr/include/glib-2.0/glib/gspawn.h" +typedef enum +{ + G_SPAWN_ERROR_FORK, + G_SPAWN_ERROR_READ, + G_SPAWN_ERROR_CHDIR, + G_SPAWN_ERROR_ACCES, + G_SPAWN_ERROR_PERM, + G_SPAWN_ERROR_TOO_BIG, + + G_SPAWN_ERROR_2BIG = G_SPAWN_ERROR_TOO_BIG, + + G_SPAWN_ERROR_NOEXEC, + G_SPAWN_ERROR_NAMETOOLONG, + G_SPAWN_ERROR_NOENT, + G_SPAWN_ERROR_NOMEM, + G_SPAWN_ERROR_NOTDIR, + G_SPAWN_ERROR_LOOP, + G_SPAWN_ERROR_TXTBUSY, + G_SPAWN_ERROR_IO, + G_SPAWN_ERROR_NFILE, + G_SPAWN_ERROR_MFILE, + G_SPAWN_ERROR_INVAL, + G_SPAWN_ERROR_ISDIR, + G_SPAWN_ERROR_LIBBAD, + G_SPAWN_ERROR_FAILED + + +} GSpawnError; +# 135 "/usr/include/glib-2.0/glib/gspawn.h" +typedef void (* GSpawnChildSetupFunc) (gpointer user_data); +# 161 "/usr/include/glib-2.0/glib/gspawn.h" +typedef enum +{ + G_SPAWN_LEAVE_DESCRIPTORS_OPEN = 1 << 0, + G_SPAWN_DO_NOT_REAP_CHILD = 1 << 1, + + G_SPAWN_SEARCH_PATH = 1 << 2, + + G_SPAWN_STDOUT_TO_DEV_NULL = 1 << 3, + G_SPAWN_STDERR_TO_DEV_NULL = 1 << 4, + G_SPAWN_CHILD_INHERITS_STDIN = 1 << 5, + G_SPAWN_FILE_AND_ARGV_ZERO = 1 << 6 +} GSpawnFlags; + +GQuark g_spawn_error_quark (void); +# 186 "/usr/include/glib-2.0/glib/gspawn.h" +gboolean g_spawn_async (const gchar *working_directory, + gchar **argv, + gchar **envp, + GSpawnFlags flags, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + GPid *child_pid, + GError **error); + + + + + +gboolean g_spawn_async_with_pipes (const gchar *working_directory, + gchar **argv, + gchar **envp, + GSpawnFlags flags, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + GPid *child_pid, + gint *standard_input, + gint *standard_output, + gint *standard_error, + GError **error); + + + + + + +gboolean g_spawn_sync (const gchar *working_directory, + gchar **argv, + gchar **envp, + GSpawnFlags flags, + GSpawnChildSetupFunc child_setup, + gpointer user_data, + gchar **standard_output, + gchar **standard_error, + gint *exit_status, + GError **error); + +gboolean g_spawn_command_line_sync (const gchar *command_line, + gchar **standard_output, + gchar **standard_error, + gint *exit_status, + GError **error); +gboolean g_spawn_command_line_async (const gchar *command_line, + GError **error); + +void g_spawn_close_pid (GPid pid); + + +# 81 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gstrfuncs.h" 1 +# 35 "/usr/include/glib-2.0/glib/gstrfuncs.h" +# 1 "/usr/include/glib-2.0/glib/gmacros.h" 1 +# 36 "/usr/include/glib-2.0/glib/gstrfuncs.h" 2 +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 37 "/usr/include/glib-2.0/glib/gstrfuncs.h" 2 + + + + +typedef enum { + G_ASCII_ALNUM = 1 << 0, + G_ASCII_ALPHA = 1 << 1, + G_ASCII_CNTRL = 1 << 2, + G_ASCII_DIGIT = 1 << 3, + G_ASCII_GRAPH = 1 << 4, + G_ASCII_LOWER = 1 << 5, + G_ASCII_PRINT = 1 << 6, + G_ASCII_PUNCT = 1 << 7, + G_ASCII_SPACE = 1 << 8, + G_ASCII_UPPER = 1 << 9, + G_ASCII_XDIGIT = 1 << 10 +} GAsciiType; + +extern const guint16 * const g_ascii_table; +# 90 "/usr/include/glib-2.0/glib/gstrfuncs.h" +gchar g_ascii_tolower (gchar c) __attribute__((__const__)); +gchar g_ascii_toupper (gchar c) __attribute__((__const__)); + +gint g_ascii_digit_value (gchar c) __attribute__((__const__)); +gint g_ascii_xdigit_value (gchar c) __attribute__((__const__)); + + + + + +gchar* g_strdelimit (gchar *string, + const gchar *delimiters, + gchar new_delimiter); +gchar* g_strcanon (gchar *string, + const gchar *valid_chars, + gchar substitutor); +const gchar * g_strerror (gint errnum) __attribute__((__const__)); +const gchar * g_strsignal (gint signum) __attribute__((__const__)); +gchar * g_strreverse (gchar *string); +gsize g_strlcpy (gchar *dest, + const gchar *src, + gsize dest_size); +gsize g_strlcat (gchar *dest, + const gchar *src, + gsize dest_size); +gchar * g_strstr_len (const gchar *haystack, + gssize haystack_len, + const gchar *needle); +gchar * g_strrstr (const gchar *haystack, + const gchar *needle); +gchar * g_strrstr_len (const gchar *haystack, + gssize haystack_len, + const gchar *needle); + +gboolean g_str_has_suffix (const gchar *str, + const gchar *suffix); +gboolean g_str_has_prefix (const gchar *str, + const gchar *prefix); + + + +gdouble g_strtod (const gchar *nptr, + gchar **endptr); +gdouble g_ascii_strtod (const gchar *nptr, + gchar **endptr); +guint64 g_ascii_strtoull (const gchar *nptr, + gchar **endptr, + guint base); +gint64 g_ascii_strtoll (const gchar *nptr, + gchar **endptr, + guint base); + + + + +gchar * g_ascii_dtostr (gchar *buffer, + gint buf_len, + gdouble d); +gchar * g_ascii_formatd (gchar *buffer, + gint buf_len, + const gchar *format, + gdouble d); + + +gchar* g_strchug (gchar *string); + +gchar* g_strchomp (gchar *string); + + + +gint g_ascii_strcasecmp (const gchar *s1, + const gchar *s2); +gint g_ascii_strncasecmp (const gchar *s1, + const gchar *s2, + gsize n); +gchar* g_ascii_strdown (const gchar *str, + gssize len) __attribute__((__malloc__)); +gchar* g_ascii_strup (const gchar *str, + gssize len) __attribute__((__malloc__)); + + +__attribute__((__deprecated__)) +gint g_strcasecmp (const gchar *s1, + const gchar *s2); +__attribute__((__deprecated__)) +gint g_strncasecmp (const gchar *s1, + const gchar *s2, + guint n); +__attribute__((__deprecated__)) +gchar* g_strdown (gchar *string); +__attribute__((__deprecated__)) +gchar* g_strup (gchar *string); + + + + + +gchar* g_strdup (const gchar *str) __attribute__((__malloc__)); +gchar* g_strdup_printf (const gchar *format, + ...) __attribute__((__format__ (__printf__, 1, 2))) __attribute__((__malloc__)); +gchar* g_strdup_vprintf (const gchar *format, + va_list args) __attribute__((__malloc__)); +gchar* g_strndup (const gchar *str, + gsize n) __attribute__((__malloc__)); +gchar* g_strnfill (gsize length, + gchar fill_char) __attribute__((__malloc__)); +gchar* g_strconcat (const gchar *string1, + ...) __attribute__((__malloc__)) __attribute__((__sentinel__)); +gchar* g_strjoin (const gchar *separator, + ...) __attribute__((__malloc__)) __attribute__((__sentinel__)); + + + + + +gchar* g_strcompress (const gchar *source) __attribute__((__malloc__)); +# 215 "/usr/include/glib-2.0/glib/gstrfuncs.h" +gchar* g_strescape (const gchar *source, + const gchar *exceptions) __attribute__((__malloc__)); + +gpointer g_memdup (gconstpointer mem, + guint byte_size) __attribute__((__malloc__)) __attribute__((__alloc_size__(2))); +# 230 "/usr/include/glib-2.0/glib/gstrfuncs.h" +gchar** g_strsplit (const gchar *string, + const gchar *delimiter, + gint max_tokens) __attribute__((__malloc__)); +gchar ** g_strsplit_set (const gchar *string, + const gchar *delimiters, + gint max_tokens) __attribute__((__malloc__)); +gchar* g_strjoinv (const gchar *separator, + gchar **str_array) __attribute__((__malloc__)); +void g_strfreev (gchar **str_array); +gchar** g_strdupv (gchar **str_array) __attribute__((__malloc__)); +guint g_strv_length (gchar **str_array); + +gchar* g_stpcpy (gchar *dest, + const char *src); + + +# 82 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gstring.h" 1 +# 83 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gstringchunk.h" 1 +# 34 "/usr/include/glib-2.0/glib/gstringchunk.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/gstringchunk.h" 2 + + + +typedef struct _GStringChunk GStringChunk; + +GStringChunk* g_string_chunk_new (gsize size); +void g_string_chunk_free (GStringChunk *chunk); +void g_string_chunk_clear (GStringChunk *chunk); +gchar* g_string_chunk_insert (GStringChunk *chunk, + const gchar *string); +gchar* g_string_chunk_insert_len (GStringChunk *chunk, + const gchar *string, + gssize len); +gchar* g_string_chunk_insert_const (GStringChunk *chunk, + const gchar *string); + + +# 84 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gtestutils.h" 1 +# 28 "/usr/include/glib-2.0/glib/gtestutils.h" +# 1 "/usr/include/glib-2.0/glib/gmessages.h" 1 +# 29 "/usr/include/glib-2.0/glib/gtestutils.h" 2 +# 1 "/usr/include/glib-2.0/glib/gstring.h" 1 +# 30 "/usr/include/glib-2.0/glib/gtestutils.h" 2 +# 1 "/usr/include/glib-2.0/glib/gerror.h" 1 +# 31 "/usr/include/glib-2.0/glib/gtestutils.h" 2 +# 1 "/usr/include/glib-2.0/glib/gslist.h" 1 +# 32 "/usr/include/glib-2.0/glib/gtestutils.h" 2 + + + +typedef struct GTestCase GTestCase; +typedef struct GTestSuite GTestSuite; +typedef void (*GTestFunc) (void); +typedef void (*GTestDataFunc) (gconstpointer user_data); +typedef void (*GTestFixtureFunc) (gpointer fixture, + gconstpointer user_data); +# 79 "/usr/include/glib-2.0/glib/gtestutils.h" +int g_strcmp0 (const char *str1, + const char *str2); + + +void g_test_minimized_result (double minimized_quantity, + const char *format, + ...) __attribute__((__format__ (__printf__, 2, 3))); +void g_test_maximized_result (double maximized_quantity, + const char *format, + ...) __attribute__((__format__ (__printf__, 2, 3))); + + +void g_test_init (int *argc, + char ***argv, + ...); +# 103 "/usr/include/glib-2.0/glib/gtestutils.h" +int g_test_run (void); + +void g_test_add_func (const char *testpath, + GTestFunc test_func); + +void g_test_add_data_func (const char *testpath, + gconstpointer test_data, + GTestDataFunc test_func); + +void g_test_fail (void); +# 128 "/usr/include/glib-2.0/glib/gtestutils.h" +void g_test_message (const char *format, + ...) __attribute__((__format__ (__printf__, 1, 2))); +void g_test_bug_base (const char *uri_pattern); +void g_test_bug (const char *bug_uri_snippet); + +void g_test_timer_start (void); +double g_test_timer_elapsed (void); +double g_test_timer_last (void); + + +void g_test_queue_free (gpointer gfree_pointer); +void g_test_queue_destroy (GDestroyNotify destroy_func, + gpointer destroy_data); + + + +typedef enum { + G_TEST_TRAP_SILENCE_STDOUT = 1 << 7, + G_TEST_TRAP_SILENCE_STDERR = 1 << 8, + G_TEST_TRAP_INHERIT_STDIN = 1 << 9 +} GTestTrapFlags; +gboolean g_test_trap_fork (guint64 usec_timeout, + GTestTrapFlags test_trap_flags); +gboolean g_test_trap_has_passed (void); +gboolean g_test_trap_reached_timeout (void); +# 162 "/usr/include/glib-2.0/glib/gtestutils.h" +gint32 g_test_rand_int (void); +gint32 g_test_rand_int_range (gint32 begin, + gint32 end); +double g_test_rand_double (void); +double g_test_rand_double_range (double range_start, + double range_end); + + +GTestCase* g_test_create_case (const char *test_name, + gsize data_size, + gconstpointer test_data, + GTestFixtureFunc data_setup, + GTestFixtureFunc data_test, + GTestFixtureFunc data_teardown); +GTestSuite* g_test_create_suite (const char *suite_name); +GTestSuite* g_test_get_root (void); +void g_test_suite_add (GTestSuite *suite, + GTestCase *test_case); +void g_test_suite_add_suite (GTestSuite *suite, + GTestSuite *nestedsuite); +int g_test_run_suite (GTestSuite *suite); + + +void g_test_trap_assertions (const char *domain, + const char *file, + int line, + const char *func, + guint64 assertion_flags, + const char *pattern); +void g_assertion_message (const char *domain, + const char *file, + int line, + const char *func, + const char *message) __attribute__((__noreturn__)); +void g_assertion_message_expr (const char *domain, + const char *file, + int line, + const char *func, + const char *expr) __attribute__((__noreturn__)); +void g_assertion_message_cmpstr (const char *domain, + const char *file, + int line, + const char *func, + const char *expr, + const char *arg1, + const char *cmp, + const char *arg2) __attribute__((__noreturn__)); +void g_assertion_message_cmpnum (const char *domain, + const char *file, + int line, + const char *func, + const char *expr, + long double arg1, + const char *cmp, + long double arg2, + char numtype) __attribute__((__noreturn__)); +void g_assertion_message_error (const char *domain, + const char *file, + int line, + const char *func, + const char *expr, + const GError *error, + GQuark error_domain, + int error_code) __attribute__((__noreturn__)); +void g_test_add_vtable (const char *testpath, + gsize data_size, + gconstpointer test_data, + GTestFixtureFunc data_setup, + GTestFixtureFunc data_test, + GTestFixtureFunc data_teardown); +typedef struct { + gboolean test_initialized; + gboolean test_quick; + gboolean test_perf; + gboolean test_verbose; + gboolean test_quiet; + gboolean test_undefined; +} GTestConfig; +extern const GTestConfig * const g_test_config_vars; + + +typedef enum { + G_TEST_LOG_NONE, + G_TEST_LOG_ERROR, + G_TEST_LOG_START_BINARY, + G_TEST_LOG_LIST_CASE, + G_TEST_LOG_SKIP_CASE, + G_TEST_LOG_START_CASE, + G_TEST_LOG_STOP_CASE, + G_TEST_LOG_MIN_RESULT, + G_TEST_LOG_MAX_RESULT, + G_TEST_LOG_MESSAGE +} GTestLogType; + +typedef struct { + GTestLogType log_type; + guint n_strings; + gchar **strings; + guint n_nums; + long double *nums; +} GTestLogMsg; +typedef struct { + + GString *data; + GSList *msgs; +} GTestLogBuffer; + +const char* g_test_log_type_name (GTestLogType log_type); +GTestLogBuffer* g_test_log_buffer_new (void); +void g_test_log_buffer_free (GTestLogBuffer *tbuffer); +void g_test_log_buffer_push (GTestLogBuffer *tbuffer, + guint n_bytes, + const guint8 *bytes); +GTestLogMsg* g_test_log_buffer_pop (GTestLogBuffer *tbuffer); +void g_test_log_msg_free (GTestLogMsg *tmsg); +# 291 "/usr/include/glib-2.0/glib/gtestutils.h" +typedef gboolean (*GTestLogFatalFunc) (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *message, + gpointer user_data); +void +g_test_log_set_fatal_handler (GTestLogFatalFunc log_func, + gpointer user_data); + + +# 85 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gthread.h" 1 +# 86 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gthreadpool.h" 1 +# 34 "/usr/include/glib-2.0/glib/gthreadpool.h" +# 1 "/usr/include/glib-2.0/glib/gthread.h" 1 +# 35 "/usr/include/glib-2.0/glib/gthreadpool.h" 2 + + + +typedef struct _GThreadPool GThreadPool; + + + + +struct _GThreadPool +{ + GFunc func; + gpointer user_data; + gboolean exclusive; +}; + +GThreadPool * g_thread_pool_new (GFunc func, + gpointer user_data, + gint max_threads, + gboolean exclusive, + GError **error); +void g_thread_pool_free (GThreadPool *pool, + gboolean immediate, + gboolean wait_); +gboolean g_thread_pool_push (GThreadPool *pool, + gpointer data, + GError **error); +guint g_thread_pool_unprocessed (GThreadPool *pool); +void g_thread_pool_set_sort_function (GThreadPool *pool, + GCompareDataFunc func, + gpointer user_data); +gboolean g_thread_pool_set_max_threads (GThreadPool *pool, + gint max_threads, + GError **error); +gint g_thread_pool_get_max_threads (GThreadPool *pool); +guint g_thread_pool_get_num_threads (GThreadPool *pool); + +void g_thread_pool_set_max_unused_threads (gint max_threads); +gint g_thread_pool_get_max_unused_threads (void); +guint g_thread_pool_get_num_unused_threads (void); +void g_thread_pool_stop_unused_threads (void); +void g_thread_pool_set_max_idle_time (guint interval); +guint g_thread_pool_get_max_idle_time (void); + + +# 87 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gtimer.h" 1 +# 34 "/usr/include/glib-2.0/glib/gtimer.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/gtimer.h" 2 + + + + + + + +typedef struct _GTimer GTimer; + + + +GTimer* g_timer_new (void); +void g_timer_destroy (GTimer *timer); +void g_timer_start (GTimer *timer); +void g_timer_stop (GTimer *timer); +void g_timer_reset (GTimer *timer); +void g_timer_continue (GTimer *timer); +gdouble g_timer_elapsed (GTimer *timer, + gulong *microseconds); + +void g_usleep (gulong microseconds); + +void g_time_val_add (GTimeVal *time_, + glong microseconds); +gboolean g_time_val_from_iso8601 (const gchar *iso_date, + GTimeVal *time_); +gchar* g_time_val_to_iso8601 (GTimeVal *time_) __attribute__((__malloc__)); + + +# 88 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gtimezone.h" 1 +# 89 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gtrashstack.h" 1 +# 34 "/usr/include/glib-2.0/glib/gtrashstack.h" +# 1 "/usr/include/glib-2.0/glib/gutils.h" 1 +# 35 "/usr/include/glib-2.0/glib/gtrashstack.h" 2 + + + +typedef struct _GTrashStack GTrashStack; +struct _GTrashStack +{ + GTrashStack *next; +}; + +static __inline __attribute__ ((unused)) void g_trash_stack_push (GTrashStack **stack_p, + gpointer data_p); +static __inline __attribute__ ((unused)) gpointer g_trash_stack_pop (GTrashStack **stack_p); +static __inline __attribute__ ((unused)) gpointer g_trash_stack_peek (GTrashStack **stack_p); +static __inline __attribute__ ((unused)) guint g_trash_stack_height (GTrashStack **stack_p); + + + +static __inline __attribute__ ((unused)) void +g_trash_stack_push (GTrashStack **stack_p, + gpointer data_p) +{ + GTrashStack *data = (GTrashStack *) data_p; + + data->next = *stack_p; + *stack_p = data; +} +static __inline __attribute__ ((unused)) gpointer +g_trash_stack_pop (GTrashStack **stack_p) +{ + GTrashStack *data; + + data = *stack_p; + if (data) + { + *stack_p = data->next; + + + + data->next = ((void *)0); + } + + return data; +} +static __inline __attribute__ ((unused)) gpointer +g_trash_stack_peek (GTrashStack **stack_p) +{ + GTrashStack *data; + + data = *stack_p; + + return data; +} +static __inline __attribute__ ((unused)) guint +g_trash_stack_height (GTrashStack **stack_p) +{ + GTrashStack *data; + guint i = 0; + + for (data = *stack_p; data; data = data->next) + i++; + + return i; +} + + + + +# 90 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gtree.h" 1 +# 34 "/usr/include/glib-2.0/glib/gtree.h" +# 1 "/usr/include/glib-2.0/glib/gnode.h" 1 +# 35 "/usr/include/glib-2.0/glib/gtree.h" 2 + + + +typedef struct _GTree GTree; + +typedef gboolean (*GTraverseFunc) (gpointer key, + gpointer value, + gpointer data); + + + +GTree* g_tree_new (GCompareFunc key_compare_func); +GTree* g_tree_new_with_data (GCompareDataFunc key_compare_func, + gpointer key_compare_data); +GTree* g_tree_new_full (GCompareDataFunc key_compare_func, + gpointer key_compare_data, + GDestroyNotify key_destroy_func, + GDestroyNotify value_destroy_func); +GTree* g_tree_ref (GTree *tree); +void g_tree_unref (GTree *tree); +void g_tree_destroy (GTree *tree); +void g_tree_insert (GTree *tree, + gpointer key, + gpointer value); +void g_tree_replace (GTree *tree, + gpointer key, + gpointer value); +gboolean g_tree_remove (GTree *tree, + gconstpointer key); +gboolean g_tree_steal (GTree *tree, + gconstpointer key); +gpointer g_tree_lookup (GTree *tree, + gconstpointer key); +gboolean g_tree_lookup_extended (GTree *tree, + gconstpointer lookup_key, + gpointer *orig_key, + gpointer *value); +void g_tree_foreach (GTree *tree, + GTraverseFunc func, + gpointer user_data); + +__attribute__((__deprecated__)) +void g_tree_traverse (GTree *tree, + GTraverseFunc traverse_func, + GTraverseType traverse_type, + gpointer user_data); + +gpointer g_tree_search (GTree *tree, + GCompareFunc search_func, + gconstpointer user_data); +gint g_tree_height (GTree *tree); +gint g_tree_nnodes (GTree *tree); + + +# 91 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 92 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gunicode.h" 1 +# 93 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gurifuncs.h" 1 +# 30 "/usr/include/glib-2.0/glib/gurifuncs.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 31 "/usr/include/glib-2.0/glib/gurifuncs.h" 2 + + +# 69 "/usr/include/glib-2.0/glib/gurifuncs.h" +char * g_uri_unescape_string (const char *escaped_string, + const char *illegal_characters); +char * g_uri_unescape_segment (const char *escaped_string, + const char *escaped_string_end, + const char *illegal_characters); +char * g_uri_parse_scheme (const char *uri); +char * g_uri_escape_string (const char *unescaped, + const char *reserved_chars_allowed, + gboolean allow_utf8); + + +# 94 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gutils.h" 1 +# 95 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gvarianttype.h" 1 +# 30 "/usr/include/glib-2.0/glib/gvarianttype.h" +# 1 "/usr/include/glib-2.0/glib/gmessages.h" 1 +# 31 "/usr/include/glib-2.0/glib/gvarianttype.h" 2 +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 32 "/usr/include/glib-2.0/glib/gvarianttype.h" 2 + + +# 44 "/usr/include/glib-2.0/glib/gvarianttype.h" +typedef struct _GVariantType GVariantType; +# 297 "/usr/include/glib-2.0/glib/gvarianttype.h" +gboolean g_variant_type_string_is_valid (const gchar *type_string); +gboolean g_variant_type_string_scan (const gchar *string, + const gchar *limit, + const gchar **endptr); + + +void g_variant_type_free (GVariantType *type); +GVariantType * g_variant_type_copy (const GVariantType *type); +GVariantType * g_variant_type_new (const gchar *type_string); + + +gsize g_variant_type_get_string_length (const GVariantType *type); +const gchar * g_variant_type_peek_string (const GVariantType *type); +gchar * g_variant_type_dup_string (const GVariantType *type); + + +gboolean g_variant_type_is_definite (const GVariantType *type); +gboolean g_variant_type_is_container (const GVariantType *type); +gboolean g_variant_type_is_basic (const GVariantType *type); +gboolean g_variant_type_is_maybe (const GVariantType *type); +gboolean g_variant_type_is_array (const GVariantType *type); +gboolean g_variant_type_is_tuple (const GVariantType *type); +gboolean g_variant_type_is_dict_entry (const GVariantType *type); +gboolean g_variant_type_is_variant (const GVariantType *type); + + +guint g_variant_type_hash (gconstpointer type); +gboolean g_variant_type_equal (gconstpointer type1, + gconstpointer type2); + + +gboolean g_variant_type_is_subtype_of (const GVariantType *type, + const GVariantType *supertype); + + +const GVariantType * g_variant_type_element (const GVariantType *type); +const GVariantType * g_variant_type_first (const GVariantType *type); +const GVariantType * g_variant_type_next (const GVariantType *type); +gsize g_variant_type_n_items (const GVariantType *type); +const GVariantType * g_variant_type_key (const GVariantType *type); +const GVariantType * g_variant_type_value (const GVariantType *type); + + +GVariantType * g_variant_type_new_array (const GVariantType *element); +GVariantType * g_variant_type_new_maybe (const GVariantType *element); +GVariantType * g_variant_type_new_tuple (const GVariantType * const *items, + gint length); +GVariantType * g_variant_type_new_dict_entry (const GVariantType *key, + const GVariantType *value); + + +const GVariantType * g_variant_type_checked_ (const gchar *); + + +# 96 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gvariant.h" 1 +# 30 "/usr/include/glib-2.0/glib/gvariant.h" +# 1 "/usr/include/glib-2.0/glib/gvarianttype.h" 1 +# 31 "/usr/include/glib-2.0/glib/gvariant.h" 2 +# 1 "/usr/include/glib-2.0/glib/gstring.h" 1 +# 32 "/usr/include/glib-2.0/glib/gvariant.h" 2 + + + +typedef struct _GVariant GVariant; + +typedef enum +{ + G_VARIANT_CLASS_BOOLEAN = 'b', + G_VARIANT_CLASS_BYTE = 'y', + G_VARIANT_CLASS_INT16 = 'n', + G_VARIANT_CLASS_UINT16 = 'q', + G_VARIANT_CLASS_INT32 = 'i', + G_VARIANT_CLASS_UINT32 = 'u', + G_VARIANT_CLASS_INT64 = 'x', + G_VARIANT_CLASS_UINT64 = 't', + G_VARIANT_CLASS_HANDLE = 'h', + G_VARIANT_CLASS_DOUBLE = 'd', + G_VARIANT_CLASS_STRING = 's', + G_VARIANT_CLASS_OBJECT_PATH = 'o', + G_VARIANT_CLASS_SIGNATURE = 'g', + G_VARIANT_CLASS_VARIANT = 'v', + G_VARIANT_CLASS_MAYBE = 'm', + G_VARIANT_CLASS_ARRAY = 'a', + G_VARIANT_CLASS_TUPLE = '(', + G_VARIANT_CLASS_DICT_ENTRY = '{' +} GVariantClass; + +void g_variant_unref (GVariant *value); +GVariant * g_variant_ref (GVariant *value); +GVariant * g_variant_ref_sink (GVariant *value); +gboolean g_variant_is_floating (GVariant *value); +GVariant * g_variant_take_ref (GVariant *value); + +const GVariantType * g_variant_get_type (GVariant *value); +const gchar * g_variant_get_type_string (GVariant *value); +gboolean g_variant_is_of_type (GVariant *value, + const GVariantType *type); +gboolean g_variant_is_container (GVariant *value); +GVariantClass g_variant_classify (GVariant *value); +GVariant * g_variant_new_boolean (gboolean value); +GVariant * g_variant_new_byte (guchar value); +GVariant * g_variant_new_int16 (gint16 value); +GVariant * g_variant_new_uint16 (guint16 value); +GVariant * g_variant_new_int32 (gint32 value); +GVariant * g_variant_new_uint32 (guint32 value); +GVariant * g_variant_new_int64 (gint64 value); +GVariant * g_variant_new_uint64 (guint64 value); +GVariant * g_variant_new_handle (gint32 value); +GVariant * g_variant_new_double (gdouble value); +GVariant * g_variant_new_string (const gchar *string); +GVariant * g_variant_new_object_path (const gchar *object_path); +gboolean g_variant_is_object_path (const gchar *string); +GVariant * g_variant_new_signature (const gchar *signature); +gboolean g_variant_is_signature (const gchar *string); +GVariant * g_variant_new_variant (GVariant *value); +GVariant * g_variant_new_strv (const gchar * const *strv, + gssize length); + +GVariant * g_variant_new_objv (const gchar * const *strv, + gssize length); +GVariant * g_variant_new_bytestring (const gchar *string); +GVariant * g_variant_new_bytestring_array (const gchar * const *strv, + gssize length); +GVariant * g_variant_new_fixed_array (const GVariantType *element_type, + gconstpointer elements, + gsize n_elements, + gsize element_size); +gboolean g_variant_get_boolean (GVariant *value); +guchar g_variant_get_byte (GVariant *value); +gint16 g_variant_get_int16 (GVariant *value); +guint16 g_variant_get_uint16 (GVariant *value); +gint32 g_variant_get_int32 (GVariant *value); +guint32 g_variant_get_uint32 (GVariant *value); +gint64 g_variant_get_int64 (GVariant *value); +guint64 g_variant_get_uint64 (GVariant *value); +gint32 g_variant_get_handle (GVariant *value); +gdouble g_variant_get_double (GVariant *value); +GVariant * g_variant_get_variant (GVariant *value); +const gchar * g_variant_get_string (GVariant *value, + gsize *length); +gchar * g_variant_dup_string (GVariant *value, + gsize *length); +const gchar ** g_variant_get_strv (GVariant *value, + gsize *length); +gchar ** g_variant_dup_strv (GVariant *value, + gsize *length); + +const gchar ** g_variant_get_objv (GVariant *value, + gsize *length); +gchar ** g_variant_dup_objv (GVariant *value, + gsize *length); +const gchar * g_variant_get_bytestring (GVariant *value); +gchar * g_variant_dup_bytestring (GVariant *value, + gsize *length); +const gchar ** g_variant_get_bytestring_array (GVariant *value, + gsize *length); +gchar ** g_variant_dup_bytestring_array (GVariant *value, + gsize *length); + +GVariant * g_variant_new_maybe (const GVariantType *child_type, + GVariant *child); +GVariant * g_variant_new_array (const GVariantType *child_type, + GVariant * const *children, + gsize n_children); +GVariant * g_variant_new_tuple (GVariant * const *children, + gsize n_children); +GVariant * g_variant_new_dict_entry (GVariant *key, + GVariant *value); + +GVariant * g_variant_get_maybe (GVariant *value); +gsize g_variant_n_children (GVariant *value); +void g_variant_get_child (GVariant *value, + gsize index_, + const gchar *format_string, + ...); +GVariant * g_variant_get_child_value (GVariant *value, + gsize index_); +gboolean g_variant_lookup (GVariant *dictionary, + const gchar *key, + const gchar *format_string, + ...); +GVariant * g_variant_lookup_value (GVariant *dictionary, + const gchar *key, + const GVariantType *expected_type); +gconstpointer g_variant_get_fixed_array (GVariant *value, + gsize *n_elements, + gsize element_size); + +gsize g_variant_get_size (GVariant *value); +gconstpointer g_variant_get_data (GVariant *value); +void g_variant_store (GVariant *value, + gpointer data); + +gchar * g_variant_print (GVariant *value, + gboolean type_annotate); +GString * g_variant_print_string (GVariant *value, + GString *string, + gboolean type_annotate); + +guint g_variant_hash (gconstpointer value); +gboolean g_variant_equal (gconstpointer one, + gconstpointer two); + +GVariant * g_variant_get_normal_form (GVariant *value); +gboolean g_variant_is_normal_form (GVariant *value); +GVariant * g_variant_byteswap (GVariant *value); +GVariant * g_variant_new_from_data (const GVariantType *type, + gconstpointer data, + gsize size, + gboolean trusted, + GDestroyNotify notify, + gpointer user_data); + +typedef struct _GVariantIter GVariantIter; +struct _GVariantIter { + + gsize x[16]; +}; + +GVariantIter * g_variant_iter_new (GVariant *value); +gsize g_variant_iter_init (GVariantIter *iter, + GVariant *value); +GVariantIter * g_variant_iter_copy (GVariantIter *iter); +gsize g_variant_iter_n_children (GVariantIter *iter); +void g_variant_iter_free (GVariantIter *iter); +GVariant * g_variant_iter_next_value (GVariantIter *iter); +gboolean g_variant_iter_next (GVariantIter *iter, + const gchar *format_string, + ...); +gboolean g_variant_iter_loop (GVariantIter *iter, + const gchar *format_string, + ...); + + +typedef struct _GVariantBuilder GVariantBuilder; +struct _GVariantBuilder { + + gsize x[16]; +}; + +typedef enum +{ + G_VARIANT_PARSE_ERROR_FAILED, + G_VARIANT_PARSE_ERROR_BASIC_TYPE_EXPECTED, + G_VARIANT_PARSE_ERROR_CANNOT_INFER_TYPE, + G_VARIANT_PARSE_ERROR_DEFINITE_TYPE_EXPECTED, + G_VARIANT_PARSE_ERROR_INPUT_NOT_AT_END, + G_VARIANT_PARSE_ERROR_INVALID_CHARACTER, + G_VARIANT_PARSE_ERROR_INVALID_FORMAT_STRING, + G_VARIANT_PARSE_ERROR_INVALID_OBJECT_PATH, + G_VARIANT_PARSE_ERROR_INVALID_SIGNATURE, + G_VARIANT_PARSE_ERROR_INVALID_TYPE_STRING, + G_VARIANT_PARSE_ERROR_NO_COMMON_TYPE, + G_VARIANT_PARSE_ERROR_NUMBER_OUT_OF_RANGE, + G_VARIANT_PARSE_ERROR_NUMBER_TOO_BIG, + G_VARIANT_PARSE_ERROR_TYPE_ERROR, + G_VARIANT_PARSE_ERROR_UNEXPECTED_TOKEN, + G_VARIANT_PARSE_ERROR_UNKNOWN_KEYWORD, + G_VARIANT_PARSE_ERROR_UNTERMINATED_STRING_CONSTANT, + G_VARIANT_PARSE_ERROR_VALUE_EXPECTED +} GVariantParseError; + + +GQuark g_variant_parser_get_error_quark (void); + +GVariantBuilder * g_variant_builder_new (const GVariantType *type); +void g_variant_builder_unref (GVariantBuilder *builder); +GVariantBuilder * g_variant_builder_ref (GVariantBuilder *builder); +void g_variant_builder_init (GVariantBuilder *builder, + const GVariantType *type); +GVariant * g_variant_builder_end (GVariantBuilder *builder); +void g_variant_builder_clear (GVariantBuilder *builder); +void g_variant_builder_open (GVariantBuilder *builder, + const GVariantType *type); +void g_variant_builder_close (GVariantBuilder *builder); +void g_variant_builder_add_value (GVariantBuilder *builder, + GVariant *value); +void g_variant_builder_add (GVariantBuilder *builder, + const gchar *format_string, + ...); +void g_variant_builder_add_parsed (GVariantBuilder *builder, + const gchar *format, + ...); + +GVariant * g_variant_new (const gchar *format_string, + ...); +void g_variant_get (GVariant *value, + const gchar *format_string, + ...); +GVariant * g_variant_new_va (const gchar *format_string, + const gchar **endptr, + va_list *app); +void g_variant_get_va (GVariant *value, + const gchar *format_string, + const gchar **endptr, + va_list *app); + + +GVariant * g_variant_parse (const GVariantType *type, + const gchar *text, + const gchar *limit, + const gchar **endptr, + GError **error); +GVariant * g_variant_new_parsed (const gchar *format, + ...); +GVariant * g_variant_new_parsed_va (const gchar *format, + va_list *app); + +gint g_variant_compare (gconstpointer one, + gconstpointer two); + +# 97 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gversion.h" 1 +# 34 "/usr/include/glib-2.0/glib/gversion.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/gversion.h" 2 + + + +extern const guint glib_major_version; +extern const guint glib_minor_version; +extern const guint glib_micro_version; +extern const guint glib_interface_age; +extern const guint glib_binary_age; + +const gchar * glib_check_version (guint required_major, + guint required_minor, + guint required_micro); + + + + + + + + +# 98 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/gversionmacros.h" 1 +# 99 "/usr/include/glib-2.0/glib.h" 2 + + + + +# 1 "/usr/include/glib-2.0/glib/deprecated/gallocator.h" 1 +# 25 "/usr/include/glib-2.0/glib/deprecated/gallocator.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 26 "/usr/include/glib-2.0/glib/deprecated/gallocator.h" 2 + + + +typedef struct _GAllocator GAllocator; +typedef struct _GMemChunk GMemChunk; +# 44 "/usr/include/glib-2.0/glib/deprecated/gallocator.h" +__attribute__((__deprecated__)) +GMemChunk * g_mem_chunk_new (const gchar *name, + gint atom_size, + gsize area_size, + gint type); +__attribute__((__deprecated__)) +void g_mem_chunk_destroy (GMemChunk *mem_chunk); +__attribute__((__deprecated__)) +gpointer g_mem_chunk_alloc (GMemChunk *mem_chunk); +__attribute__((__deprecated__)) +gpointer g_mem_chunk_alloc0 (GMemChunk *mem_chunk); +__attribute__((__deprecated__)) +void g_mem_chunk_free (GMemChunk *mem_chunk, + gpointer mem); +__attribute__((__deprecated__)) +void g_mem_chunk_clean (GMemChunk *mem_chunk); +__attribute__((__deprecated__)) +void g_mem_chunk_reset (GMemChunk *mem_chunk); +__attribute__((__deprecated__)) +void g_mem_chunk_print (GMemChunk *mem_chunk); +__attribute__((__deprecated__)) +void g_mem_chunk_info (void); +__attribute__((__deprecated__)) +void g_blow_chunks (void); + + +__attribute__((__deprecated__)) +GAllocator * g_allocator_new (const gchar *name, + guint n_preallocs); +__attribute__((__deprecated__)) +void g_allocator_free (GAllocator *allocator); +__attribute__((__deprecated__)) +void g_list_push_allocator (GAllocator *allocator); +__attribute__((__deprecated__)) +void g_list_pop_allocator (void); +__attribute__((__deprecated__)) +void g_slist_push_allocator (GAllocator *allocator); +__attribute__((__deprecated__)) +void g_slist_pop_allocator (void); +__attribute__((__deprecated__)) +void g_node_push_allocator (GAllocator *allocator); +__attribute__((__deprecated__)) +void g_node_pop_allocator (void); + + +# 104 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/deprecated/gcache.h" 1 +# 34 "/usr/include/glib-2.0/glib/deprecated/gcache.h" +# 1 "/usr/include/glib-2.0/glib/glist.h" 1 +# 35 "/usr/include/glib-2.0/glib/deprecated/gcache.h" 2 + + + +typedef struct _GCache GCache; + +typedef gpointer (*GCacheNewFunc) (gpointer key); +typedef gpointer (*GCacheDupFunc) (gpointer value); +typedef void (*GCacheDestroyFunc) (gpointer value); + + + +__attribute__((__deprecated__)) +GCache* g_cache_new (GCacheNewFunc value_new_func, + GCacheDestroyFunc value_destroy_func, + GCacheDupFunc key_dup_func, + GCacheDestroyFunc key_destroy_func, + GHashFunc hash_key_func, + GHashFunc hash_value_func, + GEqualFunc key_equal_func); +__attribute__((__deprecated__)) +void g_cache_destroy (GCache *cache); +__attribute__((__deprecated__)) +gpointer g_cache_insert (GCache *cache, + gpointer key); +__attribute__((__deprecated__)) +void g_cache_remove (GCache *cache, + gconstpointer value); +__attribute__((__deprecated__)) +void g_cache_key_foreach (GCache *cache, + GHFunc func, + gpointer user_data); +__attribute__((__deprecated__)) +void g_cache_value_foreach (GCache *cache, + GHFunc func, + gpointer user_data); + + +# 105 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/deprecated/gcompletion.h" 1 +# 34 "/usr/include/glib-2.0/glib/deprecated/gcompletion.h" +# 1 "/usr/include/glib-2.0/glib/glist.h" 1 +# 35 "/usr/include/glib-2.0/glib/deprecated/gcompletion.h" 2 + + + +typedef struct _GCompletion GCompletion; + +typedef gchar* (*GCompletionFunc) (gpointer); + + + + +typedef gint (*GCompletionStrncmpFunc) (const gchar *s1, + const gchar *s2, + gsize n); + +struct _GCompletion +{ + GList* items; + GCompletionFunc func; + + gchar* prefix; + GList* cache; + GCompletionStrncmpFunc strncmp_func; +}; + +__attribute__((__deprecated__)) +GCompletion* g_completion_new (GCompletionFunc func); +__attribute__((__deprecated__)) +void g_completion_add_items (GCompletion* cmp, + GList* items); +__attribute__((__deprecated__)) +void g_completion_remove_items (GCompletion* cmp, + GList* items); +__attribute__((__deprecated__)) +void g_completion_clear_items (GCompletion* cmp); +__attribute__((__deprecated__)) +GList* g_completion_complete (GCompletion* cmp, + const gchar* prefix, + gchar** new_prefix); +__attribute__((__deprecated__)) +GList* g_completion_complete_utf8 (GCompletion *cmp, + const gchar* prefix, + gchar** new_prefix); +__attribute__((__deprecated__)) +void g_completion_set_compare (GCompletion *cmp, + GCompletionStrncmpFunc strncmp_func); +__attribute__((__deprecated__)) +void g_completion_free (GCompletion* cmp); + + +# 106 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/deprecated/gmain.h" 1 +# 34 "/usr/include/glib-2.0/glib/deprecated/gmain.h" +# 1 "/usr/include/glib-2.0/glib/gmain.h" 1 +# 35 "/usr/include/glib-2.0/glib/deprecated/gmain.h" 2 + + +# 136 "/usr/include/glib-2.0/glib/deprecated/gmain.h" + +# 107 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/deprecated/grel.h" 1 +# 34 "/usr/include/glib-2.0/glib/deprecated/grel.h" +# 1 "/usr/include/glib-2.0/glib/gtypes.h" 1 +# 35 "/usr/include/glib-2.0/glib/deprecated/grel.h" 2 + + + +typedef struct _GRelation GRelation; +typedef struct _GTuples GTuples; + +struct _GTuples +{ + guint len; +}; +# 69 "/usr/include/glib-2.0/glib/deprecated/grel.h" +__attribute__((__deprecated__)) +GRelation* g_relation_new (gint fields); +__attribute__((__deprecated__)) +void g_relation_destroy (GRelation *relation); +__attribute__((__deprecated__)) +void g_relation_index (GRelation *relation, + gint field, + GHashFunc hash_func, + GEqualFunc key_equal_func); +__attribute__((__deprecated__)) +void g_relation_insert (GRelation *relation, + ...); +__attribute__((__deprecated__)) +gint g_relation_delete (GRelation *relation, + gconstpointer key, + gint field); +__attribute__((__deprecated__)) +GTuples* g_relation_select (GRelation *relation, + gconstpointer key, + gint field); +__attribute__((__deprecated__)) +gint g_relation_count (GRelation *relation, + gconstpointer key, + gint field); +__attribute__((__deprecated__)) +gboolean g_relation_exists (GRelation *relation, + ...); +__attribute__((__deprecated__)) +void g_relation_print (GRelation *relation); +__attribute__((__deprecated__)) +void g_tuples_destroy (GTuples *tuples); +__attribute__((__deprecated__)) +gpointer g_tuples_index (GTuples *tuples, + gint index_, + gint field); + + +# 108 "/usr/include/glib-2.0/glib.h" 2 +# 1 "/usr/include/glib-2.0/glib/deprecated/gthread.h" 1 +# 34 "/usr/include/glib-2.0/glib/deprecated/gthread.h" +# 1 "/usr/include/glib-2.0/glib/gthread.h" 1 +# 35 "/usr/include/glib-2.0/glib/deprecated/gthread.h" 2 + + + +typedef enum +{ + G_THREAD_PRIORITY_LOW, + G_THREAD_PRIORITY_NORMAL, + G_THREAD_PRIORITY_HIGH, + G_THREAD_PRIORITY_URGENT +} GThreadPriority; + +struct _GThread +{ + + GThreadFunc func; + gpointer data; + gboolean joinable; + GThreadPriority priority; +}; + +typedef struct _GThreadFunctions GThreadFunctions; +struct _GThreadFunctions +{ + GMutex* (*mutex_new) (void); + void (*mutex_lock) (GMutex *mutex); + gboolean (*mutex_trylock) (GMutex *mutex); + void (*mutex_unlock) (GMutex *mutex); + void (*mutex_free) (GMutex *mutex); + GCond* (*cond_new) (void); + void (*cond_signal) (GCond *cond); + void (*cond_broadcast) (GCond *cond); + void (*cond_wait) (GCond *cond, + GMutex *mutex); + gboolean (*cond_timed_wait) (GCond *cond, + GMutex *mutex, + GTimeVal *end_time); + void (*cond_free) (GCond *cond); + GPrivate* (*private_new) (GDestroyNotify destructor); + gpointer (*private_get) (GPrivate *private_key); + void (*private_set) (GPrivate *private_key, + gpointer data); + void (*thread_create) (GThreadFunc func, + gpointer data, + gulong stack_size, + gboolean joinable, + gboolean bound, + GThreadPriority priority, + gpointer thread, + GError **error); + void (*thread_yield) (void); + void (*thread_join) (gpointer thread); + void (*thread_exit) (void); + void (*thread_set_priority)(gpointer thread, + GThreadPriority priority); + void (*thread_self) (gpointer thread); + gboolean (*thread_equal) (gpointer thread1, + gpointer thread2); +}; + +extern GThreadFunctions g_thread_functions_for_glib_use; +extern gboolean g_thread_use_default_impl; + +extern guint64 (*g_thread_gettime) (void); + + +GThread *g_thread_create (GThreadFunc func, + gpointer data, + gboolean joinable, + GError **error); + + +GThread *g_thread_create_full (GThreadFunc func, + gpointer data, + gulong stack_size, + gboolean joinable, + gboolean bound, + GThreadPriority priority, + GError **error); + + +void g_thread_set_priority (GThread *thread, + GThreadPriority priority); + + +void g_thread_foreach (GFunc thread_func, + gpointer user_data); + + +# 1 "/usr/include/pthread.h" 1 3 4 +# 25 "/usr/include/pthread.h" 3 4 +# 1 "/usr/include/sched.h" 1 3 4 +# 30 "/usr/include/sched.h" 3 4 +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 1 3 4 +# 31 "/usr/include/sched.h" 2 3 4 +# 43 "/usr/include/sched.h" 3 4 +# 1 "/usr/include/bits/sched.h" 1 3 4 +# 74 "/usr/include/bits/sched.h" 3 4 +struct sched_param + { + int __sched_priority; + }; + + + + + +extern int clone (int (*__fn) (void *__arg), void *__child_stack, + int __flags, void *__arg, ...) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int unshare (int __flags) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int sched_getcpu (void) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int setns (int __fd, int __nstype) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + + + + + +struct __sched_param + { + int __sched_priority; + }; +# 120 "/usr/include/bits/sched.h" 3 4 +typedef unsigned long int __cpu_mask; + + + + + + +typedef struct +{ + __cpu_mask __bits[1024 / (8 * sizeof (__cpu_mask))]; +} cpu_set_t; +# 203 "/usr/include/bits/sched.h" 3 4 + + +extern int __sched_cpucount (size_t __setsize, const cpu_set_t *__setp) + __attribute__ ((__nothrow__ , __leaf__)); +extern cpu_set_t *__sched_cpualloc (size_t __count) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__warn_unused_result__)); +extern void __sched_cpufree (cpu_set_t *__set) __attribute__ ((__nothrow__ , __leaf__)); + + +# 44 "/usr/include/sched.h" 2 3 4 + + + + + + + +extern int sched_setparam (__pid_t __pid, __const struct sched_param *__param) + __attribute__ ((__nothrow__ , __leaf__)); + + +extern int sched_getparam (__pid_t __pid, struct sched_param *__param) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int sched_setscheduler (__pid_t __pid, int __policy, + __const struct sched_param *__param) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int sched_getscheduler (__pid_t __pid) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int sched_yield (void) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int sched_get_priority_max (int __algorithm) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int sched_get_priority_min (int __algorithm) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int sched_rr_get_interval (__pid_t __pid, struct timespec *__t) __attribute__ ((__nothrow__ , __leaf__)); +# 118 "/usr/include/sched.h" 3 4 +extern int sched_setaffinity (__pid_t __pid, size_t __cpusetsize, + __const cpu_set_t *__cpuset) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int sched_getaffinity (__pid_t __pid, size_t __cpusetsize, + cpu_set_t *__cpuset) __attribute__ ((__nothrow__ , __leaf__)); + + + +# 26 "/usr/include/pthread.h" 2 3 4 + + + +# 1 "/usr/include/bits/setjmp.h" 1 3 4 +# 29 "/usr/include/bits/setjmp.h" 3 4 +typedef int __jmp_buf[6]; +# 30 "/usr/include/pthread.h" 2 3 4 +# 1 "/usr/include/bits/wordsize.h" 1 3 4 +# 31 "/usr/include/pthread.h" 2 3 4 + + + +enum +{ + PTHREAD_CREATE_JOINABLE, + + PTHREAD_CREATE_DETACHED + +}; + + + +enum +{ + PTHREAD_MUTEX_TIMED_NP, + PTHREAD_MUTEX_RECURSIVE_NP, + PTHREAD_MUTEX_ERRORCHECK_NP, + PTHREAD_MUTEX_ADAPTIVE_NP + + , + PTHREAD_MUTEX_NORMAL = PTHREAD_MUTEX_TIMED_NP, + PTHREAD_MUTEX_RECURSIVE = PTHREAD_MUTEX_RECURSIVE_NP, + PTHREAD_MUTEX_ERRORCHECK = PTHREAD_MUTEX_ERRORCHECK_NP, + PTHREAD_MUTEX_DEFAULT = PTHREAD_MUTEX_NORMAL + + + + , PTHREAD_MUTEX_FAST_NP = PTHREAD_MUTEX_TIMED_NP + +}; + + + + +enum +{ + PTHREAD_MUTEX_STALLED, + PTHREAD_MUTEX_STALLED_NP = PTHREAD_MUTEX_STALLED, + PTHREAD_MUTEX_ROBUST, + PTHREAD_MUTEX_ROBUST_NP = PTHREAD_MUTEX_ROBUST +}; + + + + + +enum +{ + PTHREAD_PRIO_NONE, + PTHREAD_PRIO_INHERIT, + PTHREAD_PRIO_PROTECT +}; +# 115 "/usr/include/pthread.h" 3 4 +enum +{ + PTHREAD_RWLOCK_PREFER_READER_NP, + PTHREAD_RWLOCK_PREFER_WRITER_NP, + PTHREAD_RWLOCK_PREFER_WRITER_NONRECURSIVE_NP, + PTHREAD_RWLOCK_DEFAULT_NP = PTHREAD_RWLOCK_PREFER_READER_NP +}; +# 147 "/usr/include/pthread.h" 3 4 +enum +{ + PTHREAD_INHERIT_SCHED, + + PTHREAD_EXPLICIT_SCHED + +}; + + + +enum +{ + PTHREAD_SCOPE_SYSTEM, + + PTHREAD_SCOPE_PROCESS + +}; + + + +enum +{ + PTHREAD_PROCESS_PRIVATE, + + PTHREAD_PROCESS_SHARED + +}; +# 182 "/usr/include/pthread.h" 3 4 +struct _pthread_cleanup_buffer +{ + void (*__routine) (void *); + void *__arg; + int __canceltype; + struct _pthread_cleanup_buffer *__prev; +}; + + +enum +{ + PTHREAD_CANCEL_ENABLE, + + PTHREAD_CANCEL_DISABLE + +}; +enum +{ + PTHREAD_CANCEL_DEFERRED, + + PTHREAD_CANCEL_ASYNCHRONOUS + +}; +# 220 "/usr/include/pthread.h" 3 4 + + + + + +extern int pthread_create (pthread_t *__restrict __newthread, + __const pthread_attr_t *__restrict __attr, + void *(*__start_routine) (void *), + void *__restrict __arg) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 3))); + + + + + +extern void pthread_exit (void *__retval) __attribute__ ((__noreturn__)); + + + + + + + +extern int pthread_join (pthread_t __th, void **__thread_return); + + + + +extern int pthread_tryjoin_np (pthread_t __th, void **__thread_return) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + +extern int pthread_timedjoin_np (pthread_t __th, void **__thread_return, + __const struct timespec *__abstime); + + + + + + +extern int pthread_detach (pthread_t __th) __attribute__ ((__nothrow__ , __leaf__)); + + + +extern pthread_t pthread_self (void) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__const__)); + + +extern int pthread_equal (pthread_t __thread1, pthread_t __thread2) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + +extern int pthread_attr_init (pthread_attr_t *__attr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_attr_destroy (pthread_attr_t *__attr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_attr_getdetachstate (__const pthread_attr_t *__attr, + int *__detachstate) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_attr_setdetachstate (pthread_attr_t *__attr, + int __detachstate) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_attr_getguardsize (__const pthread_attr_t *__attr, + size_t *__guardsize) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_attr_setguardsize (pthread_attr_t *__attr, + size_t __guardsize) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_attr_getschedparam (__const pthread_attr_t *__restrict + __attr, + struct sched_param *__restrict __param) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_attr_setschedparam (pthread_attr_t *__restrict __attr, + __const struct sched_param *__restrict + __param) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_attr_getschedpolicy (__const pthread_attr_t *__restrict + __attr, int *__restrict __policy) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_attr_setschedpolicy (pthread_attr_t *__attr, int __policy) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_attr_getinheritsched (__const pthread_attr_t *__restrict + __attr, int *__restrict __inherit) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_attr_setinheritsched (pthread_attr_t *__attr, + int __inherit) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_attr_getscope (__const pthread_attr_t *__restrict __attr, + int *__restrict __scope) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_attr_setscope (pthread_attr_t *__attr, int __scope) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_attr_getstackaddr (__const pthread_attr_t *__restrict + __attr, void **__restrict __stackaddr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))) __attribute__ ((__deprecated__)); + + + + + +extern int pthread_attr_setstackaddr (pthread_attr_t *__attr, + void *__stackaddr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))) __attribute__ ((__deprecated__)); + + +extern int pthread_attr_getstacksize (__const pthread_attr_t *__restrict + __attr, size_t *__restrict __stacksize) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern int pthread_attr_setstacksize (pthread_attr_t *__attr, + size_t __stacksize) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_attr_getstack (__const pthread_attr_t *__restrict __attr, + void **__restrict __stackaddr, + size_t *__restrict __stacksize) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2, 3))); + + + + +extern int pthread_attr_setstack (pthread_attr_t *__attr, void *__stackaddr, + size_t __stacksize) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern int pthread_attr_setaffinity_np (pthread_attr_t *__attr, + size_t __cpusetsize, + __const cpu_set_t *__cpuset) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))); + + + +extern int pthread_attr_getaffinity_np (__const pthread_attr_t *__attr, + size_t __cpusetsize, + cpu_set_t *__cpuset) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))); + + + + + +extern int pthread_getattr_np (pthread_t __th, pthread_attr_t *__attr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + + + + + + + +extern int pthread_setschedparam (pthread_t __target_thread, int __policy, + __const struct sched_param *__param) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))); + + +extern int pthread_getschedparam (pthread_t __target_thread, + int *__restrict __policy, + struct sched_param *__restrict __param) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2, 3))); + + +extern int pthread_setschedprio (pthread_t __target_thread, int __prio) + __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int pthread_getname_np (pthread_t __target_thread, char *__buf, + size_t __buflen) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + + +extern int pthread_setname_np (pthread_t __target_thread, __const char *__name) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); + + + + + +extern int pthread_getconcurrency (void) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int pthread_setconcurrency (int __level) __attribute__ ((__nothrow__ , __leaf__)); + + + + + + + +extern int pthread_yield (void) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern int pthread_setaffinity_np (pthread_t __th, size_t __cpusetsize, + __const cpu_set_t *__cpuset) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))); + + +extern int pthread_getaffinity_np (pthread_t __th, size_t __cpusetsize, + cpu_set_t *__cpuset) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (3))); +# 478 "/usr/include/pthread.h" 3 4 +extern int pthread_once (pthread_once_t *__once_control, + void (*__init_routine) (void)) __attribute__ ((__nonnull__ (1, 2))); +# 490 "/usr/include/pthread.h" 3 4 +extern int pthread_setcancelstate (int __state, int *__oldstate); + + + +extern int pthread_setcanceltype (int __type, int *__oldtype); + + +extern int pthread_cancel (pthread_t __th); + + + + +extern void pthread_testcancel (void); + + + + +typedef struct +{ + struct + { + __jmp_buf __cancel_jmp_buf; + int __mask_was_saved; + } __cancel_jmp_buf[1]; + void *__pad[4]; +} __pthread_unwind_buf_t __attribute__ ((__aligned__)); +# 524 "/usr/include/pthread.h" 3 4 +struct __pthread_cleanup_frame +{ + void (*__cancel_routine) (void *); + void *__cancel_arg; + int __do_it; + int __cancel_type; +}; +# 664 "/usr/include/pthread.h" 3 4 +extern void __pthread_register_cancel (__pthread_unwind_buf_t *__buf) + __attribute__ ((__regparm__ (1))); +# 676 "/usr/include/pthread.h" 3 4 +extern void __pthread_unregister_cancel (__pthread_unwind_buf_t *__buf) + __attribute__ ((__regparm__ (1))); +# 699 "/usr/include/pthread.h" 3 4 +extern void __pthread_register_cancel_defer (__pthread_unwind_buf_t *__buf) + __attribute__ ((__regparm__ (1))); +# 712 "/usr/include/pthread.h" 3 4 +extern void __pthread_unregister_cancel_restore (__pthread_unwind_buf_t *__buf) + __attribute__ ((__regparm__ (1))); + + + +extern void __pthread_unwind_next (__pthread_unwind_buf_t *__buf) + __attribute__ ((__regparm__ (1))) __attribute__ ((__noreturn__)) + + __attribute__ ((__weak__)) + + ; + + + +struct __jmp_buf_tag; +extern int __sigsetjmp (struct __jmp_buf_tag *__env, int __savemask) __attribute__ ((__nothrow__ , __leaf__)); + + + + + +extern int pthread_mutex_init (pthread_mutex_t *__mutex, + __const pthread_mutexattr_t *__mutexattr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_mutex_destroy (pthread_mutex_t *__mutex) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_mutex_trylock (pthread_mutex_t *__mutex) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_mutex_lock (pthread_mutex_t *__mutex) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_mutex_timedlock (pthread_mutex_t *__restrict __mutex, + __const struct timespec *__restrict + __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern int pthread_mutex_unlock (pthread_mutex_t *__mutex) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_mutex_getprioceiling (__const pthread_mutex_t * + __restrict __mutex, + int *__restrict __prioceiling) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern int pthread_mutex_setprioceiling (pthread_mutex_t *__restrict __mutex, + int __prioceiling, + int *__restrict __old_ceiling) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 3))); + + + + +extern int pthread_mutex_consistent (pthread_mutex_t *__mutex) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + +extern int pthread_mutex_consistent_np (pthread_mutex_t *__mutex) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); +# 790 "/usr/include/pthread.h" 3 4 +extern int pthread_mutexattr_init (pthread_mutexattr_t *__attr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_mutexattr_destroy (pthread_mutexattr_t *__attr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_mutexattr_getpshared (__const pthread_mutexattr_t * + __restrict __attr, + int *__restrict __pshared) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_mutexattr_setpshared (pthread_mutexattr_t *__attr, + int __pshared) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_mutexattr_gettype (__const pthread_mutexattr_t *__restrict + __attr, int *__restrict __kind) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + + +extern int pthread_mutexattr_settype (pthread_mutexattr_t *__attr, int __kind) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_mutexattr_getprotocol (__const pthread_mutexattr_t * + __restrict __attr, + int *__restrict __protocol) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern int pthread_mutexattr_setprotocol (pthread_mutexattr_t *__attr, + int __protocol) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_mutexattr_getprioceiling (__const pthread_mutexattr_t * + __restrict __attr, + int *__restrict __prioceiling) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_mutexattr_setprioceiling (pthread_mutexattr_t *__attr, + int __prioceiling) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_mutexattr_getrobust (__const pthread_mutexattr_t *__attr, + int *__robustness) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + +extern int pthread_mutexattr_getrobust_np (__const pthread_mutexattr_t *__attr, + int *__robustness) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern int pthread_mutexattr_setrobust (pthread_mutexattr_t *__attr, + int __robustness) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + +extern int pthread_mutexattr_setrobust_np (pthread_mutexattr_t *__attr, + int __robustness) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); +# 872 "/usr/include/pthread.h" 3 4 +extern int pthread_rwlock_init (pthread_rwlock_t *__restrict __rwlock, + __const pthread_rwlockattr_t *__restrict + __attr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_rwlock_destroy (pthread_rwlock_t *__rwlock) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_rwlock_rdlock (pthread_rwlock_t *__rwlock) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_rwlock_tryrdlock (pthread_rwlock_t *__rwlock) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_rwlock_timedrdlock (pthread_rwlock_t *__restrict __rwlock, + __const struct timespec *__restrict + __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern int pthread_rwlock_wrlock (pthread_rwlock_t *__rwlock) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_rwlock_trywrlock (pthread_rwlock_t *__rwlock) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_rwlock_timedwrlock (pthread_rwlock_t *__restrict __rwlock, + __const struct timespec *__restrict + __abstime) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); + + + +extern int pthread_rwlock_unlock (pthread_rwlock_t *__rwlock) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + + + +extern int pthread_rwlockattr_init (pthread_rwlockattr_t *__attr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_rwlockattr_destroy (pthread_rwlockattr_t *__attr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_rwlockattr_getpshared (__const pthread_rwlockattr_t * + __restrict __attr, + int *__restrict __pshared) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_rwlockattr_setpshared (pthread_rwlockattr_t *__attr, + int __pshared) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_rwlockattr_getkind_np (__const pthread_rwlockattr_t * + __restrict __attr, + int *__restrict __pref) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_rwlockattr_setkind_np (pthread_rwlockattr_t *__attr, + int __pref) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + + + + + +extern int pthread_cond_init (pthread_cond_t *__restrict __cond, + __const pthread_condattr_t *__restrict + __cond_attr) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_cond_destroy (pthread_cond_t *__cond) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_cond_signal (pthread_cond_t *__cond) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_cond_broadcast (pthread_cond_t *__cond) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern int pthread_cond_wait (pthread_cond_t *__restrict __cond, + pthread_mutex_t *__restrict __mutex) + __attribute__ ((__nonnull__ (1, 2))); +# 984 "/usr/include/pthread.h" 3 4 +extern int pthread_cond_timedwait (pthread_cond_t *__restrict __cond, + pthread_mutex_t *__restrict __mutex, + __const struct timespec *__restrict + __abstime) __attribute__ ((__nonnull__ (1, 2, 3))); + + + + +extern int pthread_condattr_init (pthread_condattr_t *__attr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_condattr_destroy (pthread_condattr_t *__attr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_condattr_getpshared (__const pthread_condattr_t * + __restrict __attr, + int *__restrict __pshared) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_condattr_setpshared (pthread_condattr_t *__attr, + int __pshared) __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_condattr_getclock (__const pthread_condattr_t * + __restrict __attr, + __clockid_t *__restrict __clock_id) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_condattr_setclock (pthread_condattr_t *__attr, + __clockid_t __clock_id) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); +# 1028 "/usr/include/pthread.h" 3 4 +extern int pthread_spin_init (pthread_spinlock_t *__lock, int __pshared) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_spin_destroy (pthread_spinlock_t *__lock) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_spin_lock (pthread_spinlock_t *__lock) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_spin_trylock (pthread_spinlock_t *__lock) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_spin_unlock (pthread_spinlock_t *__lock) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + + + + +extern int pthread_barrier_init (pthread_barrier_t *__restrict __barrier, + __const pthread_barrierattr_t *__restrict + __attr, unsigned int __count) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_barrier_destroy (pthread_barrier_t *__barrier) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_barrier_wait (pthread_barrier_t *__barrier) + __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); + + + +extern int pthread_barrierattr_init (pthread_barrierattr_t *__attr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_barrierattr_destroy (pthread_barrierattr_t *__attr) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_barrierattr_getpshared (__const pthread_barrierattr_t * + __restrict __attr, + int *__restrict __pshared) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1, 2))); + + +extern int pthread_barrierattr_setpshared (pthread_barrierattr_t *__attr, + int __pshared) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); +# 1095 "/usr/include/pthread.h" 3 4 +extern int pthread_key_create (pthread_key_t *__key, + void (*__destr_function) (void *)) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (1))); + + +extern int pthread_key_delete (pthread_key_t __key) __attribute__ ((__nothrow__ , __leaf__)); + + +extern void *pthread_getspecific (pthread_key_t __key) __attribute__ ((__nothrow__ , __leaf__)); + + +extern int pthread_setspecific (pthread_key_t __key, + __const void *__pointer) __attribute__ ((__nothrow__ , __leaf__)) ; + + + + +extern int pthread_getcpuclockid (pthread_t __thread_id, + __clockid_t *__clock_id) + __attribute__ ((__nothrow__ , __leaf__)) __attribute__ ((__nonnull__ (2))); +# 1129 "/usr/include/pthread.h" 3 4 +extern int pthread_atfork (void (*__prepare) (void), + void (*__parent) (void), + void (*__child) (void)) __attribute__ ((__nothrow__ , __leaf__)); + + + + +extern __inline int +__attribute__ ((__nothrow__ , __leaf__)) pthread_equal (pthread_t __thread1, pthread_t __thread2) +{ + return __thread1 == __thread2; +} + + + +# 124 "/usr/include/glib-2.0/glib/deprecated/gthread.h" 2 + + + + +typedef struct +{ + GMutex *mutex; + + + pthread_mutex_t unused; + +} GStaticMutex; +# 144 "/usr/include/glib-2.0/glib/deprecated/gthread.h" + +void g_static_mutex_init (GStaticMutex *mutex); + +void g_static_mutex_free (GStaticMutex *mutex); +GMutex *g_static_mutex_get_mutex_impl (GStaticMutex *mutex); + +typedef struct _GStaticRecMutex GStaticRecMutex; +struct _GStaticRecMutex +{ + + GStaticMutex mutex; + guint depth; + + + union { + + + + pthread_t owner; + + gdouble dummy; + } unused; +}; + + + +void g_static_rec_mutex_init (GStaticRecMutex *mutex); + + +void g_static_rec_mutex_lock (GStaticRecMutex *mutex); + + +gboolean g_static_rec_mutex_trylock (GStaticRecMutex *mutex); + + +void g_static_rec_mutex_unlock (GStaticRecMutex *mutex); + + +void g_static_rec_mutex_lock_full (GStaticRecMutex *mutex, + guint depth); + + +guint g_static_rec_mutex_unlock_full (GStaticRecMutex *mutex); + + +void g_static_rec_mutex_free (GStaticRecMutex *mutex); + +typedef struct _GStaticRWLock GStaticRWLock; +struct _GStaticRWLock +{ + + GStaticMutex mutex; + GCond *read_cond; + GCond *write_cond; + guint read_counter; + gboolean have_writer; + guint want_to_read; + guint want_to_write; +}; + + + + +void g_static_rw_lock_init (GStaticRWLock *lock); + + +void g_static_rw_lock_reader_lock (GStaticRWLock *lock); + + +gboolean g_static_rw_lock_reader_trylock (GStaticRWLock *lock); + + +void g_static_rw_lock_reader_unlock (GStaticRWLock *lock); + + +void g_static_rw_lock_writer_lock (GStaticRWLock *lock); + + +gboolean g_static_rw_lock_writer_trylock (GStaticRWLock *lock); + + +void g_static_rw_lock_writer_unlock (GStaticRWLock *lock); + + +void g_static_rw_lock_free (GStaticRWLock *lock); + + +GPrivate * g_private_new (GDestroyNotify notify); + +typedef struct _GStaticPrivate GStaticPrivate; +struct _GStaticPrivate +{ + + guint index; +}; + + + +void g_static_private_init (GStaticPrivate *private_key); + + +gpointer g_static_private_get (GStaticPrivate *private_key); + + +void g_static_private_set (GStaticPrivate *private_key, + gpointer data, + GDestroyNotify notify); + + +void g_static_private_free (GStaticPrivate *private_key); + + +gboolean g_once_init_enter_impl (volatile gsize *location); + + +void g_thread_init (gpointer vtable); + +void g_thread_init_with_errorcheck_mutexes (gpointer vtable); + + +gboolean g_thread_get_initialized (void); + +extern gboolean g_threads_got_initialized; + + + + +GMutex * g_mutex_new (void); + +void g_mutex_free (GMutex *mutex); + +GCond * g_cond_new (void); + +void g_cond_free (GCond *cond); + +gboolean g_cond_timed_wait (GCond *cond, + GMutex *mutex, + GTimeVal *timeval); + + +# 109 "/usr/include/glib-2.0/glib.h" 2 +# 40 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 + + + + + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-os-posix.h" 1 +# 29 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-os-posix.h" +void os_set_line_buffering(void); +void os_set_proc_name(const char *s); +void os_setup_signal_handling(void); +void os_daemonize(void); +void os_setup_post(void); + +typedef struct timeval qemu_timeval; +# 46 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-os-posix.h" +typedef struct timespec qemu_timespec; +int qemu_utimens(const char *path, const qemu_timespec *times); +# 47 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 91 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" +# 1 "/usr/include/sys/uio.h" 1 3 4 +# 26 "/usr/include/sys/uio.h" 3 4 + + + +# 1 "/usr/include/bits/uio.h" 1 3 4 +# 55 "/usr/include/bits/uio.h" 3 4 + + + +extern ssize_t process_vm_readv (pid_t __pid, __const struct iovec *__lvec, + unsigned long int __liovcnt, + __const struct iovec *__rvec, + unsigned long int __riovcnt, + unsigned long int __flags) + __attribute__ ((__nothrow__ , __leaf__)); + + +extern ssize_t process_vm_writev (pid_t __pid, __const struct iovec *__lvec, + unsigned long int __liovcnt, + __const struct iovec *__rvec, + unsigned long int __riovcnt, + unsigned long int __flags) + __attribute__ ((__nothrow__ , __leaf__)); + + +# 30 "/usr/include/sys/uio.h" 2 3 4 +# 40 "/usr/include/sys/uio.h" 3 4 +extern ssize_t readv (int __fd, __const struct iovec *__iovec, int __count) + __attribute__ ((__warn_unused_result__)); +# 51 "/usr/include/sys/uio.h" 3 4 +extern ssize_t writev (int __fd, __const struct iovec *__iovec, int __count) + __attribute__ ((__warn_unused_result__)); +# 82 "/usr/include/sys/uio.h" 3 4 +extern ssize_t preadv (int __fd, __const struct iovec *__iovec, int __count, __off64_t __offset) __asm__ ("" "preadv64") + + __attribute__ ((__warn_unused_result__)); +extern ssize_t pwritev (int __fd, __const struct iovec *__iovec, int __count, __off64_t __offset) __asm__ ("" "pwritev64") + + __attribute__ ((__warn_unused_result__)); +# 104 "/usr/include/sys/uio.h" 3 4 +extern ssize_t preadv64 (int __fd, __const struct iovec *__iovec, int __count, + __off64_t __offset) __attribute__ ((__warn_unused_result__)); +# 116 "/usr/include/sys/uio.h" 3 4 +extern ssize_t pwritev64 (int __fd, __const struct iovec *__iovec, int __count, + __off64_t __offset) __attribute__ ((__warn_unused_result__)); + + + + +# 92 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 + + +typedef int (*fprintf_function)(FILE *f, const char *fmt, ...) + __attribute__((format(gnu_printf, 2, 3))); +# 115 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" +void configure_icount(const char *option); +extern int use_icount; +# 126 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" 1 +# 127 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 135 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" +void qemu_get_timedate(struct tm *tm, int offset); +int qemu_timedate_diff(struct tm *tm); + + +void pstrcpy(char *buf, int buf_size, const char *str); +char *pstrcat(char *buf, int buf_size, const char *s); +int strstart(const char *str, const char *val, const char **ptr); +int stristart(const char *str, const char *val, const char **ptr); +int qemu_strnlen(const char *s, int max_len); +time_t mktimegm(struct tm *tm); +int qemu_fls(int i); +int qemu_fdatasync(int fd); +int fcntl_setfl(int fd, int flag); +int qemu_parse_fd(const char *param); +# 162 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" +int64_t strtosz(const char *nptr, char **end); +int64_t strtosz_suffix(const char *nptr, char **end, const char default_suffix); +int64_t strtosz_suffix_unit(const char *nptr, char **end, + const char default_suffix, int64_t unit); + + +void init_paths(const char *prefix); +const char *path(const char *pathname); +# 187 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" +void *qemu_oom_check(void *ptr); + +int qemu_open(const char *name, int flags, ...); +ssize_t qemu_write_full(int fd, const void *buf, size_t count) + __attribute__((warn_unused_result)); +ssize_t qemu_send_full(int fd, const void *buf, size_t count, int flags) + __attribute__((warn_unused_result)); +ssize_t qemu_recv_full(int fd, void *buf, size_t count, int flags) + __attribute__((warn_unused_result)); + + +int qemu_eventfd(int pipefd[2]); +int qemu_pipe(int pipefd[2]); +# 208 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" +int qemu_recvv(int sockfd, struct iovec *iov, int len, int iov_offset); +int qemu_sendv(int sockfd, struct iovec *iov, int len, int iov_offset); + + + +void __attribute__ ((__noreturn__)) hw_error(const char *fmt, ...) __attribute__((format(gnu_printf, 1, 2))); + +struct ParallelIOArg { + void *buffer; + int count; +}; + +typedef int (*DMA_transfer_handler) (void *opaque, int nchan, int pos, int size); + + + +typedef struct NICInfo NICInfo; +typedef struct HCIInfo HCIInfo; +typedef struct AudioState AudioState; +typedef struct BlockDriverState BlockDriverState; +typedef struct DriveInfo DriveInfo; +typedef struct DisplayState DisplayState; +typedef struct DisplayChangeListener DisplayChangeListener; +typedef struct DisplaySurface DisplaySurface; +typedef struct DisplayAllocator DisplayAllocator; +typedef struct PixelFormat PixelFormat; +typedef struct TextConsole TextConsole; +typedef TextConsole QEMUConsole; +typedef struct CharDriverState CharDriverState; +typedef struct MACAddr MACAddr; +typedef struct VLANState VLANState; +typedef struct VLANClientState VLANClientState; +typedef struct i2c_bus i2c_bus; +typedef struct ISABus ISABus; +typedef struct SMBusDevice SMBusDevice; +typedef struct PCIHostState PCIHostState; +typedef struct PCIExpressHost PCIExpressHost; +typedef struct PCIBus PCIBus; +typedef struct PCIDevice PCIDevice; +typedef struct PCIExpressDevice PCIExpressDevice; +typedef struct PCIBridge PCIBridge; +typedef struct PCIEAERMsg PCIEAERMsg; +typedef struct PCIEAERLog PCIEAERLog; +typedef struct PCIEAERErr PCIEAERErr; +typedef struct PCIEPort PCIEPort; +typedef struct PCIESlot PCIESlot; +typedef struct SerialState SerialState; +typedef struct IRQState *qemu_irq; +typedef struct PCMCIACardState PCMCIACardState; +typedef struct MouseTransformInfo MouseTransformInfo; +typedef struct uWireSlave uWireSlave; +typedef struct I2SCodec I2SCodec; +typedef struct SSIBus SSIBus; +typedef struct EventNotifier EventNotifier; +typedef struct VirtIODevice VirtIODevice; +typedef struct QEMUSGList QEMUSGList; +typedef struct SHPCDevice SHPCDevice; + +typedef uint64_t pcibus_t; + +typedef enum LostTickPolicy { + LOST_TICK_DISCARD, + LOST_TICK_DELAY, + LOST_TICK_MERGE, + LOST_TICK_SLEW, + LOST_TICK_MAX +} LostTickPolicy; + +void tcg_exec_init(unsigned long tb_size); +_Bool tcg_enabled(void); + +void cpu_exec_init_all(void); + + +void cpu_save(QEMUFile *f, void *opaque); +int cpu_load(QEMUFile *f, void *opaque, int version_id); + + +void qemu_cpu_kick(void *env); +void qemu_cpu_kick_self(void); +int qemu_cpu_is_self(void *env); +_Bool all_cpu_threads_idle(void); + + +struct qemu_work_item { + struct qemu_work_item *next; + void (*func)(void *data); + void *data; + int done; +}; + + + + +void qemu_init_vcpu(void *env); + + + + + + +int qemu_co_sendv(int sockfd, struct iovec *iov, + int len, int iov_offset); + + + + + +int qemu_co_recvv(int sockfd, struct iovec *iov, + int len, int iov_offset); + + + + + +int qemu_co_send(int sockfd, void *buf, int len); + + + + + +int qemu_co_recv(int sockfd, void *buf, int len); + + +typedef struct QEMUIOVector { + struct iovec *iov; + int niov; + int nalloc; + size_t size; +} QEMUIOVector; + +void qemu_iovec_init(QEMUIOVector *qiov, int alloc_hint); +void qemu_iovec_init_external(QEMUIOVector *qiov, struct iovec *iov, int niov); +void qemu_iovec_add(QEMUIOVector *qiov, void *base, size_t len); +void qemu_iovec_copy(QEMUIOVector *dst, QEMUIOVector *src, uint64_t skip, + size_t size); +void qemu_iovec_concat(QEMUIOVector *dst, QEMUIOVector *src, size_t size); +void qemu_iovec_destroy(QEMUIOVector *qiov); +void qemu_iovec_reset(QEMUIOVector *qiov); +void qemu_iovec_to_buffer(QEMUIOVector *qiov, void *buf); +void qemu_iovec_from_buffer(QEMUIOVector *qiov, const void *buf, size_t count); +void qemu_iovec_memset(QEMUIOVector *qiov, int c, size_t count); +void qemu_iovec_memset_skip(QEMUIOVector *qiov, int c, size_t count, + size_t skip); + +_Bool buffer_is_zero(const void *buf, size_t len); + +void qemu_progress_init(int enabled, float min_skip); +void qemu_progress_end(void); +void qemu_progress_print(float delta, int max); + + + +char *qemu_find_file(int type, const char *name); + + +void os_setup_early_signal_handling(void); +char *os_find_datadir(const char *argv0); +void os_parse_cmd_args(int index, const char *optarg); +void os_pidfile_error(void); + + +static inline uint8_t to_bcd(uint8_t val) +{ + return ((val / 10) << 4) | (val % 10); +} + +static inline uint8_t from_bcd(uint8_t val) +{ + return ((val >> 4) * 10) + (val & 0x0f); +} + + +static inline uint64_t muldiv64(uint64_t a, uint32_t b, uint32_t c) +{ + union { + uint64_t ll; + struct { + + + + uint32_t low, high; + + } l; + } u, res; + uint64_t rl, rh; + + u.ll = a; + rl = (uint64_t)u.l.low * (uint64_t)b; + rh = (uint64_t)u.l.high * (uint64_t)b; + rh += (rl >> 32); + res.l.high = rh / c; + res.l.low = (((rh % c) << 32) + (rl & 0xffffffff)) / c; + return res.ll; +} + + + + + + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/module.h" 1 +# 23 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/module.h" +typedef enum { + MODULE_INIT_BLOCK, + MODULE_INIT_MACHINE, + MODULE_INIT_QAPI, + MODULE_INIT_QOM, + MODULE_INIT_MAX +} module_init_type; + + + + + + +void register_module_init(void (*fn)(void), module_init_type type); + +void module_call_init(module_init_type type); +# 411 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 2 +# 24 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" 2 +# 47 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-defs.h" 1 +# 26 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-defs.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/config.h" 1 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/config-host.h" 1 +# 2 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/config.h" 2 +# 1 "./config-target.h" 1 +# 2 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/config.h" 2 +# 27 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-defs.h" 2 +# 1 "/usr/include/setjmp.h" 1 3 4 +# 28 "/usr/include/setjmp.h" 3 4 + + + +# 1 "/usr/include/bits/sigset.h" 1 3 4 +# 32 "/usr/include/setjmp.h" 2 3 4 + + + +struct __jmp_buf_tag + { + + + + + __jmp_buf __jmpbuf; + int __mask_was_saved; + __sigset_t __saved_mask; + }; + + + + +typedef struct __jmp_buf_tag jmp_buf[1]; + + + +extern int setjmp (jmp_buf __env) __attribute__ ((__nothrow__)); + + + + + + +extern int __sigsetjmp (struct __jmp_buf_tag __env[1], int __savemask) __attribute__ ((__nothrow__)); + + + + +extern int _setjmp (struct __jmp_buf_tag __env[1]) __attribute__ ((__nothrow__)); +# 78 "/usr/include/setjmp.h" 3 4 + + + + +extern void longjmp (struct __jmp_buf_tag __env[1], int __val) + __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); + + + + + + + +extern void _longjmp (struct __jmp_buf_tag __env[1], int __val) + __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); + + + + + + + +typedef struct __jmp_buf_tag sigjmp_buf[1]; +# 110 "/usr/include/setjmp.h" 3 4 +extern void siglongjmp (sigjmp_buf __env, int __val) + __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); + + + + + +# 1 "/usr/include/bits/setjmp2.h" 1 3 4 +# 26 "/usr/include/bits/setjmp2.h" 3 4 +extern void longjmp (struct __jmp_buf_tag __env[1], int __val) __asm__ ("" "__longjmp_chk") __attribute__ ((__nothrow__)) + + __attribute__ ((__noreturn__)); +extern void _longjmp (struct __jmp_buf_tag __env[1], int __val) __asm__ ("" "__longjmp_chk") __attribute__ ((__nothrow__)) + + __attribute__ ((__noreturn__)); +extern void siglongjmp (struct __jmp_buf_tag __env[1], int __val) __asm__ ("" "__longjmp_chk") __attribute__ ((__nothrow__)) + + __attribute__ ((__noreturn__)); +# 118 "/usr/include/setjmp.h" 2 3 4 + + + +# 28 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-defs.h" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/osdep.h" 1 + + + + +# 1 "/usr/lib/gcc/i686-pc-linux-gnu/4.6.3/include/stddef.h" 1 3 4 +# 6 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/osdep.h" 2 +# 82 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/osdep.h" +int qemu_daemon(int nochdir, int noclose); +void *qemu_memalign(size_t alignment, size_t size); +void *qemu_vmalloc(size_t size); +void qemu_vfree(void *ptr); +# 120 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/osdep.h" +int qemu_madvise(void *addr, size_t len, int advice); +# 130 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/osdep.h" +int qemu_create_pidfile(const char *filename); +int qemu_get_thread_id(void); +# 150 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/osdep.h" +void qemu_set_cloexec(int fd); +# 31 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-defs.h" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-queue.h" 1 +# 81 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-queue.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-barrier.h" 1 +# 82 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-queue.h" 2 +# 32 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-defs.h" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/targphys.h" 1 +# 15 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/targphys.h" +typedef uint64_t target_phys_addr_t; +# 33 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-defs.h" 2 + + + + + + + +typedef int16_t target_short __attribute__ ((aligned(2))); +typedef uint16_t target_ushort __attribute__((aligned(2))); +typedef int32_t target_int __attribute__((aligned(4))); +typedef uint32_t target_uint __attribute__((aligned(4))); +typedef int64_t target_llong __attribute__((aligned(8))); +typedef uint64_t target_ullong __attribute__((aligned(8))); + + +typedef int32_t target_long __attribute__((aligned(4))); +typedef uint32_t target_ulong __attribute__((aligned(4))); +# 89 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-defs.h" +typedef struct CPUTLBEntry { + + + + + + + target_ulong addr_read; + target_ulong addr_write; + target_ulong addr_code; + + + uintptr_t addend; + + uint8_t dummy[(1 << 4) - + (sizeof(target_ulong) * 3 + + ((-sizeof(target_ulong) * 3) & (sizeof(uintptr_t) - 1)) + + sizeof(uintptr_t))]; +} CPUTLBEntry; + +extern int CPUTLBEntry_wrong_size[sizeof(CPUTLBEntry) == (1 << 4) ? 1 : -1]; +# 131 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-defs.h" +typedef struct icount_decr_u16 { + uint16_t low; + uint16_t high; +} icount_decr_u16; + + +struct kvm_run; +struct KVMState; +struct qemu_work_item; + +typedef struct CPUBreakpoint { + target_ulong pc; + int flags; + struct { struct CPUBreakpoint *tqe_next; struct CPUBreakpoint * *tqe_prev; } entry; +} CPUBreakpoint; + +typedef struct CPUWatchpoint { + target_ulong vaddr; + target_ulong len_mask; + int flags; + struct { struct CPUWatchpoint *tqe_next; struct CPUWatchpoint * *tqe_prev; } entry; +} CPUWatchpoint; +# 48 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" 2 + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/fpu/softfloat.h" 1 +# 46 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/fpu/softfloat.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/config-host.h" 1 +# 47 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/fpu/softfloat.h" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/osdep.h" 1 +# 48 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/fpu/softfloat.h" 2 +# 57 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/fpu/softfloat.h" +typedef uint8_t flag; +typedef uint8_t uint8; +typedef int8_t int8; +typedef unsigned int uint32; +typedef signed int int32; +typedef uint64_t uint64; +typedef int64_t int64; +# 75 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/fpu/softfloat.h" +enum { + float_relation_less = -1, + float_relation_equal = 0, + float_relation_greater = 1, + float_relation_unordered = 2 +}; +# 111 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/fpu/softfloat.h" +typedef uint16_t float16; +typedef uint32_t float32; +typedef uint64_t float64; +# 124 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/fpu/softfloat.h" +typedef struct { + uint64_t low; + uint16_t high; +} floatx80; + + +typedef struct { + + + + uint64_t low, high; + +} float128; + + + + + + +enum { + float_tininess_after_rounding = 0, + float_tininess_before_rounding = 1 +}; + + + + +enum { + float_round_nearest_even = 0, + float_round_down = 1, + float_round_up = 2, + float_round_to_zero = 3 +}; + + + + +enum { + float_flag_invalid = 1, + float_flag_divbyzero = 4, + float_flag_overflow = 8, + float_flag_underflow = 16, + float_flag_inexact = 32, + float_flag_input_denormal = 64, + float_flag_output_denormal = 128 +}; + +typedef struct float_status { + signed char float_detect_tininess; + signed char float_rounding_mode; + signed char float_exception_flags; + signed char floatx80_rounding_precision; + + flag flush_to_zero; + + flag flush_inputs_to_zero; + flag default_nan_mode; +} float_status; + +void set_float_rounding_mode(int val , float_status *status); +void set_float_exception_flags(int val , float_status *status); +static __attribute__ (( always_inline )) __inline__ void set_float_detect_tininess(int val , float_status *status) +{ + status->float_detect_tininess = val; +} +static __attribute__ (( always_inline )) __inline__ void set_flush_to_zero(flag val , float_status *status) +{ + status->flush_to_zero = val; +} +static __attribute__ (( always_inline )) __inline__ void set_flush_inputs_to_zero(flag val , float_status *status) +{ + status->flush_inputs_to_zero = val; +} +static __attribute__ (( always_inline )) __inline__ void set_default_nan_mode(flag val , float_status *status) +{ + status->default_nan_mode = val; +} +static __attribute__ (( always_inline )) __inline__ int get_float_exception_flags(float_status *status) +{ + return status->float_exception_flags; +} +void set_floatx80_rounding_precision(int val , float_status *status); + + + + + +void float_raise( int8 flags , float_status *status); + + + + + + + +enum { + float_muladd_negate_c = 1, + float_muladd_negate_product = 2, + float_muladd_negate_result = 3, +}; + + + + +float32 int32_to_float32( int32 , float_status *status ); +float64 int32_to_float64( int32 , float_status *status ); +float32 uint32_to_float32( uint32 , float_status *status ); +float64 uint32_to_float64( uint32 , float_status *status ); +floatx80 int32_to_floatx80( int32 , float_status *status ); +float128 int32_to_float128( int32 , float_status *status ); +float32 int64_to_float32( int64 , float_status *status ); +float32 uint64_to_float32( uint64 , float_status *status ); +float64 int64_to_float64( int64 , float_status *status ); +float64 uint64_to_float64( uint64 , float_status *status ); +floatx80 int64_to_floatx80( int64 , float_status *status ); +float128 int64_to_float128( int64 , float_status *status ); + + + + +float16 float32_to_float16( float32, flag , float_status *status ); +float32 float16_to_float32( float16, flag , float_status *status ); + + + + +int float16_is_quiet_nan( float16 ); +int float16_is_signaling_nan( float16 ); +float16 float16_maybe_silence_nan( float16 ); + + + + +extern const float16 float16_default_nan; + + + + +int_fast16_t float32_to_int16_round_to_zero(float32 , float_status *status); +uint_fast16_t float32_to_uint16_round_to_zero(float32 , float_status *status); +int32 float32_to_int32( float32 , float_status *status ); +int32 float32_to_int32_round_to_zero( float32 , float_status *status ); +uint32 float32_to_uint32( float32 , float_status *status ); +uint32 float32_to_uint32_round_to_zero( float32 , float_status *status ); +int64 float32_to_int64( float32 , float_status *status ); +int64 float32_to_int64_round_to_zero( float32 , float_status *status ); +float64 float32_to_float64( float32 , float_status *status ); +floatx80 float32_to_floatx80( float32 , float_status *status ); +float128 float32_to_float128( float32 , float_status *status ); + + + + +float32 float32_round_to_int( float32 , float_status *status ); +float32 float32_add( float32, float32 , float_status *status ); +float32 float32_sub( float32, float32 , float_status *status ); +float32 float32_mul( float32, float32 , float_status *status ); +float32 float32_div( float32, float32 , float_status *status ); +float32 float32_rem( float32, float32 , float_status *status ); +float32 float32_muladd(float32, float32, float32, int , float_status *status); +float32 float32_sqrt( float32 , float_status *status ); +float32 float32_exp2( float32 , float_status *status ); +float32 float32_log2( float32 , float_status *status ); +int float32_eq( float32, float32 , float_status *status ); +int float32_le( float32, float32 , float_status *status ); +int float32_lt( float32, float32 , float_status *status ); +int float32_unordered( float32, float32 , float_status *status ); +int float32_eq_quiet( float32, float32 , float_status *status ); +int float32_le_quiet( float32, float32 , float_status *status ); +int float32_lt_quiet( float32, float32 , float_status *status ); +int float32_unordered_quiet( float32, float32 , float_status *status ); +int float32_compare( float32, float32 , float_status *status ); +int float32_compare_quiet( float32, float32 , float_status *status ); +float32 float32_min(float32, float32 , float_status *status); +float32 float32_max(float32, float32 , float_status *status); +int float32_is_quiet_nan( float32 ); +int float32_is_signaling_nan( float32 ); +float32 float32_maybe_silence_nan( float32 ); +float32 float32_scalbn( float32, int , float_status *status ); + +static __attribute__ (( always_inline )) __inline__ float32 float32_abs(float32 a) +{ + + + + return ((a) & 0x7fffffff); +} + +static __attribute__ (( always_inline )) __inline__ float32 float32_chs(float32 a) +{ + + + + return ((a) ^ 0x80000000); +} + +static __attribute__ (( always_inline )) __inline__ int float32_is_infinity(float32 a) +{ + return ((a) & 0x7fffffff) == 0x7f800000; +} + +static __attribute__ (( always_inline )) __inline__ int float32_is_neg(float32 a) +{ + return (a) >> 31; +} + +static __attribute__ (( always_inline )) __inline__ int float32_is_zero(float32 a) +{ + return ((a) & 0x7fffffff) == 0; +} + +static __attribute__ (( always_inline )) __inline__ int float32_is_any_nan(float32 a) +{ + return (((a) & ~(1 << 31)) > 0x7f800000UL); +} + +static __attribute__ (( always_inline )) __inline__ int float32_is_zero_or_denormal(float32 a) +{ + return ((a) & 0x7f800000) == 0; +} + +static __attribute__ (( always_inline )) __inline__ float32 float32_set_sign(float32 a, int sign) +{ + return (((a) & 0x7fffffff) | (sign << 31)); +} +# 361 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/fpu/softfloat.h" +extern const float32 float32_default_nan; + + + + +int_fast16_t float64_to_int16_round_to_zero(float64 , float_status *status); +uint_fast16_t float64_to_uint16_round_to_zero(float64 , float_status *status); +int32 float64_to_int32( float64 , float_status *status ); +int32 float64_to_int32_round_to_zero( float64 , float_status *status ); +uint32 float64_to_uint32( float64 , float_status *status ); +uint32 float64_to_uint32_round_to_zero( float64 , float_status *status ); +int64 float64_to_int64( float64 , float_status *status ); +int64 float64_to_int64_round_to_zero( float64 , float_status *status ); +uint64 float64_to_uint64 (float64 a , float_status *status); +uint64 float64_to_uint64_round_to_zero (float64 a , float_status *status); +float32 float64_to_float32( float64 , float_status *status ); +floatx80 float64_to_floatx80( float64 , float_status *status ); +float128 float64_to_float128( float64 , float_status *status ); + + + + +float64 float64_round_to_int( float64 , float_status *status ); +float64 float64_trunc_to_int( float64 , float_status *status ); +float64 float64_add( float64, float64 , float_status *status ); +float64 float64_sub( float64, float64 , float_status *status ); +float64 float64_mul( float64, float64 , float_status *status ); +float64 float64_div( float64, float64 , float_status *status ); +float64 float64_rem( float64, float64 , float_status *status ); +float64 float64_muladd(float64, float64, float64, int , float_status *status); +float64 float64_sqrt( float64 , float_status *status ); +float64 float64_log2( float64 , float_status *status ); +int float64_eq( float64, float64 , float_status *status ); +int float64_le( float64, float64 , float_status *status ); +int float64_lt( float64, float64 , float_status *status ); +int float64_unordered( float64, float64 , float_status *status ); +int float64_eq_quiet( float64, float64 , float_status *status ); +int float64_le_quiet( float64, float64 , float_status *status ); +int float64_lt_quiet( float64, float64 , float_status *status ); +int float64_unordered_quiet( float64, float64 , float_status *status ); +int float64_compare( float64, float64 , float_status *status ); +int float64_compare_quiet( float64, float64 , float_status *status ); +float64 float64_min(float64, float64 , float_status *status); +float64 float64_max(float64, float64 , float_status *status); +int float64_is_quiet_nan( float64 a ); +int float64_is_signaling_nan( float64 ); +float64 float64_maybe_silence_nan( float64 ); +float64 float64_scalbn( float64, int , float_status *status ); + +static __attribute__ (( always_inline )) __inline__ float64 float64_abs(float64 a) +{ + + + + return ((a) & 0x7fffffffffffffffLL); +} + +static __attribute__ (( always_inline )) __inline__ float64 float64_chs(float64 a) +{ + + + + return ((a) ^ 0x8000000000000000LL); +} + +static __attribute__ (( always_inline )) __inline__ int float64_is_infinity(float64 a) +{ + return ((a) & 0x7fffffffffffffffLL ) == 0x7ff0000000000000LL; +} + +static __attribute__ (( always_inline )) __inline__ int float64_is_neg(float64 a) +{ + return (a) >> 63; +} + +static __attribute__ (( always_inline )) __inline__ int float64_is_zero(float64 a) +{ + return ((a) & 0x7fffffffffffffffLL) == 0; +} + +static __attribute__ (( always_inline )) __inline__ int float64_is_any_nan(float64 a) +{ + return (((a) & ~(1ULL << 63)) > 0x7ff0000000000000ULL); +} + +static __attribute__ (( always_inline )) __inline__ int float64_is_zero_or_denormal(float64 a) +{ + return ((a) & 0x7ff0000000000000LL) == 0; +} + +static __attribute__ (( always_inline )) __inline__ float64 float64_set_sign(float64 a, int sign) +{ + return (((a) & 0x7fffffffffffffffULL) | ((int64_t)sign << 63)) + ; +} +# 467 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/fpu/softfloat.h" +extern const float64 float64_default_nan; + + + + +int32 floatx80_to_int32( floatx80 , float_status *status ); +int32 floatx80_to_int32_round_to_zero( floatx80 , float_status *status ); +int64 floatx80_to_int64( floatx80 , float_status *status ); +int64 floatx80_to_int64_round_to_zero( floatx80 , float_status *status ); +float32 floatx80_to_float32( floatx80 , float_status *status ); +float64 floatx80_to_float64( floatx80 , float_status *status ); +float128 floatx80_to_float128( floatx80 , float_status *status ); + + + + +floatx80 floatx80_round_to_int( floatx80 , float_status *status ); +floatx80 floatx80_add( floatx80, floatx80 , float_status *status ); +floatx80 floatx80_sub( floatx80, floatx80 , float_status *status ); +floatx80 floatx80_mul( floatx80, floatx80 , float_status *status ); +floatx80 floatx80_div( floatx80, floatx80 , float_status *status ); +floatx80 floatx80_rem( floatx80, floatx80 , float_status *status ); +floatx80 floatx80_sqrt( floatx80 , float_status *status ); +int floatx80_eq( floatx80, floatx80 , float_status *status ); +int floatx80_le( floatx80, floatx80 , float_status *status ); +int floatx80_lt( floatx80, floatx80 , float_status *status ); +int floatx80_unordered( floatx80, floatx80 , float_status *status ); +int floatx80_eq_quiet( floatx80, floatx80 , float_status *status ); +int floatx80_le_quiet( floatx80, floatx80 , float_status *status ); +int floatx80_lt_quiet( floatx80, floatx80 , float_status *status ); +int floatx80_unordered_quiet( floatx80, floatx80 , float_status *status ); +int floatx80_compare( floatx80, floatx80 , float_status *status ); +int floatx80_compare_quiet( floatx80, floatx80 , float_status *status ); +int floatx80_is_quiet_nan( floatx80 ); +int floatx80_is_signaling_nan( floatx80 ); +floatx80 floatx80_maybe_silence_nan( floatx80 ); +floatx80 floatx80_scalbn( floatx80, int , float_status *status ); + +static __attribute__ (( always_inline )) __inline__ floatx80 floatx80_abs(floatx80 a) +{ + a.high &= 0x7fff; + return a; +} + +static __attribute__ (( always_inline )) __inline__ floatx80 floatx80_chs(floatx80 a) +{ + a.high ^= 0x8000; + return a; +} + +static __attribute__ (( always_inline )) __inline__ int floatx80_is_infinity(floatx80 a) +{ + return (a.high & 0x7fff) == 0x7fff && a.low == 0x8000000000000000LL; +} + +static __attribute__ (( always_inline )) __inline__ int floatx80_is_neg(floatx80 a) +{ + return a.high >> 15; +} + +static __attribute__ (( always_inline )) __inline__ int floatx80_is_zero(floatx80 a) +{ + return (a.high & 0x7fff) == 0 && a.low == 0; +} + +static __attribute__ (( always_inline )) __inline__ int floatx80_is_zero_or_denormal(floatx80 a) +{ + return (a.high & 0x7fff) == 0; +} + +static __attribute__ (( always_inline )) __inline__ int floatx80_is_any_nan(floatx80 a) +{ + return ((a.high & 0x7fff) == 0x7fff) && (a.low<<1); +} +# 552 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/fpu/softfloat.h" +extern const floatx80 floatx80_default_nan; + + + + +int32 float128_to_int32( float128 , float_status *status ); +int32 float128_to_int32_round_to_zero( float128 , float_status *status ); +int64 float128_to_int64( float128 , float_status *status ); +int64 float128_to_int64_round_to_zero( float128 , float_status *status ); +float32 float128_to_float32( float128 , float_status *status ); +float64 float128_to_float64( float128 , float_status *status ); +floatx80 float128_to_floatx80( float128 , float_status *status ); + + + + +float128 float128_round_to_int( float128 , float_status *status ); +float128 float128_add( float128, float128 , float_status *status ); +float128 float128_sub( float128, float128 , float_status *status ); +float128 float128_mul( float128, float128 , float_status *status ); +float128 float128_div( float128, float128 , float_status *status ); +float128 float128_rem( float128, float128 , float_status *status ); +float128 float128_sqrt( float128 , float_status *status ); +int float128_eq( float128, float128 , float_status *status ); +int float128_le( float128, float128 , float_status *status ); +int float128_lt( float128, float128 , float_status *status ); +int float128_unordered( float128, float128 , float_status *status ); +int float128_eq_quiet( float128, float128 , float_status *status ); +int float128_le_quiet( float128, float128 , float_status *status ); +int float128_lt_quiet( float128, float128 , float_status *status ); +int float128_unordered_quiet( float128, float128 , float_status *status ); +int float128_compare( float128, float128 , float_status *status ); +int float128_compare_quiet( float128, float128 , float_status *status ); +int float128_is_quiet_nan( float128 ); +int float128_is_signaling_nan( float128 ); +float128 float128_maybe_silence_nan( float128 ); +float128 float128_scalbn( float128, int , float_status *status ); + +static __attribute__ (( always_inline )) __inline__ float128 float128_abs(float128 a) +{ + a.high &= 0x7fffffffffffffffLL; + return a; +} + +static __attribute__ (( always_inline )) __inline__ float128 float128_chs(float128 a) +{ + a.high ^= 0x8000000000000000LL; + return a; +} + +static __attribute__ (( always_inline )) __inline__ int float128_is_infinity(float128 a) +{ + return (a.high & 0x7fffffffffffffffLL) == 0x7fff000000000000LL && a.low == 0; +} + +static __attribute__ (( always_inline )) __inline__ int float128_is_neg(float128 a) +{ + return a.high >> 63; +} + +static __attribute__ (( always_inline )) __inline__ int float128_is_zero(float128 a) +{ + return (a.high & 0x7fffffffffffffffLL) == 0 && a.low == 0; +} + +static __attribute__ (( always_inline )) __inline__ int float128_is_zero_or_denormal(float128 a) +{ + return (a.high & 0x7fff000000000000LL) == 0; +} + +static __attribute__ (( always_inline )) __inline__ int float128_is_any_nan(float128 a) +{ + return ((a.high >> 48) & 0x7fff) == 0x7fff && + ((a.low != 0) || ((a.high & 0xffffffffffffLL) != 0)); +} + + + + +extern const float128 float128_default_nan; +# 50 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" 2 +# 489 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" +enum { + CC_OP_DYNAMIC, + CC_OP_EFLAGS, + + CC_OP_MULB, + CC_OP_MULW, + CC_OP_MULL, + CC_OP_MULQ, + + CC_OP_ADDB, + CC_OP_ADDW, + CC_OP_ADDL, + CC_OP_ADDQ, + + CC_OP_ADCB, + CC_OP_ADCW, + CC_OP_ADCL, + CC_OP_ADCQ, + + CC_OP_SUBB, + CC_OP_SUBW, + CC_OP_SUBL, + CC_OP_SUBQ, + + CC_OP_SBBB, + CC_OP_SBBW, + CC_OP_SBBL, + CC_OP_SBBQ, + + CC_OP_LOGICB, + CC_OP_LOGICW, + CC_OP_LOGICL, + CC_OP_LOGICQ, + + CC_OP_INCB, + CC_OP_INCW, + CC_OP_INCL, + CC_OP_INCQ, + + CC_OP_DECB, + CC_OP_DECW, + CC_OP_DECL, + CC_OP_DECQ, + + CC_OP_SHLB, + CC_OP_SHLW, + CC_OP_SHLL, + CC_OP_SHLQ, + + CC_OP_SARB, + CC_OP_SARW, + CC_OP_SARL, + CC_OP_SARQ, + + CC_OP_NB, +}; + +typedef struct SegmentCache { + uint32_t selector; + target_ulong base; + uint32_t limit; + uint32_t flags; +} SegmentCache; + +typedef union { + uint8_t _b[16]; + uint16_t _w[8]; + uint32_t _l[4]; + uint64_t _q[2]; + float32 _s[4]; + float64 _d[2]; +} XMMReg; + +typedef union { + uint8_t _b[8]; + uint16_t _w[4]; + uint32_t _l[2]; + float32 _s[2]; + uint64_t q; +} MMXReg; +# 597 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" +typedef union { + floatx80 d __attribute__((aligned(16))); + MMXReg mmx; +} FPReg; + +typedef struct { + uint64_t base; + uint64_t mask; +} MTRRVar; +# 618 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" +typedef enum TPRAccess { + TPR_ACCESS_READ, + TPR_ACCESS_WRITE, +} TPRAccess; + +typedef struct CPUX86State { + + target_ulong regs[8]; + target_ulong eip; + target_ulong eflags; + + + + + target_ulong cc_src; + target_ulong cc_dst; + uint32_t cc_op; + int32_t df; + uint32_t hflags; + + uint32_t hflags2; + + + SegmentCache segs[6]; + SegmentCache ldt; + SegmentCache tr; + SegmentCache gdt; + SegmentCache idt; + + target_ulong cr[5]; + int32_t a20_mask; + + + unsigned int fpstt; + uint16_t fpus; + uint16_t fpuc; + uint8_t fptags[8]; + FPReg fpregs[8]; + + uint16_t fpop; + uint64_t fpip; + uint64_t fpdp; + + + float_status fp_status; + floatx80 ft0; + + float_status mmx_status; + float_status sse_status; + uint32_t mxcsr; + XMMReg xmm_regs[8]; + XMMReg xmm_t0; + MMXReg mmx_t0; + target_ulong cc_tmp; + + + uint32_t sysenter_cs; + target_ulong sysenter_esp; + target_ulong sysenter_eip; + uint64_t efer; + uint64_t star; + + uint64_t vm_hsave; + uint64_t vm_vmcb; + uint64_t tsc_offset; + uint64_t intercept; + uint16_t intercept_cr_read; + uint16_t intercept_cr_write; + uint16_t intercept_dr_read; + uint16_t intercept_dr_write; + uint32_t intercept_exceptions; + uint8_t v_tpr; + + + + + + + + uint64_t system_time_msr; + uint64_t wall_clock_msr; + uint64_t async_pf_en_msr; + + uint64_t tsc; + uint64_t tsc_deadline; + + uint64_t mcg_status; + uint64_t msr_ia32_misc_enable; + + + int error_code; + int exception_is_int; + target_ulong exception_next_eip; + target_ulong dr[8]; + union { + CPUBreakpoint *cpu_breakpoint[4]; + CPUWatchpoint *cpu_watchpoint[4]; + }; + uint32_t smbase; + int old_exception; + + + uint8_t nmi_injected; + uint8_t nmi_pending; + + struct TranslationBlock *current_tb; uintptr_t mem_io_pc; target_ulong mem_io_vaddr; uint32_t halted; uint32_t interrupt_request; volatile sig_atomic_t exit_request; CPUTLBEntry tlb_table[2][(1 << 8)]; target_phys_addr_t iotlb[2][(1 << 8)]; target_ulong tlb_flush_addr; target_ulong tlb_flush_mask; struct TranslationBlock *tb_jmp_cache[(1 << 12)]; long temp_buf[128]; int64_t icount_extra; union { uint32_t u32; icount_decr_u16 u16; } icount_decr; uint32_t can_do_io; struct breakpoints_head { struct CPUBreakpoint *tqh_first; struct CPUBreakpoint * *tqh_last; } breakpoints; int singlestep_enabled; struct watchpoints_head { struct CPUWatchpoint *tqh_first; struct CPUWatchpoint * *tqh_last; } watchpoints; CPUWatchpoint *watchpoint_hit; struct GDBRegisterState *gdb_regs; jmp_buf jmp_env; int exception_index; struct CPUX86State *next_cpu; int cpu_index; uint32_t host_tid; int numa_node; int nr_cores; int nr_threads; int running; int thread_id; void *opaque; uint32_t created; uint32_t stop; uint32_t stopped; struct QemuThread *thread; struct QemuCond *halt_cond; int thread_kicked; struct qemu_work_item *queued_work_first, *queued_work_last; const char *cpu_model_str; struct KVMState *kvm_state; struct kvm_run *kvm_run; int kvm_fd; int kvm_vcpu_dirty; + + uint64_t pat; + + + uint32_t cpuid_level; + uint32_t cpuid_vendor1; + uint32_t cpuid_vendor2; + uint32_t cpuid_vendor3; + uint32_t cpuid_version; + uint32_t cpuid_features; + uint32_t cpuid_ext_features; + uint32_t cpuid_xlevel; + uint32_t cpuid_model[12]; + uint32_t cpuid_ext2_features; + uint32_t cpuid_ext3_features; + uint32_t cpuid_apic_id; + int cpuid_vendor_override; + + uint32_t cpuid_xlevel2; + uint32_t cpuid_ext4_features; + + uint32_t cpuid_7_0_ebx; + + + uint64_t mtrr_fixed[11]; + uint64_t mtrr_deftype; + MTRRVar mtrr_var[8]; + + + uint32_t mp_state; + int32_t exception_injected; + int32_t interrupt_injected; + uint8_t soft_interrupt; + uint8_t has_error_code; + uint32_t sipi_vector; + uint32_t cpuid_kvm_features; + uint32_t cpuid_svm_features; + _Bool tsc_valid; + int tsc_khz; + void *kvm_xsave_buf; + + + + struct DeviceState *apic_state; + + uint64_t mcg_cap; + uint64_t mcg_ctl; + uint64_t mce_banks[10*4]; + + uint64_t tsc_aux; + + + uint16_t fpus_vmstate; + uint16_t fptag_vmstate; + uint16_t fpregs_format_vmstate; + + uint64_t xstate_bv; + XMMReg ymmh_regs[8]; + + uint64_t xcr0; + + TPRAccess tpr_access_type; +} CPUX86State; + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu-qom.h" 1 +# 23 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu-qom.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/cpu.h" 1 +# 23 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/cpu.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" 1 +# 20 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-queue.h" 1 +# 21 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" 2 + +struct Visitor; +struct Error; + +struct TypeImpl; +typedef struct TypeImpl *Type; + +typedef struct ObjectClass ObjectClass; +typedef struct Object Object; + +typedef struct TypeInfo TypeInfo; + +typedef struct InterfaceClass InterfaceClass; +typedef struct InterfaceInfo InterfaceInfo; +# 202 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +typedef void (ObjectPropertyAccessor)(Object *obj, + struct Visitor *v, + void *opaque, + const char *name, + struct Error **errp); +# 216 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +typedef void (ObjectPropertyRelease)(Object *obj, + const char *name, + void *opaque); + +typedef struct ObjectProperty +{ + gchar *name; + gchar *type; + ObjectPropertyAccessor *get; + ObjectPropertyAccessor *set; + ObjectPropertyRelease *release; + void *opaque; + + struct { struct ObjectProperty *tqe_next; struct ObjectProperty * *tqe_prev; } node; +} ObjectProperty; + + + + + + + +struct ObjectClass +{ + + Type type; +}; +# 259 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +struct Object +{ + + ObjectClass *class; + GSList *interfaces; + struct { struct ObjectProperty *tqh_first; struct ObjectProperty * *tqh_last; } properties; + uint32_t ref; + Object *parent; +}; +# 302 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +struct TypeInfo +{ + const char *name; + const char *parent; + + size_t instance_size; + void (*instance_init)(Object *obj); + void (*instance_finalize)(Object *obj); + + _Bool abstract; + size_t class_size; + + void (*class_init)(ObjectClass *klass, void *data); + void (*class_finalize)(ObjectClass *klass, void *data); + void *class_data; + + InterfaceInfo *interfaces; +}; +# 390 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +struct InterfaceClass +{ + ObjectClass parent_class; +}; +# 405 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +struct InterfaceInfo +{ + const char *type; + + void (*interface_initfn)(ObjectClass *class, void *data); +}; +# 424 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +Object *object_new(const char *typename); +# 436 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +Object *object_new_with_type(Type type); +# 445 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_delete(Object *obj); +# 455 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_initialize_with_type(void *data, Type type); +# 465 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_initialize(void *obj, const char *typename); +# 474 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_finalize(void *obj); +# 486 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +Object *object_dynamic_cast(Object *obj, const char *typename); +# 495 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +Object *object_dynamic_cast_assert(Object *obj, const char *typename); + + + + + + + +ObjectClass *object_get_class(Object *obj); + + + + + + + +const char *object_get_typename(Object *obj); +# 522 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +Type type_register_static(const TypeInfo *info); +# 535 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +Type type_register(const TypeInfo *info); +# 544 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +ObjectClass *object_class_dynamic_cast_assert(ObjectClass *klass, + const char *typename); + +ObjectClass *object_class_dynamic_cast(ObjectClass *klass, + const char *typename); + + + + + + + +const char *object_class_get_name(ObjectClass *klass); + + + + + + + +ObjectClass *object_class_by_name(const char *typename); + +void object_class_foreach(void (*fn)(ObjectClass *klass, void *opaque), + const char *implements_type, _Bool include_abstract, + void *opaque); +# 577 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +GSList *object_class_get_list(const char *implements_type, + _Bool include_abstract); +# 587 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_ref(Object *obj); +# 596 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_unref(Object *obj); +# 618 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_property_add(Object *obj, const char *name, const char *type, + ObjectPropertyAccessor *get, + ObjectPropertyAccessor *set, + ObjectPropertyRelease *release, + void *opaque, struct Error **errp); + +void object_property_del(Object *obj, const char *name, struct Error **errp); + +void object_unparent(Object *obj); +# 638 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_property_get(Object *obj, struct Visitor *v, const char *name, + struct Error **errp); +# 649 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_property_set_str(Object *obj, const char *value, + const char *name, struct Error **errp); +# 662 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +char *object_property_get_str(Object *obj, const char *name, + struct Error **errp); +# 673 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_property_set_link(Object *obj, Object *value, + const char *name, struct Error **errp); +# 686 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +Object *object_property_get_link(Object *obj, const char *name, + struct Error **errp); +# 697 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_property_set_bool(Object *obj, _Bool value, + const char *name, struct Error **errp); +# 709 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +_Bool object_property_get_bool(Object *obj, const char *name, + struct Error **errp); +# 720 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_property_set_int(Object *obj, int64_t value, + const char *name, struct Error **errp); +# 732 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +int64_t object_property_get_int(Object *obj, const char *name, + struct Error **errp); +# 746 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_property_set(Object *obj, struct Visitor *v, const char *name, + struct Error **errp); +# 758 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_property_parse(Object *obj, const char *string, + const char *name, struct Error **errp); +# 770 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +char *object_property_print(Object *obj, const char *name, + struct Error **errp); +# 781 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +const char *object_property_get_type(Object *obj, const char *name, + struct Error **errp); + + + + + + +Object *object_get_root(void); + + + + + + + +gchar *object_get_canonical_path(Object *obj); +# 822 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +Object *object_resolve_path(const char *path, _Bool *ambiguous); +# 842 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +Object *object_resolve_path_type(const char *path, const char *typename, + _Bool *ambiguous); +# 855 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +Object *object_resolve_path_component(Object *parent, gchar *part); +# 874 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_property_add_child(Object *obj, const char *name, + Object *child, struct Error **errp); +# 891 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_property_add_link(Object *obj, const char *name, + const char *type, Object **child, + struct Error **errp); +# 907 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +void object_property_add_str(Object *obj, const char *name, + char *(*get)(Object *, struct Error **), + void (*set)(Object *, const char *, struct Error **), + struct Error **errp); +# 922 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/object.h" +Object *container_get(Object *root, const char *path); +# 24 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/cpu.h" 2 +# 38 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/include/qemu/cpu.h" +typedef struct CPUState CPUState; + + + + + + + +typedef struct CPUClass { + + ObjectClass parent_class; + + + void (*reset)(CPUState *cpu); +} CPUClass; + + + + + + +struct CPUState { + + Object parent_obj; + + + +}; + + + + + + +void cpu_reset(CPUState *cpu); +# 24 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu-qom.h" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" 1 +# 25 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu-qom.h" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/error.h" 1 +# 22 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/error.h" +typedef struct Error Error; + + + + + + +void error_set(Error **err, const char *fmt, ...) __attribute__((format(gnu_printf, 2, 3))); + + + + + +_Bool error_is_set(Error **err); + + + + +Error *error_copy(const Error *err); + + + + +const char *error_get_pretty(Error *err); + + + + +const char *error_get_field(Error *err, const char *field); + + + + +void error_set_field(Error *err, const char *field, const char *value); + + + + + + +void error_propagate(Error **dst_err, Error *local_err); + + + + +void error_free(Error *err); + + + + + +_Bool error_is_type(Error *err, const char *fmt); +# 26 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu-qom.h" 2 +# 46 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu-qom.h" +typedef struct X86CPUClass { + + CPUClass parent_class; + + + void (*parent_reset)(CPUState *cpu); +} X86CPUClass; + + + + + + + +typedef struct X86CPU { + + CPUState parent_obj; + + + CPUX86State env; +} X86CPU; + +static __attribute__ (( always_inline )) __inline__ X86CPU *x86_env_get_cpu(CPUX86State *env) +{ + return ((X86CPU *)object_dynamic_cast_assert(((Object *)((({ const typeof(((X86CPU *) 0)->env) *__mptr = (env); (X86CPU *) ((char *) __mptr - __builtin_offsetof (X86CPU, env));})))), ("i386-cpu"))); +} + + + + +void x86_cpu_realize(Object *obj, Error **errp); +# 789 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" 2 + +CPUX86State *cpu_x86_init(const char *cpu_model); +int cpu_x86_exec(CPUX86State *s); +void x86_cpu_list (FILE *f, fprintf_function cpu_fprintf, const char *optarg); +void x86_cpudef_setup(void); +int cpu_x86_support_mca_broadcast(CPUX86State *env); + +int cpu_get_pic_interrupt(CPUX86State *s); + +void cpu_set_ferr(CPUX86State *s); + + + +static __attribute__ (( always_inline )) __inline__ void cpu_x86_load_seg_cache(CPUX86State *env, + int seg_reg, unsigned int selector, + target_ulong base, + unsigned int limit, + unsigned int flags) +{ + SegmentCache *sc; + unsigned int new_hflags; + + sc = &env->segs[seg_reg]; + sc->selector = selector; + sc->base = base; + sc->limit = limit; + sc->flags = flags; + + + { + if (seg_reg == 1) { + + + + + + + + { + + new_hflags = (env->segs[1].flags & (1 << 22)) + >> (22 - 4); + env->hflags = (env->hflags & ~((1 << 4) | (1 << 15))) | + new_hflags; + } + } + new_hflags = (env->segs[2].flags & (1 << 22)) + >> (22 - 5); + if (env->hflags & (1 << 15)) { + + } else if (!(env->cr[0] & (1 << 0)) || + (env->eflags & 0x00020000) || + !(env->hflags & (1 << 4))) { + + + + + + new_hflags |= (1 << 6); + } else { + new_hflags |= ((env->segs[3].base | + env->segs[0].base | + env->segs[2].base) != 0) << + 6; + } + env->hflags = (env->hflags & + ~((1 << 5) | (1 << 6))) | new_hflags; + } +} + +static __attribute__ (( always_inline )) __inline__ void cpu_x86_load_seg_cache_sipi(CPUX86State *env, + int sipi_vector) +{ + env->eip = 0; + cpu_x86_load_seg_cache(env, 1, sipi_vector << 8, + sipi_vector << 12, + env->segs[1].limit, + env->segs[1].flags); + env->halted = 0; +} + +int cpu_x86_get_descr_debug(CPUX86State *env, unsigned int selector, + target_ulong *base, unsigned int *limit, + unsigned int *flags); + + +static __attribute__ (( always_inline )) __inline__ void cpu_x86_set_cpl(CPUX86State *s, int cpl) +{ + + s->hflags = (s->hflags & ~(3 << 0)) | cpl; + + + +} + + + +void cpu_get_fp80(uint64_t *pmant, uint16_t *pexp, floatx80 f); +floatx80 cpu_set_fp80(uint64_t mant, uint16_t upper); + + + + +void cpu_x86_load_seg(CPUX86State *s, int seg_reg, int selector); +void cpu_x86_fsave(CPUX86State *s, target_ulong ptr, int data32); +void cpu_x86_frstor(CPUX86State *s, target_ulong ptr, int data32); + + + + +int cpu_x86_signal_handler(int host_signum, void *pinfo, + void *puc); + + +void cpu_x86_cpuid(CPUX86State *env, uint32_t index, uint32_t count, + uint32_t *eax, uint32_t *ebx, + uint32_t *ecx, uint32_t *edx); +int cpu_x86_register(X86CPU *cpu, const char *cpu_model); +void cpu_clear_apic_feature(CPUX86State *env); +void host_cpuid(uint32_t function, uint32_t count, + uint32_t *eax, uint32_t *ebx, uint32_t *ecx, uint32_t *edx); + + +int cpu_x86_handle_mmu_fault(CPUX86State *env, target_ulong addr, + int is_write, int mmu_idx); + +void cpu_x86_set_a20(CPUX86State *env, int a20_state); + +static __attribute__ (( always_inline )) __inline__ int hw_breakpoint_enabled(unsigned long dr7, int index) +{ + return (dr7 >> (index * 2)) & 3; +} + +static __attribute__ (( always_inline )) __inline__ int hw_breakpoint_type(unsigned long dr7, int index) +{ + return (dr7 >> (16 + (index * 4))) & 3; +} + +static __attribute__ (( always_inline )) __inline__ int hw_breakpoint_len(unsigned long dr7, int index) +{ + int len = ((dr7 >> (18 + (index * 4))) & 3); + return (len == 2) ? 8 : len + 1; +} + +void hw_breakpoint_insert(CPUX86State *env, int index); +void hw_breakpoint_remove(CPUX86State *env, int index); +int check_hw_breakpoints(CPUX86State *env, int force_dr6_update); + + +void cpu_x86_update_cr0(CPUX86State *env, uint32_t new_cr0); +void cpu_x86_update_cr3(CPUX86State *env, target_ulong new_cr3); +void cpu_x86_update_cr4(CPUX86State *env, uint32_t new_cr4); + + +void cpu_smm_update(CPUX86State *env); +uint64_t cpu_get_tsc(CPUX86State *env); +struct CPUX86State *pc_new_cpu(const char *cpu_model); +# 977 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" +static __attribute__ (( always_inline )) __inline__ int cpu_mmu_index (CPUX86State *env) +{ + return (env->hflags & (3 << 0)) == 3 ? 1 : 0; +} +# 1013 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" +void optimize_flags_init(void); +# 1024 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-all.h" 1 +# 22 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-all.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-common.h" 1 +# 23 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-all.h" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-tls.h" 1 +# 24 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-all.h" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-common.h" 1 +# 14 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-common.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/bswap.h" 1 + + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/config-host.h" 1 +# 5 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/bswap.h" 2 +# 16 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/bswap.h" +# 1 "/usr/include/byteswap.h" 1 3 4 +# 23 "/usr/include/byteswap.h" 3 4 +# 1 "/usr/include/bits/byteswap.h" 1 3 4 +# 24 "/usr/include/byteswap.h" 2 3 4 +# 17 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/bswap.h" 2 +# 53 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/bswap.h" +static __attribute__ (( always_inline )) __inline__ uint16_t bswap16(uint16_t x) +{ + return (__extension__ ({ register unsigned short int __v, __x = (unsigned short int) (x); if (__builtin_constant_p (__x)) __v = ((unsigned short int) ((((__x) >> 8) & 0xff) | (((__x) & 0xff) << 8))); else __asm__ ("rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); +} + +static __attribute__ (( always_inline )) __inline__ uint32_t bswap32(uint32_t x) +{ + return (__extension__ ({ register unsigned int __v, __x = (x); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); +} + +static __attribute__ (( always_inline )) __inline__ uint64_t bswap64(uint64_t x) +{ + return (__extension__ ({ union { __extension__ unsigned long long int __ll; unsigned long int __l[2]; } __w, __r; if (__builtin_constant_p (x)) __r.__ll = (__extension__ ((((x) & 0xff00000000000000ull) >> 56) | (((x) & 0x00ff000000000000ull) >> 40) | (((x) & 0x0000ff0000000000ull) >> 24) | (((x) & 0x000000ff00000000ull) >> 8) | (((x) & 0x00000000ff000000ull) << 8) | (((x) & 0x0000000000ff0000ull) << 24) | (((x) & 0x000000000000ff00ull) << 40) | (((x) & 0x00000000000000ffull) << 56))); else { __w.__ll = (x); __r.__l[0] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[1]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); __r.__l[1] = (__extension__ ({ register unsigned int __v, __x = (__w.__l[0]); if (__builtin_constant_p (__x)) __v = ((((__x) & 0xff000000) >> 24) | (((__x) & 0x00ff0000) >> 8) | (((__x) & 0x0000ff00) << 8) | (((__x) & 0x000000ff) << 24)); else __asm__ ("rorw $8, %w0;" "rorl $16, %0;" "rorw $8, %w0" : "=r" (__v) : "0" (__x) : "cc"); __v; })); } __r.__ll; })); +} + + + +static __attribute__ (( always_inline )) __inline__ void bswap16s(uint16_t *s) +{ + *s = bswap16(*s); +} + +static __attribute__ (( always_inline )) __inline__ void bswap32s(uint32_t *s) +{ + *s = bswap32(*s); +} + +static __attribute__ (( always_inline )) __inline__ void bswap64s(uint64_t *s) +{ + *s = bswap64(*s); +} +# 128 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/bswap.h" +static __attribute__ (( always_inline )) __inline__ uint16_t be16_to_cpu(uint16_t v){ return bswap16(v);}static __attribute__ (( always_inline )) __inline__ uint16_t cpu_to_be16(uint16_t v){ return bswap16(v);}static __attribute__ (( always_inline )) __inline__ void be16_to_cpus(uint16_t *p){ *p = bswap16(*p);}static __attribute__ (( always_inline )) __inline__ void cpu_to_be16s(uint16_t *p){ *p = bswap16(*p);}static __attribute__ (( always_inline )) __inline__ uint16_t be16_to_cpup(const uint16_t *p){ return be16_to_cpu(*p);}static __attribute__ (( always_inline )) __inline__ void cpu_to_be16w(uint16_t *p, uint16_t v){ *p = cpu_to_be16(v);} +static __attribute__ (( always_inline )) __inline__ uint32_t be32_to_cpu(uint32_t v){ return bswap32(v);}static __attribute__ (( always_inline )) __inline__ uint32_t cpu_to_be32(uint32_t v){ return bswap32(v);}static __attribute__ (( always_inline )) __inline__ void be32_to_cpus(uint32_t *p){ *p = bswap32(*p);}static __attribute__ (( always_inline )) __inline__ void cpu_to_be32s(uint32_t *p){ *p = bswap32(*p);}static __attribute__ (( always_inline )) __inline__ uint32_t be32_to_cpup(const uint32_t *p){ return be32_to_cpu(*p);}static __attribute__ (( always_inline )) __inline__ void cpu_to_be32w(uint32_t *p, uint32_t v){ *p = cpu_to_be32(v);} +static __attribute__ (( always_inline )) __inline__ uint64_t be64_to_cpu(uint64_t v){ return bswap64(v);}static __attribute__ (( always_inline )) __inline__ uint64_t cpu_to_be64(uint64_t v){ return bswap64(v);}static __attribute__ (( always_inline )) __inline__ void be64_to_cpus(uint64_t *p){ *p = bswap64(*p);}static __attribute__ (( always_inline )) __inline__ void cpu_to_be64s(uint64_t *p){ *p = bswap64(*p);}static __attribute__ (( always_inline )) __inline__ uint64_t be64_to_cpup(const uint64_t *p){ return be64_to_cpu(*p);}static __attribute__ (( always_inline )) __inline__ void cpu_to_be64w(uint64_t *p, uint64_t v){ *p = cpu_to_be64(v);} + +static __attribute__ (( always_inline )) __inline__ uint16_t le16_to_cpu(uint16_t v){ return (v);}static __attribute__ (( always_inline )) __inline__ uint16_t cpu_to_le16(uint16_t v){ return (v);}static __attribute__ (( always_inline )) __inline__ void le16_to_cpus(uint16_t *p){ }static __attribute__ (( always_inline )) __inline__ void cpu_to_le16s(uint16_t *p){ }static __attribute__ (( always_inline )) __inline__ uint16_t le16_to_cpup(const uint16_t *p){ return le16_to_cpu(*p);}static __attribute__ (( always_inline )) __inline__ void cpu_to_le16w(uint16_t *p, uint16_t v){ *p = cpu_to_le16(v);} +static __attribute__ (( always_inline )) __inline__ uint32_t le32_to_cpu(uint32_t v){ return (v);}static __attribute__ (( always_inline )) __inline__ uint32_t cpu_to_le32(uint32_t v){ return (v);}static __attribute__ (( always_inline )) __inline__ void le32_to_cpus(uint32_t *p){ }static __attribute__ (( always_inline )) __inline__ void cpu_to_le32s(uint32_t *p){ }static __attribute__ (( always_inline )) __inline__ uint32_t le32_to_cpup(const uint32_t *p){ return le32_to_cpu(*p);}static __attribute__ (( always_inline )) __inline__ void cpu_to_le32w(uint32_t *p, uint32_t v){ *p = cpu_to_le32(v);} +static __attribute__ (( always_inline )) __inline__ uint64_t le64_to_cpu(uint64_t v){ return (v);}static __attribute__ (( always_inline )) __inline__ uint64_t cpu_to_le64(uint64_t v){ return (v);}static __attribute__ (( always_inline )) __inline__ void le64_to_cpus(uint64_t *p){ }static __attribute__ (( always_inline )) __inline__ void cpu_to_le64s(uint64_t *p){ }static __attribute__ (( always_inline )) __inline__ uint64_t le64_to_cpup(const uint64_t *p){ return le64_to_cpu(*p);}static __attribute__ (( always_inline )) __inline__ void cpu_to_le64w(uint64_t *p, uint64_t v){ *p = cpu_to_le64(v);} +# 236 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/bswap.h" +static __attribute__ (( always_inline )) __inline__ uint32_t qemu_bswap_len(uint32_t value, int len) +{ + return bswap32(value) >> (32 - 8 * len); +} + +typedef union { + float32 f; + uint32_t l; +} CPU_FloatU; + +typedef union { + float64 d; + + + + + + + struct { + uint32_t lower; + uint32_t upper; + } l; + + uint64_t ll; +} CPU_DoubleU; + +typedef union { + floatx80 d; + struct { + uint64_t lower; + uint16_t upper; + } l; +} CPU_LDoubleU; + +typedef union { + float128 q; +# 284 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/bswap.h" + struct { + uint32_t lowest; + uint32_t lower; + uint32_t upper; + uint32_t upmost; + } l; + struct { + uint64_t lower; + uint64_t upper; + } ll; + +} CPU_QuadU; +# 328 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/bswap.h" +static __attribute__ (( always_inline )) __inline__ int ldub_p(const void *ptr) +{ + return *(uint8_t *)ptr; +} + +static __attribute__ (( always_inline )) __inline__ int ldsb_p(const void *ptr) +{ + return *(int8_t *)ptr; +} + +static __attribute__ (( always_inline )) __inline__ void stb_p(void *ptr, int v) +{ + *(uint8_t *)ptr = v; +} +# 465 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/bswap.h" +static __attribute__ (( always_inline )) __inline__ int lduw_le_p(const void *ptr) +{ + return *(uint16_t *)ptr; +} + +static __attribute__ (( always_inline )) __inline__ int ldsw_le_p(const void *ptr) +{ + return *(int16_t *)ptr; +} + +static __attribute__ (( always_inline )) __inline__ int ldl_le_p(const void *ptr) +{ + return *(uint32_t *)ptr; +} + +static __attribute__ (( always_inline )) __inline__ uint64_t ldq_le_p(const void *ptr) +{ + return *(uint64_t *)ptr; +} + +static __attribute__ (( always_inline )) __inline__ void stw_le_p(void *ptr, int v) +{ + *(uint16_t *)ptr = v; +} + +static __attribute__ (( always_inline )) __inline__ void stl_le_p(void *ptr, int v) +{ + *(uint32_t *)ptr = v; +} + +static __attribute__ (( always_inline )) __inline__ void stq_le_p(void *ptr, uint64_t v) +{ + *(uint64_t *)ptr = v; +} + + + +static __attribute__ (( always_inline )) __inline__ float32 ldfl_le_p(const void *ptr) +{ + return *(float32 *)ptr; +} + +static __attribute__ (( always_inline )) __inline__ float64 ldfq_le_p(const void *ptr) +{ + return *(float64 *)ptr; +} + +static __attribute__ (( always_inline )) __inline__ void stfl_le_p(void *ptr, float32 v) +{ + *(float32 *)ptr = v; +} + +static __attribute__ (( always_inline )) __inline__ void stfq_le_p(void *ptr, float64 v) +{ + *(float64 *)ptr = v; +} + + + + +static __attribute__ (( always_inline )) __inline__ int lduw_be_p(const void *ptr) +{ + + int val; + asm volatile ("movzwl %1, %0\n" + "xchgb %b0, %h0\n" + : "=q" (val) + : "m" (*(uint16_t *)ptr)); + return val; + + + + +} + +static __attribute__ (( always_inline )) __inline__ int ldsw_be_p(const void *ptr) +{ + + int val; + asm volatile ("movzwl %1, %0\n" + "xchgb %b0, %h0\n" + : "=q" (val) + : "m" (*(uint16_t *)ptr)); + return (int16_t)val; + + + + +} + +static __attribute__ (( always_inline )) __inline__ int ldl_be_p(const void *ptr) +{ + + int val; + asm volatile ("movl %1, %0\n" + "bswap %0\n" + : "=r" (val) + : "m" (*(uint32_t *)ptr)); + return val; + + + + +} + +static __attribute__ (( always_inline )) __inline__ uint64_t ldq_be_p(const void *ptr) +{ + uint32_t a,b; + a = ldl_be_p(ptr); + b = ldl_be_p((uint8_t *)ptr + 4); + return (((uint64_t)a<<32)|b); +} + +static __attribute__ (( always_inline )) __inline__ void stw_be_p(void *ptr, int v) +{ + + asm volatile ("xchgb %b0, %h0\n" + "movw %w0, %1\n" + : "=q" (v) + : "m" (*(uint16_t *)ptr), "0" (v)); + + + + + +} + +static __attribute__ (( always_inline )) __inline__ void stl_be_p(void *ptr, int v) +{ + + asm volatile ("bswap %0\n" + "movl %0, %1\n" + : "=r" (v) + : "m" (*(uint32_t *)ptr), "0" (v)); + + + + + + + +} + +static __attribute__ (( always_inline )) __inline__ void stq_be_p(void *ptr, uint64_t v) +{ + stl_be_p(ptr, v >> 32); + stl_be_p((uint8_t *)ptr + 4, v); +} + + + +static __attribute__ (( always_inline )) __inline__ float32 ldfl_be_p(const void *ptr) +{ + union { + float32 f; + uint32_t i; + } u; + u.i = ldl_be_p(ptr); + return u.f; +} + +static __attribute__ (( always_inline )) __inline__ void stfl_be_p(void *ptr, float32 v) +{ + union { + float32 f; + uint32_t i; + } u; + u.f = v; + stl_be_p(ptr, u.i); +} + +static __attribute__ (( always_inline )) __inline__ float64 ldfq_be_p(const void *ptr) +{ + CPU_DoubleU u; + u.l.upper = ldl_be_p(ptr); + u.l.lower = ldl_be_p((uint8_t *)ptr + 4); + return u.d; +} + +static __attribute__ (( always_inline )) __inline__ void stfq_be_p(void *ptr, float64 v) +{ + CPU_DoubleU u; + u.d = v; + stl_be_p(ptr, u.l.upper); + stl_be_p((uint8_t *)ptr + 4, u.l.lower); +} +# 15 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-common.h" 2 + + + + +enum device_endian { + DEVICE_NATIVE_ENDIAN, + DEVICE_BIG_ENDIAN, + DEVICE_LITTLE_ENDIAN, +}; + + + + + + + +typedef uintptr_t ram_addr_t; + + + + + + +typedef void CPUWriteMemoryFunc(void *opaque, target_phys_addr_t addr, uint32_t value); +typedef uint32_t CPUReadMemoryFunc(void *opaque, target_phys_addr_t addr); + +void qemu_ram_remap(ram_addr_t addr, ram_addr_t length); + +void *qemu_get_ram_ptr(ram_addr_t addr); +void *qemu_ram_ptr_length(ram_addr_t addr, ram_addr_t *size); + + +void *qemu_safe_ram_ptr(ram_addr_t addr); +void qemu_put_ram_ptr(void *addr); + +int qemu_ram_addr_from_host(void *ptr, ram_addr_t *ram_addr); +ram_addr_t qemu_ram_addr_from_host_nofail(void *ptr); +void qemu_ram_set_idstr(ram_addr_t addr, const char *name, DeviceState *dev); + +void cpu_physical_memory_rw(target_phys_addr_t addr, uint8_t *buf, + int len, int is_write); +static __attribute__ (( always_inline )) __inline__ void cpu_physical_memory_read(target_phys_addr_t addr, + void *buf, int len) +{ + cpu_physical_memory_rw(addr, buf, len, 0); +} +static __attribute__ (( always_inline )) __inline__ void cpu_physical_memory_write(target_phys_addr_t addr, + const void *buf, int len) +{ + cpu_physical_memory_rw(addr, (void *)buf, len, 1); +} +void *cpu_physical_memory_map(target_phys_addr_t addr, + target_phys_addr_t *plen, + int is_write); +void cpu_physical_memory_unmap(void *buffer, target_phys_addr_t len, + int is_write, target_phys_addr_t access_len); +void *cpu_register_map_client(void *opaque, void (*callback)(void *opaque)); +void cpu_unregister_map_client(void *cookie); + + + + + + +void qemu_flush_coalesced_mmio_buffer(void); + +uint32_t ldub_phys(target_phys_addr_t addr); +uint32_t lduw_le_phys(target_phys_addr_t addr); +uint32_t lduw_be_phys(target_phys_addr_t addr); +uint32_t ldl_le_phys(target_phys_addr_t addr); +uint32_t ldl_be_phys(target_phys_addr_t addr); +uint64_t ldq_le_phys(target_phys_addr_t addr); +uint64_t ldq_be_phys(target_phys_addr_t addr); +void stb_phys(target_phys_addr_t addr, uint32_t val); +void stw_le_phys(target_phys_addr_t addr, uint32_t val); +void stw_be_phys(target_phys_addr_t addr, uint32_t val); +void stl_le_phys(target_phys_addr_t addr, uint32_t val); +void stl_be_phys(target_phys_addr_t addr, uint32_t val); +void stq_le_phys(target_phys_addr_t addr, uint64_t val); +void stq_be_phys(target_phys_addr_t addr, uint64_t val); + + +uint32_t lduw_phys(target_phys_addr_t addr); +uint32_t ldl_phys(target_phys_addr_t addr); +uint64_t ldq_phys(target_phys_addr_t addr); +void stl_phys_notdirty(target_phys_addr_t addr, uint32_t val); +void stq_phys_notdirty(target_phys_addr_t addr, uint64_t val); +void stw_phys(target_phys_addr_t addr, uint32_t val); +void stl_phys(target_phys_addr_t addr, uint32_t val); +void stq_phys(target_phys_addr_t addr, uint64_t val); + + +void cpu_physical_memory_write_rom(target_phys_addr_t addr, + const uint8_t *buf, int len); + +extern struct MemoryRegion io_mem_ram; +extern struct MemoryRegion io_mem_rom; +extern struct MemoryRegion io_mem_unassigned; +extern struct MemoryRegion io_mem_notdirty; +# 25 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-all.h" 2 +# 77 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-all.h" +static __attribute__ (( always_inline )) __inline__ uint16_t tswap16(uint16_t s) +{ + return s; +} + +static __attribute__ (( always_inline )) __inline__ uint32_t tswap32(uint32_t s) +{ + return s; +} + +static __attribute__ (( always_inline )) __inline__ uint64_t tswap64(uint64_t s) +{ + return s; +} + +static __attribute__ (( always_inline )) __inline__ void tswap16s(uint16_t *s) +{ +} + +static __attribute__ (( always_inline )) __inline__ void tswap32s(uint32_t *s) +{ +} + +static __attribute__ (( always_inline )) __inline__ void tswap64s(uint64_t *s) +{ +} +# 303 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-all.h" +extern uintptr_t qemu_real_host_page_size; +extern uintptr_t qemu_host_page_size; +extern uintptr_t qemu_host_page_mask; +# 335 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-all.h" +struct CPUX86State *cpu_copy(struct CPUX86State *env); +struct CPUX86State *qemu_get_cpu(int cpu); + + + +void cpu_dump_state(struct CPUX86State *env, FILE *f, fprintf_function cpu_fprintf, + int flags); +void cpu_dump_statistics(struct CPUX86State *env, FILE *f, fprintf_function cpu_fprintf, + int flags); + +void __attribute__ ((__noreturn__)) cpu_abort(struct CPUX86State *env, const char *fmt, ...) + __attribute__((format(gnu_printf, 2, 3))); +extern struct CPUX86State *first_cpu; +extern __thread __typeof__(struct CPUX86State *) tls__cpu_single_env; +# 402 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-all.h" +typedef void (*CPUInterruptHandler)(struct CPUX86State *, int); + +extern CPUInterruptHandler cpu_interrupt_handler; + +static __attribute__ (( always_inline )) __inline__ void cpu_interrupt(struct CPUX86State *s, int mask) +{ + cpu_interrupt_handler(s, mask); +} + + + + +void cpu_reset_interrupt(struct CPUX86State *env, int mask); + +void cpu_exit(struct CPUX86State *s); + +_Bool qemu_cpu_has_work(struct CPUX86State *env); +# 429 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-all.h" +int cpu_breakpoint_insert(struct CPUX86State *env, target_ulong pc, int flags, + CPUBreakpoint **breakpoint); +int cpu_breakpoint_remove(struct CPUX86State *env, target_ulong pc, int flags); +void cpu_breakpoint_remove_by_ref(struct CPUX86State *env, CPUBreakpoint *breakpoint); +void cpu_breakpoint_remove_all(struct CPUX86State *env, int mask); +int cpu_watchpoint_insert(struct CPUX86State *env, target_ulong addr, target_ulong len, + int flags, CPUWatchpoint **watchpoint); +int cpu_watchpoint_remove(struct CPUX86State *env, target_ulong addr, + target_ulong len, int flags); +void cpu_watchpoint_remove_by_ref(struct CPUX86State *env, CPUWatchpoint *watchpoint); +void cpu_watchpoint_remove_all(struct CPUX86State *env, int mask); + + + + + +void cpu_single_step(struct CPUX86State *env, int enabled); +void cpu_state_reset(struct CPUX86State *s); +int cpu_is_stopped(struct CPUX86State *env); +void run_on_cpu(struct CPUX86State *env, void (*func)(void *data), void *data); +# 462 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-all.h" +typedef struct CPULogItem { + int mask; + const char *name; + const char *help; +} CPULogItem; + +extern const CPULogItem cpu_log_items[]; + +void cpu_set_log(int log_flags); +void cpu_set_log_filename(const char *filename); +int cpu_str_to_log_mask(const char *str); + + + + + + +target_phys_addr_t cpu_get_phys_page_debug(struct CPUX86State *env, target_ulong addr); + + + +extern int phys_ram_fd; +extern ram_addr_t ram_size; + + + + +typedef struct RAMBlock { + struct MemoryRegion *mr; + uint8_t *host; + ram_addr_t offset; + ram_addr_t length; + uint32_t flags; + char idstr[256]; + struct { struct RAMBlock *le_next; struct RAMBlock **le_prev; } next; + + int fd; + +} RAMBlock; + +typedef struct RAMList { + uint8_t *phys_dirty; + struct { struct RAMBlock *lh_first; } blocks; +} RAMList; +extern RAMList ram_list; + +extern const char *mem_path; +extern int mem_prealloc; +# 521 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/cpu-all.h" +void dump_exec_info(FILE *f, fprintf_function cpu_fprintf); + + +int cpu_memory_rw_debug(struct CPUX86State *env, target_ulong addr, + uint8_t *buf, int len, int is_write); +# 1025 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/svm.h" 1 +# 133 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/svm.h" +struct __attribute__((packed)) vmcb_control_area { + uint16_t intercept_cr_read; + uint16_t intercept_cr_write; + uint16_t intercept_dr_read; + uint16_t intercept_dr_write; + uint32_t intercept_exceptions; + uint64_t intercept; + uint8_t reserved_1[44]; + uint64_t iopm_base_pa; + uint64_t msrpm_base_pa; + uint64_t tsc_offset; + uint32_t asid; + uint8_t tlb_ctl; + uint8_t reserved_2[3]; + uint32_t int_ctl; + uint32_t int_vector; + uint32_t int_state; + uint8_t reserved_3[4]; + uint64_t exit_code; + uint64_t exit_info_1; + uint64_t exit_info_2; + uint32_t exit_int_info; + uint32_t exit_int_info_err; + uint64_t nested_ctl; + uint8_t reserved_4[16]; + uint32_t event_inj; + uint32_t event_inj_err; + uint64_t nested_cr3; + uint64_t lbr_ctl; + uint8_t reserved_5[832]; +}; + +struct __attribute__((packed)) vmcb_seg { + uint16_t selector; + uint16_t attrib; + uint32_t limit; + uint64_t base; +}; + +struct __attribute__((packed)) vmcb_save_area { + struct vmcb_seg es; + struct vmcb_seg cs; + struct vmcb_seg ss; + struct vmcb_seg ds; + struct vmcb_seg fs; + struct vmcb_seg gs; + struct vmcb_seg gdtr; + struct vmcb_seg ldtr; + struct vmcb_seg idtr; + struct vmcb_seg tr; + uint8_t reserved_1[43]; + uint8_t cpl; + uint8_t reserved_2[4]; + uint64_t efer; + uint8_t reserved_3[112]; + uint64_t cr4; + uint64_t cr3; + uint64_t cr0; + uint64_t dr7; + uint64_t dr6; + uint64_t rflags; + uint64_t rip; + uint8_t reserved_4[88]; + uint64_t rsp; + uint8_t reserved_5[24]; + uint64_t rax; + uint64_t star; + uint64_t lstar; + uint64_t cstar; + uint64_t sfmask; + uint64_t kernel_gs_base; + uint64_t sysenter_cs; + uint64_t sysenter_esp; + uint64_t sysenter_eip; + uint64_t cr2; + uint8_t reserved_6[32]; + uint64_t g_pat; + uint64_t dbgctl; + uint64_t br_from; + uint64_t br_to; + uint64_t last_excp_from; + uint64_t last_excp_to; +}; + +struct __attribute__((packed)) vmcb { + struct vmcb_control_area control; + struct vmcb_save_area save; +}; +# 1026 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/hw/apic.h" 1 + + + + + + +void apic_deliver_irq(uint8_t dest, uint8_t dest_mode, uint8_t delivery_mode, + uint8_t vector_num, uint8_t trigger_mode); +int apic_accept_pic_intr(DeviceState *s); +void apic_deliver_pic_intr(DeviceState *s, int level); +void apic_deliver_nmi(DeviceState *d); +int apic_get_interrupt(DeviceState *s); +void apic_reset_irq_delivered(void); +int apic_get_irq_delivered(void); +void cpu_set_apic_base(DeviceState *s, uint64_t val); +uint64_t cpu_get_apic_base(DeviceState *s); +void cpu_set_apic_tpr(DeviceState *s, uint8_t val); +uint8_t cpu_get_apic_tpr(DeviceState *s); +void apic_init_reset(DeviceState *s); +void apic_sipi(DeviceState *s); +void apic_handle_tpr_access_report(DeviceState *d, target_ulong ip, + TPRAccess access); + + +int cpu_is_bsp(CPUX86State *env); +DeviceState *cpu_get_current_apic(void); +# 1029 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" 2 + + +static __attribute__ (( always_inline )) __inline__ _Bool cpu_has_work(CPUX86State *env) +{ + return ((env->interrupt_request & 0x0002) && + (env->eflags & 0x00000200)) || + (env->interrupt_request & (0x0200 | + 0x0400 | + 0x0800 | + 0x1000)); +} + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" 1 +# 34 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" +typedef ram_addr_t tb_page_addr_t; +# 43 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" +struct TranslationBlock; +typedef struct TranslationBlock TranslationBlock; +# 73 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" +extern target_ulong gen_opc_pc[640]; +extern uint8_t gen_opc_instr_start[640]; +extern uint16_t gen_opc_icount[640]; + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-log.h" 1 + + + + +extern FILE *logfile; +extern int loglevel; +# 78 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" 2 + +void gen_intermediate_code(struct CPUX86State *env, struct TranslationBlock *tb); +void gen_intermediate_code_pc(struct CPUX86State *env, struct TranslationBlock *tb); +void restore_state_to_opc(struct CPUX86State *env, struct TranslationBlock *tb, + int pc_pos); + +void cpu_gen_init(void); +int cpu_x86_gen_code(struct CPUX86State *env, struct TranslationBlock *tb, + int *gen_code_size_ptr); +int cpu_restore_state(struct TranslationBlock *tb, + struct CPUX86State *env, uintptr_t searched_pc); +void __attribute__ ((__noreturn__)) cpu_resume_from_signal(struct CPUX86State *env1, void *puc); +void __attribute__ ((__noreturn__)) cpu_io_recompile(struct CPUX86State *env, uintptr_t retaddr); +TranslationBlock *tb_gen_code(struct CPUX86State *env, + target_ulong pc, target_ulong cs_base, int flags, + int cflags); +void cpu_exec_init(struct CPUX86State *env); +void __attribute__ ((__noreturn__)) cpu_loop_exit(struct CPUX86State *env1); +int page_unprotect(target_ulong address, uintptr_t pc, void *puc); +void tb_invalidate_phys_page_range(tb_page_addr_t start, tb_page_addr_t end, + int is_cpu_write_access); +void tb_invalidate_phys_range(tb_page_addr_t start, tb_page_addr_t end, + int is_cpu_write_access); + + +void tlb_flush_page(struct CPUX86State *env, target_ulong addr); +void tlb_flush(struct CPUX86State *env, int flush_global); +void tlb_set_page(struct CPUX86State *env, target_ulong vaddr, + target_phys_addr_t paddr, int prot, + int mmu_idx, target_ulong size); +void tb_invalidate_phys_addr(target_phys_addr_t addr); +# 141 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" +struct TranslationBlock { + target_ulong pc; + target_ulong cs_base; + uint64_t flags; + uint16_t size; + + uint16_t cflags; + + + + uint8_t *tc_ptr; + + struct TranslationBlock *phys_hash_next; + + + struct TranslationBlock *page_next[2]; + tb_page_addr_t page_addr[2]; + + + + uint16_t tb_next_offset[2]; + + uint16_t tb_jmp_offset[2]; + + + + + + + + struct TranslationBlock *jmp_next[2]; + struct TranslationBlock *jmp_first; + uint32_t icount; +}; + +static __attribute__ (( always_inline )) __inline__ unsigned int tb_jmp_cache_hash_page(target_ulong pc) +{ + target_ulong tmp; + tmp = pc ^ (pc >> (12 - (12 / 2))); + return (tmp >> (12 - (12 / 2))) & ((1 << 12) - (1 << (12 / 2))); +} + +static __attribute__ (( always_inline )) __inline__ unsigned int tb_jmp_cache_hash_func(target_ulong pc) +{ + target_ulong tmp; + tmp = pc ^ (pc >> (12 - (12 / 2))); + return (((tmp >> (12 - (12 / 2))) & ((1 << 12) - (1 << (12 / 2)))) + | (tmp & ((1 << (12 / 2)) - 1))); +} + +static __attribute__ (( always_inline )) __inline__ unsigned int tb_phys_hash_func(tb_page_addr_t pc) +{ + return (pc >> 2) & ((1 << 15) - 1); +} + +void tb_free(TranslationBlock *tb); +void tb_flush(struct CPUX86State *env); +void tb_link_page(TranslationBlock *tb, + tb_page_addr_t phys_pc, tb_page_addr_t phys_page2); +void tb_phys_invalidate(TranslationBlock *tb, tb_page_addr_t page_addr); + +extern TranslationBlock *tb_phys_hash[(1 << 15)]; +# 217 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" +static __attribute__ (( always_inline )) __inline__ void tb_set_jmp_target1(uintptr_t jmp_addr, uintptr_t addr) +{ + + *(uint32_t *)jmp_addr = addr - (jmp_addr + 4); + +} +# 251 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" +static __attribute__ (( always_inline )) __inline__ void tb_set_jmp_target(TranslationBlock *tb, + int n, uintptr_t addr) +{ + uint16_t offset = tb->tb_jmp_offset[n]; + tb_set_jmp_target1((uintptr_t)(tb->tc_ptr + offset), addr); +} +# 269 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" +static __attribute__ (( always_inline )) __inline__ void tb_add_jump(TranslationBlock *tb, int n, + TranslationBlock *tb_next) +{ + + if (!tb->jmp_next[n]) { + + tb_set_jmp_target(tb, n, (uintptr_t)tb_next->tc_ptr); + + + tb->jmp_next[n] = tb_next->jmp_first; + tb_next->jmp_first = (TranslationBlock *)((uintptr_t)(tb) | (n)); + } +} + +TranslationBlock *tb_find_pc(uintptr_t pc_ptr); + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-lock.h" 1 +# 38 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-lock.h" +typedef int spinlock_t; + + +static __attribute__ (( always_inline )) __inline__ void spin_lock(spinlock_t *lock) +{ +} + +static __attribute__ (( always_inline )) __inline__ void spin_unlock(spinlock_t *lock) +{ +} +# 286 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" 2 + +extern spinlock_t tb_lock; + +extern int tb_invalidated_flag; +# 313 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" +struct MemoryRegion *iotlb_to_region(target_phys_addr_t index); +uint64_t io_mem_read(struct MemoryRegion *mr, target_phys_addr_t addr, + unsigned size); +void io_mem_write(struct MemoryRegion *mr, target_phys_addr_t addr, + uint64_t value, unsigned size); + +void tlb_fill(struct CPUX86State *env1, target_ulong addr, int is_write, int mmu_idx, + uintptr_t retaddr); + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_defs.h" 1 +# 13 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_defs.h" +uint8_t __ldb_mmu(target_ulong addr, int mmu_idx); +void __stb_mmu(target_ulong addr, uint8_t val, int mmu_idx); +uint16_t __ldw_mmu(target_ulong addr, int mmu_idx); +void __stw_mmu(target_ulong addr, uint16_t val, int mmu_idx); +uint32_t __ldl_mmu(target_ulong addr, int mmu_idx); +void __stl_mmu(target_ulong addr, uint32_t val, int mmu_idx); +uint64_t __ldq_mmu(target_ulong addr, int mmu_idx); +void __stq_mmu(target_ulong addr, uint64_t val, int mmu_idx); + +uint8_t __ldb_cmmu(target_ulong addr, int mmu_idx); +void __stb_cmmu(target_ulong addr, uint8_t val, int mmu_idx); +uint16_t __ldw_cmmu(target_ulong addr, int mmu_idx); +void __stw_cmmu(target_ulong addr, uint16_t val, int mmu_idx); +uint32_t __ldl_cmmu(target_ulong addr, int mmu_idx); +void __stl_cmmu(target_ulong addr, uint32_t val, int mmu_idx); +uint64_t __ldq_cmmu(target_ulong addr, int mmu_idx); +void __stq_cmmu(target_ulong addr, uint64_t val, int mmu_idx); +# 323 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" 2 +# 331 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint32_t +ldub_code( + target_ulong ptr) +{ + int page_index; + uint32_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(tls__cpu_single_env)); + if (__builtin_expect(!!(tls__cpu_single_env->tlb_table[mmu_idx][page_index].addr_code != (addr & (~((1 << 12) - 1) | (1 - 1)))), 0) + ) { + res = __ldb_cmmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + tls__cpu_single_env->tlb_table[mmu_idx][page_index].addend; + res = ldub_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} + + +static __attribute__ (( always_inline )) __inline__ int +ldsb_code( + target_ulong ptr) +{ + int res, page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(tls__cpu_single_env)); + if (__builtin_expect(!!(tls__cpu_single_env->tlb_table[mmu_idx][page_index].addr_code != (addr & (~((1 << 12) - 1) | (1 - 1)))), 0) + ) { + res = (int8_t) + __ldb_cmmu( addr, mmu_idx); + } else { + uintptr_t hostaddr = addr + tls__cpu_single_env->tlb_table[mmu_idx][page_index].addend; + res = ldsb_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} +# 332 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint32_t +lduw_code( + target_ulong ptr) +{ + int page_index; + uint32_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(tls__cpu_single_env)); + if (__builtin_expect(!!(tls__cpu_single_env->tlb_table[mmu_idx][page_index].addr_code != (addr & (~((1 << 12) - 1) | (2 - 1)))), 0) + ) { + res = __ldw_cmmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + tls__cpu_single_env->tlb_table[mmu_idx][page_index].addend; + res = lduw_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} + + +static __attribute__ (( always_inline )) __inline__ int +ldsw_code( + target_ulong ptr) +{ + int res, page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(tls__cpu_single_env)); + if (__builtin_expect(!!(tls__cpu_single_env->tlb_table[mmu_idx][page_index].addr_code != (addr & (~((1 << 12) - 1) | (2 - 1)))), 0) + ) { + res = (int16_t) + __ldw_cmmu( addr, mmu_idx); + } else { + uintptr_t hostaddr = addr + tls__cpu_single_env->tlb_table[mmu_idx][page_index].addend; + res = ldsw_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} +# 335 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint32_t +ldl_code( + target_ulong ptr) +{ + int page_index; + uint32_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(tls__cpu_single_env)); + if (__builtin_expect(!!(tls__cpu_single_env->tlb_table[mmu_idx][page_index].addr_code != (addr & (~((1 << 12) - 1) | (4 - 1)))), 0) + ) { + res = __ldl_cmmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + tls__cpu_single_env->tlb_table[mmu_idx][page_index].addend; + res = ldl_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} +# 338 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint64_t +ldq_code( + target_ulong ptr) +{ + int page_index; + uint64_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(tls__cpu_single_env)); + if (__builtin_expect(!!(tls__cpu_single_env->tlb_table[mmu_idx][page_index].addr_code != (addr & (~((1 << 12) - 1) | (8 - 1)))), 0) + ) { + res = __ldq_cmmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + tls__cpu_single_env->tlb_table[mmu_idx][page_index].addend; + res = ldq_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} +# 341 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" 2 +# 355 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/exec-all.h" +tb_page_addr_t get_page_addr_code(struct CPUX86State *env1, target_ulong addr); + + +typedef void (CPUDebugExcpHandler)(struct CPUX86State *env); + +CPUDebugExcpHandler *cpu_set_debug_excp_handler(CPUDebugExcpHandler *handler); + + +extern int singlestep; + + +extern volatile sig_atomic_t exit_request; + + + +static __attribute__ (( always_inline )) __inline__ int can_do_io(struct CPUX86State *env) +{ + if (!use_icount) { + return 1; + } + + if (!env->current_tb) { + return 1; + } + return env->can_do_io != 0; +} +# 1042 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/cpu.h" 2 + +static __attribute__ (( always_inline )) __inline__ void cpu_pc_from_tb(CPUX86State *env, TranslationBlock *tb) +{ + env->eip = tb->pc - tb->cs_base; +} + +static __attribute__ (( always_inline )) __inline__ void cpu_get_tb_cpu_state(CPUX86State *env, target_ulong *pc, + target_ulong *cs_base, int *flags) +{ + *cs_base = env->segs[1].base; + *pc = *cs_base + env->eip; + *flags = env->hflags | + (env->eflags & (0x00003000 | 0x00000100 | 0x00010000 | 0x00020000)); +} + +void do_cpu_init(CPUX86State *env); +void do_cpu_sipi(CPUX86State *env); + + + + +void cpu_x86_inject_mce(Monitor *mon, CPUX86State *cenv, int bank, + uint64_t status, uint64_t mcg_status, uint64_t addr, + uint64_t misc, int flags); + + +void do_interrupt(CPUX86State *env); +void do_interrupt_x86_hardirq(CPUX86State *env, int intno, int is_hw); +void __attribute__ ((__noreturn__)) raise_exception_env(int exception_index, CPUX86State *nenv); +void __attribute__ ((__noreturn__)) raise_exception_err_env(CPUX86State *nenv, int exception_index, + int error_code); + +void do_smm_enter(CPUX86State *env1); + +void svm_check_intercept(CPUX86State *env1, uint32_t type); + +uint32_t cpu_cc_compute_all(CPUX86State *env1, int op); + +void cpu_report_tpr_access(CPUX86State *env, TPRAccess access); +# 22 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/dyngen-exec.h" 1 +# 64 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/dyngen-exec.h" +register struct CPUX86State *env asm("ebp"); +# 23 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/host-utils.h" 1 +# 46 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/host-utils.h" +void muls64(uint64_t *phigh, uint64_t *plow, int64_t a, int64_t b); +void mulu64(uint64_t *phigh, uint64_t *plow, uint64_t a, uint64_t b); + + + + +static __attribute__ (( always_inline )) __inline__ int clz32(uint32_t val) +{ + + if (val) + return __builtin_clz(val); + else + return 32; +# 87 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/host-utils.h" +} + +static __attribute__ (( always_inline )) __inline__ int clo32(uint32_t val) +{ + return clz32(~val); +} + +static __attribute__ (( always_inline )) __inline__ int clz64(uint64_t val) +{ + + if (val) + return __builtin_clzll(val); + else + return 64; +# 112 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/host-utils.h" +} + +static __attribute__ (( always_inline )) __inline__ int clo64(uint64_t val) +{ + return clz64(~val); +} + +static __attribute__ (( always_inline )) __inline__ int ctz32(uint32_t val) +{ + + if (val) + return __builtin_ctz(val); + else + return 32; +# 156 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/host-utils.h" +} + +static __attribute__ (( always_inline )) __inline__ int cto32(uint32_t val) +{ + return ctz32(~val); +} + +static __attribute__ (( always_inline )) __inline__ int ctz64(uint64_t val) +{ + + if (val) + return __builtin_ctzll(val); + else + return 64; +# 181 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/host-utils.h" +} + +static __attribute__ (( always_inline )) __inline__ int cto64(uint64_t val) +{ + return ctz64(~val); +} + +static __attribute__ (( always_inline )) __inline__ int ctpop8(uint8_t val) +{ + val = (val & 0x55) + ((val >> 1) & 0x55); + val = (val & 0x33) + ((val >> 2) & 0x33); + val = (val & 0x0f) + ((val >> 4) & 0x0f); + + return val; +} + +static __attribute__ (( always_inline )) __inline__ int ctpop16(uint16_t val) +{ + val = (val & 0x5555) + ((val >> 1) & 0x5555); + val = (val & 0x3333) + ((val >> 2) & 0x3333); + val = (val & 0x0f0f) + ((val >> 4) & 0x0f0f); + val = (val & 0x00ff) + ((val >> 8) & 0x00ff); + + return val; +} + +static __attribute__ (( always_inline )) __inline__ int ctpop32(uint32_t val) +{ + + return __builtin_popcount(val); +# 220 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/host-utils.h" +} + +static __attribute__ (( always_inline )) __inline__ int ctpop64(uint64_t val) +{ + + return __builtin_popcountll(val); +# 236 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/host-utils.h" +} +# 24 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/ioport.h" 1 +# 28 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/ioport.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/iorange.h" 1 + + + + + +typedef struct IORange IORange; +typedef struct IORangeOps IORangeOps; + +struct IORangeOps { + void (*read)(IORange *iorange, uint64_t offset, unsigned width, + uint64_t *data); + void (*write)(IORange *iorange, uint64_t offset, unsigned width, + uint64_t data); + void (*destructor)(IORange *iorange); +}; + +struct IORange { + const IORangeOps *ops; + uint64_t base; + uint64_t len; +}; + +static __attribute__ (( always_inline )) __inline__ void iorange_init(IORange *iorange, const IORangeOps *ops, + uint64_t base, uint64_t len) +{ + iorange->ops = ops; + iorange->base = base; + iorange->len = len; +} +# 29 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/ioport.h" 2 + +typedef uint32_t pio_addr_t; + + + + + + +typedef void (IOPortWriteFunc)(void *opaque, uint32_t address, uint32_t data); +typedef uint32_t (IOPortReadFunc)(void *opaque, uint32_t address); +typedef void (IOPortDestructor)(void *opaque); + +void ioport_register(IORange *iorange); +int register_ioport_read(pio_addr_t start, int length, int size, + IOPortReadFunc *func, void *opaque); +int register_ioport_write(pio_addr_t start, int length, int size, + IOPortWriteFunc *func, void *opaque); +void isa_unassign_ioport(pio_addr_t start, int length); +_Bool isa_is_ioport_assigned(pio_addr_t start); + +void cpu_outb(pio_addr_t addr, uint8_t val); +void cpu_outw(pio_addr_t addr, uint16_t val); +void cpu_outl(pio_addr_t addr, uint32_t val); +uint8_t cpu_inb(pio_addr_t addr); +uint16_t cpu_inw(pio_addr_t addr); +uint32_t cpu_inl(pio_addr_t addr); + +struct MemoryRegion; +struct MemoryRegionPortio; + +typedef struct PortioList { + const struct MemoryRegionPortio *ports; + struct MemoryRegion *address_space; + unsigned nr; + struct MemoryRegion **regions; + struct MemoryRegion **aliases; + void *opaque; + const char *name; +} PortioList; + +void portio_list_init(PortioList *piolist, + const struct MemoryRegionPortio *callbacks, + void *opaque, const char *name); +void portio_list_destroy(PortioList *piolist); +void portio_list_add(PortioList *piolist, + struct MemoryRegion *address_space, + uint32_t addr); +void portio_list_del(PortioList *piolist); +# 25 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-log.h" 1 +# 26 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper.h" 1 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/def-helper.h" 1 +# 2 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper.h" 2 + +uint32_t helper_cc_compute_all (int); +uint32_t helper_cc_compute_c (int); + +void helper_lock (void); +void helper_unlock (void); +void helper_write_eflags (target_ulong, uint32_t); +target_ulong helper_read_eflags (void); +void helper_divb_AL (target_ulong); +void helper_idivb_AL (target_ulong); +void helper_divw_AX (target_ulong); +void helper_idivw_AX (target_ulong); +void helper_divl_EAX (target_ulong); +void helper_idivl_EAX (target_ulong); +# 24 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper.h" +void helper_aam (int); +void helper_aad (int); +void helper_aaa (void); +void helper_aas (void); +void helper_daa (void); +void helper_das (void); + +target_ulong helper_lsl (target_ulong); +target_ulong helper_lar (target_ulong); +void helper_verr (target_ulong); +void helper_verw (target_ulong); +void helper_lldt (int); +void helper_ltr (int); +void helper_load_seg (int, int); +void helper_ljmp_protected (int, target_ulong, int); +void helper_lcall_real (int, target_ulong, int, int); +void helper_lcall_protected (int, target_ulong, int, int); +void helper_iret_real (int); +void helper_iret_protected (int, int); +void helper_lret_protected (int, int); +target_ulong helper_read_crN (int); +void helper_write_crN (int, target_ulong); +void helper_lmsw (target_ulong); +void helper_clts (void); +void helper_movl_drN_T0 (int, target_ulong); +void helper_invlpg (target_ulong); + +void helper_enter_level (int, int, target_ulong); + + + +void helper_sysenter (void); +void helper_sysexit (int); + + + + +void helper_hlt (int); +void helper_monitor (target_ulong); +void helper_mwait (int); +void helper_debug (void); +void helper_reset_rf (void); +void helper_raise_interrupt (int, int); +void helper_raise_exception (int); +void helper_cli (void); +void helper_sti (void); +void helper_set_inhibit_irq (void); +void helper_reset_inhibit_irq (void); +void helper_boundw (target_ulong, int); +void helper_boundl (target_ulong, int); +void helper_rsm (void); +void helper_into (int); +void helper_cmpxchg8b (target_ulong); + + + +void helper_single_step (void); +void helper_cpuid (void); +void helper_rdtsc (void); +void helper_rdtscp (void); +void helper_rdpmc (void); +void helper_rdmsr (void); +void helper_wrmsr (void); + +void helper_check_iob (uint32_t); +void helper_check_iow (uint32_t); +void helper_check_iol (uint32_t); +void helper_outb (uint32_t, uint32_t); +target_ulong helper_inb (uint32_t); +void helper_outw (uint32_t, uint32_t); +target_ulong helper_inw (uint32_t); +void helper_outl (uint32_t, uint32_t); +target_ulong helper_inl (uint32_t); + +void helper_svm_check_intercept_param (uint32_t, uint64_t); +void helper_vmexit (uint32_t, uint64_t); +void helper_svm_check_io (uint32_t, uint32_t, uint32_t); +void helper_vmrun (int, int); +void helper_vmmcall (void); +void helper_vmload (int); +void helper_vmsave (int); +void helper_stgi (void); +void helper_clgi (void); +void helper_skinit (void); +void helper_invlpga (int); + + + +void helper_flds_FT0 (uint32_t); +void helper_fldl_FT0 (uint64_t); +void helper_fildl_FT0 (int32_t); +void helper_flds_ST0 (uint32_t); +void helper_fldl_ST0 (uint64_t); +void helper_fildl_ST0 (int32_t); +void helper_fildll_ST0 (int64_t); +uint32_t helper_fsts_ST0 (void); +uint64_t helper_fstl_ST0 (void); +int32_t helper_fist_ST0 (void); +int32_t helper_fistl_ST0 (void); +int64_t helper_fistll_ST0 (void); +int32_t helper_fistt_ST0 (void); +int32_t helper_fisttl_ST0 (void); +int64_t helper_fisttll_ST0 (void); +void helper_fldt_ST0 (target_ulong); +void helper_fstt_ST0 (target_ulong); +void helper_fpush (void); +void helper_fpop (void); +void helper_fdecstp (void); +void helper_fincstp (void); +void helper_ffree_STN (int); +void helper_fmov_ST0_FT0 (void); +void helper_fmov_FT0_STN (int); +void helper_fmov_ST0_STN (int); +void helper_fmov_STN_ST0 (int); +void helper_fxchg_ST0_STN (int); +void helper_fcom_ST0_FT0 (void); +void helper_fucom_ST0_FT0 (void); +void helper_fcomi_ST0_FT0 (void); +void helper_fucomi_ST0_FT0 (void); +void helper_fadd_ST0_FT0 (void); +void helper_fmul_ST0_FT0 (void); +void helper_fsub_ST0_FT0 (void); +void helper_fsubr_ST0_FT0 (void); +void helper_fdiv_ST0_FT0 (void); +void helper_fdivr_ST0_FT0 (void); +void helper_fadd_STN_ST0 (int); +void helper_fmul_STN_ST0 (int); +void helper_fsub_STN_ST0 (int); +void helper_fsubr_STN_ST0 (int); +void helper_fdiv_STN_ST0 (int); +void helper_fdivr_STN_ST0 (int); +void helper_fchs_ST0 (void); +void helper_fabs_ST0 (void); +void helper_fxam_ST0 (void); +void helper_fld1_ST0 (void); +void helper_fldl2t_ST0 (void); +void helper_fldl2e_ST0 (void); +void helper_fldpi_ST0 (void); +void helper_fldlg2_ST0 (void); +void helper_fldln2_ST0 (void); +void helper_fldz_ST0 (void); +void helper_fldz_FT0 (void); +uint32_t helper_fnstsw (void); +uint32_t helper_fnstcw (void); +void helper_fldcw (uint32_t); +void helper_fclex (void); +void helper_fwait (void); +void helper_fninit (void); +void helper_fbld_ST0 (target_ulong); +void helper_fbst_ST0 (target_ulong); +void helper_f2xm1 (void); +void helper_fyl2x (void); +void helper_fptan (void); +void helper_fpatan (void); +void helper_fxtract (void); +void helper_fprem1 (void); +void helper_fprem (void); +void helper_fyl2xp1 (void); +void helper_fsqrt (void); +void helper_fsincos (void); +void helper_frndint (void); +void helper_fscale (void); +void helper_fsin (void); +void helper_fcos (void); +void helper_fstenv (target_ulong, int); +void helper_fldenv (target_ulong, int); +void helper_fsave (target_ulong, int); +void helper_frstor (target_ulong, int); +void helper_fxsave (target_ulong, int); +void helper_fxrstor (target_ulong, int); +target_ulong helper_bsf (target_ulong); +target_ulong helper_bsr (target_ulong); +target_ulong helper_lzcnt (target_ulong, int); + + + +void helper_ldmxcsr (uint32_t); +void helper_enter_mmx (void); +void helper_emms (void); +void helper_movq (void *, void *); + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse_header.h" 1 +# 37 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse_header.h" +void helper_psrlw_mmx (MMXReg *, MMXReg *); +void helper_psraw_mmx (MMXReg *, MMXReg *); +void helper_psllw_mmx (MMXReg *, MMXReg *); +void helper_psrld_mmx (MMXReg *, MMXReg *); +void helper_psrad_mmx (MMXReg *, MMXReg *); +void helper_pslld_mmx (MMXReg *, MMXReg *); +void helper_psrlq_mmx (MMXReg *, MMXReg *); +void helper_psllq_mmx (MMXReg *, MMXReg *); +# 63 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse_header.h" +void helper_paddb_mmx (MMXReg *, MMXReg *); +void helper_paddw_mmx (MMXReg *, MMXReg *); +void helper_paddl_mmx (MMXReg *, MMXReg *); +void helper_paddq_mmx (MMXReg *, MMXReg *); + +void helper_psubb_mmx (MMXReg *, MMXReg *); +void helper_psubw_mmx (MMXReg *, MMXReg *); +void helper_psubl_mmx (MMXReg *, MMXReg *); +void helper_psubq_mmx (MMXReg *, MMXReg *); + +void helper_paddusb_mmx (MMXReg *, MMXReg *); +void helper_paddsb_mmx (MMXReg *, MMXReg *); +void helper_psubusb_mmx (MMXReg *, MMXReg *); +void helper_psubsb_mmx (MMXReg *, MMXReg *); + +void helper_paddusw_mmx (MMXReg *, MMXReg *); +void helper_paddsw_mmx (MMXReg *, MMXReg *); +void helper_psubusw_mmx (MMXReg *, MMXReg *); +void helper_psubsw_mmx (MMXReg *, MMXReg *); + +void helper_pminub_mmx (MMXReg *, MMXReg *); +void helper_pmaxub_mmx (MMXReg *, MMXReg *); + +void helper_pminsw_mmx (MMXReg *, MMXReg *); +void helper_pmaxsw_mmx (MMXReg *, MMXReg *); + +void helper_pand_mmx (MMXReg *, MMXReg *); +void helper_pandn_mmx (MMXReg *, MMXReg *); +void helper_por_mmx (MMXReg *, MMXReg *); +void helper_pxor_mmx (MMXReg *, MMXReg *); + +void helper_pcmpgtb_mmx (MMXReg *, MMXReg *); +void helper_pcmpgtw_mmx (MMXReg *, MMXReg *); +void helper_pcmpgtl_mmx (MMXReg *, MMXReg *); + +void helper_pcmpeqb_mmx (MMXReg *, MMXReg *); +void helper_pcmpeqw_mmx (MMXReg *, MMXReg *); +void helper_pcmpeql_mmx (MMXReg *, MMXReg *); + +void helper_pmullw_mmx (MMXReg *, MMXReg *); + +void helper_pmulhrw_mmx (MMXReg *, MMXReg *); + +void helper_pmulhuw_mmx (MMXReg *, MMXReg *); +void helper_pmulhw_mmx (MMXReg *, MMXReg *); + +void helper_pavgb_mmx (MMXReg *, MMXReg *); +void helper_pavgw_mmx (MMXReg *, MMXReg *); + +void helper_pmuludq_mmx (MMXReg *, MMXReg *); +void helper_pmaddwd_mmx (MMXReg *, MMXReg *); + +void helper_psadbw_mmx (MMXReg *, MMXReg *); +void helper_maskmov_mmx (MMXReg *, MMXReg *, target_ulong); +void helper_movl_mm_T0_mmx (MMXReg *, uint32_t); + + + + + +void helper_pshufw_mmx (MMXReg *, MMXReg *, int); +# 227 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse_header.h" +uint32_t helper_pmovmskb_mmx (MMXReg *); +void helper_packsswb_mmx (MMXReg *, MMXReg *); +void helper_packuswb_mmx (MMXReg *, MMXReg *); +void helper_packssdw_mmx (MMXReg *, MMXReg *); + + + + + +void helper_punpcklbw_mmx (MMXReg *, MMXReg *); void helper_punpcklwd_mmx (MMXReg *, MMXReg *); void helper_punpckldq_mmx (MMXReg *, MMXReg *); +void helper_punpckhbw_mmx (MMXReg *, MMXReg *); void helper_punpckhwd_mmx (MMXReg *, MMXReg *); void helper_punpckhdq_mmx (MMXReg *, MMXReg *); +# 246 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse_header.h" +void helper_pi2fd (MMXReg *, MMXReg *); +void helper_pi2fw (MMXReg *, MMXReg *); +void helper_pf2id (MMXReg *, MMXReg *); +void helper_pf2iw (MMXReg *, MMXReg *); +void helper_pfacc (MMXReg *, MMXReg *); +void helper_pfadd (MMXReg *, MMXReg *); +void helper_pfcmpeq (MMXReg *, MMXReg *); +void helper_pfcmpge (MMXReg *, MMXReg *); +void helper_pfcmpgt (MMXReg *, MMXReg *); +void helper_pfmax (MMXReg *, MMXReg *); +void helper_pfmin (MMXReg *, MMXReg *); +void helper_pfmul (MMXReg *, MMXReg *); +void helper_pfnacc (MMXReg *, MMXReg *); +void helper_pfpnacc (MMXReg *, MMXReg *); +void helper_pfrcp (MMXReg *, MMXReg *); +void helper_pfrsqrt (MMXReg *, MMXReg *); +void helper_pfsub (MMXReg *, MMXReg *); +void helper_pfsubr (MMXReg *, MMXReg *); +void helper_pswapd (MMXReg *, MMXReg *); + + + +void helper_phaddw_mmx (MMXReg *, MMXReg *); +void helper_phaddd_mmx (MMXReg *, MMXReg *); +void helper_phaddsw_mmx (MMXReg *, MMXReg *); +void helper_phsubw_mmx (MMXReg *, MMXReg *); +void helper_phsubd_mmx (MMXReg *, MMXReg *); +void helper_phsubsw_mmx (MMXReg *, MMXReg *); +void helper_pabsb_mmx (MMXReg *, MMXReg *); +void helper_pabsw_mmx (MMXReg *, MMXReg *); +void helper_pabsd_mmx (MMXReg *, MMXReg *); +void helper_pmaddubsw_mmx (MMXReg *, MMXReg *); +void helper_pmulhrsw_mmx (MMXReg *, MMXReg *); +void helper_pshufb_mmx (MMXReg *, MMXReg *); +void helper_psignb_mmx (MMXReg *, MMXReg *); +void helper_psignw_mmx (MMXReg *, MMXReg *); +void helper_psignd_mmx (MMXReg *, MMXReg *); +void helper_palignr_mmx (MMXReg *, MMXReg *, int32_t); +# 207 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper.h" 2 + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse_header.h" 1 +# 37 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse_header.h" +void helper_psrlw_xmm (XMMReg *, XMMReg *); +void helper_psraw_xmm (XMMReg *, XMMReg *); +void helper_psllw_xmm (XMMReg *, XMMReg *); +void helper_psrld_xmm (XMMReg *, XMMReg *); +void helper_psrad_xmm (XMMReg *, XMMReg *); +void helper_pslld_xmm (XMMReg *, XMMReg *); +void helper_psrlq_xmm (XMMReg *, XMMReg *); +void helper_psllq_xmm (XMMReg *, XMMReg *); + + +void helper_psrldq_xmm (XMMReg *, XMMReg *); +void helper_pslldq_xmm (XMMReg *, XMMReg *); +# 63 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse_header.h" +void helper_paddb_xmm (XMMReg *, XMMReg *); +void helper_paddw_xmm (XMMReg *, XMMReg *); +void helper_paddl_xmm (XMMReg *, XMMReg *); +void helper_paddq_xmm (XMMReg *, XMMReg *); + +void helper_psubb_xmm (XMMReg *, XMMReg *); +void helper_psubw_xmm (XMMReg *, XMMReg *); +void helper_psubl_xmm (XMMReg *, XMMReg *); +void helper_psubq_xmm (XMMReg *, XMMReg *); + +void helper_paddusb_xmm (XMMReg *, XMMReg *); +void helper_paddsb_xmm (XMMReg *, XMMReg *); +void helper_psubusb_xmm (XMMReg *, XMMReg *); +void helper_psubsb_xmm (XMMReg *, XMMReg *); + +void helper_paddusw_xmm (XMMReg *, XMMReg *); +void helper_paddsw_xmm (XMMReg *, XMMReg *); +void helper_psubusw_xmm (XMMReg *, XMMReg *); +void helper_psubsw_xmm (XMMReg *, XMMReg *); + +void helper_pminub_xmm (XMMReg *, XMMReg *); +void helper_pmaxub_xmm (XMMReg *, XMMReg *); + +void helper_pminsw_xmm (XMMReg *, XMMReg *); +void helper_pmaxsw_xmm (XMMReg *, XMMReg *); + +void helper_pand_xmm (XMMReg *, XMMReg *); +void helper_pandn_xmm (XMMReg *, XMMReg *); +void helper_por_xmm (XMMReg *, XMMReg *); +void helper_pxor_xmm (XMMReg *, XMMReg *); + +void helper_pcmpgtb_xmm (XMMReg *, XMMReg *); +void helper_pcmpgtw_xmm (XMMReg *, XMMReg *); +void helper_pcmpgtl_xmm (XMMReg *, XMMReg *); + +void helper_pcmpeqb_xmm (XMMReg *, XMMReg *); +void helper_pcmpeqw_xmm (XMMReg *, XMMReg *); +void helper_pcmpeql_xmm (XMMReg *, XMMReg *); + +void helper_pmullw_xmm (XMMReg *, XMMReg *); + + + +void helper_pmulhuw_xmm (XMMReg *, XMMReg *); +void helper_pmulhw_xmm (XMMReg *, XMMReg *); + +void helper_pavgb_xmm (XMMReg *, XMMReg *); +void helper_pavgw_xmm (XMMReg *, XMMReg *); + +void helper_pmuludq_xmm (XMMReg *, XMMReg *); +void helper_pmaddwd_xmm (XMMReg *, XMMReg *); + +void helper_psadbw_xmm (XMMReg *, XMMReg *); +void helper_maskmov_xmm (XMMReg *, XMMReg *, target_ulong); +void helper_movl_mm_T0_xmm (XMMReg *, uint32_t); + + + + + + + +void helper_shufps (XMMReg *, XMMReg *, int); +void helper_shufpd (XMMReg *, XMMReg *, int); +void helper_pshufd_xmm (XMMReg *, XMMReg *, int); +void helper_pshuflw_xmm (XMMReg *, XMMReg *, int); +void helper_pshufhw_xmm (XMMReg *, XMMReg *, int); +# 142 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse_header.h" +void helper_addps (XMMReg *, XMMReg *); void helper_addss (XMMReg *, XMMReg *); void helper_addpd (XMMReg *, XMMReg *); void helper_addsd (XMMReg *, XMMReg *); +void helper_subps (XMMReg *, XMMReg *); void helper_subss (XMMReg *, XMMReg *); void helper_subpd (XMMReg *, XMMReg *); void helper_subsd (XMMReg *, XMMReg *); +void helper_mulps (XMMReg *, XMMReg *); void helper_mulss (XMMReg *, XMMReg *); void helper_mulpd (XMMReg *, XMMReg *); void helper_mulsd (XMMReg *, XMMReg *); +void helper_divps (XMMReg *, XMMReg *); void helper_divss (XMMReg *, XMMReg *); void helper_divpd (XMMReg *, XMMReg *); void helper_divsd (XMMReg *, XMMReg *); +void helper_minps (XMMReg *, XMMReg *); void helper_minss (XMMReg *, XMMReg *); void helper_minpd (XMMReg *, XMMReg *); void helper_minsd (XMMReg *, XMMReg *); +void helper_maxps (XMMReg *, XMMReg *); void helper_maxss (XMMReg *, XMMReg *); void helper_maxpd (XMMReg *, XMMReg *); void helper_maxsd (XMMReg *, XMMReg *); +void helper_sqrtps (XMMReg *, XMMReg *); void helper_sqrtss (XMMReg *, XMMReg *); void helper_sqrtpd (XMMReg *, XMMReg *); void helper_sqrtsd (XMMReg *, XMMReg *); + + +void helper_cvtps2pd (XMMReg *, XMMReg *); +void helper_cvtpd2ps (XMMReg *, XMMReg *); +void helper_cvtss2sd (XMMReg *, XMMReg *); +void helper_cvtsd2ss (XMMReg *, XMMReg *); +void helper_cvtdq2ps (XMMReg *, XMMReg *); +void helper_cvtdq2pd (XMMReg *, XMMReg *); +void helper_cvtpi2ps (XMMReg *, MMXReg *); +void helper_cvtpi2pd (XMMReg *, MMXReg *); +void helper_cvtsi2ss (XMMReg *, uint32_t); +void helper_cvtsi2sd (XMMReg *, uint32_t); + + + + + + +void helper_cvtps2dq (XMMReg *, XMMReg *); +void helper_cvtpd2dq (XMMReg *, XMMReg *); +void helper_cvtps2pi (MMXReg *, XMMReg *); +void helper_cvtpd2pi (MMXReg *, XMMReg *); +int32_t helper_cvtss2si (XMMReg *); +int32_t helper_cvtsd2si (XMMReg *); + + + + + +void helper_cvttps2dq (XMMReg *, XMMReg *); +void helper_cvttpd2dq (XMMReg *, XMMReg *); +void helper_cvttps2pi (MMXReg *, XMMReg *); +void helper_cvttpd2pi (MMXReg *, XMMReg *); +int32_t helper_cvttss2si (XMMReg *); +int32_t helper_cvttsd2si (XMMReg *); + + + + + +void helper_rsqrtps (XMMReg *, XMMReg *); +void helper_rsqrtss (XMMReg *, XMMReg *); +void helper_rcpps (XMMReg *, XMMReg *); +void helper_rcpss (XMMReg *, XMMReg *); +void helper_extrq_r (XMMReg *, XMMReg *); +void helper_extrq_i (XMMReg *, int, int); +void helper_insertq_r (XMMReg *, XMMReg *); +void helper_insertq_i (XMMReg *, int, int); +void helper_haddps (XMMReg *, XMMReg *); +void helper_haddpd (XMMReg *, XMMReg *); +void helper_hsubps (XMMReg *, XMMReg *); +void helper_hsubpd (XMMReg *, XMMReg *); +void helper_addsubps (XMMReg *, XMMReg *); +void helper_addsubpd (XMMReg *, XMMReg *); + + + + + + + +void helper_cmpeqps (XMMReg *, XMMReg *); void helper_cmpeqss (XMMReg *, XMMReg *); void helper_cmpeqpd (XMMReg *, XMMReg *); void helper_cmpeqsd (XMMReg *, XMMReg *); +void helper_cmpltps (XMMReg *, XMMReg *); void helper_cmpltss (XMMReg *, XMMReg *); void helper_cmpltpd (XMMReg *, XMMReg *); void helper_cmpltsd (XMMReg *, XMMReg *); +void helper_cmpleps (XMMReg *, XMMReg *); void helper_cmpless (XMMReg *, XMMReg *); void helper_cmplepd (XMMReg *, XMMReg *); void helper_cmplesd (XMMReg *, XMMReg *); +void helper_cmpunordps (XMMReg *, XMMReg *); void helper_cmpunordss (XMMReg *, XMMReg *); void helper_cmpunordpd (XMMReg *, XMMReg *); void helper_cmpunordsd (XMMReg *, XMMReg *); +void helper_cmpneqps (XMMReg *, XMMReg *); void helper_cmpneqss (XMMReg *, XMMReg *); void helper_cmpneqpd (XMMReg *, XMMReg *); void helper_cmpneqsd (XMMReg *, XMMReg *); +void helper_cmpnltps (XMMReg *, XMMReg *); void helper_cmpnltss (XMMReg *, XMMReg *); void helper_cmpnltpd (XMMReg *, XMMReg *); void helper_cmpnltsd (XMMReg *, XMMReg *); +void helper_cmpnleps (XMMReg *, XMMReg *); void helper_cmpnless (XMMReg *, XMMReg *); void helper_cmpnlepd (XMMReg *, XMMReg *); void helper_cmpnlesd (XMMReg *, XMMReg *); +void helper_cmpordps (XMMReg *, XMMReg *); void helper_cmpordss (XMMReg *, XMMReg *); void helper_cmpordpd (XMMReg *, XMMReg *); void helper_cmpordsd (XMMReg *, XMMReg *); + +void helper_ucomiss (XMMReg *, XMMReg *); +void helper_comiss (XMMReg *, XMMReg *); +void helper_ucomisd (XMMReg *, XMMReg *); +void helper_comisd (XMMReg *, XMMReg *); +uint32_t helper_movmskps (XMMReg *); +uint32_t helper_movmskpd (XMMReg *); + + +uint32_t helper_pmovmskb_xmm (XMMReg *); +void helper_packsswb_xmm (XMMReg *, XMMReg *); +void helper_packuswb_xmm (XMMReg *, XMMReg *); +void helper_packssdw_xmm (XMMReg *, XMMReg *); + + + + + +void helper_punpcklbw_xmm (XMMReg *, XMMReg *); void helper_punpcklwd_xmm (XMMReg *, XMMReg *); void helper_punpckldq_xmm (XMMReg *, XMMReg *); +void helper_punpckhbw_xmm (XMMReg *, XMMReg *); void helper_punpckhwd_xmm (XMMReg *, XMMReg *); void helper_punpckhdq_xmm (XMMReg *, XMMReg *); + + +void helper_punpcklqdq_xmm (XMMReg *, XMMReg *); +void helper_punpckhqdq_xmm (XMMReg *, XMMReg *); +# 268 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse_header.h" +void helper_phaddw_xmm (XMMReg *, XMMReg *); +void helper_phaddd_xmm (XMMReg *, XMMReg *); +void helper_phaddsw_xmm (XMMReg *, XMMReg *); +void helper_phsubw_xmm (XMMReg *, XMMReg *); +void helper_phsubd_xmm (XMMReg *, XMMReg *); +void helper_phsubsw_xmm (XMMReg *, XMMReg *); +void helper_pabsb_xmm (XMMReg *, XMMReg *); +void helper_pabsw_xmm (XMMReg *, XMMReg *); +void helper_pabsd_xmm (XMMReg *, XMMReg *); +void helper_pmaddubsw_xmm (XMMReg *, XMMReg *); +void helper_pmulhrsw_xmm (XMMReg *, XMMReg *); +void helper_pshufb_xmm (XMMReg *, XMMReg *); +void helper_psignb_xmm (XMMReg *, XMMReg *); +void helper_psignw_xmm (XMMReg *, XMMReg *); +void helper_psignd_xmm (XMMReg *, XMMReg *); +void helper_palignr_xmm (XMMReg *, XMMReg *, int32_t); + + + +void helper_pblendvb_xmm (XMMReg *, XMMReg *); +void helper_blendvps_xmm (XMMReg *, XMMReg *); +void helper_blendvpd_xmm (XMMReg *, XMMReg *); +void helper_ptest_xmm (XMMReg *, XMMReg *); +void helper_pmovsxbw_xmm (XMMReg *, XMMReg *); +void helper_pmovsxbd_xmm (XMMReg *, XMMReg *); +void helper_pmovsxbq_xmm (XMMReg *, XMMReg *); +void helper_pmovsxwd_xmm (XMMReg *, XMMReg *); +void helper_pmovsxwq_xmm (XMMReg *, XMMReg *); +void helper_pmovsxdq_xmm (XMMReg *, XMMReg *); +void helper_pmovzxbw_xmm (XMMReg *, XMMReg *); +void helper_pmovzxbd_xmm (XMMReg *, XMMReg *); +void helper_pmovzxbq_xmm (XMMReg *, XMMReg *); +void helper_pmovzxwd_xmm (XMMReg *, XMMReg *); +void helper_pmovzxwq_xmm (XMMReg *, XMMReg *); +void helper_pmovzxdq_xmm (XMMReg *, XMMReg *); +void helper_pmuldq_xmm (XMMReg *, XMMReg *); +void helper_pcmpeqq_xmm (XMMReg *, XMMReg *); +void helper_packusdw_xmm (XMMReg *, XMMReg *); +void helper_pminsb_xmm (XMMReg *, XMMReg *); +void helper_pminsd_xmm (XMMReg *, XMMReg *); +void helper_pminuw_xmm (XMMReg *, XMMReg *); +void helper_pminud_xmm (XMMReg *, XMMReg *); +void helper_pmaxsb_xmm (XMMReg *, XMMReg *); +void helper_pmaxsd_xmm (XMMReg *, XMMReg *); +void helper_pmaxuw_xmm (XMMReg *, XMMReg *); +void helper_pmaxud_xmm (XMMReg *, XMMReg *); +void helper_pmulld_xmm (XMMReg *, XMMReg *); +void helper_phminposuw_xmm (XMMReg *, XMMReg *); +void helper_roundps_xmm (XMMReg *, XMMReg *, uint32_t); +void helper_roundpd_xmm (XMMReg *, XMMReg *, uint32_t); +void helper_roundss_xmm (XMMReg *, XMMReg *, uint32_t); +void helper_roundsd_xmm (XMMReg *, XMMReg *, uint32_t); +void helper_blendps_xmm (XMMReg *, XMMReg *, uint32_t); +void helper_blendpd_xmm (XMMReg *, XMMReg *, uint32_t); +void helper_pblendw_xmm (XMMReg *, XMMReg *, uint32_t); +void helper_dpps_xmm (XMMReg *, XMMReg *, uint32_t); +void helper_dppd_xmm (XMMReg *, XMMReg *, uint32_t); +void helper_mpsadbw_xmm (XMMReg *, XMMReg *, uint32_t); + + + + +void helper_pcmpgtq_xmm (XMMReg *, XMMReg *); +void helper_pcmpestri_xmm (XMMReg *, XMMReg *, uint32_t); +void helper_pcmpestrm_xmm (XMMReg *, XMMReg *, uint32_t); +void helper_pcmpistri_xmm (XMMReg *, XMMReg *, uint32_t); +void helper_pcmpistrm_xmm (XMMReg *, XMMReg *, uint32_t); +target_ulong helper_crc32 (uint32_t, target_ulong, uint32_t); +target_ulong helper_popcnt (target_ulong, uint32_t); +# 209 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper.h" 2 + +target_ulong helper_rclb (target_ulong, target_ulong); +target_ulong helper_rclw (target_ulong, target_ulong); +target_ulong helper_rcll (target_ulong, target_ulong); +target_ulong helper_rcrb (target_ulong, target_ulong); +target_ulong helper_rcrw (target_ulong, target_ulong); +target_ulong helper_rcrl (target_ulong, target_ulong); + + + + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/def-helper.h" 1 +# 221 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper.h" 2 +# 28 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_exec.h" 1 +# 27 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_exec.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint32_t +ldub_kernel( + target_ulong ptr) +{ + int page_index; + uint32_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 0; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (1 - 1)))), 0) + ) { + res = __ldb_mmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = ldub_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} + + +static __attribute__ (( always_inline )) __inline__ int +ldsb_kernel( + target_ulong ptr) +{ + int res, page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 0; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (1 - 1)))), 0) + ) { + res = (int8_t) + __ldb_mmu( addr, mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = ldsb_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} + + + + + + +static __attribute__ (( always_inline )) __inline__ void +stb_kernel( target_ulong ptr, + uint32_t v) +{ + int page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 0; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_write != (addr & (~((1 << 12) - 1) | (1 - 1)))), 0) + ) { + __stb_mmu( addr, v, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + stb_p((uint8_t *)(intptr_t)((hostaddr)), v); + } +} +# 28 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_exec.h" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint32_t +lduw_kernel( + target_ulong ptr) +{ + int page_index; + uint32_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 0; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (2 - 1)))), 0) + ) { + res = __ldw_mmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = lduw_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} + + +static __attribute__ (( always_inline )) __inline__ int +ldsw_kernel( + target_ulong ptr) +{ + int res, page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 0; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (2 - 1)))), 0) + ) { + res = (int16_t) + __ldw_mmu( addr, mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = ldsw_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} + + + + + + +static __attribute__ (( always_inline )) __inline__ void +stw_kernel( target_ulong ptr, + uint32_t v) +{ + int page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 0; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_write != (addr & (~((1 << 12) - 1) | (2 - 1)))), 0) + ) { + __stw_mmu( addr, v, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + stw_le_p((uint8_t *)(intptr_t)((hostaddr)), v); + } +} +# 31 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_exec.h" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint32_t +ldl_kernel( + target_ulong ptr) +{ + int page_index; + uint32_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 0; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (4 - 1)))), 0) + ) { + res = __ldl_mmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = ldl_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} +# 147 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ void +stl_kernel( target_ulong ptr, + uint32_t v) +{ + int page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 0; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_write != (addr & (~((1 << 12) - 1) | (4 - 1)))), 0) + ) { + __stl_mmu( addr, v, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + stl_le_p((uint8_t *)(intptr_t)((hostaddr)), v); + } +} +# 198 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ float32 ldfl_kernel( + target_ulong ptr) +{ + union { + float32 f; + uint32_t i; + } u; + u.i = ldl_kernel( ptr); + return u.f; +} + +static __attribute__ (( always_inline )) __inline__ void stfl_kernel( + target_ulong ptr, + float32 v) +{ + union { + float32 f; + uint32_t i; + } u; + u.f = v; + stl_kernel( ptr, u.i); +} +# 34 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_exec.h" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint64_t +ldq_kernel( + target_ulong ptr) +{ + int page_index; + uint64_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 0; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (8 - 1)))), 0) + ) { + res = __ldq_mmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = ldq_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} +# 147 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ void +stq_kernel( target_ulong ptr, + uint64_t v) +{ + int page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 0; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_write != (addr & (~((1 << 12) - 1) | (8 - 1)))), 0) + ) { + __stq_mmu( addr, v, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + stq_le_p((uint8_t *)(intptr_t)((hostaddr)), v); + } +} + + + + + + +static __attribute__ (( always_inline )) __inline__ float64 ldfq_kernel( + target_ulong ptr) +{ + union { + float64 d; + uint64_t i; + } u; + u.i = ldq_kernel( ptr); + return u.d; +} + +static __attribute__ (( always_inline )) __inline__ void stfq_kernel( + target_ulong ptr, + float64 v) +{ + union { + float64 d; + uint64_t i; + } u; + u.d = v; + stq_kernel( ptr, u.i); +} +# 37 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_exec.h" 2 + + + + + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint32_t +ldub_user( + target_ulong ptr) +{ + int page_index; + uint32_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 1; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (1 - 1)))), 0) + ) { + res = __ldb_mmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = ldub_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} + + +static __attribute__ (( always_inline )) __inline__ int +ldsb_user( + target_ulong ptr) +{ + int res, page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 1; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (1 - 1)))), 0) + ) { + res = (int8_t) + __ldb_mmu( addr, mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = ldsb_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} + + + + + + +static __attribute__ (( always_inline )) __inline__ void +stb_user( target_ulong ptr, + uint32_t v) +{ + int page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 1; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_write != (addr & (~((1 << 12) - 1) | (1 - 1)))), 0) + ) { + __stb_mmu( addr, v, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + stb_p((uint8_t *)(intptr_t)((hostaddr)), v); + } +} +# 44 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_exec.h" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint32_t +lduw_user( + target_ulong ptr) +{ + int page_index; + uint32_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 1; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (2 - 1)))), 0) + ) { + res = __ldw_mmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = lduw_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} + + +static __attribute__ (( always_inline )) __inline__ int +ldsw_user( + target_ulong ptr) +{ + int res, page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 1; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (2 - 1)))), 0) + ) { + res = (int16_t) + __ldw_mmu( addr, mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = ldsw_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} + + + + + + +static __attribute__ (( always_inline )) __inline__ void +stw_user( target_ulong ptr, + uint32_t v) +{ + int page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 1; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_write != (addr & (~((1 << 12) - 1) | (2 - 1)))), 0) + ) { + __stw_mmu( addr, v, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + stw_le_p((uint8_t *)(intptr_t)((hostaddr)), v); + } +} +# 47 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_exec.h" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint32_t +ldl_user( + target_ulong ptr) +{ + int page_index; + uint32_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 1; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (4 - 1)))), 0) + ) { + res = __ldl_mmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = ldl_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} +# 147 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ void +stl_user( target_ulong ptr, + uint32_t v) +{ + int page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 1; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_write != (addr & (~((1 << 12) - 1) | (4 - 1)))), 0) + ) { + __stl_mmu( addr, v, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + stl_le_p((uint8_t *)(intptr_t)((hostaddr)), v); + } +} +# 198 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ float32 ldfl_user( + target_ulong ptr) +{ + union { + float32 f; + uint32_t i; + } u; + u.i = ldl_user( ptr); + return u.f; +} + +static __attribute__ (( always_inline )) __inline__ void stfl_user( + target_ulong ptr, + float32 v) +{ + union { + float32 f; + uint32_t i; + } u; + u.f = v; + stl_user( ptr, u.i); +} +# 50 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_exec.h" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint64_t +ldq_user( + target_ulong ptr) +{ + int page_index; + uint64_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 1; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (8 - 1)))), 0) + ) { + res = __ldq_mmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = ldq_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} +# 147 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ void +stq_user( target_ulong ptr, + uint64_t v) +{ + int page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = 1; + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_write != (addr & (~((1 << 12) - 1) | (8 - 1)))), 0) + ) { + __stq_mmu( addr, v, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + stq_le_p((uint8_t *)(intptr_t)((hostaddr)), v); + } +} + + + + + + +static __attribute__ (( always_inline )) __inline__ float64 ldfq_user( + target_ulong ptr) +{ + union { + float64 d; + uint64_t i; + } u; + u.i = ldq_user( ptr); + return u.d; +} + +static __attribute__ (( always_inline )) __inline__ void stfq_user( + target_ulong ptr, + float64 v) +{ + union { + float64 d; + uint64_t i; + } u; + u.d = v; + stq_user( ptr, u.i); +} +# 53 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_exec.h" 2 +# 140 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_exec.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint32_t +ldub_data( + target_ulong ptr) +{ + int page_index; + uint32_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(env)); + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (1 - 1)))), 0) + ) { + res = __ldb_mmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = ldub_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} + + +static __attribute__ (( always_inline )) __inline__ int +ldsb_data( + target_ulong ptr) +{ + int res, page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(env)); + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (1 - 1)))), 0) + ) { + res = (int8_t) + __ldb_mmu( addr, mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = ldsb_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} + + + + + + +static __attribute__ (( always_inline )) __inline__ void +stb_data( target_ulong ptr, + uint32_t v) +{ + int page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(env)); + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_write != (addr & (~((1 << 12) - 1) | (1 - 1)))), 0) + ) { + __stb_mmu( addr, v, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + stb_p((uint8_t *)(intptr_t)((hostaddr)), v); + } +} +# 141 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_exec.h" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint32_t +lduw_data( + target_ulong ptr) +{ + int page_index; + uint32_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(env)); + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (2 - 1)))), 0) + ) { + res = __ldw_mmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = lduw_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} + + +static __attribute__ (( always_inline )) __inline__ int +ldsw_data( + target_ulong ptr) +{ + int res, page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(env)); + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (2 - 1)))), 0) + ) { + res = (int16_t) + __ldw_mmu( addr, mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = ldsw_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} + + + + + + +static __attribute__ (( always_inline )) __inline__ void +stw_data( target_ulong ptr, + uint32_t v) +{ + int page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(env)); + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_write != (addr & (~((1 << 12) - 1) | (2 - 1)))), 0) + ) { + __stw_mmu( addr, v, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + stw_le_p((uint8_t *)(intptr_t)((hostaddr)), v); + } +} +# 144 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_exec.h" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint32_t +ldl_data( + target_ulong ptr) +{ + int page_index; + uint32_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(env)); + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (4 - 1)))), 0) + ) { + res = __ldl_mmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = ldl_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} +# 147 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ void +stl_data( target_ulong ptr, + uint32_t v) +{ + int page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(env)); + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_write != (addr & (~((1 << 12) - 1) | (4 - 1)))), 0) + ) { + __stl_mmu( addr, v, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + stl_le_p((uint8_t *)(intptr_t)((hostaddr)), v); + } +} +# 198 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ float32 ldfl_data( + target_ulong ptr) +{ + union { + float32 f; + uint32_t i; + } u; + u.i = ldl_data( ptr); + return u.f; +} + +static __attribute__ (( always_inline )) __inline__ void stfl_data( + target_ulong ptr, + float32 v) +{ + union { + float32 f; + uint32_t i; + } u; + u.f = v; + stl_data( ptr, u.i); +} +# 147 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_exec.h" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" 1 +# 95 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ uint64_t +ldq_data( + target_ulong ptr) +{ + int page_index; + uint64_t res; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(env)); + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_read != (addr & (~((1 << 12) - 1) | (8 - 1)))), 0) + ) { + res = __ldq_mmu( + addr, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + res = ldq_le_p((uint8_t *)(intptr_t)((hostaddr))); + } + return res; +} +# 147 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_header.h" +static __attribute__ (( always_inline )) __inline__ void +stq_data( target_ulong ptr, + uint64_t v) +{ + int page_index; + target_ulong addr; + int mmu_idx; + + addr = ptr; + page_index = (addr >> 12) & ((1 << 8) - 1); + mmu_idx = (cpu_mmu_index(env)); + if (__builtin_expect(!!(env->tlb_table[mmu_idx][page_index].addr_write != (addr & (~((1 << 12) - 1) | (8 - 1)))), 0) + ) { + __stq_mmu( addr, v, + mmu_idx); + } else { + uintptr_t hostaddr = addr + env->tlb_table[mmu_idx][page_index].addend; + stq_le_p((uint8_t *)(intptr_t)((hostaddr)), v); + } +} + + + + + + +static __attribute__ (( always_inline )) __inline__ float64 ldfq_data( + target_ulong ptr) +{ + union { + float64 d; + uint64_t i; + } u; + u.i = ldq_data( ptr); + return u.d; +} + +static __attribute__ (( always_inline )) __inline__ void stfq_data( + target_ulong ptr, + float64 v) +{ + union { + float64 d; + uint64_t i; + } u; + u.d = v; + stq_data( ptr, u.i); +} +# 150 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_exec.h" 2 +# 31 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 +# 45 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +static __attribute__ (( always_inline )) __inline__ target_long lshift(target_long x, int n) +{ + if (n >= 0) { + return x << n; + } else { + return x >> (-n); + } +} +# 70 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +static __attribute__ (( always_inline )) __inline__ void fpush(void) +{ + env->fpstt = (env->fpstt - 1) & 7; + env->fptags[env->fpstt] = 0; +} + +static __attribute__ (( always_inline )) __inline__ void fpop(void) +{ + env->fptags[env->fpstt] = 1; + env->fpstt = (env->fpstt + 1) & 7; +} + +static __attribute__ (( always_inline )) __inline__ floatx80 helper_fldt(target_ulong ptr) +{ + CPU_LDoubleU temp; + + temp.l.lower = ldq_data(ptr); + temp.l.upper = lduw_data(ptr + 8); + return temp.d; +} + +static __attribute__ (( always_inline )) __inline__ void helper_fstt(floatx80 f, target_ulong ptr) +{ + CPU_LDoubleU temp; + + temp.d = f; + stq_data(ptr, temp.l.lower); + stw_data(ptr + 8, temp.l.upper); +} +# 112 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +static __attribute__ (( always_inline )) __inline__ uint32_t compute_eflags(void) +{ + return env->eflags | helper_cc_compute_all((env->cc_op)) | ((env->df) & 0x00000400); +} + + +static __attribute__ (( always_inline )) __inline__ void load_eflags(int eflags, int update_mask) +{ + (env->cc_src) = eflags & (0x0800 | 0x0080 | 0x0040 | 0x0010 | 0x0004 | 0x0001); + (env->df) = 1 - (2 * ((eflags >> 10) & 1)); + env->eflags = (env->eflags & ~update_mask) | + (eflags & update_mask) | 0x2; +} + + + +static __attribute__ (( always_inline )) __inline__ void cpu_load_efer(CPUX86State *env, uint64_t val) +{ + env->efer = val; + env->hflags &= ~((1 << 14) | (1 << 20)); + if (env->efer & (1 << 10)) { + env->hflags |= (1 << 14); + } + if (env->efer & (1 << 12)) { + env->hflags |= (1 << 20); + } +} +# 148 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +static void __attribute__ ((__noreturn__)) raise_exception_err(int exception_index, + int error_code); + +static const uint8_t parity_table[256] = { + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0x0004, 0, 0, 0x0004, 0, 0x0004, 0x0004, 0, + 0, 0x0004, 0x0004, 0, 0x0004, 0, 0, 0x0004, +}; + + +static const uint8_t rclw_table[32] = { + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 9,10,11,12,13,14,15, + 16, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 9,10,11,12,13,14, +}; + + +static const uint8_t rclb_table[32] = { + 0, 1, 2, 3, 4, 5, 6, 7, + 8, 0, 1, 2, 3, 4, 5, 6, + 7, 8, 0, 1, 2, 3, 4, 5, + 6, 7, 8, 0, 1, 2, 3, 4, +}; + + + + + + + +static spinlock_t global_cpu_lock = 0; + +void helper_lock(void) +{ + spin_lock(&global_cpu_lock); +} + +void helper_unlock(void) +{ + spin_unlock(&global_cpu_lock); +} + +void helper_write_eflags(target_ulong t0, uint32_t update_mask) +{ + load_eflags(t0, update_mask); +} + +target_ulong helper_read_eflags(void) +{ + uint32_t eflags; + eflags = helper_cc_compute_all((env->cc_op)); + eflags |= ((env->df) & 0x00000400); + eflags |= env->eflags & ~(0x00020000 | 0x00010000); + return eflags; +} + + +static __attribute__ (( always_inline )) __inline__ int load_segment(uint32_t *e1_ptr, uint32_t *e2_ptr, + int selector) +{ + SegmentCache *dt; + int index; + target_ulong ptr; + + if (selector & 0x4) + dt = &env->ldt; + else + dt = &env->gdt; + index = selector & ~7; + if ((index + 7) > dt->limit) + return -1; + ptr = dt->base + index; + *e1_ptr = ldl_kernel(ptr); + *e2_ptr = ldl_kernel(ptr + 4); + return 0; +} + +static __attribute__ (( always_inline )) __inline__ unsigned int get_seg_limit(uint32_t e1, uint32_t e2) +{ + unsigned int limit; + limit = (e1 & 0xffff) | (e2 & 0x000f0000); + if (e2 & (1 << 23)) + limit = (limit << 12) | 0xfff; + return limit; +} + +static __attribute__ (( always_inline )) __inline__ uint32_t get_seg_base(uint32_t e1, uint32_t e2) +{ + return ((e1 >> 16) | ((e2 & 0xff) << 16) | (e2 & 0xff000000)); +} + +static __attribute__ (( always_inline )) __inline__ void load_seg_cache_raw_dt(SegmentCache *sc, uint32_t e1, uint32_t e2) +{ + sc->base = get_seg_base(e1, e2); + sc->limit = get_seg_limit(e1, e2); + sc->flags = e2; +} + + +static __attribute__ (( always_inline )) __inline__ void load_seg_vm(int seg, int selector) +{ + selector &= 0xffff; + cpu_x86_load_seg_cache(env, seg, selector, + (selector << 4), 0xffff, 0); +} + +static __attribute__ (( always_inline )) __inline__ void get_ss_esp_from_tss(uint32_t *ss_ptr, + uint32_t *esp_ptr, int dpl) +{ + int type, index, shift; +# 301 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + if (!(env->tr.flags & (1 << 15))) + cpu_abort(env, "invalid tss"); + type = (env->tr.flags >> 8) & 0xf; + if ((type & 7) != 1) + cpu_abort(env, "invalid tss type"); + shift = type >> 3; + index = (dpl * 4 + 2) << shift; + if (index + (4 << shift) - 1 > env->tr.limit) + raise_exception_err(10, env->tr.selector & 0xfffc); + if (shift == 0) { + *esp_ptr = lduw_kernel(env->tr.base + index); + *ss_ptr = lduw_kernel(env->tr.base + index + 2); + } else { + *esp_ptr = ldl_kernel(env->tr.base + index); + *ss_ptr = lduw_kernel(env->tr.base + index + 4); + } +} + + +static void tss_load_seg(int seg_reg, int selector) +{ + uint32_t e1, e2; + int rpl, dpl, cpl; + + if ((selector & 0xfffc) != 0) { + if (load_segment(&e1, &e2, selector) != 0) + raise_exception_err(10, selector & 0xfffc); + if (!(e2 & (1 << 12))) + raise_exception_err(10, selector & 0xfffc); + rpl = selector & 3; + dpl = (e2 >> 13) & 3; + cpl = env->hflags & (3 << 0); + if (seg_reg == 1) { + if (!(e2 & (1 << 11))) + raise_exception_err(10, selector & 0xfffc); + + if (dpl != rpl) + raise_exception_err(10, selector & 0xfffc); + if ((e2 & (1 << 10)) && dpl > rpl) + raise_exception_err(10, selector & 0xfffc); + } else if (seg_reg == 2) { + + if ((e2 & (1 << 11)) || !(e2 & (1 << 9))) + raise_exception_err(10, selector & 0xfffc); + if (dpl != cpl || dpl != rpl) + raise_exception_err(10, selector & 0xfffc); + } else { + + if ((e2 & (1 << 11)) && !(e2 & (1 << 9))) + raise_exception_err(10, selector & 0xfffc); + + if (((e2 >> 8) & 0xf) < 12) { + if (dpl < cpl || dpl < rpl) + raise_exception_err(10, selector & 0xfffc); + } + } + if (!(e2 & (1 << 15))) + raise_exception_err(11, selector & 0xfffc); + cpu_x86_load_seg_cache(env, seg_reg, selector, + get_seg_base(e1, e2), + get_seg_limit(e1, e2), + e2); + } else { + if (seg_reg == 2 || seg_reg == 1) + raise_exception_err(10, selector & 0xfffc); + } +} + + + + + + +static void switch_tss(int tss_selector, + uint32_t e1, uint32_t e2, int source, + uint32_t next_eip) +{ + int tss_limit, tss_limit_max, type, old_tss_limit_max, old_type, v1, v2, i; + target_ulong tss_base; + uint32_t new_regs[8], new_segs[6]; + uint32_t new_eflags, new_eip, new_cr3, new_ldt, new_trap; + uint32_t old_eflags, eflags_mask; + SegmentCache *dt; + int index; + target_ulong ptr; + + type = (e2 >> 8) & 0xf; + do { } while (0); + + + if (type == 5) { + if (!(e2 & (1 << 15))) + raise_exception_err(11, tss_selector & 0xfffc); + tss_selector = e1 >> 16; + if (tss_selector & 4) + raise_exception_err(10, tss_selector & 0xfffc); + if (load_segment(&e1, &e2, tss_selector) != 0) + raise_exception_err(13, tss_selector & 0xfffc); + if (e2 & (1 << 12)) + raise_exception_err(13, tss_selector & 0xfffc); + type = (e2 >> 8) & 0xf; + if ((type & 7) != 1) + raise_exception_err(13, tss_selector & 0xfffc); + } + + if (!(e2 & (1 << 15))) + raise_exception_err(11, tss_selector & 0xfffc); + + if (type & 8) + tss_limit_max = 103; + else + tss_limit_max = 43; + tss_limit = get_seg_limit(e1, e2); + tss_base = get_seg_base(e1, e2); + if ((tss_selector & 4) != 0 || + tss_limit < tss_limit_max) + raise_exception_err(10, tss_selector & 0xfffc); + old_type = (env->tr.flags >> 8) & 0xf; + if (old_type & 8) + old_tss_limit_max = 103; + else + old_tss_limit_max = 43; + + + if (type & 8) { + + new_cr3 = ldl_kernel(tss_base + 0x1c); + new_eip = ldl_kernel(tss_base + 0x20); + new_eflags = ldl_kernel(tss_base + 0x24); + for(i = 0; i < 8; i++) + new_regs[i] = ldl_kernel(tss_base + (0x28 + i * 4)); + for(i = 0; i < 6; i++) + new_segs[i] = lduw_kernel(tss_base + (0x48 + i * 4)); + new_ldt = lduw_kernel(tss_base + 0x60); + new_trap = ldl_kernel(tss_base + 0x64); + } else { + + new_cr3 = 0; + new_eip = lduw_kernel(tss_base + 0x0e); + new_eflags = lduw_kernel(tss_base + 0x10); + for(i = 0; i < 8; i++) + new_regs[i] = lduw_kernel(tss_base + (0x12 + i * 2)) | 0xffff0000; + for(i = 0; i < 4; i++) + new_segs[i] = lduw_kernel(tss_base + (0x22 + i * 4)); + new_ldt = lduw_kernel(tss_base + 0x2a); + new_segs[4] = 0; + new_segs[5] = 0; + new_trap = 0; + } + + + + (void)new_trap; + + + + + + + v1 = ldub_kernel(env->tr.base); + v2 = ldub_kernel(env->tr.base + old_tss_limit_max); + stb_kernel(env->tr.base, v1); + stb_kernel(env->tr.base + old_tss_limit_max, v2); + + + if (source == 0 || source == 1) { + target_ulong ptr; + uint32_t e2; + ptr = env->gdt.base + (env->tr.selector & ~7); + e2 = ldl_kernel(ptr + 4); + e2 &= ~(1 << 9); + stl_kernel(ptr + 4, e2); + } + old_eflags = compute_eflags(); + if (source == 1) + old_eflags &= ~0x00004000; + + + if (type & 8) { + + stl_kernel(env->tr.base + 0x20, next_eip); + stl_kernel(env->tr.base + 0x24, old_eflags); + stl_kernel(env->tr.base + (0x28 + 0 * 4), (env->regs[0])); + stl_kernel(env->tr.base + (0x28 + 1 * 4), (env->regs[1])); + stl_kernel(env->tr.base + (0x28 + 2 * 4), (env->regs[2])); + stl_kernel(env->tr.base + (0x28 + 3 * 4), (env->regs[3])); + stl_kernel(env->tr.base + (0x28 + 4 * 4), (env->regs[4])); + stl_kernel(env->tr.base + (0x28 + 5 * 4), (env->regs[5])); + stl_kernel(env->tr.base + (0x28 + 6 * 4), (env->regs[6])); + stl_kernel(env->tr.base + (0x28 + 7 * 4), (env->regs[7])); + for(i = 0; i < 6; i++) + stw_kernel(env->tr.base + (0x48 + i * 4), env->segs[i].selector); + } else { + + stw_kernel(env->tr.base + 0x0e, next_eip); + stw_kernel(env->tr.base + 0x10, old_eflags); + stw_kernel(env->tr.base + (0x12 + 0 * 2), (env->regs[0])); + stw_kernel(env->tr.base + (0x12 + 1 * 2), (env->regs[1])); + stw_kernel(env->tr.base + (0x12 + 2 * 2), (env->regs[2])); + stw_kernel(env->tr.base + (0x12 + 3 * 2), (env->regs[3])); + stw_kernel(env->tr.base + (0x12 + 4 * 2), (env->regs[4])); + stw_kernel(env->tr.base + (0x12 + 5 * 2), (env->regs[5])); + stw_kernel(env->tr.base + (0x12 + 6 * 2), (env->regs[6])); + stw_kernel(env->tr.base + (0x12 + 7 * 2), (env->regs[7])); + for(i = 0; i < 4; i++) + stw_kernel(env->tr.base + (0x22 + i * 4), env->segs[i].selector); + } + + + + + if (source == 2) { + stw_kernel(tss_base, env->tr.selector); + new_eflags |= 0x00004000; + } + + + if (source == 0 || source == 2) { + target_ulong ptr; + uint32_t e2; + ptr = env->gdt.base + (tss_selector & ~7); + e2 = ldl_kernel(ptr + 4); + e2 |= (1 << 9); + stl_kernel(ptr + 4, e2); + } + + + + env->cr[0] |= (1 << 3); + env->hflags |= (1 << 11); + env->tr.selector = tss_selector; + env->tr.base = tss_base; + env->tr.limit = tss_limit; + env->tr.flags = e2 & ~(1 << 9); + + if ((type & 8) && (env->cr[0] & (1 << 31))) { + cpu_x86_update_cr3(env, new_cr3); + } + + + + env->eip = new_eip; + eflags_mask = 0x00000100 | 0x00040000 | 0x00200000 | + 0x00000200 | 0x00003000 | 0x00020000 | 0x00010000 | 0x00004000; + if (!(type & 8)) + eflags_mask &= 0xffff; + load_eflags(new_eflags, eflags_mask); + + (env->regs[0]) = new_regs[0]; + (env->regs[1]) = new_regs[1]; + (env->regs[2]) = new_regs[2]; + (env->regs[3]) = new_regs[3]; + (env->regs[4]) = new_regs[4]; + (env->regs[5]) = new_regs[5]; + (env->regs[6]) = new_regs[6]; + (env->regs[7]) = new_regs[7]; + if (new_eflags & 0x00020000) { + for(i = 0; i < 6; i++) + load_seg_vm(i, new_segs[i]); + + cpu_x86_set_cpl(env, 3); + } else { + + cpu_x86_set_cpl(env, new_segs[1] & 3); + + for(i = 0; i < 6; i++) + cpu_x86_load_seg_cache(env, i, new_segs[i], 0, 0, 0); + } + + env->ldt.selector = new_ldt & ~4; + env->ldt.base = 0; + env->ldt.limit = 0; + env->ldt.flags = 0; + + + if (new_ldt & 4) + raise_exception_err(10, new_ldt & 0xfffc); + + if ((new_ldt & 0xfffc) != 0) { + dt = &env->gdt; + index = new_ldt & ~7; + if ((index + 7) > dt->limit) + raise_exception_err(10, new_ldt & 0xfffc); + ptr = dt->base + index; + e1 = ldl_kernel(ptr); + e2 = ldl_kernel(ptr + 4); + if ((e2 & (1 << 12)) || ((e2 >> 8) & 0xf) != 2) + raise_exception_err(10, new_ldt & 0xfffc); + if (!(e2 & (1 << 15))) + raise_exception_err(10, new_ldt & 0xfffc); + load_seg_cache_raw_dt(&env->ldt, e1, e2); + } + + + if (!(new_eflags & 0x00020000)) { + tss_load_seg(1, new_segs[1]); + tss_load_seg(2, new_segs[2]); + tss_load_seg(0, new_segs[0]); + tss_load_seg(3, new_segs[3]); + tss_load_seg(4, new_segs[4]); + tss_load_seg(5, new_segs[5]); + } + + + if (new_eip > env->segs[1].limit) { + + raise_exception_err(13, 0); + } + + + + if (env->dr[7] & 0x55) { + for (i = 0; i < 4; i++) { + if (hw_breakpoint_enabled(env->dr[7], i) == 0x1) + hw_breakpoint_remove(env, i); + } + env->dr[7] &= ~0x55; + } + +} + + +static __attribute__ (( always_inline )) __inline__ void check_io(int addr, int size) +{ + int io_offset, val, mask; + + + if (!(env->tr.flags & (1 << 15)) || + ((env->tr.flags >> 8) & 0xf) != 9 || + env->tr.limit < 103) + goto fail; + io_offset = lduw_kernel(env->tr.base + 0x66); + io_offset += (addr >> 3); + + if ((io_offset + 1) > env->tr.limit) + goto fail; + val = lduw_kernel(env->tr.base + io_offset); + val >>= (addr & 7); + mask = (1 << size) - 1; + + if ((val & mask) != 0) { + fail: + raise_exception_err(13, 0); + } +} + +void helper_check_iob(uint32_t t0) +{ + check_io(t0, 1); +} + +void helper_check_iow(uint32_t t0) +{ + check_io(t0, 2); +} + +void helper_check_iol(uint32_t t0) +{ + check_io(t0, 4); +} + +void helper_outb(uint32_t port, uint32_t data) +{ + cpu_outb(port, data & 0xff); +} + +target_ulong helper_inb(uint32_t port) +{ + return cpu_inb(port); +} + +void helper_outw(uint32_t port, uint32_t data) +{ + cpu_outw(port, data & 0xffff); +} + +target_ulong helper_inw(uint32_t port) +{ + return cpu_inw(port); +} + +void helper_outl(uint32_t port, uint32_t data) +{ + cpu_outl(port, data); +} + +target_ulong helper_inl(uint32_t port) +{ + return cpu_inl(port); +} + +static __attribute__ (( always_inline )) __inline__ unsigned int get_sp_mask(unsigned int e2) +{ + if (e2 & (1 << 22)) + return 0xffffffff; + else + return 0xffff; +} + +static int exeption_has_error_code(int intno) +{ + switch(intno) { + case 8: + case 10: + case 11: + case 12: + case 13: + case 14: + case 17: + return 1; + } + return 0; +} +# 759 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +static void do_interrupt_protected(int intno, int is_int, int error_code, + unsigned int next_eip, int is_hw) +{ + SegmentCache *dt; + target_ulong ptr, ssp; + int type, dpl, selector, ss_dpl, cpl; + int has_error_code, new_stack, shift; + uint32_t e1, e2, offset, ss = 0, esp, ss_e1 = 0, ss_e2 = 0; + uint32_t old_eip, sp_mask; + + has_error_code = 0; + if (!is_int && !is_hw) + has_error_code = exeption_has_error_code(intno); + if (is_int) + old_eip = next_eip; + else + old_eip = env->eip; + + dt = &env->idt; + if (intno * 8 + 7 > dt->limit) + raise_exception_err(13, intno * 8 + 2); + ptr = dt->base + intno * 8; + e1 = ldl_kernel(ptr); + e2 = ldl_kernel(ptr + 4); + + type = (e2 >> 8) & 0x1f; + switch(type) { + case 5: + + if (!(e2 & (1 << 15))) + raise_exception_err(11, intno * 8 + 2); + switch_tss(intno * 8, e1, e2, 2, old_eip); + if (has_error_code) { + int type; + uint32_t mask; + + type = (env->tr.flags >> 8) & 0xf; + shift = type >> 3; + if (env->segs[2].flags & (1 << 22)) + mask = 0xffffffff; + else + mask = 0xffff; + esp = ((env->regs[4]) - (2 << shift)) & mask; + ssp = env->segs[2].base + esp; + if (shift) + stl_kernel(ssp, error_code); + else + stw_kernel(ssp, error_code); + (env->regs[4]) = ((env->regs[4]) & ~(mask)) | ((esp) & (mask)); + } + return; + case 6: + case 7: + case 14: + case 15: + break; + default: + raise_exception_err(13, intno * 8 + 2); + break; + } + dpl = (e2 >> 13) & 3; + cpl = env->hflags & (3 << 0); + + if (is_int && dpl < cpl) + raise_exception_err(13, intno * 8 + 2); + + if (!(e2 & (1 << 15))) + raise_exception_err(11, intno * 8 + 2); + selector = e1 >> 16; + offset = (e2 & 0xffff0000) | (e1 & 0x0000ffff); + if ((selector & 0xfffc) == 0) + raise_exception_err(13, 0); + + if (load_segment(&e1, &e2, selector) != 0) + raise_exception_err(13, selector & 0xfffc); + if (!(e2 & (1 << 12)) || !(e2 & ((1 << 11)))) + raise_exception_err(13, selector & 0xfffc); + dpl = (e2 >> 13) & 3; + if (dpl > cpl) + raise_exception_err(13, selector & 0xfffc); + if (!(e2 & (1 << 15))) + raise_exception_err(11, selector & 0xfffc); + if (!(e2 & (1 << 10)) && dpl < cpl) { + + get_ss_esp_from_tss(&ss, &esp, dpl); + if ((ss & 0xfffc) == 0) + raise_exception_err(10, ss & 0xfffc); + if ((ss & 3) != dpl) + raise_exception_err(10, ss & 0xfffc); + if (load_segment(&ss_e1, &ss_e2, ss) != 0) + raise_exception_err(10, ss & 0xfffc); + ss_dpl = (ss_e2 >> 13) & 3; + if (ss_dpl != dpl) + raise_exception_err(10, ss & 0xfffc); + if (!(ss_e2 & (1 << 12)) || + (ss_e2 & (1 << 11)) || + !(ss_e2 & (1 << 9))) + raise_exception_err(10, ss & 0xfffc); + if (!(ss_e2 & (1 << 15))) + raise_exception_err(10, ss & 0xfffc); + new_stack = 1; + sp_mask = get_sp_mask(ss_e2); + ssp = get_seg_base(ss_e1, ss_e2); + } else if ((e2 & (1 << 10)) || dpl == cpl) { + + if (env->eflags & 0x00020000) + raise_exception_err(13, selector & 0xfffc); + new_stack = 0; + sp_mask = get_sp_mask(env->segs[2].flags); + ssp = env->segs[2].base; + esp = (env->regs[4]); + dpl = cpl; + } else { + raise_exception_err(13, selector & 0xfffc); + new_stack = 0; + sp_mask = 0; + ssp = 0; + esp = 0; + } + + shift = type >> 3; +# 888 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + if (shift == 1) { + if (new_stack) { + if (env->eflags & 0x00020000) { + { esp -= 4; stl_kernel(((uint32_t)((ssp) + (esp & (sp_mask)))), (uint32_t)(env->segs[5].selector));}; + { esp -= 4; stl_kernel(((uint32_t)((ssp) + (esp & (sp_mask)))), (uint32_t)(env->segs[4].selector));}; + { esp -= 4; stl_kernel(((uint32_t)((ssp) + (esp & (sp_mask)))), (uint32_t)(env->segs[3].selector));}; + { esp -= 4; stl_kernel(((uint32_t)((ssp) + (esp & (sp_mask)))), (uint32_t)(env->segs[0].selector));}; + } + { esp -= 4; stl_kernel(((uint32_t)((ssp) + (esp & (sp_mask)))), (uint32_t)(env->segs[2].selector));}; + { esp -= 4; stl_kernel(((uint32_t)((ssp) + (esp & (sp_mask)))), (uint32_t)((env->regs[4])));}; + } + { esp -= 4; stl_kernel(((uint32_t)((ssp) + (esp & (sp_mask)))), (uint32_t)(compute_eflags()));}; + { esp -= 4; stl_kernel(((uint32_t)((ssp) + (esp & (sp_mask)))), (uint32_t)(env->segs[1].selector));}; + { esp -= 4; stl_kernel(((uint32_t)((ssp) + (esp & (sp_mask)))), (uint32_t)(old_eip));}; + if (has_error_code) { + { esp -= 4; stl_kernel(((uint32_t)((ssp) + (esp & (sp_mask)))), (uint32_t)(error_code));}; + } + } else { + if (new_stack) { + if (env->eflags & 0x00020000) { + { esp -= 2; stw_kernel((ssp) + (esp & (sp_mask)), (env->segs[5].selector));}; + { esp -= 2; stw_kernel((ssp) + (esp & (sp_mask)), (env->segs[4].selector));}; + { esp -= 2; stw_kernel((ssp) + (esp & (sp_mask)), (env->segs[3].selector));}; + { esp -= 2; stw_kernel((ssp) + (esp & (sp_mask)), (env->segs[0].selector));}; + } + { esp -= 2; stw_kernel((ssp) + (esp & (sp_mask)), (env->segs[2].selector));}; + { esp -= 2; stw_kernel((ssp) + (esp & (sp_mask)), ((env->regs[4])));}; + } + { esp -= 2; stw_kernel((ssp) + (esp & (sp_mask)), (compute_eflags()));}; + { esp -= 2; stw_kernel((ssp) + (esp & (sp_mask)), (env->segs[1].selector));}; + { esp -= 2; stw_kernel((ssp) + (esp & (sp_mask)), (old_eip));}; + if (has_error_code) { + { esp -= 2; stw_kernel((ssp) + (esp & (sp_mask)), (error_code));}; + } + } + + if (new_stack) { + if (env->eflags & 0x00020000) { + cpu_x86_load_seg_cache(env, 0, 0, 0, 0, 0); + cpu_x86_load_seg_cache(env, 3, 0, 0, 0, 0); + cpu_x86_load_seg_cache(env, 4, 0, 0, 0, 0); + cpu_x86_load_seg_cache(env, 5, 0, 0, 0, 0); + } + ss = (ss & ~3) | dpl; + cpu_x86_load_seg_cache(env, 2, ss, + ssp, get_seg_limit(ss_e1, ss_e2), ss_e2); + } + (env->regs[4]) = ((env->regs[4]) & ~(sp_mask)) | ((esp) & (sp_mask)); + + selector = (selector & ~3) | dpl; + cpu_x86_load_seg_cache(env, 1, selector, + get_seg_base(e1, e2), + get_seg_limit(e1, e2), + e2); + cpu_x86_set_cpl(env, dpl); + env->eip = offset; + + + if ((type & 1) == 0) { + env->eflags &= ~0x00000200; + } + env->eflags &= ~(0x00000100 | 0x00020000 | 0x00010000 | 0x00004000); +} +# 1221 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +static void do_interrupt_real(int intno, int is_int, int error_code, + unsigned int next_eip) +{ + SegmentCache *dt; + target_ulong ptr, ssp; + int selector; + uint32_t offset, esp; + uint32_t old_cs, old_eip; + + + dt = &env->idt; + if (intno * 4 + 3 > dt->limit) + raise_exception_err(13, intno * 8 + 2); + ptr = dt->base + intno * 4; + offset = lduw_kernel(ptr); + selector = lduw_kernel(ptr + 2); + esp = (env->regs[4]); + ssp = env->segs[2].base; + if (is_int) + old_eip = next_eip; + else + old_eip = env->eip; + old_cs = env->segs[1].selector; + + { esp -= 2; stw_kernel((ssp) + (esp & (0xffff)), (compute_eflags()));}; + { esp -= 2; stw_kernel((ssp) + (esp & (0xffff)), (old_cs));}; + { esp -= 2; stw_kernel((ssp) + (esp & (0xffff)), (old_eip));}; + + + (env->regs[4]) = ((env->regs[4]) & ~0xffff) | (esp & 0xffff); + env->eip = offset; + env->segs[1].selector = selector; + env->segs[1].base = (selector << 4); + env->eflags &= ~(0x00000200 | 0x00000100 | 0x00040000 | 0x00010000); +} +# 1291 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +static void handle_even_inj(int intno, int is_int, int error_code, + int is_hw, int rm) +{ + uint32_t event_inj = ldl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.event_inj)); + if (!(event_inj & (1 << 31))) { + int type; + if (is_int) + type = (4 << 8); + else + type = (3 << 8); + event_inj = intno | type | (1 << 31); + if (!rm && exeption_has_error_code(intno)) { + event_inj |= (1 << 11); + stl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.event_inj_err), error_code); + } + stl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.event_inj), event_inj); + } +} + + + + + + + +static void do_interrupt_all(int intno, int is_int, int error_code, + target_ulong next_eip, int is_hw) +{ + if (((loglevel & ((1 << 4))) != 0)) { + if ((env->cr[0] & (1 << 0))) { + static int count; + do { if (logfile) fprintf(logfile,"%6d: v=%02x e=%04x i=%d cpl=%d IP=%04x:" "%08x" " pc=" "%08x" " SP=%04x:" "%08x", count, intno, error_code, is_int, env->hflags & (3 << 0), env->segs[1].selector, (env->eip), (int)env->segs[1].base + (env->eip), env->segs[2].selector, (env->regs[4])); } while (0) + + + + + ; + if (intno == 0x0e) { + do { if (logfile) fprintf(logfile," CR2=" "%08x", env->cr[2]); } while (0); + } else { + do { if (logfile) fprintf(logfile," EAX=" "%08x", (env->regs[0])); } while (0); + } + do { if (logfile) fprintf(logfile,"\n"); } while (0); + cpu_dump_state((env), logfile, fprintf, (0x0002));; +# 1347 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + count++; + } + } + if (env->cr[0] & (1 << 0)) { + + if (env->hflags & (1 << 21)) + handle_even_inj(intno, is_int, error_code, is_hw, 0); + + + + + + + { + do_interrupt_protected(intno, is_int, error_code, next_eip, is_hw); + } + } else { + + if (env->hflags & (1 << 21)) + handle_even_inj(intno, is_int, error_code, is_hw, 1); + + do_interrupt_real(intno, is_int, error_code, next_eip); + } + + + if (env->hflags & (1 << 21)) { + uint32_t event_inj = ldl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.event_inj)); + stl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.event_inj), event_inj & ~(1 << 31)); + } + +} + +void do_interrupt(CPUX86State *env1) +{ + CPUX86State *saved_env; + + saved_env = env; + env = env1; +# 1399 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + do_interrupt_all(env->exception_index, + env->exception_is_int, + env->error_code, + env->exception_next_eip, 0); + + env->old_exception = -1; + + env = saved_env; +} + +void do_interrupt_x86_hardirq(CPUX86State *env1, int intno, int is_hw) +{ + CPUX86State *saved_env; + + saved_env = env; + env = env1; + do_interrupt_all(intno, 0, 0, 0, is_hw); + env = saved_env; +} + + +void qemu_system_reset_request(void); + + + + + + +static int check_exception(int intno, int *error_code) +{ + int first_contributory = env->old_exception == 0 || + (env->old_exception >= 10 && + env->old_exception <= 13); + int second_contributory = intno == 0 || + (intno >= 10 && intno <= 13); + + do { if (loglevel & ((1 << 4))) fprintf(logfile, "check_exception old: 0x%x new 0x%x\n", env->old_exception, intno); } while (0) + ; + + + if (env->old_exception == 8) { + if (env->hflags & (1 << 21)) + helper_vmexit(0x07f, 0); + + do { if (loglevel & ((1 << 9))) fprintf(logfile, "Triple fault\n"); } while (0); + + qemu_system_reset_request(); + return 0x10001; + } + + + if ((first_contributory && second_contributory) + || (env->old_exception == 14 && + (second_contributory || (intno == 14)))) { + intno = 8; + *error_code = 0; + } + + if (second_contributory || (intno == 14) || + (intno == 8)) + env->old_exception = intno; + + return intno; +} + + + + + + + +static void __attribute__ ((__noreturn__)) raise_interrupt(int intno, int is_int, int error_code, + int next_eip_addend) +{ + if (!is_int) { + helper_svm_check_intercept_param(0x040 + intno, error_code); + intno = check_exception(intno, &error_code); + } else { + helper_svm_check_intercept_param(0x075, 0); + } + + env->exception_index = intno; + env->error_code = error_code; + env->exception_is_int = is_int; + env->exception_next_eip = env->eip + next_eip_addend; + cpu_loop_exit(env); +} + + + +static void __attribute__ ((__noreturn__)) raise_exception_err(int exception_index, + int error_code) +{ + raise_interrupt(exception_index, 0, error_code, 0); +} + +void raise_exception_err_env(CPUX86State *nenv, int exception_index, + int error_code) +{ + env = nenv; + raise_interrupt(exception_index, 0, error_code, 0); +} + +static void __attribute__ ((__noreturn__)) raise_exception(int exception_index) +{ + raise_interrupt(exception_index, 0, 0, 0); +} + +void raise_exception_env(int exception_index, CPUX86State *nenv) +{ + env = nenv; + raise_exception(exception_index); +} +# 1532 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +void do_smm_enter(CPUX86State *env1) +{ + target_ulong sm_state; + SegmentCache *dt; + int i, offset; + CPUX86State *saved_env; + + saved_env = env; + env = env1; + + do { if (loglevel & ((1 << 4))) fprintf(logfile, "SMM: enter\n"); } while (0); + do { if (loglevel & ((1 << 4))) cpu_dump_state(((env)), logfile, fprintf, ((0x0002)));; } while (0); + + env->hflags |= (1 << 19); + cpu_smm_update(env); + + sm_state = env->smbase + 0x8000; +# 1600 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + stl_phys(sm_state + 0x7ffc, env->cr[0]); + stl_phys(sm_state + 0x7ff8, env->cr[3]); + stl_phys(sm_state + 0x7ff4, compute_eflags()); + stl_phys(sm_state + 0x7ff0, env->eip); + stl_phys(sm_state + 0x7fec, (env->regs[7])); + stl_phys(sm_state + 0x7fe8, (env->regs[6])); + stl_phys(sm_state + 0x7fe4, (env->regs[5])); + stl_phys(sm_state + 0x7fe0, (env->regs[4])); + stl_phys(sm_state + 0x7fdc, (env->regs[3])); + stl_phys(sm_state + 0x7fd8, (env->regs[2])); + stl_phys(sm_state + 0x7fd4, (env->regs[1])); + stl_phys(sm_state + 0x7fd0, (env->regs[0])); + stl_phys(sm_state + 0x7fcc, env->dr[6]); + stl_phys(sm_state + 0x7fc8, env->dr[7]); + + stl_phys(sm_state + 0x7fc4, env->tr.selector); + stl_phys(sm_state + 0x7f64, env->tr.base); + stl_phys(sm_state + 0x7f60, env->tr.limit); + stl_phys(sm_state + 0x7f5c, (env->tr.flags >> 8) & 0xf0ff); + + stl_phys(sm_state + 0x7fc0, env->ldt.selector); + stl_phys(sm_state + 0x7f80, env->ldt.base); + stl_phys(sm_state + 0x7f7c, env->ldt.limit); + stl_phys(sm_state + 0x7f78, (env->ldt.flags >> 8) & 0xf0ff); + + stl_phys(sm_state + 0x7f74, env->gdt.base); + stl_phys(sm_state + 0x7f70, env->gdt.limit); + + stl_phys(sm_state + 0x7f58, env->idt.base); + stl_phys(sm_state + 0x7f54, env->idt.limit); + + for(i = 0; i < 6; i++) { + dt = &env->segs[i]; + if (i < 3) + offset = 0x7f84 + i * 12; + else + offset = 0x7f2c + (i - 3) * 12; + stl_phys(sm_state + 0x7fa8 + i * 4, dt->selector); + stl_phys(sm_state + offset + 8, dt->base); + stl_phys(sm_state + offset + 4, dt->limit); + stl_phys(sm_state + offset, (dt->flags >> 8) & 0xf0ff); + } + stl_phys(sm_state + 0x7f14, env->cr[4]); + + stl_phys(sm_state + 0x7efc, 0x00020000); + stl_phys(sm_state + 0x7ef8, env->smbase); + + + + + + + load_eflags(0, ~(0x0800 | 0x0080 | 0x0040 | 0x0010 | 0x0004 | 0x0001 | 0x00000400)); + env->eip = 0x00008000; + cpu_x86_load_seg_cache(env, 1, (env->smbase >> 4) & 0xffff, env->smbase, + 0xffffffff, 0); + cpu_x86_load_seg_cache(env, 3, 0, 0, 0xffffffff, 0); + cpu_x86_load_seg_cache(env, 0, 0, 0, 0xffffffff, 0); + cpu_x86_load_seg_cache(env, 2, 0, 0, 0xffffffff, 0); + cpu_x86_load_seg_cache(env, 4, 0, 0, 0xffffffff, 0); + cpu_x86_load_seg_cache(env, 5, 0, 0, 0xffffffff, 0); + + cpu_x86_update_cr0(env, + env->cr[0] & ~((1 << 0) | (1 << 2) | (1 << 3) | (1 << 31))); + cpu_x86_update_cr4(env, 0); + env->dr[7] = 0x00000400; + (env->cc_op) = CC_OP_EFLAGS; + env = saved_env; +} + +void helper_rsm(void) +{ + target_ulong sm_state; + int i, offset; + uint32_t val; + + sm_state = env->smbase + 0x8000; +# 1730 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + cpu_x86_update_cr0(env, ldl_phys(sm_state + 0x7ffc)); + cpu_x86_update_cr3(env, ldl_phys(sm_state + 0x7ff8)); + load_eflags(ldl_phys(sm_state + 0x7ff4), + ~(0x0800 | 0x0080 | 0x0040 | 0x0010 | 0x0004 | 0x0001 | 0x00000400)); + env->eip = ldl_phys(sm_state + 0x7ff0); + (env->regs[7]) = ldl_phys(sm_state + 0x7fec); + (env->regs[6]) = ldl_phys(sm_state + 0x7fe8); + (env->regs[5]) = ldl_phys(sm_state + 0x7fe4); + (env->regs[4]) = ldl_phys(sm_state + 0x7fe0); + (env->regs[3]) = ldl_phys(sm_state + 0x7fdc); + (env->regs[2]) = ldl_phys(sm_state + 0x7fd8); + (env->regs[1]) = ldl_phys(sm_state + 0x7fd4); + (env->regs[0]) = ldl_phys(sm_state + 0x7fd0); + env->dr[6] = ldl_phys(sm_state + 0x7fcc); + env->dr[7] = ldl_phys(sm_state + 0x7fc8); + + env->tr.selector = ldl_phys(sm_state + 0x7fc4) & 0xffff; + env->tr.base = ldl_phys(sm_state + 0x7f64); + env->tr.limit = ldl_phys(sm_state + 0x7f60); + env->tr.flags = (ldl_phys(sm_state + 0x7f5c) & 0xf0ff) << 8; + + env->ldt.selector = ldl_phys(sm_state + 0x7fc0) & 0xffff; + env->ldt.base = ldl_phys(sm_state + 0x7f80); + env->ldt.limit = ldl_phys(sm_state + 0x7f7c); + env->ldt.flags = (ldl_phys(sm_state + 0x7f78) & 0xf0ff) << 8; + + env->gdt.base = ldl_phys(sm_state + 0x7f74); + env->gdt.limit = ldl_phys(sm_state + 0x7f70); + + env->idt.base = ldl_phys(sm_state + 0x7f58); + env->idt.limit = ldl_phys(sm_state + 0x7f54); + + for(i = 0; i < 6; i++) { + if (i < 3) + offset = 0x7f84 + i * 12; + else + offset = 0x7f2c + (i - 3) * 12; + cpu_x86_load_seg_cache(env, i, + ldl_phys(sm_state + 0x7fa8 + i * 4) & 0xffff, + ldl_phys(sm_state + offset + 8), + ldl_phys(sm_state + offset + 4), + (ldl_phys(sm_state + offset) & 0xf0ff) << 8); + } + cpu_x86_update_cr4(env, ldl_phys(sm_state + 0x7f14)); + + val = ldl_phys(sm_state + 0x7efc); + if (val & 0x20000) { + env->smbase = ldl_phys(sm_state + 0x7ef8) & ~0x7fff; + } + + (env->cc_op) = CC_OP_EFLAGS; + env->hflags &= ~(1 << 19); + cpu_smm_update(env); + + do { if (loglevel & ((1 << 4))) fprintf(logfile, "SMM: after RSM\n"); } while (0); + do { if (loglevel & ((1 << 4))) cpu_dump_state(((env)), logfile, fprintf, ((0x0002)));; } while (0); +} + + + + + + +void helper_divb_AL(target_ulong t0) +{ + unsigned int num, den, q, r; + + num = ((env->regs[0]) & 0xffff); + den = (t0 & 0xff); + if (den == 0) { + raise_exception(0); + } + q = (num / den); + if (q > 0xff) + raise_exception(0); + q &= 0xff; + r = (num % den) & 0xff; + (env->regs[0]) = ((env->regs[0]) & ~0xffff) | (r << 8) | q; +} + +void helper_idivb_AL(target_ulong t0) +{ + int num, den, q, r; + + num = (int16_t)(env->regs[0]); + den = (int8_t)t0; + if (den == 0) { + raise_exception(0); + } + q = (num / den); + if (q != (int8_t)q) + raise_exception(0); + q &= 0xff; + r = (num % den) & 0xff; + (env->regs[0]) = ((env->regs[0]) & ~0xffff) | (r << 8) | q; +} + +void helper_divw_AX(target_ulong t0) +{ + unsigned int num, den, q, r; + + num = ((env->regs[0]) & 0xffff) | (((env->regs[2]) & 0xffff) << 16); + den = (t0 & 0xffff); + if (den == 0) { + raise_exception(0); + } + q = (num / den); + if (q > 0xffff) + raise_exception(0); + q &= 0xffff; + r = (num % den) & 0xffff; + (env->regs[0]) = ((env->regs[0]) & ~0xffff) | q; + (env->regs[2]) = ((env->regs[2]) & ~0xffff) | r; +} + +void helper_idivw_AX(target_ulong t0) +{ + int num, den, q, r; + + num = ((env->regs[0]) & 0xffff) | (((env->regs[2]) & 0xffff) << 16); + den = (int16_t)t0; + if (den == 0) { + raise_exception(0); + } + q = (num / den); + if (q != (int16_t)q) + raise_exception(0); + q &= 0xffff; + r = (num % den) & 0xffff; + (env->regs[0]) = ((env->regs[0]) & ~0xffff) | q; + (env->regs[2]) = ((env->regs[2]) & ~0xffff) | r; +} + +void helper_divl_EAX(target_ulong t0) +{ + unsigned int den, r; + uint64_t num, q; + + num = ((uint32_t)(env->regs[0])) | ((uint64_t)((uint32_t)(env->regs[2])) << 32); + den = t0; + if (den == 0) { + raise_exception(0); + } + q = (num / den); + r = (num % den); + if (q > 0xffffffff) + raise_exception(0); + (env->regs[0]) = (uint32_t)q; + (env->regs[2]) = (uint32_t)r; +} + +void helper_idivl_EAX(target_ulong t0) +{ + int den, r; + int64_t num, q; + + num = ((uint32_t)(env->regs[0])) | ((uint64_t)((uint32_t)(env->regs[2])) << 32); + den = t0; + if (den == 0) { + raise_exception(0); + } + q = (num / den); + r = (num % den); + if (q != (int32_t)q) + raise_exception(0); + (env->regs[0]) = (uint32_t)q; + (env->regs[2]) = (uint32_t)r; +} + + + + +void helper_aam(int base) +{ + int al, ah; + al = (env->regs[0]) & 0xff; + ah = al / base; + al = al % base; + (env->regs[0]) = ((env->regs[0]) & ~0xffff) | al | (ah << 8); + (env->cc_dst) = al; +} + +void helper_aad(int base) +{ + int al, ah; + al = (env->regs[0]) & 0xff; + ah = ((env->regs[0]) >> 8) & 0xff; + al = ((ah * base) + al) & 0xff; + (env->regs[0]) = ((env->regs[0]) & ~0xffff) | al; + (env->cc_dst) = al; +} + +void helper_aaa(void) +{ + int icarry; + int al, ah, af; + int eflags; + + eflags = helper_cc_compute_all((env->cc_op)); + af = eflags & 0x0010; + al = (env->regs[0]) & 0xff; + ah = ((env->regs[0]) >> 8) & 0xff; + + icarry = (al > 0xf9); + if (((al & 0x0f) > 9 ) || af) { + al = (al + 6) & 0x0f; + ah = (ah + 1 + icarry) & 0xff; + eflags |= 0x0001 | 0x0010; + } else { + eflags &= ~(0x0001 | 0x0010); + al &= 0x0f; + } + (env->regs[0]) = ((env->regs[0]) & ~0xffff) | al | (ah << 8); + (env->cc_src) = eflags; +} + +void helper_aas(void) +{ + int icarry; + int al, ah, af; + int eflags; + + eflags = helper_cc_compute_all((env->cc_op)); + af = eflags & 0x0010; + al = (env->regs[0]) & 0xff; + ah = ((env->regs[0]) >> 8) & 0xff; + + icarry = (al < 6); + if (((al & 0x0f) > 9 ) || af) { + al = (al - 6) & 0x0f; + ah = (ah - 1 - icarry) & 0xff; + eflags |= 0x0001 | 0x0010; + } else { + eflags &= ~(0x0001 | 0x0010); + al &= 0x0f; + } + (env->regs[0]) = ((env->regs[0]) & ~0xffff) | al | (ah << 8); + (env->cc_src) = eflags; +} + +void helper_daa(void) +{ + int old_al, al, af, cf; + int eflags; + + eflags = helper_cc_compute_all((env->cc_op)); + cf = eflags & 0x0001; + af = eflags & 0x0010; + old_al = al = (env->regs[0]) & 0xff; + + eflags = 0; + if (((al & 0x0f) > 9 ) || af) { + al = (al + 6) & 0xff; + eflags |= 0x0010; + } + if ((old_al > 0x99) || cf) { + al = (al + 0x60) & 0xff; + eflags |= 0x0001; + } + (env->regs[0]) = ((env->regs[0]) & ~0xff) | al; + + eflags |= (al == 0) << 6; + eflags |= parity_table[al]; + eflags |= (al & 0x80); + (env->cc_src) = eflags; +} + +void helper_das(void) +{ + int al, al1, af, cf; + int eflags; + + eflags = helper_cc_compute_all((env->cc_op)); + cf = eflags & 0x0001; + af = eflags & 0x0010; + al = (env->regs[0]) & 0xff; + + eflags = 0; + al1 = al; + if (((al & 0x0f) > 9 ) || af) { + eflags |= 0x0010; + if (al < 6 || cf) + eflags |= 0x0001; + al = (al - 6) & 0xff; + } + if ((al1 > 0x99) || cf) { + al = (al - 0x60) & 0xff; + eflags |= 0x0001; + } + (env->regs[0]) = ((env->regs[0]) & ~0xff) | al; + + eflags |= (al == 0) << 6; + eflags |= parity_table[al]; + eflags |= (al & 0x80); + (env->cc_src) = eflags; +} + +void helper_into(int next_eip_addend) +{ + int eflags; + eflags = helper_cc_compute_all((env->cc_op)); + if (eflags & 0x0800) { + raise_interrupt(4, 1, 0, next_eip_addend); + } +} + +void helper_cmpxchg8b(target_ulong a0) +{ + uint64_t d; + int eflags; + + eflags = helper_cc_compute_all((env->cc_op)); + d = ldq_data(a0); + if (d == (((uint64_t)(env->regs[2]) << 32) | (uint32_t)(env->regs[0]))) { + stq_data(a0, ((uint64_t)(env->regs[1]) << 32) | (uint32_t)(env->regs[3])); + eflags |= 0x0040; + } else { + + stq_data(a0, d); + (env->regs[2]) = (uint32_t)(d >> 32); + (env->regs[0]) = (uint32_t)d; + eflags &= ~0x0040; + } + (env->cc_src) = eflags; +} +# 2083 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +void helper_single_step(void) +{ + + check_hw_breakpoints(env, 1); + env->dr[6] |= (1 << 14); + + raise_exception(1); +} + +void helper_cpuid(void) +{ + uint32_t eax, ebx, ecx, edx; + + helper_svm_check_intercept_param(0x072, 0); + + cpu_x86_cpuid(env, (uint32_t)(env->regs[0]), (uint32_t)(env->regs[1]), &eax, &ebx, &ecx, &edx); + (env->regs[0]) = eax; + (env->regs[3]) = ebx; + (env->regs[1]) = ecx; + (env->regs[2]) = edx; +} + +void helper_enter_level(int level, int data32, target_ulong t1) +{ + target_ulong ssp; + uint32_t esp_mask, esp, ebp; + + esp_mask = get_sp_mask(env->segs[2].flags); + ssp = env->segs[2].base; + ebp = (env->regs[5]); + esp = (env->regs[4]); + if (data32) { + + esp -= 4; + while (--level) { + esp -= 4; + ebp -= 4; + stl_data(ssp + (esp & esp_mask), ldl_data(ssp + (ebp & esp_mask))); + } + esp -= 4; + stl_data(ssp + (esp & esp_mask), t1); + } else { + + esp -= 2; + while (--level) { + esp -= 2; + ebp -= 2; + stw_data(ssp + (esp & esp_mask), lduw_data(ssp + (ebp & esp_mask))); + } + esp -= 2; + stw_data(ssp + (esp & esp_mask), t1); + } +} +# 2168 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +void helper_lldt(int selector) +{ + SegmentCache *dt; + uint32_t e1, e2; + int index, entry_limit; + target_ulong ptr; + + selector &= 0xffff; + if ((selector & 0xfffc) == 0) { + + env->ldt.base = 0; + env->ldt.limit = 0; + } else { + if (selector & 0x4) + raise_exception_err(13, selector & 0xfffc); + dt = &env->gdt; + index = selector & ~7; + + + + + + entry_limit = 7; + if ((index + entry_limit) > dt->limit) + raise_exception_err(13, selector & 0xfffc); + ptr = dt->base + index; + e1 = ldl_kernel(ptr); + e2 = ldl_kernel(ptr + 4); + if ((e2 & (1 << 12)) || ((e2 >> 8) & 0xf) != 2) + raise_exception_err(13, selector & 0xfffc); + if (!(e2 & (1 << 15))) + raise_exception_err(11, selector & 0xfffc); +# 2208 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + { + load_seg_cache_raw_dt(&env->ldt, e1, e2); + } + } + env->ldt.selector = selector; +} + +void helper_ltr(int selector) +{ + SegmentCache *dt; + uint32_t e1, e2; + int index, type, entry_limit; + target_ulong ptr; + + selector &= 0xffff; + if ((selector & 0xfffc) == 0) { + + env->tr.base = 0; + env->tr.limit = 0; + env->tr.flags = 0; + } else { + if (selector & 0x4) + raise_exception_err(13, selector & 0xfffc); + dt = &env->gdt; + index = selector & ~7; + + + + + + entry_limit = 7; + if ((index + entry_limit) > dt->limit) + raise_exception_err(13, selector & 0xfffc); + ptr = dt->base + index; + e1 = ldl_kernel(ptr); + e2 = ldl_kernel(ptr + 4); + type = (e2 >> 8) & 0xf; + if ((e2 & (1 << 12)) || + (type != 1 && type != 9)) + raise_exception_err(13, selector & 0xfffc); + if (!(e2 & (1 << 15))) + raise_exception_err(11, selector & 0xfffc); +# 2261 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + { + load_seg_cache_raw_dt(&env->tr, e1, e2); + } + e2 |= (1 << 9); + stl_kernel(ptr + 4, e2); + } + env->tr.selector = selector; +} + + +void helper_load_seg(int seg_reg, int selector) +{ + uint32_t e1, e2; + int cpl, dpl, rpl; + SegmentCache *dt; + int index; + target_ulong ptr; + + selector &= 0xffff; + cpl = env->hflags & (3 << 0); + if ((selector & 0xfffc) == 0) { + + if (seg_reg == 2 + + + + ) + raise_exception_err(13, 0); + cpu_x86_load_seg_cache(env, seg_reg, selector, 0, 0, 0); + } else { + + if (selector & 0x4) + dt = &env->ldt; + else + dt = &env->gdt; + index = selector & ~7; + if ((index + 7) > dt->limit) + raise_exception_err(13, selector & 0xfffc); + ptr = dt->base + index; + e1 = ldl_kernel(ptr); + e2 = ldl_kernel(ptr + 4); + + if (!(e2 & (1 << 12))) + raise_exception_err(13, selector & 0xfffc); + rpl = selector & 3; + dpl = (e2 >> 13) & 3; + if (seg_reg == 2) { + + if ((e2 & (1 << 11)) || !(e2 & (1 << 9))) + raise_exception_err(13, selector & 0xfffc); + if (rpl != cpl || dpl != cpl) + raise_exception_err(13, selector & 0xfffc); + } else { + + if ((e2 & ((1 << 11) | (1 << 9))) == (1 << 11)) + raise_exception_err(13, selector & 0xfffc); + + if (!(e2 & (1 << 11)) || !(e2 & (1 << 10))) { + + if (dpl < cpl || dpl < rpl) + raise_exception_err(13, selector & 0xfffc); + } + } + + if (!(e2 & (1 << 15))) { + if (seg_reg == 2) + raise_exception_err(12, selector & 0xfffc); + else + raise_exception_err(11, selector & 0xfffc); + } + + + if (!(e2 & (1 << 8))) { + e2 |= (1 << 8); + stl_kernel(ptr + 4, e2); + } + + cpu_x86_load_seg_cache(env, seg_reg, selector, + get_seg_base(e1, e2), + get_seg_limit(e1, e2), + e2); + + + + + } +} + + +void helper_ljmp_protected(int new_cs, target_ulong new_eip, + int next_eip_addend) +{ + int gate_cs, type; + uint32_t e1, e2, cpl, dpl, rpl, limit; + target_ulong next_eip; + + if ((new_cs & 0xfffc) == 0) + raise_exception_err(13, 0); + if (load_segment(&e1, &e2, new_cs) != 0) + raise_exception_err(13, new_cs & 0xfffc); + cpl = env->hflags & (3 << 0); + if (e2 & (1 << 12)) { + if (!(e2 & (1 << 11))) + raise_exception_err(13, new_cs & 0xfffc); + dpl = (e2 >> 13) & 3; + if (e2 & (1 << 10)) { + + if (dpl > cpl) + raise_exception_err(13, new_cs & 0xfffc); + } else { + + rpl = new_cs & 3; + if (rpl > cpl) + raise_exception_err(13, new_cs & 0xfffc); + if (dpl != cpl) + raise_exception_err(13, new_cs & 0xfffc); + } + if (!(e2 & (1 << 15))) + raise_exception_err(11, new_cs & 0xfffc); + limit = get_seg_limit(e1, e2); + if (new_eip > limit && + !(env->hflags & (1 << 14)) && !(e2 & (1 << 21))) + raise_exception_err(13, new_cs & 0xfffc); + cpu_x86_load_seg_cache(env, 1, (new_cs & 0xfffc) | cpl, + get_seg_base(e1, e2), limit, e2); + (env->eip) = new_eip; + } else { + + dpl = (e2 >> 13) & 3; + rpl = new_cs & 3; + cpl = env->hflags & (3 << 0); + type = (e2 >> 8) & 0xf; + switch(type) { + case 1: + case 9: + case 5: + if (dpl < cpl || dpl < rpl) + raise_exception_err(13, new_cs & 0xfffc); + next_eip = env->eip + next_eip_addend; + switch_tss(new_cs, e1, e2, 0, next_eip); + (env->cc_op) = CC_OP_EFLAGS; + break; + case 4: + case 12: + if ((dpl < cpl) || (dpl < rpl)) + raise_exception_err(13, new_cs & 0xfffc); + if (!(e2 & (1 << 15))) + raise_exception_err(11, new_cs & 0xfffc); + gate_cs = e1 >> 16; + new_eip = (e1 & 0xffff); + if (type == 12) + new_eip |= (e2 & 0xffff0000); + if (load_segment(&e1, &e2, gate_cs) != 0) + raise_exception_err(13, gate_cs & 0xfffc); + dpl = (e2 >> 13) & 3; + + if (((e2 & ((1 << 12) | (1 << 11))) != + ((1 << 12) | (1 << 11)))) + raise_exception_err(13, gate_cs & 0xfffc); + if (((e2 & (1 << 10)) && (dpl > cpl)) || + (!(e2 & (1 << 10)) && (dpl != cpl))) + raise_exception_err(13, gate_cs & 0xfffc); + if (!(e2 & (1 << 15))) + raise_exception_err(13, gate_cs & 0xfffc); + limit = get_seg_limit(e1, e2); + if (new_eip > limit) + raise_exception_err(13, 0); + cpu_x86_load_seg_cache(env, 1, (gate_cs & 0xfffc) | cpl, + get_seg_base(e1, e2), limit, e2); + (env->eip) = new_eip; + break; + default: + raise_exception_err(13, new_cs & 0xfffc); + break; + } + } +} + + +void helper_lcall_real(int new_cs, target_ulong new_eip1, + int shift, int next_eip) +{ + int new_eip; + uint32_t esp, esp_mask; + target_ulong ssp; + + new_eip = new_eip1; + esp = (env->regs[4]); + esp_mask = get_sp_mask(env->segs[2].flags); + ssp = env->segs[2].base; + if (shift) { + { esp -= 4; stl_kernel(((uint32_t)((ssp) + (esp & (esp_mask)))), (uint32_t)(env->segs[1].selector));}; + { esp -= 4; stl_kernel(((uint32_t)((ssp) + (esp & (esp_mask)))), (uint32_t)(next_eip));}; + } else { + { esp -= 2; stw_kernel((ssp) + (esp & (esp_mask)), (env->segs[1].selector));}; + { esp -= 2; stw_kernel((ssp) + (esp & (esp_mask)), (next_eip));}; + } + + (env->regs[4]) = ((env->regs[4]) & ~(esp_mask)) | ((esp) & (esp_mask)); + env->eip = new_eip; + env->segs[1].selector = new_cs; + env->segs[1].base = (new_cs << 4); +} + + +void helper_lcall_protected(int new_cs, target_ulong new_eip, + int shift, int next_eip_addend) +{ + int new_stack, i; + uint32_t e1, e2, cpl, dpl, rpl, selector, offset, param_count; + uint32_t ss = 0, ss_e1 = 0, ss_e2 = 0, sp, type, ss_dpl, sp_mask; + uint32_t val, limit, old_sp_mask; + target_ulong ssp, old_ssp, next_eip; + + next_eip = env->eip + next_eip_addend; + do { } while (0); + do { } while (0); + if ((new_cs & 0xfffc) == 0) + raise_exception_err(13, 0); + if (load_segment(&e1, &e2, new_cs) != 0) + raise_exception_err(13, new_cs & 0xfffc); + cpl = env->hflags & (3 << 0); + do { } while (0); + if (e2 & (1 << 12)) { + if (!(e2 & (1 << 11))) + raise_exception_err(13, new_cs & 0xfffc); + dpl = (e2 >> 13) & 3; + if (e2 & (1 << 10)) { + + if (dpl > cpl) + raise_exception_err(13, new_cs & 0xfffc); + } else { + + rpl = new_cs & 3; + if (rpl > cpl) + raise_exception_err(13, new_cs & 0xfffc); + if (dpl != cpl) + raise_exception_err(13, new_cs & 0xfffc); + } + if (!(e2 & (1 << 15))) + raise_exception_err(11, new_cs & 0xfffc); +# 2519 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + { + sp = (env->regs[4]); + sp_mask = get_sp_mask(env->segs[2].flags); + ssp = env->segs[2].base; + if (shift) { + { sp -= 4; stl_kernel(((uint32_t)((ssp) + (sp & (sp_mask)))), (uint32_t)(env->segs[1].selector));}; + { sp -= 4; stl_kernel(((uint32_t)((ssp) + (sp & (sp_mask)))), (uint32_t)(next_eip));}; + } else { + { sp -= 2; stw_kernel((ssp) + (sp & (sp_mask)), (env->segs[1].selector));}; + { sp -= 2; stw_kernel((ssp) + (sp & (sp_mask)), (next_eip));}; + } + + limit = get_seg_limit(e1, e2); + if (new_eip > limit) + raise_exception_err(13, new_cs & 0xfffc); + + (env->regs[4]) = ((env->regs[4]) & ~(sp_mask)) | ((sp) & (sp_mask)); + cpu_x86_load_seg_cache(env, 1, (new_cs & 0xfffc) | cpl, + get_seg_base(e1, e2), limit, e2); + (env->eip) = new_eip; + } + } else { + + type = (e2 >> 8) & 0x1f; + dpl = (e2 >> 13) & 3; + rpl = new_cs & 3; + switch(type) { + case 1: + case 9: + case 5: + if (dpl < cpl || dpl < rpl) + raise_exception_err(13, new_cs & 0xfffc); + switch_tss(new_cs, e1, e2, 2, next_eip); + (env->cc_op) = CC_OP_EFLAGS; + return; + case 4: + case 12: + break; + default: + raise_exception_err(13, new_cs & 0xfffc); + break; + } + shift = type >> 3; + + if (dpl < cpl || dpl < rpl) + raise_exception_err(13, new_cs & 0xfffc); + + if (!(e2 & (1 << 15))) + raise_exception_err(11, new_cs & 0xfffc); + selector = e1 >> 16; + offset = (e2 & 0xffff0000) | (e1 & 0x0000ffff); + param_count = e2 & 0x1f; + if ((selector & 0xfffc) == 0) + raise_exception_err(13, 0); + + if (load_segment(&e1, &e2, selector) != 0) + raise_exception_err(13, selector & 0xfffc); + if (!(e2 & (1 << 12)) || !(e2 & ((1 << 11)))) + raise_exception_err(13, selector & 0xfffc); + dpl = (e2 >> 13) & 3; + if (dpl > cpl) + raise_exception_err(13, selector & 0xfffc); + if (!(e2 & (1 << 15))) + raise_exception_err(11, selector & 0xfffc); + + if (!(e2 & (1 << 10)) && dpl < cpl) { + + get_ss_esp_from_tss(&ss, &sp, dpl); + do { } while (0) + ; + if ((ss & 0xfffc) == 0) + raise_exception_err(10, ss & 0xfffc); + if ((ss & 3) != dpl) + raise_exception_err(10, ss & 0xfffc); + if (load_segment(&ss_e1, &ss_e2, ss) != 0) + raise_exception_err(10, ss & 0xfffc); + ss_dpl = (ss_e2 >> 13) & 3; + if (ss_dpl != dpl) + raise_exception_err(10, ss & 0xfffc); + if (!(ss_e2 & (1 << 12)) || + (ss_e2 & (1 << 11)) || + !(ss_e2 & (1 << 9))) + raise_exception_err(10, ss & 0xfffc); + if (!(ss_e2 & (1 << 15))) + raise_exception_err(10, ss & 0xfffc); + + + + old_sp_mask = get_sp_mask(env->segs[2].flags); + old_ssp = env->segs[2].base; + + sp_mask = get_sp_mask(ss_e2); + ssp = get_seg_base(ss_e1, ss_e2); + if (shift) { + { sp -= 4; stl_kernel(((uint32_t)((ssp) + (sp & (sp_mask)))), (uint32_t)(env->segs[2].selector));}; + { sp -= 4; stl_kernel(((uint32_t)((ssp) + (sp & (sp_mask)))), (uint32_t)((env->regs[4])));}; + for(i = param_count - 1; i >= 0; i--) { + val = ldl_kernel(old_ssp + (((env->regs[4]) + i * 4) & old_sp_mask)); + { sp -= 4; stl_kernel(((uint32_t)((ssp) + (sp & (sp_mask)))), (uint32_t)(val));}; + } + } else { + { sp -= 2; stw_kernel((ssp) + (sp & (sp_mask)), (env->segs[2].selector));}; + { sp -= 2; stw_kernel((ssp) + (sp & (sp_mask)), ((env->regs[4])));}; + for(i = param_count - 1; i >= 0; i--) { + val = lduw_kernel(old_ssp + (((env->regs[4]) + i * 2) & old_sp_mask)); + { sp -= 2; stw_kernel((ssp) + (sp & (sp_mask)), (val));}; + } + } + new_stack = 1; + } else { + + sp = (env->regs[4]); + sp_mask = get_sp_mask(env->segs[2].flags); + ssp = env->segs[2].base; + + new_stack = 0; + } + + if (shift) { + { sp -= 4; stl_kernel(((uint32_t)((ssp) + (sp & (sp_mask)))), (uint32_t)(env->segs[1].selector));}; + { sp -= 4; stl_kernel(((uint32_t)((ssp) + (sp & (sp_mask)))), (uint32_t)(next_eip));}; + } else { + { sp -= 2; stw_kernel((ssp) + (sp & (sp_mask)), (env->segs[1].selector));}; + { sp -= 2; stw_kernel((ssp) + (sp & (sp_mask)), (next_eip));}; + } + + + + if (new_stack) { + ss = (ss & ~3) | dpl; + cpu_x86_load_seg_cache(env, 2, ss, + ssp, + get_seg_limit(ss_e1, ss_e2), + ss_e2); + } + + selector = (selector & ~3) | dpl; + cpu_x86_load_seg_cache(env, 1, selector, + get_seg_base(e1, e2), + get_seg_limit(e1, e2), + e2); + cpu_x86_set_cpl(env, dpl); + (env->regs[4]) = ((env->regs[4]) & ~(sp_mask)) | ((sp) & (sp_mask)); + (env->eip) = offset; + } +} + + +void helper_iret_real(int shift) +{ + uint32_t sp, new_cs, new_eip, new_eflags, sp_mask; + target_ulong ssp; + int eflags_mask; + + sp_mask = 0xffff; + sp = (env->regs[4]); + ssp = env->segs[2].base; + if (shift == 1) { + + { new_eip = (uint32_t)ldl_kernel(((uint32_t)((ssp) + (sp & (sp_mask))))); sp += 4;}; + { new_cs = (uint32_t)ldl_kernel(((uint32_t)((ssp) + (sp & (sp_mask))))); sp += 4;}; + new_cs &= 0xffff; + { new_eflags = (uint32_t)ldl_kernel(((uint32_t)((ssp) + (sp & (sp_mask))))); sp += 4;}; + } else { + + { new_eip = lduw_kernel((ssp) + (sp & (sp_mask))); sp += 2;}; + { new_cs = lduw_kernel((ssp) + (sp & (sp_mask))); sp += 2;}; + { new_eflags = lduw_kernel((ssp) + (sp & (sp_mask))); sp += 2;}; + } + (env->regs[4]) = ((env->regs[4]) & ~sp_mask) | (sp & sp_mask); + env->segs[1].selector = new_cs; + env->segs[1].base = (new_cs << 4); + env->eip = new_eip; + if (env->eflags & 0x00020000) + eflags_mask = 0x00000100 | 0x00040000 | 0x00200000 | 0x00000200 | 0x00010000 | 0x00004000; + else + eflags_mask = 0x00000100 | 0x00040000 | 0x00200000 | 0x00000200 | 0x00003000 | 0x00010000 | 0x00004000; + if (shift == 0) + eflags_mask &= 0xffff; + load_eflags(new_eflags, eflags_mask); + env->hflags2 &= ~(1 << 2); +} + +static __attribute__ (( always_inline )) __inline__ void validate_seg(int seg_reg, int cpl) +{ + int dpl; + uint32_t e2; + + + + + if ((seg_reg == 4 || seg_reg == 5) && + (env->segs[seg_reg].selector & 0xfffc) == 0) + return; + + e2 = env->segs[seg_reg].flags; + dpl = (e2 >> 13) & 3; + if (!(e2 & (1 << 11)) || !(e2 & (1 << 10))) { + + if (dpl < cpl) { + cpu_x86_load_seg_cache(env, seg_reg, 0, 0, 0, 0); + } + } +} + + +static __attribute__ (( always_inline )) __inline__ void helper_ret_protected(int shift, int is_iret, int addend) +{ + uint32_t new_cs, new_eflags, new_ss; + uint32_t new_es, new_ds, new_fs, new_gs; + uint32_t e1, e2, ss_e1, ss_e2; + int cpl, dpl, rpl, eflags_mask, iopl; + target_ulong ssp, sp, new_eip, new_esp, sp_mask; + + + + + + + sp_mask = get_sp_mask(env->segs[2].flags); + sp = (env->regs[4]); + ssp = env->segs[2].base; + new_eflags = 0; +# 2752 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + if (shift == 1) { + + { new_eip = (uint32_t)ldl_kernel(((uint32_t)((ssp) + (sp & (sp_mask))))); sp += 4;}; + { new_cs = (uint32_t)ldl_kernel(((uint32_t)((ssp) + (sp & (sp_mask))))); sp += 4;}; + new_cs &= 0xffff; + if (is_iret) { + { new_eflags = (uint32_t)ldl_kernel(((uint32_t)((ssp) + (sp & (sp_mask))))); sp += 4;}; + if (new_eflags & 0x00020000) + goto return_to_vm86; + } + } else { + + { new_eip = lduw_kernel((ssp) + (sp & (sp_mask))); sp += 2;}; + { new_cs = lduw_kernel((ssp) + (sp & (sp_mask))); sp += 2;}; + if (is_iret) + { new_eflags = lduw_kernel((ssp) + (sp & (sp_mask))); sp += 2;}; + } + do { } while (0) + ; + do { } while (0); + if ((new_cs & 0xfffc) == 0) + raise_exception_err(13, new_cs & 0xfffc); + if (load_segment(&e1, &e2, new_cs) != 0) + raise_exception_err(13, new_cs & 0xfffc); + if (!(e2 & (1 << 12)) || + !(e2 & (1 << 11))) + raise_exception_err(13, new_cs & 0xfffc); + cpl = env->hflags & (3 << 0); + rpl = new_cs & 3; + if (rpl < cpl) + raise_exception_err(13, new_cs & 0xfffc); + dpl = (e2 >> 13) & 3; + if (e2 & (1 << 10)) { + if (dpl > rpl) + raise_exception_err(13, new_cs & 0xfffc); + } else { + if (dpl != rpl) + raise_exception_err(13, new_cs & 0xfffc); + } + if (!(e2 & (1 << 15))) + raise_exception_err(11, new_cs & 0xfffc); + + sp += addend; + if (rpl == cpl && (!(env->hflags & (1 << 15)) || + ((env->hflags & (1 << 15)) && !is_iret))) { + + cpu_x86_load_seg_cache(env, 1, new_cs, + get_seg_base(e1, e2), + get_seg_limit(e1, e2), + e2); + } else { +# 2811 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + if (shift == 1) { + + { new_esp = (uint32_t)ldl_kernel(((uint32_t)((ssp) + (sp & (sp_mask))))); sp += 4;}; + { new_ss = (uint32_t)ldl_kernel(((uint32_t)((ssp) + (sp & (sp_mask))))); sp += 4;}; + new_ss &= 0xffff; + } else { + + { new_esp = lduw_kernel((ssp) + (sp & (sp_mask))); sp += 2;}; + { new_ss = lduw_kernel((ssp) + (sp & (sp_mask))); sp += 2;}; + } + do { } while (0) + ; + if ((new_ss & 0xfffc) == 0) { +# 2836 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + { + raise_exception_err(13, 0); + } + } else { + if ((new_ss & 3) != rpl) + raise_exception_err(13, new_ss & 0xfffc); + if (load_segment(&ss_e1, &ss_e2, new_ss) != 0) + raise_exception_err(13, new_ss & 0xfffc); + if (!(ss_e2 & (1 << 12)) || + (ss_e2 & (1 << 11)) || + !(ss_e2 & (1 << 9))) + raise_exception_err(13, new_ss & 0xfffc); + dpl = (ss_e2 >> 13) & 3; + if (dpl != rpl) + raise_exception_err(13, new_ss & 0xfffc); + if (!(ss_e2 & (1 << 15))) + raise_exception_err(11, new_ss & 0xfffc); + cpu_x86_load_seg_cache(env, 2, new_ss, + get_seg_base(ss_e1, ss_e2), + get_seg_limit(ss_e1, ss_e2), + ss_e2); + } + + cpu_x86_load_seg_cache(env, 1, new_cs, + get_seg_base(e1, e2), + get_seg_limit(e1, e2), + e2); + cpu_x86_set_cpl(env, rpl); + sp = new_esp; + + + + + + sp_mask = get_sp_mask(ss_e2); + + + validate_seg(0, rpl); + validate_seg(3, rpl); + validate_seg(4, rpl); + validate_seg(5, rpl); + + sp += addend; + } + (env->regs[4]) = ((env->regs[4]) & ~(sp_mask)) | ((sp) & (sp_mask)); + env->eip = new_eip; + if (is_iret) { + + eflags_mask = 0x00000100 | 0x00040000 | 0x00200000 | 0x00010000 | 0x00004000; + if (cpl == 0) + eflags_mask |= 0x00003000; + iopl = (env->eflags >> 12) & 3; + if (cpl <= iopl) + eflags_mask |= 0x00000200; + if (shift == 0) + eflags_mask &= 0xffff; + load_eflags(new_eflags, eflags_mask); + } + return; + + return_to_vm86: + { new_esp = (uint32_t)ldl_kernel(((uint32_t)((ssp) + (sp & (sp_mask))))); sp += 4;}; + { new_ss = (uint32_t)ldl_kernel(((uint32_t)((ssp) + (sp & (sp_mask))))); sp += 4;}; + { new_es = (uint32_t)ldl_kernel(((uint32_t)((ssp) + (sp & (sp_mask))))); sp += 4;}; + { new_ds = (uint32_t)ldl_kernel(((uint32_t)((ssp) + (sp & (sp_mask))))); sp += 4;}; + { new_fs = (uint32_t)ldl_kernel(((uint32_t)((ssp) + (sp & (sp_mask))))); sp += 4;}; + { new_gs = (uint32_t)ldl_kernel(((uint32_t)((ssp) + (sp & (sp_mask))))); sp += 4;}; + + + load_eflags(new_eflags, 0x00000100 | 0x00040000 | 0x00200000 | + 0x00000200 | 0x00003000 | 0x00020000 | 0x00004000 | 0x00080000 | 0x00100000); + load_seg_vm(1, new_cs & 0xffff); + cpu_x86_set_cpl(env, 3); + load_seg_vm(2, new_ss & 0xffff); + load_seg_vm(0, new_es & 0xffff); + load_seg_vm(3, new_ds & 0xffff); + load_seg_vm(4, new_fs & 0xffff); + load_seg_vm(5, new_gs & 0xffff); + + env->eip = new_eip & 0xffff; + (env->regs[4]) = new_esp; +} + +void helper_iret_protected(int shift, int next_eip) +{ + int tss_selector, type; + uint32_t e1, e2; + + + if (env->eflags & 0x00004000) { + + + + + tss_selector = lduw_kernel(env->tr.base + 0); + if (tss_selector & 4) + raise_exception_err(10, tss_selector & 0xfffc); + if (load_segment(&e1, &e2, tss_selector) != 0) + raise_exception_err(10, tss_selector & 0xfffc); + type = (e2 >> 8) & 0x17; + + if (type != 3) + raise_exception_err(10, tss_selector & 0xfffc); + switch_tss(tss_selector, e1, e2, 1, next_eip); + } else { + helper_ret_protected(shift, 1, 0); + } + env->hflags2 &= ~(1 << 2); +} + +void helper_lret_protected(int shift, int addend) +{ + helper_ret_protected(shift, 0, addend); +} + +void helper_sysenter(void) +{ + if (env->sysenter_cs == 0) { + raise_exception_err(13, 0); + } + env->eflags &= ~(0x00020000 | 0x00000200 | 0x00010000); + cpu_x86_set_cpl(env, 0); +# 2968 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + { + cpu_x86_load_seg_cache(env, 1, env->sysenter_cs & 0xfffc, + 0, 0xffffffff, + (1 << 23) | (1 << 22) | (1 << 15) | + (1 << 12) | + (1 << 11) | (1 << 9) | (1 << 8)); + } + cpu_x86_load_seg_cache(env, 2, (env->sysenter_cs + 8) & 0xfffc, + 0, 0xffffffff, + (1 << 23) | (1 << 22) | (1 << 15) | + (1 << 12) | + (1 << 9) | (1 << 8)); + (env->regs[4]) = env->sysenter_esp; + (env->eip) = env->sysenter_eip; +} + +void helper_sysexit(int dflag) +{ + int cpl; + + cpl = env->hflags & (3 << 0); + if (env->sysenter_cs == 0 || cpl != 0) { + raise_exception_err(13, 0); + } + cpu_x86_set_cpl(env, 3); +# 3007 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + { + cpu_x86_load_seg_cache(env, 1, ((env->sysenter_cs + 16) & 0xfffc) | 3, + 0, 0xffffffff, + (1 << 23) | (1 << 22) | (1 << 15) | + (1 << 12) | (3 << 13) | + (1 << 11) | (1 << 9) | (1 << 8)); + cpu_x86_load_seg_cache(env, 2, ((env->sysenter_cs + 24) & 0xfffc) | 3, + 0, 0xffffffff, + (1 << 23) | (1 << 22) | (1 << 15) | + (1 << 12) | (3 << 13) | + (1 << 9) | (1 << 8)); + } + (env->regs[4]) = (env->regs[1]); + (env->eip) = (env->regs[2]); +} +# 3037 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +target_ulong helper_read_crN(int reg) +{ + target_ulong val; + + helper_svm_check_intercept_param(0x000 + reg, 0); + switch(reg) { + default: + val = env->cr[reg]; + break; + case 8: + if (!(env->hflags2 & (1 << 3))) { + val = cpu_get_apic_tpr(env->apic_state); + } else { + val = env->v_tpr; + } + break; + } + return val; +} + +void helper_write_crN(int reg, target_ulong t0) +{ + helper_svm_check_intercept_param(0x010 + reg, 0); + switch(reg) { + case 0: + cpu_x86_update_cr0(env, t0); + break; + case 3: + cpu_x86_update_cr3(env, t0); + break; + case 4: + cpu_x86_update_cr4(env, t0); + break; + case 8: + if (!(env->hflags2 & (1 << 3))) { + cpu_set_apic_tpr(env->apic_state, t0); + } + env->v_tpr = t0 & 0x0f; + break; + default: + env->cr[reg] = t0; + break; + } +} + +void helper_movl_drN_T0(int reg, target_ulong t0) +{ + int i; + + if (reg < 4) { + hw_breakpoint_remove(env, reg); + env->dr[reg] = t0; + hw_breakpoint_insert(env, reg); + } else if (reg == 7) { + for (i = 0; i < 4; i++) + hw_breakpoint_remove(env, i); + env->dr[7] = t0; + for (i = 0; i < 4; i++) + hw_breakpoint_insert(env, i); + } else + env->dr[reg] = t0; +} + + +void helper_lmsw(target_ulong t0) +{ + + + t0 = (env->cr[0] & ~0xe) | (t0 & 0xf); + helper_write_crN(0, t0); +} + +void helper_clts(void) +{ + env->cr[0] &= ~(1 << 3); + env->hflags &= ~(1 << 11); +} + +void helper_invlpg(target_ulong addr) +{ + helper_svm_check_intercept_param(0x079, 0); + tlb_flush_page(env, addr); +} + +void helper_rdtsc(void) +{ + uint64_t val; + + if ((env->cr[4] & (1 << 2)) && ((env->hflags & (3 << 0)) != 0)) { + raise_exception(13); + } + helper_svm_check_intercept_param(0x06e, 0); + + val = cpu_get_tsc(env) + env->tsc_offset; + (env->regs[0]) = (uint32_t)(val); + (env->regs[2]) = (uint32_t)(val >> 32); +} + +void helper_rdtscp(void) +{ + helper_rdtsc(); + (env->regs[1]) = (uint32_t)(env->tsc_aux); +} + +void helper_rdpmc(void) +{ + if ((env->cr[4] & (1 << 8)) && ((env->hflags & (3 << 0)) != 0)) { + raise_exception(13); + } + helper_svm_check_intercept_param(0x06f, 0); + + + raise_exception_err(6, 0); +} +# 3161 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +void helper_wrmsr(void) +{ + uint64_t val; + + helper_svm_check_intercept_param(0x07c, 1); + + val = ((uint32_t)(env->regs[0])) | ((uint64_t)((uint32_t)(env->regs[2])) << 32); + + switch((uint32_t)(env->regs[1])) { + case 0x174: + env->sysenter_cs = val & 0xffff; + break; + case 0x175: + env->sysenter_esp = val; + break; + case 0x176: + env->sysenter_eip = val; + break; + case 0x1b: + cpu_set_apic_base(env->apic_state, val); + break; + case 0xc0000080: + { + uint64_t update_mask; + update_mask = 0; + if (env->cpuid_ext2_features & (1 << 11)) + update_mask |= (1 << 0); + if (env->cpuid_ext2_features & (1 << 29)) + update_mask |= (1 << 8); + if (env->cpuid_ext2_features & (1 << 25)) + update_mask |= (1 << 14); + if (env->cpuid_ext2_features & (1 << 20)) + update_mask |= (1 << 11); + if (env->cpuid_ext3_features & (1 << 2)) + update_mask |= (1 << 12); + if (env->cpuid_ext2_features & (1 << 25)) + update_mask |= (1 << 14); + cpu_load_efer(env, (env->efer & ~update_mask) | + (val & update_mask)); + } + break; + case 0xc0000081: + env->star = val; + break; + case 0x277: + env->pat = val; + break; + case 0xc0010117: + env->vm_hsave = val; + break; +# 3231 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + case (0x200 + 2 * (0)): + case (0x200 + 2 * (1)): + case (0x200 + 2 * (2)): + case (0x200 + 2 * (3)): + case (0x200 + 2 * (4)): + case (0x200 + 2 * (5)): + case (0x200 + 2 * (6)): + case (0x200 + 2 * (7)): + env->mtrr_var[((uint32_t)(env->regs[1]) - (0x200 + 2 * (0))) / 2].base = val; + break; + case (0x200 + 2 * (0) + 1): + case (0x200 + 2 * (1) + 1): + case (0x200 + 2 * (2) + 1): + case (0x200 + 2 * (3) + 1): + case (0x200 + 2 * (4) + 1): + case (0x200 + 2 * (5) + 1): + case (0x200 + 2 * (6) + 1): + case (0x200 + 2 * (7) + 1): + env->mtrr_var[((uint32_t)(env->regs[1]) - (0x200 + 2 * (0) + 1)) / 2].mask = val; + break; + case 0x250: + env->mtrr_fixed[(uint32_t)(env->regs[1]) - 0x250] = val; + break; + case 0x258: + case 0x259: + env->mtrr_fixed[(uint32_t)(env->regs[1]) - 0x258 + 1] = val; + break; + case 0x268: + case 0x269: + case 0x26a: + case 0x26b: + case 0x26c: + case 0x26d: + case 0x26e: + case 0x26f: + env->mtrr_fixed[(uint32_t)(env->regs[1]) - 0x268 + 3] = val; + break; + case 0x2ff: + env->mtrr_deftype = val; + break; + case 0x17a: + env->mcg_status = val; + break; + case 0x17b: + if ((env->mcg_cap & (1ULL<<8)) + && (val == 0 || val == ~(uint64_t)0)) + env->mcg_ctl = val; + break; + case 0xc0000103: + env->tsc_aux = val; + break; + case 0x1a0: + env->msr_ia32_misc_enable = val; + break; + default: + if ((uint32_t)(env->regs[1]) >= 0x400 + && (uint32_t)(env->regs[1]) < 0x400 + (4 * env->mcg_cap & 0xff)) { + uint32_t offset = (uint32_t)(env->regs[1]) - 0x400; + if ((offset & 0x3) != 0 + || (val == 0 || val == ~(uint64_t)0)) + env->mce_banks[offset] = val; + break; + } + + break; + } +} + +void helper_rdmsr(void) +{ + uint64_t val; + + helper_svm_check_intercept_param(0x07c, 0); + + switch((uint32_t)(env->regs[1])) { + case 0x174: + val = env->sysenter_cs; + break; + case 0x175: + val = env->sysenter_esp; + break; + case 0x176: + val = env->sysenter_eip; + break; + case 0x1b: + val = cpu_get_apic_base(env->apic_state); + break; + case 0xc0000080: + val = env->efer; + break; + case 0xc0000081: + val = env->star; + break; + case 0x277: + val = env->pat; + break; + case 0xc0010117: + val = env->vm_hsave; + break; + case 0x198: + + val = 1000ULL; + + val |= (((uint64_t)4ULL) << 40); + break; +# 3359 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + case (0x200 + 2 * (0)): + case (0x200 + 2 * (1)): + case (0x200 + 2 * (2)): + case (0x200 + 2 * (3)): + case (0x200 + 2 * (4)): + case (0x200 + 2 * (5)): + case (0x200 + 2 * (6)): + case (0x200 + 2 * (7)): + val = env->mtrr_var[((uint32_t)(env->regs[1]) - (0x200 + 2 * (0))) / 2].base; + break; + case (0x200 + 2 * (0) + 1): + case (0x200 + 2 * (1) + 1): + case (0x200 + 2 * (2) + 1): + case (0x200 + 2 * (3) + 1): + case (0x200 + 2 * (4) + 1): + case (0x200 + 2 * (5) + 1): + case (0x200 + 2 * (6) + 1): + case (0x200 + 2 * (7) + 1): + val = env->mtrr_var[((uint32_t)(env->regs[1]) - (0x200 + 2 * (0) + 1)) / 2].mask; + break; + case 0x250: + val = env->mtrr_fixed[0]; + break; + case 0x258: + case 0x259: + val = env->mtrr_fixed[(uint32_t)(env->regs[1]) - 0x258 + 1]; + break; + case 0x268: + case 0x269: + case 0x26a: + case 0x26b: + case 0x26c: + case 0x26d: + case 0x26e: + case 0x26f: + val = env->mtrr_fixed[(uint32_t)(env->regs[1]) - 0x268 + 3]; + break; + case 0x2ff: + val = env->mtrr_deftype; + break; + case 0xfe: + if (env->cpuid_features & (1 << 12)) + val = 8 | (1 << 8) | (1 << 10); + else + + val = 0; + break; + case 0x179: + val = env->mcg_cap; + break; + case 0x17b: + if (env->mcg_cap & (1ULL<<8)) + val = env->mcg_ctl; + else + val = 0; + break; + case 0x17a: + val = env->mcg_status; + break; + case 0x1a0: + val = env->msr_ia32_misc_enable; + break; + default: + if ((uint32_t)(env->regs[1]) >= 0x400 + && (uint32_t)(env->regs[1]) < 0x400 + (4 * env->mcg_cap & 0xff)) { + uint32_t offset = (uint32_t)(env->regs[1]) - 0x400; + val = env->mce_banks[offset]; + break; + } + + val = 0; + break; + } + (env->regs[0]) = (uint32_t)(val); + (env->regs[2]) = (uint32_t)(val >> 32); +} + + +target_ulong helper_lsl(target_ulong selector1) +{ + unsigned int limit; + uint32_t e1, e2, eflags, selector; + int rpl, dpl, cpl, type; + + selector = selector1 & 0xffff; + eflags = helper_cc_compute_all((env->cc_op)); + if ((selector & 0xfffc) == 0) + goto fail; + if (load_segment(&e1, &e2, selector) != 0) + goto fail; + rpl = selector & 3; + dpl = (e2 >> 13) & 3; + cpl = env->hflags & (3 << 0); + if (e2 & (1 << 12)) { + if ((e2 & (1 << 11)) && (e2 & (1 << 10))) { + + } else { + if (dpl < cpl || dpl < rpl) + goto fail; + } + } else { + type = (e2 >> 8) & 0xf; + switch(type) { + case 1: + case 2: + case 3: + case 9: + case 11: + break; + default: + goto fail; + } + if (dpl < cpl || dpl < rpl) { + fail: + (env->cc_src) = eflags & ~0x0040; + return 0; + } + } + limit = get_seg_limit(e1, e2); + (env->cc_src) = eflags | 0x0040; + return limit; +} + +target_ulong helper_lar(target_ulong selector1) +{ + uint32_t e1, e2, eflags, selector; + int rpl, dpl, cpl, type; + + selector = selector1 & 0xffff; + eflags = helper_cc_compute_all((env->cc_op)); + if ((selector & 0xfffc) == 0) + goto fail; + if (load_segment(&e1, &e2, selector) != 0) + goto fail; + rpl = selector & 3; + dpl = (e2 >> 13) & 3; + cpl = env->hflags & (3 << 0); + if (e2 & (1 << 12)) { + if ((e2 & (1 << 11)) && (e2 & (1 << 10))) { + + } else { + if (dpl < cpl || dpl < rpl) + goto fail; + } + } else { + type = (e2 >> 8) & 0xf; + switch(type) { + case 1: + case 2: + case 3: + case 4: + case 5: + case 9: + case 11: + case 12: + break; + default: + goto fail; + } + if (dpl < cpl || dpl < rpl) { + fail: + (env->cc_src) = eflags & ~0x0040; + return 0; + } + } + (env->cc_src) = eflags | 0x0040; + return e2 & 0x00f0ff00; +} + +void helper_verr(target_ulong selector1) +{ + uint32_t e1, e2, eflags, selector; + int rpl, dpl, cpl; + + selector = selector1 & 0xffff; + eflags = helper_cc_compute_all((env->cc_op)); + if ((selector & 0xfffc) == 0) + goto fail; + if (load_segment(&e1, &e2, selector) != 0) + goto fail; + if (!(e2 & (1 << 12))) + goto fail; + rpl = selector & 3; + dpl = (e2 >> 13) & 3; + cpl = env->hflags & (3 << 0); + if (e2 & (1 << 11)) { + if (!(e2 & (1 << 9))) + goto fail; + if (!(e2 & (1 << 10))) { + if (dpl < cpl || dpl < rpl) + goto fail; + } + } else { + if (dpl < cpl || dpl < rpl) { + fail: + (env->cc_src) = eflags & ~0x0040; + return; + } + } + (env->cc_src) = eflags | 0x0040; +} + +void helper_verw(target_ulong selector1) +{ + uint32_t e1, e2, eflags, selector; + int rpl, dpl, cpl; + + selector = selector1 & 0xffff; + eflags = helper_cc_compute_all((env->cc_op)); + if ((selector & 0xfffc) == 0) + goto fail; + if (load_segment(&e1, &e2, selector) != 0) + goto fail; + if (!(e2 & (1 << 12))) + goto fail; + rpl = selector & 3; + dpl = (e2 >> 13) & 3; + cpl = env->hflags & (3 << 0); + if (e2 & (1 << 11)) { + goto fail; + } else { + if (dpl < cpl || dpl < rpl) + goto fail; + if (!(e2 & (1 << 9))) { + fail: + (env->cc_src) = eflags & ~0x0040; + return; + } + } + (env->cc_src) = eflags | 0x0040; +} + + + +static __attribute__ (( always_inline )) __inline__ double floatx80_to_double(floatx80 a) +{ + union { + float64 f64; + double d; + } u; + + u.f64 = floatx80_to_float64(a, &env->fp_status); + return u.d; +} + +static __attribute__ (( always_inline )) __inline__ floatx80 double_to_floatx80(double a) +{ + union { + float64 f64; + double d; + } u; + + u.d = a; + return float64_to_floatx80(u.f64, &env->fp_status); +} + +static void fpu_set_exception(int mask) +{ + env->fpus |= mask; + if (env->fpus & (~env->fpuc & 0x3f)) + env->fpus |= (1 << 7) | (1 << 15); +} + +static __attribute__ (( always_inline )) __inline__ floatx80 helper_fdiv(floatx80 a, floatx80 b) +{ + if (floatx80_is_zero(b)) { + fpu_set_exception((1 << 2)); + } + return floatx80_div(a, b, &env->fp_status); +} + +static void fpu_raise_exception(void) +{ + if (env->cr[0] & (1 << 5)) { + raise_exception(16); + } + + else { + cpu_set_ferr(env); + } + +} + +void helper_flds_FT0(uint32_t val) +{ + union { + float32 f; + uint32_t i; + } u; + u.i = val; + (env->ft0) = float32_to_floatx80(u.f, &env->fp_status); +} + +void helper_fldl_FT0(uint64_t val) +{ + union { + float64 f; + uint64_t i; + } u; + u.i = val; + (env->ft0) = float64_to_floatx80(u.f, &env->fp_status); +} + +void helper_fildl_FT0(int32_t val) +{ + (env->ft0) = int32_to_floatx80(val, &env->fp_status); +} + +void helper_flds_ST0(uint32_t val) +{ + int new_fpstt; + union { + float32 f; + uint32_t i; + } u; + new_fpstt = (env->fpstt - 1) & 7; + u.i = val; + env->fpregs[new_fpstt].d = float32_to_floatx80(u.f, &env->fp_status); + env->fpstt = new_fpstt; + env->fptags[new_fpstt] = 0; +} + +void helper_fldl_ST0(uint64_t val) +{ + int new_fpstt; + union { + float64 f; + uint64_t i; + } u; + new_fpstt = (env->fpstt - 1) & 7; + u.i = val; + env->fpregs[new_fpstt].d = float64_to_floatx80(u.f, &env->fp_status); + env->fpstt = new_fpstt; + env->fptags[new_fpstt] = 0; +} + +void helper_fildl_ST0(int32_t val) +{ + int new_fpstt; + new_fpstt = (env->fpstt - 1) & 7; + env->fpregs[new_fpstt].d = int32_to_floatx80(val, &env->fp_status); + env->fpstt = new_fpstt; + env->fptags[new_fpstt] = 0; +} + +void helper_fildll_ST0(int64_t val) +{ + int new_fpstt; + new_fpstt = (env->fpstt - 1) & 7; + env->fpregs[new_fpstt].d = int64_to_floatx80(val, &env->fp_status); + env->fpstt = new_fpstt; + env->fptags[new_fpstt] = 0; +} + +uint32_t helper_fsts_ST0(void) +{ + union { + float32 f; + uint32_t i; + } u; + u.f = floatx80_to_float32((env->fpregs[env->fpstt].d), &env->fp_status); + return u.i; +} + +uint64_t helper_fstl_ST0(void) +{ + union { + float64 f; + uint64_t i; + } u; + u.f = floatx80_to_float64((env->fpregs[env->fpstt].d), &env->fp_status); + return u.i; +} + +int32_t helper_fist_ST0(void) +{ + int32_t val; + val = floatx80_to_int32((env->fpregs[env->fpstt].d), &env->fp_status); + if (val != (int16_t)val) + val = -32768; + return val; +} + +int32_t helper_fistl_ST0(void) +{ + int32_t val; + val = floatx80_to_int32((env->fpregs[env->fpstt].d), &env->fp_status); + return val; +} + +int64_t helper_fistll_ST0(void) +{ + int64_t val; + val = floatx80_to_int64((env->fpregs[env->fpstt].d), &env->fp_status); + return val; +} + +int32_t helper_fistt_ST0(void) +{ + int32_t val; + val = floatx80_to_int32_round_to_zero((env->fpregs[env->fpstt].d), &env->fp_status); + if (val != (int16_t)val) + val = -32768; + return val; +} + +int32_t helper_fisttl_ST0(void) +{ + int32_t val; + val = floatx80_to_int32_round_to_zero((env->fpregs[env->fpstt].d), &env->fp_status); + return val; +} + +int64_t helper_fisttll_ST0(void) +{ + int64_t val; + val = floatx80_to_int64_round_to_zero((env->fpregs[env->fpstt].d), &env->fp_status); + return val; +} + +void helper_fldt_ST0(target_ulong ptr) +{ + int new_fpstt; + new_fpstt = (env->fpstt - 1) & 7; + env->fpregs[new_fpstt].d = helper_fldt(ptr); + env->fpstt = new_fpstt; + env->fptags[new_fpstt] = 0; +} + +void helper_fstt_ST0(target_ulong ptr) +{ + helper_fstt((env->fpregs[env->fpstt].d), ptr); +} + +void helper_fpush(void) +{ + fpush(); +} + +void helper_fpop(void) +{ + fpop(); +} + +void helper_fdecstp(void) +{ + env->fpstt = (env->fpstt - 1) & 7; + env->fpus &= (~0x4700); +} + +void helper_fincstp(void) +{ + env->fpstt = (env->fpstt + 1) & 7; + env->fpus &= (~0x4700); +} + + + +void helper_ffree_STN(int st_index) +{ + env->fptags[(env->fpstt + st_index) & 7] = 1; +} + +void helper_fmov_ST0_FT0(void) +{ + (env->fpregs[env->fpstt].d) = (env->ft0); +} + +void helper_fmov_FT0_STN(int st_index) +{ + (env->ft0) = (env->fpregs[(env->fpstt + (st_index)) & 7].d); +} + +void helper_fmov_ST0_STN(int st_index) +{ + (env->fpregs[env->fpstt].d) = (env->fpregs[(env->fpstt + (st_index)) & 7].d); +} + +void helper_fmov_STN_ST0(int st_index) +{ + (env->fpregs[(env->fpstt + (st_index)) & 7].d) = (env->fpregs[env->fpstt].d); +} + +void helper_fxchg_ST0_STN(int st_index) +{ + floatx80 tmp; + tmp = (env->fpregs[(env->fpstt + (st_index)) & 7].d); + (env->fpregs[(env->fpstt + (st_index)) & 7].d) = (env->fpregs[env->fpstt].d); + (env->fpregs[env->fpstt].d) = tmp; +} + + + +static const int fcom_ccval[4] = {0x0100, 0x4000, 0x0000, 0x4500}; + +void helper_fcom_ST0_FT0(void) +{ + int ret; + + ret = floatx80_compare((env->fpregs[env->fpstt].d), (env->ft0), &env->fp_status); + env->fpus = (env->fpus & ~0x4500) | fcom_ccval[ret + 1]; +} + +void helper_fucom_ST0_FT0(void) +{ + int ret; + + ret = floatx80_compare_quiet((env->fpregs[env->fpstt].d), (env->ft0), &env->fp_status); + env->fpus = (env->fpus & ~0x4500) | fcom_ccval[ret+ 1]; +} + +static const int fcomi_ccval[4] = {0x0001, 0x0040, 0, 0x0040 | 0x0004 | 0x0001}; + +void helper_fcomi_ST0_FT0(void) +{ + int eflags; + int ret; + + ret = floatx80_compare((env->fpregs[env->fpstt].d), (env->ft0), &env->fp_status); + eflags = helper_cc_compute_all((env->cc_op)); + eflags = (eflags & ~(0x0040 | 0x0004 | 0x0001)) | fcomi_ccval[ret + 1]; + (env->cc_src) = eflags; +} + +void helper_fucomi_ST0_FT0(void) +{ + int eflags; + int ret; + + ret = floatx80_compare_quiet((env->fpregs[env->fpstt].d), (env->ft0), &env->fp_status); + eflags = helper_cc_compute_all((env->cc_op)); + eflags = (eflags & ~(0x0040 | 0x0004 | 0x0001)) | fcomi_ccval[ret + 1]; + (env->cc_src) = eflags; +} + +void helper_fadd_ST0_FT0(void) +{ + (env->fpregs[env->fpstt].d) = floatx80_add((env->fpregs[env->fpstt].d), (env->ft0), &env->fp_status); +} + +void helper_fmul_ST0_FT0(void) +{ + (env->fpregs[env->fpstt].d) = floatx80_mul((env->fpregs[env->fpstt].d), (env->ft0), &env->fp_status); +} + +void helper_fsub_ST0_FT0(void) +{ + (env->fpregs[env->fpstt].d) = floatx80_sub((env->fpregs[env->fpstt].d), (env->ft0), &env->fp_status); +} + +void helper_fsubr_ST0_FT0(void) +{ + (env->fpregs[env->fpstt].d) = floatx80_sub((env->ft0), (env->fpregs[env->fpstt].d), &env->fp_status); +} + +void helper_fdiv_ST0_FT0(void) +{ + (env->fpregs[env->fpstt].d) = helper_fdiv((env->fpregs[env->fpstt].d), (env->ft0)); +} + +void helper_fdivr_ST0_FT0(void) +{ + (env->fpregs[env->fpstt].d) = helper_fdiv((env->ft0), (env->fpregs[env->fpstt].d)); +} + + + +void helper_fadd_STN_ST0(int st_index) +{ + (env->fpregs[(env->fpstt + (st_index)) & 7].d) = floatx80_add((env->fpregs[(env->fpstt + (st_index)) & 7].d), (env->fpregs[env->fpstt].d), &env->fp_status); +} + +void helper_fmul_STN_ST0(int st_index) +{ + (env->fpregs[(env->fpstt + (st_index)) & 7].d) = floatx80_mul((env->fpregs[(env->fpstt + (st_index)) & 7].d), (env->fpregs[env->fpstt].d), &env->fp_status); +} + +void helper_fsub_STN_ST0(int st_index) +{ + (env->fpregs[(env->fpstt + (st_index)) & 7].d) = floatx80_sub((env->fpregs[(env->fpstt + (st_index)) & 7].d), (env->fpregs[env->fpstt].d), &env->fp_status); +} + +void helper_fsubr_STN_ST0(int st_index) +{ + (env->fpregs[(env->fpstt + (st_index)) & 7].d) = floatx80_sub((env->fpregs[env->fpstt].d), (env->fpregs[(env->fpstt + (st_index)) & 7].d), &env->fp_status); +} + +void helper_fdiv_STN_ST0(int st_index) +{ + floatx80 *p; + p = &(env->fpregs[(env->fpstt + (st_index)) & 7].d); + *p = helper_fdiv(*p, (env->fpregs[env->fpstt].d)); +} + +void helper_fdivr_STN_ST0(int st_index) +{ + floatx80 *p; + p = &(env->fpregs[(env->fpstt + (st_index)) & 7].d); + *p = helper_fdiv((env->fpregs[env->fpstt].d), *p); +} + + +void helper_fchs_ST0(void) +{ + (env->fpregs[env->fpstt].d) = floatx80_chs((env->fpregs[env->fpstt].d)); +} + +void helper_fabs_ST0(void) +{ + (env->fpregs[env->fpstt].d) = floatx80_abs((env->fpregs[env->fpstt].d)); +} + +void helper_fld1_ST0(void) +{ + (env->fpregs[env->fpstt].d) = ((floatx80) { 0x8000000000000000LL, 0x3fff }); +} + +void helper_fldl2t_ST0(void) +{ + (env->fpregs[env->fpstt].d) = ((floatx80) { 0xd49a784bcd1b8afeLL, 0x4000 }); +} + +void helper_fldl2e_ST0(void) +{ + (env->fpregs[env->fpstt].d) = ((floatx80) { 0xb8aa3b295c17f0bcLL, 0x3fff }); +} + +void helper_fldpi_ST0(void) +{ + (env->fpregs[env->fpstt].d) = ((floatx80) { 0xc90fdaa22168c235LL, 0x4000 }); +} + +void helper_fldlg2_ST0(void) +{ + (env->fpregs[env->fpstt].d) = ((floatx80) { 0x9a209a84fbcff799LL, 0x3ffd }); +} + +void helper_fldln2_ST0(void) +{ + (env->fpregs[env->fpstt].d) = ((floatx80) { 0xb17217f7d1cf79acLL, 0x3ffe }); +} + +void helper_fldz_ST0(void) +{ + (env->fpregs[env->fpstt].d) = ((floatx80) { 0x0000000000000000LL, 0x0000 }); +} + +void helper_fldz_FT0(void) +{ + (env->ft0) = ((floatx80) { 0x0000000000000000LL, 0x0000 }); +} + +uint32_t helper_fnstsw(void) +{ + return (env->fpus & ~0x3800) | (env->fpstt & 0x7) << 11; +} + +uint32_t helper_fnstcw(void) +{ + return env->fpuc; +} + +static void update_fp_status(void) +{ + int rnd_type; + + + switch(env->fpuc & 0xc00) { + default: + case 0x000: + rnd_type = float_round_nearest_even; + break; + case 0x400: + rnd_type = float_round_down; + break; + case 0x800: + rnd_type = float_round_up; + break; + case 0xc00: + rnd_type = float_round_to_zero; + break; + } + set_float_rounding_mode(rnd_type, &env->fp_status); + switch((env->fpuc >> 8) & 3) { + case 0: + rnd_type = 32; + break; + case 2: + rnd_type = 64; + break; + case 3: + default: + rnd_type = 80; + break; + } + set_floatx80_rounding_precision(rnd_type, &env->fp_status); +} + +void helper_fldcw(uint32_t val) +{ + env->fpuc = val; + update_fp_status(); +} + +void helper_fclex(void) +{ + env->fpus &= 0x7f00; +} + +void helper_fwait(void) +{ + if (env->fpus & (1 << 7)) + fpu_raise_exception(); +} + +void helper_fninit(void) +{ + env->fpus = 0; + env->fpstt = 0; + env->fpuc = 0x37f; + env->fptags[0] = 1; + env->fptags[1] = 1; + env->fptags[2] = 1; + env->fptags[3] = 1; + env->fptags[4] = 1; + env->fptags[5] = 1; + env->fptags[6] = 1; + env->fptags[7] = 1; +} + + + +void helper_fbld_ST0(target_ulong ptr) +{ + floatx80 tmp; + uint64_t val; + unsigned int v; + int i; + + val = 0; + for(i = 8; i >= 0; i--) { + v = ldub_data(ptr + i); + val = (val * 100) + ((v >> 4) * 10) + (v & 0xf); + } + tmp = int64_to_floatx80(val, &env->fp_status); + if (ldub_data(ptr + 9) & 0x80) { + floatx80_chs(tmp); + } + fpush(); + (env->fpregs[env->fpstt].d) = tmp; +} + +void helper_fbst_ST0(target_ulong ptr) +{ + int v; + target_ulong mem_ref, mem_end; + int64_t val; + + val = floatx80_to_int64((env->fpregs[env->fpstt].d), &env->fp_status); + mem_ref = ptr; + mem_end = mem_ref + 9; + if (val < 0) { + stb_data(mem_end, 0x80); + val = -val; + } else { + stb_data(mem_end, 0x00); + } + while (mem_ref < mem_end) { + if (val == 0) + break; + v = val % 100; + val = val / 100; + v = ((v / 10) << 4) | (v % 10); + stb_data(mem_ref++, v); + } + while (mem_ref < mem_end) { + stb_data(mem_ref++, 0); + } +} + +void helper_f2xm1(void) +{ + double val = floatx80_to_double((env->fpregs[env->fpstt].d)); + val = pow(2.0, val) - 1.0; + (env->fpregs[env->fpstt].d) = double_to_floatx80(val); +} + +void helper_fyl2x(void) +{ + double fptemp = floatx80_to_double((env->fpregs[env->fpstt].d)); + + if (fptemp>0.0){ + fptemp = log(fptemp)/log(2.0); + fptemp *= floatx80_to_double((env->fpregs[(env->fpstt + (1)) & 7].d)); + (env->fpregs[(env->fpstt + (1)) & 7].d) = double_to_floatx80(fptemp); + fpop(); + } else { + env->fpus &= (~0x4700); + env->fpus |= 0x400; + } +} + +void helper_fptan(void) +{ + double fptemp = floatx80_to_double((env->fpregs[env->fpstt].d)); + + if((fptemp > 9223372036854775808.0)||(fptemp < -9223372036854775808.0)) { + env->fpus |= 0x400; + } else { + fptemp = tan(fptemp); + (env->fpregs[env->fpstt].d) = double_to_floatx80(fptemp); + fpush(); + (env->fpregs[env->fpstt].d) = ((floatx80) { 0x8000000000000000LL, 0x3fff }); + env->fpus &= (~0x400); + + } +} + +void helper_fpatan(void) +{ + double fptemp, fpsrcop; + + fpsrcop = floatx80_to_double((env->fpregs[(env->fpstt + (1)) & 7].d)); + fptemp = floatx80_to_double((env->fpregs[env->fpstt].d)); + (env->fpregs[(env->fpstt + (1)) & 7].d) = double_to_floatx80(atan2(fpsrcop, fptemp)); + fpop(); +} + +void helper_fxtract(void) +{ + CPU_LDoubleU temp; + + temp.d = (env->fpregs[env->fpstt].d); + + if (floatx80_is_zero((env->fpregs[env->fpstt].d))) { + + (env->fpregs[env->fpstt].d) = floatx80_div(floatx80_chs(((floatx80) { 0x8000000000000000LL, 0x3fff })), ((floatx80) { 0x0000000000000000LL, 0x0000 }), &env->fp_status); + fpush(); + (env->fpregs[env->fpstt].d) = temp.d; + } else { + int expdif; + + expdif = (temp.l.upper & 0x7fff) - 16383; + + (env->fpregs[env->fpstt].d) = int32_to_floatx80(expdif, &env->fp_status); + fpush(); + temp.l.upper = (temp.l.upper & ~(0x7fff)) | 16383; + (env->fpregs[env->fpstt].d) = temp.d; + } +} + +void helper_fprem1(void) +{ + double st0, st1, dblq, fpsrcop, fptemp; + CPU_LDoubleU fpsrcop1, fptemp1; + int expdif; + signed long long int q; + + st0 = floatx80_to_double((env->fpregs[env->fpstt].d)); + st1 = floatx80_to_double((env->fpregs[(env->fpstt + (1)) & 7].d)); + + if ((sizeof (st0) == sizeof (float) ? __isinff (st0) : sizeof (st0) == sizeof (double) ? __isinf (st0) : __isinfl (st0)) || (sizeof (st0) == sizeof (float) ? __isnanf (st0) : sizeof (st0) == sizeof (double) ? __isnan (st0) : __isnanl (st0)) || (sizeof (st1) == sizeof (float) ? __isnanf (st1) : sizeof (st1) == sizeof (double) ? __isnan (st1) : __isnanl (st1)) || (st1 == 0.0)) { + (env->fpregs[env->fpstt].d) = double_to_floatx80(0.0 / 0.0); + env->fpus &= (~0x4700); + return; + } + + fpsrcop = st0; + fptemp = st1; + fpsrcop1.d = (env->fpregs[env->fpstt].d); + fptemp1.d = (env->fpregs[(env->fpstt + (1)) & 7].d); + expdif = (fpsrcop1.l.upper & 0x7fff) - (fptemp1.l.upper & 0x7fff); + + if (expdif < 0) { + + env->fpus &= (~0x4700); + + return; + } + + if (expdif < 53) { + dblq = fpsrcop / fptemp; + + dblq = rint(dblq); + st0 = fpsrcop - fptemp * dblq; + + + if (dblq < 0.0) + q = (signed long long int)(-dblq); + else + q = (signed long long int)dblq; + + env->fpus &= (~0x4700); + + env->fpus |= (q & 0x4) << (8 - 2); + env->fpus |= (q & 0x2) << (14 - 1); + env->fpus |= (q & 0x1) << (9 - 0); + } else { + env->fpus |= 0x400; + fptemp = pow(2.0, expdif - 50); + fpsrcop = (st0 / st1) / fptemp; + + fpsrcop = (fpsrcop < 0.0) ? + -(floor(fabs(fpsrcop))) : floor(fpsrcop); + st0 -= (st1 * fpsrcop * fptemp); + } + (env->fpregs[env->fpstt].d) = double_to_floatx80(st0); +} + +void helper_fprem(void) +{ + double st0, st1, dblq, fpsrcop, fptemp; + CPU_LDoubleU fpsrcop1, fptemp1; + int expdif; + signed long long int q; + + st0 = floatx80_to_double((env->fpregs[env->fpstt].d)); + st1 = floatx80_to_double((env->fpregs[(env->fpstt + (1)) & 7].d)); + + if ((sizeof (st0) == sizeof (float) ? __isinff (st0) : sizeof (st0) == sizeof (double) ? __isinf (st0) : __isinfl (st0)) || (sizeof (st0) == sizeof (float) ? __isnanf (st0) : sizeof (st0) == sizeof (double) ? __isnan (st0) : __isnanl (st0)) || (sizeof (st1) == sizeof (float) ? __isnanf (st1) : sizeof (st1) == sizeof (double) ? __isnan (st1) : __isnanl (st1)) || (st1 == 0.0)) { + (env->fpregs[env->fpstt].d) = double_to_floatx80(0.0 / 0.0); + env->fpus &= (~0x4700); + return; + } + + fpsrcop = st0; + fptemp = st1; + fpsrcop1.d = (env->fpregs[env->fpstt].d); + fptemp1.d = (env->fpregs[(env->fpstt + (1)) & 7].d); + expdif = (fpsrcop1.l.upper & 0x7fff) - (fptemp1.l.upper & 0x7fff); + + if (expdif < 0) { + + env->fpus &= (~0x4700); + + return; + } + + if ( expdif < 53 ) { + dblq = fpsrcop / fptemp ; + + dblq = (dblq < 0.0) ? ceil(dblq) : floor(dblq); + st0 = fpsrcop - fptemp * dblq; + + + if (dblq < 0.0) + q = (signed long long int)(-dblq); + else + q = (signed long long int)dblq; + + env->fpus &= (~0x4700); + + env->fpus |= (q & 0x4) << (8 - 2); + env->fpus |= (q & 0x2) << (14 - 1); + env->fpus |= (q & 0x1) << (9 - 0); + } else { + int N = 32 + (expdif % 32); + env->fpus |= 0x400; + fptemp = pow(2.0, (double)(expdif - N)); + fpsrcop = (st0 / st1) / fptemp; + + fpsrcop = (fpsrcop < 0.0) ? + -(floor(fabs(fpsrcop))) : floor(fpsrcop); + st0 -= (st1 * fpsrcop * fptemp); + } + (env->fpregs[env->fpstt].d) = double_to_floatx80(st0); +} + +void helper_fyl2xp1(void) +{ + double fptemp = floatx80_to_double((env->fpregs[env->fpstt].d)); + + if ((fptemp+1.0)>0.0) { + fptemp = log(fptemp+1.0) / log(2.0); + fptemp *= floatx80_to_double((env->fpregs[(env->fpstt + (1)) & 7].d)); + (env->fpregs[(env->fpstt + (1)) & 7].d) = double_to_floatx80(fptemp); + fpop(); + } else { + env->fpus &= (~0x4700); + env->fpus |= 0x400; + } +} + +void helper_fsqrt(void) +{ + if (floatx80_is_neg((env->fpregs[env->fpstt].d))) { + env->fpus &= (~0x4700); + env->fpus |= 0x400; + } + (env->fpregs[env->fpstt].d) = floatx80_sqrt((env->fpregs[env->fpstt].d), &env->fp_status); +} + +void helper_fsincos(void) +{ + double fptemp = floatx80_to_double((env->fpregs[env->fpstt].d)); + + if ((fptemp > 9223372036854775808.0)||(fptemp < -9223372036854775808.0)) { + env->fpus |= 0x400; + } else { + (env->fpregs[env->fpstt].d) = double_to_floatx80(sin(fptemp)); + fpush(); + (env->fpregs[env->fpstt].d) = double_to_floatx80(cos(fptemp)); + env->fpus &= (~0x400); + + } +} + +void helper_frndint(void) +{ + (env->fpregs[env->fpstt].d) = floatx80_round_to_int((env->fpregs[env->fpstt].d), &env->fp_status); +} + +void helper_fscale(void) +{ + if (floatx80_is_any_nan((env->fpregs[(env->fpstt + (1)) & 7].d))) { + (env->fpregs[env->fpstt].d) = (env->fpregs[(env->fpstt + (1)) & 7].d); + } else { + int n = floatx80_to_int32_round_to_zero((env->fpregs[(env->fpstt + (1)) & 7].d), &env->fp_status); + (env->fpregs[env->fpstt].d) = floatx80_scalbn((env->fpregs[env->fpstt].d), n, &env->fp_status); + } +} + +void helper_fsin(void) +{ + double fptemp = floatx80_to_double((env->fpregs[env->fpstt].d)); + + if ((fptemp > 9223372036854775808.0)||(fptemp < -9223372036854775808.0)) { + env->fpus |= 0x400; + } else { + (env->fpregs[env->fpstt].d) = double_to_floatx80(sin(fptemp)); + env->fpus &= (~0x400); + + } +} + +void helper_fcos(void) +{ + double fptemp = floatx80_to_double((env->fpregs[env->fpstt].d)); + + if((fptemp > 9223372036854775808.0)||(fptemp < -9223372036854775808.0)) { + env->fpus |= 0x400; + } else { + (env->fpregs[env->fpstt].d) = double_to_floatx80(cos(fptemp)); + env->fpus &= (~0x400); + + } +} + +void helper_fxam_ST0(void) +{ + CPU_LDoubleU temp; + int expdif; + + temp.d = (env->fpregs[env->fpstt].d); + + env->fpus &= (~0x4700); + if (((temp.l.upper) & 0x8000)) + env->fpus |= 0x200; + + + expdif = (temp.l.upper & 0x7fff); + if (expdif == 0x7fff) { + if ((temp.l.lower) == 0x8000000000000000ULL) + env->fpus |= 0x500 ; + else + env->fpus |= 0x100 ; + } else if (expdif == 0) { + if ((temp.l.lower) == 0) + env->fpus |= 0x4000 ; + else + env->fpus |= 0x4400 ; + } else { + env->fpus |= 0x400; + } +} + +void helper_fstenv(target_ulong ptr, int data32) +{ + int fpus, fptag, exp, i; + uint64_t mant; + CPU_LDoubleU tmp; + + fpus = (env->fpus & ~0x3800) | (env->fpstt & 0x7) << 11; + fptag = 0; + for (i=7; i>=0; i--) { + fptag <<= 2; + if (env->fptags[i]) { + fptag |= 3; + } else { + tmp.d = env->fpregs[i].d; + exp = (tmp.l.upper & 0x7fff); + mant = (tmp.l.lower); + if (exp == 0 && mant == 0) { + + fptag |= 1; + } else if (exp == 0 || exp == 0x7fff + || (mant & (1LL << 63)) == 0 + ) { + + fptag |= 2; + } + } + } + if (data32) { + + stl_data(ptr, env->fpuc); + stl_data(ptr + 4, fpus); + stl_data(ptr + 8, fptag); + stl_data(ptr + 12, 0); + stl_data(ptr + 16, 0); + stl_data(ptr + 20, 0); + stl_data(ptr + 24, 0); + } else { + + stw_data(ptr, env->fpuc); + stw_data(ptr + 2, fpus); + stw_data(ptr + 4, fptag); + stw_data(ptr + 6, 0); + stw_data(ptr + 8, 0); + stw_data(ptr + 10, 0); + stw_data(ptr + 12, 0); + } +} + +void helper_fldenv(target_ulong ptr, int data32) +{ + int i, fpus, fptag; + + if (data32) { + env->fpuc = lduw_data(ptr); + fpus = lduw_data(ptr + 4); + fptag = lduw_data(ptr + 8); + } + else { + env->fpuc = lduw_data(ptr); + fpus = lduw_data(ptr + 2); + fptag = lduw_data(ptr + 4); + } + env->fpstt = (fpus >> 11) & 7; + env->fpus = fpus & ~0x3800; + for(i = 0;i < 8; i++) { + env->fptags[i] = ((fptag & 3) == 3); + fptag >>= 2; + } +} + +void helper_fsave(target_ulong ptr, int data32) +{ + floatx80 tmp; + int i; + + helper_fstenv(ptr, data32); + + ptr += (14 << data32); + for(i = 0;i < 8; i++) { + tmp = (env->fpregs[(env->fpstt + (i)) & 7].d); + helper_fstt(tmp, ptr); + ptr += 10; + } + + + env->fpus = 0; + env->fpstt = 0; + env->fpuc = 0x37f; + env->fptags[0] = 1; + env->fptags[1] = 1; + env->fptags[2] = 1; + env->fptags[3] = 1; + env->fptags[4] = 1; + env->fptags[5] = 1; + env->fptags[6] = 1; + env->fptags[7] = 1; +} + +void helper_frstor(target_ulong ptr, int data32) +{ + floatx80 tmp; + int i; + + helper_fldenv(ptr, data32); + ptr += (14 << data32); + + for(i = 0;i < 8; i++) { + tmp = helper_fldt(ptr); + (env->fpregs[(env->fpstt + (i)) & 7].d) = tmp; + ptr += 10; + } +} +# 4591 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +void helper_fxsave(target_ulong ptr, int data64) +{ + int fpus, fptag, i, nb_xmm_regs; + floatx80 tmp; + target_ulong addr; + + + if (ptr & 0xf) { + raise_exception(13); + } + + fpus = (env->fpus & ~0x3800) | (env->fpstt & 0x7) << 11; + fptag = 0; + for(i = 0; i < 8; i++) { + fptag |= (env->fptags[i] << i); + } + stw_data(ptr, env->fpuc); + stw_data(ptr + 2, fpus); + stw_data(ptr + 4, fptag ^ 0xff); + + + + + + + { + stl_data(ptr + 0x08, 0); + stl_data(ptr + 0x0c, 0); + stl_data(ptr + 0x10, 0); + stl_data(ptr + 0x14, 0); + } + + addr = ptr + 0x20; + for(i = 0;i < 8; i++) { + tmp = (env->fpregs[(env->fpstt + (i)) & 7].d); + helper_fstt(tmp, addr); + addr += 16; + } + + if (env->cr[4] & (1 << 9)) { + + stl_data(ptr + 0x18, env->mxcsr); + stl_data(ptr + 0x1c, 0x0000ffff); + if (env->hflags & (1 << 15)) + nb_xmm_regs = 16; + else + nb_xmm_regs = 8; + addr = ptr + 0xa0; + + if (!(env->efer & (1 << 14)) + || (env->hflags & (3 << 0)) + || !(env->hflags & (1 << 14))) { + for(i = 0; i < nb_xmm_regs; i++) { + stq_data(addr, env->xmm_regs[i]._q[0]); + stq_data(addr + 8, env->xmm_regs[i]._q[1]); + addr += 16; + } + } + } +} + +void helper_fxrstor(target_ulong ptr, int data64) +{ + int i, fpus, fptag, nb_xmm_regs; + floatx80 tmp; + target_ulong addr; + + + if (ptr & 0xf) { + raise_exception(13); + } + + env->fpuc = lduw_data(ptr); + fpus = lduw_data(ptr + 2); + fptag = lduw_data(ptr + 4); + env->fpstt = (fpus >> 11) & 7; + env->fpus = fpus & ~0x3800; + fptag ^= 0xff; + for(i = 0;i < 8; i++) { + env->fptags[i] = ((fptag >> i) & 1); + } + + addr = ptr + 0x20; + for(i = 0;i < 8; i++) { + tmp = helper_fldt(addr); + (env->fpregs[(env->fpstt + (i)) & 7].d) = tmp; + addr += 16; + } + + if (env->cr[4] & (1 << 9)) { + + env->mxcsr = ldl_data(ptr + 0x18); + + if (env->hflags & (1 << 15)) + nb_xmm_regs = 16; + else + nb_xmm_regs = 8; + addr = ptr + 0xa0; + + if (!(env->efer & (1 << 14)) + || (env->hflags & (3 << 0)) + || !(env->hflags & (1 << 14))) { + for(i = 0; i < nb_xmm_regs; i++) { + env->xmm_regs[i]._q[0] = ldq_data(addr); + env->xmm_regs[i]._q[1] = ldq_data(addr + 8); + addr += 16; + } + } + } +} + +void cpu_get_fp80(uint64_t *pmant, uint16_t *pexp, floatx80 f) +{ + CPU_LDoubleU temp; + + temp.d = f; + *pmant = temp.l.lower; + *pexp = temp.l.upper; +} + +floatx80 cpu_set_fp80(uint64_t mant, uint16_t upper) +{ + CPU_LDoubleU temp; + + temp.l.upper = upper; + temp.l.lower = mant; + return temp.d; +} +# 4864 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +static void do_hlt(void) +{ + env->hflags &= ~(1 << 3); + env->halted = 1; + env->exception_index = 0x10001; + cpu_loop_exit(env); +} + +void helper_hlt(int next_eip_addend) +{ + helper_svm_check_intercept_param(0x078, 0); + (env->eip) += next_eip_addend; + + do_hlt(); +} + +void helper_monitor(target_ulong ptr) +{ + if ((uint32_t)(env->regs[1]) != 0) + raise_exception(13); + + helper_svm_check_intercept_param(0x08a, 0); +} + +void helper_mwait(int next_eip_addend) +{ + if ((uint32_t)(env->regs[1]) != 0) + raise_exception(13); + helper_svm_check_intercept_param(0x08b, 0); + (env->eip) += next_eip_addend; + + + if (env->cpu_index != 0 || env->next_cpu != ((void *)0)) { + + + } else { + do_hlt(); + } +} + +void helper_debug(void) +{ + env->exception_index = 0x10002; + cpu_loop_exit(env); +} + +void helper_reset_rf(void) +{ + env->eflags &= ~0x00010000; +} + +void helper_raise_interrupt(int intno, int next_eip_addend) +{ + raise_interrupt(intno, 1, 0, next_eip_addend); +} + +void helper_raise_exception(int exception_index) +{ + raise_exception(exception_index); +} + +void helper_cli(void) +{ + env->eflags &= ~0x00000200; +} + +void helper_sti(void) +{ + env->eflags |= 0x00000200; +} +# 4951 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +void helper_set_inhibit_irq(void) +{ + env->hflags |= (1 << 3); +} + +void helper_reset_inhibit_irq(void) +{ + env->hflags &= ~(1 << 3); +} + +void helper_boundw(target_ulong a0, int v) +{ + int low, high; + low = ldsw_data(a0); + high = ldsw_data(a0 + 2); + v = (int16_t)v; + if (v < low || v > high) { + raise_exception(5); + } +} + +void helper_boundl(target_ulong a0, int v) +{ + int low, high; + low = ldl_data(a0); + high = ldl_data(a0 + 4); + if (v < low || v > high) { + raise_exception(5); + } +} + + + + + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" 1 +# 24 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-timer.h" 1 + + + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/main-loop.h" 1 +# 43 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/main-loop.h" +int qemu_init_main_loop(void); +# 53 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/main-loop.h" +int main_loop_init(void); +# 90 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/main-loop.h" +int main_loop_wait(int nonblocking); +# 105 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/main-loop.h" +void qemu_notify_event(void); +# 174 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/main-loop.h" +typedef void IOReadHandler(void *opaque, const uint8_t *buf, int size); +typedef int IOCanReadHandler(void *opaque); +typedef void IOHandler(void *opaque); +# 218 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/main-loop.h" +int qemu_set_fd_handler2(int fd, + IOCanReadHandler *fd_read_poll, + IOHandler *fd_read, + IOHandler *fd_write, + void *opaque); +# 252 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/main-loop.h" +int qemu_set_fd_handler(int fd, + IOHandler *fd_read, + IOHandler *fd_write, + void *opaque); + +typedef struct QEMUBH QEMUBH; +typedef void QEMUBHFunc(void *opaque); +# 267 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/main-loop.h" +QEMUBH *qemu_bh_new(QEMUBHFunc *cb, void *opaque); +# 281 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/main-loop.h" +void qemu_bh_schedule(QEMUBH *bh); +# 294 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/main-loop.h" +void qemu_bh_cancel(QEMUBH *bh); +# 305 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/main-loop.h" +void qemu_bh_delete(QEMUBH *bh); +# 323 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/main-loop.h" +int qemu_add_child_watch(pid_t pid); +# 339 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/main-loop.h" +void qemu_mutex_lock_iothread(void); +# 354 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/main-loop.h" +void qemu_mutex_unlock_iothread(void); + + + +void qemu_fd_register(int fd); +void qemu_iohandler_fill(int *pnfds, fd_set *readfds, fd_set *writefds, fd_set *xfds); +void qemu_iohandler_poll(fd_set *readfds, fd_set *writefds, fd_set *xfds, int rc); + +void qemu_bh_schedule_idle(QEMUBH *bh); +int qemu_bh_poll(void); +void qemu_bh_update_timeout(uint32_t *timeout); +# 6 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-timer.h" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/notify.h" 1 +# 19 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/notify.h" +typedef struct Notifier Notifier; + +struct Notifier +{ + void (*notify)(Notifier *notifier, void *data); + struct { struct Notifier *le_next; struct Notifier **le_prev; } node; +}; + +typedef struct NotifierList +{ + struct { struct Notifier *lh_first; } notifiers; +} NotifierList; + + + + +void notifier_list_init(NotifierList *list); + +void notifier_list_add(NotifierList *list, Notifier *notifier); + +void notifier_remove(Notifier *notifier); + +void notifier_list_notify(NotifierList *list, void *data); +# 7 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-timer.h" 2 +# 18 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-timer.h" +typedef struct QEMUClock QEMUClock; +typedef void QEMUTimerCB(void *opaque); + + + + + +extern QEMUClock *rt_clock; + + + + +extern QEMUClock *vm_clock; + + + + + + +extern QEMUClock *host_clock; + +int64_t qemu_get_clock_ns(QEMUClock *clock); +int64_t qemu_clock_has_timers(QEMUClock *clock); +int64_t qemu_clock_expired(QEMUClock *clock); +int64_t qemu_clock_deadline(QEMUClock *clock); +void qemu_clock_enable(QEMUClock *clock, _Bool enabled); +void qemu_clock_warp(QEMUClock *clock); + +void qemu_register_clock_reset_notifier(QEMUClock *clock, Notifier *notifier); +void qemu_unregister_clock_reset_notifier(QEMUClock *clock, + Notifier *notifier); + +QEMUTimer *qemu_new_timer(QEMUClock *clock, int scale, + QEMUTimerCB *cb, void *opaque); +void qemu_free_timer(QEMUTimer *ts); +void qemu_del_timer(QEMUTimer *ts); +void qemu_mod_timer_ns(QEMUTimer *ts, int64_t expire_time); +void qemu_mod_timer(QEMUTimer *ts, int64_t expire_time); +_Bool qemu_timer_pending(QEMUTimer *ts); +_Bool qemu_timer_expired(QEMUTimer *timer_head, int64_t current_time); +uint64_t qemu_timer_expire_time_ns(QEMUTimer *ts); + +void qemu_run_timers(QEMUClock *clock); +void qemu_run_all_timers(void); +void configure_alarms(char const *opt); +void init_clocks(void); +int init_timer_alarm(void); + +int64_t cpu_get_ticks(void); +void cpu_enable_ticks(void); +void cpu_disable_ticks(void); + +static __attribute__ (( always_inline )) __inline__ QEMUTimer *qemu_new_timer_ns(QEMUClock *clock, QEMUTimerCB *cb, + void *opaque) +{ + return qemu_new_timer(clock, 1, cb, opaque); +} + +static __attribute__ (( always_inline )) __inline__ QEMUTimer *qemu_new_timer_ms(QEMUClock *clock, QEMUTimerCB *cb, + void *opaque) +{ + return qemu_new_timer(clock, 1000000, cb, opaque); +} + +static __attribute__ (( always_inline )) __inline__ int64_t qemu_get_clock_ms(QEMUClock *clock) +{ + return qemu_get_clock_ns(clock) / 1000000; +} + +static __attribute__ (( always_inline )) __inline__ int64_t get_ticks_per_sec(void) +{ + return 1000000000LL; +} + + +static __attribute__ (( always_inline )) __inline__ int64_t get_clock_realtime(void) +{ + struct timeval tv; + + gettimeofday(&tv, ((void *)0)); + return tv.tv_sec * 1000000000LL + (tv.tv_usec * 1000); +} +# 116 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-timer.h" +extern int use_rt_clock; + +static __attribute__ (( always_inline )) __inline__ int64_t get_clock(void) +{ + + + if (use_rt_clock) { + struct timespec ts; + clock_gettime(1, &ts); + return ts.tv_sec * 1000000000LL + ts.tv_nsec; + } else + + { + + + return get_clock_realtime(); + } +} + + +void qemu_get_timer(QEMUFile *f, QEMUTimer *ts); +void qemu_put_timer(QEMUFile *f, QEMUTimer *ts); + + +int64_t cpu_get_icount(void); +int64_t cpu_get_clock(void); +# 174 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/qemu-timer.h" +static __attribute__ (( always_inline )) __inline__ int64_t cpu_get_real_ticks(void) +{ + int64_t val; + asm volatile ("rdtsc" : "=A" (val)); + return val; +} +# 25 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" 1 +# 26 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/ioport.h" 1 +# 27 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" 2 +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/int128.h" 1 + + + +typedef struct Int128 Int128; + +struct Int128 { + uint64_t lo; + int64_t hi; +}; + +static __attribute__ (( always_inline )) __inline__ Int128 int128_make64(uint64_t a) +{ + return (Int128) { a, 0 }; +} + +static __attribute__ (( always_inline )) __inline__ uint64_t int128_get64(Int128 a) +{ + ((!a.hi) ? (void) (0) : __assert_fail ("!a.hi", "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/int128.h", 18, __PRETTY_FUNCTION__)); + return a.lo; +} + +static __attribute__ (( always_inline )) __inline__ Int128 int128_zero(void) +{ + return int128_make64(0); +} + +static __attribute__ (( always_inline )) __inline__ Int128 int128_one(void) +{ + return int128_make64(1); +} + +static __attribute__ (( always_inline )) __inline__ Int128 int128_2_64(void) +{ + return (Int128) { 0, 1 }; +} + +static __attribute__ (( always_inline )) __inline__ Int128 int128_add(Int128 a, Int128 b) +{ + Int128 r = { a.lo + b.lo, a.hi + b.hi }; + r.hi += (r.lo < a.lo) || (r.lo < b.lo); + return r; +} + +static __attribute__ (( always_inline )) __inline__ Int128 int128_neg(Int128 a) +{ + a.lo = ~a.lo; + a.hi = ~a.hi; + return int128_add(a, int128_one()); +} + +static __attribute__ (( always_inline )) __inline__ Int128 int128_sub(Int128 a, Int128 b) +{ + return int128_add(a, int128_neg(b)); +} + +static __attribute__ (( always_inline )) __inline__ _Bool int128_nonneg(Int128 a) +{ + return a.hi >= 0; +} + +static __attribute__ (( always_inline )) __inline__ _Bool int128_eq(Int128 a, Int128 b) +{ + return a.lo == b.lo && a.hi == b.hi; +} + +static __attribute__ (( always_inline )) __inline__ _Bool int128_ne(Int128 a, Int128 b) +{ + return !int128_eq(a, b); +} + +static __attribute__ (( always_inline )) __inline__ _Bool int128_ge(Int128 a, Int128 b) +{ + return int128_nonneg(int128_sub(a, b)); +} + +static __attribute__ (( always_inline )) __inline__ _Bool int128_lt(Int128 a, Int128 b) +{ + return !int128_ge(a, b); +} + +static __attribute__ (( always_inline )) __inline__ _Bool int128_le(Int128 a, Int128 b) +{ + return int128_ge(b, a); +} + +static __attribute__ (( always_inline )) __inline__ _Bool int128_gt(Int128 a, Int128 b) +{ + return !int128_le(a, b); +} + +static __attribute__ (( always_inline )) __inline__ _Bool int128_nz(Int128 a) +{ + return a.lo || a.hi; +} + +static __attribute__ (( always_inline )) __inline__ Int128 int128_min(Int128 a, Int128 b) +{ + return int128_le(a, b) ? a : b; +} + +static __attribute__ (( always_inline )) __inline__ Int128 int128_max(Int128 a, Int128 b) +{ + return int128_ge(a, b) ? a : b; +} + +static __attribute__ (( always_inline )) __inline__ void int128_addto(Int128 *a, Int128 b) +{ + *a = int128_add(*a, b); +} + +static __attribute__ (( always_inline )) __inline__ void int128_subfrom(Int128 *a, Int128 b) +{ + *a = int128_sub(*a, b); +} +# 28 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" 2 + +typedef struct MemoryRegionOps MemoryRegionOps; +typedef struct MemoryRegion MemoryRegion; +typedef struct MemoryRegionPortio MemoryRegionPortio; +typedef struct MemoryRegionMmio MemoryRegionMmio; +# 41 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +struct MemoryRegionMmio { + CPUReadMemoryFunc *read[3]; + CPUWriteMemoryFunc *write[3]; +}; + + +typedef struct MemoryRegionIORange MemoryRegionIORange; +struct MemoryRegionIORange { + IORange iorange; + MemoryRegion *mr; + target_phys_addr_t offset; +}; + + + + +struct MemoryRegionOps { + + + uint64_t (*read)(void *opaque, + target_phys_addr_t addr, + unsigned size); + + + void (*write)(void *opaque, + target_phys_addr_t addr, + uint64_t data, + unsigned size); + + enum device_endian endianness; + + struct { + + + + unsigned min_access_size; + unsigned max_access_size; + + + + _Bool unaligned; + + + + + + _Bool (*accepts)(void *opaque, target_phys_addr_t addr, + unsigned size, _Bool is_write); + } valid; + + struct { + + + + unsigned min_access_size; + + + + unsigned max_access_size; + + + + _Bool unaligned; + } impl; + + + + + const MemoryRegionPortio *old_portio; + + + + const MemoryRegionMmio old_mmio; +}; + +typedef struct CoalescedMemoryRange CoalescedMemoryRange; +typedef struct MemoryRegionIoeventfd MemoryRegionIoeventfd; + +struct MemoryRegion { + + const MemoryRegionOps *ops; + void *opaque; + MemoryRegion *parent; + Int128 size; + target_phys_addr_t addr; + void (*destructor)(MemoryRegion *mr); + ram_addr_t ram_addr; + _Bool subpage; + _Bool terminates; + _Bool readable; + _Bool ram; + _Bool readonly; + _Bool enabled; + _Bool rom_device; + _Bool warning_printed; + MemoryRegion *alias; + target_phys_addr_t alias_offset; + unsigned priority; + _Bool may_overlap; + struct subregions { struct MemoryRegion *tqh_first; struct MemoryRegion * *tqh_last; } subregions; + struct { struct MemoryRegion *tqe_next; struct MemoryRegion * *tqe_prev; } subregions_link; + struct coalesced_ranges { struct CoalescedMemoryRange *tqh_first; struct CoalescedMemoryRange * *tqh_last; } coalesced; + const char *name; + uint8_t dirty_log_mask; + unsigned ioeventfd_nb; + MemoryRegionIoeventfd *ioeventfds; +}; + +struct MemoryRegionPortio { + uint32_t offset; + uint32_t len; + unsigned size; + IOPortReadFunc *read; + IOPortWriteFunc *write; +}; + + + +typedef struct MemoryRegionSection MemoryRegionSection; +# 172 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +struct MemoryRegionSection { + MemoryRegion *mr; + MemoryRegion *address_space; + target_phys_addr_t offset_within_region; + uint64_t size; + target_phys_addr_t offset_within_address_space; + _Bool readonly; +}; + +typedef struct MemoryListener MemoryListener; + + + + + + + +struct MemoryListener { + void (*begin)(MemoryListener *listener); + void (*commit)(MemoryListener *listener); + void (*region_add)(MemoryListener *listener, MemoryRegionSection *section); + void (*region_del)(MemoryListener *listener, MemoryRegionSection *section); + void (*region_nop)(MemoryListener *listener, MemoryRegionSection *section); + void (*log_start)(MemoryListener *listener, MemoryRegionSection *section); + void (*log_stop)(MemoryListener *listener, MemoryRegionSection *section); + void (*log_sync)(MemoryListener *listener, MemoryRegionSection *section); + void (*log_global_start)(MemoryListener *listener); + void (*log_global_stop)(MemoryListener *listener); + void (*eventfd_add)(MemoryListener *listener, MemoryRegionSection *section, + _Bool match_data, uint64_t data, int fd); + void (*eventfd_del)(MemoryListener *listener, MemoryRegionSection *section, + _Bool match_data, uint64_t data, int fd); + + unsigned priority; + MemoryRegion *address_space_filter; + struct { struct MemoryListener *tqe_next; struct MemoryListener * *tqe_prev; } link; +}; +# 220 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_init(MemoryRegion *mr, + const char *name, + uint64_t size); +# 236 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_init_io(MemoryRegion *mr, + const MemoryRegionOps *ops, + void *opaque, + const char *name, + uint64_t size); +# 250 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_init_ram(MemoryRegion *mr, + const char *name, + uint64_t size); +# 264 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_init_ram_ptr(MemoryRegion *mr, + const char *name, + uint64_t size, + void *ptr); +# 280 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_init_alias(MemoryRegion *mr, + const char *name, + MemoryRegion *orig, + target_phys_addr_t offset, + uint64_t size); +# 295 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_init_rom_device(MemoryRegion *mr, + const MemoryRegionOps *ops, + void *opaque, + const char *name, + uint64_t size); +# 313 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_init_reservation(MemoryRegion *mr, + const char *name, + uint64_t size); + + + + + + + +void memory_region_destroy(MemoryRegion *mr); + + + + + + +uint64_t memory_region_size(MemoryRegion *mr); +# 339 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +_Bool memory_region_is_ram(MemoryRegion *mr); +# 349 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +static __attribute__ (( always_inline )) __inline__ _Bool memory_region_is_romd(MemoryRegion *mr) +{ + return mr->rom_device && mr->readable; +} +# 361 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +const char *memory_region_name(MemoryRegion *mr); +# 370 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +_Bool memory_region_is_logging(MemoryRegion *mr); +# 379 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +_Bool memory_region_is_rom(MemoryRegion *mr); +# 390 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void *memory_region_get_ram_ptr(MemoryRegion *mr); +# 403 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_set_log(MemoryRegion *mr, _Bool log, unsigned client); +# 419 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +_Bool memory_region_get_dirty(MemoryRegion *mr, target_phys_addr_t addr, + target_phys_addr_t size, unsigned client); +# 432 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_set_dirty(MemoryRegion *mr, target_phys_addr_t addr, + target_phys_addr_t size); +# 444 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_sync_dirty_bitmap(MemoryRegion *mr); +# 458 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_reset_dirty(MemoryRegion *mr, target_phys_addr_t addr, + target_phys_addr_t size, unsigned client); +# 470 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_set_readonly(MemoryRegion *mr, _Bool readonly); +# 484 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_rom_device_set_readable(MemoryRegion *mr, _Bool readable); +# 495 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_set_coalescing(MemoryRegion *mr); +# 508 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_add_coalescing(MemoryRegion *mr, + target_phys_addr_t offset, + uint64_t size); +# 521 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_clear_coalescing(MemoryRegion *mr); +# 539 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_add_eventfd(MemoryRegion *mr, + target_phys_addr_t addr, + unsigned size, + _Bool match_data, + uint64_t data, + int fd); +# 559 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_del_eventfd(MemoryRegion *mr, + target_phys_addr_t addr, + unsigned size, + _Bool match_data, + uint64_t data, + int fd); +# 579 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_add_subregion(MemoryRegion *mr, + target_phys_addr_t offset, + MemoryRegion *subregion); +# 598 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_add_subregion_overlap(MemoryRegion *mr, + target_phys_addr_t offset, + MemoryRegion *subregion, + unsigned priority); +# 610 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +ram_addr_t memory_region_get_ram_addr(MemoryRegion *mr); +# 620 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_del_subregion(MemoryRegion *mr, + MemoryRegion *subregion); +# 636 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_set_enabled(MemoryRegion *mr, _Bool enabled); +# 647 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_set_address(MemoryRegion *mr, target_phys_addr_t addr); +# 658 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_region_set_alias_offset(MemoryRegion *mr, + target_phys_addr_t offset); +# 679 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +MemoryRegionSection memory_region_find(MemoryRegion *address_space, + target_phys_addr_t addr, uint64_t size); +# 690 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +static __attribute__ (( always_inline )) __inline__ target_phys_addr_t +memory_region_section_addr(MemoryRegionSection *section, + target_phys_addr_t addr) +{ + addr -= section->offset_within_address_space; + addr += section->offset_within_region; + return addr; +} +# 706 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_global_sync_dirty_bitmap(MemoryRegion *address_space); + + + + + + + +void memory_region_transaction_begin(void); + + + + + +void memory_region_transaction_commit(void); +# 730 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/memory.h" +void memory_listener_register(MemoryListener *listener, MemoryRegion *filter); + + + + + + +void memory_listener_unregister(MemoryListener *listener); + + + + +void memory_global_dirty_log_start(void); + + + + +void memory_global_dirty_log_stop(void); + +void mtree_info(fprintf_function mon_printf, void *f); +# 26 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" 2 +# 69 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" +static uint8_t slow_ldb_mmu( + target_ulong addr, + int mmu_idx, + uintptr_t retaddr); +static __attribute__ (( always_inline )) __inline__ uint8_t io_readb( + target_phys_addr_t physaddr, + target_ulong addr, + uintptr_t retaddr) +{ + uint8_t res; + MemoryRegion *mr = iotlb_to_region(physaddr); + + physaddr = (physaddr & ~((1 << 12) - 1)) + addr; + env->mem_io_pc = retaddr; + if (mr != &io_mem_ram && mr != &io_mem_rom + && mr != &io_mem_unassigned + && mr != &io_mem_notdirty + && !can_do_io(env)) { + cpu_io_recompile(env, retaddr); + } + + env->mem_io_vaddr = addr; + + res = io_mem_read(mr, physaddr, 1 << 0); +# 102 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" + return res; +} + + +uint8_t +__ldb_mmu( + target_ulong addr, + int mmu_idx) +{ + uint8_t res; + int index; + target_ulong tlb_addr; + target_phys_addr_t ioaddr; + uintptr_t retaddr; + + + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_read; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 0) - 1)) != 0) + goto do_unaligned_access; + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + ioaddr = env->iotlb[mmu_idx][index]; + res = io_readb( ioaddr, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 0) - 1) >= (1 << 12)) { + + do_unaligned_access: + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + res = slow_ldb_mmu( addr, + mmu_idx, retaddr); + } else { + + uintptr_t addend; + + + + + + + addend = env->tlb_table[mmu_idx][index].addend; + res = ldub_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend)))) + ; + } + } else { + + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + + tlb_fill(env, addr, 0, mmu_idx, retaddr); + goto redo; + } + return res; +} + + +static uint8_t +slow_ldb_mmu( + target_ulong addr, + int mmu_idx, + uintptr_t retaddr) +{ + uint8_t res, res1, res2; + int index, shift; + target_phys_addr_t ioaddr; + target_ulong tlb_addr, addr1, addr2; + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_read; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 0) - 1)) != 0) + goto do_unaligned_access; + ioaddr = env->iotlb[mmu_idx][index]; + res = io_readb( ioaddr, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 0) - 1) >= (1 << 12)) { + do_unaligned_access: + + addr1 = addr & ~((1 << 0) - 1); + addr2 = addr1 + (1 << 0); + res1 = slow_ldb_mmu( addr1, + mmu_idx, retaddr); + res2 = slow_ldb_mmu( addr2, + mmu_idx, retaddr); + shift = (addr & ((1 << 0) - 1)) * 8; + + + + res = (res1 >> shift) | (res2 << (((1 << 0) * 8) - shift)); + + res = (uint8_t)res; + } else { + + uintptr_t addend = env->tlb_table[mmu_idx][index].addend; + res = ldub_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend)))) + ; + } + } else { + + tlb_fill(env, addr, 0, mmu_idx, retaddr); + goto redo; + } + return res; +} + + + +static void slow_stb_mmu( + target_ulong addr, + uint8_t val, + int mmu_idx, + uintptr_t retaddr); + +static __attribute__ (( always_inline )) __inline__ void io_writeb( + target_phys_addr_t physaddr, + uint8_t val, + target_ulong addr, + uintptr_t retaddr) +{ + MemoryRegion *mr = iotlb_to_region(physaddr); + + physaddr = (physaddr & ~((1 << 12) - 1)) + addr; + if (mr != &io_mem_ram && mr != &io_mem_rom + && mr != &io_mem_unassigned + && mr != &io_mem_notdirty + && !can_do_io(env)) { + cpu_io_recompile(env, retaddr); + } + + env->mem_io_vaddr = addr; + env->mem_io_pc = retaddr; + + io_mem_write(mr, physaddr, val, 1 << 0); +# 254 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" +} + +void __stb_mmu( + target_ulong addr, + uint8_t val, + int mmu_idx) +{ + target_phys_addr_t ioaddr; + target_ulong tlb_addr; + uintptr_t retaddr; + int index; + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_write; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 0) - 1)) != 0) + goto do_unaligned_access; + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + ioaddr = env->iotlb[mmu_idx][index]; + io_writeb( ioaddr, val, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 0) - 1) >= (1 << 12)) { + do_unaligned_access: + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + slow_stb_mmu( addr, val, + mmu_idx, retaddr); + } else { + + uintptr_t addend; + + + + + + + addend = env->tlb_table[mmu_idx][index].addend; + stb_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend))), val) + ; + } + } else { + + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + + tlb_fill(env, addr, 1, mmu_idx, retaddr); + goto redo; + } +} + + +static void slow_stb_mmu( + target_ulong addr, + uint8_t val, + int mmu_idx, + uintptr_t retaddr) +{ + target_phys_addr_t ioaddr; + target_ulong tlb_addr; + int index, i; + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_write; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 0) - 1)) != 0) + goto do_unaligned_access; + ioaddr = env->iotlb[mmu_idx][index]; + io_writeb( ioaddr, val, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 0) - 1) >= (1 << 12)) { + do_unaligned_access: + + + + for(i = (1 << 0) - 1; i >= 0; i--) { + + + + + + slow_stb_mmu( addr + i, + val >> (i * 8), + mmu_idx, retaddr); + + } + } else { + + uintptr_t addend = env->tlb_table[mmu_idx][index].addend; + stb_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend))), val) + ; + } + } else { + + tlb_fill(env, addr, 1, mmu_idx, retaddr); + goto redo; + } +} +# 4988 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" 1 +# 69 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" +static uint16_t slow_ldw_mmu( + target_ulong addr, + int mmu_idx, + uintptr_t retaddr); +static __attribute__ (( always_inline )) __inline__ uint16_t io_readw( + target_phys_addr_t physaddr, + target_ulong addr, + uintptr_t retaddr) +{ + uint16_t res; + MemoryRegion *mr = iotlb_to_region(physaddr); + + physaddr = (physaddr & ~((1 << 12) - 1)) + addr; + env->mem_io_pc = retaddr; + if (mr != &io_mem_ram && mr != &io_mem_rom + && mr != &io_mem_unassigned + && mr != &io_mem_notdirty + && !can_do_io(env)) { + cpu_io_recompile(env, retaddr); + } + + env->mem_io_vaddr = addr; + + res = io_mem_read(mr, physaddr, 1 << 1); +# 102 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" + return res; +} + + +uint16_t +__ldw_mmu( + target_ulong addr, + int mmu_idx) +{ + uint16_t res; + int index; + target_ulong tlb_addr; + target_phys_addr_t ioaddr; + uintptr_t retaddr; + + + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_read; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 1) - 1)) != 0) + goto do_unaligned_access; + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + ioaddr = env->iotlb[mmu_idx][index]; + res = io_readw( ioaddr, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 1) - 1) >= (1 << 12)) { + + do_unaligned_access: + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + res = slow_ldw_mmu( addr, + mmu_idx, retaddr); + } else { + + uintptr_t addend; + + + + + + + addend = env->tlb_table[mmu_idx][index].addend; + res = lduw_le_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend)))) + ; + } + } else { + + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + + tlb_fill(env, addr, 0, mmu_idx, retaddr); + goto redo; + } + return res; +} + + +static uint16_t +slow_ldw_mmu( + target_ulong addr, + int mmu_idx, + uintptr_t retaddr) +{ + uint16_t res, res1, res2; + int index, shift; + target_phys_addr_t ioaddr; + target_ulong tlb_addr, addr1, addr2; + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_read; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 1) - 1)) != 0) + goto do_unaligned_access; + ioaddr = env->iotlb[mmu_idx][index]; + res = io_readw( ioaddr, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 1) - 1) >= (1 << 12)) { + do_unaligned_access: + + addr1 = addr & ~((1 << 1) - 1); + addr2 = addr1 + (1 << 1); + res1 = slow_ldw_mmu( addr1, + mmu_idx, retaddr); + res2 = slow_ldw_mmu( addr2, + mmu_idx, retaddr); + shift = (addr & ((1 << 1) - 1)) * 8; + + + + res = (res1 >> shift) | (res2 << (((1 << 1) * 8) - shift)); + + res = (uint16_t)res; + } else { + + uintptr_t addend = env->tlb_table[mmu_idx][index].addend; + res = lduw_le_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend)))) + ; + } + } else { + + tlb_fill(env, addr, 0, mmu_idx, retaddr); + goto redo; + } + return res; +} + + + +static void slow_stw_mmu( + target_ulong addr, + uint16_t val, + int mmu_idx, + uintptr_t retaddr); + +static __attribute__ (( always_inline )) __inline__ void io_writew( + target_phys_addr_t physaddr, + uint16_t val, + target_ulong addr, + uintptr_t retaddr) +{ + MemoryRegion *mr = iotlb_to_region(physaddr); + + physaddr = (physaddr & ~((1 << 12) - 1)) + addr; + if (mr != &io_mem_ram && mr != &io_mem_rom + && mr != &io_mem_unassigned + && mr != &io_mem_notdirty + && !can_do_io(env)) { + cpu_io_recompile(env, retaddr); + } + + env->mem_io_vaddr = addr; + env->mem_io_pc = retaddr; + + io_mem_write(mr, physaddr, val, 1 << 1); +# 254 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" +} + +void __stw_mmu( + target_ulong addr, + uint16_t val, + int mmu_idx) +{ + target_phys_addr_t ioaddr; + target_ulong tlb_addr; + uintptr_t retaddr; + int index; + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_write; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 1) - 1)) != 0) + goto do_unaligned_access; + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + ioaddr = env->iotlb[mmu_idx][index]; + io_writew( ioaddr, val, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 1) - 1) >= (1 << 12)) { + do_unaligned_access: + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + slow_stw_mmu( addr, val, + mmu_idx, retaddr); + } else { + + uintptr_t addend; + + + + + + + addend = env->tlb_table[mmu_idx][index].addend; + stw_le_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend))), val) + ; + } + } else { + + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + + tlb_fill(env, addr, 1, mmu_idx, retaddr); + goto redo; + } +} + + +static void slow_stw_mmu( + target_ulong addr, + uint16_t val, + int mmu_idx, + uintptr_t retaddr) +{ + target_phys_addr_t ioaddr; + target_ulong tlb_addr; + int index, i; + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_write; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 1) - 1)) != 0) + goto do_unaligned_access; + ioaddr = env->iotlb[mmu_idx][index]; + io_writew( ioaddr, val, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 1) - 1) >= (1 << 12)) { + do_unaligned_access: + + + + for(i = (1 << 1) - 1; i >= 0; i--) { + + + + + + slow_stb_mmu( addr + i, + val >> (i * 8), + mmu_idx, retaddr); + + } + } else { + + uintptr_t addend = env->tlb_table[mmu_idx][index].addend; + stw_le_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend))), val) + ; + } + } else { + + tlb_fill(env, addr, 1, mmu_idx, retaddr); + goto redo; + } +} +# 4991 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" 1 +# 69 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" +static uint32_t slow_ldl_mmu( + target_ulong addr, + int mmu_idx, + uintptr_t retaddr); +static __attribute__ (( always_inline )) __inline__ uint32_t io_readl( + target_phys_addr_t physaddr, + target_ulong addr, + uintptr_t retaddr) +{ + uint32_t res; + MemoryRegion *mr = iotlb_to_region(physaddr); + + physaddr = (physaddr & ~((1 << 12) - 1)) + addr; + env->mem_io_pc = retaddr; + if (mr != &io_mem_ram && mr != &io_mem_rom + && mr != &io_mem_unassigned + && mr != &io_mem_notdirty + && !can_do_io(env)) { + cpu_io_recompile(env, retaddr); + } + + env->mem_io_vaddr = addr; + + res = io_mem_read(mr, physaddr, 1 << 2); +# 102 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" + return res; +} + + +uint32_t +__ldl_mmu( + target_ulong addr, + int mmu_idx) +{ + uint32_t res; + int index; + target_ulong tlb_addr; + target_phys_addr_t ioaddr; + uintptr_t retaddr; + + + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_read; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 2) - 1)) != 0) + goto do_unaligned_access; + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + ioaddr = env->iotlb[mmu_idx][index]; + res = io_readl( ioaddr, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 2) - 1) >= (1 << 12)) { + + do_unaligned_access: + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + res = slow_ldl_mmu( addr, + mmu_idx, retaddr); + } else { + + uintptr_t addend; + + + + + + + addend = env->tlb_table[mmu_idx][index].addend; + res = ldl_le_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend)))) + ; + } + } else { + + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + + tlb_fill(env, addr, 0, mmu_idx, retaddr); + goto redo; + } + return res; +} + + +static uint32_t +slow_ldl_mmu( + target_ulong addr, + int mmu_idx, + uintptr_t retaddr) +{ + uint32_t res, res1, res2; + int index, shift; + target_phys_addr_t ioaddr; + target_ulong tlb_addr, addr1, addr2; + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_read; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 2) - 1)) != 0) + goto do_unaligned_access; + ioaddr = env->iotlb[mmu_idx][index]; + res = io_readl( ioaddr, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 2) - 1) >= (1 << 12)) { + do_unaligned_access: + + addr1 = addr & ~((1 << 2) - 1); + addr2 = addr1 + (1 << 2); + res1 = slow_ldl_mmu( addr1, + mmu_idx, retaddr); + res2 = slow_ldl_mmu( addr2, + mmu_idx, retaddr); + shift = (addr & ((1 << 2) - 1)) * 8; + + + + res = (res1 >> shift) | (res2 << (((1 << 2) * 8) - shift)); + + res = (uint32_t)res; + } else { + + uintptr_t addend = env->tlb_table[mmu_idx][index].addend; + res = ldl_le_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend)))) + ; + } + } else { + + tlb_fill(env, addr, 0, mmu_idx, retaddr); + goto redo; + } + return res; +} + + + +static void slow_stl_mmu( + target_ulong addr, + uint32_t val, + int mmu_idx, + uintptr_t retaddr); + +static __attribute__ (( always_inline )) __inline__ void io_writel( + target_phys_addr_t physaddr, + uint32_t val, + target_ulong addr, + uintptr_t retaddr) +{ + MemoryRegion *mr = iotlb_to_region(physaddr); + + physaddr = (physaddr & ~((1 << 12) - 1)) + addr; + if (mr != &io_mem_ram && mr != &io_mem_rom + && mr != &io_mem_unassigned + && mr != &io_mem_notdirty + && !can_do_io(env)) { + cpu_io_recompile(env, retaddr); + } + + env->mem_io_vaddr = addr; + env->mem_io_pc = retaddr; + + io_mem_write(mr, physaddr, val, 1 << 2); +# 254 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" +} + +void __stl_mmu( + target_ulong addr, + uint32_t val, + int mmu_idx) +{ + target_phys_addr_t ioaddr; + target_ulong tlb_addr; + uintptr_t retaddr; + int index; + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_write; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 2) - 1)) != 0) + goto do_unaligned_access; + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + ioaddr = env->iotlb[mmu_idx][index]; + io_writel( ioaddr, val, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 2) - 1) >= (1 << 12)) { + do_unaligned_access: + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + slow_stl_mmu( addr, val, + mmu_idx, retaddr); + } else { + + uintptr_t addend; + + + + + + + addend = env->tlb_table[mmu_idx][index].addend; + stl_le_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend))), val) + ; + } + } else { + + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + + tlb_fill(env, addr, 1, mmu_idx, retaddr); + goto redo; + } +} + + +static void slow_stl_mmu( + target_ulong addr, + uint32_t val, + int mmu_idx, + uintptr_t retaddr) +{ + target_phys_addr_t ioaddr; + target_ulong tlb_addr; + int index, i; + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_write; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 2) - 1)) != 0) + goto do_unaligned_access; + ioaddr = env->iotlb[mmu_idx][index]; + io_writel( ioaddr, val, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 2) - 1) >= (1 << 12)) { + do_unaligned_access: + + + + for(i = (1 << 2) - 1; i >= 0; i--) { + + + + + + slow_stb_mmu( addr + i, + val >> (i * 8), + mmu_idx, retaddr); + + } + } else { + + uintptr_t addend = env->tlb_table[mmu_idx][index].addend; + stl_le_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend))), val) + ; + } + } else { + + tlb_fill(env, addr, 1, mmu_idx, retaddr); + goto redo; + } +} +# 4994 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" 1 +# 69 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/softmmu_template.h" +static uint64_t slow_ldq_mmu( + target_ulong addr, + int mmu_idx, + uintptr_t retaddr); +static __attribute__ (( always_inline )) __inline__ uint64_t io_readq( + target_phys_addr_t physaddr, + target_ulong addr, + uintptr_t retaddr) +{ + uint64_t res; + MemoryRegion *mr = iotlb_to_region(physaddr); + + physaddr = (physaddr & ~((1 << 12) - 1)) + addr; + env->mem_io_pc = retaddr; + if (mr != &io_mem_ram && mr != &io_mem_rom + && mr != &io_mem_unassigned + && mr != &io_mem_notdirty + && !can_do_io(env)) { + cpu_io_recompile(env, retaddr); + } + + env->mem_io_vaddr = addr; + + + + + + + + res = io_mem_read(mr, physaddr, 4); + res |= io_mem_read(mr, physaddr + 4, 4) << 32; + + + return res; +} + + +uint64_t +__ldq_mmu( + target_ulong addr, + int mmu_idx) +{ + uint64_t res; + int index; + target_ulong tlb_addr; + target_phys_addr_t ioaddr; + uintptr_t retaddr; + + + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_read; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 3) - 1)) != 0) + goto do_unaligned_access; + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + ioaddr = env->iotlb[mmu_idx][index]; + res = io_readq( ioaddr, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 3) - 1) >= (1 << 12)) { + + do_unaligned_access: + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + res = slow_ldq_mmu( addr, + mmu_idx, retaddr); + } else { + + uintptr_t addend; + + + + + + + addend = env->tlb_table[mmu_idx][index].addend; + res = ldq_le_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend)))) + ; + } + } else { + + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + + tlb_fill(env, addr, 0, mmu_idx, retaddr); + goto redo; + } + return res; +} + + +static uint64_t +slow_ldq_mmu( + target_ulong addr, + int mmu_idx, + uintptr_t retaddr) +{ + uint64_t res, res1, res2; + int index, shift; + target_phys_addr_t ioaddr; + target_ulong tlb_addr, addr1, addr2; + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_read; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 3) - 1)) != 0) + goto do_unaligned_access; + ioaddr = env->iotlb[mmu_idx][index]; + res = io_readq( ioaddr, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 3) - 1) >= (1 << 12)) { + do_unaligned_access: + + addr1 = addr & ~((1 << 3) - 1); + addr2 = addr1 + (1 << 3); + res1 = slow_ldq_mmu( addr1, + mmu_idx, retaddr); + res2 = slow_ldq_mmu( addr2, + mmu_idx, retaddr); + shift = (addr & ((1 << 3) - 1)) * 8; + + + + res = (res1 >> shift) | (res2 << (((1 << 3) * 8) - shift)); + + res = (uint64_t)res; + } else { + + uintptr_t addend = env->tlb_table[mmu_idx][index].addend; + res = ldq_le_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend)))) + ; + } + } else { + + tlb_fill(env, addr, 0, mmu_idx, retaddr); + goto redo; + } + return res; +} + + + +static void slow_stq_mmu( + target_ulong addr, + uint64_t val, + int mmu_idx, + uintptr_t retaddr); + +static __attribute__ (( always_inline )) __inline__ void io_writeq( + target_phys_addr_t physaddr, + uint64_t val, + target_ulong addr, + uintptr_t retaddr) +{ + MemoryRegion *mr = iotlb_to_region(physaddr); + + physaddr = (physaddr & ~((1 << 12) - 1)) + addr; + if (mr != &io_mem_ram && mr != &io_mem_rom + && mr != &io_mem_unassigned + && mr != &io_mem_notdirty + && !can_do_io(env)) { + cpu_io_recompile(env, retaddr); + } + + env->mem_io_vaddr = addr; + env->mem_io_pc = retaddr; + + + + + + + + io_mem_write(mr, physaddr, (uint32_t)val, 4); + io_mem_write(mr, physaddr + 4, val >> 32, 4); + + +} + +void __stq_mmu( + target_ulong addr, + uint64_t val, + int mmu_idx) +{ + target_phys_addr_t ioaddr; + target_ulong tlb_addr; + uintptr_t retaddr; + int index; + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_write; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 3) - 1)) != 0) + goto do_unaligned_access; + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + ioaddr = env->iotlb[mmu_idx][index]; + io_writeq( ioaddr, val, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 3) - 1) >= (1 << 12)) { + do_unaligned_access: + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + slow_stq_mmu( addr, val, + mmu_idx, retaddr); + } else { + + uintptr_t addend; + + + + + + + addend = env->tlb_table[mmu_idx][index].addend; + stq_le_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend))), val) + ; + } + } else { + + retaddr = ((uintptr_t)__builtin_return_address(0) - 1); + + + + + tlb_fill(env, addr, 1, mmu_idx, retaddr); + goto redo; + } +} + + +static void slow_stq_mmu( + target_ulong addr, + uint64_t val, + int mmu_idx, + uintptr_t retaddr) +{ + target_phys_addr_t ioaddr; + target_ulong tlb_addr; + int index, i; + + index = (addr >> 12) & ((1 << 8) - 1); + redo: + tlb_addr = env->tlb_table[mmu_idx][index].addr_write; + if ((addr & ~((1 << 12) - 1)) == (tlb_addr & (~((1 << 12) - 1) | (1 << 3)))) { + if (tlb_addr & ~~((1 << 12) - 1)) { + + if ((addr & ((1 << 3) - 1)) != 0) + goto do_unaligned_access; + ioaddr = env->iotlb[mmu_idx][index]; + io_writeq( ioaddr, val, addr, retaddr); + } else if (((addr & ~~((1 << 12) - 1)) + (1 << 3) - 1) >= (1 << 12)) { + do_unaligned_access: + + + + for(i = (1 << 3) - 1; i >= 0; i--) { + + + + + + slow_stb_mmu( addr + i, + val >> (i * 8), + mmu_idx, retaddr); + + } + } else { + + uintptr_t addend = env->tlb_table[mmu_idx][index].addend; + stq_le_p((uint8_t *)(intptr_t)(((uint8_t *)(intptr_t) (addr + addend))), val) + ; + } + } else { + + tlb_fill(env, addr, 1, mmu_idx, retaddr); + goto redo; + } +} +# 4997 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 +# 5005 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +void tlb_fill(CPUX86State *env1, target_ulong addr, int is_write, int mmu_idx, + uintptr_t retaddr) +{ + TranslationBlock *tb; + int ret; + CPUX86State *saved_env; + + saved_env = env; + env = env1; + + ret = cpu_x86_handle_mmu_fault(env, addr, is_write, mmu_idx); + if (ret) { + if (retaddr) { + + tb = tb_find_pc(retaddr); + if (tb) { + + + cpu_restore_state(tb, env, retaddr); + } + } + raise_exception_err(env->exception_index, env->error_code); + } + env = saved_env; +} +# 5077 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +static __attribute__ (( always_inline )) __inline__ void svm_save_seg(target_phys_addr_t addr, + const SegmentCache *sc) +{ + stw_phys(addr + __builtin_offsetof (struct vmcb_seg, selector), + sc->selector); + stq_phys(addr + __builtin_offsetof (struct vmcb_seg, base), + sc->base); + stl_phys(addr + __builtin_offsetof (struct vmcb_seg, limit), + sc->limit); + stw_phys(addr + __builtin_offsetof (struct vmcb_seg, attrib), + ((sc->flags >> 8) & 0xff) | ((sc->flags >> 12) & 0x0f00)); +} + +static __attribute__ (( always_inline )) __inline__ void svm_load_seg(target_phys_addr_t addr, SegmentCache *sc) +{ + unsigned int flags; + + sc->selector = lduw_phys(addr + __builtin_offsetof (struct vmcb_seg, selector)); + sc->base = ldq_phys(addr + __builtin_offsetof (struct vmcb_seg, base)); + sc->limit = ldl_phys(addr + __builtin_offsetof (struct vmcb_seg, limit)); + flags = lduw_phys(addr + __builtin_offsetof (struct vmcb_seg, attrib)); + sc->flags = ((flags & 0xff) << 8) | ((flags & 0x0f00) << 12); +} + +static __attribute__ (( always_inline )) __inline__ void svm_load_seg_cache(target_phys_addr_t addr, + CPUX86State *env, int seg_reg) +{ + SegmentCache sc1, *sc = &sc1; + svm_load_seg(addr, sc); + cpu_x86_load_seg_cache(env, seg_reg, sc->selector, + sc->base, sc->limit, sc->flags); +} + +void helper_vmrun(int aflag, int next_eip_addend) +{ + target_ulong addr; + uint32_t event_inj; + uint32_t int_ctl; + + helper_svm_check_intercept_param(0x080, 0); + + if (aflag == 2) + addr = (env->regs[0]); + else + addr = (uint32_t)(env->regs[0]); + + do { if (loglevel & ((1 << 1))) fprintf(logfile, "vmrun! " "%08x" "\n", addr); } while (0); + + env->vm_vmcb = addr; + + + stq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.gdtr.base), env->gdt.base); + stl_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.gdtr.limit), env->gdt.limit); + + stq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.idtr.base), env->idt.base); + stl_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.idtr.limit), env->idt.limit); + + stq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.cr0), env->cr[0]); + stq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.cr2), env->cr[2]); + stq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.cr3), env->cr[3]); + stq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.cr4), env->cr[4]); + stq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.dr6), env->dr[6]); + stq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.dr7), env->dr[7]); + + stq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.efer), env->efer); + stq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.rflags), compute_eflags()); + + svm_save_seg(env->vm_hsave + __builtin_offsetof (struct vmcb, save.es), + &env->segs[0]); + svm_save_seg(env->vm_hsave + __builtin_offsetof (struct vmcb, save.cs), + &env->segs[1]); + svm_save_seg(env->vm_hsave + __builtin_offsetof (struct vmcb, save.ss), + &env->segs[2]); + svm_save_seg(env->vm_hsave + __builtin_offsetof (struct vmcb, save.ds), + &env->segs[3]); + + stq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.rip), + (env->eip) + next_eip_addend); + stq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.rsp), (env->regs[4])); + stq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.rax), (env->regs[0])); + + + + env->intercept = ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.intercept)); + env->intercept_cr_read = lduw_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.intercept_cr_read)); + env->intercept_cr_write = lduw_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.intercept_cr_write)); + env->intercept_dr_read = lduw_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.intercept_dr_read)); + env->intercept_dr_write = lduw_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.intercept_dr_write)); + env->intercept_exceptions = ldl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.intercept_exceptions)); + + + env->hflags |= (1 << 21); + + env->tsc_offset = ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.tsc_offset)); + + env->gdt.base = ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.gdtr.base)); + env->gdt.limit = ldl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.gdtr.limit)); + + env->idt.base = ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.idtr.base)); + env->idt.limit = ldl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.idtr.limit)); + + + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.exit_info_2), 0); + + cpu_x86_update_cr0(env, ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.cr0))); + cpu_x86_update_cr4(env, ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.cr4))); + cpu_x86_update_cr3(env, ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.cr3))); + env->cr[2] = ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.cr2)); + int_ctl = ldl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.int_ctl)); + env->hflags2 &= ~((1 << 1) | (1 << 3)); + if (int_ctl & (1 << 24)) { + env->v_tpr = int_ctl & 0x0f; + env->hflags2 |= (1 << 3); + if (env->eflags & 0x00000200) + env->hflags2 |= (1 << 1); + } + + cpu_load_efer(env, + ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.efer))); + env->eflags = 0; + load_eflags(ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.rflags)), + ~(0x0800 | 0x0080 | 0x0040 | 0x0010 | 0x0004 | 0x0001 | 0x00000400)); + (env->cc_op) = CC_OP_EFLAGS; + + svm_load_seg_cache(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.es), + env, 0); + svm_load_seg_cache(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.cs), + env, 1); + svm_load_seg_cache(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.ss), + env, 2); + svm_load_seg_cache(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.ds), + env, 3); + + (env->eip) = ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.rip)); + env->eip = (env->eip); + (env->regs[4]) = ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.rsp)); + (env->regs[0]) = ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.rax)); + env->dr[7] = ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.dr7)); + env->dr[6] = ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.dr6)); + cpu_x86_set_cpl(env, ldub_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.cpl))); + + + + switch(ldub_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.tlb_ctl))) { + case 0: + break; + case 1: + + tlb_flush(env, 1); + break; + } + + env->hflags2 |= (1 << 0); + + if (int_ctl & (1 << 8)) { + env->interrupt_request |= 0x0100; + } + + + event_inj = ldl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.event_inj)); + if (event_inj & (1 << 31)) { + uint8_t vector = event_inj & 0xff; + uint16_t valid_err = event_inj & (1 << 11); + uint32_t event_inj_err = ldl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.event_inj_err)); + + do { if (loglevel & ((1 << 1))) fprintf(logfile, "Injecting(%#hx): ", valid_err); } while (0); + + switch (event_inj & (7 << 8)) { + case (0 << 8): + env->exception_index = vector; + env->error_code = event_inj_err; + env->exception_is_int = 0; + env->exception_next_eip = -1; + do { if (loglevel & ((1 << 1))) fprintf(logfile, "INTR"); } while (0); + + do_interrupt_all(vector, 0, 0, 0, 1); + break; + case (2 << 8): + env->exception_index = 2; + env->error_code = event_inj_err; + env->exception_is_int = 0; + env->exception_next_eip = (env->eip); + do { if (loglevel & ((1 << 1))) fprintf(logfile, "NMI"); } while (0); + cpu_loop_exit(env); + break; + case (3 << 8): + env->exception_index = vector; + env->error_code = event_inj_err; + env->exception_is_int = 0; + env->exception_next_eip = -1; + do { if (loglevel & ((1 << 1))) fprintf(logfile, "EXEPT"); } while (0); + cpu_loop_exit(env); + break; + case (4 << 8): + env->exception_index = vector; + env->error_code = event_inj_err; + env->exception_is_int = 1; + env->exception_next_eip = (env->eip); + do { if (loglevel & ((1 << 1))) fprintf(logfile, "SOFT"); } while (0); + cpu_loop_exit(env); + break; + } + do { if (loglevel & ((1 << 1))) fprintf(logfile, " %#x %#x\n", env->exception_index, env->error_code); } while (0); + } +} + +void helper_vmmcall(void) +{ + helper_svm_check_intercept_param(0x081, 0); + raise_exception(6); +} + +void helper_vmload(int aflag) +{ + target_ulong addr; + helper_svm_check_intercept_param(0x082, 0); + + if (aflag == 2) + addr = (env->regs[0]); + else + addr = (uint32_t)(env->regs[0]); + + do { if (loglevel & ((1 << 1))) fprintf(logfile, "vmload! " "%08x" "\nFS: %016" "ll" "x" " | " "%08x" "\n", addr, ldq_phys(addr + __builtin_offsetof (struct vmcb, save.fs.base)), env->segs[4].base); } while (0) + + ; + + svm_load_seg_cache(addr + __builtin_offsetof (struct vmcb, save.fs), + env, 4); + svm_load_seg_cache(addr + __builtin_offsetof (struct vmcb, save.gs), + env, 5); + svm_load_seg(addr + __builtin_offsetof (struct vmcb, save.tr), + &env->tr); + svm_load_seg(addr + __builtin_offsetof (struct vmcb, save.ldtr), + &env->ldt); + + + + + + + + env->star = ldq_phys(addr + __builtin_offsetof (struct vmcb, save.star)); + env->sysenter_cs = ldq_phys(addr + __builtin_offsetof (struct vmcb, save.sysenter_cs)); + env->sysenter_esp = ldq_phys(addr + __builtin_offsetof (struct vmcb, save.sysenter_esp)); + env->sysenter_eip = ldq_phys(addr + __builtin_offsetof (struct vmcb, save.sysenter_eip)); +} + +void helper_vmsave(int aflag) +{ + target_ulong addr; + helper_svm_check_intercept_param(0x083, 0); + + if (aflag == 2) + addr = (env->regs[0]); + else + addr = (uint32_t)(env->regs[0]); + + do { if (loglevel & ((1 << 1))) fprintf(logfile, "vmsave! " "%08x" "\nFS: %016" "ll" "x" " | " "%08x" "\n", addr, ldq_phys(addr + __builtin_offsetof (struct vmcb, save.fs.base)), env->segs[4].base); } while (0) + + ; + + svm_save_seg(addr + __builtin_offsetof (struct vmcb, save.fs), + &env->segs[4]); + svm_save_seg(addr + __builtin_offsetof (struct vmcb, save.gs), + &env->segs[5]); + svm_save_seg(addr + __builtin_offsetof (struct vmcb, save.tr), + &env->tr); + svm_save_seg(addr + __builtin_offsetof (struct vmcb, save.ldtr), + &env->ldt); + + + + + + + + stq_phys(addr + __builtin_offsetof (struct vmcb, save.star), env->star); + stq_phys(addr + __builtin_offsetof (struct vmcb, save.sysenter_cs), env->sysenter_cs); + stq_phys(addr + __builtin_offsetof (struct vmcb, save.sysenter_esp), env->sysenter_esp); + stq_phys(addr + __builtin_offsetof (struct vmcb, save.sysenter_eip), env->sysenter_eip); +} + +void helper_stgi(void) +{ + helper_svm_check_intercept_param(0x084, 0); + env->hflags2 |= (1 << 0); +} + +void helper_clgi(void) +{ + helper_svm_check_intercept_param(0x085, 0); + env->hflags2 &= ~(1 << 0); +} + +void helper_skinit(void) +{ + helper_svm_check_intercept_param(0x086, 0); + + raise_exception(6); +} + +void helper_invlpga(int aflag) +{ + target_ulong addr; + helper_svm_check_intercept_param(0x07a, 0); + + if (aflag == 2) + addr = (env->regs[0]); + else + addr = (uint32_t)(env->regs[0]); + + + + tlb_flush_page(env, addr); +} + +void helper_svm_check_intercept_param(uint32_t type, uint64_t param) +{ + if (__builtin_expect(!!(!(env->hflags & (1 << 21))), 1)) + return; + switch(type) { + case 0x000 ... 0x000 + 8: + if (env->intercept_cr_read & (1 << (type - 0x000))) { + helper_vmexit(type, param); + } + break; + case 0x010 ... 0x010 + 8: + if (env->intercept_cr_write & (1 << (type - 0x010))) { + helper_vmexit(type, param); + } + break; + case 0x020 ... 0x020 + 7: + if (env->intercept_dr_read & (1 << (type - 0x020))) { + helper_vmexit(type, param); + } + break; + case 0x030 ... 0x030 + 7: + if (env->intercept_dr_write & (1 << (type - 0x030))) { + helper_vmexit(type, param); + } + break; + case 0x040 ... 0x040 + 31: + if (env->intercept_exceptions & (1 << (type - 0x040))) { + helper_vmexit(type, param); + } + break; + case 0x07c: + if (env->intercept & (1ULL << (0x07c - 0x060))) { + + uint64_t addr = ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.msrpm_base_pa)); + uint32_t t0, t1; + switch((uint32_t)(env->regs[1])) { + case 0 ... 0x1fff: + t0 = ((env->regs[1]) * 2) % 8; + t1 = ((env->regs[1]) * 2) / 8; + break; + case 0xc0000000 ... 0xc0001fff: + t0 = (8192 + (env->regs[1]) - 0xc0000000) * 2; + t1 = (t0 / 8); + t0 %= 8; + break; + case 0xc0010000 ... 0xc0011fff: + t0 = (16384 + (env->regs[1]) - 0xc0010000) * 2; + t1 = (t0 / 8); + t0 %= 8; + break; + default: + helper_vmexit(type, param); + t0 = 0; + t1 = 0; + break; + } + if (ldub_phys(addr + t1) & ((1 << param) << t0)) + helper_vmexit(type, param); + } + break; + default: + if (env->intercept & (1ULL << (type - 0x060))) { + helper_vmexit(type, param); + } + break; + } +} + +void svm_check_intercept(CPUX86State *env1, uint32_t type) +{ + CPUX86State *saved_env; + + saved_env = env; + env = env1; + helper_svm_check_intercept_param(type, 0); + env = saved_env; +} + +void helper_svm_check_io(uint32_t port, uint32_t param, + uint32_t next_eip_addend) +{ + if (env->intercept & (1ULL << (0x07b - 0x060))) { + + uint64_t addr = ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.iopm_base_pa)); + uint16_t mask = (1 << ((param >> 4) & 7)) - 1; + if(lduw_phys(addr + port / 8) & (mask << (port & 7))) { + + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.exit_info_2), + env->eip + next_eip_addend); + helper_vmexit(0x07b, param | (port << 16)); + } + } +} + + +void helper_vmexit(uint32_t exit_code, uint64_t exit_info_1) +{ + uint32_t int_ctl; + + do { if (loglevel & ((1 << 1))) fprintf(logfile, "vmexit(%08x, %016" "ll" "x" ", %016" "ll" "x" ", " "%08x" ")!\n", exit_code, exit_info_1, ldq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.exit_info_2)), (env->eip)); } while (0) + + + ; + + if(env->hflags & (1 << 3)) { + stl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.int_state), 1); + env->hflags &= ~(1 << 3); + } else { + stl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.int_state), 0); + } + + + svm_save_seg(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.es), + &env->segs[0]); + svm_save_seg(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.cs), + &env->segs[1]); + svm_save_seg(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.ss), + &env->segs[2]); + svm_save_seg(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.ds), + &env->segs[3]); + + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.gdtr.base), env->gdt.base); + stl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.gdtr.limit), env->gdt.limit); + + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.idtr.base), env->idt.base); + stl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.idtr.limit), env->idt.limit); + + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.efer), env->efer); + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.cr0), env->cr[0]); + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.cr2), env->cr[2]); + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.cr3), env->cr[3]); + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.cr4), env->cr[4]); + + int_ctl = ldl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.int_ctl)); + int_ctl &= ~(0x0f | (1 << 8)); + int_ctl |= env->v_tpr & 0x0f; + if (env->interrupt_request & 0x0100) + int_ctl |= (1 << 8); + stl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.int_ctl), int_ctl); + + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.rflags), compute_eflags()); + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.rip), env->eip); + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.rsp), (env->regs[4])); + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.rax), (env->regs[0])); + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.dr7), env->dr[7]); + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.dr6), env->dr[6]); + stb_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, save.cpl), env->hflags & (3 << 0)); + + + env->hflags2 &= ~((1 << 1) | (1 << 3)); + env->hflags &= ~(1 << 21); + env->intercept = 0; + env->intercept_exceptions = 0; + env->interrupt_request &= ~0x0100; + env->tsc_offset = 0; + + env->gdt.base = ldq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.gdtr.base)); + env->gdt.limit = ldl_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.gdtr.limit)); + + env->idt.base = ldq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.idtr.base)); + env->idt.limit = ldl_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.idtr.limit)); + + cpu_x86_update_cr0(env, ldq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.cr0)) | (1 << 0)); + cpu_x86_update_cr4(env, ldq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.cr4))); + cpu_x86_update_cr3(env, ldq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.cr3))); + + + cpu_load_efer(env, + ldq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.efer))); + env->eflags = 0; + load_eflags(ldq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.rflags)), + ~(0x0800 | 0x0080 | 0x0040 | 0x0010 | 0x0004 | 0x0001 | 0x00000400)); + (env->cc_op) = CC_OP_EFLAGS; + + svm_load_seg_cache(env->vm_hsave + __builtin_offsetof (struct vmcb, save.es), + env, 0); + svm_load_seg_cache(env->vm_hsave + __builtin_offsetof (struct vmcb, save.cs), + env, 1); + svm_load_seg_cache(env->vm_hsave + __builtin_offsetof (struct vmcb, save.ss), + env, 2); + svm_load_seg_cache(env->vm_hsave + __builtin_offsetof (struct vmcb, save.ds), + env, 3); + + (env->eip) = ldq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.rip)); + (env->regs[4]) = ldq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.rsp)); + (env->regs[0]) = ldq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.rax)); + + env->dr[6] = ldq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.dr6)); + env->dr[7] = ldq_phys(env->vm_hsave + __builtin_offsetof (struct vmcb, save.dr7)); + + + cpu_x86_set_cpl(env, 0); + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.exit_code), exit_code); + stq_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.exit_info_1), exit_info_1); + + stl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.exit_int_info), + ldl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.event_inj))); + stl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.exit_int_info_err), + ldl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.event_inj_err))); + stl_phys(env->vm_vmcb + __builtin_offsetof (struct vmcb, control.event_inj), 0); + + env->hflags2 &= ~(1 << 0); +# 5606 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + env->cr[0] |= (1 << 0); + env->eflags &= ~0x00020000; +# 5618 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + env->exception_index = -1; + env->error_code = 0; + env->old_exception = -1; + + cpu_loop_exit(env); +} +# 5638 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +static void update_sse_status(void) +{ + int rnd_type; + + + switch(env->mxcsr & 0x6000) { + default: + case 0x0000: + rnd_type = float_round_nearest_even; + break; + case 0x2000: + rnd_type = float_round_down; + break; + case 0x4000: + rnd_type = float_round_up; + break; + case 0x6000: + rnd_type = float_round_to_zero; + break; + } + set_float_rounding_mode(rnd_type, &env->sse_status); + + + set_flush_inputs_to_zero((env->mxcsr & 0x0040) ? 1 : 0, &env->sse_status); + + + set_flush_to_zero((env->mxcsr & 0x8000) ? 1 : 0, &env->fp_status); +} + +void helper_ldmxcsr(uint32_t val) +{ + env->mxcsr = val; + update_sse_status(); +} + +void helper_enter_mmx(void) +{ + env->fpstt = 0; + *(uint32_t *)(env->fptags) = 0; + *(uint32_t *)(env->fptags + 4) = 0; +} + +void helper_emms(void) +{ + + *(uint32_t *)(env->fptags) = 0x01010101; + *(uint32_t *)(env->fptags + 4) = 0x01010101; +} + + +void helper_movq(void *d, void *s) +{ + *(uint64_t *)d = *(uint64_t *)s; +} + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" 1 +# 38 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_psrlw_mmx(MMXReg *d, MMXReg *s) +{ + int shift; + + if (s->q > 15) { + d->q = 0; + + + + } else { + shift = s->_b[0]; + d->_w[0] >>= shift; + d->_w[1] >>= shift; + d->_w[2] >>= shift; + d->_w[3] >>= shift; + + + + + + + } +} + +void helper_psraw_mmx(MMXReg *d, MMXReg *s) +{ + int shift; + + if (s->q > 15) { + shift = 15; + } else { + shift = s->_b[0]; + } + d->_w[0] = (int16_t)d->_w[0] >> shift; + d->_w[1] = (int16_t)d->_w[1] >> shift; + d->_w[2] = (int16_t)d->_w[2] >> shift; + d->_w[3] = (int16_t)d->_w[3] >> shift; + + + + + + +} + +void helper_psllw_mmx(MMXReg *d, MMXReg *s) +{ + int shift; + + if (s->q > 15) { + d->q = 0; + + + + } else { + shift = s->_b[0]; + d->_w[0] <<= shift; + d->_w[1] <<= shift; + d->_w[2] <<= shift; + d->_w[3] <<= shift; + + + + + + + } +} + +void helper_psrld_mmx(MMXReg *d, MMXReg *s) +{ + int shift; + + if (s->q > 31) { + d->q = 0; + + + + } else { + shift = s->_b[0]; + d->_l[0] >>= shift; + d->_l[1] >>= shift; + + + + + } +} + +void helper_psrad_mmx(MMXReg *d, MMXReg *s) +{ + int shift; + + if (s->q > 31) { + shift = 31; + } else { + shift = s->_b[0]; + } + d->_l[0] = (int32_t)d->_l[0] >> shift; + d->_l[1] = (int32_t)d->_l[1] >> shift; + + + + +} + +void helper_pslld_mmx(MMXReg *d, MMXReg *s) +{ + int shift; + + if (s->q > 31) { + d->q = 0; + + + + } else { + shift = s->_b[0]; + d->_l[0] <<= shift; + d->_l[1] <<= shift; + + + + + } +} + +void helper_psrlq_mmx(MMXReg *d, MMXReg *s) +{ + int shift; + + if (s->q > 63) { + d->q = 0; + + + + } else { + shift = s->_b[0]; + d->q >>= shift; + + + + } +} + +void helper_psllq_mmx(MMXReg *d, MMXReg *s) +{ + int shift; + + if (s->q > 63) { + d->q = 0; + + + + } else { + shift = s->_b[0]; + d->q <<= shift; + + + + } +} +# 287 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +static __attribute__ (( always_inline )) __inline__ int satub(int x) +{ + if (x < 0) + return 0; + else if (x > 255) + return 255; + else + return x; +} + +static __attribute__ (( always_inline )) __inline__ int satuw(int x) +{ + if (x < 0) + return 0; + else if (x > 65535) + return 65535; + else + return x; +} + +static __attribute__ (( always_inline )) __inline__ int satsb(int x) +{ + if (x < -128) + return -128; + else if (x > 127) + return 127; + else + return x; +} + +static __attribute__ (( always_inline )) __inline__ int satsw(int x) +{ + if (x < -32768) + return -32768; + else if (x > 32767) + return 32767; + else + return x; +} +# 361 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_paddb_mmx (MMXReg *d, MMXReg *s){ d->_b[0] = ((d->_b[0]) + (s->_b[0])); d->_b[1] = ((d->_b[1]) + (s->_b[1])); d->_b[2] = ((d->_b[2]) + (s->_b[2])); d->_b[3] = ((d->_b[3]) + (s->_b[3])); d->_b[4] = ((d->_b[4]) + (s->_b[4])); d->_b[5] = ((d->_b[5]) + (s->_b[5])); d->_b[6] = ((d->_b[6]) + (s->_b[6])); d->_b[7] = ((d->_b[7]) + (s->_b[7])); } +void helper_paddw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = ((d->_w[0]) + (s->_w[0])); d->_w[1] = ((d->_w[1]) + (s->_w[1])); d->_w[2] = ((d->_w[2]) + (s->_w[2])); d->_w[3] = ((d->_w[3]) + (s->_w[3])); } +void helper_paddl_mmx (MMXReg *d, MMXReg *s){ d->_l[0] = ((d->_l[0]) + (s->_l[0])); d->_l[1] = ((d->_l[1]) + (s->_l[1])); } +void helper_paddq_mmx (MMXReg *d, MMXReg *s){ d->q = ((d->q) + (s->q)); } + +void helper_psubb_mmx (MMXReg *d, MMXReg *s){ d->_b[0] = ((d->_b[0]) - (s->_b[0])); d->_b[1] = ((d->_b[1]) - (s->_b[1])); d->_b[2] = ((d->_b[2]) - (s->_b[2])); d->_b[3] = ((d->_b[3]) - (s->_b[3])); d->_b[4] = ((d->_b[4]) - (s->_b[4])); d->_b[5] = ((d->_b[5]) - (s->_b[5])); d->_b[6] = ((d->_b[6]) - (s->_b[6])); d->_b[7] = ((d->_b[7]) - (s->_b[7])); } +void helper_psubw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = ((d->_w[0]) - (s->_w[0])); d->_w[1] = ((d->_w[1]) - (s->_w[1])); d->_w[2] = ((d->_w[2]) - (s->_w[2])); d->_w[3] = ((d->_w[3]) - (s->_w[3])); } +void helper_psubl_mmx (MMXReg *d, MMXReg *s){ d->_l[0] = ((d->_l[0]) - (s->_l[0])); d->_l[1] = ((d->_l[1]) - (s->_l[1])); } +void helper_psubq_mmx (MMXReg *d, MMXReg *s){ d->q = ((d->q) - (s->q)); } + +void helper_paddusb_mmx (MMXReg *d, MMXReg *s){ d->_b[0] = satub((d->_b[0]) + (s->_b[0])); d->_b[1] = satub((d->_b[1]) + (s->_b[1])); d->_b[2] = satub((d->_b[2]) + (s->_b[2])); d->_b[3] = satub((d->_b[3]) + (s->_b[3])); d->_b[4] = satub((d->_b[4]) + (s->_b[4])); d->_b[5] = satub((d->_b[5]) + (s->_b[5])); d->_b[6] = satub((d->_b[6]) + (s->_b[6])); d->_b[7] = satub((d->_b[7]) + (s->_b[7])); } +void helper_paddsb_mmx (MMXReg *d, MMXReg *s){ d->_b[0] = satsb((int8_t)(d->_b[0]) + (int8_t)(s->_b[0])); d->_b[1] = satsb((int8_t)(d->_b[1]) + (int8_t)(s->_b[1])); d->_b[2] = satsb((int8_t)(d->_b[2]) + (int8_t)(s->_b[2])); d->_b[3] = satsb((int8_t)(d->_b[3]) + (int8_t)(s->_b[3])); d->_b[4] = satsb((int8_t)(d->_b[4]) + (int8_t)(s->_b[4])); d->_b[5] = satsb((int8_t)(d->_b[5]) + (int8_t)(s->_b[5])); d->_b[6] = satsb((int8_t)(d->_b[6]) + (int8_t)(s->_b[6])); d->_b[7] = satsb((int8_t)(d->_b[7]) + (int8_t)(s->_b[7])); } +void helper_psubusb_mmx (MMXReg *d, MMXReg *s){ d->_b[0] = satub((d->_b[0]) - (s->_b[0])); d->_b[1] = satub((d->_b[1]) - (s->_b[1])); d->_b[2] = satub((d->_b[2]) - (s->_b[2])); d->_b[3] = satub((d->_b[3]) - (s->_b[3])); d->_b[4] = satub((d->_b[4]) - (s->_b[4])); d->_b[5] = satub((d->_b[5]) - (s->_b[5])); d->_b[6] = satub((d->_b[6]) - (s->_b[6])); d->_b[7] = satub((d->_b[7]) - (s->_b[7])); } +void helper_psubsb_mmx (MMXReg *d, MMXReg *s){ d->_b[0] = satsb((int8_t)(d->_b[0]) - (int8_t)(s->_b[0])); d->_b[1] = satsb((int8_t)(d->_b[1]) - (int8_t)(s->_b[1])); d->_b[2] = satsb((int8_t)(d->_b[2]) - (int8_t)(s->_b[2])); d->_b[3] = satsb((int8_t)(d->_b[3]) - (int8_t)(s->_b[3])); d->_b[4] = satsb((int8_t)(d->_b[4]) - (int8_t)(s->_b[4])); d->_b[5] = satsb((int8_t)(d->_b[5]) - (int8_t)(s->_b[5])); d->_b[6] = satsb((int8_t)(d->_b[6]) - (int8_t)(s->_b[6])); d->_b[7] = satsb((int8_t)(d->_b[7]) - (int8_t)(s->_b[7])); } + +void helper_paddusw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = satuw((d->_w[0]) + (s->_w[0])); d->_w[1] = satuw((d->_w[1]) + (s->_w[1])); d->_w[2] = satuw((d->_w[2]) + (s->_w[2])); d->_w[3] = satuw((d->_w[3]) + (s->_w[3])); } +void helper_paddsw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = satsw((int16_t)(d->_w[0]) + (int16_t)(s->_w[0])); d->_w[1] = satsw((int16_t)(d->_w[1]) + (int16_t)(s->_w[1])); d->_w[2] = satsw((int16_t)(d->_w[2]) + (int16_t)(s->_w[2])); d->_w[3] = satsw((int16_t)(d->_w[3]) + (int16_t)(s->_w[3])); } +void helper_psubusw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = satuw((d->_w[0]) - (s->_w[0])); d->_w[1] = satuw((d->_w[1]) - (s->_w[1])); d->_w[2] = satuw((d->_w[2]) - (s->_w[2])); d->_w[3] = satuw((d->_w[3]) - (s->_w[3])); } +void helper_psubsw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = satsw((int16_t)(d->_w[0]) - (int16_t)(s->_w[0])); d->_w[1] = satsw((int16_t)(d->_w[1]) - (int16_t)(s->_w[1])); d->_w[2] = satsw((int16_t)(d->_w[2]) - (int16_t)(s->_w[2])); d->_w[3] = satsw((int16_t)(d->_w[3]) - (int16_t)(s->_w[3])); } + +void helper_pminub_mmx (MMXReg *d, MMXReg *s){ d->_b[0] = ((d->_b[0]) < (s->_b[0])) ? (d->_b[0]) : (s->_b[0]); d->_b[1] = ((d->_b[1]) < (s->_b[1])) ? (d->_b[1]) : (s->_b[1]); d->_b[2] = ((d->_b[2]) < (s->_b[2])) ? (d->_b[2]) : (s->_b[2]); d->_b[3] = ((d->_b[3]) < (s->_b[3])) ? (d->_b[3]) : (s->_b[3]); d->_b[4] = ((d->_b[4]) < (s->_b[4])) ? (d->_b[4]) : (s->_b[4]); d->_b[5] = ((d->_b[5]) < (s->_b[5])) ? (d->_b[5]) : (s->_b[5]); d->_b[6] = ((d->_b[6]) < (s->_b[6])) ? (d->_b[6]) : (s->_b[6]); d->_b[7] = ((d->_b[7]) < (s->_b[7])) ? (d->_b[7]) : (s->_b[7]); } +void helper_pmaxub_mmx (MMXReg *d, MMXReg *s){ d->_b[0] = ((d->_b[0]) > (s->_b[0])) ? (d->_b[0]) : (s->_b[0]); d->_b[1] = ((d->_b[1]) > (s->_b[1])) ? (d->_b[1]) : (s->_b[1]); d->_b[2] = ((d->_b[2]) > (s->_b[2])) ? (d->_b[2]) : (s->_b[2]); d->_b[3] = ((d->_b[3]) > (s->_b[3])) ? (d->_b[3]) : (s->_b[3]); d->_b[4] = ((d->_b[4]) > (s->_b[4])) ? (d->_b[4]) : (s->_b[4]); d->_b[5] = ((d->_b[5]) > (s->_b[5])) ? (d->_b[5]) : (s->_b[5]); d->_b[6] = ((d->_b[6]) > (s->_b[6])) ? (d->_b[6]) : (s->_b[6]); d->_b[7] = ((d->_b[7]) > (s->_b[7])) ? (d->_b[7]) : (s->_b[7]); } + +void helper_pminsw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = ((int16_t)(d->_w[0]) < (int16_t)(s->_w[0])) ? (d->_w[0]) : (s->_w[0]); d->_w[1] = ((int16_t)(d->_w[1]) < (int16_t)(s->_w[1])) ? (d->_w[1]) : (s->_w[1]); d->_w[2] = ((int16_t)(d->_w[2]) < (int16_t)(s->_w[2])) ? (d->_w[2]) : (s->_w[2]); d->_w[3] = ((int16_t)(d->_w[3]) < (int16_t)(s->_w[3])) ? (d->_w[3]) : (s->_w[3]); } +void helper_pmaxsw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = ((int16_t)(d->_w[0]) > (int16_t)(s->_w[0])) ? (d->_w[0]) : (s->_w[0]); d->_w[1] = ((int16_t)(d->_w[1]) > (int16_t)(s->_w[1])) ? (d->_w[1]) : (s->_w[1]); d->_w[2] = ((int16_t)(d->_w[2]) > (int16_t)(s->_w[2])) ? (d->_w[2]) : (s->_w[2]); d->_w[3] = ((int16_t)(d->_w[3]) > (int16_t)(s->_w[3])) ? (d->_w[3]) : (s->_w[3]); } + +void helper_pand_mmx (MMXReg *d, MMXReg *s){ d->q = (d->q) & (s->q); } +void helper_pandn_mmx (MMXReg *d, MMXReg *s){ d->q = ((~(d->q)) & (s->q)); } +void helper_por_mmx (MMXReg *d, MMXReg *s){ d->q = (d->q) | (s->q); } +void helper_pxor_mmx (MMXReg *d, MMXReg *s){ d->q = (d->q) ^ (s->q); } + +void helper_pcmpgtb_mmx (MMXReg *d, MMXReg *s){ d->_b[0] = (int8_t)(d->_b[0]) > (int8_t)(s->_b[0]) ? -1 : 0; d->_b[1] = (int8_t)(d->_b[1]) > (int8_t)(s->_b[1]) ? -1 : 0; d->_b[2] = (int8_t)(d->_b[2]) > (int8_t)(s->_b[2]) ? -1 : 0; d->_b[3] = (int8_t)(d->_b[3]) > (int8_t)(s->_b[3]) ? -1 : 0; d->_b[4] = (int8_t)(d->_b[4]) > (int8_t)(s->_b[4]) ? -1 : 0; d->_b[5] = (int8_t)(d->_b[5]) > (int8_t)(s->_b[5]) ? -1 : 0; d->_b[6] = (int8_t)(d->_b[6]) > (int8_t)(s->_b[6]) ? -1 : 0; d->_b[7] = (int8_t)(d->_b[7]) > (int8_t)(s->_b[7]) ? -1 : 0; } +void helper_pcmpgtw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = (int16_t)(d->_w[0]) > (int16_t)(s->_w[0]) ? -1 : 0; d->_w[1] = (int16_t)(d->_w[1]) > (int16_t)(s->_w[1]) ? -1 : 0; d->_w[2] = (int16_t)(d->_w[2]) > (int16_t)(s->_w[2]) ? -1 : 0; d->_w[3] = (int16_t)(d->_w[3]) > (int16_t)(s->_w[3]) ? -1 : 0; } +void helper_pcmpgtl_mmx (MMXReg *d, MMXReg *s){ d->_l[0] = (int32_t)(d->_l[0]) > (int32_t)(s->_l[0]) ? -1 : 0; d->_l[1] = (int32_t)(d->_l[1]) > (int32_t)(s->_l[1]) ? -1 : 0; } + +void helper_pcmpeqb_mmx (MMXReg *d, MMXReg *s){ d->_b[0] = (d->_b[0]) == (s->_b[0]) ? -1 : 0; d->_b[1] = (d->_b[1]) == (s->_b[1]) ? -1 : 0; d->_b[2] = (d->_b[2]) == (s->_b[2]) ? -1 : 0; d->_b[3] = (d->_b[3]) == (s->_b[3]) ? -1 : 0; d->_b[4] = (d->_b[4]) == (s->_b[4]) ? -1 : 0; d->_b[5] = (d->_b[5]) == (s->_b[5]) ? -1 : 0; d->_b[6] = (d->_b[6]) == (s->_b[6]) ? -1 : 0; d->_b[7] = (d->_b[7]) == (s->_b[7]) ? -1 : 0; } +void helper_pcmpeqw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = (d->_w[0]) == (s->_w[0]) ? -1 : 0; d->_w[1] = (d->_w[1]) == (s->_w[1]) ? -1 : 0; d->_w[2] = (d->_w[2]) == (s->_w[2]) ? -1 : 0; d->_w[3] = (d->_w[3]) == (s->_w[3]) ? -1 : 0; } +void helper_pcmpeql_mmx (MMXReg *d, MMXReg *s){ d->_l[0] = (d->_l[0]) == (s->_l[0]) ? -1 : 0; d->_l[1] = (d->_l[1]) == (s->_l[1]) ? -1 : 0; } + +void helper_pmullw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = (d->_w[0]) * (s->_w[0]); d->_w[1] = (d->_w[1]) * (s->_w[1]); d->_w[2] = (d->_w[2]) * (s->_w[2]); d->_w[3] = (d->_w[3]) * (s->_w[3]); } + +void helper_pmulhrw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = ((int16_t)(d->_w[0]) * (int16_t)(s->_w[0]) + 0x8000) >> 16; d->_w[1] = ((int16_t)(d->_w[1]) * (int16_t)(s->_w[1]) + 0x8000) >> 16; d->_w[2] = ((int16_t)(d->_w[2]) * (int16_t)(s->_w[2]) + 0x8000) >> 16; d->_w[3] = ((int16_t)(d->_w[3]) * (int16_t)(s->_w[3]) + 0x8000) >> 16; } + +void helper_pmulhuw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = (d->_w[0]) * (s->_w[0]) >> 16; d->_w[1] = (d->_w[1]) * (s->_w[1]) >> 16; d->_w[2] = (d->_w[2]) * (s->_w[2]) >> 16; d->_w[3] = (d->_w[3]) * (s->_w[3]) >> 16; } +void helper_pmulhw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = (int16_t)(d->_w[0]) * (int16_t)(s->_w[0]) >> 16; d->_w[1] = (int16_t)(d->_w[1]) * (int16_t)(s->_w[1]) >> 16; d->_w[2] = (int16_t)(d->_w[2]) * (int16_t)(s->_w[2]) >> 16; d->_w[3] = (int16_t)(d->_w[3]) * (int16_t)(s->_w[3]) >> 16; } + +void helper_pavgb_mmx (MMXReg *d, MMXReg *s){ d->_b[0] = ((d->_b[0]) + (s->_b[0]) + 1) >> 1; d->_b[1] = ((d->_b[1]) + (s->_b[1]) + 1) >> 1; d->_b[2] = ((d->_b[2]) + (s->_b[2]) + 1) >> 1; d->_b[3] = ((d->_b[3]) + (s->_b[3]) + 1) >> 1; d->_b[4] = ((d->_b[4]) + (s->_b[4]) + 1) >> 1; d->_b[5] = ((d->_b[5]) + (s->_b[5]) + 1) >> 1; d->_b[6] = ((d->_b[6]) + (s->_b[6]) + 1) >> 1; d->_b[7] = ((d->_b[7]) + (s->_b[7]) + 1) >> 1; } +void helper_pavgw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = ((d->_w[0]) + (s->_w[0]) + 1) >> 1; d->_w[1] = ((d->_w[1]) + (s->_w[1]) + 1) >> 1; d->_w[2] = ((d->_w[2]) + (s->_w[2]) + 1) >> 1; d->_w[3] = ((d->_w[3]) + (s->_w[3]) + 1) >> 1; } + +void helper_pmuludq_mmx (MMXReg *d, MMXReg *s) +{ + d->q = (uint64_t)s->_l[0] * (uint64_t)d->_l[0]; + + + +} + +void helper_pmaddwd_mmx (MMXReg *d, MMXReg *s) +{ + int i; + + for(i = 0; i < (2 << 0); i++) { + d->_l[i] = (int16_t)s->_w[2*i] * (int16_t)d->_w[2*i] + + (int16_t)s->_w[2*i+1] * (int16_t)d->_w[2*i+1]; + } +} + + +static __attribute__ (( always_inline )) __inline__ int abs1(int a) +{ + if (a < 0) + return -a; + else + return a; +} + +void helper_psadbw_mmx (MMXReg *d, MMXReg *s) +{ + unsigned int val; + + val = 0; + val += abs1(d->_b[0] - s->_b[0]); + val += abs1(d->_b[1] - s->_b[1]); + val += abs1(d->_b[2] - s->_b[2]); + val += abs1(d->_b[3] - s->_b[3]); + val += abs1(d->_b[4] - s->_b[4]); + val += abs1(d->_b[5] - s->_b[5]); + val += abs1(d->_b[6] - s->_b[6]); + val += abs1(d->_b[7] - s->_b[7]); + d->q = val; +# 463 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +} + +void helper_maskmov_mmx (MMXReg *d, MMXReg *s, target_ulong a0) +{ + int i; + for(i = 0; i < (8 << 0); i++) { + if (s->_b[i] & 0x80) + stb_data(a0 + i, d->_b[i]); + } +} + +void helper_movl_mm_T0_mmx (MMXReg *d, uint32_t val) +{ + d->_l[0] = val; + d->_l[1] = 0; + + + +} +# 494 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_pshufw_mmx (MMXReg *d, MMXReg *s, int order) +{ + MMXReg r; + r._w[0] = s->_w[order & 3]; + r._w[1] = s->_w[(order >> 2) & 3]; + r._w[2] = s->_w[(order >> 4) & 3]; + r._w[3] = s->_w[(order >> 6) & 3]; + *d = r; +} +# 1023 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +uint32_t helper_pmovmskb_mmx(MMXReg *s) +{ + uint32_t val; + val = 0; + val |= (s->_b[0] >> 7); + val |= (s->_b[1] >> 6) & 0x02; + val |= (s->_b[2] >> 5) & 0x04; + val |= (s->_b[3] >> 4) & 0x08; + val |= (s->_b[4] >> 3) & 0x10; + val |= (s->_b[5] >> 2) & 0x20; + val |= (s->_b[6] >> 1) & 0x40; + val |= (s->_b[7]) & 0x80; +# 1045 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" + return val; +} + +void helper_packsswb_mmx (MMXReg *d, MMXReg *s) +{ + MMXReg r; + + r._b[0] = satsb((int16_t)d->_w[0]); + r._b[1] = satsb((int16_t)d->_w[1]); + r._b[2] = satsb((int16_t)d->_w[2]); + r._b[3] = satsb((int16_t)d->_w[3]); + + + + + + + r._b[(4 << 0) + 0] = satsb((int16_t)s->_w[0]); + r._b[(4 << 0) + 1] = satsb((int16_t)s->_w[1]); + r._b[(4 << 0) + 2] = satsb((int16_t)s->_w[2]); + r._b[(4 << 0) + 3] = satsb((int16_t)s->_w[3]); + + + + + + + *d = r; +} + +void helper_packuswb_mmx (MMXReg *d, MMXReg *s) +{ + MMXReg r; + + r._b[0] = satub((int16_t)d->_w[0]); + r._b[1] = satub((int16_t)d->_w[1]); + r._b[2] = satub((int16_t)d->_w[2]); + r._b[3] = satub((int16_t)d->_w[3]); + + + + + + + r._b[(4 << 0) + 0] = satub((int16_t)s->_w[0]); + r._b[(4 << 0) + 1] = satub((int16_t)s->_w[1]); + r._b[(4 << 0) + 2] = satub((int16_t)s->_w[2]); + r._b[(4 << 0) + 3] = satub((int16_t)s->_w[3]); + + + + + + + *d = r; +} + +void helper_packssdw_mmx (MMXReg *d, MMXReg *s) +{ + MMXReg r; + + r._w[0] = satsw(d->_l[0]); + r._w[1] = satsw(d->_l[1]); + + + + + r._w[(2 << 0) + 0] = satsw(s->_l[0]); + r._w[(2 << 0) + 1] = satsw(s->_l[1]); + + + + + *d = r; +} +# 1189 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_punpcklbw_mmx (MMXReg *d, MMXReg *s) { MMXReg r; r._b[0] = d->_b[(0 << (0 + 2)) + 0]; r._b[1] = s->_b[(0 << (0 + 2)) + 0]; r._b[2] = d->_b[(0 << (0 + 2)) + 1]; r._b[3] = s->_b[(0 << (0 + 2)) + 1]; r._b[4] = d->_b[(0 << (0 + 2)) + 2]; r._b[5] = s->_b[(0 << (0 + 2)) + 2]; r._b[6] = d->_b[(0 << (0 + 2)) + 3]; r._b[7] = s->_b[(0 << (0 + 2)) + 3]; *d = r; } void helper_punpcklwd_mmx (MMXReg *d, MMXReg *s) { MMXReg r; r._w[0] = d->_w[(0 << (0 + 1)) + 0]; r._w[1] = s->_w[(0 << (0 + 1)) + 0]; r._w[2] = d->_w[(0 << (0 + 1)) + 1]; r._w[3] = s->_w[(0 << (0 + 1)) + 1]; *d = r; } void helper_punpckldq_mmx (MMXReg *d, MMXReg *s) { MMXReg r; r._l[0] = d->_l[(0 << 0) + 0]; r._l[1] = s->_l[(0 << 0) + 0]; *d = r; } +void helper_punpckhbw_mmx (MMXReg *d, MMXReg *s) { MMXReg r; r._b[0] = d->_b[(1 << (0 + 2)) + 0]; r._b[1] = s->_b[(1 << (0 + 2)) + 0]; r._b[2] = d->_b[(1 << (0 + 2)) + 1]; r._b[3] = s->_b[(1 << (0 + 2)) + 1]; r._b[4] = d->_b[(1 << (0 + 2)) + 2]; r._b[5] = s->_b[(1 << (0 + 2)) + 2]; r._b[6] = d->_b[(1 << (0 + 2)) + 3]; r._b[7] = s->_b[(1 << (0 + 2)) + 3]; *d = r; } void helper_punpckhwd_mmx (MMXReg *d, MMXReg *s) { MMXReg r; r._w[0] = d->_w[(1 << (0 + 1)) + 0]; r._w[1] = s->_w[(1 << (0 + 1)) + 0]; r._w[2] = d->_w[(1 << (0 + 1)) + 1]; r._w[3] = s->_w[(1 << (0 + 1)) + 1]; *d = r; } void helper_punpckhdq_mmx (MMXReg *d, MMXReg *s) { MMXReg r; r._l[0] = d->_l[(1 << 0) + 0]; r._l[1] = s->_l[(1 << 0) + 0]; *d = r; } + + + +void helper_pi2fd(MMXReg *d, MMXReg *s) +{ + d->_s[0] = int32_to_float32(s->_l[0], &env->mmx_status); + d->_s[1] = int32_to_float32(s->_l[1], &env->mmx_status); +} + +void helper_pi2fw(MMXReg *d, MMXReg *s) +{ + d->_s[0] = int32_to_float32((int16_t)s->_w[0], &env->mmx_status); + d->_s[1] = int32_to_float32((int16_t)s->_w[2], &env->mmx_status); +} + +void helper_pf2id(MMXReg *d, MMXReg *s) +{ + d->_l[0] = float32_to_int32_round_to_zero(s->_s[0], &env->mmx_status); + d->_l[1] = float32_to_int32_round_to_zero(s->_s[1], &env->mmx_status); +} + +void helper_pf2iw(MMXReg *d, MMXReg *s) +{ + d->_l[0] = satsw(float32_to_int32_round_to_zero(s->_s[0], &env->mmx_status)); + d->_l[1] = satsw(float32_to_int32_round_to_zero(s->_s[1], &env->mmx_status)); +} + +void helper_pfacc(MMXReg *d, MMXReg *s) +{ + MMXReg r; + r._s[0] = float32_add(d->_s[0], d->_s[1], &env->mmx_status); + r._s[1] = float32_add(s->_s[0], s->_s[1], &env->mmx_status); + *d = r; +} + +void helper_pfadd(MMXReg *d, MMXReg *s) +{ + d->_s[0] = float32_add(d->_s[0], s->_s[0], &env->mmx_status); + d->_s[1] = float32_add(d->_s[1], s->_s[1], &env->mmx_status); +} + +void helper_pfcmpeq(MMXReg *d, MMXReg *s) +{ + d->_l[0] = float32_eq_quiet(d->_s[0], s->_s[0], &env->mmx_status) ? -1 : 0; + d->_l[1] = float32_eq_quiet(d->_s[1], s->_s[1], &env->mmx_status) ? -1 : 0; +} + +void helper_pfcmpge(MMXReg *d, MMXReg *s) +{ + d->_l[0] = float32_le(s->_s[0], d->_s[0], &env->mmx_status) ? -1 : 0; + d->_l[1] = float32_le(s->_s[1], d->_s[1], &env->mmx_status) ? -1 : 0; +} + +void helper_pfcmpgt(MMXReg *d, MMXReg *s) +{ + d->_l[0] = float32_lt(s->_s[0], d->_s[0], &env->mmx_status) ? -1 : 0; + d->_l[1] = float32_lt(s->_s[1], d->_s[1], &env->mmx_status) ? -1 : 0; +} + +void helper_pfmax(MMXReg *d, MMXReg *s) +{ + if (float32_lt(d->_s[0], s->_s[0], &env->mmx_status)) + d->_s[0] = s->_s[0]; + if (float32_lt(d->_s[1], s->_s[1], &env->mmx_status)) + d->_s[1] = s->_s[1]; +} + +void helper_pfmin(MMXReg *d, MMXReg *s) +{ + if (float32_lt(s->_s[0], d->_s[0], &env->mmx_status)) + d->_s[0] = s->_s[0]; + if (float32_lt(s->_s[1], d->_s[1], &env->mmx_status)) + d->_s[1] = s->_s[1]; +} + +void helper_pfmul(MMXReg *d, MMXReg *s) +{ + d->_s[0] = float32_mul(d->_s[0], s->_s[0], &env->mmx_status); + d->_s[1] = float32_mul(d->_s[1], s->_s[1], &env->mmx_status); +} + +void helper_pfnacc(MMXReg *d, MMXReg *s) +{ + MMXReg r; + r._s[0] = float32_sub(d->_s[0], d->_s[1], &env->mmx_status); + r._s[1] = float32_sub(s->_s[0], s->_s[1], &env->mmx_status); + *d = r; +} + +void helper_pfpnacc(MMXReg *d, MMXReg *s) +{ + MMXReg r; + r._s[0] = float32_sub(d->_s[0], d->_s[1], &env->mmx_status); + r._s[1] = float32_add(s->_s[0], s->_s[1], &env->mmx_status); + *d = r; +} + +void helper_pfrcp(MMXReg *d, MMXReg *s) +{ + d->_s[0] = float32_div((0x3f800000), s->_s[0], &env->mmx_status); + d->_s[1] = d->_s[0]; +} + +void helper_pfrsqrt(MMXReg *d, MMXReg *s) +{ + d->_l[1] = s->_l[0] & 0x7fffffff; + d->_s[1] = float32_div((0x3f800000), + float32_sqrt(d->_s[1], &env->mmx_status), + &env->mmx_status); + d->_l[1] |= s->_l[0] & 0x80000000; + d->_l[0] = d->_l[1]; +} + +void helper_pfsub(MMXReg *d, MMXReg *s) +{ + d->_s[0] = float32_sub(d->_s[0], s->_s[0], &env->mmx_status); + d->_s[1] = float32_sub(d->_s[1], s->_s[1], &env->mmx_status); +} + +void helper_pfsubr(MMXReg *d, MMXReg *s) +{ + d->_s[0] = float32_sub(s->_s[0], d->_s[0], &env->mmx_status); + d->_s[1] = float32_sub(s->_s[1], d->_s[1], &env->mmx_status); +} + +void helper_pswapd(MMXReg *d, MMXReg *s) +{ + MMXReg r; + r._l[0] = s->_l[1]; + r._l[1] = s->_l[0]; + *d = r; +} + + + +void helper_pshufb_mmx (MMXReg *d, MMXReg *s) +{ + int i; + MMXReg r; + + for (i = 0; i < (8 << 0); i++) + r._b[i] = (s->_b[i] & 0x80) ? 0 : (d->_b[s->_b[i] & ((8 << 0) - 1)]); + + *d = r; +} + +void helper_phaddw_mmx (MMXReg *d, MMXReg *s) +{ + d->_w[0] = (int16_t)d->_w[0] + (int16_t)d->_w[1]; + d->_w[1] = (int16_t)d->_w[2] + (int16_t)d->_w[3]; + ; + ; + d->_w[(2 << 0) + 0] = (int16_t)s->_w[0] + (int16_t)s->_w[1]; + d->_w[(2 << 0) + 1] = (int16_t)s->_w[2] + (int16_t)s->_w[3]; + ; + ; +} + +void helper_phaddd_mmx (MMXReg *d, MMXReg *s) +{ + d->_l[0] = (int32_t)d->_l[0] + (int32_t)d->_l[1]; + ; + d->_l[(1 << 0) + 0] = (int32_t)s->_l[0] + (int32_t)s->_l[1]; + ; +} + +void helper_phaddsw_mmx (MMXReg *d, MMXReg *s) +{ + d->_w[0] = satsw((int16_t)d->_w[0] + (int16_t)d->_w[1]); + d->_w[1] = satsw((int16_t)d->_w[2] + (int16_t)d->_w[3]); + ; + ; + d->_w[(2 << 0) + 0] = satsw((int16_t)s->_w[0] + (int16_t)s->_w[1]); + d->_w[(2 << 0) + 1] = satsw((int16_t)s->_w[2] + (int16_t)s->_w[3]); + ; + ; +} + +void helper_pmaddubsw_mmx (MMXReg *d, MMXReg *s) +{ + d->_w[0] = satsw((int8_t)s->_b[0] * (uint8_t)d->_b[0] + + (int8_t)s->_b[1] * (uint8_t)d->_b[1]); + d->_w[1] = satsw((int8_t)s->_b[2] * (uint8_t)d->_b[2] + + (int8_t)s->_b[3] * (uint8_t)d->_b[3]); + d->_w[2] = satsw((int8_t)s->_b[4] * (uint8_t)d->_b[4] + + (int8_t)s->_b[5] * (uint8_t)d->_b[5]); + d->_w[3] = satsw((int8_t)s->_b[6] * (uint8_t)d->_b[6] + + (int8_t)s->_b[7] * (uint8_t)d->_b[7]); +# 1389 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +} + +void helper_phsubw_mmx (MMXReg *d, MMXReg *s) +{ + d->_w[0] = (int16_t)d->_w[0] - (int16_t)d->_w[1]; + d->_w[1] = (int16_t)d->_w[2] - (int16_t)d->_w[3]; + ; + ; + d->_w[(2 << 0) + 0] = (int16_t)s->_w[0] - (int16_t)s->_w[1]; + d->_w[(2 << 0) + 1] = (int16_t)s->_w[2] - (int16_t)s->_w[3]; + ; + ; +} + +void helper_phsubd_mmx (MMXReg *d, MMXReg *s) +{ + d->_l[0] = (int32_t)d->_l[0] - (int32_t)d->_l[1]; + ; + d->_l[(1 << 0) + 0] = (int32_t)s->_l[0] - (int32_t)s->_l[1]; + ; +} + +void helper_phsubsw_mmx (MMXReg *d, MMXReg *s) +{ + d->_w[0] = satsw((int16_t)d->_w[0] - (int16_t)d->_w[1]); + d->_w[1] = satsw((int16_t)d->_w[2] - (int16_t)d->_w[3]); + ; + ; + d->_w[(2 << 0) + 0] = satsw((int16_t)s->_w[0] - (int16_t)s->_w[1]); + d->_w[(2 << 0) + 1] = satsw((int16_t)s->_w[2] - (int16_t)s->_w[3]); + ; + ; +} + + + + +void helper_pabsb_mmx (MMXReg *d, MMXReg *s){ d->_b[0] = s->_b[0] > (127) ? -(int8_t ) s->_b[0] : s->_b[0]; d->_b[1] = s->_b[1] > (127) ? -(int8_t ) s->_b[1] : s->_b[1]; d->_b[2] = s->_b[2] > (127) ? -(int8_t ) s->_b[2] : s->_b[2]; d->_b[3] = s->_b[3] > (127) ? -(int8_t ) s->_b[3] : s->_b[3]; d->_b[4] = s->_b[4] > (127) ? -(int8_t ) s->_b[4] : s->_b[4]; d->_b[5] = s->_b[5] > (127) ? -(int8_t ) s->_b[5] : s->_b[5]; d->_b[6] = s->_b[6] > (127) ? -(int8_t ) s->_b[6] : s->_b[6]; d->_b[7] = s->_b[7] > (127) ? -(int8_t ) s->_b[7] : s->_b[7]; } +void helper_pabsw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = s->_w[0] > (32767) ? -(int16_t) s->_w[0] : s->_w[0]; d->_w[1] = s->_w[1] > (32767) ? -(int16_t) s->_w[1] : s->_w[1]; d->_w[2] = s->_w[2] > (32767) ? -(int16_t) s->_w[2] : s->_w[2]; d->_w[3] = s->_w[3] > (32767) ? -(int16_t) s->_w[3] : s->_w[3]; } +void helper_pabsd_mmx (MMXReg *d, MMXReg *s){ d->_l[0] = s->_l[0] > (2147483647) ? -(int32_t) s->_l[0] : s->_l[0]; d->_l[1] = s->_l[1] > (2147483647) ? -(int32_t) s->_l[1] : s->_l[1]; } + + +void helper_pmulhrsw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = ((int16_t) d->_w[0] * (int16_t) s->_w[0] + 0x4000) >> 15; d->_w[1] = ((int16_t) d->_w[1] * (int16_t) s->_w[1] + 0x4000) >> 15; d->_w[2] = ((int16_t) d->_w[2] * (int16_t) s->_w[2] + 0x4000) >> 15; d->_w[3] = ((int16_t) d->_w[3] * (int16_t) s->_w[3] + 0x4000) >> 15; } + + + + +void helper_psignb_mmx (MMXReg *d, MMXReg *s){ d->_b[0] = s->_b[0] <= (127) ? s->_b[0] ? d->_b[0] : 0 : -(int8_t ) d->_b[0]; d->_b[1] = s->_b[1] <= (127) ? s->_b[1] ? d->_b[1] : 0 : -(int8_t ) d->_b[1]; d->_b[2] = s->_b[2] <= (127) ? s->_b[2] ? d->_b[2] : 0 : -(int8_t ) d->_b[2]; d->_b[3] = s->_b[3] <= (127) ? s->_b[3] ? d->_b[3] : 0 : -(int8_t ) d->_b[3]; d->_b[4] = s->_b[4] <= (127) ? s->_b[4] ? d->_b[4] : 0 : -(int8_t ) d->_b[4]; d->_b[5] = s->_b[5] <= (127) ? s->_b[5] ? d->_b[5] : 0 : -(int8_t ) d->_b[5]; d->_b[6] = s->_b[6] <= (127) ? s->_b[6] ? d->_b[6] : 0 : -(int8_t ) d->_b[6]; d->_b[7] = s->_b[7] <= (127) ? s->_b[7] ? d->_b[7] : 0 : -(int8_t ) d->_b[7]; } +void helper_psignw_mmx (MMXReg *d, MMXReg *s){ d->_w[0] = s->_w[0] <= (32767) ? s->_w[0] ? d->_w[0] : 0 : -(int16_t) d->_w[0]; d->_w[1] = s->_w[1] <= (32767) ? s->_w[1] ? d->_w[1] : 0 : -(int16_t) d->_w[1]; d->_w[2] = s->_w[2] <= (32767) ? s->_w[2] ? d->_w[2] : 0 : -(int16_t) d->_w[2]; d->_w[3] = s->_w[3] <= (32767) ? s->_w[3] ? d->_w[3] : 0 : -(int16_t) d->_w[3]; } +void helper_psignd_mmx (MMXReg *d, MMXReg *s){ d->_l[0] = s->_l[0] <= (2147483647) ? s->_l[0] ? d->_l[0] : 0 : -(int32_t) d->_l[0]; d->_l[1] = s->_l[1] <= (2147483647) ? s->_l[1] ? d->_l[1] : 0 : -(int32_t) d->_l[1]; } + +void helper_palignr_mmx (MMXReg *d, MMXReg *s, int32_t shift) +{ + MMXReg r; + + + if (shift >= (16 << 0)) { + r.q = 0; + ; + } else { + shift <<= 3; + + + r.q = (shift - 0 < 64 && shift - 0 > -64 ? shift - 0 > 0 ? s->q >> (shift - 0) : (s->q << -(shift - 0)) : 0) | + (shift - 64 < 64 && shift - 64 > -64 ? shift - 64 > 0 ? d->q >> (shift - 64) : (d->q << -(shift - 64)) : 0); +# 1465 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" + } + + *d = r; +} +# 5695 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" 1 +# 38 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_psrlw_xmm(XMMReg *d, XMMReg *s) +{ + int shift; + + if (s->_q[0] > 15) { + d->_q[0] = 0; + + d->_q[1] = 0; + + } else { + shift = s->_b[0]; + d->_w[0] >>= shift; + d->_w[1] >>= shift; + d->_w[2] >>= shift; + d->_w[3] >>= shift; + + d->_w[4] >>= shift; + d->_w[5] >>= shift; + d->_w[6] >>= shift; + d->_w[7] >>= shift; + + } +} + +void helper_psraw_xmm(XMMReg *d, XMMReg *s) +{ + int shift; + + if (s->_q[0] > 15) { + shift = 15; + } else { + shift = s->_b[0]; + } + d->_w[0] = (int16_t)d->_w[0] >> shift; + d->_w[1] = (int16_t)d->_w[1] >> shift; + d->_w[2] = (int16_t)d->_w[2] >> shift; + d->_w[3] = (int16_t)d->_w[3] >> shift; + + d->_w[4] = (int16_t)d->_w[4] >> shift; + d->_w[5] = (int16_t)d->_w[5] >> shift; + d->_w[6] = (int16_t)d->_w[6] >> shift; + d->_w[7] = (int16_t)d->_w[7] >> shift; + +} + +void helper_psllw_xmm(XMMReg *d, XMMReg *s) +{ + int shift; + + if (s->_q[0] > 15) { + d->_q[0] = 0; + + d->_q[1] = 0; + + } else { + shift = s->_b[0]; + d->_w[0] <<= shift; + d->_w[1] <<= shift; + d->_w[2] <<= shift; + d->_w[3] <<= shift; + + d->_w[4] <<= shift; + d->_w[5] <<= shift; + d->_w[6] <<= shift; + d->_w[7] <<= shift; + + } +} + +void helper_psrld_xmm(XMMReg *d, XMMReg *s) +{ + int shift; + + if (s->_q[0] > 31) { + d->_q[0] = 0; + + d->_q[1] = 0; + + } else { + shift = s->_b[0]; + d->_l[0] >>= shift; + d->_l[1] >>= shift; + + d->_l[2] >>= shift; + d->_l[3] >>= shift; + + } +} + +void helper_psrad_xmm(XMMReg *d, XMMReg *s) +{ + int shift; + + if (s->_q[0] > 31) { + shift = 31; + } else { + shift = s->_b[0]; + } + d->_l[0] = (int32_t)d->_l[0] >> shift; + d->_l[1] = (int32_t)d->_l[1] >> shift; + + d->_l[2] = (int32_t)d->_l[2] >> shift; + d->_l[3] = (int32_t)d->_l[3] >> shift; + +} + +void helper_pslld_xmm(XMMReg *d, XMMReg *s) +{ + int shift; + + if (s->_q[0] > 31) { + d->_q[0] = 0; + + d->_q[1] = 0; + + } else { + shift = s->_b[0]; + d->_l[0] <<= shift; + d->_l[1] <<= shift; + + d->_l[2] <<= shift; + d->_l[3] <<= shift; + + } +} + +void helper_psrlq_xmm(XMMReg *d, XMMReg *s) +{ + int shift; + + if (s->_q[0] > 63) { + d->_q[0] = 0; + + d->_q[1] = 0; + + } else { + shift = s->_b[0]; + d->_q[0] >>= shift; + + d->_q[1] >>= shift; + + } +} + +void helper_psllq_xmm(XMMReg *d, XMMReg *s) +{ + int shift; + + if (s->_q[0] > 63) { + d->_q[0] = 0; + + d->_q[1] = 0; + + } else { + shift = s->_b[0]; + d->_q[0] <<= shift; + + d->_q[1] <<= shift; + + } +} + + +void helper_psrldq_xmm(XMMReg *d, XMMReg *s) +{ + int shift, i; + + shift = s->_l[0]; + if (shift > 16) + shift = 16; + for(i = 0; i < 16 - shift; i++) + d->_b[i] = d->_b[i + shift]; + for(i = 16 - shift; i < 16; i++) + d->_b[i] = 0; +} + +void helper_pslldq_xmm(XMMReg *d, XMMReg *s) +{ + int shift, i; + + shift = s->_l[0]; + if (shift > 16) + shift = 16; + for(i = 15; i >= shift; i--) + d->_b[i] = d->_b[i - shift]; + for(i = 0; i < shift; i++) + d->_b[i] = 0; +} +# 361 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_paddb_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = ((d->_b[0]) + (s->_b[0])); d->_b[1] = ((d->_b[1]) + (s->_b[1])); d->_b[2] = ((d->_b[2]) + (s->_b[2])); d->_b[3] = ((d->_b[3]) + (s->_b[3])); d->_b[4] = ((d->_b[4]) + (s->_b[4])); d->_b[5] = ((d->_b[5]) + (s->_b[5])); d->_b[6] = ((d->_b[6]) + (s->_b[6])); d->_b[7] = ((d->_b[7]) + (s->_b[7])); d->_b[8] = ((d->_b[8]) + (s->_b[8])); d->_b[9] = ((d->_b[9]) + (s->_b[9])); d->_b[10] = ((d->_b[10]) + (s->_b[10])); d->_b[11] = ((d->_b[11]) + (s->_b[11])); d->_b[12] = ((d->_b[12]) + (s->_b[12])); d->_b[13] = ((d->_b[13]) + (s->_b[13])); d->_b[14] = ((d->_b[14]) + (s->_b[14])); d->_b[15] = ((d->_b[15]) + (s->_b[15]));} +void helper_paddw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = ((d->_w[0]) + (s->_w[0])); d->_w[1] = ((d->_w[1]) + (s->_w[1])); d->_w[2] = ((d->_w[2]) + (s->_w[2])); d->_w[3] = ((d->_w[3]) + (s->_w[3])); d->_w[4] = ((d->_w[4]) + (s->_w[4])); d->_w[5] = ((d->_w[5]) + (s->_w[5])); d->_w[6] = ((d->_w[6]) + (s->_w[6])); d->_w[7] = ((d->_w[7]) + (s->_w[7]));} +void helper_paddl_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = ((d->_l[0]) + (s->_l[0])); d->_l[1] = ((d->_l[1]) + (s->_l[1])); d->_l[2] = ((d->_l[2]) + (s->_l[2])); d->_l[3] = ((d->_l[3]) + (s->_l[3]));} +void helper_paddq_xmm (XMMReg *d, XMMReg *s){ d->_q[0] = ((d->_q[0]) + (s->_q[0])); d->_q[1] = ((d->_q[1]) + (s->_q[1]));} + +void helper_psubb_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = ((d->_b[0]) - (s->_b[0])); d->_b[1] = ((d->_b[1]) - (s->_b[1])); d->_b[2] = ((d->_b[2]) - (s->_b[2])); d->_b[3] = ((d->_b[3]) - (s->_b[3])); d->_b[4] = ((d->_b[4]) - (s->_b[4])); d->_b[5] = ((d->_b[5]) - (s->_b[5])); d->_b[6] = ((d->_b[6]) - (s->_b[6])); d->_b[7] = ((d->_b[7]) - (s->_b[7])); d->_b[8] = ((d->_b[8]) - (s->_b[8])); d->_b[9] = ((d->_b[9]) - (s->_b[9])); d->_b[10] = ((d->_b[10]) - (s->_b[10])); d->_b[11] = ((d->_b[11]) - (s->_b[11])); d->_b[12] = ((d->_b[12]) - (s->_b[12])); d->_b[13] = ((d->_b[13]) - (s->_b[13])); d->_b[14] = ((d->_b[14]) - (s->_b[14])); d->_b[15] = ((d->_b[15]) - (s->_b[15]));} +void helper_psubw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = ((d->_w[0]) - (s->_w[0])); d->_w[1] = ((d->_w[1]) - (s->_w[1])); d->_w[2] = ((d->_w[2]) - (s->_w[2])); d->_w[3] = ((d->_w[3]) - (s->_w[3])); d->_w[4] = ((d->_w[4]) - (s->_w[4])); d->_w[5] = ((d->_w[5]) - (s->_w[5])); d->_w[6] = ((d->_w[6]) - (s->_w[6])); d->_w[7] = ((d->_w[7]) - (s->_w[7]));} +void helper_psubl_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = ((d->_l[0]) - (s->_l[0])); d->_l[1] = ((d->_l[1]) - (s->_l[1])); d->_l[2] = ((d->_l[2]) - (s->_l[2])); d->_l[3] = ((d->_l[3]) - (s->_l[3]));} +void helper_psubq_xmm (XMMReg *d, XMMReg *s){ d->_q[0] = ((d->_q[0]) - (s->_q[0])); d->_q[1] = ((d->_q[1]) - (s->_q[1]));} + +void helper_paddusb_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = satub((d->_b[0]) + (s->_b[0])); d->_b[1] = satub((d->_b[1]) + (s->_b[1])); d->_b[2] = satub((d->_b[2]) + (s->_b[2])); d->_b[3] = satub((d->_b[3]) + (s->_b[3])); d->_b[4] = satub((d->_b[4]) + (s->_b[4])); d->_b[5] = satub((d->_b[5]) + (s->_b[5])); d->_b[6] = satub((d->_b[6]) + (s->_b[6])); d->_b[7] = satub((d->_b[7]) + (s->_b[7])); d->_b[8] = satub((d->_b[8]) + (s->_b[8])); d->_b[9] = satub((d->_b[9]) + (s->_b[9])); d->_b[10] = satub((d->_b[10]) + (s->_b[10])); d->_b[11] = satub((d->_b[11]) + (s->_b[11])); d->_b[12] = satub((d->_b[12]) + (s->_b[12])); d->_b[13] = satub((d->_b[13]) + (s->_b[13])); d->_b[14] = satub((d->_b[14]) + (s->_b[14])); d->_b[15] = satub((d->_b[15]) + (s->_b[15]));} +void helper_paddsb_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = satsb((int8_t)(d->_b[0]) + (int8_t)(s->_b[0])); d->_b[1] = satsb((int8_t)(d->_b[1]) + (int8_t)(s->_b[1])); d->_b[2] = satsb((int8_t)(d->_b[2]) + (int8_t)(s->_b[2])); d->_b[3] = satsb((int8_t)(d->_b[3]) + (int8_t)(s->_b[3])); d->_b[4] = satsb((int8_t)(d->_b[4]) + (int8_t)(s->_b[4])); d->_b[5] = satsb((int8_t)(d->_b[5]) + (int8_t)(s->_b[5])); d->_b[6] = satsb((int8_t)(d->_b[6]) + (int8_t)(s->_b[6])); d->_b[7] = satsb((int8_t)(d->_b[7]) + (int8_t)(s->_b[7])); d->_b[8] = satsb((int8_t)(d->_b[8]) + (int8_t)(s->_b[8])); d->_b[9] = satsb((int8_t)(d->_b[9]) + (int8_t)(s->_b[9])); d->_b[10] = satsb((int8_t)(d->_b[10]) + (int8_t)(s->_b[10])); d->_b[11] = satsb((int8_t)(d->_b[11]) + (int8_t)(s->_b[11])); d->_b[12] = satsb((int8_t)(d->_b[12]) + (int8_t)(s->_b[12])); d->_b[13] = satsb((int8_t)(d->_b[13]) + (int8_t)(s->_b[13])); d->_b[14] = satsb((int8_t)(d->_b[14]) + (int8_t)(s->_b[14])); d->_b[15] = satsb((int8_t)(d->_b[15]) + (int8_t)(s->_b[15]));} +void helper_psubusb_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = satub((d->_b[0]) - (s->_b[0])); d->_b[1] = satub((d->_b[1]) - (s->_b[1])); d->_b[2] = satub((d->_b[2]) - (s->_b[2])); d->_b[3] = satub((d->_b[3]) - (s->_b[3])); d->_b[4] = satub((d->_b[4]) - (s->_b[4])); d->_b[5] = satub((d->_b[5]) - (s->_b[5])); d->_b[6] = satub((d->_b[6]) - (s->_b[6])); d->_b[7] = satub((d->_b[7]) - (s->_b[7])); d->_b[8] = satub((d->_b[8]) - (s->_b[8])); d->_b[9] = satub((d->_b[9]) - (s->_b[9])); d->_b[10] = satub((d->_b[10]) - (s->_b[10])); d->_b[11] = satub((d->_b[11]) - (s->_b[11])); d->_b[12] = satub((d->_b[12]) - (s->_b[12])); d->_b[13] = satub((d->_b[13]) - (s->_b[13])); d->_b[14] = satub((d->_b[14]) - (s->_b[14])); d->_b[15] = satub((d->_b[15]) - (s->_b[15]));} +void helper_psubsb_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = satsb((int8_t)(d->_b[0]) - (int8_t)(s->_b[0])); d->_b[1] = satsb((int8_t)(d->_b[1]) - (int8_t)(s->_b[1])); d->_b[2] = satsb((int8_t)(d->_b[2]) - (int8_t)(s->_b[2])); d->_b[3] = satsb((int8_t)(d->_b[3]) - (int8_t)(s->_b[3])); d->_b[4] = satsb((int8_t)(d->_b[4]) - (int8_t)(s->_b[4])); d->_b[5] = satsb((int8_t)(d->_b[5]) - (int8_t)(s->_b[5])); d->_b[6] = satsb((int8_t)(d->_b[6]) - (int8_t)(s->_b[6])); d->_b[7] = satsb((int8_t)(d->_b[7]) - (int8_t)(s->_b[7])); d->_b[8] = satsb((int8_t)(d->_b[8]) - (int8_t)(s->_b[8])); d->_b[9] = satsb((int8_t)(d->_b[9]) - (int8_t)(s->_b[9])); d->_b[10] = satsb((int8_t)(d->_b[10]) - (int8_t)(s->_b[10])); d->_b[11] = satsb((int8_t)(d->_b[11]) - (int8_t)(s->_b[11])); d->_b[12] = satsb((int8_t)(d->_b[12]) - (int8_t)(s->_b[12])); d->_b[13] = satsb((int8_t)(d->_b[13]) - (int8_t)(s->_b[13])); d->_b[14] = satsb((int8_t)(d->_b[14]) - (int8_t)(s->_b[14])); d->_b[15] = satsb((int8_t)(d->_b[15]) - (int8_t)(s->_b[15]));} + +void helper_paddusw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = satuw((d->_w[0]) + (s->_w[0])); d->_w[1] = satuw((d->_w[1]) + (s->_w[1])); d->_w[2] = satuw((d->_w[2]) + (s->_w[2])); d->_w[3] = satuw((d->_w[3]) + (s->_w[3])); d->_w[4] = satuw((d->_w[4]) + (s->_w[4])); d->_w[5] = satuw((d->_w[5]) + (s->_w[5])); d->_w[6] = satuw((d->_w[6]) + (s->_w[6])); d->_w[7] = satuw((d->_w[7]) + (s->_w[7]));} +void helper_paddsw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = satsw((int16_t)(d->_w[0]) + (int16_t)(s->_w[0])); d->_w[1] = satsw((int16_t)(d->_w[1]) + (int16_t)(s->_w[1])); d->_w[2] = satsw((int16_t)(d->_w[2]) + (int16_t)(s->_w[2])); d->_w[3] = satsw((int16_t)(d->_w[3]) + (int16_t)(s->_w[3])); d->_w[4] = satsw((int16_t)(d->_w[4]) + (int16_t)(s->_w[4])); d->_w[5] = satsw((int16_t)(d->_w[5]) + (int16_t)(s->_w[5])); d->_w[6] = satsw((int16_t)(d->_w[6]) + (int16_t)(s->_w[6])); d->_w[7] = satsw((int16_t)(d->_w[7]) + (int16_t)(s->_w[7]));} +void helper_psubusw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = satuw((d->_w[0]) - (s->_w[0])); d->_w[1] = satuw((d->_w[1]) - (s->_w[1])); d->_w[2] = satuw((d->_w[2]) - (s->_w[2])); d->_w[3] = satuw((d->_w[3]) - (s->_w[3])); d->_w[4] = satuw((d->_w[4]) - (s->_w[4])); d->_w[5] = satuw((d->_w[5]) - (s->_w[5])); d->_w[6] = satuw((d->_w[6]) - (s->_w[6])); d->_w[7] = satuw((d->_w[7]) - (s->_w[7]));} +void helper_psubsw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = satsw((int16_t)(d->_w[0]) - (int16_t)(s->_w[0])); d->_w[1] = satsw((int16_t)(d->_w[1]) - (int16_t)(s->_w[1])); d->_w[2] = satsw((int16_t)(d->_w[2]) - (int16_t)(s->_w[2])); d->_w[3] = satsw((int16_t)(d->_w[3]) - (int16_t)(s->_w[3])); d->_w[4] = satsw((int16_t)(d->_w[4]) - (int16_t)(s->_w[4])); d->_w[5] = satsw((int16_t)(d->_w[5]) - (int16_t)(s->_w[5])); d->_w[6] = satsw((int16_t)(d->_w[6]) - (int16_t)(s->_w[6])); d->_w[7] = satsw((int16_t)(d->_w[7]) - (int16_t)(s->_w[7]));} + +void helper_pminub_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = ((d->_b[0]) < (s->_b[0])) ? (d->_b[0]) : (s->_b[0]); d->_b[1] = ((d->_b[1]) < (s->_b[1])) ? (d->_b[1]) : (s->_b[1]); d->_b[2] = ((d->_b[2]) < (s->_b[2])) ? (d->_b[2]) : (s->_b[2]); d->_b[3] = ((d->_b[3]) < (s->_b[3])) ? (d->_b[3]) : (s->_b[3]); d->_b[4] = ((d->_b[4]) < (s->_b[4])) ? (d->_b[4]) : (s->_b[4]); d->_b[5] = ((d->_b[5]) < (s->_b[5])) ? (d->_b[5]) : (s->_b[5]); d->_b[6] = ((d->_b[6]) < (s->_b[6])) ? (d->_b[6]) : (s->_b[6]); d->_b[7] = ((d->_b[7]) < (s->_b[7])) ? (d->_b[7]) : (s->_b[7]); d->_b[8] = ((d->_b[8]) < (s->_b[8])) ? (d->_b[8]) : (s->_b[8]); d->_b[9] = ((d->_b[9]) < (s->_b[9])) ? (d->_b[9]) : (s->_b[9]); d->_b[10] = ((d->_b[10]) < (s->_b[10])) ? (d->_b[10]) : (s->_b[10]); d->_b[11] = ((d->_b[11]) < (s->_b[11])) ? (d->_b[11]) : (s->_b[11]); d->_b[12] = ((d->_b[12]) < (s->_b[12])) ? (d->_b[12]) : (s->_b[12]); d->_b[13] = ((d->_b[13]) < (s->_b[13])) ? (d->_b[13]) : (s->_b[13]); d->_b[14] = ((d->_b[14]) < (s->_b[14])) ? (d->_b[14]) : (s->_b[14]); d->_b[15] = ((d->_b[15]) < (s->_b[15])) ? (d->_b[15]) : (s->_b[15]);} +void helper_pmaxub_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = ((d->_b[0]) > (s->_b[0])) ? (d->_b[0]) : (s->_b[0]); d->_b[1] = ((d->_b[1]) > (s->_b[1])) ? (d->_b[1]) : (s->_b[1]); d->_b[2] = ((d->_b[2]) > (s->_b[2])) ? (d->_b[2]) : (s->_b[2]); d->_b[3] = ((d->_b[3]) > (s->_b[3])) ? (d->_b[3]) : (s->_b[3]); d->_b[4] = ((d->_b[4]) > (s->_b[4])) ? (d->_b[4]) : (s->_b[4]); d->_b[5] = ((d->_b[5]) > (s->_b[5])) ? (d->_b[5]) : (s->_b[5]); d->_b[6] = ((d->_b[6]) > (s->_b[6])) ? (d->_b[6]) : (s->_b[6]); d->_b[7] = ((d->_b[7]) > (s->_b[7])) ? (d->_b[7]) : (s->_b[7]); d->_b[8] = ((d->_b[8]) > (s->_b[8])) ? (d->_b[8]) : (s->_b[8]); d->_b[9] = ((d->_b[9]) > (s->_b[9])) ? (d->_b[9]) : (s->_b[9]); d->_b[10] = ((d->_b[10]) > (s->_b[10])) ? (d->_b[10]) : (s->_b[10]); d->_b[11] = ((d->_b[11]) > (s->_b[11])) ? (d->_b[11]) : (s->_b[11]); d->_b[12] = ((d->_b[12]) > (s->_b[12])) ? (d->_b[12]) : (s->_b[12]); d->_b[13] = ((d->_b[13]) > (s->_b[13])) ? (d->_b[13]) : (s->_b[13]); d->_b[14] = ((d->_b[14]) > (s->_b[14])) ? (d->_b[14]) : (s->_b[14]); d->_b[15] = ((d->_b[15]) > (s->_b[15])) ? (d->_b[15]) : (s->_b[15]);} + +void helper_pminsw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = ((int16_t)(d->_w[0]) < (int16_t)(s->_w[0])) ? (d->_w[0]) : (s->_w[0]); d->_w[1] = ((int16_t)(d->_w[1]) < (int16_t)(s->_w[1])) ? (d->_w[1]) : (s->_w[1]); d->_w[2] = ((int16_t)(d->_w[2]) < (int16_t)(s->_w[2])) ? (d->_w[2]) : (s->_w[2]); d->_w[3] = ((int16_t)(d->_w[3]) < (int16_t)(s->_w[3])) ? (d->_w[3]) : (s->_w[3]); d->_w[4] = ((int16_t)(d->_w[4]) < (int16_t)(s->_w[4])) ? (d->_w[4]) : (s->_w[4]); d->_w[5] = ((int16_t)(d->_w[5]) < (int16_t)(s->_w[5])) ? (d->_w[5]) : (s->_w[5]); d->_w[6] = ((int16_t)(d->_w[6]) < (int16_t)(s->_w[6])) ? (d->_w[6]) : (s->_w[6]); d->_w[7] = ((int16_t)(d->_w[7]) < (int16_t)(s->_w[7])) ? (d->_w[7]) : (s->_w[7]);} +void helper_pmaxsw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = ((int16_t)(d->_w[0]) > (int16_t)(s->_w[0])) ? (d->_w[0]) : (s->_w[0]); d->_w[1] = ((int16_t)(d->_w[1]) > (int16_t)(s->_w[1])) ? (d->_w[1]) : (s->_w[1]); d->_w[2] = ((int16_t)(d->_w[2]) > (int16_t)(s->_w[2])) ? (d->_w[2]) : (s->_w[2]); d->_w[3] = ((int16_t)(d->_w[3]) > (int16_t)(s->_w[3])) ? (d->_w[3]) : (s->_w[3]); d->_w[4] = ((int16_t)(d->_w[4]) > (int16_t)(s->_w[4])) ? (d->_w[4]) : (s->_w[4]); d->_w[5] = ((int16_t)(d->_w[5]) > (int16_t)(s->_w[5])) ? (d->_w[5]) : (s->_w[5]); d->_w[6] = ((int16_t)(d->_w[6]) > (int16_t)(s->_w[6])) ? (d->_w[6]) : (s->_w[6]); d->_w[7] = ((int16_t)(d->_w[7]) > (int16_t)(s->_w[7])) ? (d->_w[7]) : (s->_w[7]);} + +void helper_pand_xmm (XMMReg *d, XMMReg *s){ d->_q[0] = (d->_q[0]) & (s->_q[0]); d->_q[1] = (d->_q[1]) & (s->_q[1]);} +void helper_pandn_xmm (XMMReg *d, XMMReg *s){ d->_q[0] = ((~(d->_q[0])) & (s->_q[0])); d->_q[1] = ((~(d->_q[1])) & (s->_q[1]));} +void helper_por_xmm (XMMReg *d, XMMReg *s){ d->_q[0] = (d->_q[0]) | (s->_q[0]); d->_q[1] = (d->_q[1]) | (s->_q[1]);} +void helper_pxor_xmm (XMMReg *d, XMMReg *s){ d->_q[0] = (d->_q[0]) ^ (s->_q[0]); d->_q[1] = (d->_q[1]) ^ (s->_q[1]);} + +void helper_pcmpgtb_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = (int8_t)(d->_b[0]) > (int8_t)(s->_b[0]) ? -1 : 0; d->_b[1] = (int8_t)(d->_b[1]) > (int8_t)(s->_b[1]) ? -1 : 0; d->_b[2] = (int8_t)(d->_b[2]) > (int8_t)(s->_b[2]) ? -1 : 0; d->_b[3] = (int8_t)(d->_b[3]) > (int8_t)(s->_b[3]) ? -1 : 0; d->_b[4] = (int8_t)(d->_b[4]) > (int8_t)(s->_b[4]) ? -1 : 0; d->_b[5] = (int8_t)(d->_b[5]) > (int8_t)(s->_b[5]) ? -1 : 0; d->_b[6] = (int8_t)(d->_b[6]) > (int8_t)(s->_b[6]) ? -1 : 0; d->_b[7] = (int8_t)(d->_b[7]) > (int8_t)(s->_b[7]) ? -1 : 0; d->_b[8] = (int8_t)(d->_b[8]) > (int8_t)(s->_b[8]) ? -1 : 0; d->_b[9] = (int8_t)(d->_b[9]) > (int8_t)(s->_b[9]) ? -1 : 0; d->_b[10] = (int8_t)(d->_b[10]) > (int8_t)(s->_b[10]) ? -1 : 0; d->_b[11] = (int8_t)(d->_b[11]) > (int8_t)(s->_b[11]) ? -1 : 0; d->_b[12] = (int8_t)(d->_b[12]) > (int8_t)(s->_b[12]) ? -1 : 0; d->_b[13] = (int8_t)(d->_b[13]) > (int8_t)(s->_b[13]) ? -1 : 0; d->_b[14] = (int8_t)(d->_b[14]) > (int8_t)(s->_b[14]) ? -1 : 0; d->_b[15] = (int8_t)(d->_b[15]) > (int8_t)(s->_b[15]) ? -1 : 0;} +void helper_pcmpgtw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = (int16_t)(d->_w[0]) > (int16_t)(s->_w[0]) ? -1 : 0; d->_w[1] = (int16_t)(d->_w[1]) > (int16_t)(s->_w[1]) ? -1 : 0; d->_w[2] = (int16_t)(d->_w[2]) > (int16_t)(s->_w[2]) ? -1 : 0; d->_w[3] = (int16_t)(d->_w[3]) > (int16_t)(s->_w[3]) ? -1 : 0; d->_w[4] = (int16_t)(d->_w[4]) > (int16_t)(s->_w[4]) ? -1 : 0; d->_w[5] = (int16_t)(d->_w[5]) > (int16_t)(s->_w[5]) ? -1 : 0; d->_w[6] = (int16_t)(d->_w[6]) > (int16_t)(s->_w[6]) ? -1 : 0; d->_w[7] = (int16_t)(d->_w[7]) > (int16_t)(s->_w[7]) ? -1 : 0;} +void helper_pcmpgtl_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = (int32_t)(d->_l[0]) > (int32_t)(s->_l[0]) ? -1 : 0; d->_l[1] = (int32_t)(d->_l[1]) > (int32_t)(s->_l[1]) ? -1 : 0; d->_l[2] = (int32_t)(d->_l[2]) > (int32_t)(s->_l[2]) ? -1 : 0; d->_l[3] = (int32_t)(d->_l[3]) > (int32_t)(s->_l[3]) ? -1 : 0;} + +void helper_pcmpeqb_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = (d->_b[0]) == (s->_b[0]) ? -1 : 0; d->_b[1] = (d->_b[1]) == (s->_b[1]) ? -1 : 0; d->_b[2] = (d->_b[2]) == (s->_b[2]) ? -1 : 0; d->_b[3] = (d->_b[3]) == (s->_b[3]) ? -1 : 0; d->_b[4] = (d->_b[4]) == (s->_b[4]) ? -1 : 0; d->_b[5] = (d->_b[5]) == (s->_b[5]) ? -1 : 0; d->_b[6] = (d->_b[6]) == (s->_b[6]) ? -1 : 0; d->_b[7] = (d->_b[7]) == (s->_b[7]) ? -1 : 0; d->_b[8] = (d->_b[8]) == (s->_b[8]) ? -1 : 0; d->_b[9] = (d->_b[9]) == (s->_b[9]) ? -1 : 0; d->_b[10] = (d->_b[10]) == (s->_b[10]) ? -1 : 0; d->_b[11] = (d->_b[11]) == (s->_b[11]) ? -1 : 0; d->_b[12] = (d->_b[12]) == (s->_b[12]) ? -1 : 0; d->_b[13] = (d->_b[13]) == (s->_b[13]) ? -1 : 0; d->_b[14] = (d->_b[14]) == (s->_b[14]) ? -1 : 0; d->_b[15] = (d->_b[15]) == (s->_b[15]) ? -1 : 0;} +void helper_pcmpeqw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = (d->_w[0]) == (s->_w[0]) ? -1 : 0; d->_w[1] = (d->_w[1]) == (s->_w[1]) ? -1 : 0; d->_w[2] = (d->_w[2]) == (s->_w[2]) ? -1 : 0; d->_w[3] = (d->_w[3]) == (s->_w[3]) ? -1 : 0; d->_w[4] = (d->_w[4]) == (s->_w[4]) ? -1 : 0; d->_w[5] = (d->_w[5]) == (s->_w[5]) ? -1 : 0; d->_w[6] = (d->_w[6]) == (s->_w[6]) ? -1 : 0; d->_w[7] = (d->_w[7]) == (s->_w[7]) ? -1 : 0;} +void helper_pcmpeql_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = (d->_l[0]) == (s->_l[0]) ? -1 : 0; d->_l[1] = (d->_l[1]) == (s->_l[1]) ? -1 : 0; d->_l[2] = (d->_l[2]) == (s->_l[2]) ? -1 : 0; d->_l[3] = (d->_l[3]) == (s->_l[3]) ? -1 : 0;} + +void helper_pmullw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = (d->_w[0]) * (s->_w[0]); d->_w[1] = (d->_w[1]) * (s->_w[1]); d->_w[2] = (d->_w[2]) * (s->_w[2]); d->_w[3] = (d->_w[3]) * (s->_w[3]); d->_w[4] = (d->_w[4]) * (s->_w[4]); d->_w[5] = (d->_w[5]) * (s->_w[5]); d->_w[6] = (d->_w[6]) * (s->_w[6]); d->_w[7] = (d->_w[7]) * (s->_w[7]);} + + + +void helper_pmulhuw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = (d->_w[0]) * (s->_w[0]) >> 16; d->_w[1] = (d->_w[1]) * (s->_w[1]) >> 16; d->_w[2] = (d->_w[2]) * (s->_w[2]) >> 16; d->_w[3] = (d->_w[3]) * (s->_w[3]) >> 16; d->_w[4] = (d->_w[4]) * (s->_w[4]) >> 16; d->_w[5] = (d->_w[5]) * (s->_w[5]) >> 16; d->_w[6] = (d->_w[6]) * (s->_w[6]) >> 16; d->_w[7] = (d->_w[7]) * (s->_w[7]) >> 16;} +void helper_pmulhw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = (int16_t)(d->_w[0]) * (int16_t)(s->_w[0]) >> 16; d->_w[1] = (int16_t)(d->_w[1]) * (int16_t)(s->_w[1]) >> 16; d->_w[2] = (int16_t)(d->_w[2]) * (int16_t)(s->_w[2]) >> 16; d->_w[3] = (int16_t)(d->_w[3]) * (int16_t)(s->_w[3]) >> 16; d->_w[4] = (int16_t)(d->_w[4]) * (int16_t)(s->_w[4]) >> 16; d->_w[5] = (int16_t)(d->_w[5]) * (int16_t)(s->_w[5]) >> 16; d->_w[6] = (int16_t)(d->_w[6]) * (int16_t)(s->_w[6]) >> 16; d->_w[7] = (int16_t)(d->_w[7]) * (int16_t)(s->_w[7]) >> 16;} + +void helper_pavgb_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = ((d->_b[0]) + (s->_b[0]) + 1) >> 1; d->_b[1] = ((d->_b[1]) + (s->_b[1]) + 1) >> 1; d->_b[2] = ((d->_b[2]) + (s->_b[2]) + 1) >> 1; d->_b[3] = ((d->_b[3]) + (s->_b[3]) + 1) >> 1; d->_b[4] = ((d->_b[4]) + (s->_b[4]) + 1) >> 1; d->_b[5] = ((d->_b[5]) + (s->_b[5]) + 1) >> 1; d->_b[6] = ((d->_b[6]) + (s->_b[6]) + 1) >> 1; d->_b[7] = ((d->_b[7]) + (s->_b[7]) + 1) >> 1; d->_b[8] = ((d->_b[8]) + (s->_b[8]) + 1) >> 1; d->_b[9] = ((d->_b[9]) + (s->_b[9]) + 1) >> 1; d->_b[10] = ((d->_b[10]) + (s->_b[10]) + 1) >> 1; d->_b[11] = ((d->_b[11]) + (s->_b[11]) + 1) >> 1; d->_b[12] = ((d->_b[12]) + (s->_b[12]) + 1) >> 1; d->_b[13] = ((d->_b[13]) + (s->_b[13]) + 1) >> 1; d->_b[14] = ((d->_b[14]) + (s->_b[14]) + 1) >> 1; d->_b[15] = ((d->_b[15]) + (s->_b[15]) + 1) >> 1;} +void helper_pavgw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = ((d->_w[0]) + (s->_w[0]) + 1) >> 1; d->_w[1] = ((d->_w[1]) + (s->_w[1]) + 1) >> 1; d->_w[2] = ((d->_w[2]) + (s->_w[2]) + 1) >> 1; d->_w[3] = ((d->_w[3]) + (s->_w[3]) + 1) >> 1; d->_w[4] = ((d->_w[4]) + (s->_w[4]) + 1) >> 1; d->_w[5] = ((d->_w[5]) + (s->_w[5]) + 1) >> 1; d->_w[6] = ((d->_w[6]) + (s->_w[6]) + 1) >> 1; d->_w[7] = ((d->_w[7]) + (s->_w[7]) + 1) >> 1;} + +void helper_pmuludq_xmm (XMMReg *d, XMMReg *s) +{ + d->_q[0] = (uint64_t)s->_l[0] * (uint64_t)d->_l[0]; + + d->_q[1] = (uint64_t)s->_l[2] * (uint64_t)d->_l[2]; + +} + +void helper_pmaddwd_xmm (XMMReg *d, XMMReg *s) +{ + int i; + + for(i = 0; i < (2 << 1); i++) { + d->_l[i] = (int16_t)s->_w[2*i] * (int16_t)d->_w[2*i] + + (int16_t)s->_w[2*i+1] * (int16_t)d->_w[2*i+1]; + } +} +# 437 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_psadbw_xmm (XMMReg *d, XMMReg *s) +{ + unsigned int val; + + val = 0; + val += abs1(d->_b[0] - s->_b[0]); + val += abs1(d->_b[1] - s->_b[1]); + val += abs1(d->_b[2] - s->_b[2]); + val += abs1(d->_b[3] - s->_b[3]); + val += abs1(d->_b[4] - s->_b[4]); + val += abs1(d->_b[5] - s->_b[5]); + val += abs1(d->_b[6] - s->_b[6]); + val += abs1(d->_b[7] - s->_b[7]); + d->_q[0] = val; + + val = 0; + val += abs1(d->_b[8] - s->_b[8]); + val += abs1(d->_b[9] - s->_b[9]); + val += abs1(d->_b[10] - s->_b[10]); + val += abs1(d->_b[11] - s->_b[11]); + val += abs1(d->_b[12] - s->_b[12]); + val += abs1(d->_b[13] - s->_b[13]); + val += abs1(d->_b[14] - s->_b[14]); + val += abs1(d->_b[15] - s->_b[15]); + d->_q[1] = val; + +} + +void helper_maskmov_xmm (XMMReg *d, XMMReg *s, target_ulong a0) +{ + int i; + for(i = 0; i < (8 << 1); i++) { + if (s->_b[i] & 0x80) + stb_data(a0 + i, d->_b[i]); + } +} + +void helper_movl_mm_T0_xmm (XMMReg *d, uint32_t val) +{ + d->_l[0] = val; + d->_l[1] = 0; + + d->_q[1] = 0; + +} +# 504 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_shufps(XMMReg *d, XMMReg *s, int order) +{ + XMMReg r; + r._l[0] = d->_l[order & 3]; + r._l[1] = d->_l[(order >> 2) & 3]; + r._l[2] = s->_l[(order >> 4) & 3]; + r._l[3] = s->_l[(order >> 6) & 3]; + *d = r; +} + +void helper_shufpd(XMMReg *d, XMMReg *s, int order) +{ + XMMReg r; + r._q[0] = d->_q[order & 1]; + r._q[1] = s->_q[(order >> 1) & 1]; + *d = r; +} + +void helper_pshufd_xmm (XMMReg *d, XMMReg *s, int order) +{ + XMMReg r; + r._l[0] = s->_l[order & 3]; + r._l[1] = s->_l[(order >> 2) & 3]; + r._l[2] = s->_l[(order >> 4) & 3]; + r._l[3] = s->_l[(order >> 6) & 3]; + *d = r; +} + +void helper_pshuflw_xmm (XMMReg *d, XMMReg *s, int order) +{ + XMMReg r; + r._w[0] = s->_w[order & 3]; + r._w[1] = s->_w[(order >> 2) & 3]; + r._w[2] = s->_w[(order >> 4) & 3]; + r._w[3] = s->_w[(order >> 6) & 3]; + r._q[1] = s->_q[1]; + *d = r; +} + +void helper_pshufhw_xmm (XMMReg *d, XMMReg *s, int order) +{ + XMMReg r; + r._q[0] = s->_q[0]; + r._w[4] = s->_w[4 + (order & 3)]; + r._w[5] = s->_w[4 + ((order >> 2) & 3)]; + r._w[6] = s->_w[4 + ((order >> 4) & 3)]; + r._w[7] = s->_w[4 + ((order >> 6) & 3)]; + *d = r; +} +# 596 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_addps (XMMReg *d, XMMReg *s){ d->_s[0] = float32_add(d->_s[0], s->_s[0], &env->sse_status); d->_s[1] = float32_add(d->_s[1], s->_s[1], &env->sse_status); d->_s[2] = float32_add(d->_s[2], s->_s[2], &env->sse_status); d->_s[3] = float32_add(d->_s[3], s->_s[3], &env->sse_status);}void helper_addss (XMMReg *d, XMMReg *s){ d->_s[0] = float32_add(d->_s[0], s->_s[0], &env->sse_status);}void helper_addpd (XMMReg *d, XMMReg *s){ d->_d[0] = float64_add(d->_d[0], s->_d[0], &env->sse_status); d->_d[1] = float64_add(d->_d[1], s->_d[1], &env->sse_status);}void helper_addsd (XMMReg *d, XMMReg *s){ d->_d[0] = float64_add(d->_d[0], s->_d[0], &env->sse_status);} +void helper_subps (XMMReg *d, XMMReg *s){ d->_s[0] = float32_sub(d->_s[0], s->_s[0], &env->sse_status); d->_s[1] = float32_sub(d->_s[1], s->_s[1], &env->sse_status); d->_s[2] = float32_sub(d->_s[2], s->_s[2], &env->sse_status); d->_s[3] = float32_sub(d->_s[3], s->_s[3], &env->sse_status);}void helper_subss (XMMReg *d, XMMReg *s){ d->_s[0] = float32_sub(d->_s[0], s->_s[0], &env->sse_status);}void helper_subpd (XMMReg *d, XMMReg *s){ d->_d[0] = float64_sub(d->_d[0], s->_d[0], &env->sse_status); d->_d[1] = float64_sub(d->_d[1], s->_d[1], &env->sse_status);}void helper_subsd (XMMReg *d, XMMReg *s){ d->_d[0] = float64_sub(d->_d[0], s->_d[0], &env->sse_status);} +void helper_mulps (XMMReg *d, XMMReg *s){ d->_s[0] = float32_mul(d->_s[0], s->_s[0], &env->sse_status); d->_s[1] = float32_mul(d->_s[1], s->_s[1], &env->sse_status); d->_s[2] = float32_mul(d->_s[2], s->_s[2], &env->sse_status); d->_s[3] = float32_mul(d->_s[3], s->_s[3], &env->sse_status);}void helper_mulss (XMMReg *d, XMMReg *s){ d->_s[0] = float32_mul(d->_s[0], s->_s[0], &env->sse_status);}void helper_mulpd (XMMReg *d, XMMReg *s){ d->_d[0] = float64_mul(d->_d[0], s->_d[0], &env->sse_status); d->_d[1] = float64_mul(d->_d[1], s->_d[1], &env->sse_status);}void helper_mulsd (XMMReg *d, XMMReg *s){ d->_d[0] = float64_mul(d->_d[0], s->_d[0], &env->sse_status);} +void helper_divps (XMMReg *d, XMMReg *s){ d->_s[0] = float32_div(d->_s[0], s->_s[0], &env->sse_status); d->_s[1] = float32_div(d->_s[1], s->_s[1], &env->sse_status); d->_s[2] = float32_div(d->_s[2], s->_s[2], &env->sse_status); d->_s[3] = float32_div(d->_s[3], s->_s[3], &env->sse_status);}void helper_divss (XMMReg *d, XMMReg *s){ d->_s[0] = float32_div(d->_s[0], s->_s[0], &env->sse_status);}void helper_divpd (XMMReg *d, XMMReg *s){ d->_d[0] = float64_div(d->_d[0], s->_d[0], &env->sse_status); d->_d[1] = float64_div(d->_d[1], s->_d[1], &env->sse_status);}void helper_divsd (XMMReg *d, XMMReg *s){ d->_d[0] = float64_div(d->_d[0], s->_d[0], &env->sse_status);} +void helper_minps (XMMReg *d, XMMReg *s){ d->_s[0] = float32_lt(d->_s[0], s->_s[0], &env->sse_status) ? (d->_s[0]) : (s->_s[0]); d->_s[1] = float32_lt(d->_s[1], s->_s[1], &env->sse_status) ? (d->_s[1]) : (s->_s[1]); d->_s[2] = float32_lt(d->_s[2], s->_s[2], &env->sse_status) ? (d->_s[2]) : (s->_s[2]); d->_s[3] = float32_lt(d->_s[3], s->_s[3], &env->sse_status) ? (d->_s[3]) : (s->_s[3]);}void helper_minss (XMMReg *d, XMMReg *s){ d->_s[0] = float32_lt(d->_s[0], s->_s[0], &env->sse_status) ? (d->_s[0]) : (s->_s[0]);}void helper_minpd (XMMReg *d, XMMReg *s){ d->_d[0] = float64_lt(d->_d[0], s->_d[0], &env->sse_status) ? (d->_d[0]) : (s->_d[0]); d->_d[1] = float64_lt(d->_d[1], s->_d[1], &env->sse_status) ? (d->_d[1]) : (s->_d[1]);}void helper_minsd (XMMReg *d, XMMReg *s){ d->_d[0] = float64_lt(d->_d[0], s->_d[0], &env->sse_status) ? (d->_d[0]) : (s->_d[0]);} +void helper_maxps (XMMReg *d, XMMReg *s){ d->_s[0] = float32_lt(s->_s[0], d->_s[0], &env->sse_status) ? (d->_s[0]) : (s->_s[0]); d->_s[1] = float32_lt(s->_s[1], d->_s[1], &env->sse_status) ? (d->_s[1]) : (s->_s[1]); d->_s[2] = float32_lt(s->_s[2], d->_s[2], &env->sse_status) ? (d->_s[2]) : (s->_s[2]); d->_s[3] = float32_lt(s->_s[3], d->_s[3], &env->sse_status) ? (d->_s[3]) : (s->_s[3]);}void helper_maxss (XMMReg *d, XMMReg *s){ d->_s[0] = float32_lt(s->_s[0], d->_s[0], &env->sse_status) ? (d->_s[0]) : (s->_s[0]);}void helper_maxpd (XMMReg *d, XMMReg *s){ d->_d[0] = float64_lt(s->_d[0], d->_d[0], &env->sse_status) ? (d->_d[0]) : (s->_d[0]); d->_d[1] = float64_lt(s->_d[1], d->_d[1], &env->sse_status) ? (d->_d[1]) : (s->_d[1]);}void helper_maxsd (XMMReg *d, XMMReg *s){ d->_d[0] = float64_lt(s->_d[0], d->_d[0], &env->sse_status) ? (d->_d[0]) : (s->_d[0]);} +void helper_sqrtps (XMMReg *d, XMMReg *s){ d->_s[0] = float32_sqrt(s->_s[0], &env->sse_status); d->_s[1] = float32_sqrt(s->_s[1], &env->sse_status); d->_s[2] = float32_sqrt(s->_s[2], &env->sse_status); d->_s[3] = float32_sqrt(s->_s[3], &env->sse_status);}void helper_sqrtss (XMMReg *d, XMMReg *s){ d->_s[0] = float32_sqrt(s->_s[0], &env->sse_status);}void helper_sqrtpd (XMMReg *d, XMMReg *s){ d->_d[0] = float64_sqrt(s->_d[0], &env->sse_status); d->_d[1] = float64_sqrt(s->_d[1], &env->sse_status);}void helper_sqrtsd (XMMReg *d, XMMReg *s){ d->_d[0] = float64_sqrt(s->_d[0], &env->sse_status);} + + + +void helper_cvtps2pd(XMMReg *d, XMMReg *s) +{ + float32 s0, s1; + s0 = s->_s[0]; + s1 = s->_s[1]; + d->_d[0] = float32_to_float64(s0, &env->sse_status); + d->_d[1] = float32_to_float64(s1, &env->sse_status); +} + +void helper_cvtpd2ps(XMMReg *d, XMMReg *s) +{ + d->_s[0] = float64_to_float32(s->_d[0], &env->sse_status); + d->_s[1] = float64_to_float32(s->_d[1], &env->sse_status); + d->_q[1] = 0; +} + +void helper_cvtss2sd(XMMReg *d, XMMReg *s) +{ + d->_d[0] = float32_to_float64(s->_s[0], &env->sse_status); +} + +void helper_cvtsd2ss(XMMReg *d, XMMReg *s) +{ + d->_s[0] = float64_to_float32(s->_d[0], &env->sse_status); +} + + +void helper_cvtdq2ps(XMMReg *d, XMMReg *s) +{ + d->_s[0] = int32_to_float32(s->_l[0], &env->sse_status); + d->_s[1] = int32_to_float32(s->_l[1], &env->sse_status); + d->_s[2] = int32_to_float32(s->_l[2], &env->sse_status); + d->_s[3] = int32_to_float32(s->_l[3], &env->sse_status); +} + +void helper_cvtdq2pd(XMMReg *d, XMMReg *s) +{ + int32_t l0, l1; + l0 = (int32_t)s->_l[0]; + l1 = (int32_t)s->_l[1]; + d->_d[0] = int32_to_float64(l0, &env->sse_status); + d->_d[1] = int32_to_float64(l1, &env->sse_status); +} + +void helper_cvtpi2ps(XMMReg *d, MMXReg *s) +{ + d->_s[0] = int32_to_float32(s->_l[0], &env->sse_status); + d->_s[1] = int32_to_float32(s->_l[1], &env->sse_status); +} + +void helper_cvtpi2pd(XMMReg *d, MMXReg *s) +{ + d->_d[0] = int32_to_float64(s->_l[0], &env->sse_status); + d->_d[1] = int32_to_float64(s->_l[1], &env->sse_status); +} + +void helper_cvtsi2ss(XMMReg *d, uint32_t val) +{ + d->_s[0] = int32_to_float32(val, &env->sse_status); +} + +void helper_cvtsi2sd(XMMReg *d, uint32_t val) +{ + d->_d[0] = int32_to_float64(val, &env->sse_status); +} +# 685 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_cvtps2dq(XMMReg *d, XMMReg *s) +{ + d->_l[0] = float32_to_int32(s->_s[0], &env->sse_status); + d->_l[1] = float32_to_int32(s->_s[1], &env->sse_status); + d->_l[2] = float32_to_int32(s->_s[2], &env->sse_status); + d->_l[3] = float32_to_int32(s->_s[3], &env->sse_status); +} + +void helper_cvtpd2dq(XMMReg *d, XMMReg *s) +{ + d->_l[0] = float64_to_int32(s->_d[0], &env->sse_status); + d->_l[1] = float64_to_int32(s->_d[1], &env->sse_status); + d->_q[1] = 0; +} + +void helper_cvtps2pi(MMXReg *d, XMMReg *s) +{ + d->_l[0] = float32_to_int32(s->_s[0], &env->sse_status); + d->_l[1] = float32_to_int32(s->_s[1], &env->sse_status); +} + +void helper_cvtpd2pi(MMXReg *d, XMMReg *s) +{ + d->_l[0] = float64_to_int32(s->_d[0], &env->sse_status); + d->_l[1] = float64_to_int32(s->_d[1], &env->sse_status); +} + +int32_t helper_cvtss2si(XMMReg *s) +{ + return float32_to_int32(s->_s[0], &env->sse_status); +} + +int32_t helper_cvtsd2si(XMMReg *s) +{ + return float64_to_int32(s->_d[0], &env->sse_status); +} +# 735 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_cvttps2dq(XMMReg *d, XMMReg *s) +{ + d->_l[0] = float32_to_int32_round_to_zero(s->_s[0], &env->sse_status); + d->_l[1] = float32_to_int32_round_to_zero(s->_s[1], &env->sse_status); + d->_l[2] = float32_to_int32_round_to_zero(s->_s[2], &env->sse_status); + d->_l[3] = float32_to_int32_round_to_zero(s->_s[3], &env->sse_status); +} + +void helper_cvttpd2dq(XMMReg *d, XMMReg *s) +{ + d->_l[0] = float64_to_int32_round_to_zero(s->_d[0], &env->sse_status); + d->_l[1] = float64_to_int32_round_to_zero(s->_d[1], &env->sse_status); + d->_q[1] = 0; +} + +void helper_cvttps2pi(MMXReg *d, XMMReg *s) +{ + d->_l[0] = float32_to_int32_round_to_zero(s->_s[0], &env->sse_status); + d->_l[1] = float32_to_int32_round_to_zero(s->_s[1], &env->sse_status); +} + +void helper_cvttpd2pi(MMXReg *d, XMMReg *s) +{ + d->_l[0] = float64_to_int32_round_to_zero(s->_d[0], &env->sse_status); + d->_l[1] = float64_to_int32_round_to_zero(s->_d[1], &env->sse_status); +} + +int32_t helper_cvttss2si(XMMReg *s) +{ + return float32_to_int32_round_to_zero(s->_s[0], &env->sse_status); +} + +int32_t helper_cvttsd2si(XMMReg *s) +{ + return float64_to_int32_round_to_zero(s->_d[0], &env->sse_status); +} +# 784 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_rsqrtps(XMMReg *d, XMMReg *s) +{ + d->_s[0] = float32_div((0x3f800000), + float32_sqrt(s->_s[0], &env->sse_status), + &env->sse_status); + d->_s[1] = float32_div((0x3f800000), + float32_sqrt(s->_s[1], &env->sse_status), + &env->sse_status); + d->_s[2] = float32_div((0x3f800000), + float32_sqrt(s->_s[2], &env->sse_status), + &env->sse_status); + d->_s[3] = float32_div((0x3f800000), + float32_sqrt(s->_s[3], &env->sse_status), + &env->sse_status); +} + +void helper_rsqrtss(XMMReg *d, XMMReg *s) +{ + d->_s[0] = float32_div((0x3f800000), + float32_sqrt(s->_s[0], &env->sse_status), + &env->sse_status); +} + +void helper_rcpps(XMMReg *d, XMMReg *s) +{ + d->_s[0] = float32_div((0x3f800000), s->_s[0], &env->sse_status); + d->_s[1] = float32_div((0x3f800000), s->_s[1], &env->sse_status); + d->_s[2] = float32_div((0x3f800000), s->_s[2], &env->sse_status); + d->_s[3] = float32_div((0x3f800000), s->_s[3], &env->sse_status); +} + +void helper_rcpss(XMMReg *d, XMMReg *s) +{ + d->_s[0] = float32_div((0x3f800000), s->_s[0], &env->sse_status); +} + +static __attribute__ (( always_inline )) __inline__ uint64_t helper_extrq(uint64_t src, int shift, int len) +{ + uint64_t mask; + + if (len == 0) { + mask = ~0LL; + } else { + mask = (1ULL << len) - 1; + } + return (src >> shift) & mask; +} + +void helper_extrq_r(XMMReg *d, XMMReg *s) +{ + d->_q[0] = helper_extrq(d->_q[0], s->_b[1], s->_b[0]); +} + +void helper_extrq_i(XMMReg *d, int index, int length) +{ + d->_q[0] = helper_extrq(d->_q[0], index, length); +} + +static __attribute__ (( always_inline )) __inline__ uint64_t helper_insertq(uint64_t src, int shift, int len) +{ + uint64_t mask; + + if (len == 0) { + mask = ~0ULL; + } else { + mask = (1ULL << len) - 1; + } + return (src & ~(mask << shift)) | ((src & mask) << shift); +} + +void helper_insertq_r(XMMReg *d, XMMReg *s) +{ + d->_q[0] = helper_insertq(s->_q[0], s->_b[9], s->_b[8]); +} + +void helper_insertq_i(XMMReg *d, int index, int length) +{ + d->_q[0] = helper_insertq(d->_q[0], index, length); +} + +void helper_haddps(XMMReg *d, XMMReg *s) +{ + XMMReg r; + r._s[0] = float32_add(d->_s[0], d->_s[1], &env->sse_status); + r._s[1] = float32_add(d->_s[2], d->_s[3], &env->sse_status); + r._s[2] = float32_add(s->_s[0], s->_s[1], &env->sse_status); + r._s[3] = float32_add(s->_s[2], s->_s[3], &env->sse_status); + *d = r; +} + +void helper_haddpd(XMMReg *d, XMMReg *s) +{ + XMMReg r; + r._d[0] = float64_add(d->_d[0], d->_d[1], &env->sse_status); + r._d[1] = float64_add(s->_d[0], s->_d[1], &env->sse_status); + *d = r; +} + +void helper_hsubps(XMMReg *d, XMMReg *s) +{ + XMMReg r; + r._s[0] = float32_sub(d->_s[0], d->_s[1], &env->sse_status); + r._s[1] = float32_sub(d->_s[2], d->_s[3], &env->sse_status); + r._s[2] = float32_sub(s->_s[0], s->_s[1], &env->sse_status); + r._s[3] = float32_sub(s->_s[2], s->_s[3], &env->sse_status); + *d = r; +} + +void helper_hsubpd(XMMReg *d, XMMReg *s) +{ + XMMReg r; + r._d[0] = float64_sub(d->_d[0], d->_d[1], &env->sse_status); + r._d[1] = float64_sub(s->_d[0], s->_d[1], &env->sse_status); + *d = r; +} + +void helper_addsubps(XMMReg *d, XMMReg *s) +{ + d->_s[0] = float32_sub(d->_s[0], s->_s[0], &env->sse_status); + d->_s[1] = float32_add(d->_s[1], s->_s[1], &env->sse_status); + d->_s[2] = float32_sub(d->_s[2], s->_s[2], &env->sse_status); + d->_s[3] = float32_add(d->_s[3], s->_s[3], &env->sse_status); +} + +void helper_addsubpd(XMMReg *d, XMMReg *s) +{ + d->_d[0] = float64_sub(d->_d[0], s->_d[0], &env->sse_status); + d->_d[1] = float64_add(d->_d[1], s->_d[1], &env->sse_status); +} +# 948 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_cmpeqps (XMMReg *d, XMMReg *s){ d->_l[0] = float32_eq_quiet(d->_s[0], s->_s[0], &env->sse_status) ? -1 : 0; d->_l[1] = float32_eq_quiet(d->_s[1], s->_s[1], &env->sse_status) ? -1 : 0; d->_l[2] = float32_eq_quiet(d->_s[2], s->_s[2], &env->sse_status) ? -1 : 0; d->_l[3] = float32_eq_quiet(d->_s[3], s->_s[3], &env->sse_status) ? -1 : 0;}void helper_cmpeqss (XMMReg *d, XMMReg *s){ d->_l[0] = float32_eq_quiet(d->_s[0], s->_s[0], &env->sse_status) ? -1 : 0;}void helper_cmpeqpd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_eq_quiet(d->_d[0], s->_d[0], &env->sse_status) ? -1 : 0; d->_q[1] = float64_eq_quiet(d->_d[1], s->_d[1], &env->sse_status) ? -1 : 0;}void helper_cmpeqsd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_eq_quiet(d->_d[0], s->_d[0], &env->sse_status) ? -1 : 0;} +void helper_cmpltps (XMMReg *d, XMMReg *s){ d->_l[0] = float32_lt(d->_s[0], s->_s[0], &env->sse_status) ? -1 : 0; d->_l[1] = float32_lt(d->_s[1], s->_s[1], &env->sse_status) ? -1 : 0; d->_l[2] = float32_lt(d->_s[2], s->_s[2], &env->sse_status) ? -1 : 0; d->_l[3] = float32_lt(d->_s[3], s->_s[3], &env->sse_status) ? -1 : 0;}void helper_cmpltss (XMMReg *d, XMMReg *s){ d->_l[0] = float32_lt(d->_s[0], s->_s[0], &env->sse_status) ? -1 : 0;}void helper_cmpltpd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_lt(d->_d[0], s->_d[0], &env->sse_status) ? -1 : 0; d->_q[1] = float64_lt(d->_d[1], s->_d[1], &env->sse_status) ? -1 : 0;}void helper_cmpltsd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_lt(d->_d[0], s->_d[0], &env->sse_status) ? -1 : 0;} +void helper_cmpleps (XMMReg *d, XMMReg *s){ d->_l[0] = float32_le(d->_s[0], s->_s[0], &env->sse_status) ? -1 : 0; d->_l[1] = float32_le(d->_s[1], s->_s[1], &env->sse_status) ? -1 : 0; d->_l[2] = float32_le(d->_s[2], s->_s[2], &env->sse_status) ? -1 : 0; d->_l[3] = float32_le(d->_s[3], s->_s[3], &env->sse_status) ? -1 : 0;}void helper_cmpless (XMMReg *d, XMMReg *s){ d->_l[0] = float32_le(d->_s[0], s->_s[0], &env->sse_status) ? -1 : 0;}void helper_cmplepd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_le(d->_d[0], s->_d[0], &env->sse_status) ? -1 : 0; d->_q[1] = float64_le(d->_d[1], s->_d[1], &env->sse_status) ? -1 : 0;}void helper_cmplesd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_le(d->_d[0], s->_d[0], &env->sse_status) ? -1 : 0;} +void helper_cmpunordps (XMMReg *d, XMMReg *s){ d->_l[0] = float32_unordered_quiet(d->_s[0], s->_s[0], &env->sse_status) ? - 1 : 0; d->_l[1] = float32_unordered_quiet(d->_s[1], s->_s[1], &env->sse_status) ? - 1 : 0; d->_l[2] = float32_unordered_quiet(d->_s[2], s->_s[2], &env->sse_status) ? - 1 : 0; d->_l[3] = float32_unordered_quiet(d->_s[3], s->_s[3], &env->sse_status) ? - 1 : 0;}void helper_cmpunordss (XMMReg *d, XMMReg *s){ d->_l[0] = float32_unordered_quiet(d->_s[0], s->_s[0], &env->sse_status) ? - 1 : 0;}void helper_cmpunordpd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_unordered_quiet(d->_d[0], s->_d[0], &env->sse_status) ? - 1 : 0; d->_q[1] = float64_unordered_quiet(d->_d[1], s->_d[1], &env->sse_status) ? - 1 : 0;}void helper_cmpunordsd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_unordered_quiet(d->_d[0], s->_d[0], &env->sse_status) ? - 1 : 0;} +void helper_cmpneqps (XMMReg *d, XMMReg *s){ d->_l[0] = float32_eq_quiet(d->_s[0], s->_s[0], &env->sse_status) ? 0 : -1; d->_l[1] = float32_eq_quiet(d->_s[1], s->_s[1], &env->sse_status) ? 0 : -1; d->_l[2] = float32_eq_quiet(d->_s[2], s->_s[2], &env->sse_status) ? 0 : -1; d->_l[3] = float32_eq_quiet(d->_s[3], s->_s[3], &env->sse_status) ? 0 : -1;}void helper_cmpneqss (XMMReg *d, XMMReg *s){ d->_l[0] = float32_eq_quiet(d->_s[0], s->_s[0], &env->sse_status) ? 0 : -1;}void helper_cmpneqpd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_eq_quiet(d->_d[0], s->_d[0], &env->sse_status) ? 0 : -1; d->_q[1] = float64_eq_quiet(d->_d[1], s->_d[1], &env->sse_status) ? 0 : -1;}void helper_cmpneqsd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_eq_quiet(d->_d[0], s->_d[0], &env->sse_status) ? 0 : -1;} +void helper_cmpnltps (XMMReg *d, XMMReg *s){ d->_l[0] = float32_lt(d->_s[0], s->_s[0], &env->sse_status) ? 0 : -1; d->_l[1] = float32_lt(d->_s[1], s->_s[1], &env->sse_status) ? 0 : -1; d->_l[2] = float32_lt(d->_s[2], s->_s[2], &env->sse_status) ? 0 : -1; d->_l[3] = float32_lt(d->_s[3], s->_s[3], &env->sse_status) ? 0 : -1;}void helper_cmpnltss (XMMReg *d, XMMReg *s){ d->_l[0] = float32_lt(d->_s[0], s->_s[0], &env->sse_status) ? 0 : -1;}void helper_cmpnltpd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_lt(d->_d[0], s->_d[0], &env->sse_status) ? 0 : -1; d->_q[1] = float64_lt(d->_d[1], s->_d[1], &env->sse_status) ? 0 : -1;}void helper_cmpnltsd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_lt(d->_d[0], s->_d[0], &env->sse_status) ? 0 : -1;} +void helper_cmpnleps (XMMReg *d, XMMReg *s){ d->_l[0] = float32_le(d->_s[0], s->_s[0], &env->sse_status) ? 0 : -1; d->_l[1] = float32_le(d->_s[1], s->_s[1], &env->sse_status) ? 0 : -1; d->_l[2] = float32_le(d->_s[2], s->_s[2], &env->sse_status) ? 0 : -1; d->_l[3] = float32_le(d->_s[3], s->_s[3], &env->sse_status) ? 0 : -1;}void helper_cmpnless (XMMReg *d, XMMReg *s){ d->_l[0] = float32_le(d->_s[0], s->_s[0], &env->sse_status) ? 0 : -1;}void helper_cmpnlepd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_le(d->_d[0], s->_d[0], &env->sse_status) ? 0 : -1; d->_q[1] = float64_le(d->_d[1], s->_d[1], &env->sse_status) ? 0 : -1;}void helper_cmpnlesd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_le(d->_d[0], s->_d[0], &env->sse_status) ? 0 : -1;} +void helper_cmpordps (XMMReg *d, XMMReg *s){ d->_l[0] = float32_unordered_quiet(d->_s[0], s->_s[0], &env->sse_status) ? 0 : -1; d->_l[1] = float32_unordered_quiet(d->_s[1], s->_s[1], &env->sse_status) ? 0 : -1; d->_l[2] = float32_unordered_quiet(d->_s[2], s->_s[2], &env->sse_status) ? 0 : -1; d->_l[3] = float32_unordered_quiet(d->_s[3], s->_s[3], &env->sse_status) ? 0 : -1;}void helper_cmpordss (XMMReg *d, XMMReg *s){ d->_l[0] = float32_unordered_quiet(d->_s[0], s->_s[0], &env->sse_status) ? 0 : -1;}void helper_cmpordpd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_unordered_quiet(d->_d[0], s->_d[0], &env->sse_status) ? 0 : -1; d->_q[1] = float64_unordered_quiet(d->_d[1], s->_d[1], &env->sse_status) ? 0 : -1;}void helper_cmpordsd (XMMReg *d, XMMReg *s){ d->_q[0] = float64_unordered_quiet(d->_d[0], s->_d[0], &env->sse_status) ? 0 : -1;} + +static const int comis_eflags[4] = {0x0001, 0x0040, 0, 0x0040 | 0x0004 | 0x0001}; + +void helper_ucomiss(XMMReg *d, XMMReg *s) +{ + int ret; + float32 s0, s1; + + s0 = d->_s[0]; + s1 = s->_s[0]; + ret = float32_compare_quiet(s0, s1, &env->sse_status); + (env->cc_src) = comis_eflags[ret + 1]; +} + +void helper_comiss(XMMReg *d, XMMReg *s) +{ + int ret; + float32 s0, s1; + + s0 = d->_s[0]; + s1 = s->_s[0]; + ret = float32_compare(s0, s1, &env->sse_status); + (env->cc_src) = comis_eflags[ret + 1]; +} + +void helper_ucomisd(XMMReg *d, XMMReg *s) +{ + int ret; + float64 d0, d1; + + d0 = d->_d[0]; + d1 = s->_d[0]; + ret = float64_compare_quiet(d0, d1, &env->sse_status); + (env->cc_src) = comis_eflags[ret + 1]; +} + +void helper_comisd(XMMReg *d, XMMReg *s) +{ + int ret; + float64 d0, d1; + + d0 = d->_d[0]; + d1 = s->_d[0]; + ret = float64_compare(d0, d1, &env->sse_status); + (env->cc_src) = comis_eflags[ret + 1]; +} + +uint32_t helper_movmskps(XMMReg *s) +{ + int b0, b1, b2, b3; + b0 = s->_l[0] >> 31; + b1 = s->_l[1] >> 31; + b2 = s->_l[2] >> 31; + b3 = s->_l[3] >> 31; + return b0 | (b1 << 1) | (b2 << 2) | (b3 << 3); +} + +uint32_t helper_movmskpd(XMMReg *s) +{ + int b0, b1; + b0 = s->_l[1] >> 31; + b1 = s->_l[3] >> 31; + return b0 | (b1 << 1); +} + + + +uint32_t helper_pmovmskb_xmm(XMMReg *s) +{ + uint32_t val; + val = 0; + val |= (s->_b[0] >> 7); + val |= (s->_b[1] >> 6) & 0x02; + val |= (s->_b[2] >> 5) & 0x04; + val |= (s->_b[3] >> 4) & 0x08; + val |= (s->_b[4] >> 3) & 0x10; + val |= (s->_b[5] >> 2) & 0x20; + val |= (s->_b[6] >> 1) & 0x40; + val |= (s->_b[7]) & 0x80; + + val |= (s->_b[8] << 1) & 0x0100; + val |= (s->_b[9] << 2) & 0x0200; + val |= (s->_b[10] << 3) & 0x0400; + val |= (s->_b[11] << 4) & 0x0800; + val |= (s->_b[12] << 5) & 0x1000; + val |= (s->_b[13] << 6) & 0x2000; + val |= (s->_b[14] << 7) & 0x4000; + val |= (s->_b[15] << 8) & 0x8000; + + return val; +} + +void helper_packsswb_xmm (XMMReg *d, XMMReg *s) +{ + XMMReg r; + + r._b[0] = satsb((int16_t)d->_w[0]); + r._b[1] = satsb((int16_t)d->_w[1]); + r._b[2] = satsb((int16_t)d->_w[2]); + r._b[3] = satsb((int16_t)d->_w[3]); + + r._b[4] = satsb((int16_t)d->_w[4]); + r._b[5] = satsb((int16_t)d->_w[5]); + r._b[6] = satsb((int16_t)d->_w[6]); + r._b[7] = satsb((int16_t)d->_w[7]); + + r._b[(4 << 1) + 0] = satsb((int16_t)s->_w[0]); + r._b[(4 << 1) + 1] = satsb((int16_t)s->_w[1]); + r._b[(4 << 1) + 2] = satsb((int16_t)s->_w[2]); + r._b[(4 << 1) + 3] = satsb((int16_t)s->_w[3]); + + r._b[12] = satsb((int16_t)s->_w[4]); + r._b[13] = satsb((int16_t)s->_w[5]); + r._b[14] = satsb((int16_t)s->_w[6]); + r._b[15] = satsb((int16_t)s->_w[7]); + + *d = r; +} + +void helper_packuswb_xmm (XMMReg *d, XMMReg *s) +{ + XMMReg r; + + r._b[0] = satub((int16_t)d->_w[0]); + r._b[1] = satub((int16_t)d->_w[1]); + r._b[2] = satub((int16_t)d->_w[2]); + r._b[3] = satub((int16_t)d->_w[3]); + + r._b[4] = satub((int16_t)d->_w[4]); + r._b[5] = satub((int16_t)d->_w[5]); + r._b[6] = satub((int16_t)d->_w[6]); + r._b[7] = satub((int16_t)d->_w[7]); + + r._b[(4 << 1) + 0] = satub((int16_t)s->_w[0]); + r._b[(4 << 1) + 1] = satub((int16_t)s->_w[1]); + r._b[(4 << 1) + 2] = satub((int16_t)s->_w[2]); + r._b[(4 << 1) + 3] = satub((int16_t)s->_w[3]); + + r._b[12] = satub((int16_t)s->_w[4]); + r._b[13] = satub((int16_t)s->_w[5]); + r._b[14] = satub((int16_t)s->_w[6]); + r._b[15] = satub((int16_t)s->_w[7]); + + *d = r; +} + +void helper_packssdw_xmm (XMMReg *d, XMMReg *s) +{ + XMMReg r; + + r._w[0] = satsw(d->_l[0]); + r._w[1] = satsw(d->_l[1]); + + r._w[2] = satsw(d->_l[2]); + r._w[3] = satsw(d->_l[3]); + + r._w[(2 << 1) + 0] = satsw(s->_l[0]); + r._w[(2 << 1) + 1] = satsw(s->_l[1]); + + r._w[6] = satsw(s->_l[2]); + r._w[7] = satsw(s->_l[3]); + + *d = r; +} +# 1189 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_punpcklbw_xmm (XMMReg *d, XMMReg *s) { XMMReg r; r._b[0] = d->_b[(0 << (1 + 2)) + 0]; r._b[1] = s->_b[(0 << (1 + 2)) + 0]; r._b[2] = d->_b[(0 << (1 + 2)) + 1]; r._b[3] = s->_b[(0 << (1 + 2)) + 1]; r._b[4] = d->_b[(0 << (1 + 2)) + 2]; r._b[5] = s->_b[(0 << (1 + 2)) + 2]; r._b[6] = d->_b[(0 << (1 + 2)) + 3]; r._b[7] = s->_b[(0 << (1 + 2)) + 3]; r._b[8] = d->_b[(0 << (1 + 2)) + 4]; r._b[9] = s->_b[(0 << (1 + 2)) + 4]; r._b[10] = d->_b[(0 << (1 + 2)) + 5]; r._b[11] = s->_b[(0 << (1 + 2)) + 5]; r._b[12] = d->_b[(0 << (1 + 2)) + 6]; r._b[13] = s->_b[(0 << (1 + 2)) + 6]; r._b[14] = d->_b[(0 << (1 + 2)) + 7]; r._b[15] = s->_b[(0 << (1 + 2)) + 7]; *d = r; } void helper_punpcklwd_xmm (XMMReg *d, XMMReg *s) { XMMReg r; r._w[0] = d->_w[(0 << (1 + 1)) + 0]; r._w[1] = s->_w[(0 << (1 + 1)) + 0]; r._w[2] = d->_w[(0 << (1 + 1)) + 1]; r._w[3] = s->_w[(0 << (1 + 1)) + 1]; r._w[4] = d->_w[(0 << (1 + 1)) + 2]; r._w[5] = s->_w[(0 << (1 + 1)) + 2]; r._w[6] = d->_w[(0 << (1 + 1)) + 3]; r._w[7] = s->_w[(0 << (1 + 1)) + 3]; *d = r; } void helper_punpckldq_xmm (XMMReg *d, XMMReg *s) { XMMReg r; r._l[0] = d->_l[(0 << 1) + 0]; r._l[1] = s->_l[(0 << 1) + 0]; r._l[2] = d->_l[(0 << 1) + 1]; r._l[3] = s->_l[(0 << 1) + 1]; *d = r; } void helper_punpcklqdq_xmm (XMMReg *d, XMMReg *s) { XMMReg r; r._q[0] = d->_q[0]; r._q[1] = s->_q[0]; *d = r; } +void helper_punpckhbw_xmm (XMMReg *d, XMMReg *s) { XMMReg r; r._b[0] = d->_b[(1 << (1 + 2)) + 0]; r._b[1] = s->_b[(1 << (1 + 2)) + 0]; r._b[2] = d->_b[(1 << (1 + 2)) + 1]; r._b[3] = s->_b[(1 << (1 + 2)) + 1]; r._b[4] = d->_b[(1 << (1 + 2)) + 2]; r._b[5] = s->_b[(1 << (1 + 2)) + 2]; r._b[6] = d->_b[(1 << (1 + 2)) + 3]; r._b[7] = s->_b[(1 << (1 + 2)) + 3]; r._b[8] = d->_b[(1 << (1 + 2)) + 4]; r._b[9] = s->_b[(1 << (1 + 2)) + 4]; r._b[10] = d->_b[(1 << (1 + 2)) + 5]; r._b[11] = s->_b[(1 << (1 + 2)) + 5]; r._b[12] = d->_b[(1 << (1 + 2)) + 6]; r._b[13] = s->_b[(1 << (1 + 2)) + 6]; r._b[14] = d->_b[(1 << (1 + 2)) + 7]; r._b[15] = s->_b[(1 << (1 + 2)) + 7]; *d = r; } void helper_punpckhwd_xmm (XMMReg *d, XMMReg *s) { XMMReg r; r._w[0] = d->_w[(1 << (1 + 1)) + 0]; r._w[1] = s->_w[(1 << (1 + 1)) + 0]; r._w[2] = d->_w[(1 << (1 + 1)) + 1]; r._w[3] = s->_w[(1 << (1 + 1)) + 1]; r._w[4] = d->_w[(1 << (1 + 1)) + 2]; r._w[5] = s->_w[(1 << (1 + 1)) + 2]; r._w[6] = d->_w[(1 << (1 + 1)) + 3]; r._w[7] = s->_w[(1 << (1 + 1)) + 3]; *d = r; } void helper_punpckhdq_xmm (XMMReg *d, XMMReg *s) { XMMReg r; r._l[0] = d->_l[(1 << 1) + 0]; r._l[1] = s->_l[(1 << 1) + 0]; r._l[2] = d->_l[(1 << 1) + 1]; r._l[3] = s->_l[(1 << 1) + 1]; *d = r; } void helper_punpckhqdq_xmm (XMMReg *d, XMMReg *s) { XMMReg r; r._q[0] = d->_q[1]; r._q[1] = s->_q[1]; *d = r; } +# 1326 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_pshufb_xmm (XMMReg *d, XMMReg *s) +{ + int i; + XMMReg r; + + for (i = 0; i < (8 << 1); i++) + r._b[i] = (s->_b[i] & 0x80) ? 0 : (d->_b[s->_b[i] & ((8 << 1) - 1)]); + + *d = r; +} + +void helper_phaddw_xmm (XMMReg *d, XMMReg *s) +{ + d->_w[0] = (int16_t)d->_w[0] + (int16_t)d->_w[1]; + d->_w[1] = (int16_t)d->_w[2] + (int16_t)d->_w[3]; + d->_w[2] = (int16_t)d->_w[4] + (int16_t)d->_w[5]; + d->_w[3] = (int16_t)d->_w[6] + (int16_t)d->_w[7]; + d->_w[(2 << 1) + 0] = (int16_t)s->_w[0] + (int16_t)s->_w[1]; + d->_w[(2 << 1) + 1] = (int16_t)s->_w[2] + (int16_t)s->_w[3]; + d->_w[6] = (int16_t)s->_w[4] + (int16_t)s->_w[5]; + d->_w[7] = (int16_t)s->_w[6] + (int16_t)s->_w[7]; +} + +void helper_phaddd_xmm (XMMReg *d, XMMReg *s) +{ + d->_l[0] = (int32_t)d->_l[0] + (int32_t)d->_l[1]; + d->_l[1] = (int32_t)d->_l[2] + (int32_t)d->_l[3]; + d->_l[(1 << 1) + 0] = (int32_t)s->_l[0] + (int32_t)s->_l[1]; + d->_l[3] = (int32_t)s->_l[2] + (int32_t)s->_l[3]; +} + +void helper_phaddsw_xmm (XMMReg *d, XMMReg *s) +{ + d->_w[0] = satsw((int16_t)d->_w[0] + (int16_t)d->_w[1]); + d->_w[1] = satsw((int16_t)d->_w[2] + (int16_t)d->_w[3]); + d->_w[2] = satsw((int16_t)d->_w[4] + (int16_t)d->_w[5]); + d->_w[3] = satsw((int16_t)d->_w[6] + (int16_t)d->_w[7]); + d->_w[(2 << 1) + 0] = satsw((int16_t)s->_w[0] + (int16_t)s->_w[1]); + d->_w[(2 << 1) + 1] = satsw((int16_t)s->_w[2] + (int16_t)s->_w[3]); + d->_w[6] = satsw((int16_t)s->_w[4] + (int16_t)s->_w[5]); + d->_w[7] = satsw((int16_t)s->_w[6] + (int16_t)s->_w[7]); +} + +void helper_pmaddubsw_xmm (XMMReg *d, XMMReg *s) +{ + d->_w[0] = satsw((int8_t)s->_b[0] * (uint8_t)d->_b[0] + + (int8_t)s->_b[1] * (uint8_t)d->_b[1]); + d->_w[1] = satsw((int8_t)s->_b[2] * (uint8_t)d->_b[2] + + (int8_t)s->_b[3] * (uint8_t)d->_b[3]); + d->_w[2] = satsw((int8_t)s->_b[4] * (uint8_t)d->_b[4] + + (int8_t)s->_b[5] * (uint8_t)d->_b[5]); + d->_w[3] = satsw((int8_t)s->_b[6] * (uint8_t)d->_b[6] + + (int8_t)s->_b[7] * (uint8_t)d->_b[7]); + + d->_w[4] = satsw((int8_t)s->_b[8] * (uint8_t)d->_b[8] + + (int8_t)s->_b[9] * (uint8_t)d->_b[9]); + d->_w[5] = satsw((int8_t)s->_b[10] * (uint8_t)d->_b[10] + + (int8_t)s->_b[11] * (uint8_t)d->_b[11]); + d->_w[6] = satsw((int8_t)s->_b[12] * (uint8_t)d->_b[12] + + (int8_t)s->_b[13] * (uint8_t)d->_b[13]); + d->_w[7] = satsw((int8_t)s->_b[14] * (uint8_t)d->_b[14] + + (int8_t)s->_b[15] * (uint8_t)d->_b[15]); + +} + +void helper_phsubw_xmm (XMMReg *d, XMMReg *s) +{ + d->_w[0] = (int16_t)d->_w[0] - (int16_t)d->_w[1]; + d->_w[1] = (int16_t)d->_w[2] - (int16_t)d->_w[3]; + d->_w[2] = (int16_t)d->_w[4] - (int16_t)d->_w[5]; + d->_w[3] = (int16_t)d->_w[6] - (int16_t)d->_w[7]; + d->_w[(2 << 1) + 0] = (int16_t)s->_w[0] - (int16_t)s->_w[1]; + d->_w[(2 << 1) + 1] = (int16_t)s->_w[2] - (int16_t)s->_w[3]; + d->_w[6] = (int16_t)s->_w[4] - (int16_t)s->_w[5]; + d->_w[7] = (int16_t)s->_w[6] - (int16_t)s->_w[7]; +} + +void helper_phsubd_xmm (XMMReg *d, XMMReg *s) +{ + d->_l[0] = (int32_t)d->_l[0] - (int32_t)d->_l[1]; + d->_l[1] = (int32_t)d->_l[2] - (int32_t)d->_l[3]; + d->_l[(1 << 1) + 0] = (int32_t)s->_l[0] - (int32_t)s->_l[1]; + d->_l[3] = (int32_t)s->_l[2] - (int32_t)s->_l[3]; +} + +void helper_phsubsw_xmm (XMMReg *d, XMMReg *s) +{ + d->_w[0] = satsw((int16_t)d->_w[0] - (int16_t)d->_w[1]); + d->_w[1] = satsw((int16_t)d->_w[2] - (int16_t)d->_w[3]); + d->_w[2] = satsw((int16_t)d->_w[4] - (int16_t)d->_w[5]); + d->_w[3] = satsw((int16_t)d->_w[6] - (int16_t)d->_w[7]); + d->_w[(2 << 1) + 0] = satsw((int16_t)s->_w[0] - (int16_t)s->_w[1]); + d->_w[(2 << 1) + 1] = satsw((int16_t)s->_w[2] - (int16_t)s->_w[3]); + d->_w[6] = satsw((int16_t)s->_w[4] - (int16_t)s->_w[5]); + d->_w[7] = satsw((int16_t)s->_w[6] - (int16_t)s->_w[7]); +} + + + + +void helper_pabsb_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = s->_b[0] > (127) ? -(int8_t ) s->_b[0] : s->_b[0]; d->_b[1] = s->_b[1] > (127) ? -(int8_t ) s->_b[1] : s->_b[1]; d->_b[2] = s->_b[2] > (127) ? -(int8_t ) s->_b[2] : s->_b[2]; d->_b[3] = s->_b[3] > (127) ? -(int8_t ) s->_b[3] : s->_b[3]; d->_b[4] = s->_b[4] > (127) ? -(int8_t ) s->_b[4] : s->_b[4]; d->_b[5] = s->_b[5] > (127) ? -(int8_t ) s->_b[5] : s->_b[5]; d->_b[6] = s->_b[6] > (127) ? -(int8_t ) s->_b[6] : s->_b[6]; d->_b[7] = s->_b[7] > (127) ? -(int8_t ) s->_b[7] : s->_b[7]; d->_b[8] = s->_b[8] > (127) ? -(int8_t ) s->_b[8] : s->_b[8]; d->_b[9] = s->_b[9] > (127) ? -(int8_t ) s->_b[9] : s->_b[9]; d->_b[10] = s->_b[10] > (127) ? -(int8_t ) s->_b[10] : s->_b[10]; d->_b[11] = s->_b[11] > (127) ? -(int8_t ) s->_b[11] : s->_b[11]; d->_b[12] = s->_b[12] > (127) ? -(int8_t ) s->_b[12] : s->_b[12]; d->_b[13] = s->_b[13] > (127) ? -(int8_t ) s->_b[13] : s->_b[13]; d->_b[14] = s->_b[14] > (127) ? -(int8_t ) s->_b[14] : s->_b[14]; d->_b[15] = s->_b[15] > (127) ? -(int8_t ) s->_b[15] : s->_b[15];} +void helper_pabsw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = s->_w[0] > (32767) ? -(int16_t) s->_w[0] : s->_w[0]; d->_w[1] = s->_w[1] > (32767) ? -(int16_t) s->_w[1] : s->_w[1]; d->_w[2] = s->_w[2] > (32767) ? -(int16_t) s->_w[2] : s->_w[2]; d->_w[3] = s->_w[3] > (32767) ? -(int16_t) s->_w[3] : s->_w[3]; d->_w[4] = s->_w[4] > (32767) ? -(int16_t) s->_w[4] : s->_w[4]; d->_w[5] = s->_w[5] > (32767) ? -(int16_t) s->_w[5] : s->_w[5]; d->_w[6] = s->_w[6] > (32767) ? -(int16_t) s->_w[6] : s->_w[6]; d->_w[7] = s->_w[7] > (32767) ? -(int16_t) s->_w[7] : s->_w[7];} +void helper_pabsd_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = s->_l[0] > (2147483647) ? -(int32_t) s->_l[0] : s->_l[0]; d->_l[1] = s->_l[1] > (2147483647) ? -(int32_t) s->_l[1] : s->_l[1]; d->_l[2] = s->_l[2] > (2147483647) ? -(int32_t) s->_l[2] : s->_l[2]; d->_l[3] = s->_l[3] > (2147483647) ? -(int32_t) s->_l[3] : s->_l[3];} + + +void helper_pmulhrsw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = ((int16_t) d->_w[0] * (int16_t) s->_w[0] + 0x4000) >> 15; d->_w[1] = ((int16_t) d->_w[1] * (int16_t) s->_w[1] + 0x4000) >> 15; d->_w[2] = ((int16_t) d->_w[2] * (int16_t) s->_w[2] + 0x4000) >> 15; d->_w[3] = ((int16_t) d->_w[3] * (int16_t) s->_w[3] + 0x4000) >> 15; d->_w[4] = ((int16_t) d->_w[4] * (int16_t) s->_w[4] + 0x4000) >> 15; d->_w[5] = ((int16_t) d->_w[5] * (int16_t) s->_w[5] + 0x4000) >> 15; d->_w[6] = ((int16_t) d->_w[6] * (int16_t) s->_w[6] + 0x4000) >> 15; d->_w[7] = ((int16_t) d->_w[7] * (int16_t) s->_w[7] + 0x4000) >> 15;} + + + + +void helper_psignb_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = s->_b[0] <= (127) ? s->_b[0] ? d->_b[0] : 0 : -(int8_t ) d->_b[0]; d->_b[1] = s->_b[1] <= (127) ? s->_b[1] ? d->_b[1] : 0 : -(int8_t ) d->_b[1]; d->_b[2] = s->_b[2] <= (127) ? s->_b[2] ? d->_b[2] : 0 : -(int8_t ) d->_b[2]; d->_b[3] = s->_b[3] <= (127) ? s->_b[3] ? d->_b[3] : 0 : -(int8_t ) d->_b[3]; d->_b[4] = s->_b[4] <= (127) ? s->_b[4] ? d->_b[4] : 0 : -(int8_t ) d->_b[4]; d->_b[5] = s->_b[5] <= (127) ? s->_b[5] ? d->_b[5] : 0 : -(int8_t ) d->_b[5]; d->_b[6] = s->_b[6] <= (127) ? s->_b[6] ? d->_b[6] : 0 : -(int8_t ) d->_b[6]; d->_b[7] = s->_b[7] <= (127) ? s->_b[7] ? d->_b[7] : 0 : -(int8_t ) d->_b[7]; d->_b[8] = s->_b[8] <= (127) ? s->_b[8] ? d->_b[8] : 0 : -(int8_t ) d->_b[8]; d->_b[9] = s->_b[9] <= (127) ? s->_b[9] ? d->_b[9] : 0 : -(int8_t ) d->_b[9]; d->_b[10] = s->_b[10] <= (127) ? s->_b[10] ? d->_b[10] : 0 : -(int8_t ) d->_b[10]; d->_b[11] = s->_b[11] <= (127) ? s->_b[11] ? d->_b[11] : 0 : -(int8_t ) d->_b[11]; d->_b[12] = s->_b[12] <= (127) ? s->_b[12] ? d->_b[12] : 0 : -(int8_t ) d->_b[12]; d->_b[13] = s->_b[13] <= (127) ? s->_b[13] ? d->_b[13] : 0 : -(int8_t ) d->_b[13]; d->_b[14] = s->_b[14] <= (127) ? s->_b[14] ? d->_b[14] : 0 : -(int8_t ) d->_b[14]; d->_b[15] = s->_b[15] <= (127) ? s->_b[15] ? d->_b[15] : 0 : -(int8_t ) d->_b[15];} +void helper_psignw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = s->_w[0] <= (32767) ? s->_w[0] ? d->_w[0] : 0 : -(int16_t) d->_w[0]; d->_w[1] = s->_w[1] <= (32767) ? s->_w[1] ? d->_w[1] : 0 : -(int16_t) d->_w[1]; d->_w[2] = s->_w[2] <= (32767) ? s->_w[2] ? d->_w[2] : 0 : -(int16_t) d->_w[2]; d->_w[3] = s->_w[3] <= (32767) ? s->_w[3] ? d->_w[3] : 0 : -(int16_t) d->_w[3]; d->_w[4] = s->_w[4] <= (32767) ? s->_w[4] ? d->_w[4] : 0 : -(int16_t) d->_w[4]; d->_w[5] = s->_w[5] <= (32767) ? s->_w[5] ? d->_w[5] : 0 : -(int16_t) d->_w[5]; d->_w[6] = s->_w[6] <= (32767) ? s->_w[6] ? d->_w[6] : 0 : -(int16_t) d->_w[6]; d->_w[7] = s->_w[7] <= (32767) ? s->_w[7] ? d->_w[7] : 0 : -(int16_t) d->_w[7];} +void helper_psignd_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = s->_l[0] <= (2147483647) ? s->_l[0] ? d->_l[0] : 0 : -(int32_t) d->_l[0]; d->_l[1] = s->_l[1] <= (2147483647) ? s->_l[1] ? d->_l[1] : 0 : -(int32_t) d->_l[1]; d->_l[2] = s->_l[2] <= (2147483647) ? s->_l[2] ? d->_l[2] : 0 : -(int32_t) d->_l[2]; d->_l[3] = s->_l[3] <= (2147483647) ? s->_l[3] ? d->_l[3] : 0 : -(int32_t) d->_l[3];} + +void helper_palignr_xmm (XMMReg *d, XMMReg *s, int32_t shift) +{ + XMMReg r; + + + if (shift >= (16 << 1)) { + r._q[0] = 0; + r._q[1] = 0; + } else { + shift <<= 3; + + + + + + r._q[0] = (shift - 0 < 64 && shift - 0 > -64 ? shift - 0 > 0 ? s->_q[0] >> (shift - 0) : (s->_q[0] << -(shift - 0)) : 0) | + (shift - 64 < 64 && shift - 64 > -64 ? shift - 64 > 0 ? s->_q[1] >> (shift - 64) : (s->_q[1] << -(shift - 64)) : 0) | + (shift - 128 < 64 && shift - 128 > -64 ? shift - 128 > 0 ? d->_q[0] >> (shift - 128) : (d->_q[0] << -(shift - 128)) : 0) | + (shift - 192 < 64 && shift - 192 > -64 ? shift - 192 > 0 ? d->_q[1] >> (shift - 192) : (d->_q[1] << -(shift - 192)) : 0); + r._q[1] = (shift + 64 < 64 && shift + 64 > -64 ? shift + 64 > 0 ? s->_q[0] >> (shift + 64) : (s->_q[0] << -(shift + 64)) : 0) | + (shift - 0 < 64 && shift - 0 > -64 ? shift - 0 > 0 ? s->_q[1] >> (shift - 0) : (s->_q[1] << -(shift - 0)) : 0) | + (shift - 64 < 64 && shift - 64 > -64 ? shift - 64 > 0 ? d->_q[0] >> (shift - 64) : (d->_q[0] << -(shift - 64)) : 0) | + (shift - 128 < 64 && shift - 128 > -64 ? shift - 128 > 0 ? d->_q[1] >> (shift - 128) : (d->_q[1] << -(shift - 128)) : 0); + + + } + + *d = r; +} +# 1531 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_pblendvb_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = (env->xmm_regs[0]._b[0] & 0x80) ? s->_b[0] : d->_b[0]; d->_b[1] = (env->xmm_regs[0]._b[1] & 0x80) ? s->_b[1] : d->_b[1]; if (16 > 2) { d->_b[2] = (env->xmm_regs[0]._b[2] & 0x80) ? s->_b[2] : d->_b[2]; d->_b[3] = (env->xmm_regs[0]._b[3] & 0x80) ? s->_b[3] : d->_b[3]; if (16 > 4) { d->_b[4] = (env->xmm_regs[0]._b[4] & 0x80) ? s->_b[4] : d->_b[4]; d->_b[5] = (env->xmm_regs[0]._b[5] & 0x80) ? s->_b[5] : d->_b[5]; d->_b[6] = (env->xmm_regs[0]._b[6] & 0x80) ? s->_b[6] : d->_b[6]; d->_b[7] = (env->xmm_regs[0]._b[7] & 0x80) ? s->_b[7] : d->_b[7]; if (16 > 8) { d->_b[8] = (env->xmm_regs[0]._b[8] & 0x80) ? s->_b[8] : d->_b[8]; d->_b[9] = (env->xmm_regs[0]._b[9] & 0x80) ? s->_b[9] : d->_b[9]; d->_b[10] = (env->xmm_regs[0]._b[10] & 0x80) ? s->_b[10] : d->_b[10]; d->_b[11] = (env->xmm_regs[0]._b[11] & 0x80) ? s->_b[11] : d->_b[11]; d->_b[12] = (env->xmm_regs[0]._b[12] & 0x80) ? s->_b[12] : d->_b[12]; d->_b[13] = (env->xmm_regs[0]._b[13] & 0x80) ? s->_b[13] : d->_b[13]; d->_b[14] = (env->xmm_regs[0]._b[14] & 0x80) ? s->_b[14] : d->_b[14]; d->_b[15] = (env->xmm_regs[0]._b[15] & 0x80) ? s->_b[15] : d->_b[15]; } } }} +void helper_blendvps_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = (env->xmm_regs[0]._l[0] & 0x80000000) ? s->_l[0] : d->_l[0]; d->_l[1] = (env->xmm_regs[0]._l[1] & 0x80000000) ? s->_l[1] : d->_l[1]; if (4 > 2) { d->_l[2] = (env->xmm_regs[0]._l[2] & 0x80000000) ? s->_l[2] : d->_l[2]; d->_l[3] = (env->xmm_regs[0]._l[3] & 0x80000000) ? s->_l[3] : d->_l[3]; if (4 > 4) { d->_l[4] = (env->xmm_regs[0]._l[4] & 0x80000000) ? s->_l[4] : d->_l[4]; d->_l[5] = (env->xmm_regs[0]._l[5] & 0x80000000) ? s->_l[5] : d->_l[5]; d->_l[6] = (env->xmm_regs[0]._l[6] & 0x80000000) ? s->_l[6] : d->_l[6]; d->_l[7] = (env->xmm_regs[0]._l[7] & 0x80000000) ? s->_l[7] : d->_l[7]; if (4 > 8) { d->_l[8] = (env->xmm_regs[0]._l[8] & 0x80000000) ? s->_l[8] : d->_l[8]; d->_l[9] = (env->xmm_regs[0]._l[9] & 0x80000000) ? s->_l[9] : d->_l[9]; d->_l[10] = (env->xmm_regs[0]._l[10] & 0x80000000) ? s->_l[10] : d->_l[10]; d->_l[11] = (env->xmm_regs[0]._l[11] & 0x80000000) ? s->_l[11] : d->_l[11]; d->_l[12] = (env->xmm_regs[0]._l[12] & 0x80000000) ? s->_l[12] : d->_l[12]; d->_l[13] = (env->xmm_regs[0]._l[13] & 0x80000000) ? s->_l[13] : d->_l[13]; d->_l[14] = (env->xmm_regs[0]._l[14] & 0x80000000) ? s->_l[14] : d->_l[14]; d->_l[15] = (env->xmm_regs[0]._l[15] & 0x80000000) ? s->_l[15] : d->_l[15]; } } }} +void helper_blendvpd_xmm (XMMReg *d, XMMReg *s){ d->_q[0] = (env->xmm_regs[0]._q[0] & 0x8000000000000000LL) ? s->_q[0] : d->_q[0]; d->_q[1] = (env->xmm_regs[0]._q[1] & 0x8000000000000000LL) ? s->_q[1] : d->_q[1]; if (2 > 2) { d->_q[2] = (env->xmm_regs[0]._q[2] & 0x8000000000000000LL) ? s->_q[2] : d->_q[2]; d->_q[3] = (env->xmm_regs[0]._q[3] & 0x8000000000000000LL) ? s->_q[3] : d->_q[3]; if (2 > 4) { d->_q[4] = (env->xmm_regs[0]._q[4] & 0x8000000000000000LL) ? s->_q[4] : d->_q[4]; d->_q[5] = (env->xmm_regs[0]._q[5] & 0x8000000000000000LL) ? s->_q[5] : d->_q[5]; d->_q[6] = (env->xmm_regs[0]._q[6] & 0x8000000000000000LL) ? s->_q[6] : d->_q[6]; d->_q[7] = (env->xmm_regs[0]._q[7] & 0x8000000000000000LL) ? s->_q[7] : d->_q[7]; if (2 > 8) { d->_q[8] = (env->xmm_regs[0]._q[8] & 0x8000000000000000LL) ? s->_q[8] : d->_q[8]; d->_q[9] = (env->xmm_regs[0]._q[9] & 0x8000000000000000LL) ? s->_q[9] : d->_q[9]; d->_q[10] = (env->xmm_regs[0]._q[10] & 0x8000000000000000LL) ? s->_q[10] : d->_q[10]; d->_q[11] = (env->xmm_regs[0]._q[11] & 0x8000000000000000LL) ? s->_q[11] : d->_q[11]; d->_q[12] = (env->xmm_regs[0]._q[12] & 0x8000000000000000LL) ? s->_q[12] : d->_q[12]; d->_q[13] = (env->xmm_regs[0]._q[13] & 0x8000000000000000LL) ? s->_q[13] : d->_q[13]; d->_q[14] = (env->xmm_regs[0]._q[14] & 0x8000000000000000LL) ? s->_q[14] : d->_q[14]; d->_q[15] = (env->xmm_regs[0]._q[15] & 0x8000000000000000LL) ? s->_q[15] : d->_q[15]; } } }} + +void helper_ptest_xmm (XMMReg *d, XMMReg *s) +{ + uint64_t zf = (s->_q[0] & d->_q[0]) | (s->_q[1] & d->_q[1]); + uint64_t cf = (s->_q[0] & ~d->_q[0]) | (s->_q[1] & ~d->_q[1]); + + (env->cc_src) = (zf ? 0 : 0x0040) | (cf ? 0 : 0x0001); +} +# 1560 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" +void helper_pmovsxbw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = (int8_t) s->_b[0]; d->_w[1] = (int8_t) s->_b[1]; if (8 > 2) { d->_w[2] = (int8_t) s->_b[2]; d->_w[3] = (int8_t) s->_b[3]; if (8 > 4) { d->_w[4] = (int8_t) s->_b[4]; d->_w[5] = (int8_t) s->_b[5]; d->_w[6] = (int8_t) s->_b[6]; d->_w[7] = (int8_t) s->_b[7]; } }} +void helper_pmovsxbd_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = (int8_t) s->_b[0]; d->_l[1] = (int8_t) s->_b[1]; if (4 > 2) { d->_l[2] = (int8_t) s->_b[2]; d->_l[3] = (int8_t) s->_b[3]; if (4 > 4) { d->_l[4] = (int8_t) s->_b[4]; d->_l[5] = (int8_t) s->_b[5]; d->_l[6] = (int8_t) s->_b[6]; d->_l[7] = (int8_t) s->_b[7]; } }} +void helper_pmovsxbq_xmm (XMMReg *d, XMMReg *s){ d->_q[0] = (int8_t) s->_b[0]; d->_q[1] = (int8_t) s->_b[1]; if (2 > 2) { d->_q[2] = (int8_t) s->_b[2]; d->_q[3] = (int8_t) s->_b[3]; if (2 > 4) { d->_q[4] = (int8_t) s->_b[4]; d->_q[5] = (int8_t) s->_b[5]; d->_q[6] = (int8_t) s->_b[6]; d->_q[7] = (int8_t) s->_b[7]; } }} +void helper_pmovsxwd_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = (int16_t) s->_w[0]; d->_l[1] = (int16_t) s->_w[1]; if (4 > 2) { d->_l[2] = (int16_t) s->_w[2]; d->_l[3] = (int16_t) s->_w[3]; if (4 > 4) { d->_l[4] = (int16_t) s->_w[4]; d->_l[5] = (int16_t) s->_w[5]; d->_l[6] = (int16_t) s->_w[6]; d->_l[7] = (int16_t) s->_w[7]; } }} +void helper_pmovsxwq_xmm (XMMReg *d, XMMReg *s){ d->_q[0] = (int16_t) s->_w[0]; d->_q[1] = (int16_t) s->_w[1]; if (2 > 2) { d->_q[2] = (int16_t) s->_w[2]; d->_q[3] = (int16_t) s->_w[3]; if (2 > 4) { d->_q[4] = (int16_t) s->_w[4]; d->_q[5] = (int16_t) s->_w[5]; d->_q[6] = (int16_t) s->_w[6]; d->_q[7] = (int16_t) s->_w[7]; } }} +void helper_pmovsxdq_xmm (XMMReg *d, XMMReg *s){ d->_q[0] = (int32_t) s->_l[0]; d->_q[1] = (int32_t) s->_l[1]; if (2 > 2) { d->_q[2] = (int32_t) s->_l[2]; d->_q[3] = (int32_t) s->_l[3]; if (2 > 4) { d->_q[4] = (int32_t) s->_l[4]; d->_q[5] = (int32_t) s->_l[5]; d->_q[6] = (int32_t) s->_l[6]; d->_q[7] = (int32_t) s->_l[7]; } }} +void helper_pmovzxbw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = s->_b[0]; d->_w[1] = s->_b[1]; if (8 > 2) { d->_w[2] = s->_b[2]; d->_w[3] = s->_b[3]; if (8 > 4) { d->_w[4] = s->_b[4]; d->_w[5] = s->_b[5]; d->_w[6] = s->_b[6]; d->_w[7] = s->_b[7]; } }} +void helper_pmovzxbd_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = s->_b[0]; d->_l[1] = s->_b[1]; if (4 > 2) { d->_l[2] = s->_b[2]; d->_l[3] = s->_b[3]; if (4 > 4) { d->_l[4] = s->_b[4]; d->_l[5] = s->_b[5]; d->_l[6] = s->_b[6]; d->_l[7] = s->_b[7]; } }} +void helper_pmovzxbq_xmm (XMMReg *d, XMMReg *s){ d->_q[0] = s->_b[0]; d->_q[1] = s->_b[1]; if (2 > 2) { d->_q[2] = s->_b[2]; d->_q[3] = s->_b[3]; if (2 > 4) { d->_q[4] = s->_b[4]; d->_q[5] = s->_b[5]; d->_q[6] = s->_b[6]; d->_q[7] = s->_b[7]; } }} +void helper_pmovzxwd_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = s->_w[0]; d->_l[1] = s->_w[1]; if (4 > 2) { d->_l[2] = s->_w[2]; d->_l[3] = s->_w[3]; if (4 > 4) { d->_l[4] = s->_w[4]; d->_l[5] = s->_w[5]; d->_l[6] = s->_w[6]; d->_l[7] = s->_w[7]; } }} +void helper_pmovzxwq_xmm (XMMReg *d, XMMReg *s){ d->_q[0] = s->_w[0]; d->_q[1] = s->_w[1]; if (2 > 2) { d->_q[2] = s->_w[2]; d->_q[3] = s->_w[3]; if (2 > 4) { d->_q[4] = s->_w[4]; d->_q[5] = s->_w[5]; d->_q[6] = s->_w[6]; d->_q[7] = s->_w[7]; } }} +void helper_pmovzxdq_xmm (XMMReg *d, XMMReg *s){ d->_q[0] = s->_l[0]; d->_q[1] = s->_l[1]; if (2 > 2) { d->_q[2] = s->_l[2]; d->_q[3] = s->_l[3]; if (2 > 4) { d->_q[4] = s->_l[4]; d->_q[5] = s->_l[5]; d->_q[6] = s->_l[6]; d->_q[7] = s->_l[7]; } }} + +void helper_pmuldq_xmm (XMMReg *d, XMMReg *s) +{ + d->_q[0] = (int64_t) (int32_t) d->_l[0] * (int32_t) s->_l[0]; + d->_q[1] = (int64_t) (int32_t) d->_l[2] * (int32_t) s->_l[2]; +} + + +void helper_pcmpeqq_xmm (XMMReg *d, XMMReg *s){ d->_q[0] = d->_q[0] == s->_q[0] ? -1 : 0; d->_q[1] = d->_q[1] == s->_q[1] ? -1 : 0;} + +void helper_packusdw_xmm (XMMReg *d, XMMReg *s) +{ + d->_w[0] = satuw((int32_t) d->_l[0]); + d->_w[1] = satuw((int32_t) d->_l[1]); + d->_w[2] = satuw((int32_t) d->_l[2]); + d->_w[3] = satuw((int32_t) d->_l[3]); + d->_w[4] = satuw((int32_t) s->_l[0]); + d->_w[5] = satuw((int32_t) s->_l[1]); + d->_w[6] = satuw((int32_t) s->_l[2]); + d->_w[7] = satuw((int32_t) s->_l[3]); +} + + + + + +void helper_pminsb_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = ((((int8_t) d->_b[0]) < ((int8_t) s->_b[0])) ? ((int8_t) d->_b[0]) : ((int8_t) s->_b[0])); d->_b[1] = ((((int8_t) d->_b[1]) < ((int8_t) s->_b[1])) ? ((int8_t) d->_b[1]) : ((int8_t) s->_b[1])); d->_b[2] = ((((int8_t) d->_b[2]) < ((int8_t) s->_b[2])) ? ((int8_t) d->_b[2]) : ((int8_t) s->_b[2])); d->_b[3] = ((((int8_t) d->_b[3]) < ((int8_t) s->_b[3])) ? ((int8_t) d->_b[3]) : ((int8_t) s->_b[3])); d->_b[4] = ((((int8_t) d->_b[4]) < ((int8_t) s->_b[4])) ? ((int8_t) d->_b[4]) : ((int8_t) s->_b[4])); d->_b[5] = ((((int8_t) d->_b[5]) < ((int8_t) s->_b[5])) ? ((int8_t) d->_b[5]) : ((int8_t) s->_b[5])); d->_b[6] = ((((int8_t) d->_b[6]) < ((int8_t) s->_b[6])) ? ((int8_t) d->_b[6]) : ((int8_t) s->_b[6])); d->_b[7] = ((((int8_t) d->_b[7]) < ((int8_t) s->_b[7])) ? ((int8_t) d->_b[7]) : ((int8_t) s->_b[7])); d->_b[8] = ((((int8_t) d->_b[8]) < ((int8_t) s->_b[8])) ? ((int8_t) d->_b[8]) : ((int8_t) s->_b[8])); d->_b[9] = ((((int8_t) d->_b[9]) < ((int8_t) s->_b[9])) ? ((int8_t) d->_b[9]) : ((int8_t) s->_b[9])); d->_b[10] = ((((int8_t) d->_b[10]) < ((int8_t) s->_b[10])) ? ((int8_t) d->_b[10]) : ((int8_t) s->_b[10])); d->_b[11] = ((((int8_t) d->_b[11]) < ((int8_t) s->_b[11])) ? ((int8_t) d->_b[11]) : ((int8_t) s->_b[11])); d->_b[12] = ((((int8_t) d->_b[12]) < ((int8_t) s->_b[12])) ? ((int8_t) d->_b[12]) : ((int8_t) s->_b[12])); d->_b[13] = ((((int8_t) d->_b[13]) < ((int8_t) s->_b[13])) ? ((int8_t) d->_b[13]) : ((int8_t) s->_b[13])); d->_b[14] = ((((int8_t) d->_b[14]) < ((int8_t) s->_b[14])) ? ((int8_t) d->_b[14]) : ((int8_t) s->_b[14])); d->_b[15] = ((((int8_t) d->_b[15]) < ((int8_t) s->_b[15])) ? ((int8_t) d->_b[15]) : ((int8_t) s->_b[15]));} +void helper_pminsd_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = ((((int32_t) d->_l[0]) < ((int32_t) s->_l[0])) ? ((int32_t) d->_l[0]) : ((int32_t) s->_l[0])); d->_l[1] = ((((int32_t) d->_l[1]) < ((int32_t) s->_l[1])) ? ((int32_t) d->_l[1]) : ((int32_t) s->_l[1])); d->_l[2] = ((((int32_t) d->_l[2]) < ((int32_t) s->_l[2])) ? ((int32_t) d->_l[2]) : ((int32_t) s->_l[2])); d->_l[3] = ((((int32_t) d->_l[3]) < ((int32_t) s->_l[3])) ? ((int32_t) d->_l[3]) : ((int32_t) s->_l[3]));} +void helper_pminuw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = (((d->_w[0]) < (s->_w[0])) ? (d->_w[0]) : (s->_w[0])); d->_w[1] = (((d->_w[1]) < (s->_w[1])) ? (d->_w[1]) : (s->_w[1])); d->_w[2] = (((d->_w[2]) < (s->_w[2])) ? (d->_w[2]) : (s->_w[2])); d->_w[3] = (((d->_w[3]) < (s->_w[3])) ? (d->_w[3]) : (s->_w[3])); d->_w[4] = (((d->_w[4]) < (s->_w[4])) ? (d->_w[4]) : (s->_w[4])); d->_w[5] = (((d->_w[5]) < (s->_w[5])) ? (d->_w[5]) : (s->_w[5])); d->_w[6] = (((d->_w[6]) < (s->_w[6])) ? (d->_w[6]) : (s->_w[6])); d->_w[7] = (((d->_w[7]) < (s->_w[7])) ? (d->_w[7]) : (s->_w[7]));} +void helper_pminud_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = (((d->_l[0]) < (s->_l[0])) ? (d->_l[0]) : (s->_l[0])); d->_l[1] = (((d->_l[1]) < (s->_l[1])) ? (d->_l[1]) : (s->_l[1])); d->_l[2] = (((d->_l[2]) < (s->_l[2])) ? (d->_l[2]) : (s->_l[2])); d->_l[3] = (((d->_l[3]) < (s->_l[3])) ? (d->_l[3]) : (s->_l[3]));} +void helper_pmaxsb_xmm (XMMReg *d, XMMReg *s){ d->_b[0] = ((((int8_t) d->_b[0]) > ((int8_t) s->_b[0])) ? ((int8_t) d->_b[0]) : ((int8_t) s->_b[0])); d->_b[1] = ((((int8_t) d->_b[1]) > ((int8_t) s->_b[1])) ? ((int8_t) d->_b[1]) : ((int8_t) s->_b[1])); d->_b[2] = ((((int8_t) d->_b[2]) > ((int8_t) s->_b[2])) ? ((int8_t) d->_b[2]) : ((int8_t) s->_b[2])); d->_b[3] = ((((int8_t) d->_b[3]) > ((int8_t) s->_b[3])) ? ((int8_t) d->_b[3]) : ((int8_t) s->_b[3])); d->_b[4] = ((((int8_t) d->_b[4]) > ((int8_t) s->_b[4])) ? ((int8_t) d->_b[4]) : ((int8_t) s->_b[4])); d->_b[5] = ((((int8_t) d->_b[5]) > ((int8_t) s->_b[5])) ? ((int8_t) d->_b[5]) : ((int8_t) s->_b[5])); d->_b[6] = ((((int8_t) d->_b[6]) > ((int8_t) s->_b[6])) ? ((int8_t) d->_b[6]) : ((int8_t) s->_b[6])); d->_b[7] = ((((int8_t) d->_b[7]) > ((int8_t) s->_b[7])) ? ((int8_t) d->_b[7]) : ((int8_t) s->_b[7])); d->_b[8] = ((((int8_t) d->_b[8]) > ((int8_t) s->_b[8])) ? ((int8_t) d->_b[8]) : ((int8_t) s->_b[8])); d->_b[9] = ((((int8_t) d->_b[9]) > ((int8_t) s->_b[9])) ? ((int8_t) d->_b[9]) : ((int8_t) s->_b[9])); d->_b[10] = ((((int8_t) d->_b[10]) > ((int8_t) s->_b[10])) ? ((int8_t) d->_b[10]) : ((int8_t) s->_b[10])); d->_b[11] = ((((int8_t) d->_b[11]) > ((int8_t) s->_b[11])) ? ((int8_t) d->_b[11]) : ((int8_t) s->_b[11])); d->_b[12] = ((((int8_t) d->_b[12]) > ((int8_t) s->_b[12])) ? ((int8_t) d->_b[12]) : ((int8_t) s->_b[12])); d->_b[13] = ((((int8_t) d->_b[13]) > ((int8_t) s->_b[13])) ? ((int8_t) d->_b[13]) : ((int8_t) s->_b[13])); d->_b[14] = ((((int8_t) d->_b[14]) > ((int8_t) s->_b[14])) ? ((int8_t) d->_b[14]) : ((int8_t) s->_b[14])); d->_b[15] = ((((int8_t) d->_b[15]) > ((int8_t) s->_b[15])) ? ((int8_t) d->_b[15]) : ((int8_t) s->_b[15]));} +void helper_pmaxsd_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = ((((int32_t) d->_l[0]) > ((int32_t) s->_l[0])) ? ((int32_t) d->_l[0]) : ((int32_t) s->_l[0])); d->_l[1] = ((((int32_t) d->_l[1]) > ((int32_t) s->_l[1])) ? ((int32_t) d->_l[1]) : ((int32_t) s->_l[1])); d->_l[2] = ((((int32_t) d->_l[2]) > ((int32_t) s->_l[2])) ? ((int32_t) d->_l[2]) : ((int32_t) s->_l[2])); d->_l[3] = ((((int32_t) d->_l[3]) > ((int32_t) s->_l[3])) ? ((int32_t) d->_l[3]) : ((int32_t) s->_l[3]));} +void helper_pmaxuw_xmm (XMMReg *d, XMMReg *s){ d->_w[0] = (((d->_w[0]) > (s->_w[0])) ? (d->_w[0]) : (s->_w[0])); d->_w[1] = (((d->_w[1]) > (s->_w[1])) ? (d->_w[1]) : (s->_w[1])); d->_w[2] = (((d->_w[2]) > (s->_w[2])) ? (d->_w[2]) : (s->_w[2])); d->_w[3] = (((d->_w[3]) > (s->_w[3])) ? (d->_w[3]) : (s->_w[3])); d->_w[4] = (((d->_w[4]) > (s->_w[4])) ? (d->_w[4]) : (s->_w[4])); d->_w[5] = (((d->_w[5]) > (s->_w[5])) ? (d->_w[5]) : (s->_w[5])); d->_w[6] = (((d->_w[6]) > (s->_w[6])) ? (d->_w[6]) : (s->_w[6])); d->_w[7] = (((d->_w[7]) > (s->_w[7])) ? (d->_w[7]) : (s->_w[7]));} +void helper_pmaxud_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = (((d->_l[0]) > (s->_l[0])) ? (d->_l[0]) : (s->_l[0])); d->_l[1] = (((d->_l[1]) > (s->_l[1])) ? (d->_l[1]) : (s->_l[1])); d->_l[2] = (((d->_l[2]) > (s->_l[2])) ? (d->_l[2]) : (s->_l[2])); d->_l[3] = (((d->_l[3]) > (s->_l[3])) ? (d->_l[3]) : (s->_l[3]));} + + +void helper_pmulld_xmm (XMMReg *d, XMMReg *s){ d->_l[0] = (int32_t) d->_l[0] * (int32_t) s->_l[0]; d->_l[1] = (int32_t) d->_l[1] * (int32_t) s->_l[1]; d->_l[2] = (int32_t) d->_l[2] * (int32_t) s->_l[2]; d->_l[3] = (int32_t) d->_l[3] * (int32_t) s->_l[3];} + +void helper_phminposuw_xmm (XMMReg *d, XMMReg *s) +{ + int idx = 0; + + if (s->_w[1] < s->_w[idx]) + idx = 1; + if (s->_w[2] < s->_w[idx]) + idx = 2; + if (s->_w[3] < s->_w[idx]) + idx = 3; + if (s->_w[4] < s->_w[idx]) + idx = 4; + if (s->_w[5] < s->_w[idx]) + idx = 5; + if (s->_w[6] < s->_w[idx]) + idx = 6; + if (s->_w[7] < s->_w[idx]) + idx = 7; + + d->_q[1] = 0; + d->_l[1] = 0; + d->_w[1] = idx; + d->_w[0] = s->_w[idx]; +} + +void helper_roundps_xmm (XMMReg *d, XMMReg *s, uint32_t mode) +{ + signed char prev_rounding_mode; + + prev_rounding_mode = env->sse_status.float_rounding_mode; + if (!(mode & (1 << 2))) + switch (mode & 3) { + case 0: + set_float_rounding_mode(float_round_nearest_even, &env->sse_status); + break; + case 1: + set_float_rounding_mode(float_round_down, &env->sse_status); + break; + case 2: + set_float_rounding_mode(float_round_up, &env->sse_status); + break; + case 3: + set_float_rounding_mode(float_round_to_zero, &env->sse_status); + break; + } + + d->_s[0] = float32_round_to_int(s->_s[0], &env->sse_status); + d->_s[1] = float32_round_to_int(s->_s[1], &env->sse_status); + d->_s[2] = float32_round_to_int(s->_s[2], &env->sse_status); + d->_s[3] = float32_round_to_int(s->_s[3], &env->sse_status); +# 1668 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" + env->sse_status.float_rounding_mode = prev_rounding_mode; +} + +void helper_roundpd_xmm (XMMReg *d, XMMReg *s, uint32_t mode) +{ + signed char prev_rounding_mode; + + prev_rounding_mode = env->sse_status.float_rounding_mode; + if (!(mode & (1 << 2))) + switch (mode & 3) { + case 0: + set_float_rounding_mode(float_round_nearest_even, &env->sse_status); + break; + case 1: + set_float_rounding_mode(float_round_down, &env->sse_status); + break; + case 2: + set_float_rounding_mode(float_round_up, &env->sse_status); + break; + case 3: + set_float_rounding_mode(float_round_to_zero, &env->sse_status); + break; + } + + d->_d[0] = float64_round_to_int(s->_d[0], &env->sse_status); + d->_d[1] = float64_round_to_int(s->_d[1], &env->sse_status); +# 1702 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" + env->sse_status.float_rounding_mode = prev_rounding_mode; +} + +void helper_roundss_xmm (XMMReg *d, XMMReg *s, uint32_t mode) +{ + signed char prev_rounding_mode; + + prev_rounding_mode = env->sse_status.float_rounding_mode; + if (!(mode & (1 << 2))) + switch (mode & 3) { + case 0: + set_float_rounding_mode(float_round_nearest_even, &env->sse_status); + break; + case 1: + set_float_rounding_mode(float_round_down, &env->sse_status); + break; + case 2: + set_float_rounding_mode(float_round_up, &env->sse_status); + break; + case 3: + set_float_rounding_mode(float_round_to_zero, &env->sse_status); + break; + } + + d->_s[0] = float32_round_to_int(s->_s[0], &env->sse_status); +# 1735 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" + env->sse_status.float_rounding_mode = prev_rounding_mode; +} + +void helper_roundsd_xmm (XMMReg *d, XMMReg *s, uint32_t mode) +{ + signed char prev_rounding_mode; + + prev_rounding_mode = env->sse_status.float_rounding_mode; + if (!(mode & (1 << 2))) + switch (mode & 3) { + case 0: + set_float_rounding_mode(float_round_nearest_even, &env->sse_status); + break; + case 1: + set_float_rounding_mode(float_round_down, &env->sse_status); + break; + case 2: + set_float_rounding_mode(float_round_up, &env->sse_status); + break; + case 3: + set_float_rounding_mode(float_round_to_zero, &env->sse_status); + break; + } + + d->_d[0] = float64_round_to_int(s->_d[0], &env->sse_status); +# 1768 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/ops_sse.h" + env->sse_status.float_rounding_mode = prev_rounding_mode; +} + + +void helper_blendps_xmm (XMMReg *d, XMMReg *s, uint32_t imm){ d->_l[0] = ((imm >> 0) & 1) ? s->_l[0] : d->_l[0]; d->_l[1] = ((imm >> 1) & 1) ? s->_l[1] : d->_l[1]; if (4 > 2) { d->_l[2] = ((imm >> 2) & 1) ? s->_l[2] : d->_l[2]; d->_l[3] = ((imm >> 3) & 1) ? s->_l[3] : d->_l[3]; if (4 > 4) { d->_l[4] = ((imm >> 4) & 1) ? s->_l[4] : d->_l[4]; d->_l[5] = ((imm >> 5) & 1) ? s->_l[5] : d->_l[5]; d->_l[6] = ((imm >> 6) & 1) ? s->_l[6] : d->_l[6]; d->_l[7] = ((imm >> 7) & 1) ? s->_l[7] : d->_l[7]; if (4 > 8) { d->_l[8] = ((imm >> 8) & 1) ? s->_l[8] : d->_l[8]; d->_l[9] = ((imm >> 9) & 1) ? s->_l[9] : d->_l[9]; d->_l[10] = ((imm >> 10) & 1) ? s->_l[10] : d->_l[10]; d->_l[11] = ((imm >> 11) & 1) ? s->_l[11] : d->_l[11]; d->_l[12] = ((imm >> 12) & 1) ? s->_l[12] : d->_l[12]; d->_l[13] = ((imm >> 13) & 1) ? s->_l[13] : d->_l[13]; d->_l[14] = ((imm >> 14) & 1) ? s->_l[14] : d->_l[14]; d->_l[15] = ((imm >> 15) & 1) ? s->_l[15] : d->_l[15]; } } }} +void helper_blendpd_xmm (XMMReg *d, XMMReg *s, uint32_t imm){ d->_q[0] = ((imm >> 0) & 1) ? s->_q[0] : d->_q[0]; d->_q[1] = ((imm >> 1) & 1) ? s->_q[1] : d->_q[1]; if (2 > 2) { d->_q[2] = ((imm >> 2) & 1) ? s->_q[2] : d->_q[2]; d->_q[3] = ((imm >> 3) & 1) ? s->_q[3] : d->_q[3]; if (2 > 4) { d->_q[4] = ((imm >> 4) & 1) ? s->_q[4] : d->_q[4]; d->_q[5] = ((imm >> 5) & 1) ? s->_q[5] : d->_q[5]; d->_q[6] = ((imm >> 6) & 1) ? s->_q[6] : d->_q[6]; d->_q[7] = ((imm >> 7) & 1) ? s->_q[7] : d->_q[7]; if (2 > 8) { d->_q[8] = ((imm >> 8) & 1) ? s->_q[8] : d->_q[8]; d->_q[9] = ((imm >> 9) & 1) ? s->_q[9] : d->_q[9]; d->_q[10] = ((imm >> 10) & 1) ? s->_q[10] : d->_q[10]; d->_q[11] = ((imm >> 11) & 1) ? s->_q[11] : d->_q[11]; d->_q[12] = ((imm >> 12) & 1) ? s->_q[12] : d->_q[12]; d->_q[13] = ((imm >> 13) & 1) ? s->_q[13] : d->_q[13]; d->_q[14] = ((imm >> 14) & 1) ? s->_q[14] : d->_q[14]; d->_q[15] = ((imm >> 15) & 1) ? s->_q[15] : d->_q[15]; } } }} +void helper_pblendw_xmm (XMMReg *d, XMMReg *s, uint32_t imm){ d->_w[0] = ((imm >> 0) & 1) ? s->_w[0] : d->_w[0]; d->_w[1] = ((imm >> 1) & 1) ? s->_w[1] : d->_w[1]; if (8 > 2) { d->_w[2] = ((imm >> 2) & 1) ? s->_w[2] : d->_w[2]; d->_w[3] = ((imm >> 3) & 1) ? s->_w[3] : d->_w[3]; if (8 > 4) { d->_w[4] = ((imm >> 4) & 1) ? s->_w[4] : d->_w[4]; d->_w[5] = ((imm >> 5) & 1) ? s->_w[5] : d->_w[5]; d->_w[6] = ((imm >> 6) & 1) ? s->_w[6] : d->_w[6]; d->_w[7] = ((imm >> 7) & 1) ? s->_w[7] : d->_w[7]; if (8 > 8) { d->_w[8] = ((imm >> 8) & 1) ? s->_w[8] : d->_w[8]; d->_w[9] = ((imm >> 9) & 1) ? s->_w[9] : d->_w[9]; d->_w[10] = ((imm >> 10) & 1) ? s->_w[10] : d->_w[10]; d->_w[11] = ((imm >> 11) & 1) ? s->_w[11] : d->_w[11]; d->_w[12] = ((imm >> 12) & 1) ? s->_w[12] : d->_w[12]; d->_w[13] = ((imm >> 13) & 1) ? s->_w[13] : d->_w[13]; d->_w[14] = ((imm >> 14) & 1) ? s->_w[14] : d->_w[14]; d->_w[15] = ((imm >> 15) & 1) ? s->_w[15] : d->_w[15]; } } }} + +void helper_dpps_xmm (XMMReg *d, XMMReg *s, uint32_t mask) +{ + float32 iresult = (0); + + if (mask & (1 << 4)) + iresult = float32_add(iresult, + float32_mul(d->_s[0], s->_s[0], &env->sse_status), + &env->sse_status); + if (mask & (1 << 5)) + iresult = float32_add(iresult, + float32_mul(d->_s[1], s->_s[1], &env->sse_status), + &env->sse_status); + if (mask & (1 << 6)) + iresult = float32_add(iresult, + float32_mul(d->_s[2], s->_s[2], &env->sse_status), + &env->sse_status); + if (mask & (1 << 7)) + iresult = float32_add(iresult, + float32_mul(d->_s[3], s->_s[3], &env->sse_status), + &env->sse_status); + d->_s[0] = (mask & (1 << 0)) ? iresult : (0); + d->_s[1] = (mask & (1 << 1)) ? iresult : (0); + d->_s[2] = (mask & (1 << 2)) ? iresult : (0); + d->_s[3] = (mask & (1 << 3)) ? iresult : (0); +} + +void helper_dppd_xmm (XMMReg *d, XMMReg *s, uint32_t mask) +{ + float64 iresult = (0); + + if (mask & (1 << 4)) + iresult = float64_add(iresult, + float64_mul(d->_d[0], s->_d[0], &env->sse_status), + &env->sse_status); + if (mask & (1 << 5)) + iresult = float64_add(iresult, + float64_mul(d->_d[1], s->_d[1], &env->sse_status), + &env->sse_status); + d->_d[0] = (mask & (1 << 0)) ? iresult : (0); + d->_d[1] = (mask & (1 << 1)) ? iresult : (0); +} + +void helper_mpsadbw_xmm (XMMReg *d, XMMReg *s, uint32_t offset) +{ + int s0 = (offset & 3) << 2; + int d0 = (offset & 4) << 0; + int i; + XMMReg r; + + for (i = 0; i < 8; i++, d0++) { + r._w[i] = 0; + r._w[i] += abs1(d->_b[d0 + 0] - s->_b[s0 + 0]); + r._w[i] += abs1(d->_b[d0 + 1] - s->_b[s0 + 1]); + r._w[i] += abs1(d->_b[d0 + 2] - s->_b[s0 + 2]); + r._w[i] += abs1(d->_b[d0 + 3] - s->_b[s0 + 3]); + } + + *d = r; +} + + + + +void helper_pcmpgtq_xmm (XMMReg *d, XMMReg *s){ d->_q[0] = d->_q[0] > s->_q[0] ? -1 : 0; d->_q[1] = d->_q[1] > s->_q[1] ? -1 : 0;} + +static __attribute__ (( always_inline )) __inline__ int pcmp_elen(int reg, uint32_t ctrl) +{ + int val; + + + if (ctrl >> 8) + val = abs1((int64_t) env->regs[reg]); + else + val = abs1((int32_t) env->regs[reg]); + + if (ctrl & 1) { + if (val > 8) + return 8; + } else + if (val > 16) + return 16; + + return val; +} + +static __attribute__ (( always_inline )) __inline__ int pcmp_ilen(XMMReg *r, uint8_t ctrl) +{ + int val = 0; + + if (ctrl & 1) { + while (val < 8 && r->_w[val]) + val++; + } else + while (val < 16 && r->_b[val]) + val++; + + return val; +} + +static __attribute__ (( always_inline )) __inline__ int pcmp_val(XMMReg *r, uint8_t ctrl, int i) +{ + switch ((ctrl >> 0) & 3) { + case 0: + return r->_b[i]; + case 1: + return r->_w[i]; + case 2: + return (int8_t) r->_b[i]; + case 3: + default: + return (int16_t) r->_w[i]; + } +} + +static __attribute__ (( always_inline )) __inline__ unsigned pcmpxstrx(XMMReg *d, XMMReg *s, + int8_t ctrl, int valids, int validd) +{ + unsigned int res = 0; + int v; + int j, i; + int upper = (ctrl & 1) ? 7 : 15; + + valids--; + validd--; + + (env->cc_src) = (valids < upper ? 0x0040 : 0) | (validd < upper ? 0x0080 : 0); + + switch ((ctrl >> 2) & 3) { + case 0: + for (j = valids; j >= 0; j--) { + res <<= 1; + v = pcmp_val(s, ctrl, j); + for (i = validd; i >= 0; i--) + res |= (v == pcmp_val(d, ctrl, i)); + } + break; + case 1: + for (j = valids; j >= 0; j--) { + res <<= 1; + v = pcmp_val(s, ctrl, j); + for (i = ((validd - 1) | 1); i >= 0; i -= 2) + res |= (pcmp_val(d, ctrl, i - 0) <= v && + pcmp_val(d, ctrl, i - 1) >= v); + } + break; + case 2: + res = (2 << (upper - (((valids) > (validd)) ? (valids) : (validd)))) - 1; + res <<= (((valids) > (validd)) ? (valids) : (validd)) - (((valids) < (validd)) ? (valids) : (validd)); + for (i = (((valids) < (validd)) ? (valids) : (validd)); i >= 0; i--) { + res <<= 1; + v = pcmp_val(s, ctrl, i); + res |= (v == pcmp_val(d, ctrl, i)); + } + break; + case 3: + for (j = valids - validd; j >= 0; j--) { + res <<= 1; + res |= 1; + for (i = (((upper - j) < (validd)) ? (upper - j) : (validd)); i >= 0; i--) + res &= (pcmp_val(s, ctrl, i + j) == pcmp_val(d, ctrl, i)); + } + break; + } + + switch ((ctrl >> 4) & 3) { + case 1: + res ^= (2 << upper) - 1; + break; + case 3: + res ^= (2 << valids) - 1; + break; + } + + if (res) + (env->cc_src) |= 0x0001; + if (res & 1) + (env->cc_src) |= 0x0800; + + return res; +} + +static __attribute__ (( always_inline )) __inline__ int rffs1(unsigned int val) +{ + int ret = 1, hi; + + for (hi = sizeof(val) * 4; hi; hi /= 2) + if (val >> hi) { + val >>= hi; + ret += hi; + } + + return ret; +} + +static __attribute__ (( always_inline )) __inline__ int ffs1(unsigned int val) +{ + int ret = 1, hi; + + for (hi = sizeof(val) * 4; hi; hi /= 2) + if (val << hi) { + val <<= hi; + ret += hi; + } + + return ret; +} + +void helper_pcmpestri_xmm (XMMReg *d, XMMReg *s, uint32_t ctrl) +{ + unsigned int res = pcmpxstrx(d, s, ctrl, + pcmp_elen(2, ctrl), + pcmp_elen(0, ctrl)); + + if (res) + env->regs[1] = ((ctrl & (1 << 6)) ? rffs1 : ffs1)(res) - 1; + else + env->regs[1] = 16 >> (ctrl & (1 << 0)); +} + +void helper_pcmpestrm_xmm (XMMReg *d, XMMReg *s, uint32_t ctrl) +{ + int i; + unsigned int res = pcmpxstrx(d, s, ctrl, + pcmp_elen(2, ctrl), + pcmp_elen(0, ctrl)); + + if ((ctrl >> 6) & 1) { + if (ctrl & 1) + for (i = 0; i < 8; i++, res >>= 1) { + d->_w[i] = (res & 1) ? ~0 : 0; + } + else + for (i = 0; i < 16; i++, res >>= 1) { + d->_b[i] = (res & 1) ? ~0 : 0; + } + } else { + d->_q[1] = 0; + d->_q[0] = res; + } +} + +void helper_pcmpistri_xmm (XMMReg *d, XMMReg *s, uint32_t ctrl) +{ + unsigned int res = pcmpxstrx(d, s, ctrl, + pcmp_ilen(s, ctrl), + pcmp_ilen(d, ctrl)); + + if (res) + env->regs[1] = ((ctrl & (1 << 6)) ? rffs1 : ffs1)(res) - 1; + else + env->regs[1] = 16 >> (ctrl & (1 << 0)); +} + +void helper_pcmpistrm_xmm (XMMReg *d, XMMReg *s, uint32_t ctrl) +{ + int i; + unsigned int res = pcmpxstrx(d, s, ctrl, + pcmp_ilen(s, ctrl), + pcmp_ilen(d, ctrl)); + + if ((ctrl >> 6) & 1) { + if (ctrl & 1) + for (i = 0; i < 8; i++, res >>= 1) { + d->_w[i] = (res & 1) ? ~0 : 0; + } + else + for (i = 0; i < 16; i++, res >>= 1) { + d->_b[i] = (res & 1) ? ~0 : 0; + } + } else { + d->_q[1] = 0; + d->_q[0] = res; + } +} + + + +target_ulong helper_crc32(uint32_t crc1, target_ulong msg, uint32_t len) +{ + target_ulong crc = (msg & ((target_ulong) -1 >> + (32 - len))) ^ crc1; + + while (len--) + crc = (crc >> 1) ^ ((crc & 1) ? 0x82f63b78 : 0); + + return crc; +} + + + +target_ulong helper_popcnt(target_ulong n, uint32_t type) +{ + (env->cc_src) = n ? 0 : 0x0040; + + n = (n & ((target_ulong) -1 / ((1LL << (1 << 0)) + 1))) + ((n >> (1 << 0)) & ((target_ulong) -1 / ((1LL << (1 << 0)) + 1))); + n = (n & ((target_ulong) -1 / ((1LL << (1 << 1)) + 1))) + ((n >> (1 << 1)) & ((target_ulong) -1 / ((1LL << (1 << 1)) + 1))); + n = (n & ((target_ulong) -1 / ((1LL << (1 << 2)) + 1))) + ((n >> (1 << 2)) & ((target_ulong) -1 / ((1LL << (1 << 2)) + 1))); + n = (n & ((target_ulong) -1 / ((1LL << (1 << 3)) + 1))) + ((n >> (1 << 3)) & ((target_ulong) -1 / ((1LL << (1 << 3)) + 1))); + if (type == 1) + return n & 0xff; + + n = (n & ((target_ulong) -1 / ((1LL << (1 << 4)) + 1))) + ((n >> (1 << 4)) & ((target_ulong) -1 / ((1LL << (1 << 4)) + 1))); + + return n; + + + + + + +} +# 5698 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper_template.h" 1 +# 54 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper_template.h" +static int compute_all_addb(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_src); + src2 = (env->cc_dst) - (env->cc_src); + cf = (uint8_t)(env->cc_dst) < (uint8_t)src1; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint8_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 0))) & 0x80; + of = lshift((src1 ^ src2 ^ -1) & (src1 ^ (env->cc_dst)), 12 - (1 << (3 + 0))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_addb(void) +{ + int cf; + target_long src1; + src1 = (env->cc_src); + cf = (uint8_t)(env->cc_dst) < (uint8_t)src1; + return cf; +} + +static int compute_all_adcb(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_src); + src2 = (env->cc_dst) - (env->cc_src) - 1; + cf = (uint8_t)(env->cc_dst) <= (uint8_t)src1; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint8_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 0))) & 0x80; + of = lshift((src1 ^ src2 ^ -1) & (src1 ^ (env->cc_dst)), 12 - (1 << (3 + 0))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_adcb(void) +{ + int cf; + target_long src1; + src1 = (env->cc_src); + cf = (uint8_t)(env->cc_dst) <= (uint8_t)src1; + return cf; +} + +static int compute_all_subb(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_dst) + (env->cc_src); + src2 = (env->cc_src); + cf = (uint8_t)src1 < (uint8_t)src2; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint8_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 0))) & 0x80; + of = lshift((src1 ^ src2) & (src1 ^ (env->cc_dst)), 12 - (1 << (3 + 0))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_subb(void) +{ + int cf; + target_long src1, src2; + src1 = (env->cc_dst) + (env->cc_src); + src2 = (env->cc_src); + cf = (uint8_t)src1 < (uint8_t)src2; + return cf; +} + +static int compute_all_sbbb(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_dst) + (env->cc_src) + 1; + src2 = (env->cc_src); + cf = (uint8_t)src1 <= (uint8_t)src2; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint8_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 0))) & 0x80; + of = lshift((src1 ^ src2) & (src1 ^ (env->cc_dst)), 12 - (1 << (3 + 0))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_sbbb(void) +{ + int cf; + target_long src1, src2; + src1 = (env->cc_dst) + (env->cc_src) + 1; + src2 = (env->cc_src); + cf = (uint8_t)src1 <= (uint8_t)src2; + return cf; +} + +static int compute_all_logicb(void) +{ + int cf, pf, af, zf, sf, of; + cf = 0; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = 0; + zf = ((uint8_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 0))) & 0x80; + of = 0; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_logicb(void) +{ + return 0; +} + +static int compute_all_incb(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_dst) - 1; + src2 = 1; + cf = (env->cc_src); + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint8_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 0))) & 0x80; + of = (((env->cc_dst) & 0xff) == (((target_ulong)1) << ((1 << (3 + 0)) - 1))) << 11; + return cf | pf | af | zf | sf | of; +} +# 191 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper_template.h" +static int compute_all_decb(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_dst) + 1; + src2 = 1; + cf = (env->cc_src); + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint8_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 0))) & 0x80; + of = (((env->cc_dst) & 0xff) == ((target_ulong)(((target_ulong)1) << ((1 << (3 + 0)) - 1)) - 1)) << 11; + return cf | pf | af | zf | sf | of; +} + +static int compute_all_shlb(void) +{ + int cf, pf, af, zf, sf, of; + cf = ((env->cc_src) >> ((1 << (3 + 0)) - 1)) & 0x0001; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = 0; + zf = ((uint8_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 0))) & 0x80; + + of = lshift((env->cc_src) ^ (env->cc_dst), 12 - (1 << (3 + 0))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_shlb(void) +{ + return ((env->cc_src) >> ((1 << (3 + 0)) - 1)) & 0x0001; +} +# 231 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper_template.h" +static int compute_all_sarb(void) +{ + int cf, pf, af, zf, sf, of; + cf = (env->cc_src) & 1; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = 0; + zf = ((uint8_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 0))) & 0x80; + + of = lshift((env->cc_src) ^ (env->cc_dst), 12 - (1 << (3 + 0))) & 0x0800; + return cf | pf | af | zf | sf | of; +} +# 255 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper_template.h" +static int compute_all_mulb(void) +{ + int cf, pf, af, zf, sf, of; + cf = ((env->cc_src) != 0); + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = 0; + zf = ((uint8_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 0))) & 0x80; + of = cf << 11; + return cf | pf | af | zf | sf | of; +} + + + +target_ulong helper_rclb(target_ulong t0, target_ulong t1) +{ + int count, eflags; + target_ulong src; + target_long res; + + count = t1 & 0x1f; + + + + count = rclb_table[count]; + + if (count) { + eflags = helper_cc_compute_all((env->cc_op)); + t0 &= 0xff; + src = t0; + res = (t0 << count) | ((target_ulong)(eflags & 0x0001) << (count - 1)); + if (count > 1) + res |= t0 >> ((1 << (3 + 0)) + 1 - count); + t0 = res; + env->cc_tmp = (eflags & ~(0x0001 | 0x0800)) | + (lshift(src ^ t0, 11 - ((1 << (3 + 0)) - 1)) & 0x0800) | + ((src >> ((1 << (3 + 0)) - count)) & 0x0001); + } else { + env->cc_tmp = -1; + } + return t0; +} + +target_ulong helper_rcrb(target_ulong t0, target_ulong t1) +{ + int count, eflags; + target_ulong src; + target_long res; + + count = t1 & 0x1f; + + + + count = rclb_table[count]; + + if (count) { + eflags = helper_cc_compute_all((env->cc_op)); + t0 &= 0xff; + src = t0; + res = (t0 >> count) | ((target_ulong)(eflags & 0x0001) << ((1 << (3 + 0)) - count)); + if (count > 1) + res |= t0 << ((1 << (3 + 0)) + 1 - count); + t0 = res; + env->cc_tmp = (eflags & ~(0x0001 | 0x0800)) | + (lshift(src ^ t0, 11 - ((1 << (3 + 0)) - 1)) & 0x0800) | + ((src >> (count - 1)) & 0x0001); + } else { + env->cc_tmp = -1; + } + return t0; +} +# 5701 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 + + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper_template.h" 1 +# 54 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper_template.h" +static int compute_all_addw(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_src); + src2 = (env->cc_dst) - (env->cc_src); + cf = (uint16_t)(env->cc_dst) < (uint16_t)src1; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint16_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 1))) & 0x80; + of = lshift((src1 ^ src2 ^ -1) & (src1 ^ (env->cc_dst)), 12 - (1 << (3 + 1))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_addw(void) +{ + int cf; + target_long src1; + src1 = (env->cc_src); + cf = (uint16_t)(env->cc_dst) < (uint16_t)src1; + return cf; +} + +static int compute_all_adcw(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_src); + src2 = (env->cc_dst) - (env->cc_src) - 1; + cf = (uint16_t)(env->cc_dst) <= (uint16_t)src1; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint16_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 1))) & 0x80; + of = lshift((src1 ^ src2 ^ -1) & (src1 ^ (env->cc_dst)), 12 - (1 << (3 + 1))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_adcw(void) +{ + int cf; + target_long src1; + src1 = (env->cc_src); + cf = (uint16_t)(env->cc_dst) <= (uint16_t)src1; + return cf; +} + +static int compute_all_subw(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_dst) + (env->cc_src); + src2 = (env->cc_src); + cf = (uint16_t)src1 < (uint16_t)src2; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint16_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 1))) & 0x80; + of = lshift((src1 ^ src2) & (src1 ^ (env->cc_dst)), 12 - (1 << (3 + 1))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_subw(void) +{ + int cf; + target_long src1, src2; + src1 = (env->cc_dst) + (env->cc_src); + src2 = (env->cc_src); + cf = (uint16_t)src1 < (uint16_t)src2; + return cf; +} + +static int compute_all_sbbw(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_dst) + (env->cc_src) + 1; + src2 = (env->cc_src); + cf = (uint16_t)src1 <= (uint16_t)src2; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint16_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 1))) & 0x80; + of = lshift((src1 ^ src2) & (src1 ^ (env->cc_dst)), 12 - (1 << (3 + 1))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_sbbw(void) +{ + int cf; + target_long src1, src2; + src1 = (env->cc_dst) + (env->cc_src) + 1; + src2 = (env->cc_src); + cf = (uint16_t)src1 <= (uint16_t)src2; + return cf; +} + +static int compute_all_logicw(void) +{ + int cf, pf, af, zf, sf, of; + cf = 0; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = 0; + zf = ((uint16_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 1))) & 0x80; + of = 0; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_logicw(void) +{ + return 0; +} + +static int compute_all_incw(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_dst) - 1; + src2 = 1; + cf = (env->cc_src); + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint16_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 1))) & 0x80; + of = (((env->cc_dst) & 0xffff) == (((target_ulong)1) << ((1 << (3 + 1)) - 1))) << 11; + return cf | pf | af | zf | sf | of; +} +# 191 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper_template.h" +static int compute_all_decw(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_dst) + 1; + src2 = 1; + cf = (env->cc_src); + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint16_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 1))) & 0x80; + of = (((env->cc_dst) & 0xffff) == ((target_ulong)(((target_ulong)1) << ((1 << (3 + 1)) - 1)) - 1)) << 11; + return cf | pf | af | zf | sf | of; +} + +static int compute_all_shlw(void) +{ + int cf, pf, af, zf, sf, of; + cf = ((env->cc_src) >> ((1 << (3 + 1)) - 1)) & 0x0001; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = 0; + zf = ((uint16_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 1))) & 0x80; + + of = lshift((env->cc_src) ^ (env->cc_dst), 12 - (1 << (3 + 1))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_shlw(void) +{ + return ((env->cc_src) >> ((1 << (3 + 1)) - 1)) & 0x0001; +} +# 231 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper_template.h" +static int compute_all_sarw(void) +{ + int cf, pf, af, zf, sf, of; + cf = (env->cc_src) & 1; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = 0; + zf = ((uint16_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 1))) & 0x80; + + of = lshift((env->cc_src) ^ (env->cc_dst), 12 - (1 << (3 + 1))) & 0x0800; + return cf | pf | af | zf | sf | of; +} +# 255 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper_template.h" +static int compute_all_mulw(void) +{ + int cf, pf, af, zf, sf, of; + cf = ((env->cc_src) != 0); + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = 0; + zf = ((uint16_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 1))) & 0x80; + of = cf << 11; + return cf | pf | af | zf | sf | of; +} + + + +target_ulong helper_rclw(target_ulong t0, target_ulong t1) +{ + int count, eflags; + target_ulong src; + target_long res; + + count = t1 & 0x1f; + + count = rclw_table[count]; + + + + if (count) { + eflags = helper_cc_compute_all((env->cc_op)); + t0 &= 0xffff; + src = t0; + res = (t0 << count) | ((target_ulong)(eflags & 0x0001) << (count - 1)); + if (count > 1) + res |= t0 >> ((1 << (3 + 1)) + 1 - count); + t0 = res; + env->cc_tmp = (eflags & ~(0x0001 | 0x0800)) | + (lshift(src ^ t0, 11 - ((1 << (3 + 1)) - 1)) & 0x0800) | + ((src >> ((1 << (3 + 1)) - count)) & 0x0001); + } else { + env->cc_tmp = -1; + } + return t0; +} + +target_ulong helper_rcrw(target_ulong t0, target_ulong t1) +{ + int count, eflags; + target_ulong src; + target_long res; + + count = t1 & 0x1f; + + count = rclw_table[count]; + + + + if (count) { + eflags = helper_cc_compute_all((env->cc_op)); + t0 &= 0xffff; + src = t0; + res = (t0 >> count) | ((target_ulong)(eflags & 0x0001) << ((1 << (3 + 1)) - count)); + if (count > 1) + res |= t0 << ((1 << (3 + 1)) + 1 - count); + t0 = res; + env->cc_tmp = (eflags & ~(0x0001 | 0x0800)) | + (lshift(src ^ t0, 11 - ((1 << (3 + 1)) - 1)) & 0x0800) | + ((src >> (count - 1)) & 0x0001); + } else { + env->cc_tmp = -1; + } + return t0; +} +# 5705 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 + + + +# 1 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper_template.h" 1 +# 54 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/helper_template.h" +static int compute_all_addl(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_src); + src2 = (env->cc_dst) - (env->cc_src); + cf = (uint32_t)(env->cc_dst) < (uint32_t)src1; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint32_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 2))) & 0x80; + of = lshift((src1 ^ src2 ^ -1) & (src1 ^ (env->cc_dst)), 12 - (1 << (3 + 2))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_addl(void) +{ + int cf; + target_long src1; + src1 = (env->cc_src); + cf = (uint32_t)(env->cc_dst) < (uint32_t)src1; + return cf; +} + +static int compute_all_adcl(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_src); + src2 = (env->cc_dst) - (env->cc_src) - 1; + cf = (uint32_t)(env->cc_dst) <= (uint32_t)src1; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint32_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 2))) & 0x80; + of = lshift((src1 ^ src2 ^ -1) & (src1 ^ (env->cc_dst)), 12 - (1 << (3 + 2))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_adcl(void) +{ + int cf; + target_long src1; + src1 = (env->cc_src); + cf = (uint32_t)(env->cc_dst) <= (uint32_t)src1; + return cf; +} + +static int compute_all_subl(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_dst) + (env->cc_src); + src2 = (env->cc_src); + cf = (uint32_t)src1 < (uint32_t)src2; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint32_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 2))) & 0x80; + of = lshift((src1 ^ src2) & (src1 ^ (env->cc_dst)), 12 - (1 << (3 + 2))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_subl(void) +{ + int cf; + target_long src1, src2; + src1 = (env->cc_dst) + (env->cc_src); + src2 = (env->cc_src); + cf = (uint32_t)src1 < (uint32_t)src2; + return cf; +} + +static int compute_all_sbbl(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_dst) + (env->cc_src) + 1; + src2 = (env->cc_src); + cf = (uint32_t)src1 <= (uint32_t)src2; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint32_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 2))) & 0x80; + of = lshift((src1 ^ src2) & (src1 ^ (env->cc_dst)), 12 - (1 << (3 + 2))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_sbbl(void) +{ + int cf; + target_long src1, src2; + src1 = (env->cc_dst) + (env->cc_src) + 1; + src2 = (env->cc_src); + cf = (uint32_t)src1 <= (uint32_t)src2; + return cf; +} + +static int compute_all_logicl(void) +{ + int cf, pf, af, zf, sf, of; + cf = 0; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = 0; + zf = ((uint32_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 2))) & 0x80; + of = 0; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_logicl(void) +{ + return 0; +} + +static int compute_all_incl(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_dst) - 1; + src2 = 1; + cf = (env->cc_src); + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint32_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 2))) & 0x80; + of = (((env->cc_dst) & 0xffffffff) == (((target_ulong)1) << ((1 << (3 + 2)) - 1))) << 11; + return cf | pf | af | zf | sf | of; +} + + +static int compute_c_incl(void) +{ + return (env->cc_src); +} + + +static int compute_all_decl(void) +{ + int cf, pf, af, zf, sf, of; + target_long src1, src2; + src1 = (env->cc_dst) + 1; + src2 = 1; + cf = (env->cc_src); + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = ((env->cc_dst) ^ src1 ^ src2) & 0x10; + zf = ((uint32_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 2))) & 0x80; + of = (((env->cc_dst) & 0xffffffff) == ((target_ulong)(((target_ulong)1) << ((1 << (3 + 2)) - 1)) - 1)) << 11; + return cf | pf | af | zf | sf | of; +} + +static int compute_all_shll(void) +{ + int cf, pf, af, zf, sf, of; + cf = ((env->cc_src) >> ((1 << (3 + 2)) - 1)) & 0x0001; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = 0; + zf = ((uint32_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 2))) & 0x80; + + of = lshift((env->cc_src) ^ (env->cc_dst), 12 - (1 << (3 + 2))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + +static int compute_c_shll(void) +{ + return ((env->cc_src) >> ((1 << (3 + 2)) - 1)) & 0x0001; +} + + +static int compute_c_sarl(void) +{ + return (env->cc_src) & 1; +} + + +static int compute_all_sarl(void) +{ + int cf, pf, af, zf, sf, of; + cf = (env->cc_src) & 1; + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = 0; + zf = ((uint32_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 2))) & 0x80; + + of = lshift((env->cc_src) ^ (env->cc_dst), 12 - (1 << (3 + 2))) & 0x0800; + return cf | pf | af | zf | sf | of; +} + + +static int compute_c_mull(void) +{ + int cf; + cf = ((env->cc_src) != 0); + return cf; +} + + + + +static int compute_all_mull(void) +{ + int cf, pf, af, zf, sf, of; + cf = ((env->cc_src) != 0); + pf = parity_table[(uint8_t)(env->cc_dst)]; + af = 0; + zf = ((uint32_t)(env->cc_dst) == 0) << 6; + sf = lshift((env->cc_dst), 8 - (1 << (3 + 2))) & 0x80; + of = cf << 11; + return cf | pf | af | zf | sf | of; +} + + + +target_ulong helper_rcll(target_ulong t0, target_ulong t1) +{ + int count, eflags; + target_ulong src; + target_long res; + + count = t1 & 0x1f; + + + + + + if (count) { + eflags = helper_cc_compute_all((env->cc_op)); + t0 &= 0xffffffff; + src = t0; + res = (t0 << count) | ((target_ulong)(eflags & 0x0001) << (count - 1)); + if (count > 1) + res |= t0 >> ((1 << (3 + 2)) + 1 - count); + t0 = res; + env->cc_tmp = (eflags & ~(0x0001 | 0x0800)) | + (lshift(src ^ t0, 11 - ((1 << (3 + 2)) - 1)) & 0x0800) | + ((src >> ((1 << (3 + 2)) - count)) & 0x0001); + } else { + env->cc_tmp = -1; + } + return t0; +} + +target_ulong helper_rcrl(target_ulong t0, target_ulong t1) +{ + int count, eflags; + target_ulong src; + target_long res; + + count = t1 & 0x1f; + + + + + + if (count) { + eflags = helper_cc_compute_all((env->cc_op)); + t0 &= 0xffffffff; + src = t0; + res = (t0 >> count) | ((target_ulong)(eflags & 0x0001) << ((1 << (3 + 2)) - count)); + if (count > 1) + res |= t0 << ((1 << (3 + 2)) + 1 - count); + t0 = res; + env->cc_tmp = (eflags & ~(0x0001 | 0x0800)) | + (lshift(src ^ t0, 11 - ((1 << (3 + 2)) - 1)) & 0x0800) | + ((src >> (count - 1)) & 0x0001); + } else { + env->cc_tmp = -1; + } + return t0; +} +# 5709 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" 2 +# 5720 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" +target_ulong helper_bsf(target_ulong t0) +{ + int count; + target_ulong res; + + res = t0; + count = 0; + while ((res & 1) == 0) { + count++; + res >>= 1; + } + return count; +} + +target_ulong helper_lzcnt(target_ulong t0, int wordsize) +{ + int count; + target_ulong res, mask; + + if (wordsize > 0 && t0 == 0) { + return wordsize; + } + res = t0; + count = 32 - 1; + mask = (target_ulong)1 << (32 - 1); + while ((res & mask) == 0) { + count--; + res <<= 1; + } + if (wordsize > 0) { + return wordsize - 1 - count; + } + return count; +} + +target_ulong helper_bsr(target_ulong t0) +{ + return helper_lzcnt(t0, 0); +} + +static int compute_all_eflags(void) +{ + return (env->cc_src); +} + +static int compute_c_eflags(void) +{ + return (env->cc_src) & 0x0001; +} + +uint32_t helper_cc_compute_all(int op) +{ + switch (op) { + default: return 0; + + case CC_OP_EFLAGS: return compute_all_eflags(); + + case CC_OP_MULB: return compute_all_mulb(); + case CC_OP_MULW: return compute_all_mulw(); + case CC_OP_MULL: return compute_all_mull(); + + case CC_OP_ADDB: return compute_all_addb(); + case CC_OP_ADDW: return compute_all_addw(); + case CC_OP_ADDL: return compute_all_addl(); + + case CC_OP_ADCB: return compute_all_adcb(); + case CC_OP_ADCW: return compute_all_adcw(); + case CC_OP_ADCL: return compute_all_adcl(); + + case CC_OP_SUBB: return compute_all_subb(); + case CC_OP_SUBW: return compute_all_subw(); + case CC_OP_SUBL: return compute_all_subl(); + + case CC_OP_SBBB: return compute_all_sbbb(); + case CC_OP_SBBW: return compute_all_sbbw(); + case CC_OP_SBBL: return compute_all_sbbl(); + + case CC_OP_LOGICB: return compute_all_logicb(); + case CC_OP_LOGICW: return compute_all_logicw(); + case CC_OP_LOGICL: return compute_all_logicl(); + + case CC_OP_INCB: return compute_all_incb(); + case CC_OP_INCW: return compute_all_incw(); + case CC_OP_INCL: return compute_all_incl(); + + case CC_OP_DECB: return compute_all_decb(); + case CC_OP_DECW: return compute_all_decw(); + case CC_OP_DECL: return compute_all_decl(); + + case CC_OP_SHLB: return compute_all_shlb(); + case CC_OP_SHLW: return compute_all_shlw(); + case CC_OP_SHLL: return compute_all_shll(); + + case CC_OP_SARB: return compute_all_sarb(); + case CC_OP_SARW: return compute_all_sarw(); + case CC_OP_SARL: return compute_all_sarl(); +# 5838 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + } +} + +uint32_t cpu_cc_compute_all(CPUX86State *env1, int op) +{ + CPUX86State *saved_env; + uint32_t ret; + + saved_env = env; + env = env1; + ret = helper_cc_compute_all(op); + env = saved_env; + return ret; +} + +uint32_t helper_cc_compute_c(int op) +{ + switch (op) { + default: return 0; + + case CC_OP_EFLAGS: return compute_c_eflags(); + + case CC_OP_MULB: return compute_c_mull(); + case CC_OP_MULW: return compute_c_mull(); + case CC_OP_MULL: return compute_c_mull(); + + case CC_OP_ADDB: return compute_c_addb(); + case CC_OP_ADDW: return compute_c_addw(); + case CC_OP_ADDL: return compute_c_addl(); + + case CC_OP_ADCB: return compute_c_adcb(); + case CC_OP_ADCW: return compute_c_adcw(); + case CC_OP_ADCL: return compute_c_adcl(); + + case CC_OP_SUBB: return compute_c_subb(); + case CC_OP_SUBW: return compute_c_subw(); + case CC_OP_SUBL: return compute_c_subl(); + + case CC_OP_SBBB: return compute_c_sbbb(); + case CC_OP_SBBW: return compute_c_sbbw(); + case CC_OP_SBBL: return compute_c_sbbl(); + + case CC_OP_LOGICB: return compute_c_logicb(); + case CC_OP_LOGICW: return compute_c_logicw(); + case CC_OP_LOGICL: return compute_c_logicl(); + + case CC_OP_INCB: return compute_c_incl(); + case CC_OP_INCW: return compute_c_incl(); + case CC_OP_INCL: return compute_c_incl(); + + case CC_OP_DECB: return compute_c_incl(); + case CC_OP_DECW: return compute_c_incl(); + case CC_OP_DECL: return compute_c_incl(); + + case CC_OP_SHLB: return compute_c_shlb(); + case CC_OP_SHLW: return compute_c_shlw(); + case CC_OP_SHLL: return compute_c_shll(); + + case CC_OP_SARB: return compute_c_sarl(); + case CC_OP_SARW: return compute_c_sarl(); + case CC_OP_SARL: return compute_c_sarl(); +# 5921 "/var/tmp/portage/app-emulation/qemu-kvm-1.1.1-r3/work/qemu-kvm-1.1.1/target-i386/op_helper.c" + } +}