144 lines
4.9 KiB
C
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 */
|