OpenMPI  0.1.1
ompi_seq_tracker.h
1 /*
2  * Copyright (c) 2004-2005 The Trustees of Indiana University and Indiana
3  * University Research and Technology
4  * Corporation. All rights reserved.
5  * Copyright (c) 2004-2006 The University of Tennessee and The University
6  * of Tennessee Research Foundation. All rights
7  * reserved.
8  * Copyright (c) 2004-2005 High Performance Computing Center Stuttgart,
9  * University of Stuttgart. All rights reserved.
10  * Copyright (c) 2004-2005 The Regents of the University of California.
11  * All rights reserved.
12  * $COPYRIGHT$
13  *
14  * Additional copyrights may follow
15  *
16  * $HEADER$
17  */
18 
19 #ifndef OMPI_SEQ_TRACKER_H
20 #define OMPI_SEQ_TRACKER_H
21 
22 #include "ompi_config.h"
23 #include "opal/class/opal_list.h"
24 #include "ompi/constants.h"
25 
26 BEGIN_C_DECLS
27 
29  opal_list_item_t super;
30  uint32_t seq_id_high;
31  uint32_t seq_id_low;
32 };
34 
36 
38  opal_list_t seq_ids; /**< list of seqs id's that have been seen */
39  ompi_seq_tracker_range_t* seq_ids_current; /**< a pointer to the last place we were in the list */
40 
41 };
43 
45 
46 
47 /**
48  * Look for duplicate sequence number in current range.
49  * Must be called w/ matching lock held.
50  */
51 
52 OMPI_DECLSPEC bool ompi_seq_tracker_check_duplicate(
53  ompi_seq_tracker_t* seq_tracker,
54  uint32_t seq_id);
55 
56 
57 /*
58  * insert item into sequence tracking list,
59  * compacts continuous regions into a single entry
60  */
61 OMPI_DECLSPEC void ompi_seq_tracker_insert(ompi_seq_tracker_t* seq_tracker, uint32_t seq_i);
62 
63 /*
64  * Copy state from one sequence tracker list into another.
65  */
66 OMPI_DECLSPEC void ompi_seq_tracker_copy(ompi_seq_tracker_t* dst, ompi_seq_tracker_t* src);
67 
68 END_C_DECLS
69 #endif
70 
Definition: ompi_seq_tracker.h:28
ompi_seq_tracker_range_t * seq_ids_current
a pointer to the last place we were in the list
Definition: ompi_seq_tracker.h:39
The opal_list_t interface is used to provide a generic doubly-linked list container for Open MPI...
Definition: ompi_seq_tracker.h:37
opal_list_t seq_ids
list of seqs id's that have been seen
Definition: ompi_seq_tracker.h:38
Definition: opal_list.h:98
Definition: opal_list.h:147
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236