Add support for module options
[lttv.git] / lttv / lttv / sync / event_processing_lttng_null.c
CommitLineData
70407e86
BP
1/* This file is part of the Linux Trace Toolkit viewer
2 * Copyright (C) 2009 Benjamin Poirier <benjamin.poirier@polymtl.ca>
3 *
4 * This program is free software; you can redistribute it and/or modify
5 * it under the terms of the GNU General Public License Version 2 as
6 * published by the Free Software Foundation;
7 *
8 * This program is distributed in the hope that it will be useful,
9 * but WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11 * GNU General Public License for more details.
12 *
13 * You should have received a copy of the GNU General Public License
14 * along with this program; if not, write to the Free Software
15 * Foundation, Inc., 59 Temple Place - Suite 330, Boston,
16 * MA 02111-1307, USA.
17 */
18
19#ifdef HAVE_CONFIG_H
20#include <config.h>
21#endif
22
23#include <stdlib.h>
24
2bd4b3e4 25#include "sync_chain.h"
10341d26 26#include "event_processing_lttng_common.h"
70407e86 27
10341d26 28#include "event_processing_lttng_null.h"
70407e86
BP
29
30
31#ifndef g_info
32#define g_info(format...) g_log (G_LOG_DOMAIN, G_LOG_LEVEL_INFO, format)
33#endif
34
35
08365995 36// Functions common to all processing modules
70407e86
BP
37static void initProcessingLTTVNull(SyncState* const syncState,
38 LttvTracesetContext* const traceSetContext);
39static void destroyProcessingLTTVNull(SyncState* const syncState);
40
41static void finalizeProcessingLTTVNull(SyncState* const syncState);
42
43// Functions specific to this module
44static void registerProcessingLTTVNull() __attribute__((constructor (102)));
45static gboolean processEventLTTVNull(void* hookData, void* callData);
46
47
48static ProcessingModule processingModuleLTTVNull = {
49 .name= "LTTV-null",
50 .initProcessing= &initProcessingLTTVNull,
51 .destroyProcessing= &destroyProcessingLTTVNull,
52 .finalizeProcessing= &finalizeProcessingLTTVNull,
53 .printProcessingStats= NULL,
08365995
BP
54 .writeProcessingGraphsPlots= NULL,
55 .writeProcessingGraphsOptions= NULL,
70407e86
BP
56};
57
58
59
60/*
61 * Processing Module registering function
62 */
63static void registerProcessingLTTVNull()
64{
65 g_queue_push_tail(&processingModules, &processingModuleLTTVNull);
66
67 createQuarks();
68}
69
70
71/*
72 * Allocate and initialize data structures for synchronizing a traceset.
73 * Register event hooks.
74 *
75 * Args:
76 * syncState: container for synchronization data.
77 * This function allocates these processingData members:
78 * hookListList
79 * traceSetContext: set of LTTV traces
80 */
81static void initProcessingLTTVNull(SyncState* const syncState,
82 LttvTracesetContext* const traceSetContext)
83{
84 ProcessingDataLTTVNull* processingData;
85
86 processingData= malloc(sizeof(ProcessingDataLTTVNull));
87 syncState->processingData= processingData;
88 processingData->traceSetContext= traceSetContext;
89
90 processingData->hookListList= g_array_sized_new(FALSE, FALSE,
91 sizeof(GArray*), syncState->traceNb);
92
93 registerHooks(processingData->hookListList, traceSetContext,
f6691532
BP
94 &processEventLTTVNull, syncState,
95 syncState->matchingModule->canMatch);
70407e86
BP
96}
97
98
99/*
100 * Nothing to do
101 *
102 * Args:
103 * syncState container for synchronization data.
104 */
105static void finalizeProcessingLTTVNull(SyncState* const syncState)
106{
107 return;
108}
109
110
111/*
112 * Unregister event hooks. Deallocate processingData.
113 *
114 * Args:
115 * syncState: container for synchronization data.
116 * This function deallocates these members:
117 * hookListList
118 */
119static void destroyProcessingLTTVNull(SyncState* const syncState)
120{
121 ProcessingDataLTTVNull* processingData;
122
123 processingData= (ProcessingDataLTTVNull*) syncState->processingData;
124
125 if (processingData == NULL)
126 {
127 return;
128 }
129
130 unregisterHooks(processingData->hookListList,
08365995 131 processingData->traceSetContext);
70407e86
BP
132
133 free(syncState->processingData);
134 syncState->processingData= NULL;
135}
136
137
138/*
139 * Lttv hook function that will be called for network events
140 *
141 * Args:
142 * hookData: LttvTraceHook* for the type of event that generated the call
143 * callData: LttvTracefileContext* at the moment of the event
144 *
145 * Returns:
146 * FALSE Always returns FALSE, meaning to keep processing hooks for
147 * this event
148 */
149static gboolean processEventLTTVNull(void* hookData, void* callData)
150{
151 return FALSE;
152}
This page took 0.027914 seconds and 4 git commands to generate.