root/ompi/debuggers/ompi_msgq_dll_defs.h

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

INCLUDED FROM


   1 /* -*- Mode: C; c-basic-offset:4 ; indent-tabs-mode:nil -*- */
   2 /*
   3  * Copyright (c) 2007      Cisco Systems, Inc.  All rights reserved.
   4  * Copyright (c) 2004-2007 The University of Tennessee and The University
   5  *                         of Tennessee Research Foundation.  All rights
   6  *                         reserved.
   7  * Copyright (c) 2015      Los Alamos National Security, LLC.  All rights
   8  *                         reserved.
   9  * $COPYRIGHT$
  10  *
  11  * Additional copyrights may follow
  12  *
  13  * $HEADER$
  14  */
  15 
  16 /**********************************************************************
  17  * Copyright (C) 2000-2004 by Etnus, LLC.
  18  * Copyright (C) 1999 by Etnus, Inc.
  19  * Copyright (C) 1997-1998 Dolphin Interconnect Solutions Inc.
  20  *
  21  * Permission is hereby granted to use, reproduce, prepare derivative
  22  * works, and to redistribute to others.
  23  *
  24  *                                DISCLAIMER
  25  *
  26  * Neither Dolphin Interconnect Solutions, Etnus LLC, nor any of their
  27  * employees, makes any warranty express or implied, or assumes any
  28  * legal liability or responsibility for the accuracy, completeness,
  29  * or usefulness of any information, apparatus, product, or process
  30  * disclosed, or represents that its use would not infringe privately
  31  * owned rights.
  32  *
  33  * This code was written by
  34  * James Cownie: Dolphin Interconnect Solutions. <jcownie@dolphinics.com>
  35  *               Etnus LLC <jcownie@etnus.com>
  36  **********************************************************************/
  37 
  38 /* Update log
  39  *
  40  * May 19 1998 JHC: Changed the names of the structs now that we don't
  41  *              include this directly in mpi_interface.h
  42  * Oct 27 1997 JHC: Structure definitions for structures used to hold MPICH
  43  *              info required by the DLL for dumping message queues.
  44  */
  45 
  46 #ifndef OMPI_MSGQ_DLL_DEFS_H
  47 #define OMPI_MSGQ_DLL_DEFS_H
  48 
  49 #include "ompi_common_dll_defs.h"
  50 
  51 /***********************************************************************
  52  * Information associated with a specific process
  53  */
  54 
  55 typedef struct group_t
  56 {
  57     mqs_taddr_t group_base;          /* Where was it in the process  */
  58     int         ref_count;           /* How many references to us */
  59     int         entries;             /* How many entries */
  60     int*        local_to_global;     /* The translation table */
  61 } group_t;
  62 
  63 /* Internal structure we hold for each communicator */
  64 typedef struct communicator_t
  65 {
  66     struct communicator_t * next;
  67     group_t *               group;              /* Translations */
  68     mqs_taddr_t             comm_ptr;   /* pointer to the communicator in the process memory */
  69     int                     present;    /* validation marker */
  70     mqs_communicator        comm_info;  /* Info needed at the higher level */
  71 } communicator_t;
  72 
  73 typedef struct mqs_ompi_opal_list_t_pos {
  74     mqs_taddr_t current_item;
  75     mqs_taddr_t list;
  76     mqs_taddr_t sentinel;
  77 } mqs_opal_list_t_pos;
  78 
  79 typedef struct {
  80     mqs_opal_list_t_pos opal_list_t_pos;
  81     mqs_taddr_t current_item;
  82     mqs_taddr_t upper_bound;
  83     mqs_tword_t header_space;
  84     mqs_taddr_t free_list;
  85     mqs_tword_t fl_frag_class;         /* opal_class_t* */
  86     mqs_tword_t fl_mpool;              /* struct mca_mpool_base_module_t* */
  87     mqs_tword_t fl_frag_size;          /* size_t */
  88     mqs_tword_t fl_frag_alignment;     /* size_t */
  89     mqs_tword_t fl_num_per_alloc;      /* size_t */
  90     mqs_tword_t fl_num_allocated;      /* size_t */
  91     mqs_tword_t fl_num_initial_alloc;  /* size_t */
  92 } mqs_opal_free_list_t_pos;
  93 
  94 
  95 /* Information for a single process, a list of communicators, some
  96  * useful addresses, and the state of the iterators.
  97  */
  98 typedef struct
  99 {
 100   struct communicator_t *communicator_list;     /* List of communicators in the process */
 101 
 102   /* Addresses in the target process */
 103   mqs_taddr_t send_queue_base;                  /* Where to find the send message queues */
 104   mqs_taddr_t recv_queue_base;                  /* Where to find the recv message queues */
 105   mqs_taddr_t sendq_base;                       /* Where to find the send queue */
 106   mqs_taddr_t commlist_base;                    /* Where to find the list of communicators */
 107   /* Other info we need to remember about it */
 108   mqs_tword_t comm_number_free;         /* the number of available positions in
 109                                          * the communicator array. */
 110   mqs_tword_t comm_lowest_free;         /* the lowest free communicator */
 111   mqs_tword_t show_internal_requests;   /* show or not the Open MPI internal requests */
 112   /* State for the iterators */
 113   struct communicator_t *current_communicator;  /* Easy, we're walking a simple list */
 114 
 115   int world_proc_array_entries;
 116   mqs_taddr_t* world_proc_array;
 117 
 118   mqs_opal_free_list_t_pos next_msg;            /* And state for the message iterator */
 119   mqs_op_class  what;                           /* What queue are we looking on */
 120 } mpi_process_info_extra;
 121 
 122 #endif

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