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

Packet allocation/send routines for ITC. More...

#include "PBI/TBD_id.h"
#include "PBS/TBD.ih"
#include "PBS/FFS.ih"
#include "MSG/MSG_pubdefs.h"
#include "ITC/ITC_msgs.h"
#include "ITC_prvdefs.h"

Include dependency graph for ITC_send.c:

Include dependency graph

Functions

void ITC_free (void *prm, ITC_QueueItem *qitem)
 Free a queue item allocated with ITC_allocW().

unsigned int validSend (ITC_NodeID nid, ITC_TaskID tid, ITC_QueueID qid, ITC_ProtID pid)
 Check the send arguments for validity.

const ITC_QueueItemITC_allocW (unsigned int size, ITC_NodeID nid, ITC_TaskID tid, ITC_QueueID qid, ITC_ProtID pid, const TOC *toc)
 Allocate a queue item descriptor and a send buffer.

void ITC_freeQueueItem (const struct _ITC_QueueItem *qitem)
 Free a queue item and it's associated packet.

unsigned int ITC_send (const struct _ITC_QueueItem *qitem)
 Send a queue item to a destination.


Detailed Description

Packet allocation/send routines for ITC.

CVS $Id: ITC_send.c,v 1.6 2005/01/19 03:18:32 apw Exp $
Author:
A.P.Waite

Function Documentation

const ITC_QueueItem* ITC_allocW unsigned int  size,
ITC_NodeID  nid,
ITC_TaskID  tid,
ITC_QueueID  qid,
ITC_ProtID  pid,
const TOC *  toc
 

Allocate a queue item descriptor and a send buffer.

Parameters:
size (in) Size (bytes) of buffer payload to allocate
nid (in) Destination node ID
tid (in) Destination task ID
qid (in) Destination queue ID
pid (in) Protocol ID
toc (in) Time-out control
Return values:
ITC_ALOCFAIL Memory allocation failure
ITC_FPAGET Memory allocation from FPA failed
ITC_SENDNID Invalid/unreachable destination node
ITC_SENDQID Invalid/unreachable destination queue
ITC_SHRMEM Shared memory pool stopping/stopped
ITC_SUCCESS Success
Warning:
Can return NULL if the request could never be satisfied.

Allocations currently limited to 2 kByte

Allocates a queue-able buffer long enough to accomodate the requested length payload. Note that this is an ITC payload, not a CCSDS payload. When allocating for a CCSDS packet, size must include the CCSDS header (both primary and secondary), the CCSDS payload and (when appropriate) the CCSDS checksum.

Here is the call graph for this function:

void ITC_free void *  prm,
ITC_QueueItem qitem
[static]
 

Free a queue item allocated with ITC_allocW().

Parameters:
prm (in) User parameter (queue item's memory pool)
qitem (in) Queue item
This is a specific instance of a free routine written to the ITC_cb_Free callback standard. This instance is used in conjunction with the ITC_allocW() method of packet allocation.

void ITC_freeQueueItem const struct _ITC_QueueItem qitem  ) 
 

Free a queue item and it's associated packet.

Parameters:
qitem (in) Queue item

unsigned int ITC_send const struct _ITC_QueueItem qitem  ) 
 

Send a queue item to a destination.

Parameters:
qitem (in) Queue item to send
Return values:
ITC_SENDTID Destination task stopping/stopped
ITC_SUCCESS Success
ITC_send() sends a packet to a destination..

Here is the call graph for this function:

unsigned int validSend ITC_NodeID  nid,
ITC_TaskID  tid,
ITC_QueueID  qid,
ITC_ProtID  pid
[static]
 

Check the send arguments for validity.

Parameters:
nid Destination node ID
tid Destination task ID
qid Destination queue ID
pid Protocol ID
Return values:
ITC_NODERNG Node out of valid node range
ITC_PROTRNG Protocol out of valid protocol range
ITC_QUEURNG Queue out of valid queue range
ITC_TASKRNG Task out of valid task range
ITC_SUCCESS Success


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