satyr  0.28
thread.h
Go to the documentation of this file.
1 /*
2  thread.h
3 
4  Copyright (C) 2013 Red Hat, Inc.
5 
6  This program is free software; you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation; either version 2 of the License, or
9  (at your option) any later version.
10 
11  This program is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License along
17  with this program; if not, write to the Free Software Foundation, Inc.,
18  51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
19 */
20 #ifndef SATYR_THREAD_H
21 #define SATYR_THREAD_H
22 
43 #ifdef __cplusplus
44 extern "C" {
45 #endif
46 
47 #include <stdbool.h>
48 
49 #include "report_type.h"
50 
51 struct sr_thread
52 {
53  enum sr_report_type type;
54 };
55 
60 {
61  /* Default hashing process.
62  */
63  SR_DUPHASH_NORMAL = 1 << 0,
64 
65  /* Return the plaintext that would be hashed. Useful mainly for debugging.
66  */
67  SR_DUPHASH_NOHASH = 1 << 1,
68 
69  /* Do not perform stacktrace normalization.
70  */
71  SR_DUPHASH_NONORMALIZE = 1 << 2,
72 
73  /* Hashing compatible with koops hashing in ABRT <= 2.1.10.
74  */
75  SR_DUPHASH_KOOPS_COMPAT = 1 << 3,
76 };
77 
81 struct sr_frame *
82 sr_thread_frames(struct sr_thread *thread);
83 
87 void
88 sr_thread_set_frames(struct sr_thread *thread, struct sr_frame *frames);
89 
93 int
94 sr_thread_frame_count(struct sr_thread *thread);
95 
100 int
101 sr_thread_cmp(struct sr_thread *t1, struct sr_thread *t2);
102 
106 struct sr_thread *
107 sr_thread_next(struct sr_thread *thread);
108 
112 void
113 sr_thread_set_next(struct sr_thread *cur, struct sr_thread *next);
114 
121 void
122 sr_thread_free(struct sr_thread *thread);
123 
130 bool
131 sr_thread_remove_frame(struct sr_thread *thread, struct sr_frame *frame);
132 
141 bool
142 sr_thread_remove_frames_above(struct sr_thread *thread, struct sr_frame *frame);
143 
147 struct sr_thread *
148 sr_thread_dup(struct sr_thread *thread);
149 
154 void
155 sr_thread_normalize(struct sr_thread *thread);
156 
169 char *
170 sr_thread_get_duphash(struct sr_thread *thread, int frames, char *prefix,
171  enum sr_duphash_flags flags);
172 
173 #ifdef __cplusplus
174 }
175 #endif
176 
177 #endif
struct sr_frame * sr_thread_frames(struct sr_thread *thread)
int sr_thread_frame_count(struct sr_thread *thread)
struct sr_thread * sr_thread_dup(struct sr_thread *thread)
void sr_thread_free(struct sr_thread *thread)
void sr_thread_normalize(struct sr_thread *thread)
Definition: frame.h:49
sr_duphash_flags
Definition: thread.h:59
bool sr_thread_remove_frame(struct sr_thread *thread, struct sr_frame *frame)
bool sr_thread_remove_frames_above(struct sr_thread *thread, struct sr_frame *frame)
void sr_thread_set_frames(struct sr_thread *thread, struct sr_frame *frames)
char * sr_thread_get_duphash(struct sr_thread *thread, int frames, char *prefix, enum sr_duphash_flags flags)
void sr_thread_set_next(struct sr_thread *cur, struct sr_thread *next)
struct sr_thread * sr_thread_next(struct sr_thread *thread)
int sr_thread_cmp(struct sr_thread *t1, struct sr_thread *t2)
Report type.