146#define FSEG_FUNC_OPN 1U
151#define FSEG_FUNC_CLS 2U
153#define FSEG_FUNC_PUT 3U
156#define FSEG_FUNC_GET 4U
158#define FSEG_FUNC_DEL 5U
166#define FSEG_FUNC_EXS 6U
168#define FSEG_FUNC_GMN 7U
170#define FSEG_FUNC_SMN 8U
172#define FSEG_FUNC_VLS 9U
174#define FSEG_FUNC_DVS 10U
178#define FSEG_FUNC_DAR 11U
181#define FSEG_FUNC_PRN 12U
184#define FSEG_FUNC_CBF 13U
186#define FSEG_FUNC_FLB 14U
192#define FSEG_FUNC_NEW 16U
197#define FSEG_FUNC_FRE 17U
206#define FSEG_DEFLIB_NAME "libfsse"
208#define FSEG_DEFFUC_NAME "FSEGUSR"
239#define FSEG_VERSION 0x0200U
241#define FSEG_VER_MAJOR(v) ((v) >> 8)
243#define FSEG_VER_MINOR(v) ((v) & 0xFFU)
289#define FSEG_FLAG_WRITE 0x00000001U
294#define FSEG_FLAG_OVERWRITE 0x00000002U
299#define FSEG_FLAG_LOG 0x00000004U
304#define FSEG_FLAG_DEBUG 0x00000008U
306#define FSEG_FLAG_TRACE 0x00000010U
313#define FSEG_FLAG_ACCESS 0x00000040U
321#define FSEG_FLAG_STRONG 0x00000080U
323#define FSEG_FLAG_VERSIONED 0x00000100U
336#define FSEG_SEGTYP_DAT 1U
338#define FSEG_SEGTYP_MBR 2U
340#define FSEG_SEGTYP_DIR 3U
349#define FSEG_IDX_INI (-1LL)
351#define FSEG_IDX_EMPTY (-2LL)
794 const unsigned int* piVersion,
795 const unsigned int* piFunc,
797 const unsigned int* piMsgSiz,
FLMRTC - FLAM-Return-Codes.
struct FsegGmn TsFsegGmn
Parameters for FSEG_FUNC_GMN.
struct FsegFlb TsFsegFlb
Parameters for FSEG_FUNC_FLB.
struct FsegPut TsFsegPut
Parameters for FSEG_FUNC_PUT.
struct FsegGet TsFsegGet
Parameters for FSEG_FUNC_GET.
struct FsegOpn TsFsegOpn
Parameters for FSEG_FUNC_OPN.
struct FsegPrn TsFsegPrn
Parameters for FSEG_FUNC_PRN.
struct FsegDvs TsFsegDvs
Parameters for FSEG_FUNC_DVS.
struct FsegDar TsFsegDar
Parameters for FSEG_FUNC_DAR.
struct FsegCbf TsFsegCbf
Parameters for FSEG_FUNC_CBF.
struct FsegVls TsFsegVls
Parameters for FSEG_FUNC_VLS.
struct FsegFre TsFsegFre
Parameters for FSEG_FUNC_FRE.
struct FsegExs TsFsegExs
Parameters for FSEG_FUNC_EXS.
struct FsegNew TsFsegNew
Parameters for FSEG_FUNC_NEW.
struct FsegCls TsFsegCls
Parameters for FSEG_FUNC_CLS.
struct FsegDel TsFsegDel
Parameters for FSEG_FUNC_DEL.
struct FsegSmn TsFsegSmn
Parameters for FSEG_FUNC_SMN.
union FsegPar TuFsegPar
Union of all FSEG function parameter structures.
struct FsegVsnEnt TsFsegVsnEnt
Single version entry returned by FSEG_FUNC_VLS.
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.
Definition FSEG.h:790
Parameters for FSEG_FUNC_CBF.
Definition FSEG.h:624
unsigned int uiMaxSiz
[INPUT] Maximum buffer size hint in bytes (0 = provider default).
Definition FSEG.h:628
unsigned int uiBufId
[OUTPUT] Buffer ID assigned by the provider.
Definition FSEG.h:626
Parameters for FSEG_FUNC_CLS.
Definition FSEG.h:422
unsigned long long uiTotalBytesWritten
[OUTPUT] Total bytes written to the backing store (segment payloads plus any format overhead such as ...
Definition FSEG.h:431
unsigned int isCommit
[INPUT] 1 = commit writes; 0 = rollback / abort.
Definition FSEG.h:424
unsigned long long uiSegmentBytesWritten
[OUTPUT] Pure segment payload bytes written (sum of all segment data lengths passed to PUT,...
Definition FSEG.h:436
unsigned int uiPad0
[DUMMY] Alignment pad; set to 0.
Definition FSEG.h:426
Parameters for FSEG_FUNC_DAR.
Definition FSEG.h:597
unsigned int uiVerDel
[OUTPUT] Number of versions deleted.
Definition FSEG.h:599
Parameters for FSEG_FUNC_DEL.
Definition FSEG.h:490
unsigned int uiRes0
Reserved; set to 0.
Definition FSEG.h:496
long long siSegInd
[INPUT] Segment index to delete.
Definition FSEG.h:492
unsigned int uiDelLen
[OUTPUT] Size of the deleted segment in bytes (0 if unknown).
Definition FSEG.h:494
Parameters for FSEG_FUNC_DVS.
Definition FSEG.h:585
unsigned int uiVerDel
[OUTPUT] Number of versions actually deleted (0 or 1).
Definition FSEG.h:589
long long siVerId
[INPUT] Version ID to delete.
Definition FSEG.h:587
Parameters for FSEG_FUNC_EXS.
Definition FSEG.h:512
long long siSegInd
[INPUT] Segment index to check.
Definition FSEG.h:514
unsigned int isExists
[OUTPUT] 1 if the segment exists, 0 if it does not.
Definition FSEG.h:516
unsigned int uiRes0
Reserved, must be set to 0.
Definition FSEG.h:518
Parameters for FSEG_FUNC_FLB.
Definition FSEG.h:637
unsigned int uiSegCnt
[INPUT] Number of PUT calls issued since the matching CBF call.
Definition FSEG.h:641
unsigned int uiBufId
[INPUT] Buffer ID to flush (from the matching CBF call).
Definition FSEG.h:639
Parameters for FSEG_FUNC_FRE.
Definition FSEG.h:678
unsigned int uiRes0
[DUMMY] Reserved; set to 0.
Definition FSEG.h:680
Parameters for FSEG_FUNC_GET.
Definition FSEG.h:476
const unsigned char ** ppSegDat
[OUTPUT] Locate pointer to segment data (provider-owned buffer).
Definition FSEG.h:484
unsigned int uiSegLen
[OUTPUT] Segment data length in bytes.
Definition FSEG.h:480
unsigned int uiRes0
[DUMMY] Reserved; set to 0.
Definition FSEG.h:482
long long siSegInd
[INPUT] Segment index to retrieve.
Definition FSEG.h:478
Parameters for FSEG_FUNC_GMN.
Definition FSEG.h:528
long long siSegInd
[OUTPUT] Main segment index, or FSEG_IDX_INI if not set.
Definition FSEG.h:530
Parameters for FSEG_FUNC_NEW.
Definition FSEG.h:655
const char * pcNamStr
[INPUT] Archive namespace string (null-terminated). The provider must copy this string; the pointer i...
Definition FSEG.h:665
unsigned int uiParLen
[INPUT] Byte length of pcParStr (without null). Paired with uiNamLen so that both pointers start on 8...
Definition FSEG.h:661
const char * pcParStr
[INPUT] Provider-specific parameter string (null-terminated). Same lifetime constraint as pcNamStr.
Definition FSEG.h:668
unsigned int uiNamLen
[INPUT] Byte length of pcNamStr (without null).
Definition FSEG.h:657
Parameters for FSEG_FUNC_OPN.
Definition FSEG.h:378
unsigned int uiParLen
[INPUT] Byte length of pcParStr (without null). Placed here (paired with uiNamLen) so that both point...
Definition FSEG.h:391
long long siOpenedVerId
[OUTPUT] Version ID that was actually opened. The provider sets this to the version ID of the store t...
Definition FSEG.h:411
unsigned int uiNamLen
[INPUT] Byte length of pcNamStr (without null).
Definition FSEG.h:387
const char ** ppcName
[OUTPUT] Canonical archive identifier; on successful return from FSEG_FUNC_OPN the provider writes th...
Definition FSEG.h:402
const char * pcNamStr
[INPUT] Archive namespace string (null-terminated).
Definition FSEG.h:393
const char * pcParStr
[INPUT] Provider-specific parameter string (null-terminated).
Definition FSEG.h:395
unsigned int uiPad0
[DUMMY] Alignment pad; set to 0.
Definition FSEG.h:382
long long siVerId
[INPUT] Version ID; -1 = create new (write) / open latest (read). See the siVerId paragraph in the st...
Definition FSEG.h:385
unsigned int uiFlg
[INPUT] Flag word; see Flags for OPN.
Definition FSEG.h:380
Parameters for FSEG_FUNC_PRN.
Definition FSEG.h:607
unsigned int uiKeepCnt
[INPUT] Number of most-recent versions to retain.
Definition FSEG.h:609
unsigned int uiVerDel
[OUTPUT] Number of versions deleted.
Definition FSEG.h:611
Parameters for FSEG_FUNC_PUT.
Definition FSEG.h:446
unsigned int uiSegTyp
[INPUT] Segment type; see Segment type markers.
Definition FSEG.h:450
unsigned int uiSegLen
[INPUT] Segment data length in bytes.
Definition FSEG.h:452
long long siSegInd
[OUTPUT] Segment index assigned by the provider.
Definition FSEG.h:448
const unsigned char * pcSegDat
[INPUT] Pointer to segment data (valid for this call only).
Definition FSEG.h:454
Parameters for FSEG_FUNC_SMN.
Definition FSEG.h:538
long long siSegInd
[INPUT] Main segment index to persist.
Definition FSEG.h:540
Parameters for FSEG_FUNC_VLS.
Definition FSEG.h:571
unsigned int uiVsnCnt
[OUTPUT] Number of version entries in psVsnEnt.
Definition FSEG.h:573
unsigned int uiRes0
[DUMMY] Reserved; set to 0.
Definition FSEG.h:575
TsFsegVsnEnt * psVsnEnt
[OUTPUT] Pointer to allocated version entry array (caller frees).
Definition FSEG.h:577
Single version entry returned by FSEG_FUNC_VLS.
Definition FSEG.h:546
long long siVerId
Version identifier (same value used in OPN.siVerId).
Definition FSEG.h:548
unsigned long long uiDate
Creation timestamp (seconds since Unix epoch).
Definition FSEG.h:550
Union of all FSEG function parameter structures.
Definition FSEG.h:688
TsFsegPrn stPrn
FSEG_FUNC_PRN
Definition FSEG.h:700
TsFsegCbf stCbf
FSEG_FUNC_CBF
Definition FSEG.h:701
TsFsegFlb stFlb
FSEG_FUNC_FLB
Definition FSEG.h:702
TsFsegSmn stSmn
FSEG_FUNC_SMN
Definition FSEG.h:696
TsFsegOpn stOpn
FSEG_FUNC_OPN
Definition FSEG.h:689
TsFsegDvs stDvs
FSEG_FUNC_DVS
Definition FSEG.h:698
TsFsegCls stCls
FSEG_FUNC_CLS
Definition FSEG.h:690
TsFsegGet stGet
FSEG_FUNC_GET
Definition FSEG.h:692
TsFsegExs stExs
FSEG_FUNC_EXS
Definition FSEG.h:694
TsFsegNew stNew
FSEG_FUNC_NEW
Definition FSEG.h:703
TsFsegDar stDar
FSEG_FUNC_DAR
Definition FSEG.h:699
TsFsegVls stVls
FSEG_FUNC_VLS
Definition FSEG.h:697
TsFsegDel stDel
FSEG_FUNC_DEL
Definition FSEG.h:693
TsFsegPut stPut
FSEG_FUNC_PUT
Definition FSEG.h:691
TsFsegFre stFre
FSEG_FUNC_FRE
Definition FSEG.h:704
TsFsegGmn stGmn
FSEG_FUNC_GMN
Definition FSEG.h:695