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

Constituent: lsw     Tag: mv2304


Interface   Data Structures   File List   Data Fields   Globals  

LSW_control.c File Reference

Control functions for the LSW package. More...

#include <string.h>
#include "PBS/FORK.h"
#include "PBS/MBA.h"
#include "PBS/MTX.h"
#include "PBS/RW.ih"
#include "LSF/LSF.h"
#include "LSF/LSF_ids.h"
#include "CCSDS/CCSDS_pkt.h"
#include "ITC/ITC_drvdefs.h"
#include "ITC/ITC_pubdefs.h"
#include "MDB/MDB_pubdefs.h"
#include "TRC/TRC_pubdefs.h"
#include "LSW/LSW_cmdxtrn.h"
#include "LSW/LSW_msgs.h"
#include "LSW_prvdefs.h"

Include dependency graph for LSW_control.c:


Functions

static FORK_cb_status forkTickle (FORK_cb_prm *prm, FORK_msg_hdr *hdr)
 Task level target of the cyclic interrupt timer.
static WUT_cb_status expireTimer (void *prm, WUT_tmr *wut)
 Timer callback used to force a task switch.
static void snapInit (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.1 2006/12/20 01:25:27 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 WUT_cb_status expireTimer void *  prm,
WUT_tmr *  wut
[static]
 

Timer callback used to force a task switch.

LSW_expireTimer() 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 does nothing. Well not quite. It's woken up by a message sent from the cyclic timer. The act of waking this task up has already forced a task switch and it's in the task switch routine that all the hard work is done. The only thing this routine does is free the message that was used to wake it up, and then go back to sleep.

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 software watchdog.

unsigned int LSW_start void   ) 
 

Start the mLSW task.

LSW_start() starts the mLSW task


Generated on Wed Dec 20 01:35:40 2006 by  doxygen 1.4.4