GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > LCS / V1-2-1

Constituent: lcs_test     Tag: rad750


Interface   Data Structures   File List   Data Fields   Globals  

LCS_fragment.c File Reference

Test reconstruction of hardware fragments. 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"

Include dependency graph for LCS_fragment.c:

Include dependency graph

Functions

WUT_cb_status expireTimer (void *prm, WUT_tmr *wut)
 Timer callback routine to queue a message back to a fork.

FORK_cb_status forkFragmentPre (FORK_cb_prm *prm, FORK_msg_hdr *msg)
 Send off a precursor message to "upset" the far side.

FORK_cb_status forkFragmentFrg (FORK_cb_prm *prm, FORK_msg_hdr *msg)
 Send off the small message.

void freeFragment (ITC_QueueItem *qitem, unsigned int status, void *prm0, void *prm1, void *prm2)
 Free allocated buffer.

unsigned int LCS_fragment (ITC_NodeID dnid, ITC_TaskID dtid, ITC_QueueID dqid, ITC_ProtID pid, ITC_TaskID stid)
 Main routine for LCS message (hardware) fragmentation test.


Detailed Description

Test reconstruction of hardware fragments.

CVS $Id: LCS_fragment.c,v 1.1 2005/09/08 03:54:13 apw Exp $
Author:
A.P.Waite

Function Documentation

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's responsible for getting the victim message sent.

FORK_cb_status forkFragmentFrg FORK_cb_prm *  prm,
FORK_msg_hdr *  msg
[static]
 

Send off the small message.

forkFragmentFrg() sends off the victim message.

Here is the call graph for this function:

FORK_cb_status forkFragmentPre FORK_cb_prm *  prm,
FORK_msg_hdr *  msg
[static]
 

Send off a precursor message to "upset" the far side.

forkFragmentPre() sends off a precursor message to the far side instructing it to start introducing fragmantation.

Here is the call graph for this function:

void freeFragment 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)
freeFragment() frees the messages used in the fragmentation test.

unsigned int LCS_fragment ITC_NodeID  dnid,
ITC_TaskID  dtid,
ITC_QueueID  dqid,
ITC_ProtID  pid,
ITC_TaskID  stid
 

Main routine for LCS message (hardware) fragmentation test.

Parameters:
dnid (in) Destination ITC node ID
dtid (in) Destination ITC task ID
dqid (in) Destination ITC queue ID
pid (in) Message protocol
stid (in) Source ITC task ID
LCS_fragment() sends two messages. The first (short) message causes the receiver to set up a deliberate fragmentation (at semi-random times, sets a bit in the far side LCB's LATp CSR register). The second (long) message then stumbles into that situation.

Here is the call graph for this function:


Generated on Tue Sep 20 21:46:10 2005 by doxygen 1.3.3