GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > LCM / V1-6-1

Constituent: lcm_siu     Tag: rad750


Interface   Data Structures   File List   Data Fields   Globals  

LCM_turboSIU.c.vx-xxx-xxx File Reference

SIU specific functions for handling turbo reset (VxWorks version). More...

#include "BootDiagnostics.h"
#include "ITC/ITC_pubdefs.h"
#include "LCM/LCM_msgs.h"
#include "LIM/LIM_pubdefs.h"
#include "MDB/MDB_pubdefs.h"
#include "PBS/FFS.ih"
#include "PBS/FORK.h"
#include "PBS/WUT.h"
#include "LCM_prvdefs.h"

Include dependency graph for LCM_turboSIU.c.vx-xxx-xxx:


Functions

static void turboEvaluate (LCM_Control *ctl)
 Evaluate the reset status of EPUs.
static WUT_cb_status turboExpireSIU (void *prm, WUT_tmr *tmr)
 Timer callback routine for verifying EPU resets.
static WUT_cb_status turboExpireTimeout (void *prm, WUT_tmr *tmr)
 Timer callback routine for verifying EPU resets.
static FORK_cb_status turboForkAcknowledge (FORK_cb_prm *prm, FORK_msg_hdr *hdr)
 Task level target of the turbo reset check of EPU running modes.
static FORK_cb_status turboForkSIU (FORK_cb_prm *prm, FORK_msg_hdr *hdr)
 Task level target of the CPU metric cyclic interrupt timer.
static FORK_cb_status turboForkTimeout (FORK_cb_prm *prm, FORK_msg_hdr *hdr)
 Task level target of the CPU metric cyclic interrupt timer.
unsigned int turboReset (void *prm, const struct _ITC_QueueItem *qit, void *pay, unsigned int len)
static void turboSend_cb (ITC_QueueItem *qitem, unsigned int status, void *prm0, void *prm1, void *prm2, unsigned int tx)
 Clean up after sending a command to an EPU.
void LCM_turboApplication (unsigned int cpu, unsigned int rst)
 Use EPU LCM housekeeping telemetry in turbo reset synchronization.
void LCM_turboPrimary (unsigned int cpu)
 Use EPU primary boot telemetry in turbo reset synchronization.
unsigned int LCM_TurboReset (void *prm, const struct _ITC_QueueItem *qit, void *pay, unsigned int len)
 Callback function for the turbo reset command (worker bee).

Variables

const char * s_nid [ITC_L_LATCPUS] = { "SIU", "EPU0", "EPU1", "EPU2", "EPU3" }

Detailed Description

SIU specific functions for handling turbo reset (VxWorks version).

CVS $Id: LCM_turboSIU.c.vx-xxx-xxx,v 1.1 2008/10/30 01:12:50 apw Exp $
Author:
A.P.Waite
LCM_turboSIU.c.vx-xxx-xxx provides VxWorks support for turbo reset functions on an SIU.

Function Documentation

void LCM_turboApplication unsigned int  cpu,
unsigned int  rst
 

Use EPU LCM housekeeping telemetry in turbo reset synchronization.

Parameters:
cpu (in) CPU (ITC node)
rst (in) CPU reset detected
LCM_turboApplication() is a special entry point to allow the LCM housekeeping telemetry activities to participate in turbo reset synchronization.

void LCM_turboPrimary unsigned int  cpu  ) 
 

Use EPU primary boot telemetry in turbo reset synchronization.

Parameters:
cpu (in) CPU (ITC node)
LCM_turboPrimary() is a special entry point to allow primary boot telemetry activities to participate in turbo reset synchronization. EPU primary boot telemetry is handled by code in package PBC, but that code executes in the context of the LCM task.

unsigned int LCM_TurboReset void *  prm,
const struct _ITC_QueueItem qit,
void *  pay,
unsigned int  len
 

Callback function for the turbo reset command (worker bee).

Parameters:
prm (in) User context parameter
qit (in) Queue item
pay (in) Payload pointer
len (in) Payload length
Returns:

static void turboEvaluate LCM_Control ctl  )  [static]
 

Evaluate the reset status of EPUs.

Parameters:
ctl (in) LCM control structure
turboEvaluate() evaluates the states of EPUs that have been directed to reset as part of a turbo reset. If all EPUs have indeed reset and are back in applications mode, continue with the turbo reset processing of the SIU.

static WUT_cb_status turboExpireSIU void *  prm,
WUT_tmr *  tmr
[static]
 

Timer callback routine for verifying EPU resets.

Parameters:
prm (in) User parameter (LCM control block)
tmr (in) Wake up timer handle
turboExpireTimeout() is a timer callback routine. It is -not- expected to time out. At timer interrupt level, this routine simply forks to the LCM task.

static WUT_cb_status turboExpireTimeout void *  prm,
WUT_tmr *  tmr
[static]
 

Timer callback routine for verifying EPU resets.

Parameters:
prm (in) User parameter (LCM control block)
tmr (in) Wake up timer handle
turboExpireTimeout() is a timer callback routine. It is -not- expected to time out. At timer interrupt level, this routine simply forks to the LCM task.

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

Task level target of the turbo reset check of EPU running modes.

Parameters:
prm (in) FORK parameter (not used) (cannot be used!)
hdr (in) The fork message
forkTickle() drives the cyclic acquisition housekeeping information

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

Task level target of the CPU metric cyclic interrupt timer.

Parameters:
prm (in) FORK parameter (not used) (cannot be used!)
hdr (in) The fork message
forkTickle() drives the cyclic acquisition housekeeping information

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

Task level target of the CPU metric cyclic interrupt timer.

Parameters:
prm (in) FORK parameter (not used) (cannot be used!)
hdr (in) The fork message
forkTickle() drives the cyclic acquisition housekeeping information

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

Clean up after sending a command to an EPU.

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


Generated on Thu Nov 13 01:16:56 2008 by  doxygen 1.4.4