GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > LSW / V2-0-0

Constituent: lsw     Tag: linux-gcc


Interface   Data Structures   File List   Data Fields   Globals  

LSW_control.c File Reference

Control functions for the LSW package. More...

#include <string.h>
#include "IMM/FPM_pubdefs.h"
#include "IMM/RBM_pubdefs.h"
#include "ITC/ITC_drvdefs.h"
#include "ITC/ITC_pubdefs.h"
#include "MDB/MDB_pubdefs.h"
#include "PBS/FORK.h"
#include "PBS/MBA.h"
#include "PBS/MTX.h"
#include "PBS/RW.ih"
#include "TRC/TRC_msgs.h"
#include "TRC/TRC_pubdefs.h"
#include "LSW/LSW_cmdxtrn.h"
#include "LSW/LSW_msgs.h"
#include "LSW/LSW_pubdefs.h"
#include "LSW_prvdefs.h"

Include dependency graph for LSW_control.c:


Functions

static unsigned int control_rx (void *prm, const ITC_QueueItem *qitem, void *pay, unsigned int len)
 Process messages arriving on the control queue.
static WUT_cb_status expireTickle (void *prm, WUT_tmr *wut)
 Timer callback used to force a task switch.
static FORK_cb_status forkTickle (FORK_cb_prm *prm, FORK_msg_hdr *hdr)
 Task level target of the cyclic interrupt timer.
static unsigned int initializeCyclic (LSW_Control *lcb, unsigned int rate)
 Initialize the LSW cyclic timer.
static unsigned int initializeMonitor (LSW_Control *lcb)
 Initialize the LSW performance monitor functions.
static unsigned int initializeTask (LSW_Control *lcb)
 Initialize the LSW task description.
static void monitor_cb (ITC_QueueItem *qitem, unsigned int status, void *prm0, void *prm1, void *prm2, unsigned int tx)
 Clean up after sending a monitor record to the SIU.
static void snapStart (void *prm)
 One-time call to reset priority and snapshot the start line.
unsigned int LSW_initialize (unsigned int rate)
 Initialize the LSW tracing facility.
unsigned int LSW_start ()
 Start the mLSW task.

Variables

LSW_ControlLSW_lcb
 Control block for LSW facility.

Detailed Description

Control functions for the LSW package.

CVS $Id: LSW_control.c,v 1.2 2007/03/22 01:55:58 apw Exp $
Author:
A.P.Waite
LSW_control.c provides facilities initialize the LSW task trace facilities and to construct and run the corresponding task.

Warning:
Suitable task tracing facilities are not available on host systems, so while this facility can be compiled and linked on host systems, it does no real work at run time.

Function Documentation

static unsigned int control_rx void *  prm,
const ITC_QueueItem *  qitem,
void *  pay,
unsigned int  len
[static]
 

Process messages arriving on the control queue.

Parameters:
prm (in) User context parameter
qitem (in) Queue item to process
pay (in) Queue item payload
len (in) Queue item payload length
control_rx() is the callback routine for any traffic arriving on the control queue. For now, that's only monitor records coming from the EPUs.

static WUT_cb_status expireTickle void *  prm,
WUT_tmr *  wut
[static]
 

Timer callback used to force a task switch.

LSW_expireTickle() is a timer callback routine. It simply wakes up a high priority task (by sending a message to one of the task's fork queues), updates the watchdog timer, then resets itself.

static FORK_cb_status forkTickle FORK_cb_prm *  prm,
FORK_msg_hdr *  hdr
[static]
 

Task level target of the cyclic interrupt timer.

This routine implements the task monitor functions. It wakes up cyclically (usually at one second intervals) and takes a snapshot of the monitor section of the system trace information. This is saved locally. and, if this is an EPU, is sent to the SIU.

static unsigned int initializeCyclic LSW_Control lcb,
unsigned int  rate
[static]
 

Initialize the LSW cyclic timer.

Parameters:
lcb (in) LSW control block
rate (in) Rate of forced task switches (milliseconds) (default: 1000)
initializeCyclic() builds up the facilities to run the cyclic timer.

static unsigned int initializeMonitor LSW_Control lcb  )  [static]
 

Initialize the LSW performance monitor functions.

Parameters:
lcb (in) LSW control block
initializeMonitor() builds up performance monitoring functions

static unsigned int initializeTask LSW_Control lcb  )  [static]
 

Initialize the LSW task description.

Parameters:
lcb (in) LSW control block
initializeTask() builds up the LSW task description

unsigned int LSW_initialize unsigned int  rate  ) 
 

Initialize the LSW tracing facility.

Parameters:
rate (in) Rate of forced task switches (milliseconds) (default: 1000)
LSW_initialize() builds up the resources to run the LSW application and task.

unsigned int LSW_start void   ) 
 

Start the mLSW task.

LSW_start() starts the mLSW task

static void monitor_cb ITC_QueueItem *  qitem,
unsigned int  status,
void *  prm0,
void *  prm1,
void *  prm2,
unsigned int  tx
[static]
 

Clean up after sending a monitor record to the SIU.

Parameters:
qitem (in) Queue item
status (in) Status from ITC_send()
prm0 (in) User param 0 (LSW control block)
prm1 (in) User param 1 (unused)
prm2 (in) User param 2 (unused)
tx (in) Failure during send phase of ITC_send() (unused)
monitor_cb() is the callback routine that's called once the monitor record has been delivered to the SIU (a standard ITC completion routine).


Generated on Thu Mar 22 01:35:34 2007 by  doxygen 1.4.4