OpenMPI 0.1.1

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

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
28 struct ompi_seq_tracker_range_t{
29 opal_list_item_t super;
30 uint32_t seq_id_high;
31 uint32_t seq_id_low;
32 };
33 typedef struct ompi_seq_tracker_range_t ompi_seq_tracker_range_t;
34
35 OMPI_DECLSPEC OBJ_CLASS_DECLARATION(ompi_seq_tracker_range_t);
36
37 struct ompi_seq_tracker_t{
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 };
42 typedef struct ompi_seq_tracker_t ompi_seq_tracker_t;
43
44 OMPI_DECLSPEC OBJ_CLASS_DECLARATION(ompi_seq_tracker_t);
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
ompi_seq_tracker_range_t
Definition: ompi_seq_tracker.h:28
ompi_seq_tracker_t::seq_ids_current
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
opal_list.h
The opal_list_t interface is used to provide a generic doubly-linked list container for Open MPI...
ompi_seq_tracker_t
Definition: ompi_seq_tracker.h:37
ompi_seq_tracker_t::seq_ids
opal_list_t seq_ids
list of seqs id's that have been seen
Definition: ompi_seq_tracker.h:38
opal_list_item_t
Definition: opal_list.h:98
opal_list_t
Definition: opal_list.h:147
OBJ_CLASS_DECLARATION
#define OBJ_CLASS_DECLARATION(NAME)
Declaration for class descriptor.
Definition: opal_object.h:236