/usr/include/sda.h is in libion-dev 3.2.0~dfsg1-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 | /*
* 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 char *buffer, vast bufferLength);
/* An SDA delimiter function inspects the client
* service data bytes in "buffer" - the initial
* "bufferLength" bytes of an LTP service data
* block - to determine the length of the client
* service data item at the start of the block.
* It returns that length if the determination
* was successful, zero if there is no valid
* client service data item at the start of the
* block, -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 item
* (a ZCO) 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 lock, 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
|