# 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" } }