GLAST / LAT > DAQ and FSW > FSW > Doxygen Index> ITC / V3-9-1 > itc / 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"

Classes

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 struct
_ITC_TaskConfirm 
ITC_TaskConfirm
 Typedef for struct _ITC_TaskConfirm.
typedef struct _ITC_Fork ITC_Fork
 Typedef for struct _ITC_Fork.
typedef struct _ITC_Apid ITC_Apid
 Typedef for struct _ITC_Apid.
typedef struct
_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 Thu Jul 30 16:44:38 2009 by  doxygen 1.5.3