GLAST/LAT > DAQ and FSW > FSW > Doxygen Index > ITC / V2-1-7

Constituent: itc     Tag: rad750


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/FPA.h"
#include "PBS/MTX.h"
#include "PBS/RW.ih"
#include "ITC/ITC_apidefs.h"
#include "ITC/ITC_pubdefs.h"

Include dependency graph for ITC_prvdefs.h:

Include dependency graph

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

Included by dependency graph

Data Structures

struct  _ITC_Apid
 Structure to hold ITC per command APID information. More...

struct  _ITC_CommandCount
 Structure to hold per task command count information. More...

struct  _ITC_Control
 Structure to hold the ITC control block. More...

struct  _ITC_PacketHdr
 Structure to hold an ITC packet header. More...

union  _ITC_PacketITCp
 Union packet control bit-fields with underlying unsigned int. More...

struct  _ITC_PacketITCp_bf
 Define control bit-fields for the packet header. More...

union  _ITC_PacketLATp
 Union packet control bit-fields with underlying unsigned int. More...

struct  _ITC_PacketLATp_bf
 Define control bit-fields for the packet header. More...

struct  _ITC_Pool
 Structure to store a memory pool (with it's allocator handle). More...

struct  _ITC_PoolControl
 Structure to store memory pool control. More...

struct  _ITC_Queue
 Structure to hold ITC per queue information. More...

struct  _ITC_QueueItem
 Structure to hold an ITC queueable item. More...

struct  _ITC_Task
 Structure to hold ITC per task information. More...

struct  _ITC_TaskResponse
 Structure to hold ITC per task response information. More...


Defines

#define ITC_L_LISTPOOL   (12)
 Maximum number of memory sub-pools.

#define ITC_K_RECVPOOL   (7)
 Receive memory pools: minimum packet size.

#define ITC_L_RECVPOOL   (6)
 Receive memory pools: range of packet size.

#define ITC_K_SENDPOOL   (7)
 Send memory pools: minimum packet size.

#define ITC_L_SENDPOOL   (6)
 Send memory pools: range of packet size.

#define ITC_L_APIDS   (ITC_L_APID_CMDRX + ITC_L_APID_BCST)
 Number of recognized APIDs.


Typedefs

typedef enum _ITC_ControlState ITC_ControlState
 Typedef for enum _ITC_ControlState.

typedef enum _ITC_TaskState ITC_TaskState
 Typedef for enum _ITC_TaskState.

typedef enum _ITC_PoolState ITC_PoolState
 Typedef for enum _ITC_PoolState.

typedef _ITC_PacketLATp_bf ITC_PacketLATp_bf
 Typedef for struct _ITC__PacketLATp_bf.

typedef _ITC_PacketLATp ITC_PacketLATp
 Typedef for struct _ITC_PacketLATp.

typedef _ITC_PacketITCp_bf ITC_PacketITCp_bf
 Typedef for struct _ITC__PacketITCp_bf.

typedef _ITC_PacketITCp ITC_PacketITCp
 Typedef for struct _ITC_PacketITCp.

typedef _ITC_Pool ITC_Pool
 Typedef for struct _ITC_Pool.

typedef _ITC_PoolControl ITC_PoolControl
 Typedef for struct _ITC_PoolControl.

typedef _ITC_CommandCount ITC_CommandCount
 Typedef for struct _ITC_CommandCount.

typedef _ITC_TaskResponse ITC_TaskResponse
 Typedef for struct _ITC_TaskResponse.

typedef _ITC_Apid ITC_Apid
 Typedef for struct _ITC_Apid.

typedef _ITC_Control ITC_Control
 Typedef for struct _ITC_Control.


Enumerations

enum  _ITC_ControlState {
  ITC_CTL_UNKNOWN = -1,
  ITC_CTL_UNINITIALIZED = 0,
  ITC_CTL_INITIALIZED = 1
}
 Enumeration of states the control block can be in. More...

enum  _ITC_TaskState {
  ITC_TSK_UNKNOWN = -1,
  ITC_TSK_INITIALIZED = 0,
  ITC_TSK_STARTED = 1,
  ITC_TSK_STOPPING = 2,
  ITC_TSK_CONVERTED = 3
}
 Enumeration of states a list of queues can be in. More...

enum  _ITC_PoolState {
  ITC_MEM_UNKNOWN = -1,
  ITC_MEM_UNAVAILABLE = 0,
  ITC_MEM_AVAILABLE = 1,
  ITC_MEM_DISABLED = 2
}
 Enumeration of states a memory pool can be in. More...


Functions

unsigned int ITC_createPool (ITC_PoolControl *poolCtl, unsigned int poolCnt, ITC_PoolDsc *poolDsc)
 Create fixed packet allocation memory pools.

void ITC_deletePool (ITC_PoolControl *poolCtl)
 Delete fixed packet allocation memory pool.

FORK_cb_status ITC_dispatch (FORK_cb_prm *prm, FORK_msg_hdr *msg)
 The heart of ITC task level dispatching.

unsigned int ITC_validPool (unsigned int sizeMin, unsigned int sizeRng, unsigned int poolCnt, const ITC_PoolDsc *poolDsc, const char *func)
 Create fixed packet allocation memory pools.


Variables

ITC_ControlITC_icb
 Control block for the inter-task communications system.

ITC_TaskITC_tpl [ITC_L_TASKS+ITC_L_LITES]
 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.


Detailed Description

Private definitions for the ITC package.

CVS $Id: ITC_prvdefs.h,v 1.5 2004/11/24 01:52:46 apw Exp $
Author:
A.P.Waite

Enumeration Type Documentation

enum _ITC_ControlState
 

Enumeration of states the control block can be in.

Enumeration values:
ITC_CTL_UNKNOWN  Unknown state (guard value)
ITC_CTL_UNINITIALIZED  Uninitialized
ITC_CTL_INITIALIZED  Initialized

enum _ITC_PoolState
 

Enumeration of states a memory pool can be in.

Enumeration values:
ITC_MEM_UNKNOWN  Unknown
ITC_MEM_UNAVAILABLE  Unavailable (no such pool)
ITC_MEM_AVAILABLE  Available to allocate packets
ITC_MEM_DISABLED  Disabled (draining)

enum _ITC_TaskState
 

Enumeration of states a list of queues can be in.

Enumeration values:
ITC_TSK_UNKNOWN  Unknown state (guard value)
ITC_TSK_INITIALIZED  Task description initialized
ITC_TSK_STARTED  Task started
ITC_TSK_STOPPING  Task trying to stop
ITC_TSK_CONVERTED  Task converted (lightweight only)


Function Documentation

unsigned int ITC_createPool ITC_PoolControl poolCtl,
unsigned int  poolCnt,
ITC_PoolDsc poolDsc
 

Create fixed packet allocation memory pools.

Parameters:
poolCtl (out) Pool control block
poolCnt (in) Pool descriptor count
poolDsc (in) Pool descriptors
Return values:
ITC_ALOCFAIL Memory allocation failure
ITC_FPAINIT FPA initialization failure
ITC_SUCCESS Success
ITC_createPool() creates a memory pool.

Here is the call graph for this function:

void ITC_deletePool ITC_PoolControl poolCtl  ) 
 

Delete fixed packet allocation memory pool.

Parameters:
poolCtl (in) Memory pool control block
ITC_deletePool() deletes an ITC memory pool.

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.

Nearly true. The dispatcher also recognizes the special status of the "meta" queues. This mechanism is entirely internal to ITC (it's used to start, stop and otherwise interrogate the state of an ITC based task). These are dispatched the same way in all ITC based tasks.

Here is the call graph for this function:

unsigned int ITC_validPool unsigned int  sizeMin,
unsigned int  sizeRng,
unsigned int  poolCnt,
const ITC_PoolDsc poolDsc,
const char *  func
 

Create fixed packet allocation memory pools.

Parameters:
sizeMin (in) Minimum packet size (powers of two)
sizeRng (in) Range of packet sizes (powers of two)
poolCnt (in) Pool descriptor count
poolDsc (in) Pool descriptors
func (in) Name of calling routine
Return values:
ITC_POOLCNT Pool member count out of valid range
ITC_POOLPKT Pool member size out of valid range
ITC_POOLSRT Pool members not sorted
ITC_SUCCESS Success
ITC_validPool() validates a memory pool creation request.


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+ITC_L_LITES]
 

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 Mar 3 20:43:28 2005 by doxygen 1.3.3