GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> LCS / dev > lcs_test / mv2304


Interface   Data Structures   File List   Data Fields   Globals  

LCS_priority.c File Reference

Test message through message capability. More...

#include <stdio.h>
#include <string.h>
#include <time.h>
#include <PBS/PBS.h>
#include <PBS/FORK.h>
#include <PBS/FPA.h>
#include <ITC/ITC_drvdefs.h>
#include <LCS/LCS_msgs.h>
#include <LCS_prvtest.h>

Functions

static WUT_cb_status expireTimer (void *prm, WUT_tmr *wut)
 Timer callback routine to queue a message back to a fork.
static FORK_cb_status forkPriorityMax (FORK_cb_prm *prm, FORK_msg_hdr *msg)
 Send off the large message and arrange for sendoff of small message.
static FORK_cb_status forkPriorityMin (FORK_cb_prm *prm, FORK_msg_hdr *msg)
 Send off the small message.
static void freePriority (ITC_QueueItem *qitem, unsigned int status, void *prm0, void *prm1, void *prm2)
 Free allocated buffer.
unsigned int LCS_priority (ITC_NodeID dnid, ITC_TaskID dtid, ITC_QueueID qmin, ITC_QueueID qmax, ITC_TaskID stid)
 Main routine for LCS message through message test.


Detailed Description

Test message through message capability.

CVS $Id: LCS_priority.c,v 1.3 2011/03/28 22:49:56 apw Exp $
Author:
A.P.Waite

Function Documentation

static WUT_cb_status expireTimer ( void *  prm,
WUT_tmr *  wut 
) [static]

Timer callback routine to queue a message back to a fork.

Parameters:
prm (in) User context parameter
wut (in) Timer handle
expireTimer() is the routine called at interrupt level by the timeout timer. It simply places the test command back on the meta-hi queue.

References _LCS_Cmd::fqi, and _LCS_Cmd::rtn.

static FORK_cb_status forkPriorityMax ( FORK_cb_prm *  prm,
FORK_msg_hdr *  msg 
) [static]

Send off the large message and arrange for sendoff of small message.

forkPriorityMax() sends off a large message and arranges for a small message to be sent off a short while later to a higher priority queue.

References _LCS_CmdParam::beg, _LCS_CmdParam::end, expireTimer(), _LCS_TestControl::fpm, freePriority(), LCS_sendMessage(), LCS_tcb, _LCS_Cmd::msg, _LCS_CmdParam::nid, _LCS_CmdParam::pgs, _LCS_CmdParam::pid, _LCS_Cmd::prm, _LCS_CmdParam::qid, _LCS_Cmd::tbeg, _LCS_CmdParam::tid, and _LCS_Cmd::use.

Referenced by LCS_priority().

static FORK_cb_status forkPriorityMin ( FORK_cb_prm *  prm,
FORK_msg_hdr *  msg 
) [static]

static void freePriority ( ITC_QueueItem *  qitem,
unsigned int  status,
void *  prm0,
void *  prm1,
void *  prm2 
) [static]

Free allocated buffer.

Parameters:
qitem (in) Queue item (unused)
status (in) Processing completion code (unused)
prm0 (in) User parameter 0 (unused)
prm1 (in) User parameter 1 (unused)
prm2 (in) User parameter 2 (unused)
freeBuffer() frees a test packet.

References _LCS_CmdParam::beg, cmd, _LCS_CmdParam::end, _LCS_TestControl::fpc, LCS_tcb, _LCS_CmdParam::pgs, _LCS_Cmd::prm, _LCS_CmdParam::qid, _LCS_Cmd::tbeg, and _LCS_Cmd::tend.

Referenced by forkPriorityMax(), and forkPriorityMin().

unsigned int LCS_priority ( ITC_NodeID  dnid,
ITC_TaskID  dtid,
ITC_QueueID  qmin,
ITC_QueueID  qmax,
ITC_TaskID  stid 
)

Main routine for LCS message through message test.

Parameters:
dnid (in) Destination ITC node ID
dtid (in) Destination ITC task ID
qmin (in) Queue to send the small message on
qmax (in) Queue to send the large message on
stid (in) Source ITC task ID
LCS_priority() sends a large, low priority message quickly followd (2 msec later) by a small high priority message.

References _LCS_CmdParam::beg, _LCS_TestControl::cid, _LCS_Cmd::cid, _LCS_Cmd::dmg, _LCS_Cmd::drp, _LCS_CmdParam::end, forkPriorityMax(), forkPriorityMin(), _LCS_TestControl::fpc, _LCS_TestControl::fpm, _LCS_Cmd::fqi, LCS_tcb, _LCS_Cmd::msg, _LCS_CmdParam::nid, _LCS_Cmd::out, _LCS_Cmd::ovr, _LCS_CmdParam::pgs, _LCS_CmdParam::pid, _LCS_Cmd::prm, _LCS_CmdParam::qid, _LCS_Cmd::rtn, _LCS_CmdParam::tid, and _LCS_Cmd::use.


Generated on Mon Mar 28 15:57:44 2011 by  doxygen 1.5.8