OpenMPI 0.1.1

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

- File List
- Globals

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