__work_request Struct Reference
[Offload API]

WorkRequest is used to keep track of and access outstanding work requests. More...

#include <spert_ppu.h>

Collaboration diagram for __work_request:

Collaboration graph
[legend]

Data Fields

int isFirstInSet
 An internal flag that indicates this work request is the first element of an array of work requests (i.e. - work requests with this flag set should be free'd by the Offload API when CloseOffloadAPI() is called by the user).
int state
 An internal state that indicates the state of this work request data structure (free, in use, etc.).
unsigned int speAffinityMask
 An internal number that indicates this work request should be given to a spicific SPE.
int speIndex
 Index of the spe thread this work request was assigned to (-1 means not assigned yet or finished).
int entryIndex
 Index in the message queue this work request was assigned to (-1 means not assigned yet or finished).
int funcIndex
 User defined value used to indicated the action to be taken on the SPE.
void * readWritePtr
 Pointer to a single buffer that is DMAed into and out-of the SPE's local store before and after the work request is executed, respectively. For scatter/gather work requests, this actually points to the user's dma list in main memory. (Must be 16 byte aligned. 128 byte alignment is preferred.).
int readWriteLen
 Length (in bytes) of the buffer pointed to by readWritePtr. For scatter/gather work requests, this number is the number of DMAListEntry structures in the user's dma list that are read/write.
void * readOnlyPtr
 Pointer to a single buffer that is DMAed into the SPE's local store before the work request is executed. For scatter/gather work requests, this member contains the upper 32-bits of the effective addresses contained in the dma list. (Must be 16 byte aligned. 128 byte alignment is preferred.).
int readOnlyLen
 Length (in bytes) of the buffer pointed to by readOnlyPtr. For scatter/gather work requests, this number is the number of DMAListEntry structures in the user's dma list that are read-only.
void * writeOnlyPtr
 Pointer to a single buffer that is DMAed out-of the SPE's local store after the work request has been executed. An equal sized buffer will be provied to the funcLookup() function, which may be filled in by the user's code. Upon completion of the work request, the data will be DMAed into the buffer pointed to by this pointer. Not used for scatter/gather work requests. (Must be 16 byte aligned. 128 byte alignment is preferred.).
int writeOnlyLen
 Length (in bytes) of the buffer pointed to by writeOnlyPtr. For scatter/gather work requests, this number is the number of DMAListEntry structures in the user's dma list that are write-only.
unsigned int flags
 One or more WORK_REQUEST_FLAGS_xxx bitwise ORed together.
void * userData
 A user defined pointer that will be passed to the callback function.
volatile void(* callbackFunc )(void *)
DMAListEntry dmaList [SPE_DMA_LIST_LENGTH]
WRGroupHandle wrGroupHandle
 WRGroupHandle that this Work Request belongs to.
__work_requestnext
 Pointer to the next WRHandle in the linked list of WRHandles.
int id
int traceFlag

Detailed Description

WorkRequest is used to keep track of and access outstanding work requests.

Definition at line 133 of file spert_ppu.h.


Field Documentation

int __work_request::isFirstInSet

An internal flag that indicates this work request is the first element of an array of work requests (i.e. - work requests with this flag set should be free'd by the Offload API when CloseOffloadAPI() is called by the user).

Definition at line 135 of file spert_ppu.h.

int __work_request::state

An internal state that indicates the state of this work request data structure (free, in use, etc.).

Definition at line 136 of file spert_ppu.h.

unsigned int __work_request::speAffinityMask

An internal number that indicates this work request should be given to a spicific SPE.

Definition at line 137 of file spert_ppu.h.

int __work_request::speIndex

Index of the spe thread this work request was assigned to (-1 means not assigned yet or finished).

Definition at line 139 of file spert_ppu.h.

int __work_request::entryIndex

Index in the message queue this work request was assigned to (-1 means not assigned yet or finished).

Definition at line 140 of file spert_ppu.h.

int __work_request::funcIndex

User defined value used to indicated the action to be taken on the SPE.

Definition at line 142 of file spert_ppu.h.

void* __work_request::readWritePtr

Pointer to a single buffer that is DMAed into and out-of the SPE's local store before and after the work request is executed, respectively. For scatter/gather work requests, this actually points to the user's dma list in main memory. (Must be 16 byte aligned. 128 byte alignment is preferred.).

Definition at line 143 of file spert_ppu.h.

int __work_request::readWriteLen

Length (in bytes) of the buffer pointed to by readWritePtr. For scatter/gather work requests, this number is the number of DMAListEntry structures in the user's dma list that are read/write.

Definition at line 144 of file spert_ppu.h.

void* __work_request::readOnlyPtr

Pointer to a single buffer that is DMAed into the SPE's local store before the work request is executed. For scatter/gather work requests, this member contains the upper 32-bits of the effective addresses contained in the dma list. (Must be 16 byte aligned. 128 byte alignment is preferred.).

Definition at line 145 of file spert_ppu.h.

int __work_request::readOnlyLen

Length (in bytes) of the buffer pointed to by readOnlyPtr. For scatter/gather work requests, this number is the number of DMAListEntry structures in the user's dma list that are read-only.

Definition at line 146 of file spert_ppu.h.

void* __work_request::writeOnlyPtr

Pointer to a single buffer that is DMAed out-of the SPE's local store after the work request has been executed. An equal sized buffer will be provied to the funcLookup() function, which may be filled in by the user's code. Upon completion of the work request, the data will be DMAed into the buffer pointed to by this pointer. Not used for scatter/gather work requests. (Must be 16 byte aligned. 128 byte alignment is preferred.).

Definition at line 147 of file spert_ppu.h.

int __work_request::writeOnlyLen

Length (in bytes) of the buffer pointed to by writeOnlyPtr. For scatter/gather work requests, this number is the number of DMAListEntry structures in the user's dma list that are write-only.

Definition at line 148 of file spert_ppu.h.

unsigned int __work_request::flags

One or more WORK_REQUEST_FLAGS_xxx bitwise ORed together.

Definition at line 149 of file spert_ppu.h.

void* __work_request::userData

A user defined pointer that will be passed to the callback function.

Definition at line 150 of file spert_ppu.h.

volatile void(* __work_request::callbackFunc)(void *)

DMAListEntry __work_request::dmaList[SPE_DMA_LIST_LENGTH]

Definition at line 153 of file spert_ppu.h.

WRGroupHandle __work_request::wrGroupHandle

WRGroupHandle that this Work Request belongs to.

Definition at line 155 of file spert_ppu.h.

struct __work_request* __work_request::next

Pointer to the next WRHandle in the linked list of WRHandles.

Definition at line 157 of file spert_ppu.h.

int __work_request::id

Definition at line 159 of file spert_ppu.h.

int __work_request::traceFlag

Definition at line 160 of file spert_ppu.h.


The documentation for this struct was generated from the following file:
Generated on Sun Jun 29 13:29:43 2008 for Charm++ by  doxygen 1.5.1