Address-Macros
[Implementation-Core]

Collaboration diagram for Address-Macros:

Detailed Description

Predefined Macros for calculating Addresses of Message-Queue and Status-Array.


PPU & SPU

#define IMOC_EA_REMOTE_QUEUE(proc)   ( (proc > node_handle.rank) ? node_handle.moc_process_list[proc].inbox_queue_base+sizeof(moc_message_envelope_t)*node_handle.queue_size*node_handle.rank : node_handle.moc_process_list[proc].inbox_queue_base+sizeof(moc_message_envelope_t)*node_handle.queue_size*(node_handle.rank-1) )
 Effective base-address of own remote queue at node 'rank'.
#define IMOC_LOCAL_QUEUE(proc)   ( (proc < node_handle.rank) ? node_handle.message_queue_base+node_handle.queue_size*(proc) : node_handle.message_queue_base+node_handle.queue_size*(proc-1) )
 Effective Base-Address of local queue responsible for node 'rank'.
#define IMOC_EA_REMOTE_QUEUE_ENTRY(proc, index)   ( (proc > node_handle.rank) ? node_handle.moc_process_list[proc].inbox_queue_base+sizeof(moc_message_envelope_t)*node_handle.queue_size*node_handle.rank+sizeof(moc_message_envelope_t)*(index) : node_handle.moc_process_list[proc].inbox_queue_base+sizeof(moc_message_envelope_t)*node_handle.queue_size*(node_handle.rank-1)+sizeof(moc_message_envelope_t)*(index) )
 Effective base-address of own remote queue-entry at node 'rank'.
#define IMOC_LOCAL_QUEUE_ENTRY(proc, index)   ( (proc < node_handle.rank) ? node_handle.message_queue_base+node_handle.queue_size*(proc)+(index) : node_handle.message_queue_base+node_handle.queue_size*(proc-1)+(index) )
 Effective Base-Address of local queue-entry responsible for node 'rank'.
#define IMOC_EA_REMOTE_STATUS_ENTRY(id, rank)   ( node_handle.moc_process_list[rank].stat_array_base+sizeof(moc_message_status_t)*(id) )
 Effective Address of remote status-array entry at node 'rank'.

PPU-only

#define IMOC_LS_REMOTE_QUEUE(proc)   ( (proc > node_handle.rank) ? moc_spu_thread_list[proc-moc_ppu_thread_count].queue_base_in_ls+sizeof(moc_message_envelope_t)*node_handle.queue_size*node_handle.rank : moc_spu_thread_list[proc-moc_ppu_thread_count].queue_base_in_ls+sizeof(moc_message_envelope_t)*node_handle.queue_size*(node_handle.rank-1) )
 LS-Address of own remote queue at node 'rank'.
#define IMOC_LS_REMOTE_QUEUE_ENTRY(proc, index)   ( (proc > node_handle.rank) ? moc_spu_thread_list[proc-moc_ppu_thread_count].queue_base_in_ls+sizeof(moc_message_envelope_t)*node_handle.queue_size*node_handle.rank+sizeof(moc_message_envelope_t)*(index) : moc_spu_thread_list[proc-moc_ppu_thread_count].queue_base_in_ls+sizeof(moc_message_envelope_t)*node_handle.queue_size*(node_handle.rank-1)+sizeof(moc_message_envelope_t)*(index) )
 LS-Address of own remote queue-entry at node 'rank'.
#define IMOC_LS_REMOTE_STATUS_ENTRY(id, rank)   ( moc_spu_thread_list[rank-moc_ppu_thread_count].status_base_in_ls+sizeof(moc_message_status_t)*(id) )
 Effective Address of remote status-array entry at node 'rank'.


Define Documentation

#define IMOC_EA_REMOTE_QUEUE ( proc   )     ( (proc > node_handle.rank) ? node_handle.moc_process_list[proc].inbox_queue_base+sizeof(moc_message_envelope_t)*node_handle.queue_size*node_handle.rank : node_handle.moc_process_list[proc].inbox_queue_base+sizeof(moc_message_envelope_t)*node_handle.queue_size*(node_handle.rank-1) )

Effective base-address of own remote queue at node 'rank'.

Address is of type uint64_t

Definition at line 19 of file imoc_macros.h.

Referenced by MOC_Barrier(), MOC_Bsend(), MOC_ISsend(), and MOC_Ssend().

#define IMOC_EA_REMOTE_QUEUE_ENTRY ( proc,
index   )     ( (proc > node_handle.rank) ? node_handle.moc_process_list[proc].inbox_queue_base+sizeof(moc_message_envelope_t)*node_handle.queue_size*node_handle.rank+sizeof(moc_message_envelope_t)*(index) : node_handle.moc_process_list[proc].inbox_queue_base+sizeof(moc_message_envelope_t)*node_handle.queue_size*(node_handle.rank-1)+sizeof(moc_message_envelope_t)*(index) )

Effective base-address of own remote queue-entry at node 'rank'.

Address is of type uint64_t

Definition at line 34 of file imoc_macros.h.

Referenced by MOC_Barrier(), MOC_Bsend(), MOC_ISsend(), and MOC_Ssend().

#define IMOC_EA_REMOTE_STATUS_ENTRY ( id,
rank   )     ( node_handle.moc_process_list[rank].stat_array_base+sizeof(moc_message_status_t)*(id) )

Effective Address of remote status-array entry at node 'rank'.

Address is of type uint64_t

Definition at line 49 of file imoc_macros.h.

Referenced by MOC_Recv().

#define IMOC_LOCAL_QUEUE ( proc   )     ( (proc < node_handle.rank) ? node_handle.message_queue_base+node_handle.queue_size*(proc) : node_handle.message_queue_base+node_handle.queue_size*(proc-1) )

Effective Base-Address of local queue responsible for node 'rank'.

Address is of type moc_message_envelope_t*

Definition at line 26 of file imoc_macros.h.

Referenced by IMOC_get_entry().

#define IMOC_LOCAL_QUEUE_ENTRY ( proc,
index   )     ( (proc < node_handle.rank) ? node_handle.message_queue_base+node_handle.queue_size*(proc)+(index) : node_handle.message_queue_base+node_handle.queue_size*(proc-1)+(index) )

Effective Base-Address of local queue-entry responsible for node 'rank'.

Address is of type moc_message_envelope_t*

Definition at line 41 of file imoc_macros.h.

#define IMOC_LS_REMOTE_QUEUE ( proc   )     ( (proc > node_handle.rank) ? moc_spu_thread_list[proc-moc_ppu_thread_count].queue_base_in_ls+sizeof(moc_message_envelope_t)*node_handle.queue_size*node_handle.rank : moc_spu_thread_list[proc-moc_ppu_thread_count].queue_base_in_ls+sizeof(moc_message_envelope_t)*node_handle.queue_size*(node_handle.rank-1) )

LS-Address of own remote queue at node 'rank'.

Address is of type uint32_t.

Definition at line 25 of file imoc_macros_ppu.h.

Referenced by MOC_Barrier(), MOC_Bsend(), MOC_ISsend(), and MOC_Ssend().

#define IMOC_LS_REMOTE_QUEUE_ENTRY ( proc,
index   )     ( (proc > node_handle.rank) ? moc_spu_thread_list[proc-moc_ppu_thread_count].queue_base_in_ls+sizeof(moc_message_envelope_t)*node_handle.queue_size*node_handle.rank+sizeof(moc_message_envelope_t)*(index) : moc_spu_thread_list[proc-moc_ppu_thread_count].queue_base_in_ls+sizeof(moc_message_envelope_t)*node_handle.queue_size*(node_handle.rank-1)+sizeof(moc_message_envelope_t)*(index) )

LS-Address of own remote queue-entry at node 'rank'.

Address is of type uint32_t.

Definition at line 33 of file imoc_macros_ppu.h.

#define IMOC_LS_REMOTE_STATUS_ENTRY ( id,
rank   )     ( moc_spu_thread_list[rank-moc_ppu_thread_count].status_base_in_ls+sizeof(moc_message_status_t)*(id) )

Effective Address of remote status-array entry at node 'rank'.

Address is of type uint32_t

Definition at line 42 of file imoc_macros_ppu.h.


Generated on Thu Feb 12 13:51:03 2009 for MPI On Cell (Documentation) by  doxygen 1.5.6