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

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:


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 forkFragmentPre (FORK_cb_prm *prm, FORK_msg_hdr *msg)
 Send off a precursor message to "upset" the far side.
static FORK_cb_status forkFragmentFrg (FORK_cb_prm *prm, FORK_msg_hdr *msg)
 Send off the small message.
static 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

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

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

Send off the small message.

forkFragmentFrg() sends off the victim message.

static 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.

static 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.


Generated on Wed Nov 29 01:53:25 2006 by  doxygen 1.4.4