GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > ITC / V3-7-0

Constituent: itc     Tag: linux-gcc


Interface   Data Structures   File List   Data Fields   Globals  

ITC_prvdefs.h File Reference

Private definitions for the ITC package. More...

#include "PBS/FORK.h"
#include "PBS/MTX.h"
#include "PBS/PL.h"
#include "PBS/RW.ih"
#include "PBS/SEM.h"
#include "PBS/WCT.h"
#include "ITC/ITC_apidefs.h"
#include "ITC/ITC_drvdefs.h"
#include "ITC/ITC_pubdefs.h"

Include dependency graph for ITC_prvdefs.h:

This graph shows which files directly or indirectly include this file:


Data Structures

struct  _ITC_TaskConfirm
 Structure to hold ITC per task command confirmation information. More...
struct  _ITC_QueueItem
 Structure to hold an ITC queue item descriptor. More...
struct  _ITC_Fork
 Message structure that can be queued to a fork. More...
struct  _ITC_Task
 Structure to hold ITC per task information. More...
struct  _ITC_Queue
 Structure to hold ITC per queue information. More...
struct  _ITC_Apid
 Structure to hold ITC per command APID information. More...
struct  _ITC_Control
 Structure to hold the ITC control block. More...

Defines

#define ITC_L_APIDS   (ITC_L_APID_CMDRX + ITC_L_APID_BCST)
#define ITC_L_TSK_TYPES   (3)
 Number of task types.
#define ITC_L_TSK_STATES   (7)
 Number of control states.
#define ITC_L_CTL_STATES   (2)
 Number of control states.

Typedefs

typedef enum _ITC_TaskType ITC_TaskType
 Typedef for enum _ITC_TaskType.
typedef enum _ITC_TaskState ITC_TaskState
 Typedef for enum _ITC_TaskState.
typedef enum _ITC_ControlState ITC_ControlState
 Typedef for enum _ITC_ControlState.
typedef _ITC_TaskConfirm ITC_TaskConfirm
 Typedef for struct _ITC_TaskConfirm.
typedef _ITC_Fork ITC_Fork
 Typedef for struct _ITC_Fork.
typedef _ITC_Apid ITC_Apid
 Typedef for struct _ITC_Apid.
typedef _ITC_Control ITC_Control
 Typedef for struct _ITC_Control.

Enumerations

enum  _ITC_TaskType {
  ITC_TSK_TYP_SVC = 0,
  ITC_TSK_TYP_APP = 1,
  ITC_TSK_TYP_LITE = 2
}
 Enumeration of task types. More...
enum  _ITC_TaskState {
  ITC_TSK_UNINITIALIZED = 0,
  ITC_TSK_INITIALIZED = 1,
  ITC_TSK_STARTING = 2,
  ITC_TSK_STARTED = 3,
  ITC_TSK_STOPSYNC = 4,
  ITC_TSK_STOPPING = 5,
  ITC_TSK_CONVERTED = 6
}
 Enumeration of states a task can be in. More...
enum  _ITC_ControlState {
  ITC_CTL_UNINITIALIZED = 0,
  ITC_CTL_INITIALIZED = 1
}
 Enumeration of states the control block can be in. More...

Functions

FORK_cb_status ITC_dispatch (FORK_cb_prm *prm, FORK_msg_hdr *msg)
 The heart of ITC task level dispatching.
unsigned int ITC_dispatchApp (void *prm, const ITC_QueueItem *qitem, void *qipay, unsigned int qilen)
 Find a command in a list of commands indexed by function code.
FORK_cb_status ITC_isTaskDrained (ITC_Task *task)
 Determine if a task has drained all its activities.
FORK_cb_status ITC_startMeta (FORK_cb_prm *prm, FORK_msg_hdr *msg)
 Process a request to start an ITC task.
FORK_cb_status ITC_stopMeta (FORK_cb_prm *prm, FORK_msg_hdr *msg)
 Process a request to stop an ITC task.

Variables

ITC_ControlITC_icb
 Control block for the inter-task communications system.
ITC_TaskITC_tpl [ITC_L_TASKS]
 Application/service/lightweight task pointer list.
ITC_QueueITC_qpl [ITC_L_TASKS][ITC_L_QUEUES]
 Queue pointer list.
ITC_ApidITC_apl [ITC_L_APIDS]
 APID pointer list.
const char * ITC_ctl_states [ITC_L_CTL_STATES]
 String constants for ITC control block states.
const char * ITC_tsk_states [ITC_L_TSK_STATES]
 String constants for ITC task control block states.

Detailed Description

Private definitions for the ITC package.

CVS $Id: ITC_prvdefs.h,v 1.12 2006/10/26 02:00:48 apw Exp $
Author:
A.P.Waite

Enumeration Type Documentation

enum _ITC_ControlState
 

Enumeration of states the control block can be in.

Enumerator:
ITC_CTL_UNINITIALIZED  Uninitialized
ITC_CTL_INITIALIZED  Initialized

enum _ITC_TaskState
 

Enumeration of states a task can be in.

Enumerator:
ITC_TSK_UNINITIALIZED  Task description uninitialized
ITC_TSK_INITIALIZED  Task description initialized
ITC_TSK_STARTING  Task started
ITC_TSK_STARTED  Task started
ITC_TSK_STOPSYNC  Task started
ITC_TSK_STOPPING  Task trying to stop
ITC_TSK_CONVERTED  Task converted (lightweight only)

enum _ITC_TaskType
 

Enumeration of task types.

Enumerator:
ITC_TSK_TYP_SVC  A service task
ITC_TSK_TYP_APP  An application task
ITC_TSK_TYP_LITE  A lightweight task


Function Documentation

FORK_cb_status ITC_dispatch FORK_cb_prm *  prm,
FORK_msg_hdr *  msg
 

The heart of ITC task level dispatching.

Parameters:
prm (in) User context parameter
msg (in) Message buffer
Return values:
FORK_C_CONTINUE Continue fork
~FORK_C_CONTINUE Shut down fork
ITC_dispatch() is the heart of the ITC dispatching mechanism. It's used in both application and service tasks. In application tasks, it does a full protocol dispatch. In service tasks, it uses the service task dispatch (provided at the time the service task was created) to forward the packet to another node.

unsigned int ITC_dispatchApp void *  prm,
const ITC_QueueItem qitem,
void *  qipay,
unsigned int  qilen
 

Find a command in a list of commands indexed by function code.

Parameters:
prm (in) User parameter
qitem (in) Queue item
qipay (in) Queue item payload pointer
qilen (in) Queue item payload length
Return values:
NULL Failure
x Address of routine

FORK_cb_status ITC_isTaskDrained ITC_Task task  ) 
 

Determine if a task has drained all its activities.

Parameters:
task (in) ITC task handle
Return values:
FORK_C_CONTINUE Continue fork
~FORK_C_CONTINUE Shut down fork

unsigned int ITC_startMeta FORK_cb_prm *  prm,
FORK_msg_hdr *  msg
 

Process a request to start an ITC task.

Parameters:
prm (in) User context parameter
msg (in) Message buffer
Return values:
ITC_SUCCESS Success

unsigned int ITC_stopMeta FORK_cb_prm *  prm,
FORK_msg_hdr *  msg
 

Process a request to stop an ITC task.

Parameters:
prm (in) User context parameter
msg (in) Message buffer
Return values:
ITC_SUCCESS Success


Variable Documentation

ITC_Apid ITC_apl[ITC_L_APIDS]
 

APID pointer list.

A mapping table to go from APID/function code to task/queue/callback. This is global, so care must be taken when writing elements of this table that the code is properly protected.

ITC_Control * ITC_icb
 

Control block for the inter-task communications system.

Control block for the inter-task communications system. This is global, so care must be taken when writing elements of this block that the code is properly protected.

ITC_Queue ITC_qpl[ITC_L_TASKS][ITC_L_QUEUES]
 

Queue pointer list.

Per queue control block for the inter-task communications system. These are global, so care must be taken when writing elements of these blocks that the code is properly protected.

ITC_Task * ITC_tpl[ITC_L_TASKS]
 

Application/service/lightweight task pointer list.

Per task control block for the inter-task communications system. These are global, so care must be taken when writing elements of these blocks that the code is properly protected.


Generated on Sat Apr 7 04:32:32 2007 by  doxygen 1.4.4