FSEG-SPI
FLAM Segment Store Exit (FSEG) Service Provider Interface (SPI) Version: 5.2.1-42969
FSEG.h File Reference

FSEG - FLAM Segment Store Service Provider Interface. More...

#include "FLMRTC.h"

Go to the source code of this file.

Data Structures

struct  FsegOpn
 Parameters for FSEG_FUNC_OPN. More...
struct  FsegCls
 Parameters for FSEG_FUNC_CLS. More...
struct  FsegPut
 Parameters for FSEG_FUNC_PUT. More...
struct  FsegGet
 Parameters for FSEG_FUNC_GET. More...
struct  FsegDel
 Parameters for FSEG_FUNC_DEL. More...
struct  FsegExs
 Parameters for FSEG_FUNC_EXS. More...
struct  FsegGmn
 Parameters for FSEG_FUNC_GMN. More...
struct  FsegSmn
 Parameters for FSEG_FUNC_SMN. More...
struct  FsegVsnEnt
 Single version entry returned by FSEG_FUNC_VLS. More...
struct  FsegVls
 Parameters for FSEG_FUNC_VLS. More...
struct  FsegDvs
 Parameters for FSEG_FUNC_DVS. More...
struct  FsegDar
 Parameters for FSEG_FUNC_DAR. More...
struct  FsegPrn
 Parameters for FSEG_FUNC_PRN. More...
struct  FsegCbf
 Parameters for FSEG_FUNC_CBF. More...
struct  FsegFlb
 Parameters for FSEG_FUNC_FLB. More...
struct  FsegNew
 Parameters for FSEG_FUNC_NEW. More...
struct  FsegFre
 Parameters for FSEG_FUNC_FRE. More...
union  FsegPar
 Union of all FSEG function parameter structures. More...

Macros

#define FSEG_FUNC_OPN   1U
 Open storage / connect to archive namespace. Requires prior FSEG_FUNC_NEW (*ppHdl must not be NULL). State transition: NEW -> OPEN.
#define FSEG_FUNC_CLS   2U
 Close / disconnect from storage. The provider handle is not freed; the handle returns to NEW state. The provider must write statistics into TsFsegCls before returning. State transition: OPEN -> NEW.
#define FSEG_FUNC_PUT   3U
 Store a segment (integer key -> blob). OPEN state only.
#define FSEG_FUNC_GET   4U
 Retrieve a segment by integer key (locate, no copy). OPEN state only.
#define FSEG_FUNC_DEL   5U
 Delete a segment by integer key. OPEN state only.
#define FSEG_FUNC_EXS   6U
 Check archive or segment existence. In NEW state (called via SEGSSE exists()): check whether the archive namespace itself exists; TsFsegExs.siSegInd is ignored and the provider opens a temporary connection. In OPEN state (called via SEGSSE checksegment()): check whether the segment at TsFsegExs.siSegInd exists in the open archive.
#define FSEG_FUNC_GMN   7U
 Get the main (root) segment index. OPEN state only.
#define FSEG_FUNC_SMN   8U
 Set the main (root) segment index. OPEN state only.
#define FSEG_FUNC_VLS   9U
 List all versions of the archive. OPEN state only.
#define FSEG_FUNC_DVS   10U
 Delete a specific version of the archive. OPEN state only.
#define FSEG_FUNC_DAR   11U
 Delete the entire archive (all versions). NEW state only. The provider opens a temporary connection, performs the deletion, and closes before returning.
#define FSEG_FUNC_PRN   12U
 Prune old versions, keeping a configurable number. NEW state only. Same self-managed connection pattern as DAR.
#define FSEG_FUNC_CBF   13U
 Create a write buffer (batch hint for the provider). OPEN state only.
#define FSEG_FUNC_FLB   14U
 Flush a write buffer to permanent storage. OPEN state only.
#define FSEG_FUNC_NEW   16U
 Allocate a provider handle and store the archive name and parameter string. No storage I/O is performed. State transition: EMPTY -> NEW. *ppHdl must be NULL on entry; the provider writes the new handle address to *ppHdl.
#define FSEG_FUNC_FRE   17U
 Free the provider handle. No storage I/O is performed. Must be called in NEW state (*ppHdl != NULL, storage closed). State transition: NEW -> EMPTY. The provider must set *ppHdl to NULL.
#define FSEG_DEFLIB_NAME   "libfsse"
 Default shared library name for the FSEG provider.
#define FSEG_DEFFUC_NAME   "FSEGUSR"
 Default exported function name for the FSEG provider.
#define FSEG_VERSION   0x0200U
 Current FSEG interface version (major=2, minor=0).
#define FSEG_VER_MAJOR(v)
 Extract major version from a version word.
#define FSEG_VER_MINOR(v)
 Extract minor version from a version word.
#define FSEG_FLAG_WRITE   0x00000001U
 [INPUT] Write access requested (0 = read-only).
#define FSEG_FLAG_OVERWRITE   0x00000002U
 [INPUT] Overwrite existing archive (reset to empty, version 1 fresh). Set together with FSEG_FLAG_WRITE when the caller requested store.seguser() with the OVERWRITE option. Without this flag a write OPN must fail if the archive already exists.
#define FSEG_FLAG_LOG   0x00000004U
 [INPUT] Enable info-level logging from the SEGSSE bridge and the provider (operational events: provider loaded, OPN/CLS lifecycle). Corresponds to the LOGGING switch in store.seguser() CLEP params. Providers may ignore this flag; it is primarily consumed by SEGSSE.
#define FSEG_FLAG_DEBUG   0x00000008U
 [INPUT] Enable debug-level logging from the SEGSSE bridge and the provider (per-operation detail: PUT/GET index, EXS result, etc.). Corresponds to the DEBUG switch in store.seguser() CLEP params. Has no effect unless FSEG_FLAG_LOG is also set.
#define FSEG_FLAG_TRACE   0x00000010U
 [INPUT] Enable debug trace output by the provider.
#define FSEG_FLAG_ACCESS   0x00000040U
 [INPUT] SAF authorization checks are active for this provider invocation (GLOBAL.SGU.CONTROL defined in RACF $FLAM class). The bridge checked library and function name at FLACACS_READ level (FSEGLIB and FSEGFUC resource classes). See SAF flag semantics table above.
#define FSEG_FLAG_STRONG   0x00000080U
 [INPUT] Set together with FSEG_FLAG_ACCESS when RACF is in strict mode (GLOBAL.MUSTDEF=UPDATE or lower): an undefined resource (RACF RC=4) exceeds the FL5 threshold and causes an abort. In permissive mode (threshold=8) RC=4 is silently accepted and this flag is not set. When set, namespace and parameter were explicitly approved in RACF (FSEGPTH, FSEGPAR). See SAF flag semantics table above.
#define FSEG_FLAG_VERSIONED   0x00000100U
 [INPUT] Archive uses versioning (enables VLS/DVS/DAR/PRN).
#define FSEG_SEGTYP_DAT   1U
 Data segment (raw compressed member data).
#define FSEG_SEGTYP_MBR   2U
 Member descriptor segment (metadata for one member).
#define FSEG_SEGTYP_DIR   3U
 Directory segment (archive-level index).
#define FSEG_IDX_INI   (-1LL)
 Segment index not yet initialized / no main segment set.
#define FSEG_IDX_EMPTY   (-2LL)
 Segment represents an empty (zero-length) member.

Typedefs

typedef struct FsegOpn TsFsegOpn
 Parameters for FSEG_FUNC_OPN.
typedef struct FsegCls TsFsegCls
 Parameters for FSEG_FUNC_CLS.
typedef struct FsegPut TsFsegPut
 Parameters for FSEG_FUNC_PUT.
typedef struct FsegGet TsFsegGet
 Parameters for FSEG_FUNC_GET.
typedef struct FsegDel TsFsegDel
 Parameters for FSEG_FUNC_DEL.
typedef struct FsegExs TsFsegExs
 Parameters for FSEG_FUNC_EXS.
typedef struct FsegGmn TsFsegGmn
 Parameters for FSEG_FUNC_GMN.
typedef struct FsegSmn TsFsegSmn
 Parameters for FSEG_FUNC_SMN.
typedef struct FsegVsnEnt TsFsegVsnEnt
 Single version entry returned by FSEG_FUNC_VLS.
typedef struct FsegVls TsFsegVls
 Parameters for FSEG_FUNC_VLS.
typedef struct FsegDvs TsFsegDvs
 Parameters for FSEG_FUNC_DVS.
typedef struct FsegDar TsFsegDar
 Parameters for FSEG_FUNC_DAR.
typedef struct FsegPrn TsFsegPrn
 Parameters for FSEG_FUNC_PRN.
typedef struct FsegCbf TsFsegCbf
 Parameters for FSEG_FUNC_CBF.
typedef struct FsegFlb TsFsegFlb
 Parameters for FSEG_FUNC_FLB.
typedef struct FsegNew TsFsegNew
 Parameters for FSEG_FUNC_NEW.
typedef struct FsegFre TsFsegFre
 Parameters for FSEG_FUNC_FRE.
typedef union FsegPar TuFsegPar
 Union of all FSEG function parameter structures.
typedef void TfFsegExit(void *pvGbl, void **ppHdl, int *piRetco, const unsigned int *piVersion, const unsigned int *piFunc, TuFsegPar *puPara, const unsigned int *piMsgSiz, char *pcMsg)
 FSEG provider entry point function type.

Detailed Description

FSEG - FLAM Segment Store Service Provider Interface.

Author
limes datentechnik gmbh
Date
2026-04-02