quic/qbox
Loading...
Searching...
No Matches
fss_interfaces.h
1/*
2 * Copyright (c) 2025 Qualcomm Innovation Center, Inc. All Rights Reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef _GS_FSS_INTERFACES_
8#define _GS_FSS_INTERFACES_
9
10#ifdef __cplusplus
11extern "C" {
12#endif
13
14#include <stdint.h>
15
19typedef char fssChar;
20typedef int32_t fssInt32;
21typedef uint64_t fssUint64;
22typedef double fssFloat64;
23
24typedef const fssChar* fssString;
25typedef fssInt32 fssRetStatus;
26typedef fssUint64 fssBusIfItemIndex;
27typedef fssUint64 fssBusIfItemSize;
29
33struct fssBindIf;
34struct fssBusIf;
35struct fssConfigIf;
36struct fssEventsIf;
37struct fssTimeSyncIf;
38struct fssControlIf;
39
49typedef void* fssBusIfItemData;
50
56fssRetStatus fssStatusOk = 0;
57fssRetStatus fssStatusError = -1;
58
63typedef struct {
64 fssTimeInSec from;
65 fssTimeInSec to;
67
68/******************************
69 Declaration of function types
70********************************/
71
83typedef fssString (*fssGetConfigFnPtr)(fssConfigIfHandle configIfHandle, fssString name);
84
93typedef void (*fssEventHandlerFnPtr)(fssEventsIfHandle eventsIfHandle, fssUint64 event);
94
102typedef void (*fssUpdateTimeWindowFnPtr)(fssTimeSyncIfHandle timeSyncIfHandle, TimeWindow window);
103
115typedef fssString (*fssDoCommandFnPtr)(fssControlIfHanlde controlIfHandle, fssString cmd);
116
125typedef fssBusIfItemSize (*fssBusIfGetItemsNumberFnPtr)(fssBusIfHandle busIfHandle);
126
136typedef fssString (*fssBusIfGetNameFromIndexFnPtr)(fssBusIfHandle busIfHandle, fssBusIfItemIndex index);
137
147typedef fssBusIfItemSize (*fssBusIfGetSizeFnPtr)(fssBusIfHandle busIfHandle, fssBusIfItemIndex index);
148
158typedef fssBusIfItemSize (*fssBusIfGetIndexFnPtr)(fssBusIfHandle busIfHandle, fssString name);
159
170typedef fssBusIfItemIndex (*fssBusIfAddItemFnPtr)(fssBusIfHandle busIfHandle, fssString name, fssBusIfItemSize size);
171
181typedef fssBusIfItemData (*fssBusIfGetItemFnPtr)(fssBusIfHandle busIfHandle, fssBusIfItemIndex index);
182
191typedef void (*fssBusIfSetItemFnPtr)(fssBusIfHandle busIfHandle, fssBusIfItemIndex index, fssBusIfItemData data);
192
201typedef void (*fssBusIfTransmitFnPtr)(fssBusIfHandle busIfHandle);
202
214typedef fssRetStatus (*fssBindEventsIfFnPtr)(fssBindIFHandle bindIfHandle, fssString name,
216
229
241typedef fssRetStatus (*fssBindTimeSyncIfFnPtr)(fssBindIFHandle bindIfHandle, fssString name,
243
255typedef fssRetStatus (*fssBindControlIfFnPtr)(fssBindIFHandle bindIfHandle, fssString name,
257
267typedef fssEventsIfHandle (*fssGetEventsIfHandleFnPtr)(fssBindIFHandle bindIfHandle, fssString name);
268
278typedef fssBusIfHandle (*fssGetBusIfFnPtr)(fssBindIFHandle bindIfHandle, fssString name);
279
289typedef fssConfigIfHandle (*fssGetConfigIfFnPtr)(fssBindIFHandle bindIfHandle, fssString name);
290
301typedef fssTimeSyncIfHandle (*fssGetTimeSyncIfHandleFnPtr)(fssBindIFHandle bindIfHandle, fssString name);
302
312typedef fssControlIfHanlde (*fssGetControlIfHandleFnPtr)(fssBindIFHandle bindIfHandle, fssString name);
313
314/******************************
315 Declaration of interfaces
316********************************/
317
321typedef struct fssBusIf {
322 fssUint64 version;
323 fssBusIfGetItemsNumberFnPtr getNumber;
324 fssBusIfGetNameFromIndexFnPtr getName;
325 fssBusIfGetSizeFnPtr getSize;
326 fssBusIfGetIndexFnPtr getIndex;
327 fssBusIfAddItemFnPtr addItem;
328 fssBusIfGetItemFnPtr getItem;
329 fssBusIfSetItemFnPtr setItem;
330 fssBusIfTransmitFnPtr transmit;
331} fssBusIf;
332
336typedef struct fssConfigIf {
337 fssUint64 version;
338 fssGetConfigFnPtr getConfigs;
340
344typedef struct fssEventsIf {
345 fssUint64 version;
346 fssEventHandlerFnPtr handleEvents;
348
352typedef struct fssTimeSyncIf {
353 fssUint64 version;
354 fssUpdateTimeWindowFnPtr updateTimeWindow;
356
360typedef struct fssControlIf {
361 fssUint64 version;
362 fssDoCommandFnPtr doCommand;
364
368typedef struct fssBindIf {
369 fssUint64 version;
370 fssBindEventsIfFnPtr bindEventsIf;
371 fssBindBusIfFnPtr bindBusIf;
372 fssBindTimeSyncIfFnPtr bindTimeSyncIf;
373 fssBindControlIfFnPtr bindControlIf;
374 fssGetEventsIfHandleFnPtr getEventsIfHandle;
375 fssGetBusIfFnPtr getBusIfHandle;
376 fssGetTimeSyncIfHandleFnPtr getTimeSyncIfHandle;
377 fssGetControlIfHandleFnPtr getControlIfHandle;
378} fssBindIf;
379
380#if defined _WIN32 || defined __CYGWIN__
381#define fssExport __attribute__((dllexport))
382#else
383#if __GNUC__ >= 4
384#define fssExport __attribute__((visibility("default")))
385#else
386#define fssExport
387#endif
388#endif
389
400
409fssExport fssRetStatus fssDestroyNode(fssBindIFHandle bindIfHandle);
410
411#ifdef __cplusplus
412}
413#endif
414
415#endif
Definition target.h:160
Time window struct declaration 'from' and 'to' members are 64 floating point types to represent time ...
Definition fss_interfaces.h:63
Bind interface encapsulates the functions to bind different interfaces.
Definition fss_interfaces.h:368
Bus Interface encapsulates the data which can be transmitted on a bus.
Definition fss_interfaces.h:321
Configuration interface encapsulates the function to get configurations.
Definition fss_interfaces.h:336
Control interface encapsulates the function to inject and query parameters.
Definition fss_interfaces.h:360
Events interface encapsulates the function to handle simulation events.
Definition fss_interfaces.h:344
Time synchronization interface encapsulates the function to handle time window update.
Definition fss_interfaces.h:352