#include <stdlib.h>
#include <memory.h>
#include "bsp_alloc.h"
#include <mpi.h>
#include <config.h>
Include dependency graph for bsp_exptable.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.
Data Structures | |
| struct | MesgQInfo | 
| Additional data needed by a MessageQueue object.  More... | |
| struct | MemRegInfo | 
| Additional data needed by a MemoryRegister object.  More... | |
| struct | ReqElement | 
| Data element stored in a RequestTable object.  More... | |
| struct | PutObject | 
| additional info for a bsp_put()  More... | |
| struct | SendObject | 
| additional info for a bsp_send()  More... | |
| struct | PushRegObject | 
| Additional info for a bsp_push_reg().  More... | |
| struct | PopRegObject | 
| Additional info for a bsp_pop_Reg().  More... | |
| struct | SetTagObject | 
| Additional info for a bsp_set_tagsize().  More... | |
| union | _VarSzInfo | 
| Data structure for additional info in a VarSizeElement.  More... | |
| struct | VarSizeElement | 
| Data element stored in a VarElSizeTable (e.g.  More... | |
| struct | DelivInfo | 
| Additional data for a DeliveryTable.  More... | |
| union | SpecInfo | 
| Datastructure storing specific info.  More... | |
| struct | _ExpandableTable | 
| a table with nprocs number columns and rows number of rows, where each row has a height of slot_size bytes.  More... | |
MemoryRegister data structures | |
| typedef char * | MemRegElement | 
| Data element stored in a MemoryRegister.   | |
VarElSizeTable data structures | |
| typedef enum _ItemType | ItemType | 
| enum | _ItemType {  popreg, pushreg, put, get, send, settag }  | 
ExpandableTable | |
| typedef _ExpandableTable | ExpandableTable | 
| a table with nprocs number columns and rows number of rows, where each row has a height of slot_size bytes.   | |
| void | expandableTable_comm (const ExpandableTable *restrict send, ExpandableTable *restrict recv, MPI_Comm communicator) | 
| communicates the table to the other processor.   | |
| static void | expandableTable_initialize (ExpandableTable *restrict table, const int nprocs, const int rows, const int elsize, const union SpecInfo info) | 
| static void | expandableTable_reset (ExpandableTable *restrict table) | 
| clears contents of the table   | |
| static void | expandableTable_destruct (ExpandableTable *restrict table) | 
| frees memory taken by an ExpandableTable object   | |
| static void | expandableTable_expand (ExpandableTable *restrict table, const int rows, const union SpecInfo newinfo) | 
| Add some additional rows to the table.   | |
FixedElSizeTable member functions | |
| A table which contains elements of fixed size. Descendants are MemoryRegister  | |
| static void | fixedElSizeTable_initialize (ExpandableTable *restrict table, const int nprocs, const int rows, const int elsize, const union SpecInfo info) | 
| initializes an FixedElSizeTable   | |
| static void | fixedElSizeTable_push (ExpandableTable *restrict table, const int proc, void(*changeinfo)(union SpecInfo *restrict, int, int), const void *restrict element) | 
| adds an element for a specific processor to the table and expands the table when necessary.   | |
VarElSizeTable member functions | |
| a table with variable-length elements  | |
| static void | varElSizeTable_initialize (ExpandableTable *restrict table, const int nprocs, const int rows, const union SpecInfo info) | 
| Initializes a VarElSizeTable.   | |
| static int | varElSizeTable_push (ExpandableTable *restrict table, const int proc, void(*changeinfo)(union SpecInfo *restrict, int, int), VarSizeElement elem) | 
| Adds an element to the table and expands the table when necessary.   | |
Defines | |
| #define | MAX(x, y) ( ((x) > (y))?(x):(y)) | 
| gives the maximum of x and y   | |
| #define | MIN(x, y) ( ((x) < (y))?(x):(y)) | 
| gives the minimum of x and y   | |
Functions | |
| static int | no_slots (const int bytes, const int slot_size) | 
| calculate how many slots are necessary to contain a number of bytes   | |
Definition in file bsp_exptable.h.
      
  | 
  
| 
 gives the maximum of x and y 
 Definition at line 39 of file bsp_exptable.h. Referenced by deliveryTable_pushPut(), deliveryTable_pushSend(), messageQueue_push(), and varElSizeTable_push().  | 
  
      
  | 
  
| 
 gives the minimum of x and y 
 Definition at line 42 of file bsp_exptable.h. Referenced by bsp_begin(), and messageQueue_dequeue().  | 
  
      
  | 
  
| 
 a table with nprocs number columns and rows number of rows, where each row has a height of slot_size bytes. This table can be communicated to the other processors by means of expandableTable_comm(): each columns is send to processors with rank equal to the column number  | 
  
      
  | 
  
| 
 
  | 
  
      
  | 
  
| 
 Data element stored in a MemoryRegister. It is a pointer to a registered memory area Definition at line 88 of file bsp_exptable.h.  | 
  
      
  | 
  
| 
 
 Definition at line 120 of file bsp_exptable.h.  | 
  
      
  | 
  ||||||||||||||||
| 
 communicates the table to the other processor. Each column of the table corresponds to a chunk of data which is to be send to the processor with rank equal to the column number. The received data is equally ordered, i.e.: each column corresponds to the data received from the processor with rank equal to the column number. 
 Definition at line 47 of file bsp_exptable.c. Referenced by bsp_sync().  | 
  
      
  | 
  
| 
 frees memory taken by an ExpandableTable object 
 
 Definition at line 264 of file bsp_exptable.h. References bsp_free(). Referenced by deliveryTable_destruct(), memoryRegister_destruct(), messageQueue_destruct(), and requestTable_destruct(). Here is the call graph for this function: ![]()  | 
  
      
  | 
  ||||||||||||||||
| 
 Add some additional rows to the table. 
 
 Definition at line 278 of file bsp_exptable.h. References bsp_free(), and bsp_malloc. Referenced by fixedElSizeTable_push(), memoryRegister_expand(), messageQueue_expand(), requestTable_expand(), and varElSizeTable_push(). Here is the call graph for this function: ![]()  | 
  
      
  | 
  ||||||||||||||||||||||||
| 
 
 Definition at line 236 of file bsp_exptable.h. References bsp_calloc, and bsp_malloc. Referenced by fixedElSizeTable_initialize(), and varElSizeTable_initialize().  | 
  
      
  | 
  
| 
 clears contents of the table 
 
 Definition at line 254 of file bsp_exptable.h. Referenced by bsp_sync(), deliveryTable_reset(), and messageQueue_reset().  | 
  
      
  | 
  ||||||||||||||||||||||||
| 
 initializes an FixedElSizeTable 
 
 Definition at line 310 of file bsp_exptable.h. References expandableTable_initialize(). Referenced by memoryRegister_initialize(), and requestTable_initialize(). Here is the call graph for this function: ![]()  | 
  
      
  | 
  ||||||||||||||||||||
| 
 adds an element for a specific processor to the table and expands the table when necessary. 
 
 Definition at line 326 of file bsp_exptable.h. References expandableTable_expand(). Referenced by memoryRegister_push(), and requestTable_push(). Here is the call graph for this function: ![]()  | 
  
      
  | 
  ||||||||||||
| 
 calculate how many slots are necessary to contain a number of bytes 
 
 Definition at line 60 of file bsp_exptable.h. Referenced by deliveryTable_pushPut(), deliveryTable_pushSend(), messageQueue_dequeue(), messageQueue_hpdequeue(), messageQueue_push(), and varElSizeTable_push().  | 
  
      
  | 
  ||||||||||||||||||||
| 
 Initializes a VarElSizeTable. 
 
 Definition at line 363 of file bsp_exptable.h. References expandableTable_initialize(). Referenced by deliveryTable_initialize(), and messageQueue_initialize(). Here is the call graph for this function: ![]()  | 
  
      
  | 
  ||||||||||||||||||||
| 
 Adds an element to the table and expands the table when necessary. 
 
 Definition at line 377 of file bsp_exptable.h. References VarSizeElement::data, expandableTable_expand(), MAX, no_slots(), and VarSizeElement::size. Here is the call graph for this function: ![]()  | 
  
 1.4.6