GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> GRBU / V0-0-6 > grbu / linux-gcc
#include <GRB/GRB_pktdef.h>
#include <GRB/GRB_siu.h>
Typedefs | |
typedef struct _GRBU_pktMerge | GRBU_pktMerge |
typedef void(* | GRBU_mrgDisposeRtn )(void *prm, GRBU_pktMerge *mrg) |
Signature for a routine to dispose of a GRB merge packet. | |
Functions | |
unsigned int | GRBU_mergePacket (GRBU_pktMerge *mrg, const GRB_pktHdr *hdr, GRBU_mrgDisposeRtn rtn, void *prm) |
Add a new merge packet to the merge process. | |
void | GRBU_mergeReset (void) |
Reset the merge machine. | |
unsigned int | GRBU_mergeSizeof (void) |
Size of a merge packet structure. | |
unsigned int | GRBU_mergeStart (unsigned int msk, GRB_siuStartRtn start_rtn, void *start_prm, GRB_siuProcessRtn exec_rtn, void *exec_prm, GRB_siuStopRtn stop_rtn, void *stop_prm) |
Start the merging process. |
CVS $Id: GRBU_pubdefs.h,v 1.3 2011/03/26 23:16:12 russell Exp $
unsigned int GRBU_mergePacket | ( | GRBU_pktMerge * | mrg, | |
const GRB_pktHdr * | hdr, | |||
GRBU_mrgDisposeRtn | rtn, | |||
void * | prm | |||
) |
Add a new merge packet to the merge process.
mrg | (in) A merge packet header | |
hdr | (in) Pointer to the header of the real data packet | |
rtn | (in) Callback routine to dispose of the merge packet | |
prm | (in) User parameter to the disposal routine |
GRBU_ENDMERGE | End of merge run | |
GRBU_NULLPARM | NULL parameter in calling sequence | |
GRBU_SRCOFF | No merge packets expected from this source | |
GRBU_SRCEND | Source has sent stop packet, then another packet | |
GRBU_SUCCESS | Success |
References _GRBU_pktMerge::dispose_prm, _GRBU_pktMerge::dispose_rtn, _GRBU_MergeControl::have, _GRBU_pktMerge::hdr, merge(), _GRBU_MergeControl::need, _GRBU_Source::queue, _GRBU_MergeControl::src, update(), and _GRBU_MergeControl::want.
unsigned int GRBU_mergeStart | ( | unsigned int | msk, | |
GRB_siuStartRtn | start_rtn, | |||
void * | start_prm, | |||
GRB_siuProcessRtn | exec_rtn, | |||
void * | exec_prm, | |||
GRB_siuStopRtn | stop_rtn, | |||
void * | stop_prm | |||
) |
Start the merging process.
msk | [in] Mask of sources (CPUs) to merge | |
start_rtn | [in] Callback to inform photon processor of "start" | |
start_prm | [in] User parameter to "start_rtn()" | |
exec_rtn | [in] Callback for each photon | |
exec_prm | [in] User parameter to "start_rtn()" | |
stop_rtn | [in] Callback to inform photon processor of "stop" | |
stop_prm | [in] User parameter to "start_rtn()" |
GRBU_SRCMSK | Invalid source (CPU) mask | |
GRBU_STARTPRM | No photon processing routine provided | |
GRBU_SUCCESS | Success |
References _GRBU_MergeControl::exec_prm, _GRBU_MergeControl::exec_rtn, GRBU_mergeReset(), _GRBU_MergeControl::have, _GRBU_MergeControl::need, _GRBU_MergeControl::stop_prm, _GRBU_MergeControl::stop_rtn, and _GRBU_MergeControl::want.