Files
vxWorks/h/wrn/ospfCommon/ospfCommonRowStatusLib.h
2025-08-20 18:25:46 +08:00

144 lines
4.9 KiB
C

/* ospfCommonRowStatusLib.h - OSPF common row status header file. */
/* Copyright 2003 Wind River Systems, Inc. */
#include "copyright_wrs.h"
/*
modification history
--------------------
01a,06aug03,agi created (ported from OSPFv2)
*/
/*
DESCRIPTION
This file defines the types and function prototypes for rowStatusLib
*/
#ifndef __INCospfCommonRowStatush
#define __INCospfCommonRowStatush
#ifdef __cplusplus
extern "C" {
#endif /* __cplusplus */
/* defines */
/* enums */
/* Action/state enum type */
typedef enum
{
RS_undefined = 0, /* row does not exist */
RS_active, /* active */
RS_notInService, /* not in service */
RS_notReady, /* not ready */
RS_createAndGo, /* create and go */
RS_createAndWait, /* create and wait */
RS_destroy, /* destroy */
RS_setOtherObject, /* set a non-RowStatus object */
/* all others are errors */
RS_inconsistValue, /* inconsistent */
RS_wrongValue, /* wrongValue */
RS_genError, /* Generic ERROR */
RS_noCreation /* could not create row */
} rsState_t;
typedef rsState_t rsAction_t;
#define RS_noError RS_undefined
#define RS_stateMax RS_notReady
#define RS_actionMax RS_setOtherObject
/* condition type */
typedef enum
{
RS_NO_CONDITION = 0, /* unconditional */
RS_CONDITION1, /* notInService is supported */
RS_CONDITION2, /* all columns are valid */
RS_CONDITION3, /* notInService supported and all columns are valid */
RS_CONDITION4, /* creation allowed when modifying a non-existing row */
RS_CONDITION5 /* modifying a column of an active row is supported */
} rsCondition_t;
typedef enum
{
RS_ACCESS_NONE = 0,
RS_ACCESS_RS_GET, /* row status value get */
RS_ACCESS_RS_SET, /* row status value set */
RS_ACCESS_RS_VALID, /* validate row status value */
RS_ACCESS_COL_SET, /* column set */
RS_ACCESS_COL_VALID, /* validate column */
RS_ACCESS_ROW_VALID, /* validate row */
RS_ACCESS_ROW_DELETE /* delete row */
} rsRowAccessCode_t;
typedef enum
{
RS_GET_REQUEST = 1,
RS_SET_NVM_REQUEST,
RS_VALIDATE_REQUEST,
RS_COMMIT_REQUEST,
RS_ERROR_REQUEST
} rsRequest_t;
/* typedefs */
typedef STATUS (* RS_CREATE_FUNC) (void * pRequest, void ** pEntry,
rsAction_t action, rsRequest_t rsRequest);
typedef STATUS (* RS_ACCESS_FUNC) (void * pEntry, void * pObjInfo,
rsRowAccessCode_t accessFlag);
typedef STATUS (* RS_STATUS_FUNC) (void *pEntry, rsState_t *rsState,
rsRowAccessCode_t accessFlag);
typedef STATUS (* RS_ERROR_FUNC) ( void * pObjInfo, int rsError);
typedef struct
{
rsState_t state1; /* next state 1 if there was no error */
rsState_t state2; /* next state 2 if there was no error */
rsCondition_t cond; /* if non-zero, state is conditional */
rsState_t error; /* error code if error occured */
} rsRowStatus_t;
typedef struct
{
BOOL notInService; /* is notInService supported ? */
BOOL modifyActive; /* is modifying an active row supported ? */
BOOL createAndGo; /* is createAndGo supported ? */
BOOL createWhileValidate; /* is createWhileValidate supported? */
RS_CREATE_FUNC rowCreateRtn; /* row manipulation routine */
RS_ACCESS_FUNC rowAccessRtn; /* row manipulation routine */
RS_STATUS_FUNC rowStatusAccessRtn; /* status object manipulation routine */
RS_ERROR_FUNC errorConvertRtn; /* error conversion routine */
rsAction_t rsShadow; /* shadow value for the next rowStatus action
* state for handling the createAndWait and
* createAndGo row operations
*/
} rsParams_t;
/* externs */
IMPORT STATUS rsRowStatusSet (rsParams_t * pParams, void * pRequest,
rsAction_t action, rsRequest_t rsRequest,
BOOL lastCol);
IMPORT STATUS rsParamsInit (rsParams_t ** ppParams,
RS_CREATE_FUNC rowCreateRtn,
RS_ACCESS_FUNC rowAccessRtn,
RS_STATUS_FUNC rowStatusAccessRtn,
RS_ERROR_FUNC errorConvertRtn);
IMPORT void rsParamsDelete (rsParams_t * pParams);
IMPORT STATUS rsParamsNotInServiceSet (void * pParams, BOOL notInService);
IMPORT STATUS rsParamsModifyActiveSet (void * pParams, BOOL notInService);
IMPORT STATUS rsParamsCreateAndGoSet (void * pParams, BOOL createAndGo);
IMPORT STATUS rsParamsCreateWhileValidateSet (void * pParams, BOOL createWhileValidate);
#ifdef __cplusplus
}
#endif /* __cplusplus */
#endif /* __INCospfCommonRowStatush */