"Fossies" - the Fresh Open Source Software Archive

Member "opensaf-5.21.09/src/imm/immnd/immnd_init.h" (14 Sep 2021, 25120 Bytes) of package /linux/misc/opensaf-5.21.09.tar.gz:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file. For more information about "immnd_init.h" see the Fossies "Dox" file reference documentation and the latest Fossies "Diffs" side-by-side code changes report: 5.21.06_vs_5.21.09.

    1 /*      -*- OpenSAF  -*-
    2  *
    3  * (C) Copyright 2008 The OpenSAF Foundation
    4  * Copyright (C) 2017, Oracle and/or its affiliates. All rights reserved.
    5  *
    6  * This program is distributed in the hope that it will be useful, but
    7  * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
    8  * or FITNESS FOR A PARTICULAR PURPOSE. This file and program are licensed
    9  * under the GNU Lesser General Public License Version 2.1, February 1999.
   10  * The complete license can be accessed from the following location:
   11  * http://opensource.org/licenses/lgpl-license.php
   12  * See the Copying file included with the OpenSAF distribution for full
   13  * licensing terms.
   14  *
   15  * Author(s): Ericsson AB
   16  *
   17  */
   18 
   19 /*****************************************************************************
   20 ..............................................................................
   21 
   22  FILE NAME: immnd_init.h
   23 
   24 ..............................................................................
   25 
   26   DESCRIPTION:
   27   This file consists of constants, enums and data structs used by immnd_xxx.c
   28 ******************************************************************************/
   29 
   30 #ifndef IMM_IMMND_IMMND_INIT_H_
   31 #define IMM_IMMND_IMMND_INIT_H_
   32 
   33 #include <saClm.h>
   34 #include <time.h>
   35 #include "imm/common/immsv_evt_model.h"
   36 #include "imm/common/immsv_api.h"
   37 
   38 extern IMMND_CB *immnd_cb;
   39 
   40 /* internal helping function declaration */
   41 
   42 /* file : -  immnd_proc.c */
   43 
   44 void immnd_proc_discard_other_nodes(IMMND_CB *cb);
   45 
   46 void immnd_proc_imma_down(IMMND_CB *cb, MDS_DEST dest, NCSMDS_SVC_ID sv_id);
   47 uint32_t immnd_proc_imma_discard_connection(IMMND_CB *cb,
   48                                             IMMND_IMM_CLIENT_NODE *cl_node,
   49                                             bool scAbsenceAllowed);
   50 void immnd_proc_imma_discard_stales(IMMND_CB *cb);
   51 
   52 void immnd_cb_dump(void);
   53 void immnd_proc_immd_down(IMMND_CB *cb);
   54 
   55 void immnd_proc_imma_up(IMMND_CB *cb, MDS_DEST dest);
   56 void immnd_proc_app_status(IMMND_CB *cb);
   57 void immnd_adjustEpoch(IMMND_CB *cb, bool increment);
   58 uint32_t immnd_introduceMe(IMMND_CB *cb);
   59 void immnd_announceDump(IMMND_CB *cb);
   60 uint32_t immnd_is_immd_up(IMMND_CB *cb);
   61 IMMSV_ADMIN_OPERATION_PARAM *immnd_getOsafImmPbeAdmopParam(
   62     SaImmAdminOperationIdT operationId, void *evt,
   63     IMMSV_ADMIN_OPERATION_PARAM *param);
   64 void search_req_continue(IMMND_CB *cb, IMMSV_OM_RSP_SEARCH_REMOTE *reply,
   65                          SaUint32T reqConn);
   66 void immnd_ackToNid(uint32_t rc);
   67 bool immnd_syncComplete(IMMND_CB *cb, bool coordinator, SaUint32T step);
   68 
   69 void immnd_proc_global_abort_ccb(IMMND_CB *cb, SaUint32T ccbId);
   70 void immnd_abortSync(IMMND_CB *cb);
   71 
   72 /* End immnd_proc.c */
   73 
   74 /* file : - ImmModel.cc */
   75 #ifdef __cplusplus
   76 extern "C" {
   77 #endif
   78 
   79 /* These are functions that bridge from the C world of the OpenSaf framework
   80    to the C++ world of the IMM server model. */
   81 
   82 void immModel_abortSync(IMMND_CB *cb);
   83 
   84 void immModel_isolateThisNode(IMMND_CB *cb);
   85 
   86 void immModel_abortNonCriticalCcbs(IMMND_CB *cb);
   87 
   88 void immModel_pbePrtoPurgeMutations(IMMND_CB *cb, unsigned int nodeId,
   89                                     SaUint32T *reqArrSize,
   90                                     SaUint32T **reqConArr);
   91 
   92 SaAisErrorT immModel_adminOwnerCreate(
   93     IMMND_CB *cb, const struct ImmsvOmAdminOwnerInitialize *req,
   94     SaUint32T ownerId, SaUint32T conn, unsigned int nodeId);
   95 SaAisErrorT immModel_adminOwnerDelete(IMMND_CB *cb, SaUint32T ownerId,
   96                                       SaUint32T hard);
   97 void immModel_addDeadAdminOwnerDuringSync(SaUint32T ownerId);
   98 
   99 SaAisErrorT immModel_ccbCreate(IMMND_CB *cb, SaUint32T adminOwnerId,
  100                                SaUint32T ccbFlags, SaUint32T ccbId,
  101                                unsigned int originatingNode,
  102                                SaUint32T originatingConn);
  103 
  104 SaUint32T immModel_getAdmoIdForObj(IMMND_CB *cb, const char *objNameBuf);
  105 
  106 SaAisErrorT immModel_adminOperationInvoke(
  107     IMMND_CB *cb, const struct ImmsvOmAdminOperationInvoke *req,
  108     SaUint32T reqConn, SaUint64T reply_dest, SaInvocationT inv,
  109     SaUint32T *implConn, SaClmNodeIdT *implNodeId, bool pbeExpected,
  110     bool *displayRes);
  111 
  112 SaAisErrorT immModel_classCreate(IMMND_CB *cb,
  113                                  const struct ImmsvOmClassDescr *req,
  114                                  SaUint32T reqConn, SaUint32T nodeId,
  115                                  SaUint32T *continuationId, SaUint32T *pbeConn,
  116                                  unsigned int *pbeNodeId);
  117 
  118 SaAisErrorT immModel_classDelete(IMMND_CB *cb,
  119                                  const struct ImmsvOmClassDescr *req,
  120                                  SaUint32T reqConn, SaUint32T nodeId,
  121                                  SaUint32T *continuationId, SaUint32T *pbeConn,
  122                                  unsigned int *pbeNodeId);
  123 
  124 SaAisErrorT immModel_classDescriptionGet(IMMND_CB *cb,
  125                                          const IMMSV_OCTET_STRING *clName,
  126                                          struct ImmsvOmClassDescr *res);
  127 
  128 SaUint32T immModel_cleanTheBasement(
  129     IMMND_CB *cb, SaInvocationT **admReqArr, SaUint32T *admReqArrSize,
  130     SaInvocationT **searchReqArr, SaUint32T *searchReqArrSize,
  131     SaUint32T **ccbIdArr, SaUint32T *ccbIdArrSize, SaUint32T **pbePrtoReqIdArr,
  132     SaUint32T *pbePrtoReqArrSize, IMMSV_OCTET_STRING **applierArrapplierArr,
  133     SaUint32T *applierArrSize, bool iAmCoordNow);
  134 
  135 void immModel_getNonCriticalCcbs(IMMND_CB *cb, SaUint32T **ccbIdArr,
  136                                  SaUint32T *ccbIdArrSize);
  137 
  138 void immModel_getOldCriticalCcbs(IMMND_CB *cb, SaUint32T **ccbIdArr,
  139                                  SaUint32T *ccbIdArrSize, SaUint32T *pbeConn,
  140                                  SaClmNodeIdT *pbeNodeId, SaUint32T *pbeId);
  141 
  142 SaUint32T immModel_getIdForLargeAdmo(IMMND_CB *cb);
  143 
  144 SaAisErrorT immModel_ccbApply(IMMND_CB *cb, SaUint32T ccbId,
  145                               SaUint32T replyConn, SaUint32T *arrSize,
  146                               SaUint32T **implConnArr, SaUint32T **implIdArr,
  147                               SaUint32T **ctnArr, bool validateOnly);
  148 
  149 bool immModel_ccbAbort(IMMND_CB *cb, SaUint32T ccbId, SaUint32T *arrSize,
  150                        SaUint32T **implConnArr, SaUint32T **clientArr,
  151                        SaUint32T *clArrSize, SaUint32T *nodeId,
  152                        SaClmNodeIdT *pbeNodeId);
  153 
  154 void immModel_getCcbIdsForOrigCon(IMMND_CB *cb, SaUint32T origConn,
  155                                   SaUint32T *arrSize, SaUint32T **ccbIdArr);
  156 
  157 void immModel_resetDiscardNodes(IMMND_CB* cb);
  158 
  159 void immModel_eraseDiscardNode(IMMND_CB* cb, SaUint32T nodeId);
  160 
  161 void immModel_discardNode(IMMND_CB *cb, SaUint32T nodeId, SaUint32T *arrSize,
  162                           SaUint32T **ccbIdArr, SaUint32T *globArrSize,
  163                           SaUint32T **globccbIdArr);
  164 
  165 SaAisErrorT immModel_ccbObjectDelete(
  166     IMMND_CB *cb, const struct ImmsvOmCcbObjectDelete *req, SaUint32T reqConn,
  167     SaUint32T *arrSize, SaUint32T **implConnArr, SaUint32T **implIdArr,
  168     SaStringT **objNameArr, SaUint32T *pbeConn, SaClmNodeIdT *pbeNodeId,
  169     bool *augDelete, bool *hasLongDn);
  170 
  171 SaAisErrorT immModel_ccbObjectCreate(
  172     IMMND_CB *cb, struct ImmsvOmCcbObjectCreate *req, SaUint32T *implConn,
  173     SaClmNodeIdT *implNodeId, SaUint32T *continuationId, SaUint32T *pbeConn,
  174     SaClmNodeIdT *pbeNodeId, SaNameT *objName, bool *dnOrRdnIsLong,
  175     bool isObjectDnUsed);
  176 
  177 SaUint32T immModel_getLocalAppliersForObj(IMMND_CB *cb, const SaNameT *objName,
  178                                           SaUint32T ccbId,
  179                                           SaUint32T **aplConnArr,
  180                                           bool externalRep);
  181 SaUint32T immModel_getLocalAppliersForCcb(IMMND_CB *cb, SaUint32T ccbId,
  182                                           SaUint32T **aplConnArr,
  183                                           SaUint32T *applCtnPtr);
  184 SaUint32T immModel_getPbeApplierConn(IMMND_CB *cb);
  185 
  186 SaAisErrorT immModel_ccbObjectModify(
  187     IMMND_CB *cb, const struct ImmsvOmCcbObjectModify *req, SaUint32T *implConn,
  188     SaClmNodeIdT *implNodeId, SaUint32T *continuationId, SaUint32T *pbeConn,
  189     SaClmNodeIdT *pbeNodeId, SaNameT *objName, bool *hasLongDns);
  190 
  191 void immModel_ccbCompletedContinuation(IMMND_CB *cb,
  192                                        struct immsv_oi_ccb_upcall_rsp *rsp,
  193                                        SaUint32T *reqConn);
  194 
  195 void immModel_ccbObjDelContinuation(IMMND_CB *cb,
  196                                     struct immsv_oi_ccb_upcall_rsp *rsp,
  197                                     SaUint32T *reqConn, bool *augDelete);
  198 
  199 bool immModel_ccbWaitForCompletedAck(IMMND_CB *cb, SaUint32T ccbId,
  200                                      SaAisErrorT *err, SaUint32T *pbeConn,
  201                                      SaClmNodeIdT *pbeNodeId, SaUint32T *pbeId,
  202                                      SaUint32T *pbeCtn);
  203 
  204 bool immModel_ccbWaitForDeleteImplAck(IMMND_CB *cb, SaUint32T ccbId,
  205                                       SaAisErrorT *err, bool augDelete);
  206 
  207 bool immModel_ccbCommit(IMMND_CB *cb, SaUint32T ccbId, SaUint32T *arrSize,
  208                         SaUint32T **implConnArr);
  209 SaAisErrorT immModel_ccbFinalize(IMMND_CB *cb, SaUint32T ccbId);
  210 
  211 SaAisErrorT immModel_searchInitialize(IMMND_CB *cb,
  212                                       struct ImmsvOmSearchInit *req,
  213                                       void **searchOp, bool isSync,
  214                                       bool isAccessor);
  215 
  216 SaAisErrorT immModel_objectIsLockedByCcb(IMMND_CB *cb,
  217                                          struct ImmsvOmSearchInit *req);
  218 SaAisErrorT immModel_ccbReadLockObject(IMMND_CB *cb,
  219                                        struct ImmsvOmSearchInit *req);
  220 
  221 SaAisErrorT immModel_testTopResult(void *searchOp, SaUint32T *implNodeId,
  222                                    bool *bRtAttrsToFetch);
  223 
  224 SaAisErrorT immModel_nextResult(IMMND_CB *cb, void *searchOp,
  225                                 IMMSV_OM_RSP_SEARCH_NEXT **rsp,
  226                                 SaUint32T *implConn, SaUint32T *implNodeId,
  227                                 struct ImmsvAttrNameList **rtAttrsToFetch,
  228                                 MDS_DEST *implDest, bool retardSync,
  229                                 SaUint32T *implTimeout);
  230 
  231 void immModel_deleteSearchOp(void *searchOp);
  232 
  233 void immModel_clearLastResult(void *searchOp);
  234 
  235 void immModel_fetchLastResult(void *searchOp, IMMSV_OM_RSP_SEARCH_NEXT **rsp);
  236 
  237 void immModel_popLastResult(void *searchOp);
  238 
  239 bool immModel_isSearchOpAccessor(void *searchOp);
  240 
  241 bool immModel_isSearchOpNonExtendedNameSet(void *searchOp);
  242 
  243 void immModel_setAdmReqContinuation(IMMND_CB *cb, SaInvocationT invoc,
  244                                     SaUint32T reqCon);
  245 
  246 void immModel_setSearchReqContinuation(IMMND_CB *cb, SaInvocationT invoc,
  247                                        SaUint32T reqCon, SaUint32T implTimeout);
  248 
  249 void immModel_setSearchImplContinuation(IMMND_CB *cb, SaUint32T searchId,
  250                                         SaUint32T requestnodeId,
  251                                         MDS_DEST reply_dest);
  252 
  253 SaAisErrorT immModel_implementerSet(IMMND_CB *cb,
  254                                     const IMMSV_OCTET_STRING *implName,
  255                                     SaUint32T implConn, SaUint32T implNodeId,
  256                                     SaUint32T implId, MDS_DEST mds_dest,
  257                                     SaUint32T implTimeout,
  258                                     bool *discardImplementer);
  259 
  260 SaAisErrorT immModel_implementerClear(IMMND_CB *cb,
  261                                       const struct ImmsvOiImplSetReq *req,
  262                                       SaUint32T implConn, SaUint32T implNodeId,
  263                                       SaUint32T *globArrSize,
  264                                       SaUint32T **globccbIdArr);
  265 SaAisErrorT immModel_classImplementerSet(IMMND_CB *cb,
  266                                          const struct ImmsvOiImplSetReq *req,
  267                                          SaUint32T implConn,
  268                                          SaUint32T implNodeId,
  269                                          SaUint32T *ccbId);
  270 
  271 SaAisErrorT immModel_classImplementerClear(IMMND_CB *cb,
  272                                            const struct ImmsvOiImplSetReq *req,
  273                                            SaUint32T implConn,
  274                                            SaUint32T implNodeId);
  275 
  276 SaAisErrorT immModel_classImplementerRelease(
  277     IMMND_CB *cb, const struct ImmsvOiImplSetReq *req, SaUint32T implConn,
  278     SaUint32T implNodeId);
  279 
  280 SaAisErrorT immModel_objectImplementerSet(IMMND_CB *cb,
  281                                           const struct ImmsvOiImplSetReq *req,
  282                                           SaUint32T implConn,
  283                                           SaUint32T implNodeId,
  284                                           SaUint32T *ccbId);
  285 
  286 SaAisErrorT immModel_objectImplementerRelease(
  287     IMMND_CB *cb, const struct ImmsvOiImplSetReq *req, SaUint32T implConn,
  288     SaUint32T implNodeId);
  289 SaUint32T immModel_getImplementerId(IMMND_CB *cb, SaUint32T implConn);
  290 
  291 void immModel_discardImplementer(IMMND_CB *cb, SaUint32T implId,
  292                                  bool reallyDiscard, SaUint32T *globArrSize,
  293                                  SaUint32T **globccbIdArr);
  294 
  295 void immModel_fetchAdmOpContinuations(IMMND_CB *cb, SaInvocationT inv,
  296                                       bool local, SaUint32T *implConn,
  297                                       SaUint32T *reqConn,
  298                                       SaUint64T *reply_dest);
  299 
  300 void immModel_fetchSearchReqContinuation(IMMND_CB *cb, SaInvocationT inv,
  301                                          SaUint32T *reqConn);
  302 void immModel_fetchSearchImplContinuation(IMMND_CB *cb, SaUint32T searchId,
  303                                           SaUint32T reqNodeId,
  304                                           MDS_DEST *reply_dest);
  305 
  306 SaUint32T immModel_findConnForImplementerOfObject(
  307     IMMND_CB *cb, IMMSV_OCTET_STRING *objectName);
  308 
  309 void immModel_prepareForLoading(IMMND_CB *cb);
  310 
  311 bool immModel_readyForLoading(IMMND_CB *cb);
  312 
  313 SaInt32T immModel_getLoader(IMMND_CB *cb);
  314 
  315 void immModel_setLoader(IMMND_CB *cb, SaInt32T loaderPid);
  316 void immModel_setRegenerateDbFlag(IMMND_CB *cb, bool value);
  317 bool immModel_getRegenerateDbFlag(IMMND_CB *cb);
  318 
  319 unsigned int immModel_pbeOiExists(IMMND_CB *cb);
  320 unsigned int immModel_pbeBSlaveExists(IMMND_CB *cb);
  321 
  322 struct immsv_attr_values_list *immModel_specialApplierTrimCreate(
  323     IMMND_CB *cb, SaUint32T clientId, struct ImmsvOmCcbObjectCreate *req);
  324 
  325 void immModel_specialApplierSavePrtoCreateAttrs(
  326     IMMND_CB *cb, struct ImmsvOmCcbObjectCreate *req, SaUint32T continuationId);
  327 
  328 void immModel_specialApplierSaveRtUpdateAttrs(
  329     IMMND_CB *cb, struct ImmsvOmCcbObjectModify *req, SaUint32T continuationId);
  330 
  331 struct immsv_attr_mods_list *immModel_specialApplierTrimModify(
  332     IMMND_CB *cb, SaUint32T clientId, struct ImmsvOmCcbObjectModify *req);
  333 
  334 bool immModel_isSpecialAndAddModify(IMMND_CB *cb, SaUint32T clientId,
  335                                     SaUint32T ccbId);
  336 
  337 void immModel_genSpecialModify(IMMND_CB *cb,
  338                                struct ImmsvOmCcbObjectModify *req);
  339 
  340 struct immsv_attr_mods_list *immModel_canonicalizeAttrModification(
  341     IMMND_CB *cb, const struct ImmsvOmCcbObjectModify *req);
  342 
  343 struct immsv_attr_mods_list *immModel_getAllWritableAttributes(
  344     IMMND_CB *cb, const struct ImmsvOmCcbObjectModify *req, bool *hasLongDn);
  345 
  346 bool immModel_protocol41Allowed(IMMND_CB *cb);
  347 bool immModel_protocol43Allowed(IMMND_CB *cb);
  348 bool immModel_protocol45Allowed(IMMND_CB *cb);
  349 bool immModel_protocol46Allowed(IMMND_CB *cb);
  350 bool immModel_protocol47Allowed(IMMND_CB *cb);
  351 bool immModel_protocol50Allowed(IMMND_CB *cb);
  352 bool immModel_protocol51906Allowed(IMMND_CB *cb);
  353 bool immModel_oneSafe2PBEAllowed(IMMND_CB *cb);
  354 OsafImmAccessControlModeT immModel_accessControlMode(IMMND_CB *cb);
  355 const char *immModel_authorizedGroup(IMMND_CB *cb);
  356 
  357 bool immModel_purgeSyncRequest(IMMND_CB *cb, SaUint32T clientId);
  358 
  359 void immModel_recognizedIsolated(IMMND_CB *cb);
  360 
  361 bool immModel_syncComplete(IMMND_CB *cb);
  362 
  363 bool immModel_ccbsTerminated(IMMND_CB *cb, bool allowEmpty);
  364 
  365 void immModel_prepareForSync(IMMND_CB *cb, bool isJoining);
  366 
  367 SaAisErrorT immModel_objectSync(IMMND_CB *cb,
  368                                 const struct ImmsvOmObjectSync *req);
  369 
  370 SaAisErrorT immModel_finalizeSync(IMMND_CB *cb, struct ImmsvOmFinalizeSync *req,
  371                                   bool isCoord, bool isSyncClient);
  372 
  373 SaUint32T immModel_adjustEpoch(IMMND_CB *cb, SaUint32T suggestedEpoch,
  374                                SaUint32T *continuationId, SaUint32T *pbeConn,
  375                                SaClmNodeIdT *pbeNodeId, bool increment);
  376 
  377 SaUint32T immModel_adminOwnerChange(IMMND_CB *cb,
  378                                     const struct immsv_a2nd_admown_set *req,
  379                                     bool isRelease);
  380 void immModel_getAdminOwnerIdsForCon(IMMND_CB *cb, SaUint32T conn,
  381                                      SaUint32T *arrSize, SaUint32T **ccbIdArr);
  382 
  383 void immModel_ccbObjCreateContinuation(IMMND_CB *cb, SaUint32T ccbId,
  384                                        SaUint32T invocation, SaAisErrorT error,
  385                                        SaUint32T *reqConn);
  386 
  387 void immModel_pbePrtObjCreateContinuation(IMMND_CB *cb, SaUint32T invocation,
  388                                           SaAisErrorT err, SaClmNodeIdT nodeId,
  389                                           SaUint32T *reqConn,
  390                                           SaUint32T *spApplConn,
  391                                           struct ImmsvOmCcbObjectCreate *req);
  392 
  393 int immModel_pbePrtObjDeletesContinuation(
  394     IMMND_CB *cb, SaUint32T invocation, SaAisErrorT err, SaClmNodeIdT nodeId,
  395     SaUint32T *reqConn, SaStringT **objNameArr, SaUint32T *arrSize,
  396     SaUint32T *spApplConn, SaUint32T *pbe2BConn);
  397 
  398 void immModel_pbePrtAttrUpdateContinuation(IMMND_CB *cb, SaUint32T invocation,
  399                                            SaAisErrorT err, SaClmNodeIdT nodeId,
  400                                            SaUint32T *reqConn,
  401                                            SaUint32T *spApplConn,
  402                                            struct ImmsvOmCcbObjectModify *req);
  403 
  404 void immModel_pbeClassCreateContinuation(IMMND_CB *cb, SaUint32T invocation,
  405                                          SaClmNodeIdT nodeId,
  406                                          SaUint32T *reqConn);
  407 
  408 void immModel_pbeClassDeleteContinuation(IMMND_CB *cb, SaUint32T invocation,
  409                                          SaClmNodeIdT nodeId,
  410                                          SaUint32T *reqConn);
  411 
  412 void immModel_pbeUpdateEpochContinuation(IMMND_CB *cb, SaUint32T invocation,
  413                                          SaClmNodeIdT nodeId);
  414 
  415 void immModel_ccbObjModifyContinuation(IMMND_CB *cb, SaUint32T ccbId,
  416                                        SaUint32T invocation, SaAisErrorT error,
  417                                        SaUint32T *reqConn);
  418 
  419 void immModel_discardContinuations(IMMND_CB *cb, SaUint32T deadConn);
  420 
  421 bool immModel_immNotWritable(IMMND_CB *cb);
  422 
  423 bool immModel_pbeIsInSync(IMMND_CB *cb, bool checkCriticalCcbs);
  424 
  425 SaImmRepositoryInitModeT immModel_getRepositoryInitMode(IMMND_CB *cb);
  426 
  427 unsigned int immModel_getMaxSyncBatchSize(IMMND_CB *cb);
  428 SaTimeT immModel_getSyncrTimeout(IMMND_CB *cb);
  429 
  430 SaAisErrorT immModel_rtObjectCreate(IMMND_CB *cb,
  431                                     struct ImmsvOmCcbObjectCreate *req,
  432                                     SaUint32T implConn, SaClmNodeIdT implNodeId,
  433                                     SaUint32T *continuationId,
  434                                     SaUint32T *pbeConn, SaClmNodeIdT *pbeNodeId,
  435                                     SaUint32T *spAplConn, SaUint32T *pbe2BConn,
  436                                     bool isObjectDnUsed);
  437 
  438 SaAisErrorT immModel_rtObjectDelete(
  439     IMMND_CB *cb, const struct ImmsvOmCcbObjectDelete *req, SaUint32T implConn,
  440     SaClmNodeIdT implNodeId, SaUint32T *continuationId, SaUint32T *pbeConn,
  441     SaClmNodeIdT *pbeNodeId, SaStringT **objNameArr, SaUint32T *arrSize,
  442     SaUint32T *spApplConn, SaUint32T *pbe2BConn);
  443 
  444 SaAisErrorT immModel_rtObjectUpdate(IMMND_CB *cb,
  445                                     const struct ImmsvOmCcbObjectModify *req,
  446                                     SaUint32T implConn, SaClmNodeIdT implNodeId,
  447                                     unsigned int *isPureLocal,
  448                                     SaUint32T *continuationId,
  449                                     SaUint32T *pbeConn, SaClmNodeIdT *pbeNodeId,
  450                                     SaUint32T *spAplConn, SaUint32T *pbe2BConn);
  451 
  452 SaAisErrorT immModel_ccbResult(IMMND_CB *cb, SaUint32T ccbId);
  453 
  454 IMMSV_ATTR_NAME_LIST *immModel_ccbGrabErrStrings(IMMND_CB *cb, SaUint32T ccbId);
  455 
  456 void immModel_deferRtUpdate(IMMND_CB *cb, struct ImmsvOmCcbObjectModify *req,
  457                             SaUint64T msgNo);
  458 
  459 bool immModel_fetchRtUpdate(IMMND_CB *cb, struct ImmsvOmObjectSync *syncReq,
  460                             struct ImmsvOmCcbObjectModify *rtModReq,
  461                             SaUint64T syncFevsBase);
  462 
  463 SaAisErrorT immModel_ccbAugmentInit(IMMND_CB *cb,
  464                                     IMMSV_OI_CCB_UPCALL_RSP *ccbUpcallRsp,
  465                                     SaUint32T originatingNode,
  466                                     SaUint32T originatingConn,
  467                                     SaUint32T *adminOwnerId);
  468 
  469 void immModel_ccbAugmentAdmo(IMMND_CB *cb, SaUint32T adminOwnerId,
  470                              SaUint32T ccbId);
  471 
  472 bool immModel_pbeNotWritable(IMMND_CB *cb);
  473 
  474 SaAisErrorT immModel_implIsFree(IMMND_CB *cb, const IMMSV_OI_IMPLSET_REQ *req,
  475                                 SaUint32T *impl_id);
  476 
  477 SaAisErrorT immModel_resourceDisplay(
  478     IMMND_CB *cb, const struct ImmsvAdminOperationParam *reqparams,
  479     struct ImmsvAdminOperationParam **rparams);
  480 
  481 void immModel_setCcbErrorString(IMMND_CB *cb, SaUint32T ccbId,
  482                                 const char *errorString, ...);
  483 
  484 void immModel_setScAbsenceAllowed(IMMND_CB *cb);
  485 
  486 void immmModel_getLocalImplementers(IMMND_CB *cb, SaUint32T *arrSize,
  487                                     SaUint32T **implIdArr,
  488                                     SaUint32T **implConnArr);
  489 
  490 void immModel_implementerDelete(IMMND_CB *cb, const char *implementerName);
  491 
  492 void immModel_sendSyncAbortAt(IMMND_CB *cb, struct timespec time);
  493 
  494 void immModel_getSyncAbortRsp(IMMND_CB *cb);
  495 
  496 bool is_regular_name(const char* name, bool strict);
  497 bool is_valid_schema_name(const char* name);
  498 
  499 #ifdef __cplusplus
  500 }
  501 #endif
  502 /* End ImmModel.cc */ /* File : ---  immnd_amf.c */ uint32_t immnd_amf_init(
  503     IMMND_CB *immnd_cb);
  504 
  505 /* End immnd_amf.c */
  506 
  507 /* File immnd_db.c */
  508 
  509 void immnd_client_node_get(IMMND_CB *cb, SaImmHandleT imm_client_hdl,
  510                            IMMND_IMM_CLIENT_NODE **imm_client_node);
  511 void immnd_client_node_getnext(IMMND_CB *cb, SaImmHandleT imm_client_hdl,
  512                                IMMND_IMM_CLIENT_NODE **imm_client_node);
  513 uint32_t immnd_client_node_add(IMMND_CB *cb, IMMND_IMM_CLIENT_NODE *imm_node);
  514 uint32_t immnd_client_node_del(IMMND_CB *cb,
  515                                IMMND_IMM_CLIENT_NODE *imm_client_node);
  516 
  517 unsigned int immnd_dequeue_outgoing_fevs_msg(IMMND_CB *cb,
  518                                              IMMSV_OCTET_STRING *msg,
  519                                              SaImmHandleT *clnt_hdl);
  520 
  521 unsigned int immnd_enqueue_outgoing_fevs_msg(IMMND_CB *cb,
  522                                              SaImmHandleT clnt_hdl,
  523                                              IMMSV_OCTET_STRING *msg);
  524 
  525 void dequeue_outgoing(IMMND_CB *cb);
  526 
  527 /* End  File : immnd_db.c */
  528 
  529 /* File : --- immnd_mds.c */
  530 SaAisErrorT immnd_mds_client_not_busy(IMMSV_SEND_INFO *s_info);
  531 uint32_t immnd_mds_send_rsp(IMMND_CB *cb, IMMSV_SEND_INFO *s_info,
  532                             IMMSV_EVT *evt);
  533 uint32_t immnd_mds_msg_sync_send(IMMND_CB *cb, uint32_t to_svc,
  534                                  MDS_DEST to_dest, IMMSV_EVT *i_evt,
  535                                  IMMSV_EVT **o_evt, uint32_t timeout);
  536 uint32_t immnd_mds_msg_send(IMMND_CB *cb, uint32_t to_svc, MDS_DEST to_dest,
  537                             IMMSV_EVT *evt);
  538 uint32_t immnd_mds_register(IMMND_CB *cb);
  539 void immnd_mds_unregister(IMMND_CB *cb);
  540 uint32_t immnd_mds_get_handle(IMMND_CB *cb);
  541 /* End : --- immnd_mds.c */
  542 
  543 /* File : ----  immnd_evt.c */
  544 void immnd_process_evt(void);
  545 uint32_t immnd_evt_destroy(IMMSV_EVT *evt, bool onheap, uint32_t line);
  546 void immnd_evt_proc_admo_hard_finalize(IMMND_CB *cb, IMMND_EVT *evt,
  547                                        bool originatedAtThisNd,
  548                                        SaImmHandleT clnt_hdl,
  549                                        MDS_DEST reply_dest);
  550 void freeSearchNext(IMMSV_OM_RSP_SEARCH_NEXT *rsp, bool freeTop);
  551 
  552 /* End : ----  immnd_evt.c  */
  553 
  554 /* File : ----  immnd_proc.c */
  555 uint32_t immnd_proc_server(uint32_t *timeout);
  556 void immnd_proc_unregister_local_implemeters(IMMND_CB *cb);
  557 /* End : ----  immnd_proc.c  */
  558 
  559 /* File : ----  immnd_clm.c */
  560 uint32_t immnd_clm_node_change(bool left);
  561 void immnd_init_with_clm();
  562 /* Ebd : ----  immnd_clm.c */
  563 
  564 #endif  // IMM_IMMND_IMMND_INIT_H_