aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/suricata/src/tm-threads.c
diff options
context:
space:
mode:
authorAshlee Young <ashlee@wildernessvoice.com>2015-11-24 23:17:00 -0800
committerAshlee Young <ashlee@wildernessvoice.com>2015-11-24 23:17:00 -0800
commit43f0d5031db2a43ecdbee6f7dfda75cef6d4f56e (patch)
treef73f4185f5fe44cc44b823cb6137542be7edc9ef /framework/src/suricata/src/tm-threads.c
parent77ce3be7567bd01c66d8ee88a93b485666723501 (diff)
Added apache 2 license verbage
Change-Id: I6a0b484496f7f3ba77c3584f5ab5a1acf353b298 Signed-off-by: Ashlee Young <ashlee@wildernessvoice.com>
Diffstat (limited to 'framework/src/suricata/src/tm-threads.c')
-rw-r--r--framework/src/suricata/src/tm-threads.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/framework/src/suricata/src/tm-threads.c b/framework/src/suricata/src/tm-threads.c
index c6828b40..2b26404f 100644
--- a/framework/src/suricata/src/tm-threads.c
+++ b/framework/src/suricata/src/tm-threads.c
@@ -730,6 +730,7 @@ static inline TmSlot * _TmSlotSetFuncAppend(ThreadVars *tv, TmModule *tm, void *
* received a TM as arg, if it didn't exist */
slot->tm_id = TmModuleGetIDForTM(tm);
+ tv->tmm_flags |= tm->flags;
tv->cap_flags |= tm->cap_flags;
if (tv->tm_slots == NULL) {
@@ -2033,6 +2034,29 @@ ThreadVars *TmThreadsGetCallingThread(void)
return NULL;
}
+/**
+ * \brief returns a count of all the threads that match the flag
+ */
+uint32_t TmThreadCountThreadsByTmmFlags(uint8_t flags)
+{
+ ThreadVars *tv = NULL;
+ int i = 0;
+ uint32_t cnt = 0;
+
+ SCMutexLock(&tv_root_lock);
+ for (i = 0; i < TVT_MAX; i++) {
+ tv = tv_root[i];
+ while (tv != NULL) {
+ if ((tv->tmm_flags & flags) == flags)
+ cnt++;
+
+ tv = tv->next;
+ }
+ }
+ SCMutexUnlock(&tv_root_lock);
+ return cnt;
+}
+
typedef struct Thread_ {
ThreadVars *tv; /**< threadvars structure */
const char *name;