]> granicus.if.org Git - strace/commitdiff
Move enum trace_event into a separate header
authorEugene Syromiatnikov <esyr@redhat.com>
Mon, 25 Dec 2017 22:39:40 +0000 (23:39 +0100)
committerEugene Syromyatnikov <evgsyr@gmail.com>
Wed, 3 Jan 2018 23:16:21 +0000 (00:16 +0100)
As it will have users outside strace.c in the future.

* trace_event.h (enum trace_event): Move it from...
* strace.c (enum trace_event): ...here.
(#include "trace_event.h"): New header, for enum trace_event.
* Makefile.am (strace_SOURCES): Add trace_event.h.

Makefile.am
strace.c
trace_event.h [new file with mode: 0644]

index 047327a43036fde0abab77ca439274f7945cee4b..34da3372c675ef1974ad6ba22684f3b68eaac509 100644 (file)
@@ -306,6 +306,7 @@ strace_SOURCES =    \
        term.c          \
        time.c          \
        times.c         \
+       trace_event.h   \
        truncate.c      \
        ubi.c           \
        ucopy.c         \
index 7491a2e994d5c9ae29cad1d18faa60113b048b47..0ee9b5e3ac99f0e82e9ddb9c21c9a38df9c0744b 100644 (file)
--- a/strace.c
+++ b/strace.c
@@ -50,6 +50,7 @@
 #include "scno.h"
 #include "ptrace.h"
 #include "printsiginfo.h"
+#include "trace_event.h"
 
 /* In some libc, these aren't declared. Do it ourself: */
 extern char **environ;
@@ -2191,64 +2192,6 @@ print_event_exit(struct tcb *tcp)
        line_ended();
 }
 
-enum trace_event {
-       /* Break the main loop. */
-       TE_BREAK,
-
-       /* Call next_event() again. */
-       TE_NEXT,
-
-       /* Restart the tracee with signal 0 and call next_event() again. */
-       TE_RESTART,
-
-       /*
-        * For all the events below, current_tcp is set to current tracee's
-        * tcb.  All the suggested actions imply that you want to continue
-        * tracing of the current tracee; alternatively, you can detach it.
-        */
-
-       /*
-        * Syscall entry or exit.
-        * Restart the tracee with signal 0, or with an injected signal number.
-        */
-       TE_SYSCALL_STOP,
-
-       /*
-        * Tracee received signal with number WSTOPSIG(*pstatus); signal info
-        * is written to *si.  Restart the tracee (with that signal number
-        * if you want to deliver it).
-        */
-       TE_SIGNAL_DELIVERY_STOP,
-
-       /*
-        * Tracee was killed by a signal with number WTERMSIG(*pstatus).
-        */
-       TE_SIGNALLED,
-
-       /*
-        * Tracee was stopped by a signal with number WSTOPSIG(*pstatus).
-        * Restart the tracee with that signal number.
-        */
-       TE_GROUP_STOP,
-
-       /*
-        * Tracee exited with status WEXITSTATUS(*pstatus).
-        */
-       TE_EXITED,
-
-       /*
-        * Tracee is going to perform execve().
-        * Restart the tracee with signal 0.
-        */
-       TE_STOP_BEFORE_EXECVE,
-
-       /*
-        * Tracee is going to terminate.
-        * Restart the tracee with signal 0.
-        */
-       TE_STOP_BEFORE_EXIT,
-};
-
 static enum trace_event
 next_event(int *pstatus, siginfo_t *si)
 {
diff --git a/trace_event.h b/trace_event.h
new file mode 100644 (file)
index 0000000..38883c8
--- /dev/null
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2017 The strace developers.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions
+ * are met:
+ * 1. Redistributions of source code must retain the above copyright
+ *    notice, this list of conditions and the following disclaimer.
+ * 2. Redistributions in binary form must reproduce the above copyright
+ *    notice, this list of conditions and the following disclaimer in the
+ *    documentation and/or other materials provided with the distribution.
+ * 3. The name of the author may not be used to endorse or promote products
+ *    derived from this software without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
+ * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
+ * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
+ * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+ * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ */
+
+#ifndef STRACE_TRACE_EVENT_H
+#define STRACE_TRACE_EVENT_H
+
+/* Possible trace event loop states. Returned by next_event() and dispatched by
+ * dispatch_event(). */
+enum trace_event {
+       /* Break the main loop. */
+       TE_BREAK,
+
+       /* Call next_event() again. */
+       TE_NEXT,
+
+       /* Restart the tracee with signal 0 and call next_event() again. */
+       TE_RESTART,
+
+       /*
+        * For all the events below, current_tcp is set to current tracee's
+        * tcb.  All the suggested actions imply that you want to continue
+        * tracing of the current tracee; alternatively, you can detach it.
+        */
+
+       /*
+        * Syscall entry or exit.
+        * Restart the tracee with signal 0, or with an injected signal number.
+        */
+       TE_SYSCALL_STOP,
+
+       /*
+        * Tracee received signal with number WSTOPSIG(*pstatus); signal info
+        * is written to *si.  Restart the tracee (with that signal number
+        * if you want to deliver it).
+        */
+       TE_SIGNAL_DELIVERY_STOP,
+
+       /*
+        * Tracee was killed by a signal with number WTERMSIG(*pstatus).
+        */
+       TE_SIGNALLED,
+
+       /*
+        * Tracee was stopped by a signal with number WSTOPSIG(*pstatus).
+        * Restart the tracee with that signal number.
+        */
+       TE_GROUP_STOP,
+
+       /*
+        * Tracee exited with status WEXITSTATUS(*pstatus).
+        */
+       TE_EXITED,
+
+       /*
+        * Tracee is going to perform execve().
+        * Restart the tracee with signal 0.
+        */
+       TE_STOP_BEFORE_EXECVE,
+
+       /*
+        * Tracee is going to terminate.
+        * Restart the tracee with signal 0.
+        */
+       TE_STOP_BEFORE_EXIT,
+};
+
+#endif /* !STRACE_TRACE_EVENT_H */