This file is indexed.

/usr/include/saf/ais_message.h is in libheartbeat2-dev 1:3.0.5+hg12629-1.2.

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
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
#ifndef _AIS_MESSAGE_H_
#define _AIS_MESSAGE_H_

#include "ais_base.h"

/* Chapter 9 */
#ifdef __CPLUSPLUS
extern "C" {
#endif

typedef OPAQUE_TYPE SaMsgHandleT;
typedef OPAQUE_TYPE SaMsgMessageHandleT;
typedef OPAQUE_TYPE SaMsgQueueHandleT;
typedef OPAQUE_TYPE SaMsgSenderIdT;


#define SA_MSG_MESSAGE_DELIVERED_ACK 0x1
typedef SaUint32T SaMsgAckFlagsT;

#define SA_MSG_QUEUE_PERSISTENT 0x1
#define SA_MSG_QUEUE_MIGRATABLE 0x2
typedef SaUint32T SaMsgQueueCreationFlagsT;

#define SA_MSG_MESSAGE_HIGHEST_PRIORITY 0
#define SA_MSG_MESSAGE_LOWEST_PRIORITY 3

typedef struct {
    SaMsgQueueCreationFlagsT creationFlags;
    SaSizeT size[SA_MSG_MESSAGE_LOWEST_PRIORITY + 1];
    SaTimeT retentionTime;
} SaMsgQueueCreationAttributesT;

#define SA_MSG_QUEUE_CREATE 0x1
#define SA_MSG_QUEUE_RECEIVE_CALLBACK 0x2
#define SA_MSG_QUEUE_SELECTION_OBJECT_SET 0x4
#define SA_MSG_QUEUE_EMPTY 0x8
typedef SaUint32T SaMsgQueueOpenFlagsT;

typedef enum {
    SA_MSG_QUEUE_UNAVAILABLE = 1,
    SA_MSG_QUEUE_AVAILABLE = 2
} SaMsgQueueSendingStateT;

typedef struct {
    SaUint32T queueSize;
    SaSizeT queueUsed;
    SaUint32T numberOfMessages;
} SaMsgQueueUsageT;

typedef struct {
    SaMsgQueueSendingStateT sendingState;
    SaMsgQueueCreationFlagsT creationFlags;
    SaMsgQueueOpenFlagsT openFlags;
    SaTimeT retentionTime;
    SaTimeT closeTime;
    SaSizeT headerLength;
    SaMsgQueueUsageT saMsgQueueUsage[SA_MSG_MESSAGE_LOWEST_PRIORITY + 1];
} SaMsgQueueStatusT;

typedef enum {
    SA_MSG_QUEUE_GROUP_ROUND_ROBIN = 1
} SaMsgQueueGroupPolicyT;

typedef enum {
    SA_MSG_QUEUE_GROUP_NO_CHANGE = 1,
    SA_MSG_QUEUE_GROUP_ADDED = 2,
    SA_MSG_QUEUE_GROUP_REMOVED = 3,
    SA_MSG_QUEUE_GROUP_STATE_CHANGED = 4
} SaMsgQueueGroupChangesT;

typedef struct {
    SaNameT queueName;
    SaMsgQueueStatusT queueStatus;
} SaMsgQueueGroupMemberT;

typedef struct {
    SaMsgQueueGroupChangesT change;
    SaMsgQueueGroupMemberT member;
} SaMsgQueueGroupNotificationT;

typedef struct {
    SaUint32T numberOfItems;
    SaMsgQueueGroupNotificationT *notification;
} SaMsgQueueGroupNotificationBufferT;

typedef struct {
    SaSizeT type;
    SaSizeT version;
    SaSizeT size;
    void *data;
    SaUint8T priority;
} SaMsgMessageT;

typedef struct {
    SaTimeT sendTime;
    SaNameT senderName;
    SaBoolT sendReceive;
    SaMsgSenderIdT senderId;
} SaMsgMessageInfoT;

typedef void
(*SaMsgQueueOpenCallbackT)(SaInvocationT invocation,
                           const SaMsgQueueHandleT *queueHandle,
                           SaErrorT error);
typedef void 
(*SaMsgQueueGroupTrackCallbackT)(const SaNameT *queueGroupName,
                                 const SaMsgQueueGroupNotificationBufferT 
                                     *notificationBuffer,
                                 SaMsgQueueGroupPolicyT queueGroupPolicy,
                                 SaUint32T numberOfMembers,
                                 SaErrorT error);

typedef void 
(*SaMsgMessageDeliveredCallbackT)(SaInvocationT invocation,
                                  SaErrorT error);

typedef void 
(*SaMsgMessageReceivedCallbackT)(const SaMsgQueueHandleT *queueHandle);

typedef struct {
    const SaMsgQueueOpenCallbackT saMsgQueueOpenCallback;
    const SaMsgQueueGroupTrackCallbackT saMsgQueueGroupTrackCallback;
    const SaMsgMessageDeliveredCallbackT saMsgMessageDeliveredCallback;
    const SaMsgMessageReceivedCallbackT saMsgMessageReceivedCallback; } SaMsgCallbacksT;

    SaErrorT 
saMsgInitialize(SaMsgHandleT *msgHandle, const SaMsgCallbacksT *msgCallbacks,
                const SaVersionT *version);

    SaErrorT 
saMsgSelectionObjectGet(const SaMsgHandleT *msgHandle,
                        SaSelectionObjectT *selectionObject);

    SaErrorT 
saMsgDispatch(const SaMsgHandleT *msgHandle, SaDispatchFlagsT dispatchFlags);

    SaErrorT 
saMsgFinalize(SaMsgHandleT *msgHandle);

    SaErrorT 
saMsgQueueOpen(const SaMsgHandleT *msgHandle,
               const SaNameT *queueName,
               const SaMsgQueueCreationAttributesT *creationAttributes,
               SaMsgQueueOpenFlagsT openFlags,
               SaTimeT timeout,
               SaMsgQueueHandleT *queueHandle);

    SaErrorT 
saMsgQueueOpenAsync(const SaMsgHandleT *msgHandle,
                    SaInvocationT invocation,
                    const SaNameT *queueName,
                    const SaMsgQueueCreationAttributesT *creationAttributes,
                    SaMsgQueueOpenFlagsT openFlags);

    SaErrorT 
saMsgQueueClose(SaMsgQueueHandleT *queueHandle);

    SaErrorT 
saMsgQueueStatusGet(SaMsgHandleT *msgHandle,
                    const SaNameT *queueName,
                    SaMsgQueueStatusT *queueStatus);

    SaErrorT 
saMsgQueueUnlink(SaMsgHandleT *msgHandle, const SaNameT *queueName);

    SaErrorT
saMsgQueueGroupCreate(SaMsgHandleT *msgHandle,
                      const SaNameT *queueGroupName,
                      SaMsgQueueGroupPolicyT queueGroupPolicy);

    SaErrorT 
saMsgQueueGroupDelete(SaMsgHandleT *msgHandle, const SaNameT *queueGroupName);

    SaErrorT 
saMsgQueueGroupInsert(SaMsgHandleT *msgHandle,
                      const SaNameT *queueGroupName,
                      const SaNameT *queueName);

    SaErrorT 
saMsgQueueGroupRemove(SaMsgHandleT *msgHandle,
                      const SaNameT *queueGroupName,
                      const SaNameT *queueName);

    SaErrorT 
saMsgQueueGroupTrack(const SaMsgHandleT *msgHandle,
                     const SaNameT *queueGroupName,
                     SaUint8T trackFlags,
                     SaMsgQueueGroupNotificationBufferT *notificationBuffer);

    SaErrorT 
saMsgQueueGroupTrackStop(const SaMsgHandleT *msgHandle,
                         const SaNameT *queueGroupName);

    SaErrorT 
saMsgMessageSend(const SaMsgHandleT *msgHandle,
                 const SaNameT *destination,
                 const SaMsgMessageT *message,
                 SaMsgAckFlagsT ackFlags,
                 SaTimeT timeout);

    SaErrorT 
saMsgMessageSendAsync(const SaMsgHandleT *msgHandle,
                      SaInvocationT invocation,
                      const SaNameT *destination,
                      const SaMsgMessageT *message,
                      SaMsgAckFlagsT ackFlags);

    SaErrorT
saMsgMessageGet(const SaMsgQueueHandleT *queueHandle,
                SaMsgMessageT *message,
                SaMsgMessageInfoT *messageInfo,
                SaTimeT timeout);

    SaErrorT 
saMsgMessageReceivedGet(const SaMsgQueueHandleT *queueHandle,
                        const SaMsgMessageHandleT *messageHandle,
                        SaMsgMessageT *message,
                        SaMsgMessageInfoT *messageInfo);

    SaErrorT 
saMsgMessageCancel(const SaMsgQueueHandleT *queueHandle);

    SaErrorT 
saMsgMessageSendReceive(SaMsgHandleT msgHandle,
			const SaNameT *destination,
                        const SaMsgMessageT *sendMessage,
                        SaMsgMessageT *receiveMessage,
			SaTimeT *replySendTime,
                        SaTimeT timeout);

    SaErrorT 
saMsgMessageReply(SaMsgHandleT msgHandle,
		  const SaMsgMessageT *replyMessage,
                  const SaMsgSenderIdT *senderId,
                  SaTimeT timeout);

    SaErrorT 
saMsgMessageReplyAsync(SaMsgHandleT msgHandle,
                       SaInvocationT invocation,
                       const SaMsgMessageT *replyMessage,
		       const SaMsgSenderIdT *senderId,
                       SaMsgAckFlagsT ackFlags);
#ifdef __CPLUSPLUS
}
#endif
#endif /* _AIS_MESSAGE_H_ */