opensaf.spec.in                               |   1 +
 osaf/libs/agents/saf/imma/imma_cb.h           |   1 +
 osaf/libs/agents/saf/imma/imma_def.h          |   2 +-
 osaf/libs/agents/saf/imma/imma_oi_api.c       |   3 +
 osaf/libs/agents/saf/imma/imma_om_api.c       |  12 ++++
 osaf/libs/common/immsv/immpbe_dump.cc         |   3 +-
 osaf/libs/common/immsv/include/immpbe_dump.hh |   2 +-
 osaf/libs/saf/include/Makefile.am             |   3 +-
 osaf/libs/saf/include/saImmOm_A_2_15.h        |   2 +
 osaf/libs/saf/include/saImmOm_A_2_16.h        |  67 +++++++++++++++++++++++++++
 10 files changed, 92 insertions(+), 4 deletions(-)


SA_IMM_ATTR_DEFAULT_REMOVED flag is supported in version A.02.16 or higher.

diff --git a/opensaf.spec.in b/opensaf.spec.in
--- a/opensaf.spec.in
+++ b/opensaf.spec.in
@@ -1473,6 +1473,7 @@ fi
 %{_includedir}/saImmOm_A_2_14.h
 %{_includedir}/saImmOi_A_2_15.h
 %{_includedir}/saImmOm_A_2_15.h
+%{_includedir}/saImmOm_A_2_16.h
 
 #TODO: Is it going out of the main opensaf repo?
 %files samples
diff --git a/osaf/libs/agents/saf/imma/imma_cb.h 
b/osaf/libs/agents/saf/imma/imma_cb.h
--- a/osaf/libs/agents/saf/imma/imma_cb.h
+++ b/osaf/libs/agents/saf/imma/imma_cb.h
@@ -64,6 +64,7 @@ typedef struct imma_client_node {
        bool isImmA2e;       /* Version A.02.14 */
        bool isImmA2f;       /* Version A.02.15 */
        bool isImmA2fCbk;    /* Version A.02.15 callback*/
+       bool isImmA216;      /* Version A.02.16 */
        bool isApplier; /* True => This is an Applier-OI */
        bool isAug;     /* True => handle internal to OI augmented CCB */
        bool isBusy;    /* True => handle is locked by a thread until a 
function execution is done */
diff --git a/osaf/libs/agents/saf/imma/imma_def.h 
b/osaf/libs/agents/saf/imma/imma_def.h
--- a/osaf/libs/agents/saf/imma/imma_def.h
+++ b/osaf/libs/agents/saf/imma/imma_def.h
@@ -22,7 +22,7 @@
 /* Macros for Validating Version */
 #define IMMA_RELEASE_CODE 'A'
 #define IMMA_MAJOR_VERSION 0x02
-#define IMMA_MINOR_VERSION 0x0f
+#define IMMA_MINOR_VERSION 0x10
 
 #define IMMSV_WAIT_TIME  1000 /* Default MDS wait time in 10ms units =>10 sec*/
 
diff --git a/osaf/libs/agents/saf/imma/imma_oi_api.c 
b/osaf/libs/agents/saf/imma/imma_oi_api.c
--- a/osaf/libs/agents/saf/imma/imma_oi_api.c
+++ b/osaf/libs/agents/saf/imma/imma_oi_api.c
@@ -170,6 +170,9 @@ SaAisErrorT initialize_common(SaImmOiHan
                                        cl_node->isImmA2e = true;
                                        if(requested_version.minorVersion >= 
0x0f) {
                                                cl_node->isImmA2f = true;
+                                               if 
(requested_version.minorVersion >= 0x10) {
+                                                       cl_node->isImmA216 = 
true;
+                                               }
                                        }
                                }
                        }
diff --git a/osaf/libs/agents/saf/imma/imma_om_api.c 
b/osaf/libs/agents/saf/imma/imma_om_api.c
--- a/osaf/libs/agents/saf/imma/imma_om_api.c
+++ b/osaf/libs/agents/saf/imma/imma_om_api.c
@@ -132,6 +132,9 @@ SaAisErrorT saImmOmInitialize_o2(SaImmHa
                        cl_node->isImmA2e = true;
                        if(requested_version.minorVersion >= 0x0f) {
                                cl_node->isImmA2f = true;
+                               if (requested_version.minorVersion >= 0x10) {
+                                       cl_node->isImmA216 = true;
+                               }
                        }
                }
        }
@@ -186,6 +189,9 @@ SaAisErrorT saImmOmInitialize(SaImmHandl
                                        cl_node->isImmA2e = true;
                                        if(requested_version.minorVersion >= 
0x0f) {
                                                cl_node->isImmA2f = true;
+                                               if 
(requested_version.minorVersion >= 0x10) {
+                                                       cl_node->isImmA216 = 
true;
+                                               }
                                        }
                                }
                        }
@@ -4754,6 +4760,12 @@ SaAisErrorT saImmOmClassCreate_2(SaImmHa
                        goto mds_send_fail;
                }
 
+               if ((attr->attrFlags & SA_IMM_ATTR_DEFAULT_REMOVED) && 
!(cl_node->isImmA216)) {
+                       TRACE_2("SA_IMM_ATTR_DEFAULT_REMOVED flag is supported 
in version A.02.16 or higher");
+                       rc = SA_AIS_ERR_VERSION;
+                       goto mds_send_fail;
+               }
+
                IMMSV_ATTR_DEF_LIST *p =        /*alloc-2 */
                    malloc(sizeof(IMMSV_ATTR_DEF_LIST));
                memset(p, 0, sizeof(IMMSV_ATTR_DEF_LIST));
diff --git a/osaf/libs/common/immsv/immpbe_dump.cc 
b/osaf/libs/common/immsv/immpbe_dump.cc
--- a/osaf/libs/common/immsv/immpbe_dump.cc
+++ b/osaf/libs/common/immsv/immpbe_dump.cc
@@ -3236,7 +3236,8 @@ static int pbeAuditAttributeFlags(sqlite
                                                | SA_IMM_ATTR_NO_DUPLICATES
                                                | SA_IMM_ATTR_NOTIFY
                                                | SA_IMM_ATTR_NO_DANGLING
-                                               | SA_IMM_ATTR_DN;
+                                               | SA_IMM_ATTR_DN
+                                               | SA_IMM_ATTR_DEFAULT_REMOVED;
        const char *sql = "select class_name, attr_name, attr_flags "
                        "from attr_def, classes "
                        "where (attr_flags & ~%lu) != 0 "
diff --git a/osaf/libs/common/immsv/include/immpbe_dump.hh 
b/osaf/libs/common/immsv/include/immpbe_dump.hh
--- a/osaf/libs/common/immsv/include/immpbe_dump.hh
+++ b/osaf/libs/common/immsv/include/immpbe_dump.hh
@@ -31,7 +31,7 @@
 
 #define RELEASE_CODE 'A'
 #define MAJOR_VERSION 2
-#define MINOR_VERSION 15
+#define MINOR_VERSION 16
 
 /* Prototypes */
 typedef std::map<std::string, SaImmAttrFlagsT> AttrMap;
diff --git a/osaf/libs/saf/include/Makefile.am 
b/osaf/libs/saf/include/Makefile.am
--- a/osaf/libs/saf/include/Makefile.am
+++ b/osaf/libs/saf/include/Makefile.am
@@ -41,6 +41,7 @@ include_HEADERS = \
        saImmOm_A_2_13.h \
        saImmOm_A_2_14.h \
        saImmOi_A_2_15.h \
-       saImmOm_A_2_15.h
+       saImmOm_A_2_15.h \
+       saImmOm_A_2_16.h
 
 
diff --git a/osaf/libs/saf/include/saImmOm_A_2_15.h 
b/osaf/libs/saf/include/saImmOm_A_2_15.h
--- a/osaf/libs/saf/include/saImmOm_A_2_15.h
+++ b/osaf/libs/saf/include/saImmOm_A_2_15.h
@@ -165,4 +165,6 @@ extern "C" {
 }
 #endif
 
+#include <saImmOm_A_2_16.h>
+
 #endif   /* _SA_IMM_OM_A_2_15_H */
diff --git a/osaf/libs/saf/include/saImmOm_A_2_16.h 
b/osaf/libs/saf/include/saImmOm_A_2_16.h
new file mode 100644
--- /dev/null
+++ b/osaf/libs/saf/include/saImmOm_A_2_16.h
@@ -0,0 +1,67 @@
+/*      -*- OpenSAF  -*-
+ *
+ * (C) Copyright 2015 The OpenSAF Foundation
+ *
+ * This program is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+ * or FITNESS FOR A PARTICULAR PURPOSE. This file and program are licensed
+ * under the GNU Lesser General Public License Version 2.1, February 1999.
+ * The complete license can be accessed from the following location:
+ * http://opensource.org/licenses/lgpl-license.php
+ * See the Copying file included with the OpenSAF distribution for full
+ * licensing terms.
+ *
+ * Author(s): Ericsson AB
+ */
+
+/*
+ * DESCRIPTION:
+ *   This file provides the suggested additions to the C language binding for
+ *   the Service Availability(TM) Forum Information Model Management Service 
(IMM).
+ *   It contains only the prototypes and type definitions that are part of this
+ *   proposed addition.
+ *   These additions are currently NON STANDARD. But the intention is to get 
these
+ *   additions approved formally by SAF in the future.
+ *
+ *   For detailed explanation of the new API, see 
osaf/services/saf/immsv/README.
+ */
+
+
+#ifndef _SA_IMM_OM_A_2_16_H
+#define _SA_IMM_OM_A_2_16_H
+
+#ifdef  __cplusplus
+extern "C" {
+#endif
+
+
+       /* 4.2.5 SaImmAttrFlagsT */
+       /*
+#define SA_IMM_ATTR_MULTI_VALUE   0x00000001
+#define SA_IMM_ATTR_RDN           0x00000002
+#define SA_IMM_ATTR_CONFIG        0x00000100
+#define SA_IMM_ATTR_WRITABLE      0x00000200
+#define SA_IMM_ATTR_INITIALIZED   0x00000400
+#define SA_IMM_ATTR_RUNTIME       0x00010000
+#define SA_IMM_ATTR_PERSISTENT    0x00020000
+#define SA_IMM_ATTR_CACHED        0x00040000
+#define SA_IMM_ATTR_NO_DUPLICATES     0x0000000001000000 / * See: 
http://devel.opensaf.org/ticket/1545
+                                                        Supported in OpenSaf 
4.3 * /
+#define SA_IMM_ATTR_NOTIFY            0x0000000002000000 / * See: 
http://devel.opensaf.org/ticket/2883
+                                                        Supported in OpenSaf 
4.3 * /
+#define SA_IMM_ATTR_NO_DANGLING       0x0000000004000000    / * See: 
https://sourceforge.net/p/opensaf/tickets/49/
+                                                         Supported in OpenSaf 
4.4 * /
+
+#define SA_IMM_ATTR_DN                0x0000000008000000    / * See: 
https://sourceforge.net/p/opensaf/tickets/643
+                                                         Supported in OpenSaf 
4.6 * /
+       */
+#define SA_IMM_ATTR_DEFAULT_REMOVED   0x0000000010000000    /* See: 
https://sourceforge.net/p/opensaf/tickets/1471
+                                                         Supported in OpenSaf 
4.7 */
+
+
+
+#ifdef  __cplusplus
+}
+#endif
+
+#endif   /* _SA_IMM_OM_A_2_16_H */

------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to