Login
[x]
Log in using an account from:
Fedora Account System
Red Hat Associate
Red Hat Customer
Or login using a Red Hat Bugzilla account
Forgot Password
Login:
Hide Forgot
Create an Account
Red Hat Bugzilla – Attachment 309006 Details for
Bug 450967
bad code produced under -O0 -ftest-coverage
[?]
New
Simple Search
Advanced Search
My Links
Browse
Requests
Reports
Current State
Search
Tabular reports
Graphical reports
Duplicates
Other Reports
User Changes
Plotly Reports
Bug Status
Bug Severity
Non-Defaults
|
Product Dashboard
Help
Page Help!
Bug Writing Guidelines
What's new
Browser Support Policy
5.0.4.rh83 Release notes
FAQ
Guides index
User guide
Web Services
Contact
Legal
This site requires JavaScript to be enabled to function correctly, please enable it.
test case preprocessed C source
regset-x86_64.i (text/plain), 77.78 KB, created by
Roland McGrath
on 2008-06-11 22:19:56 UTC
(
hide
)
Description:
test case preprocessed C source
Filename:
MIME Type:
Creator:
Roland McGrath
Created:
2008-06-11 22:19:56 UTC
Size:
77.78 KB
patch
obsolete
># 1 "../../../redhat/ntrace/utrace/regset-x86_64.c" ># 1 "/home/roland/build/ntrace/utrace//" ># 1 "<built-in>" ># 1 "<command-line>" ># 1 "../../../redhat/ntrace/utrace/regset-x86_64.c" ># 1 "../../../redhat/ntrace/utrace/include/linux/sched.h" 1 > > > > > ># 1 "../../../redhat/ntrace/utrace/include/linux/kernel.h" 1 > > ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 152 "/usr/lib/gcc/x86_64-redhat-linux/4.3.0/include/stddef.h" 3 4 >typedef long int ptrdiff_t; ># 214 "/usr/lib/gcc/x86_64-redhat-linux/4.3.0/include/stddef.h" 3 4 >typedef long unsigned int size_t; ># 326 "/usr/lib/gcc/x86_64-redhat-linux/4.3.0/include/stddef.h" 3 4 >typedef int wchar_t; ># 4 "../../../redhat/ntrace/utrace/include/linux/kernel.h" 2 ># 1 "/usr/include/sys/types.h" 1 3 4 ># 27 "/usr/include/sys/types.h" 3 4 ># 1 "/usr/include/features.h" 1 3 4 ># 335 "/usr/include/features.h" 3 4 ># 1 "/usr/include/sys/cdefs.h" 1 3 4 ># 360 "/usr/include/sys/cdefs.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 361 "/usr/include/sys/cdefs.h" 2 3 4 ># 336 "/usr/include/features.h" 2 3 4 ># 359 "/usr/include/features.h" 3 4 ># 1 "/usr/include/gnu/stubs.h" 1 3 4 > > > ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 5 "/usr/include/gnu/stubs.h" 2 3 4 > > > > ># 1 "/usr/include/gnu/stubs-64.h" 1 3 4 ># 10 "/usr/include/gnu/stubs.h" 2 3 4 ># 360 "/usr/include/features.h" 2 3 4 ># 28 "/usr/include/sys/types.h" 2 3 4 > > > ># 1 "/usr/include/bits/types.h" 1 3 4 ># 28 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 29 "/usr/include/bits/types.h" 2 3 4 > > >typedef unsigned char __u_char; >typedef unsigned short int __u_short; >typedef unsigned int __u_int; >typedef unsigned long int __u_long; > > >typedef signed char __int8_t; >typedef unsigned char __uint8_t; >typedef signed short int __int16_t; >typedef unsigned short int __uint16_t; >typedef signed int __int32_t; >typedef unsigned int __uint32_t; > >typedef signed long int __int64_t; >typedef unsigned long int __uint64_t; > > > > > > > >typedef long int __quad_t; >typedef unsigned long int __u_quad_t; ># 131 "/usr/include/bits/types.h" 3 4 ># 1 "/usr/include/bits/typesizes.h" 1 3 4 ># 132 "/usr/include/bits/types.h" 2 3 4 > > >typedef unsigned long int __dev_t; >typedef unsigned int __uid_t; >typedef unsigned int __gid_t; >typedef unsigned long int __ino_t; >typedef unsigned long int __ino64_t; >typedef unsigned int __mode_t; >typedef unsigned long int __nlink_t; >typedef long int __off_t; >typedef long int __off64_t; >typedef int __pid_t; >typedef struct { int __val[2]; } __fsid_t; >typedef long int __clock_t; >typedef unsigned long int __rlim_t; >typedef unsigned long int __rlim64_t; >typedef unsigned int __id_t; >typedef long int __time_t; >typedef unsigned int __useconds_t; >typedef long int __suseconds_t; > >typedef int __daddr_t; >typedef long int __swblk_t; >typedef int __key_t; > > >typedef int __clockid_t; > > >typedef void * __timer_t; > > >typedef long int __blksize_t; > > > > >typedef long int __blkcnt_t; >typedef long int __blkcnt64_t; > > >typedef unsigned long int __fsblkcnt_t; >typedef unsigned long int __fsblkcnt64_t; > > >typedef unsigned long int __fsfilcnt_t; >typedef unsigned long int __fsfilcnt64_t; > >typedef long int __ssize_t; > > > >typedef __off64_t __loff_t; >typedef __quad_t *__qaddr_t; >typedef char *__caddr_t; > > >typedef long int __intptr_t; > > >typedef unsigned int __socklen_t; ># 32 "/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 __ino_t ino_t; > > > > > > >typedef __ino64_t ino64_t; > > > > >typedef __dev_t dev_t; > > > > >typedef __gid_t gid_t; > > > > >typedef __mode_t mode_t; > > > > >typedef __nlink_t nlink_t; > > > > >typedef __uid_t uid_t; > > > > > >typedef __off_t off_t; > > > > > > >typedef __off64_t off64_t; > > > > >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 ># 59 "/usr/include/time.h" 3 4 > > >typedef __clock_t clock_t; > > > ># 75 "/usr/include/time.h" 3 4 > > >typedef __time_t time_t; > > > ># 93 "/usr/include/time.h" 3 4 >typedef __clockid_t clockid_t; ># 105 "/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/x86_64-redhat-linux/4.3.0/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__))); ># 217 "/usr/include/sys/types.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 ># 218 "/usr/include/sys/types.h" 2 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 ># 121 "/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 ># 69 "/usr/include/bits/time.h" 3 4 >struct timeval > { > __time_t tv_sec; > __suseconds_t tv_usec; > }; ># 47 "/usr/include/sys/select.h" 2 3 4 ># 55 "/usr/include/sys/select.h" 3 4 >typedef long int __fd_mask; ># 67 "/usr/include/sys/select.h" 3 4 >typedef struct > { > > > > __fd_mask fds_bits[1024 / (8 * sizeof (__fd_mask))]; > > > > > > } fd_set; > > > > > > >typedef __fd_mask fd_mask; ># 99 "/usr/include/sys/select.h" 3 4 > ># 109 "/usr/include/sys/select.h" 3 4 >extern int select (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > struct timeval *__restrict __timeout); ># 121 "/usr/include/sys/select.h" 3 4 >extern int pselect (int __nfds, fd_set *__restrict __readfds, > fd_set *__restrict __writefds, > fd_set *__restrict __exceptfds, > const struct timespec *__restrict __timeout, > const __sigset_t *__restrict __sigmask); > > > ># 221 "/usr/include/sys/types.h" 2 3 4 > > ># 1 "/usr/include/sys/sysmacros.h" 1 3 4 ># 30 "/usr/include/sys/sysmacros.h" 3 4 >__extension__ >extern unsigned int gnu_dev_major (unsigned long long int __dev) > __attribute__ ((__nothrow__)); >__extension__ >extern unsigned int gnu_dev_minor (unsigned long long int __dev) > __attribute__ ((__nothrow__)); >__extension__ >extern unsigned long long int gnu_dev_makedev (unsigned int __major, > unsigned int __minor) > __attribute__ ((__nothrow__)); ># 224 "/usr/include/sys/types.h" 2 3 4 > > > > >typedef __blksize_t blksize_t; > > > > > > >typedef __blkcnt_t blkcnt_t; > > > >typedef __fsblkcnt_t fsblkcnt_t; > > > >typedef __fsfilcnt_t fsfilcnt_t; ># 262 "/usr/include/sys/types.h" 3 4 >typedef __blkcnt64_t blkcnt64_t; >typedef __fsblkcnt64_t fsblkcnt64_t; >typedef __fsfilcnt64_t fsfilcnt64_t; > > > > > ># 1 "/usr/include/bits/pthreadtypes.h" 1 3 4 ># 23 "/usr/include/bits/pthreadtypes.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 24 "/usr/include/bits/pthreadtypes.h" 2 3 4 ># 50 "/usr/include/bits/pthreadtypes.h" 3 4 >typedef unsigned long int pthread_t; > > >typedef union >{ > char __size[56]; > long int __align; >} pthread_attr_t; > > > >typedef struct __pthread_internal_list >{ > struct __pthread_internal_list *__prev; > struct __pthread_internal_list *__next; >} __pthread_list_t; ># 76 "/usr/include/bits/pthreadtypes.h" 3 4 >typedef union >{ > struct __pthread_mutex_s > { > int __lock; > unsigned int __count; > int __owner; > > unsigned int __nusers; > > > > int __kind; > > int __spins; > __pthread_list_t __list; ># 101 "/usr/include/bits/pthreadtypes.h" 3 4 > } __data; > char __size[40]; > long int __align; >} pthread_mutex_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_mutexattr_t; > > > > >typedef union >{ > struct > { > int __lock; > unsigned int __futex; > __extension__ unsigned long long int __total_seq; > __extension__ unsigned long long int __wakeup_seq; > __extension__ unsigned long long int __woken_seq; > void *__mutex; > unsigned int __nwaiters; > unsigned int __broadcast_seq; > } __data; > char __size[48]; > __extension__ long long int __align; >} pthread_cond_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_condattr_t; > > > >typedef unsigned int pthread_key_t; > > > >typedef int pthread_once_t; > > > > > >typedef union >{ > > struct > { > int __lock; > unsigned int __nr_readers; > unsigned int __readers_wakeup; > unsigned int __writer_wakeup; > unsigned int __nr_readers_queued; > unsigned int __nr_writers_queued; > int __writer; > int __shared; > unsigned long int __pad1; > unsigned long int __pad2; > > > unsigned int __flags; > } __data; ># 187 "/usr/include/bits/pthreadtypes.h" 3 4 > char __size[56]; > long int __align; >} pthread_rwlock_t; > >typedef union >{ > char __size[8]; > long int __align; >} pthread_rwlockattr_t; > > > > > >typedef volatile int pthread_spinlock_t; > > > > >typedef union >{ > char __size[32]; > long int __align; >} pthread_barrier_t; > >typedef union >{ > char __size[4]; > int __align; >} pthread_barrierattr_t; ># 271 "/usr/include/sys/types.h" 2 3 4 > > > ># 5 "../../../redhat/ntrace/utrace/include/linux/kernel.h" 2 > >int printk(const char *fmt, ...) > __attribute__ ((format (printf, 1, 2))); ># 7 "../../../redhat/ntrace/utrace/include/linux/sched.h" 2 ># 1 "../../../redhat/ntrace/utrace/include/linux/utrace.h" 1 > > > ># 1 "/usr/include/inttypes.h" 1 3 4 ># 28 "/usr/include/inttypes.h" 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; > > > >typedef unsigned long int uint64_t; ># 66 "/usr/include/stdint.h" 3 4 >typedef signed char int_least8_t; >typedef short int int_least16_t; >typedef int int_least32_t; > >typedef long int int_least64_t; > > > > > > >typedef unsigned char uint_least8_t; >typedef unsigned short int uint_least16_t; >typedef unsigned int uint_least32_t; > >typedef unsigned long int uint_least64_t; ># 91 "/usr/include/stdint.h" 3 4 >typedef signed char int_fast8_t; > >typedef long int int_fast16_t; >typedef long int int_fast32_t; >typedef long int int_fast64_t; ># 104 "/usr/include/stdint.h" 3 4 >typedef unsigned char uint_fast8_t; > >typedef unsigned long int uint_fast16_t; >typedef unsigned long int uint_fast32_t; >typedef unsigned long int uint_fast64_t; ># 120 "/usr/include/stdint.h" 3 4 >typedef long int intptr_t; > > >typedef unsigned long int uintptr_t; ># 135 "/usr/include/stdint.h" 3 4 >typedef long int intmax_t; >typedef unsigned long int uintmax_t; ># 29 "/usr/include/inttypes.h" 2 3 4 > > > > > > >typedef int __gwchar_t; ># 274 "/usr/include/inttypes.h" 3 4 > > > > > >typedef struct > { > long int quot; > long int rem; > } imaxdiv_t; ># 298 "/usr/include/inttypes.h" 3 4 >extern intmax_t imaxabs (intmax_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern imaxdiv_t imaxdiv (intmax_t __numer, intmax_t __denom) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > >extern intmax_t strtoimax (__const char *__restrict __nptr, > char **__restrict __endptr, int __base) __attribute__ ((__nothrow__)); > > >extern uintmax_t strtoumax (__const char *__restrict __nptr, > char ** __restrict __endptr, int __base) __attribute__ ((__nothrow__)); > > >extern intmax_t wcstoimax (__const __gwchar_t *__restrict __nptr, > __gwchar_t **__restrict __endptr, int __base) > __attribute__ ((__nothrow__)); > > >extern uintmax_t wcstoumax (__const __gwchar_t *__restrict __nptr, > __gwchar_t ** __restrict __endptr, int __base) > __attribute__ ((__nothrow__)); ># 442 "/usr/include/inttypes.h" 3 4 > ># 5 "../../../redhat/ntrace/utrace/include/linux/utrace.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); ># 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 ># 75 "/usr/include/signal.h" 3 4 >typedef void (*__sighandler_t) (int); > > > > >extern __sighandler_t __sysv_signal (int __sig, __sighandler_t __handler) > __attribute__ ((__nothrow__)); > >extern __sighandler_t sysv_signal (int __sig, __sighandler_t __handler) > __attribute__ ((__nothrow__)); > > > > > > > >extern __sighandler_t signal (int __sig, __sighandler_t __handler) > __attribute__ ((__nothrow__)); ># 104 "/usr/include/signal.h" 3 4 > > > > > >extern __sighandler_t bsd_signal (int __sig, __sighandler_t __handler) > __attribute__ ((__nothrow__)); > > > > > > >extern int kill (__pid_t __pid, int __sig) __attribute__ ((__nothrow__)); > > > > > > >extern int killpg (__pid_t __pgrp, int __sig) __attribute__ ((__nothrow__)); > > > > >extern int raise (int __sig) __attribute__ ((__nothrow__)); > > > > >extern __sighandler_t ssignal (int __sig, __sighandler_t __handler) > __attribute__ ((__nothrow__)); >extern int gsignal (int __sig) __attribute__ ((__nothrow__)); > > > > >extern void psignal (int __sig, __const char *__s); ># 153 "/usr/include/signal.h" 3 4 >extern int __sigpause (int __sig_or_mask, int __is_sig); ># 162 "/usr/include/signal.h" 3 4 >extern int sigpause (int __sig) __asm__ ("__xpg_sigpause"); ># 181 "/usr/include/signal.h" 3 4 >extern int sigblock (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); > > >extern int sigsetmask (int __mask) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); > > >extern int siggetmask (void) __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); ># 196 "/usr/include/signal.h" 3 4 >typedef __sighandler_t sighandler_t; > > > > >typedef __sighandler_t sig_t; > > > > > > > ># 1 "/usr/include/time.h" 1 3 4 ># 210 "/usr/include/signal.h" 2 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)) - 4)]; > > > 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)) - 4)]; > > > > __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 > >}; ># 213 "/usr/include/signal.h" 2 3 4 > > > >extern int sigemptyset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int sigfillset (sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int sigaddset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int sigdelset (sigset_t *__set, int __signo) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int sigismember (__const sigset_t *__set, int __signo) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern int sigisemptyset (__const sigset_t *__set) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int sigandset (sigset_t *__set, __const sigset_t *__left, > __const sigset_t *__right) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2, 3))); > > >extern int sigorset (sigset_t *__set, __const sigset_t *__left, > __const sigset_t *__right) __attribute__ ((__nothrow__)) __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); > }; ># 247 "/usr/include/signal.h" 2 3 4 > > >extern int sigprocmask (int __how, __const sigset_t *__restrict __set, > sigset_t *__restrict __oset) __attribute__ ((__nothrow__)); > > > > > > >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__)); > > >extern int sigpending (sigset_t *__set) __attribute__ ((__nothrow__)) __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__)); ># 304 "/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; > > }; ># 328 "/usr/include/signal.h" 3 4 >extern int sigvec (int __sig, __const struct sigvec *__vec, > struct sigvec *__ovec) __attribute__ ((__nothrow__)); > > > ># 1 "/usr/include/bits/sigcontext.h" 1 3 4 ># 26 "/usr/include/bits/sigcontext.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 27 "/usr/include/bits/sigcontext.h" 2 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 >{ > __uint32_t element[4]; >}; ># 109 "/usr/include/bits/sigcontext.h" 3 4 >struct _fpstate >{ > > __uint16_t cwd; > __uint16_t swd; > __uint16_t ftw; > __uint16_t fop; > __uint64_t rip; > __uint64_t rdp; > __uint32_t mxcsr; > __uint32_t mxcr_mask; > struct _fpxreg _st[8]; > struct _xmmreg _xmm[16]; > __uint32_t padding[24]; >}; > >struct sigcontext >{ > unsigned long r8; > unsigned long r9; > unsigned long r10; > unsigned long r11; > unsigned long r12; > unsigned long r13; > unsigned long r14; > unsigned long r15; > unsigned long rdi; > unsigned long rsi; > unsigned long rbp; > unsigned long rbx; > unsigned long rdx; > unsigned long rax; > unsigned long rcx; > unsigned long rsp; > unsigned long rip; > unsigned long eflags; > unsigned short cs; > unsigned short gs; > unsigned short fs; > unsigned short __pad0; > unsigned long err; > unsigned long trapno; > unsigned long oldmask; > unsigned long cr2; > struct _fpstate * fpstate; > unsigned long __reserved1 [8]; >}; ># 334 "/usr/include/signal.h" 2 3 4 > > >extern int sigreturn (struct sigcontext *__scp) __attribute__ ((__nothrow__)); > > > > > > ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 344 "/usr/include/signal.h" 2 3 4 > > > > >extern int siginterrupt (int __sig, int __interrupt) __attribute__ ((__nothrow__)); > ># 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; ># 351 "/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/wordsize.h" 1 3 4 ># 25 "/usr/include/sys/ucontext.h" 2 3 4 ># 33 "/usr/include/sys/ucontext.h" 3 4 >typedef long int greg_t; > > > > > >typedef greg_t gregset_t[23]; > > > >enum >{ > REG_R8 = 0, > > REG_R9, > > REG_R10, > > REG_R11, > > REG_R12, > > REG_R13, > > REG_R14, > > REG_R15, > > REG_RDI, > > REG_RSI, > > REG_RBP, > > REG_RBX, > > REG_RDX, > > REG_RAX, > > REG_RCX, > > REG_RSP, > > REG_RIP, > > REG_EFL, > > REG_CSGSFS, > > REG_ERR, > > REG_TRAPNO, > > REG_OLDMASK, > > REG_CR2 > >}; > > >struct _libc_fpxreg >{ > unsigned short int significand[4]; > unsigned short int exponent; > unsigned short int padding[3]; >}; > >struct _libc_xmmreg >{ > __uint32_t element[4]; >}; > >struct _libc_fpstate >{ > > __uint16_t cwd; > __uint16_t swd; > __uint16_t ftw; > __uint16_t fop; > __uint64_t rip; > __uint64_t rdp; > __uint32_t mxcsr; > __uint32_t mxcr_mask; > struct _libc_fpxreg _st[8]; > struct _libc_xmmreg _xmm[16]; > __uint32_t padding[24]; >}; > > >typedef struct _libc_fpstate *fpregset_t; > > >typedef struct > { > gregset_t gregs; > > fpregset_t fpregs; > unsigned long __reserved1 [8]; >} 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; ># 354 "/usr/include/signal.h" 2 3 4 > > > > > >extern int sigstack (struct sigstack *__ss, struct sigstack *__oss) > __attribute__ ((__nothrow__)) __attribute__ ((__deprecated__)); > > > >extern int sigaltstack (__const struct sigaltstack *__restrict __ss, > struct sigaltstack *__restrict __oss) __attribute__ ((__nothrow__)); > > > > > > > >extern int sighold (int __sig) __attribute__ ((__nothrow__)); > > >extern int sigrelse (int __sig) __attribute__ ((__nothrow__)); > > >extern int sigignore (int __sig) __attribute__ ((__nothrow__)); > > >extern __sighandler_t sigset (int __sig, __sighandler_t __disp) __attribute__ ((__nothrow__)); > > > > > > ># 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__)); > > >extern int pthread_kill (pthread_t __threadid, int __signo) __attribute__ ((__nothrow__)); ># 390 "/usr/include/signal.h" 2 3 4 > > > > > > >extern int __libc_current_sigrtmin (void) __attribute__ ((__nothrow__)); > >extern int __libc_current_sigrtmax (void) __attribute__ ((__nothrow__)); > > > > ># 10 "../../../redhat/ntrace/utrace/include/linux/utrace.h" 2 > >struct task_struct; >struct linux_binprm; >struct k_sigaction; >struct pt_regs; >struct user_regset; >struct user_regset_view; ># 29 "../../../redhat/ntrace/utrace/include/linux/utrace.h" >enum utrace_events { > _UTRACE_EVENT_QUIESCE, > _UTRACE_EVENT_REAP, > _UTRACE_EVENT_CLONE, > _UTRACE_EVENT_VFORK_DONE, > _UTRACE_EVENT_EXEC, > _UTRACE_EVENT_EXIT, > _UTRACE_EVENT_DEATH, > _UTRACE_EVENT_SYSCALL_ENTRY, > _UTRACE_EVENT_SYSCALL_EXIT, > _UTRACE_EVENT_SIGNAL, > _UTRACE_EVENT_SIGNAL_IGN, > _UTRACE_EVENT_SIGNAL_STOP, > _UTRACE_EVENT_SIGNAL_TERM, > _UTRACE_EVENT_SIGNAL_CORE, > _UTRACE_EVENT_JCTL, > _UTRACE_NEVENTS >}; ># 153 "../../../redhat/ntrace/utrace/include/linux/utrace.h" >struct utrace_attached_engine >{ > const struct utrace_engine_ops *ops; > void *data; > > unsigned long flags; >}; > > >struct utrace_engine_ops >{ ># 184 "../../../redhat/ntrace/utrace/include/linux/utrace.h" > uint32_t (*report_clone)(struct utrace_attached_engine *engine, > struct task_struct *parent, > unsigned long clone_flags, > struct task_struct *child); > > > > > > > uint32_t (*report_vfork_done)(struct utrace_attached_engine *engine, > struct task_struct *parent, pid_t child_pid); > > > > > > > > uint32_t (*report_quiesce)(struct utrace_attached_engine *engine, > struct task_struct *tsk); ># 216 "../../../redhat/ntrace/utrace/include/linux/utrace.h" > uint32_t (*report_signal)(struct utrace_attached_engine *engine, > struct task_struct *tsk, > struct pt_regs *regs, > uint32_t action, siginfo_t *info, > const struct k_sigaction *orig_ka, > struct k_sigaction *return_ka); > > > > > > > uint32_t (*report_jctl)(struct utrace_attached_engine *engine, > struct task_struct *task, > int notify, int type); > > > > > > uint32_t (*report_exec)(struct utrace_attached_engine *engine, > struct task_struct *tsk, > const struct linux_binprm *bprm, > struct pt_regs *regs); > > > > > > uint32_t (*report_syscall_entry)(struct utrace_attached_engine *engine, > struct task_struct *tsk, > struct pt_regs *regs); > > > > > > uint32_t (*report_syscall_exit)(struct utrace_attached_engine *engine, > struct task_struct *tsk, > struct pt_regs *regs); ># 264 "../../../redhat/ntrace/utrace/include/linux/utrace.h" > uint32_t (*report_exit)(struct utrace_attached_engine *engine, > struct task_struct *tsk, > long orig_code, long *code); ># 286 "../../../redhat/ntrace/utrace/include/linux/utrace.h" > uint32_t (*report_death)(struct utrace_attached_engine *engine, > struct task_struct *tsk); > > > > > > > > void (*report_reap)(struct utrace_attached_engine *engine, > struct task_struct *tsk); ># 310 "../../../redhat/ntrace/utrace/include/linux/utrace.h" > int (*allow_access_process_vm)(struct utrace_attached_engine *engine, > struct task_struct *target, > struct task_struct *caller); ># 322 "../../../redhat/ntrace/utrace/include/linux/utrace.h" > int (*unsafe_exec)(struct utrace_attached_engine *engine, > struct task_struct *target); ># 340 "../../../redhat/ntrace/utrace/include/linux/utrace.h" > struct task_struct *(*tracer_task)(struct utrace_attached_engine *, > struct task_struct *target); >}; ># 354 "../../../redhat/ntrace/utrace/include/linux/utrace.h" >struct utrace_attached_engine *utrace_attach(struct task_struct *target, > int flags, > const struct utrace_engine_ops *, > void *data); ># 375 "../../../redhat/ntrace/utrace/include/linux/utrace.h" >int utrace_detach(struct task_struct *target, > struct utrace_attached_engine *engine); ># 401 "../../../redhat/ntrace/utrace/include/linux/utrace.h" >int utrace_set_flags(struct task_struct *target, > struct utrace_attached_engine *engine, > unsigned long flags); ># 412 "../../../redhat/ntrace/utrace/include/linux/utrace.h" >int utrace_inject_signal(struct task_struct *target, > struct utrace_attached_engine *engine, > uint32_t action, siginfo_t *info, > const struct k_sigaction *ka); ># 426 "../../../redhat/ntrace/utrace/include/linux/utrace.h" >const struct user_regset *utrace_regset(struct task_struct *target, > struct utrace_attached_engine *, > const struct user_regset_view *, > int which); ># 8 "../../../redhat/ntrace/utrace/include/linux/sched.h" 2 ># 1 "../../../redhat/ntrace/utrace/include/linux/pid.h" 1 > > > > > >enum pid_type >{ > PIDTYPE_PID, >}; > >struct pid >{ >}; > >extern struct pid *find_pid(int nr); >extern pid_t pid_nr(struct pid *pid); ># 9 "../../../redhat/ntrace/utrace/include/linux/sched.h" 2 ># 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 ># 10 "../../../redhat/ntrace/utrace/include/linux/sched.h" 2 ># 1 "../../../redhat/ntrace/utrace/include/linux/list.h" 1 > > > ># 1 "/usr/include/linux/stddef.h" 1 3 4 ># 5 "../../../redhat/ntrace/utrace/include/linux/list.h" 2 >static inline void prefetch(const void *x) {;} ># 1 "../../../redhat/ntrace/utrace/include/asm/system.h" 1 ># 7 "../../../redhat/ntrace/utrace/include/linux/list.h" 2 ># 26 "../../../redhat/ntrace/utrace/include/linux/list.h" >struct list_head { > struct list_head *next, *prev; >}; > > > > > > >static inline void INIT_LIST_HEAD(struct list_head *list) >{ > list->next = list; > list->prev = list; >} > > > > > > > >static inline void __list_add(struct list_head *new, > struct list_head *prev, > struct list_head *next) >{ > next->prev = new; > new->next = next; > new->prev = prev; > prev->next = new; >} ># 65 "../../../redhat/ntrace/utrace/include/linux/list.h" >static inline void list_add(struct list_head *new, struct list_head *head) >{ > __list_add(new, head, head->next); >} ># 78 "../../../redhat/ntrace/utrace/include/linux/list.h" >static inline void list_add_tail(struct list_head *new, struct list_head *head) >{ > __list_add(new, head->prev, head); >} > > > > > > > >static inline void __list_add_rcu(struct list_head * new, > struct list_head * prev, struct list_head * next) >{ > new->next = next; > new->prev = prev; > do { } while(0); > next->prev = new; > prev->next = new; >} ># 115 "../../../redhat/ntrace/utrace/include/linux/list.h" >static inline void list_add_rcu(struct list_head *new, struct list_head *head) >{ > __list_add_rcu(new, head, head->next); >} ># 136 "../../../redhat/ntrace/utrace/include/linux/list.h" >static inline void list_add_tail_rcu(struct list_head *new, > struct list_head *head) >{ > __list_add_rcu(new, head->prev, head); >} ># 149 "../../../redhat/ntrace/utrace/include/linux/list.h" >static inline void __list_del(struct list_head * prev, struct list_head * next) >{ > next->prev = prev; > prev->next = next; >} > > > > > > > >static inline void list_del(struct list_head *entry) >{ > __list_del(entry->prev, entry->next); > entry->next = ((void *) 0x00100100); > entry->prev = ((void *) 0x00200200); >} ># 192 "../../../redhat/ntrace/utrace/include/linux/list.h" >static inline void list_del_rcu(struct list_head *entry) >{ > __list_del(entry->prev, entry->next); > entry->prev = ((void *) 0x00200200); >} > > > > > > > >static inline void list_replace(struct list_head *old, > struct list_head *new) >{ > new->next = old->next; > new->next->prev = new; > new->prev = old->prev; > new->prev->next = new; >} > >static inline void list_replace_init(struct list_head *old, > struct list_head *new) >{ > list_replace(old, new); > INIT_LIST_HEAD(old); >} ># 228 "../../../redhat/ntrace/utrace/include/linux/list.h" >static inline void list_replace_rcu(struct list_head *old, > struct list_head *new) >{ > new->next = old->next; > new->prev = old->prev; > do { } while(0); > new->next->prev = new; > new->prev->next = new; > old->prev = ((void *) 0x00200200); >} > > > > > >static inline void list_del_init(struct list_head *entry) >{ > __list_del(entry->prev, entry->next); > INIT_LIST_HEAD(entry); >} > > > > > > >static inline void list_move(struct list_head *list, struct list_head *head) >{ > __list_del(list->prev, list->next); > list_add(list, head); >} > > > > > > >static inline void list_move_tail(struct list_head *list, > struct list_head *head) >{ > __list_del(list->prev, list->next); > list_add_tail(list, head); >} > > > > > >static inline int list_empty(const struct list_head *head) >{ > return head->next == head; >} ># 294 "../../../redhat/ntrace/utrace/include/linux/list.h" >static inline int list_empty_careful(const struct list_head *head) >{ > struct list_head *next = head->next; > return (next == head) && (next == head->prev); >} > >static inline void __list_splice(struct list_head *list, > struct list_head *head) >{ > struct list_head *first = list->next; > struct list_head *last = list->prev; > struct list_head *at = head->next; > > first->prev = head; > head->next = first; > > last->next = at; > at->prev = last; >} > > > > > > >static inline void list_splice(struct list_head *list, struct list_head *head) >{ > if (!list_empty(list)) > __list_splice(list, head); >} ># 332 "../../../redhat/ntrace/utrace/include/linux/list.h" >static inline void list_splice_init(struct list_head *list, > struct list_head *head) >{ > if (!list_empty(list)) { > __list_splice(list, head); > INIT_LIST_HEAD(list); > } >} ># 586 "../../../redhat/ntrace/utrace/include/linux/list.h" >struct hlist_head { > struct hlist_node *first; >}; > >struct hlist_node { > struct hlist_node *next, **pprev; >}; > > > > >static inline void INIT_HLIST_NODE(struct hlist_node *h) >{ > h->next = ((void *)0); > h->pprev = ((void *)0); >} > >static inline int hlist_unhashed(const struct hlist_node *h) >{ > return !h->pprev; >} > >static inline int hlist_empty(const struct hlist_head *h) >{ > return !h->first; >} > >static inline void __hlist_del(struct hlist_node *n) >{ > struct hlist_node *next = n->next; > struct hlist_node **pprev = n->pprev; > *pprev = next; > if (next) > next->pprev = pprev; >} > >static inline void hlist_del(struct hlist_node *n) >{ > __hlist_del(n); > n->next = ((void *) 0x00100100); > n->pprev = ((void *) 0x00200200); >} ># 648 "../../../redhat/ntrace/utrace/include/linux/list.h" >static inline void hlist_del_rcu(struct hlist_node *n) >{ > __hlist_del(n); > n->pprev = ((void *) 0x00200200); >} > >static inline void hlist_del_init(struct hlist_node *n) >{ > if (!hlist_unhashed(n)) { > __hlist_del(n); > INIT_HLIST_NODE(n); > } >} ># 669 "../../../redhat/ntrace/utrace/include/linux/list.h" >static inline void hlist_replace_rcu(struct hlist_node *old, > struct hlist_node *new) >{ > struct hlist_node *next = old->next; > > new->next = next; > new->pprev = old->pprev; > do { } while(0); > if (next) > new->next->pprev = &new->next; > *new->pprev = new; > old->pprev = ((void *) 0x00200200); >} > >static inline void hlist_add_head(struct hlist_node *n, struct hlist_head *h) >{ > struct hlist_node *first = h->first; > n->next = first; > if (first) > first->pprev = &n->next; > h->first = n; > n->pprev = &h->first; >} ># 713 "../../../redhat/ntrace/utrace/include/linux/list.h" >static inline void hlist_add_head_rcu(struct hlist_node *n, > struct hlist_head *h) >{ > struct hlist_node *first = h->first; > n->next = first; > n->pprev = &h->first; > do { } while(0); > if (first) > first->pprev = &n->next; > h->first = n; >} > > >static inline void hlist_add_before(struct hlist_node *n, > struct hlist_node *next) >{ > n->pprev = next->pprev; > n->next = next; > next->pprev = &n->next; > *(n->pprev) = n; >} > >static inline void hlist_add_after(struct hlist_node *n, > struct hlist_node *next) >{ > next->next = n->next; > n->next = next; > next->pprev = &n->next; > > if(next->next) > next->next->pprev = &next->next; >} ># 764 "../../../redhat/ntrace/utrace/include/linux/list.h" >static inline void hlist_add_before_rcu(struct hlist_node *n, > struct hlist_node *next) >{ > n->pprev = next->pprev; > n->next = next; > do { } while(0); > next->pprev = &n->next; > *(n->pprev) = n; >} ># 792 "../../../redhat/ntrace/utrace/include/linux/list.h" >static inline void hlist_add_after_rcu(struct hlist_node *prev, > struct hlist_node *n) >{ > n->next = prev->next; > n->pprev = &prev->next; > do { } while(0); > prev->next = n; > if (n->next) > n->next->pprev = &n->next; >} ># 11 "../../../redhat/ntrace/utrace/include/linux/sched.h" 2 ># 1 "../../../redhat/ntrace/utrace/include/linux/rcupdate.h" 1 ># 11 "../../../redhat/ntrace/utrace/include/linux/rcupdate.h" >struct rcu_head { > struct rcu_head *next; > void (*func)(struct rcu_head *head); >}; ># 34 "../../../redhat/ntrace/utrace/include/linux/rcupdate.h" >extern void rcu_read_lock(void); >extern void rcu_read_unlock(void); > >extern void call_rcu(struct rcu_head *head, > void (*func)(struct rcu_head *head)); ># 12 "../../../redhat/ntrace/utrace/include/linux/sched.h" 2 ># 1 "../../../redhat/ntrace/utrace/include/asm/atomic.h" 1 > > > > > >typedef int atomic_t; ># 13 "../../../redhat/ntrace/utrace/include/linux/sched.h" 2 > ># 1 "../config.h" 1 ># 15 "../../../redhat/ntrace/utrace/include/linux/sched.h" 2 ># 1 "../../../redhat/ntrace/utrace/include/linux/../../ptrace-x86_64.h" 1 > > > > ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.3.0/include/stdbool.h" 1 3 4 ># 6 "../../../redhat/ntrace/utrace/include/linux/../../ptrace-x86_64.h" 2 > > ># 1 "/usr/include/asm/ptrace.h" 1 3 4 > > > ># 1 "/usr/include/asm/ptrace-abi.h" 1 3 4 ># 85 "/usr/include/asm/ptrace-abi.h" 3 4 ># 1 "/usr/include/asm/types.h" 1 3 4 > > > > > >typedef unsigned short umode_t; > > > > > > >typedef __signed__ char __s8; >typedef unsigned char __u8; > >typedef __signed__ short __s16; >typedef unsigned short __u16; > >typedef __signed__ int __s32; >typedef unsigned int __u32; > > > > > > > >typedef __signed__ long long __s64; >typedef unsigned long long __u64; ># 86 "/usr/include/asm/ptrace-abi.h" 2 3 4 > > > > >struct ptrace_bts_config { > > __u32 size; > > __u32 flags; > > __u32 signal; > > __u32 bts_size; >}; ># 5 "/usr/include/asm/ptrace.h" 2 3 4 ># 38 "/usr/include/asm/ptrace.h" 3 4 >struct pt_regs { > unsigned long r15; > unsigned long r14; > unsigned long r13; > unsigned long r12; > unsigned long rbp; > unsigned long rbx; > > unsigned long r11; > unsigned long r10; > unsigned long r9; > unsigned long r8; > unsigned long rax; > unsigned long rcx; > unsigned long rdx; > unsigned long rsi; > unsigned long rdi; > unsigned long orig_rax; > > > unsigned long rip; > unsigned long cs; > unsigned long eflags; > unsigned long rsp; > unsigned long ss; > >}; ># 9 "../../../redhat/ntrace/utrace/include/linux/../../ptrace-x86_64.h" 2 ># 1 "/usr/include/asm/ldt.h" 1 3 4 ># 20 "/usr/include/asm/ldt.h" 3 4 >struct user_desc { > unsigned int entry_number; > unsigned int base_addr; > unsigned int limit; > unsigned int seg_32bit:1; > unsigned int contents:2; > unsigned int read_exec_only:1; > unsigned int limit_in_pages:1; > unsigned int seg_not_present:1; > unsigned int useable:1; > > unsigned int lm:1; > >}; ># 10 "../../../redhat/ntrace/utrace/include/linux/../../ptrace-x86_64.h" 2 > > ># 1 "/usr/include/sys/user.h" 1 3 4 ># 26 "/usr/include/sys/user.h" 3 4 ># 1 "/usr/include/bits/wordsize.h" 1 3 4 ># 27 "/usr/include/sys/user.h" 2 3 4 > > > >struct user_fpregs_struct >{ > __uint16_t cwd; > __uint16_t swd; > __uint16_t ftw; > __uint16_t fop; > __uint64_t rip; > __uint64_t rdp; > __uint32_t mxcsr; > __uint32_t mxcsr_mask; > __uint32_t st_space[32]; > __uint32_t xmm_space[64]; > __uint32_t padding[24]; >}; > >struct user_regs_struct >{ > unsigned long r15; > unsigned long r14; > unsigned long r13; > unsigned long r12; > unsigned long rbp; > unsigned long rbx; > unsigned long r11; > unsigned long r10; > unsigned long r9; > unsigned long r8; > unsigned long rax; > unsigned long rcx; > unsigned long rdx; > unsigned long rsi; > unsigned long rdi; > unsigned long orig_rax; > unsigned long rip; > unsigned long cs; > unsigned long eflags; > unsigned long rsp; > unsigned long ss; > unsigned long fs_base; > unsigned long gs_base; > unsigned long ds; > unsigned long es; > unsigned long fs; > unsigned long gs; >}; > >struct user >{ > struct user_regs_struct regs; > int u_fpvalid; > struct user_fpregs_struct i387; > unsigned long int u_tsize; > unsigned long int u_dsize; > unsigned long int u_ssize; > unsigned long start_code; > unsigned long start_stack; > long int signal; > int reserved; > struct user_regs_struct* u_ar0; > struct user_fpregs_struct* u_fpstate; > unsigned long int magic; > char u_comm [32]; > unsigned long int u_debugreg [8]; >}; ># 13 "../../../redhat/ntrace/utrace/include/linux/../../ptrace-x86_64.h" 2 ># 23 "../../../redhat/ntrace/utrace/include/linux/../../ptrace-x86_64.h" >static inline _Bool >sigtrap_maybe_singlestep (siginfo_t *info) >{ > > return info->si_code == TRAP_BRKPT; >} > > > > > > >struct regset_data >{ > union > { > struct user_regs_struct genregs; > struct pt_regs pt_regs; > }; > struct user_fpregs_struct fpregs; > uint32_t dbregs[8]; > uint64_t fsgs[2]; > struct user_desc tls[3]; > > enum { bits_unknown = 0, bits_64, bits_32 } bits; >}; > > >static inline void >task_regset_data_exec (struct regset_data *regs) >{ > regs->bits = bits_unknown; >} ># 73 "../../../redhat/ntrace/utrace/include/linux/../../ptrace-x86_64.h" >extern const struct user_regset_view utrace_x86_64_native; > > >extern struct pt_regs *task_pt_regs (struct task_struct *task); ># 16 "../../../redhat/ntrace/utrace/include/linux/sched.h" 2 > > > > >struct task_struct >{ > atomic_t usage; > pid_t pid, tgid; > struct list_head thread_group; > struct task_struct *parent; > unsigned long int utrace_flags; > > struct pid pids[0]; > > struct utrace_attached_engine engine; > > int waitstatus; > struct task_struct *last_child; > long exit_code; > > uint_fast16_t flags; > uint_fast8_t ptrace_o_set; > uint_fast8_t ptrace_o_want; > > struct task_struct *next_dirty; > struct task_struct *hnext; > > struct list_head requeued_signals; > > > uint_fast32_t regs_cached[1]; ># 60 "../../../redhat/ntrace/utrace/include/linux/sched.h" > union > { > struct regset_data regs; > char data[sizeof (struct regset_data)]; > } regset_cache; >}; > > > >static inline struct task_struct *next_thread(const struct task_struct *p) >{ > return ({ const typeof( ((struct task_struct *)0)->thread_group ) *__mptr = (({ typeof(p->thread_group.next) _________p1 = p->thread_group.next; (_________p1); })); (struct task_struct *)( (char *)__mptr - __builtin_offsetof (struct task_struct, thread_group) );}); > >} > >static inline int thread_group_empty(struct task_struct *p) >{ > return list_empty(&p->thread_group); >} > >extern struct task_struct *current; > >extern struct task_struct *find_task_by_pid(pid_t pid); > > > >extern struct task_struct *next_task(struct task_struct *); >extern struct task_struct init_task; > > > > >extern int kill_pgrp(struct pid *pid, int sig, int priv); >extern pid_t task_pgrp_nr(struct task_struct *tsk); >extern struct pid *task_pgrp(struct task_struct *tsk); > >extern void _warn_on (const char *file, int line, const char *cond); ># 2 "../../../redhat/ntrace/utrace/regset-x86_64.c" 2 ># 1 "../../../redhat/ntrace/utrace/include/linux/regset.h" 1 ># 16 "../../../redhat/ntrace/utrace/include/linux/regset.h" ># 1 "../../../redhat/ntrace/utrace/include/linux/compiler.h" 1 ># 17 "../../../redhat/ntrace/utrace/include/linux/regset.h" 2 ># 1 "/usr/include/linux/types.h" 1 3 4 > > > > ># 1 "/usr/include/linux/posix_types.h" 1 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_64.h" 1 3 4 ># 10 "/usr/include/asm/posix_types_64.h" 3 4 >typedef unsigned long __kernel_ino_t; >typedef unsigned int __kernel_mode_t; >typedef unsigned long __kernel_nlink_t; >typedef long __kernel_off_t; >typedef int __kernel_pid_t; >typedef int __kernel_ipc_pid_t; >typedef unsigned int __kernel_uid_t; >typedef unsigned int __kernel_gid_t; >typedef unsigned long __kernel_size_t; >typedef long __kernel_ssize_t; >typedef long __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 long long __kernel_loff_t; > > >typedef struct { > int val[2]; >} __kernel_fsid_t; > >typedef unsigned short __kernel_old_uid_t; >typedef unsigned short __kernel_old_gid_t; >typedef __kernel_uid_t __kernel_uid32_t; >typedef __kernel_gid_t __kernel_gid32_t; > >typedef unsigned long __kernel_old_dev_t; ># 5 "/usr/include/asm/posix_types.h" 2 3 4 ># 48 "/usr/include/linux/posix_types.h" 2 3 4 ># 6 "/usr/include/linux/types.h" 2 3 4 ># 153 "/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; > > >struct ustat { > __kernel_daddr_t f_tfree; > __kernel_ino_t f_tinode; > char f_fname[6]; > char f_fpack[6]; >}; ># 18 "../../../redhat/ntrace/utrace/include/linux/regset.h" 2 >struct task_struct; >struct user_regset; >struct user_ptr; ># 38 "../../../redhat/ntrace/utrace/include/linux/regset.h" >typedef int user_regset_active_fn(struct task_struct *target, > const struct user_regset *regset); ># 57 "../../../redhat/ntrace/utrace/include/linux/regset.h" >typedef int user_regset_get_fn(struct task_struct *target, > const struct user_regset *regset, > unsigned int pos, unsigned int count, > void *kbuf, struct user_ptr *ubuf); ># 78 "../../../redhat/ntrace/utrace/include/linux/regset.h" >typedef int user_regset_set_fn(struct task_struct *target, > const struct user_regset *regset, > unsigned int pos, unsigned int count, > const void *kbuf, const struct user_ptr *ubuf); ># 104 "../../../redhat/ntrace/utrace/include/linux/regset.h" >typedef int user_regset_writeback_fn(struct task_struct *target, > const struct user_regset *regset, > int immediate); ># 153 "../../../redhat/ntrace/utrace/include/linux/regset.h" >struct user_regset { > user_regset_get_fn *get; > user_regset_set_fn *set; > user_regset_active_fn *active; > user_regset_writeback_fn *writeback; > unsigned int n; > unsigned int size; > unsigned int align; > unsigned int bias; > unsigned int core_note_type; > > > > > uint_fast8_t ptrace_peek, ptrace_poke; > uint_fast8_t cache_bit; > unsigned int ptrace_offset:31; > unsigned int ptrace_offset_scaled:1; > unsigned int cache_offset; > uint_fast32_t cache_mbz_mask; >}; ># 193 "../../../redhat/ntrace/utrace/include/linux/regset.h" >struct user_regset_view { > const char *name; > const struct user_regset *regsets; > unsigned int n; > __u32 e_flags; > __u16 e_machine; > __u8 ei_osabi; >}; ># 214 "../../../redhat/ntrace/utrace/include/linux/regset.h" >const struct user_regset_view *task_user_regset_view(struct task_struct *tsk); > > > > > >extern user_regset_get_fn ptrace_getregs_block; >extern user_regset_set_fn ptrace_setregs_block; > > >extern user_regset_get_fn ptrace_getregs_single; >extern user_regset_set_fn ptrace_setregs_single; > > >int do_ptrace (struct task_struct *task, > int cmd, unsigned long int addr, unsigned long int data); ># 3 "../../../redhat/ntrace/utrace/regset-x86_64.c" 2 ># 1 "/usr/include/elf.h" 1 3 4 ># 26 "/usr/include/elf.h" 3 4 > > > > > > > >typedef uint16_t Elf32_Half; >typedef uint16_t Elf64_Half; > > >typedef uint32_t Elf32_Word; >typedef int32_t Elf32_Sword; >typedef uint32_t Elf64_Word; >typedef int32_t Elf64_Sword; > > >typedef uint64_t Elf32_Xword; >typedef int64_t Elf32_Sxword; >typedef uint64_t Elf64_Xword; >typedef int64_t Elf64_Sxword; > > >typedef uint32_t Elf32_Addr; >typedef uint64_t Elf64_Addr; > > >typedef uint32_t Elf32_Off; >typedef uint64_t Elf64_Off; > > >typedef uint16_t Elf32_Section; >typedef uint16_t Elf64_Section; > > >typedef Elf32_Half Elf32_Versym; >typedef Elf64_Half Elf64_Versym; > > > > > > >typedef struct >{ > unsigned char e_ident[(16)]; > Elf32_Half e_type; > Elf32_Half e_machine; > Elf32_Word e_version; > Elf32_Addr e_entry; > Elf32_Off e_phoff; > Elf32_Off e_shoff; > Elf32_Word e_flags; > Elf32_Half e_ehsize; > Elf32_Half e_phentsize; > Elf32_Half e_phnum; > Elf32_Half e_shentsize; > Elf32_Half e_shnum; > Elf32_Half e_shstrndx; >} Elf32_Ehdr; > >typedef struct >{ > unsigned char e_ident[(16)]; > Elf64_Half e_type; > Elf64_Half e_machine; > Elf64_Word e_version; > Elf64_Addr e_entry; > Elf64_Off e_phoff; > Elf64_Off e_shoff; > Elf64_Word e_flags; > Elf64_Half e_ehsize; > Elf64_Half e_phentsize; > Elf64_Half e_phnum; > Elf64_Half e_shentsize; > Elf64_Half e_shnum; > Elf64_Half e_shstrndx; >} Elf64_Ehdr; ># 268 "/usr/include/elf.h" 3 4 >typedef struct >{ > Elf32_Word sh_name; > Elf32_Word sh_type; > Elf32_Word sh_flags; > Elf32_Addr sh_addr; > Elf32_Off sh_offset; > Elf32_Word sh_size; > Elf32_Word sh_link; > Elf32_Word sh_info; > Elf32_Word sh_addralign; > Elf32_Word sh_entsize; >} Elf32_Shdr; > >typedef struct >{ > Elf64_Word sh_name; > Elf64_Word sh_type; > Elf64_Xword sh_flags; > Elf64_Addr sh_addr; > Elf64_Off sh_offset; > Elf64_Xword sh_size; > Elf64_Word sh_link; > Elf64_Word sh_info; > Elf64_Xword sh_addralign; > Elf64_Xword sh_entsize; >} Elf64_Shdr; ># 377 "/usr/include/elf.h" 3 4 >typedef struct >{ > Elf32_Word st_name; > Elf32_Addr st_value; > Elf32_Word st_size; > unsigned char st_info; > unsigned char st_other; > Elf32_Section st_shndx; >} Elf32_Sym; > >typedef struct >{ > Elf64_Word st_name; > unsigned char st_info; > unsigned char st_other; > Elf64_Section st_shndx; > Elf64_Addr st_value; > Elf64_Xword st_size; >} Elf64_Sym; > > > > >typedef struct >{ > Elf32_Half si_boundto; > Elf32_Half si_flags; >} Elf32_Syminfo; > >typedef struct >{ > Elf64_Half si_boundto; > Elf64_Half si_flags; >} Elf64_Syminfo; ># 490 "/usr/include/elf.h" 3 4 >typedef struct >{ > Elf32_Addr r_offset; > Elf32_Word r_info; >} Elf32_Rel; > > > > > > >typedef struct >{ > Elf64_Addr r_offset; > Elf64_Xword r_info; >} Elf64_Rel; > > > >typedef struct >{ > Elf32_Addr r_offset; > Elf32_Word r_info; > Elf32_Sword r_addend; >} Elf32_Rela; > >typedef struct >{ > Elf64_Addr r_offset; > Elf64_Xword r_info; > Elf64_Sxword r_addend; >} Elf64_Rela; ># 535 "/usr/include/elf.h" 3 4 >typedef struct >{ > Elf32_Word p_type; > Elf32_Off p_offset; > Elf32_Addr p_vaddr; > Elf32_Addr p_paddr; > Elf32_Word p_filesz; > Elf32_Word p_memsz; > Elf32_Word p_flags; > Elf32_Word p_align; >} Elf32_Phdr; > >typedef struct >{ > Elf64_Word p_type; > Elf64_Word p_flags; > Elf64_Off p_offset; > Elf64_Addr p_vaddr; > Elf64_Addr p_paddr; > Elf64_Xword p_filesz; > Elf64_Xword p_memsz; > Elf64_Xword p_align; >} Elf64_Phdr; ># 620 "/usr/include/elf.h" 3 4 >typedef struct >{ > Elf32_Sword d_tag; > union > { > Elf32_Word d_val; > Elf32_Addr d_ptr; > } d_un; >} Elf32_Dyn; > >typedef struct >{ > Elf64_Sxword d_tag; > union > { > Elf64_Xword d_val; > Elf64_Addr d_ptr; > } d_un; >} Elf64_Dyn; ># 787 "/usr/include/elf.h" 3 4 >typedef struct >{ > Elf32_Half vd_version; > Elf32_Half vd_flags; > Elf32_Half vd_ndx; > Elf32_Half vd_cnt; > Elf32_Word vd_hash; > Elf32_Word vd_aux; > Elf32_Word vd_next; > >} Elf32_Verdef; > >typedef struct >{ > Elf64_Half vd_version; > Elf64_Half vd_flags; > Elf64_Half vd_ndx; > Elf64_Half vd_cnt; > Elf64_Word vd_hash; > Elf64_Word vd_aux; > Elf64_Word vd_next; > >} Elf64_Verdef; ># 829 "/usr/include/elf.h" 3 4 >typedef struct >{ > Elf32_Word vda_name; > Elf32_Word vda_next; > >} Elf32_Verdaux; > >typedef struct >{ > Elf64_Word vda_name; > Elf64_Word vda_next; > >} Elf64_Verdaux; > > > > >typedef struct >{ > Elf32_Half vn_version; > Elf32_Half vn_cnt; > Elf32_Word vn_file; > > Elf32_Word vn_aux; > Elf32_Word vn_next; > >} Elf32_Verneed; > >typedef struct >{ > Elf64_Half vn_version; > Elf64_Half vn_cnt; > Elf64_Word vn_file; > > Elf64_Word vn_aux; > Elf64_Word vn_next; > >} Elf64_Verneed; ># 876 "/usr/include/elf.h" 3 4 >typedef struct >{ > Elf32_Word vna_hash; > Elf32_Half vna_flags; > Elf32_Half vna_other; > Elf32_Word vna_name; > Elf32_Word vna_next; > >} Elf32_Vernaux; > >typedef struct >{ > Elf64_Word vna_hash; > Elf64_Half vna_flags; > Elf64_Half vna_other; > Elf64_Word vna_name; > Elf64_Word vna_next; > >} Elf64_Vernaux; ># 910 "/usr/include/elf.h" 3 4 >typedef struct >{ > uint32_t a_type; > union > { > uint32_t a_val; > > > > } a_un; >} Elf32_auxv_t; > >typedef struct >{ > uint64_t a_type; > union > { > uint64_t a_val; > > > > } a_un; >} Elf64_auxv_t; ># 988 "/usr/include/elf.h" 3 4 >typedef struct >{ > Elf32_Word n_namesz; > Elf32_Word n_descsz; > Elf32_Word n_type; >} Elf32_Nhdr; > >typedef struct >{ > Elf64_Word n_namesz; > Elf64_Word n_descsz; > Elf64_Word n_type; >} Elf64_Nhdr; ># 1049 "/usr/include/elf.h" 3 4 >typedef struct >{ > Elf32_Xword m_value; > Elf32_Word m_info; > Elf32_Word m_poffset; > Elf32_Half m_repeat; > Elf32_Half m_stride; >} Elf32_Move; > >typedef struct >{ > Elf64_Xword m_value; > Elf64_Xword m_info; > Elf64_Xword m_poffset; > Elf64_Half m_repeat; > Elf64_Half m_stride; >} Elf64_Move; ># 1396 "/usr/include/elf.h" 3 4 >typedef union >{ > struct > { > Elf32_Word gt_current_g_value; > Elf32_Word gt_unused; > } gt_header; > struct > { > Elf32_Word gt_g_value; > Elf32_Word gt_bytes; > } gt_entry; >} Elf32_gptab; > > > >typedef struct >{ > Elf32_Word ri_gprmask; > Elf32_Word ri_cprmask[4]; > Elf32_Sword ri_gp_value; >} Elf32_RegInfo; > > > >typedef struct >{ > unsigned char kind; > > unsigned char size; > Elf32_Section section; > > Elf32_Word info; >} Elf_Options; ># 1472 "/usr/include/elf.h" 3 4 >typedef struct >{ > Elf32_Word hwp_flags1; > Elf32_Word hwp_flags2; >} Elf_Options_Hw; ># 1625 "/usr/include/elf.h" 3 4 >typedef struct >{ > Elf32_Word l_name; > Elf32_Word l_time_stamp; > Elf32_Word l_checksum; > Elf32_Word l_version; > Elf32_Word l_flags; >} Elf32_Lib; > >typedef struct >{ > Elf64_Word l_name; > Elf64_Word l_time_stamp; > Elf64_Word l_checksum; > Elf64_Word l_version; > Elf64_Word l_flags; >} Elf64_Lib; ># 1656 "/usr/include/elf.h" 3 4 >typedef Elf32_Addr Elf32_Conflict; ># 2649 "/usr/include/elf.h" 3 4 > ># 4 "../../../redhat/ntrace/utrace/regset-x86_64.c" 2 ># 1 "../../../redhat/ntrace/utrace/ptrace-x86_64.h" 1 ># 5 "../../../redhat/ntrace/utrace/regset-x86_64.c" 2 > > ># 1 "/usr/include/asm/prctl.h" 1 3 4 ># 8 "../../../redhat/ntrace/utrace/regset-x86_64.c" 2 ># 1 "/usr/include/linux/ptrace.h" 1 3 4 ># 9 "../../../redhat/ntrace/utrace/regset-x86_64.c" 2 > ># 1 "/usr/include/string.h" 1 3 4 ># 28 "/usr/include/string.h" 3 4 > > > > > ># 1 "/usr/lib/gcc/x86_64-redhat-linux/4.3.0/include/stddef.h" 1 3 4 ># 34 "/usr/include/string.h" 2 3 4 > > > > >extern void *memcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memmove (void *__dest, __const void *__src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memccpy (void *__restrict __dest, __const void *__restrict __src, > int __c, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern void *memset (void *__s, int __c, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int memcmp (__const void *__s1, __const void *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void *memchr (__const void *__s, int __c, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern void *rawmemchr (__const void *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > >extern void *memrchr (__const void *__s, int __c, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strcpy (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strcat (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strncat (char *__restrict __dest, __const char *__restrict __src, > size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcmp (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern int strncmp (__const char *__s1, __const char *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strcoll (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern size_t strxfrm (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > > > > ># 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; ># 119 "/usr/include/string.h" 2 3 4 > > >extern int strcoll_l (__const char *__s1, __const char *__s2, __locale_t __l) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern size_t strxfrm_l (char *__dest, __const char *__src, size_t __n, > __locale_t __l) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 4))); > > > > >extern char *strdup (__const char *__s) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *strndup (__const char *__string, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__malloc__)) __attribute__ ((__nonnull__ (1))); ># 165 "/usr/include/string.h" 3 4 > > >extern char *strchr (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > >extern char *strrchr (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strchrnul (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern size_t strcspn (__const char *__s, __const char *__reject) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern size_t strspn (__const char *__s, __const char *__accept) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strpbrk (__const char *__s, __const char *__accept) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > >extern char *strstr (__const char *__haystack, __const char *__needle) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *strtok (char *__restrict __s, __const char *__restrict __delim) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > > >extern char *__strtok_r (char *__restrict __s, > __const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); > >extern char *strtok_r (char *__restrict __s, __const char *__restrict __delim, > char **__restrict __save_ptr) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2, 3))); > > > > >extern char *strcasestr (__const char *__haystack, __const char *__needle) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > > >extern void *memmem (__const void *__haystack, size_t __haystacklen, > __const void *__needle, size_t __needlelen) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 3))); > > > >extern void *__mempcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern void *mempcpy (void *__restrict __dest, > __const void *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern size_t strlen (__const char *__s) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern size_t strnlen (__const char *__string, size_t __maxlen) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > > > >extern char *strerror (int __errnum) __attribute__ ((__nothrow__)); > ># 281 "/usr/include/string.h" 3 4 >extern char *strerror_r (int __errnum, char *__buf, size_t __buflen) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (2))); > > > > > >extern char *strerror_l (int __errnum, __locale_t __l) __attribute__ ((__nothrow__)); > > > > > >extern void __bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > >extern void bcopy (__const void *__src, void *__dest, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern void bzero (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern int bcmp (__const void *__s1, __const void *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *index (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > >extern char *rindex (__const char *__s, int __c) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1))); > > > >extern int ffs (int __i) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > >extern int ffsl (long int __l) __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > >__extension__ extern int ffsll (long long int __ll) > __attribute__ ((__nothrow__)) __attribute__ ((__const__)); > > > > >extern int strcasecmp (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern int strncasecmp (__const char *__s1, __const char *__s2, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > > > > >extern int strcasecmp_l (__const char *__s1, __const char *__s2, > __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 3))); > >extern int strncasecmp_l (__const char *__s1, __const char *__s2, > size_t __n, __locale_t __loc) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2, 4))); > > > > > >extern char *strsep (char **__restrict __stringp, > __const char *__restrict __delim) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > > >extern int strverscmp (__const char *__s1, __const char *__s2) > __attribute__ ((__nothrow__)) __attribute__ ((__pure__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strsignal (int __sig) __attribute__ ((__nothrow__)); > > >extern char *__stpcpy (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern char *stpcpy (char *__restrict __dest, __const char *__restrict __src) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > > >extern char *__stpncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); >extern char *stpncpy (char *__restrict __dest, > __const char *__restrict __src, size_t __n) > __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1, 2))); > > >extern char *strfry (char *__string) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > >extern void *memfrob (void *__s, size_t __n) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); > > > > > > >extern char *basename (__const char *__filename) __attribute__ ((__nothrow__)) __attribute__ ((__nonnull__ (1))); ># 432 "/usr/include/string.h" 3 4 > ># 11 "../../../redhat/ntrace/utrace/regset-x86_64.c" 2 ># 1 "/usr/include/assert.h" 1 3 4 ># 66 "/usr/include/assert.h" 3 4 > > > >extern void __assert_fail (__const char *__assertion, __const char *__file, > unsigned int __line, __const char *__function) > __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > >extern void __assert_perror_fail (int __errnum, __const char *__file, > unsigned int __line, > __const char *__function) > __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > > > >extern void __assert (const char *__assertion, const char *__file, int __line) > __attribute__ ((__nothrow__)) __attribute__ ((__noreturn__)); > > > ># 12 "../../../redhat/ntrace/utrace/regset-x86_64.c" 2 > > >struct user_i387_ia32_struct { > uint32_t cwd; > uint32_t swd; > uint32_t ftw; > uint32_t fip; > uint32_t fcs; > uint32_t foo; > uint32_t fos; > uint32_t st_space[20]; >}; > > >struct user32_fxsr_struct { > unsigned short cwd; > unsigned short swd; > unsigned short ftw; > unsigned short fop; > int fip; > int fcs; > int foo; > int fos; > int mxcsr; > int reserved; > int st_space[32]; > int xmm_space[32]; > int padding[56]; >}; > >struct user_regs_struct32 { > __u32 ebx, ecx, edx, esi, edi, ebp, eax; > unsigned short ds, __ds, es, __es; > unsigned short fs, __fs, gs, __gs; > __u32 orig_eax, eip; > unsigned short cs, __cs; > __u32 eflags, esp; > unsigned short ss, __ss; >}; > > >static struct user_fpregs_struct initial_fpregs = > { > .cwd = 0x37f, .mxcsr = 0x1f80 > }; > >static int >fpregs_active(struct task_struct *target, const struct user_regset *regset) >{ > if (!((target)->regs_cached[0] & (1U << (1)))) > { > int result = ptrace_getregs_block (target, regset, 0, 0, ((void *)0), ((void *)0)); > if (result != 0) > return result; > } > > initial_fpregs.mxcsr_mask = target->regset_cache.regs.fpregs.mxcsr_mask; > > if (!memcmp (&target->regset_cache.regs.fpregs, &initial_fpregs, > sizeof initial_fpregs)) > return 0; > return regset->n; >} > > > > >static int >tls_active(struct task_struct *target, const struct user_regset *regset) >{ > for (unsigned int i = 3; i > 0; --i) > { > const struct user_desc *const info = &target->regset_cache.regs.tls[i - 1]; > if (!((target)->regs_cached[0] & (1U << ((2 + 2) + i - 1)))) > { > struct user_desc dummy; > int result = ptrace_getregs_single (target, regset, > (i - 1) * sizeof dummy, > sizeof dummy, &dummy, ((void *)0)); > if (result != 0) > return result; > } > > if (info->base_addr | info->limit > | info->seg_32bit | info->contents > | (~info->read_exec_only & 1) | info->limit_in_pages > | (~info->seg_not_present & 1) | info->useable) > return i; > } > > return 0; >} ># 193 "../../../redhat/ntrace/utrace/regset-x86_64.c" >static const struct user_regset native_regsets[] = > { > { > .n = sizeof(struct user_regs_struct) / 8, .size = 8, .align = 8, > .get = ptrace_getregs_block, .set = ptrace_setregs_block, > .ptrace_peek = 12, .ptrace_poke = 13, .cache_bit = 0, .cache_offset = __builtin_offsetof (struct regset_data, genregs) > }, > { > .n = sizeof(struct user_fpregs_struct) / 8, > .size = 8, .align = 8, > .active = fpregs_active, > .get = ptrace_getregs_block, .set = ptrace_setregs_block, > .ptrace_peek = 14, .ptrace_poke = 15, .cache_bit = 1, .cache_offset = __builtin_offsetof (struct regset_data, fpregs) > }, > }; > >const struct user_regset_view utrace_x86_64_native = { > .name = "x86-64", .e_machine = 62, > .regsets = native_regsets, > .n = sizeof native_regsets / sizeof native_regsets[0], >}; > > > >static int >ia32_genregs_get(struct task_struct *target, > const struct user_regset *regset, > unsigned int pos, unsigned int count, > void *kbuf, struct user_ptr *ubuf) >{ > int result = ptrace_getregs_block (target, &native_regsets[0], > 0, 0, ((void *)0), ((void *)0)); > if (result != 0) > return result; > > union > { > struct user_regs_struct32 regs; > char data[sizeof (struct user_regs_struct32)]; > } u; > memset (&u, sizeof u, 0); > > > > u.regs.eax = target->regset_cache.regs.genregs.rax; > u.regs.ebx = target->regset_cache.regs.genregs.rbx; > u.regs.ecx = target->regset_cache.regs.genregs.rcx; > u.regs.edx = target->regset_cache.regs.genregs.rdx; > u.regs.edi = target->regset_cache.regs.genregs.rdi; > u.regs.esi = target->regset_cache.regs.genregs.rsi; > u.regs.ebp = target->regset_cache.regs.genregs.rbp; > u.regs.esp = target->regset_cache.regs.genregs.rsp; > u.regs.eip = target->regset_cache.regs.genregs.rip; > > > u.regs.cs = target->regset_cache.regs.genregs.cs; > u.regs.ds = target->regset_cache.regs.genregs.ds; > u.regs.es = target->regset_cache.regs.genregs.es; > u.regs.fs = target->regset_cache.regs.genregs.fs; > u.regs.gs = target->regset_cache.regs.genregs.gs; > u.regs.ss = target->regset_cache.regs.genregs.ss; > u.regs.eflags = target->regset_cache.regs.genregs.eflags; > > u.regs.orig_eax = target->regset_cache.regs.genregs.orig_rax; > > > memcpy (kbuf, &u.data[pos], count); > return 0; >} > >static int >ia32_genregs_set(struct task_struct *target, > const struct user_regset *regset, > unsigned int pos, unsigned int count, > const void *kbuf, const struct user_ptr *ubuf) >{ > union > { > struct user_regs_struct32 regs; > char data[sizeof (struct user_regs_struct32)]; > } u; > > if (pos != 0 || count != regset->size * regset->n) > { > > int result = ia32_genregs_get (target, regset, > 0, sizeof u.regs, &u.regs, ((void *)0)); > if (result != 0) > return result; > } > > > memcpy (&u.data[pos], kbuf, count); > > > ((target)->regs_cached[0] &= ~(1U << (0))); > > target->regset_cache.regs.genregs.rax = u.regs.eax; > target->regset_cache.regs.genregs.rbx = u.regs.ebx; > target->regset_cache.regs.genregs.rcx = u.regs.ecx; > target->regset_cache.regs.genregs.rdx = u.regs.edx; > target->regset_cache.regs.genregs.rdi = u.regs.edi; > target->regset_cache.regs.genregs.rsi = u.regs.esi; > target->regset_cache.regs.genregs.rbp = u.regs.ebp; > target->regset_cache.regs.genregs.rsp = u.regs.esp; > target->regset_cache.regs.genregs.rip = u.regs.eip; > > > target->regset_cache.regs.genregs.cs = u.regs.cs; > target->regset_cache.regs.genregs.ds = u.regs.ds; > target->regset_cache.regs.genregs.es = u.regs.es; > target->regset_cache.regs.genregs.fs = u.regs.fs; > target->regset_cache.regs.genregs.gs = u.regs.gs; > target->regset_cache.regs.genregs.ss = u.regs.ss; > target->regset_cache.regs.genregs.eflags = u.regs.eflags; > > target->regset_cache.regs.genregs.orig_rax = u.regs.orig_eax; > > > int result = do_ptrace (target, 13, 0l, (unsigned long int) > &target->regset_cache.regs.genregs); > if (result != 0) > return -result; > > ((target)->regs_cached[0] |= (1U << (0))); > > return 0; >} > >static int >ia32_fpregs_active(struct task_struct *target, > const struct user_regset *regset) >{ > int result = fpregs_active(target, &native_regsets[1]); > if (result > 0) > result = regset->n; > return result; >} > >static int >ia32_fpxregs_get(struct task_struct *target, > const struct user_regset *regset, > unsigned int pos, unsigned int count, > void *kbuf, struct user_ptr *ubuf) >{ > union > { > struct user32_fxsr_struct fxsr; > char data[sizeof (struct user32_fxsr_struct)]; > } u; > > > int result = ptrace_getregs_block (target, &native_regsets[1], > 0, sizeof u.fxsr, &u.fxsr, ((void *)0)); > if (result != 0) > return result; > result = ptrace_getregs_block (target, &native_regsets[0], 0, 0, ((void *)0), ((void *)0)); > if (result != 0) > return result; > > > u.fxsr.fcs = target->regset_cache.regs.genregs.cs; > u.fxsr.fos = target->regset_cache.regs.genregs.ds; > > > memcpy (kbuf, &u.data[pos], count); > return 0; >} > >static int >ia32_fpxregs_set(struct task_struct *target, > const struct user_regset *regset, > unsigned int pos, unsigned int count, > const void *kbuf, const struct user_ptr *ubuf) >{ > int result = ptrace_setregs_block (target, &native_regsets[1], > pos, count, kbuf, ubuf); > ((target)->regs_cached[0] &= ~(1U << (1))); > return result; >} > > >static inline unsigned short twd_i387_to_fxsr(unsigned short ftw) >{ > unsigned int tmp; > > > tmp = ~ftw; > tmp = (tmp | (tmp>>1)) & 0x5555; > > tmp = (tmp | (tmp >> 1)) & 0x3333; > tmp = (tmp | (tmp >> 2)) & 0x0f0f; > tmp = (tmp | (tmp >> 4)) & 0x00ff; > return tmp; >} > >static inline unsigned long twd_fxsr_to_i387(struct user_fpregs_struct *fxsave) >{ > struct _fpxreg *st = ((void *)0); > unsigned long tos = (fxsave->swd >> 11) & 7; > unsigned long ftw = (unsigned long) fxsave->ftw; > unsigned long tag; > unsigned long ret = 0xffff0000; > int i; > > > > for (i = 0 ; i < 8 ; i++) { > if (ftw & 0x1) { > st = ((void *)&(fxsave)->st_space + ((i - tos) & 7) * 16);; > > switch (st->exponent & 0x7fff) { > case 0x7fff: > tag = 2; > break; > case 0x0000: > if ( !st->significand[0] && > !st->significand[1] && > !st->significand[2] && > !st->significand[3] ) { > tag = 1; > } else { > tag = 2; > } > break; > default: > if (st->significand[3] & 0x8000) { > tag = 0; > } else { > tag = 2; > } > break; > } > } else { > tag = 3; > } > ret |= (tag << (2 * i)); > ftw = ftw >> 1; > } > return ret; >} > > >static int >ia32_fpregs_get(struct task_struct *target, > const struct user_regset *regset, > unsigned int pos, unsigned int count, > void *kbuf, struct user_ptr *ubuf) >{ > union > { > struct user_i387_ia32_struct i387; > char data[sizeof (struct user_i387_ia32_struct)]; > uint32_t words[sizeof (struct user_i387_ia32_struct) / 4]; > } u; > > int result = ptrace_getregs_block (target, &native_regsets[1], > 0, 0, ((void *)0), ((void *)0)); > if (result == 0) > result = ptrace_getregs_block (target, &native_regsets[0], > 0, 0, ((void *)0), ((void *)0)); > if (result != 0) > return result; > > > u.words[0] = target->regset_cache.regs.fpregs.cwd | 0xffff0000U; > u.words[1] = target->regset_cache.regs.fpregs.swd | 0xffff0000U; > u.words[2] = twd_fxsr_to_i387(&target->regset_cache.regs.fpregs); > u.words[3] = target->regset_cache.regs.fpregs.rip; > u.words[4] = (target->regset_cache.regs.genregs.cs > | ((uint32_t) target->regset_cache.regs.fpregs.fop << 16)); > u.words[5] = target->regset_cache.regs.fpregs.rdp; > u.words[6] = target->regset_cache.regs.genregs.ds | 0xffff0000U; > > struct _fpreg *to = (void *) &u.i387.st_space[0]; > const struct _fpxreg *from = (const struct _fpxreg *) > &target->regset_cache.regs.fpregs.st_space[0]; > for (unsigned int i = 0; i < 8; ++i) > memcpy (&to[i], &from[i], sizeof from[i]); > > > memcpy (kbuf, &u.data[pos], count); > return 0; >} > >static int >ia32_fpregs_set(struct task_struct *target, > const struct user_regset *regset, > unsigned int pos, unsigned int count, > const void *kbuf, const struct user_ptr *ubuf) >{ > union > { > struct user_i387_ia32_struct i387; > char data[sizeof (struct user_i387_ia32_struct)]; > uint32_t words[sizeof (struct user_i387_ia32_struct) / 4]; > } u; > > if (pos != 0 || count != regset->size * regset->n) > { > > int result = ia32_fpregs_get (target, regset, > 0, sizeof u.i387, &u.i387, ((void *)0)); > if (result != 0) > return result; > } > > > memcpy (&u.data[pos], kbuf, count); > > > ((target)->regs_cached[0] &= ~(1U << (1))); > target->regset_cache.regs.fpregs.cwd = u.words[0]; > target->regset_cache.regs.fpregs.swd = u.words[1]; > target->regset_cache.regs.fpregs.ftw = twd_i387_to_fxsr(u.words[2]); > target->regset_cache.regs.fpregs.rip = u.words[3]; > target->regset_cache.regs.fpregs.fop = u.words[4] >> 16; > target->regset_cache.regs.fpregs.rdp = u.words[5]; > > struct _fpxreg *to = (struct _fpxreg *) > &target->regset_cache.regs.fpregs.st_space[0]; > const struct _fpreg *from = (const void *) &u.i387.st_space[0]; > for (unsigned int i = 0; i < 8; ++i) > memcpy (&to[i], &from[i], sizeof to[i]); > > int result = ptrace_setregs_block (target, &native_regsets[1], > pos, count, kbuf, ubuf); > ((target)->regs_cached[0] &= ~(1U << (1))); > return result; >} > >static const struct user_regset ia32_regsets[] = { > { > .n = sizeof(struct user_regs_struct32)/4, > .size = 4, .align = 4, > .get = ia32_genregs_get, .set = ia32_genregs_set > }, > { > .n = sizeof(struct user_i387_ia32_struct) / 4, > .size = 4, .align = 4, > .active = ia32_fpregs_active, > .get = ia32_fpregs_get, .set = ia32_fpregs_set > }, > { > .n = sizeof(struct user32_fxsr_struct) / 4, > .size = 4, .align = 4, > .active = ia32_fpregs_active, > .get = ia32_fpxregs_get, .set = ia32_fpxregs_set > }, > { > .n = 3, > .bias = 12, > .size = sizeof(struct user_desc), .align = sizeof(struct user_desc), > .active = tls_active, > .get = ptrace_getregs_single, .set = ptrace_setregs_single, > .ptrace_peek = 25, .ptrace_poke = 26, .cache_bit = (2 + 2), .cache_offset = __builtin_offsetof (struct regset_data, tls), > .ptrace_offset_scaled = 1 > }, >}; >const struct user_regset_view utrace_ia32_view = { > .name = "i386", .e_machine = 3, > .regsets = ia32_regsets, > .n = sizeof ia32_regsets / sizeof ia32_regsets[0], >}; > > >const struct user_regset_view * >task_user_regset_view(struct task_struct *tsk) >{ > if (tsk != ((void *)0)) > { > if (tsk->regset_cache.regs.bits == bits_unknown) > { > > > > inline int fetch (uint64_t *addr) > { > return ptrace_getregs_block (tsk, &native_regsets[0], > __builtin_offsetof (struct user_regs_struct, fs_base), sizeof *addr, > > addr, ((void *)0)); > } > > uint64_t orig_addr; > if (fetch (&orig_addr) == 0) > { > if (orig_addr >= (1UL << 32)) > tsk->regset_cache.regs.bits = bits_64; > else > { > int result = do_ptrace (tsk, 6, > __builtin_offsetof (struct user_regs_struct, fs_base), > > 0x123UL << 32); > switch (result) > { > case 0: > > tsk->regset_cache.regs.bits = bits_64; > ((tsk)->regs_cached[0] &= ~(1U << (0))); > do_ptrace (tsk, 6, > __builtin_offsetof (struct user_regs_struct, fs_base), > orig_addr); > break; > > case 5: > > tsk->regset_cache.regs.bits = bits_32; > > default: > break; > } > } > } > } > > if (tsk->regset_cache.regs.bits == bits_32) > return &utrace_ia32_view; > } > > return &utrace_x86_64_native; >} > > >struct pt_regs * >task_pt_regs (struct task_struct *task) >{ > const struct user_regset *regset = &(&utrace_x86_64_native)->regsets[0]; > (*regset->get) (task, regset, 0, 0, ((void *)0), ((void *)0)); > (void) sizeof (char[(sizeof task->regset_cache.regs.pt_regs > <= sizeof task->regset_cache.regs.genregs) ? 1 : -1]); > return &task->regset_cache.regs.pt_regs; >} > >void tracehook_abort_syscall(struct pt_regs *regs) >{ > regs->orig_rax = -1; >} > >long tracehook_regs_syscall(struct pt_regs *regs) >{ > return regs->orig_rax; >}
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Raw
Actions:
View
Attachments on
bug 450967
: 309006