/usr/include/sda.h is in libion-dev 3.2.1+dfsg-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 | /*
* sda.h: definitions supporting the implementation of SDA Service
* Data Aggregation (SDA) functionality.
*
* Copyright (c) 2013, California Institute of Technology.
* ALL RIGHTS RESERVED. U.S. Government Sponsorship acknowledged.
*
* Author: Scott Burleigh, JPL
*/
#include "ltp.h"
#ifndef _SDA_H_
#define _SDA_H_
#ifdef __cplusplus
extern "C" {
#endif
typedef vast (*SdaDelimiterFn)(unsigned int clientId,
unsigned char *buffer,
vast bufferLength);
/* An SDA delimiter function inspects the client
* service data bytes in "buffer" - the first
* "bufferLength" bytes of the as-yet unprocessed
* remnant of an LTP service data block - to
* determine the length of the client data unit
* at the start of the buffer; the "clientID" of
* the client data unit is provided to aid in
* this determination. It returns that length
* if the determination was successful, zero if
* there is no valid client service data unit
* at the start of the buffer, -1 on any other
* failure. */
typedef int (*SdaHandlerFn)(uvast sourceEngineId,
unsigned int clientId,
Object clientServiceData); /* ZCO */
/* An SDA handler function applies application
* processing to the client service data unit
* for client "clientID" that is identified by
* clientServiceData. It returns -1 on any
* system error, otherwise zero. */
/* * * SDA data transmission * * * */
extern int sda_send(uvast destinationEngineId,
unsigned int clientId,
Object clientServiceData);
/* clientServiceData must be a "zero-copy object"
* reference as returned by zco_create(). Note
* that SDA will privately make and destroy its
* own reference to the client service data; the
* application is free to destroy its reference
* at any time. Note that the client service
* data unit will be sent reliably (i.e., "red"). */
/* * * SDA data reception * * * */
extern int sda_run(SdaDelimiterFn delimiter, SdaHandlerFn handler);
/* sda_run executes an infinite loop that receives
* client service data blocks, calls "delimiter"
* to determine the length of each client service
* data item in each block, and passes those client
* service data items to the handler function. To
* terminate the loop, call sda_interrupt(). Note
* that sda_send() can only be executed while the
* sda_run loop is still executing. */
extern void sda_interrupt();
#ifdef __cplusplus
}
#endif
#endif
|