root/ompi/class/ompi_seq_tracker.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


   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 

/* [<][>][^][v][top][bottom][index][help] */