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_dispatch.c File Reference

Collection of dispatcher routines. More...

#include <string.h>
#include "PBS/FORK.h"
#include "PBS/TOC.h"
#include "MSG/MSG_pubdefs.h"
#include "CCSDS/CCSDS_pkt.h"
#include "ITC/ITC_pubdefs.h"
#include "ITC/ITC_msgs.h"
#include "ITC_confirm.h"
#include "ITC_inline.ih"
#include "ITC_prvdefs.h"

Include dependency graph for ITC_dispatch.c:

Include dependency graph

Functions

ITC_cb_ProcessorfindProcessor (const ITC_CommandList *lst, unsigned int fnc)
 Find a command in a list of commands indexed by function code.

unsigned int ITC_dispatchCTDB (void *prm, unsigned char *pkt)
 Driver level packet dispatch (used in CTDB driver).

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


Detailed Description

Collection of dispatcher routines.

CVS $Id: ITC_dispatch.c,v 1.8 2005/01/07 05:05:43 apw Exp $
Author:
A.P.Waite

Function Documentation

ITC_cb_Processor * findProcessor const ITC_CommandList lst,
unsigned int  fnc
[inline, static]
 

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

Parameters:
lst (in) Command list
fnc (in) Function code
Return values:
NULL Failure
x Address of routine

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_dispatchCTDB void *  prm,
unsigned char *  pkt
 

Driver level packet dispatch (used in CTDB driver).

Parameters:
prm (in) User context parameter
pkt (in) CCSDS telecommand (first byte of primary header)
Return values:
ITC_SUCCESS Success
ITC_ALOCFAIL Cannot allocate packet to forward the command
ITC_APIDRNG APID invalid as spacecraft command
ITC_APIDTBL APID has no associated APID table entry
ITC_QUEUTBL APID does not map to a queue table entry
ITC_GENERROR Generic error
ITC_dispatchCTDB() is designed for use in the CTDB receive task. It performs the first tier dispatch to a task/queue.

Here is the call graph for this function:


Generated on Thu Mar 3 20:43:10 2005 by doxygen 1.3.3