Multi-ApplicationOnlineProfiling  2.1
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
Event_Pack.h
Go to the documentation of this file.
1 /* ############################ MALP License ############################## */
2 /* # Fri Jan 18 14:00:00 CET 2013 # */
3 /* # Copyright or (C) or Copr. Commissariat a l'Energie Atomique # */
4 /* # # */
5 /* # This software is governed by the CeCILL-C license under French law # */
6 /* # and abiding by the rules of distribution of free software. You can # */
7 /* # use, modify and/ or redistribute the software under the terms of # */
8 /* # the CeCILL-C license as circulated by CEA, CNRS and INRIA at the # */
9 /* # following URL http://www.cecill.info. # */
10 /* # # */
11 /* # The fact that you are presently reading this means that you have # */
12 /* # had knowledge of the CeCILL-C license and that you accept its # */
13 /* # terms. # */
14 /* # # */
15 /* # Authors: # */
16 /* # - BESNARD Jean-Baptiste jean-baptiste.besnard@cea.fr # */
17 /* # # */
18 /* ######################################################################## */
19 #ifndef EVENT_PACK_H
20 #define EVENT_PACK_H
21 
28 #include <stdint.h>
29 #include "Event_Desc.h"
30 #include "VMPI.h"
31 #include "VMPI_stream.h"
32 #include "Spinlock.h"
33 
34 
39 {
40  struct Event_Pack *pack;
43 };
44 
48 extern struct Event_Packer _malp_e_packer;
49 
54 static inline struct Event_Packer * Event_Packer()
55 {
56  return &_malp_e_packer;
57 }
58 
62 void Event_Packer_init();
63 
68 
75 void Event_Packer_push(struct MALP_Trace_Event *event);
76 
80 void Event_Packer_flush();
81 
86 #endif /* EVENT_PACK_H */
void Event_Packer_flush()
Processes the send of all events present in the internal FIFO.
Definition: Event_Pack.c:164
struct Event_Pack * pack
The event pack.
Definition: Event_Pack.h:40
static struct Event_Packer * Event_Packer()
Getter on the current event packer.
Definition: Event_Pack.h:54
Struct defining a pack of events.
Definition: Event_Desc.h:103
void Event_Packer_push(struct MALP_Trace_Event *event)
Sends an event.
Definition: Event_Pack.c:141
void Event_Packer_release()
Releases the event packer.
Definition: Event_Pack.c:74
Struct defining an event.
Definition: Event_Desc.h:82
This is the struct used to send events throuh a stream.
Definition: Event_Pack.h:38
struct Event_Packer _malp_e_packer
The event packer of the current MPI rank.
Definition: Event_Pack.c:27
volatile unsigned int MALP_Spinlock
The type of spinlocks in MALP.
Definition: Spinlock.h:63
void Event_Packer_init()
Initializes the event packer, maps current process to existing Analyser or IO_WRITE partition and ini...
Definition: Event_Pack.c:30
VMPI_Stream stream
The associated stream.
Definition: Event_Pack.h:41
MALP_Spinlock lock
the lock for concurrent access
Definition: Event_Pack.h:42
Defines a MPI stream.
Definition: VMPI_stream.h:96