osaf/services/saf/logsv/lgs/Makefile.am    |   34 ++++---
 osaf/services/saf/logsv/lgs/lgs.h          |   10 ++-
 osaf/services/saf/logsv/lgs/lgs_amf.c      |    4 +-
 osaf/services/saf/logsv/lgs/lgs_cb.h       |    8 +
 osaf/services/saf/logsv/lgs/lgs_config.c   |  113 ++++++++++++++------------
 osaf/services/saf/logsv/lgs/lgs_config.h   |    4 +-
 osaf/services/saf/logsv/lgs/lgs_evt.c      |   17 ++-
 osaf/services/saf/logsv/lgs/lgs_evt.h      |    9 ++
 osaf/services/saf/logsv/lgs/lgs_file.c     |   45 ++++++----
 osaf/services/saf/logsv/lgs/lgs_filehdl.c  |   22 +++--
 osaf/services/saf/logsv/lgs/lgs_fmt.c      |   26 +++--
 osaf/services/saf/logsv/lgs/lgs_fmt.h      |    8 +
 osaf/services/saf/logsv/lgs/lgs_imm.c      |  118 ++++++++++++++-------------
 osaf/services/saf/logsv/lgs/lgs_main.c     |   13 +-
 osaf/services/saf/logsv/lgs/lgs_mbcsv.c    |  123 ++++++++++++++--------------
 osaf/services/saf/logsv/lgs/lgs_mbcsv.h    |    2 +-
 osaf/services/saf/logsv/lgs/lgs_mbcsv_v1.c |   28 +++---
 osaf/services/saf/logsv/lgs/lgs_mbcsv_v1.h |    6 +-
 osaf/services/saf/logsv/lgs/lgs_mbcsv_v2.c |   34 ++++----
 osaf/services/saf/logsv/lgs/lgs_mbcsv_v3.c |   26 +++---
 osaf/services/saf/logsv/lgs/lgs_mbcsv_v5.c |   26 +++---
 osaf/services/saf/logsv/lgs/lgs_mds.c      |   40 +++++----
 osaf/services/saf/logsv/lgs/lgs_stream.c   |   64 +++++++-------
 osaf/services/saf/logsv/lgs/lgs_stream.h   |    8 +
 osaf/services/saf/logsv/lgs/lgs_util.c     |   36 ++++---
 osaf/services/saf/logsv/lgs/lgs_util.h     |    9 ++
 26 files changed, 467 insertions(+), 366 deletions(-)


Fix error messages when using C++ compiler

diff --git a/osaf/services/saf/logsv/lgs/Makefile.am 
b/osaf/services/saf/logsv/lgs/Makefile.am
--- a/osaf/services/saf/logsv/lgs/Makefile.am
+++ b/osaf/services/saf/logsv/lgs/Makefile.am
@@ -40,28 +40,30 @@ noinst_HEADERS = \
 osaf_execbindir = $(pkglibdir)
 osaf_execbin_PROGRAMS = osaflogd
 
+osaflogd_CXXFLAGS = $(AM_CXXFLAGS)
+
 osaflogd_CPPFLAGS = \
        $(AM_CPPFLAGS) \
        -I$(top_srcdir)/osaf/libs/common/logsv/include \
        -I$(top_srcdir)/osaf/libs/common/immsv/include
 
 osaflogd_SOURCES = \
-       lgs_amf.c \
-       lgs_evt.c \
-       lgs_fmt.c \
-       lgs_imm.c \
-       lgs_main.c \
-       lgs_mbcsv.c \
-       lgs_mbcsv_v1.c \
-       lgs_mbcsv_v2.c \
-       lgs_mds.c \
-       lgs_stream.c \
-       lgs_util.c \
-       lgs_file.c \
-       lgs_filehdl.c \
-       lgs_mbcsv_v3.c \
-       lgs_config.c \
-       lgs_mbcsv_v5.c
+       lgs_amf.cc \
+       lgs_evt.cc \
+       lgs_fmt.cc \
+       lgs_imm.cc \
+       lgs_main.cc \
+       lgs_mbcsv.cc \
+       lgs_config.cc \
+       lgs_mbcsv_v1.cc \
+       lgs_mbcsv_v2.cc \
+       lgs_mds.cc \
+       lgs_stream.cc \
+       lgs_util.cc \
+       lgs_file.cc \
+       lgs_filehdl.cc \
+       lgs_mbcsv_v3.cc \
+       lgs_mbcsv_v5.cc
 
 osaflogd_LDADD = \
        $(top_builddir)/osaf/tools/safimm/src/libimmutil.la \
diff --git a/osaf/services/saf/logsv/lgs/lgs.h 
b/osaf/services/saf/logsv/lgs/lgs.h
--- a/osaf/services/saf/logsv/lgs/lgs.h
+++ b/osaf/services/saf/logsv/lgs/lgs.h
@@ -49,6 +49,10 @@
 
 #include "lgs_config.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* ========================================================================
  *   DEFINITIONS
  * ========================================================================
@@ -97,7 +101,7 @@ extern pthread_mutex_t lgs_OI_init_mutex
 
 extern uint32_t lgs_configure_mailbox(void);
 
-extern uint32_t lgs_amf_init(lgs_cb_t *);
+extern SaAisErrorT lgs_amf_init(lgs_cb_t *cb);
 extern uint32_t lgs_mds_init(lgs_cb_t *cb);
 extern uint32_t lgs_mds_finalize(lgs_cb_t *cb);
 extern uint32_t lgs_mds_change_role(lgs_cb_t *cb);
@@ -117,4 +121,8 @@ extern void lgs_imm_init_OI_handle(SaImm
        SaSelectionObjectT *immSelectionObject);
 extern void lgs_imm_impl_set(SaImmOiHandleT immOiHandle);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif   /* ifndef __LGS_H */
diff --git a/osaf/services/saf/logsv/lgs/lgs_amf.c 
b/osaf/services/saf/logsv/lgs/lgs_amf.cc
rename from osaf/services/saf/logsv/lgs/lgs_amf.c
rename to osaf/services/saf/logsv/lgs/lgs_amf.cc
--- a/osaf/services/saf/logsv/lgs/lgs_amf.c
+++ b/osaf/services/saf/logsv/lgs/lgs_amf.cc
@@ -171,7 +171,7 @@ static SaAisErrorT amf_quiesced_state_ha
 
        mds_role = cb->mds_role;
        cb->mds_role = V_DEST_RL_QUIESCED;
-       if ((rc = lgs_mds_change_role(cb)) != NCSCC_RC_SUCCESS) {
+       if (lgs_mds_change_role(cb) != NCSCC_RC_SUCCESS) {
                LOG_ER("lgs_mds_change_role FAILED");
                rc = SA_AIS_ERR_FAILED_OPERATION;
                cb->mds_role = mds_role;
@@ -306,7 +306,7 @@ static void amf_csi_set_callback(SaInvoc
                }
 
                /* Inform MBCSV of HA state change */
-               if (NCSCC_RC_SUCCESS != (error = 
lgs_mbcsv_change_HA_state(lgs_cb)))
+               if (NCSCC_RC_SUCCESS != lgs_mbcsv_change_HA_state(lgs_cb))
                        error = SA_AIS_ERR_FAILED_OPERATION;
        }
 
diff --git a/osaf/services/saf/logsv/lgs/lgs_cb.h 
b/osaf/services/saf/logsv/lgs/lgs_cb.h
--- a/osaf/services/saf/logsv/lgs/lgs_cb.h
+++ b/osaf/services/saf/logsv/lgs/lgs_cb.h
@@ -25,6 +25,10 @@
 #include <ncs_edu_pub.h>
 #include "lgs_stream.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* Default HA state assigned locally during lgs initialization */
 #define LGS_HA_INIT_STATE 0
 
@@ -92,4 +96,8 @@ extern uint32_t lgs_cb_init(lgs_cb_t *);
 extern void lgs_process_mbx(SYSF_MBX *mbx);
 extern uint32_t lgs_stream_add(lgs_cb_t *cb, log_stream_t *stream);
 
+#ifdef __cplusplus
+}
 #endif
+
+#endif
diff --git a/osaf/services/saf/logsv/lgs/lgs_config.c 
b/osaf/services/saf/logsv/lgs/lgs_config.cc
rename from osaf/services/saf/logsv/lgs/lgs_config.c
rename to osaf/services/saf/logsv/lgs/lgs_config.cc
--- a/osaf/services/saf/logsv/lgs/lgs_config.c
+++ b/osaf/services/saf/logsv/lgs/lgs_config.cc
@@ -15,7 +15,9 @@
  *
  */
 
+#ifndef _GNU_SOURCE
 #define _GNU_SOURCE
+#endif
 #include "lgs_config.h"
 #include <stdio.h>
 #include <stdlib.h>
@@ -124,47 +126,9 @@ static struct {
        SaUint32T logMaxApplicationStreams;
        SaUint32T logFileIoTimeout;
        SaUint32T logFileSysConfig;
-} lgs_conf_def = {
-       .logRootDirectory = PKGLOGDIR,
-       .logDataGroupname = "",
-       .logStreamFileFormat = DEFAULT_APP_SYS_FORMAT_EXP,
-       .logStreamSystemHighLimit = 0,
-       .logStreamSystemLowLimit = 0,
-       .logStreamAppHighLimit = 0,
-       .logStreamAppLowLimit = 0,
-       .logMaxLogrecsize = 1024,
-       .logMaxApplicationStreams = 64,
-       .logFileIoTimeout = 500,
-       .logFileSysConfig = 1,
-};
+} lgs_conf_def;
 
-static lgs_conf_t lgs_conf = {
-       /*
-        * For the following flags, LGS_CNF_DEF means that no external
-        * configuration exists and the corresponding attributes hard-coded
-        * default value is used.Is set to false if configuration is found in
-        * IMM object or environment variable.
-        * See function lgs_logconf_get() for more info.
-        */
-       .OpenSafLogConfig_object_exist = false,
-
-       .logRootDirectory_cnfflag = LGS_CNF_DEF,
-       .logStreamSystemHighLimit_cnfflag = LGS_CNF_DEF,
-       .logStreamSystemLowLimit_cnfflag = LGS_CNF_DEF,
-       .logStreamAppHighLimit_cnfflag = LGS_CNF_DEF,
-       .logStreamAppLowLimit_cnfflag = LGS_CNF_DEF,
-       .logDataGroupname_cnfflag = LGS_CNF_DEF,
-       /*
-        * The following attributes cannot be configured in the config file
-        * Will be set to false if the attribute exists in the IMM config object
-        */
-       .logMaxLogrecsize_cnfflag = LGS_CNF_DEF,
-       .logMaxApplicationStreams_cnfflag = LGS_CNF_DEF,
-       .logFileIoTimeout_cnfflag = LGS_CNF_DEF,
-       .logFileSysConfig_cnfflag = LGS_CNF_DEF,
-       .logStreamFileFormat_cnfflag = LGS_CNF_DEF,
-};
-
+static lgs_conf_t lgs_conf;
 
 /******************************************************************************
  * Internal functions
@@ -177,6 +141,49 @@ static int verify_all_init(void);
  * Utility functions
  */
 
+static void lgs_conf_def_init(void)
+{
+       lgs_conf_def.logRootDirectory = PKGLOGDIR;
+       lgs_conf_def.logDataGroupname = "";
+       lgs_conf_def.logStreamFileFormat = DEFAULT_APP_SYS_FORMAT_EXP;
+       lgs_conf_def.logStreamSystemHighLimit = 0;
+       lgs_conf_def.logStreamSystemLowLimit = 0;
+       lgs_conf_def.logStreamAppHighLimit = 0;
+       lgs_conf_def.logStreamAppLowLimit = 0;
+       lgs_conf_def.logMaxLogrecsize = 1024;
+       lgs_conf_def.logMaxApplicationStreams = 64;
+       lgs_conf_def.logFileIoTimeout = 500;
+       lgs_conf_def.logFileSysConfig = 1;
+}
+
+// Initialize lgs_conf global variable
+static void lgs_conf_init(void)
+{
+       /*
+        * For the following flags, LGS_CNF_DEF means that no external
+        * configuration exists and the corresponding attributes hard-coded
+        * default value is used.Is set to false if configuration is found in
+        * IMM object or environment variable.
+        * See function lgs_logconf_get() for more info.
+        */
+       lgs_conf.OpenSafLogConfig_object_exist = false;
+       lgs_conf.logRootDirectory_cnfflag = LGS_CNF_DEF;
+       lgs_conf.logStreamSystemHighLimit_cnfflag = LGS_CNF_DEF;
+       lgs_conf.logStreamSystemLowLimit_cnfflag = LGS_CNF_DEF;
+       lgs_conf.logStreamAppHighLimit_cnfflag = LGS_CNF_DEF;
+       lgs_conf.logStreamAppLowLimit_cnfflag = LGS_CNF_DEF;
+       lgs_conf.logDataGroupname_cnfflag = LGS_CNF_DEF;
+       /*
+        * The following attributes cannot be configured in the config file
+        * Will be set to false if the attribute exists in the IMM config object
+        */
+       lgs_conf.logMaxLogrecsize_cnfflag = LGS_CNF_DEF;
+       lgs_conf.logMaxApplicationStreams_cnfflag = LGS_CNF_DEF;
+       lgs_conf.logFileIoTimeout_cnfflag = LGS_CNF_DEF;
+       lgs_conf.logFileSysConfig_cnfflag = LGS_CNF_DEF;
+       lgs_conf.logStreamFileFormat_cnfflag = LGS_CNF_DEF;
+};
+
 /**
  * Set default values for all parameters
  */
@@ -219,7 +226,7 @@ static void init_default(void)
  *                         NOTE! Must be initiated before first call {NULL, 0}
  *
  */
-void lgs_cfgupd_list_create(char *name_str, char *value_str,
+void lgs_cfgupd_list_create(const char *name_str, char *value_str,
        lgs_config_chg_t *config_data)
 {
        char *tmp_char_ptr = NULL;
@@ -230,7 +237,7 @@ void lgs_cfgupd_list_create(char *name_s
        TRACE_ENTER2("name_str '%s', value_str \"%s\"", name_str, value_str);
 
        cfg_size = strlen(name_str) + strlen(value_str) + 2;
-       cfg_param_str = malloc(cfg_size);
+       cfg_param_str = (char *) malloc(cfg_size);
        if (cfg_param_str == NULL) {
                TRACE("%s: malloc Fail Aborted", __FUNCTION__);
                osaf_abort(0);
@@ -363,7 +370,7 @@ int lgs_cfg_update(const lgs_config_chg_
         * since the information is changed by the strok() function. The
         * original config_data must not be changed.
         */
-       allocmem_ptr = calloc(1,config_data->ckpt_buffer_size);
+       allocmem_ptr = (char *) calloc(1,config_data->ckpt_buffer_size);
        param_ptr = allocmem_ptr;
        (void) memcpy(param_ptr, config_data->ckpt_buffer_ptr, 
config_data->ckpt_buffer_size);
 
@@ -381,7 +388,7 @@ int lgs_cfg_update(const lgs_config_chg_
                value_str = strtok_r(NULL, "=", &saveptr);
                if (value_str == NULL) {
                        TRACE("%s: value_str is NULL", __FUNCTION__);
-                       value_str = "";
+                       value_str = const_cast<char *> ("");
                }
 
                /* Update config data */
@@ -1135,7 +1142,11 @@ static void read_log_config_environ_var_
 void lgs_cfg_init(SaImmOiHandleT immOiHandle, SaAmfHAStateT ha_state)
 {
        TRACE_ENTER2("immOiHandle = %lld", immOiHandle);
-       
+
+       /* Initialize the global variables */
+       lgs_conf_def_init();
+       lgs_conf_init();
+
        /* Initiate the default values for all parameters
         */
        init_default();
@@ -1367,7 +1378,7 @@ void conf_runtime_obj_create(SaImmOiHand
        char *nameptr = namestr;
        void *valarr[] = { &nameptr };
        const SaImmAttrValuesT_2 attr_logConfig = {
-               .attrName = "logConfig",
+               .attrName = (SaImmAttrNameT) "logConfig",
                .attrValueType = SA_IMM_ATTR_SASTRINGT,
                .attrValuesNumber = 1,
                .attrValues = valarr
@@ -1384,7 +1395,7 @@ void conf_runtime_obj_create(SaImmOiHand
        parent_name_p = &parent_name;
 
        rc = saImmOiRtObjectCreate_2(immOiHandle,
-                       "OpenSafLogCurrentConfig",
+                   (SaImmClassNameT) "OpenSafLogCurrentConfig",
                        parent_name_p,
                        attrValues);
 
@@ -1510,13 +1521,13 @@ static char *cnfflag_str(lgs_conf_flg_t 
 {
        switch (cnfflag) {
        case LGS_CNF_OBJ:
-               return "Config object";
+               return const_cast<char *> ("Config object");
        case LGS_CNF_ENV:
-               return "Environment variable";
+               return const_cast<char *> ("Environment variable");
        case LGS_CNF_DEF:
-               return "Default value";
+               return const_cast<char *> ("Default value");
        default:
-               return "Bad input";
+               return const_cast <char *> ("Bad input");
        }
 }
 
diff --git a/osaf/services/saf/logsv/lgs/lgs_config.h 
b/osaf/services/saf/logsv/lgs/lgs_config.h
--- a/osaf/services/saf/logsv/lgs/lgs_config.h
+++ b/osaf/services/saf/logsv/lgs/lgs_config.h
@@ -23,7 +23,7 @@
 #include "saImmOi.h"
 #include "saAmf.h"
 
-#ifdef __cplusplus
+#ifdef __cplusplus
 extern "C" {
 #endif
 
@@ -74,7 +74,7 @@ typedef struct config_chkpt {
 void lgs_cfg_init(SaImmOiHandleT immOiHandle, SaAmfHAStateT ha_state);
 const void *lgs_cfg_get(lgs_logconfGet_t param);
 bool lgs_path_is_writeable_dir_h(const char *pathname);
-void lgs_cfgupd_list_create(char *name_str, char *value_str,
+void lgs_cfgupd_list_create(const char *name_str, char *value_str,
        lgs_config_chg_t *config_data);
 char *lgs_cfgupd_list_read(char **name_str, char **value_str,
        char *next_param_ptr, lgs_config_chg_t *cfgupd_ptr);
diff --git a/osaf/services/saf/logsv/lgs/lgs_evt.c 
b/osaf/services/saf/logsv/lgs/lgs_evt.cc
rename from osaf/services/saf/logsv/lgs/lgs_evt.c
rename to osaf/services/saf/logsv/lgs/lgs_evt.cc
--- a/osaf/services/saf/logsv/lgs/lgs_evt.c
+++ b/osaf/services/saf/logsv/lgs/lgs_evt.cc
@@ -104,7 +104,9 @@ log_client_t *lgs_client_new(MDS_DEST md
                        lgs_cb->last_client_id++;
        }
 
-       if (NULL == (client = calloc(1, sizeof(log_client_t)))) {
+       client = (log_client_t *) calloc(1, sizeof(log_client_t));
+
+       if (NULL == client) {
                LOG_WA("lgs_client_new calloc FAILED");
                goto done;
        }
@@ -210,7 +212,8 @@ int lgs_client_stream_add(uint32_t clien
                goto err_exit;
        }
 
-       if ((stream = malloc(sizeof(lgs_stream_list_t))) == NULL) {
+       stream = (lgs_stream_list_t *) malloc(sizeof(lgs_stream_list_t));
+       if (stream  == NULL) {
                LOG_WA("malloc FAILED");
                rs = -1;
                goto err_exit;
@@ -567,7 +570,6 @@ uint32_t lgs_cb_init(lgs_cb_t *lgs_cb)
        reg_param.key_size = sizeof(uint32_t);
 
        /* Assign Initial HA state */
-       lgs_cb->ha_state = LGS_HA_INIT_STATE;
        lgs_cb->csi_assigned = false;
 
        /* Assign Version. Currently, hardcoded, This will change later */
@@ -782,6 +784,7 @@ static SaAisErrorT create_new_app_stream
        log_stream_t *stream;
        SaBoolT twelveHourModeFlag;
        uint32_t len = 0;
+       SaUint32T logMaxLogrecsize_conf = 0;
 
        TRACE_ENTER();
 
@@ -846,7 +849,7 @@ static SaAisErrorT create_new_app_stream
        }
 
        /* Verify that the fixedLogRecordSize is in valid range */
-       SaUint32T logMaxLogrecsize_conf = *(SaUint32T *) 
lgs_cfg_get(LGS_IMM_LOG_MAX_LOGRECSIZE);
+       logMaxLogrecsize_conf = *(SaUint32T *) 
lgs_cfg_get(LGS_IMM_LOG_MAX_LOGRECSIZE);
        if ((open_sync_param->maxLogRecordSize != 0) &&
                ((open_sync_param->maxLogRecordSize < SA_LOG_MIN_RECORD_SIZE) ||
                (open_sync_param->maxLogRecordSize > logMaxLogrecsize_conf))) {
@@ -1151,6 +1154,7 @@ static uint32_t proc_write_log_async_msg
        lgsv_ckpt_msg_v1_t ckpt_v1;
        lgsv_ckpt_msg_v2_t ckpt_v2;
        void *ckpt_ptr;
+       uint32_t max_logrecsize = 0;
 
        TRACE_ENTER2("client_id %u, stream ID %u", param->client_id, 
param->lstr_id);
 
@@ -1177,11 +1181,10 @@ static uint32_t proc_write_log_async_msg
        ** To avoid truncation we support fixedLogRecordSize==0. We then 
allocate an
        ** a buffer with an implementation defined size instead. We also do not 
pad in this mode.
        */
-       uint32_t max_logrecsize = *(uint32_t *) lgs_cfg_get(
-               LGS_IMM_LOG_MAX_LOGRECSIZE);
+       max_logrecsize = *(uint32_t *) lgs_cfg_get(LGS_IMM_LOG_MAX_LOGRECSIZE);
        
        buf_size = stream->fixedLogRecordSize == 0 ? max_logrecsize : 
stream->fixedLogRecordSize;
-       logOutputString = calloc(1, buf_size+1); /* Make room for a '\0' 
termination */
+       logOutputString = (char *) calloc(1, buf_size + 1); /* Make room for a 
'\0' termination */
        if (logOutputString == NULL) {
                LOG_ER("Could not allocate %d bytes", 
stream->fixedLogRecordSize + 1);
                error = SA_AIS_ERR_NO_MEMORY;
diff --git a/osaf/services/saf/logsv/lgs/lgs_evt.h 
b/osaf/services/saf/logsv/lgs/lgs_evt.h
--- a/osaf/services/saf/logsv/lgs/lgs_evt.h
+++ b/osaf/services/saf/logsv/lgs/lgs_evt.h
@@ -24,6 +24,10 @@
 
 #include "lgs_cb.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 typedef enum lgsv_lgs_evt_type {
        LGSV_LGS_LGSV_MSG = 0,
        LGSV_LGS_EVT_LGA_UP = 1,
@@ -77,4 +81,9 @@ extern uint32_t lgs_remove_lga_down_rec(
 extern void lgs_send_write_log_ack(uint32_t client_id, SaInvocationT 
invocation, SaAisErrorT error, MDS_DEST mds_dest);
 extern void lgs_free_write_log(const lgsv_write_log_async_req_t *param);
 
+#ifdef __cplusplus
+}
+#endif
+
+
 #endif   /*!LGS_EVT_H */
diff --git a/osaf/services/saf/logsv/lgs/lgs_file.c 
b/osaf/services/saf/logsv/lgs/lgs_file.cc
rename from osaf/services/saf/logsv/lgs/lgs_file.c
rename to osaf/services/saf/logsv/lgs/lgs_file.cc
--- a/osaf/services/saf/logsv/lgs/lgs_file.c
+++ b/osaf/services/saf/logsv/lgs/lgs_file.cc
@@ -55,15 +55,7 @@ struct file_communicate {
 /* Used for synchronizing and transfer of data ownership between main thread
  * and file thread.
  */
-static struct file_communicate lgs_com_data = {
-       .answer_f = false,
-       .request_f = false,
-       .timeout_f = false,
-       .request_code = LGSF_NOREQ,
-       .return_code = LGSF_NORETC,
-       .indata_ptr = NULL,
-       .outdata_ptr = NULL
-};
+static struct file_communicate lgs_com_data;
 
 static pthread_t file_thread_id;
 
@@ -73,6 +65,18 @@ static pthread_t file_thread_id;
 
 static int start_file_thread(void);
 
+static void file_communicate_init(void)
+{
+       lgs_com_data.answer_f = false;
+       lgs_com_data.request_f = false;
+       lgs_com_data.timeout_f = false;
+       lgs_com_data.request_code = LGSF_NOREQ;
+       lgs_com_data.return_code = LGSF_NORETC;
+       lgs_com_data.indata_ptr = NULL;
+       lgs_com_data.outdata_ptr = NULL;
+       lgs_com_data.outdata_size = 0;
+}
+
 /**
  * Creates absolute time to use with pthread_cond_timedwait.
  * 
@@ -216,6 +220,9 @@ static int start_file_thread(void)
 
        TRACE_ENTER();
 
+       // Initialize the global data
+       file_communicate_init();
+
        /* Init thread handling */
        rc = pthread_mutex_init(&lgs_ftcom_mutex, NULL);
        if (rc != 0) {
@@ -346,12 +353,12 @@ lgsf_retcode_t log_file_api(lgsf_apipar_
        int rc = 0;
        struct timespec timeout_time;
        int fd = 0;
-
        /* If this flag is true always return LGSF_BUSY */
        bool busy_close_flag = false;
-       
+       uint32_t max_waittime_ms = 0;
+
        osaf_mutex_lock_ordie(&lgs_ftcom_mutex); /* LOCK */
-       
+
        /* If busy_f is true the file thread is hanging. In this case don't send
         * a request.
         */
@@ -420,7 +427,7 @@ lgsf_retcode_t log_file_api(lgsf_apipar_
        if (rc != 0) osaf_abort(rc);
        
        /* Wait for an answer */
-       uint32_t max_waittime_ms = *(SaUint32T *) 
lgs_cfg_get(LGS_IMM_FILEHDL_TIMEOUT);
+       max_waittime_ms = *(SaUint32T *) lgs_cfg_get(LGS_IMM_FILEHDL_TIMEOUT);
        get_timeout_time(&timeout_time, max_waittime_ms);
 
        while (lgs_com_data.answer_f == false) {
@@ -469,19 +476,19 @@ api_exit:
 char *lgsf_retcode_str(lgsf_retcode_t rc)
 {
        static char errstr[256];
-       
+
        switch (rc) {
        case LGSF_SUCESS:
-               return "LGSF_SUCESS";
+               return const_cast<char *> ("LGSF_SUCESS");
        case LGSF_BUSY:
-               return "LGSF_BUSY";
+               return const_cast<char *> ("LGSF_BUSY");
        case LGSF_TIMEOUT:
-               return "LGSF_TIMEOUT";
+               return const_cast<char *> ("LGSF_TIMEOUT");
        case LGSF_FAIL:
-               return "LGSF_FAIL";
+               return const_cast<char *> ("LGSF_FAIL");
        default:
                sprintf(errstr,"Unknown lgsf_retcode %d",rc);
                return errstr;
        }
-       return "dummy"; 
+       return const_cast<char *> ("dummy");
 }
diff --git a/osaf/services/saf/logsv/lgs/lgs_filehdl.c 
b/osaf/services/saf/logsv/lgs/lgs_filehdl.cc
rename from osaf/services/saf/logsv/lgs/lgs_filehdl.c
rename to osaf/services/saf/logsv/lgs/lgs_filehdl.cc
--- a/osaf/services/saf/logsv/lgs/lgs_filehdl.c
+++ b/osaf/services/saf/logsv/lgs/lgs_filehdl.cc
@@ -163,8 +163,8 @@ int create_config_file_hdl(void *indata,
 {
        int rc = 0;
        FILE *filp;
-       ccfh_t *params_in = (ccfh_t *) indata;
-       char *logFileFormat = (char *) (indata + sizeof(ccfh_t));
+       ccfh_t *params_in = static_cast<ccfh_t *>(indata);
+       char *logFileFormat = static_cast<char *>(indata) + sizeof(ccfh_t);
        char *file_path = (logFileFormat + params_in->logFileFormat_size);
        
        TRACE_ENTER();
@@ -244,7 +244,8 @@ done:
  */
 int write_log_record_hdl(void *indata, void *outdata, size_t max_outsize, bool 
*timeout_f)
 {
-       int rc, bytes_written = 0;
+       int rc = 0;
+       uint32_t bytes_written = 0;
        off_t file_length = 0;
        wlrh_t *params_in = (wlrh_t *) indata;
        /* Get log record pointed by lgs_rec pointer */
@@ -356,7 +357,9 @@ int make_log_dir_hdl(void *indata, void 
        char *epath_p;
        struct stat statbuf;
        int n;
-       
+       int path_len = 0;
+       char *rootpp = NULL;
+
        TRACE_ENTER();
        
        TRACE("rootpath \"%s\"",rootpath);
@@ -375,7 +378,7 @@ int make_log_dir_hdl(void *indata, void 
                rootpath = PKGLOGDIR;
 #endif
                n = snprintf(out_path, max_outsize, "%s", rootpath);
-               if (n >= max_outsize) {
+               if ((uint32_t) n >=  max_outsize) {
                        LOG_WA("Invalid root path > max_outsize");
                        mldh_rc = -1;
                        goto done;
@@ -395,7 +398,8 @@ int make_log_dir_hdl(void *indata, void 
                mldh_rc = -1;
                goto done;
        }
-       char *rootpp = mpath;
+
+       rootpp = mpath;
        while (*rootpp == '/') rootpp++; /* Remove preceding '/' */
        while (mpath[strlen(mpath)-1] == '/') { /* Remove trailing '/' if 
needed */
                mpath[strlen(mpath)-1] = '\0';
@@ -419,7 +423,6 @@ int make_log_dir_hdl(void *indata, void 
        TRACE("%s - Path to create \"%s\"",__FUNCTION__,dir_to_make);
                
        /* Create the path */
-       int path_len = 0;
        spath_p = epath_p = dir_to_make;
        while ((epath_p = strchr(epath_p, '/')) != NULL) {
                if (epath_p == spath_p) {
@@ -692,7 +695,7 @@ int get_number_of_log_files_hdl(void *in
                TRACE_1("oldest: %s", namelist[old_ind]->d_name);
                n = snprintf(oldest_file, max_outsize, "%s/%s",
                                path, namelist[old_ind]->d_name);
-               if (n >= max_outsize) {
+               if ((uint32_t) n >= max_outsize) {
                        LOG_WA("oldest_file > max_outsize");
                        rc = -1;
                        goto done_free;
@@ -729,6 +732,7 @@ int own_log_files_by_group_hdl(void *ind
        int n, files, i;
        olfbgh_t *params_in;
        int rc = 0;
+       gid_t gid = 0;
 
        TRACE_ENTER();
 
@@ -762,7 +766,7 @@ int own_log_files_by_group_hdl(void *ind
                goto done_exit;
        }
 
-       gid_t gid = lgs_get_data_gid(params_in->groupname);
+       gid = lgs_get_data_gid(params_in->groupname);
 
        while (n--) {
                char file[PATH_MAX];
diff --git a/osaf/services/saf/logsv/lgs/lgs_fmt.c 
b/osaf/services/saf/logsv/lgs/lgs_fmt.cc
rename from osaf/services/saf/logsv/lgs/lgs_fmt.c
rename to osaf/services/saf/logsv/lgs/lgs_fmt.cc
--- a/osaf/services/saf/logsv/lgs/lgs_fmt.c
+++ b/osaf/services/saf/logsv/lgs/lgs_fmt.cc
@@ -531,11 +531,13 @@ static int extractCommonField(char *dest
                              const struct tm *timeStampData, const 
SaLogRecordT *logRecord, SaUint16T rec_size)
 {
        SaInt32T fieldSize;
-       size_t stringSize;
+       size_t stringSize, i;
        SaUint16T fieldSizeOffset = 0;
        int characters = 0;
        char *hex_string = NULL, *hex_string_ptr = NULL;
-        int no_ch = 0, i;
+    int no_ch = 0;
+       SaTimeT us = 0;
+       long gmtOffset = 0, uGmtOffset = 0;
 
        *fmtExpPtrOffset = DEFAULT_FMT_EXP_PTR_OFFSET;
 
@@ -697,17 +699,17 @@ static int extractCommonField(char *dest
        case C_TIME_MILLISECOND_LETTER:
                stringSize = 4 * sizeof(char);
                /* Extract millisecond from logTimestamp */
-               SaTimeT us = logRecord->logTimeStamp / SA_TIME_ONE_MICROSECOND;
+               us = logRecord->logTimeStamp / SA_TIME_ONE_MICROSECOND;
                characters = snprintf(dest, dest_size, "%03lld", us % 
SA_TIME_ONE_MICROSECOND);
                break;
 
        case C_TIME_TIMEZONE_LETTER:
                stringSize = 6 * sizeof(char);
                /* Get timezone offset from localtime to UTC time */
-               long gmtOffset = (timeStampData->tm_gmtoff / SECOND_PER_HOUR) * 
100 +
+               gmtOffset = (timeStampData->tm_gmtoff / SECOND_PER_HOUR) * 100 +
                        (timeStampData->tm_gmtoff % SECOND_PER_HOUR) / 
SECOND_PER_MINUTE;
 
-               long uGmtOffset = (gmtOffset >= 0) ? (gmtOffset) : (gmtOffset * 
-1);
+               uGmtOffset = (gmtOffset >= 0) ? (gmtOffset) : (gmtOffset * -1);
                characters = snprintf(dest, dest_size, "%c%04ld", gmtOffset >= 
0 ? '+' : '-', uGmtOffset);
                break;
 
@@ -794,7 +796,7 @@ static int extractCommonField(char *dest
        if (characters == -1)
                characters = 0;
 
-       if (characters > dest_size)
+       if (characters > (int) dest_size)
                characters = dest_size;
 
        return characters;
@@ -820,6 +822,7 @@ static int extractNotificationField(char
        SaInt32T fieldSize;
        SaInt32T characters = 0;
        SaUint16T fieldSizeOffset = 0;
+       long gmtOffset = 0, uGmtOffset = 0;
 
        *fmtExpPtrOffset = DEFAULT_FMT_EXP_PTR_OFFSET;
 
@@ -981,11 +984,10 @@ static int extractNotificationField(char
 
        case N_EVENT_TIME_TIMEZONE_LETTER:
                /* Get time offset from localtime to UTC */
-               characters = 6; /* to avoid using {} */
-               long gmtOffset = (eventTimeData->tm_gmtoff / SECOND_PER_HOUR) * 
100 +
+               gmtOffset = (eventTimeData->tm_gmtoff / SECOND_PER_HOUR) * 100 +
                        (eventTimeData->tm_gmtoff % SECOND_PER_HOUR) / 
SECOND_PER_MINUTE;
 
-               long uGmtOffset = (gmtOffset >= 0) ? (gmtOffset) : (gmtOffset * 
-1);
+               uGmtOffset = (gmtOffset >= 0) ? (gmtOffset) : (gmtOffset * -1);
                characters = snprintf(dest, dest_size, "%c%04ld", gmtOffset >= 
0 ? '+' : '-', uGmtOffset);
                break;
 
@@ -1049,7 +1051,7 @@ static int extractNotificationField(char
        if (characters == -1)
                characters = 0;
 
-       if (characters > dest_size)
+       if (characters > (int) dest_size)
                characters = dest_size;
 
        return characters;
@@ -1134,7 +1136,7 @@ static int extractSystemField(char *dest
        if (characters == -1)
                characters = 0;
 
-       if (characters > dest_size)
+       if (characters > (int) dest_size)
                characters = dest_size;
 
        return characters;
@@ -1240,7 +1242,7 @@ int lgs_format_log_record(SaLogRecordT *
        struct tm *timeStampData;
        SaBoolT _twelveHourModeFlag = SA_FALSE;
        const SaBoolT *twelveHourModeFlag = &_twelveHourModeFlag;
-       int i = 0;
+       size_t i = 0;
        SaUint16T rec_size = dest_size;
 
        if (formatExpression == NULL) {
diff --git a/osaf/services/saf/logsv/lgs/lgs_fmt.h 
b/osaf/services/saf/logsv/lgs/lgs_fmt.h
--- a/osaf/services/saf/logsv/lgs/lgs_fmt.h
+++ b/osaf/services/saf/logsv/lgs/lgs_fmt.h
@@ -21,6 +21,10 @@
 #include <saAis.h>
 #include <saLog.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define TOKEN_START_SYMBOL '@'
 #define STRING_END_CHARACTER '\0'
 #define TERMINATION_CHARACTER '\n'
@@ -175,4 +179,8 @@ extern SaBoolT lgs_is_valid_format_expre
 extern int lgs_format_log_record(SaLogRecordT *, const SaStringT, SaUint64T 
logFileSize, SaUint16T fixedLogRecordSize,
        size_t dest_size, char *dest, SaUint32T);
 
+#ifdef __cplusplus
+}
 #endif
+
+#endif
diff --git a/osaf/services/saf/logsv/lgs/lgs_imm.c 
b/osaf/services/saf/logsv/lgs/lgs_imm.cc
rename from osaf/services/saf/logsv/lgs/lgs_imm.c
rename to osaf/services/saf/logsv/lgs/lgs_imm.cc
--- a/osaf/services/saf/logsv/lgs/lgs_imm.c
+++ b/osaf/services/saf/logsv/lgs/lgs_imm.cc
@@ -26,7 +26,9 @@
  * Examples can be found in file lgs_stream.c, e.g. function fileopen(...)
  */
 
+#ifndef _GNU_SOURCE
 #define _GNU_SOURCE
+#endif
 #include <poll.h>
 #include <stdio.h>
 #include <errno.h>
@@ -40,7 +42,6 @@
 #include <saImmOm.h>
 #include <saImmOi.h>
 
-#include "osaf_secutil.h"
 #include "immutil.h"
 #include "osaf_time.h"
 #include "lgs.h"
@@ -72,7 +73,7 @@ const unsigned int max_waiting_time_60s 
 const unsigned int max_waiting_time_10s = 10 * 1000;   /* 10 secs */
 
 /* Must be able to index this array using streamType */
-static char *log_file_format[] = {
+static const char *log_file_format[] = {
        DEFAULT_ALM_NOT_FORMAT_EXP,
        DEFAULT_ALM_NOT_FORMAT_EXP,
        DEFAULT_APP_SYS_FORMAT_EXP,
@@ -82,6 +83,8 @@ static char *log_file_format[] = {
 static SaVersionT immVersion = { 'A', 2, 11 };
 
 static const SaImmOiImplementerNameT implementerName = 
(SaImmOiImplementerNameT)"safLogService";
+static const SaImmClassNameT safLogConfig_str = (SaImmClassNameT) 
"OpenSafLogConfig";
+static const SaImmClassNameT streamConfig_str = (SaImmClassNameT) 
"SaLogStreamConfig";
 
 extern struct ImmutilWrapperProfile immutilWrapperProfile;
 
@@ -122,18 +125,23 @@ static void report_om_error(SaImmOiHandl
 {
        char ao_err_string[256];
        SaStringT p_ao_err_string = ao_err_string;
+       char admop_err[256];
+       strcpy(admop_err, (const char *) SA_IMM_PARAM_ADMOP_ERROR);
        SaImmAdminOperationParamsT_2 ao_err_param = {
-       SA_IMM_PARAM_ADMOP_ERROR,
-       SA_IMM_ATTR_SASTRINGT,
-       &p_ao_err_string };
+               admop_err,
+               SA_IMM_ATTR_SASTRINGT,
+               &p_ao_err_string
+       };
        const SaImmAdminOperationParamsT_2 *ao_err_params[2] = {
-       &ao_err_param,
-       NULL };
-       
+               &ao_err_param,
+               NULL
+       };
+
        va_list ap;
        va_start(ap, format);
        (void) vsnprintf(ao_err_string, 256, format, ap);
        va_end(ap);
+
        TRACE("%s",ao_err_string);
        (void) saImmOiAdminOperationResult_o2(immOiHandle, invocation,
                   SA_AIS_ERR_INVALID_PARAM,
@@ -439,7 +447,7 @@ static void adminOperationCallback(SaImm
                stream->severityFilter = severityFilter;
 
                (void)immutil_update_one_rattr(immOiHandle, (char 
*)objectName->value,
-                                              "saLogStreamSeverityFilter", 
SA_IMM_ATTR_SAUINT32T,
+                          (SaImmAttrNameT) "saLogStreamSeverityFilter", 
SA_IMM_ATTR_SAUINT32T,
                                               &stream->severityFilter);
 
                (void)immutil_saImmOiAdminOperationResult(immOiHandle, 
invocation, SA_AIS_OK);
@@ -929,8 +937,9 @@ static lgs_stream_defval_t *get_SaLogStr
                        TRACE("immutil_saImmOmInitialize fail rc=%d", rc);
                }
                if (rc == SA_AIS_OK) {
-                       rc = immutil_saImmOmClassDescriptionGet_2(om_handle, 
"SaLogStreamConfig",
-                                       &cc, &attributes);
+                       rc = immutil_saImmOmClassDescriptionGet_2(om_handle,
+                                 (SaImmClassNameT) "SaLogStreamConfig",
+                                 &cc, &attributes);
                }
                
                if (rc == SA_AIS_OK) {
@@ -1992,7 +2001,7 @@ static void config_ccb_apply_modify(cons
                        root_dir_chg_flag = true;
                } else if (!strcmp(attribute->attrName, LOG_DATA_GROUPNAME)) {
                        if (value == NULL) {
-                               value_str = "";
+                               value_str = const_cast<char *> ("");
                        } else {
                                value_str = *((char **)value);
                        }
@@ -2002,7 +2011,7 @@ static void config_ccb_apply_modify(cons
                } else if (!strcmp(attribute->attrName, 
LOG_STREAM_FILE_FORMAT)) {
                        if (value == NULL) {
                                /* Use built-in file format as default */
-                               value_str = DEFAULT_APP_SYS_FORMAT_EXP;
+                               value_str = const_cast<char *> 
(DEFAULT_APP_SYS_FORMAT_EXP);
                        } else {
                                value_str = *((char **)value);
                        }
@@ -2168,7 +2177,7 @@ static SaAisErrorT stream_create_and_con
                                (*stream)->fixedLogRecordSize = *((SaUint32T *) 
value);
                                TRACE("fixedLogRecordSize: %u", 
(*stream)->fixedLogRecordSize);
                        } else if 
(!strcmp(ccb->param.create.attrValues[i]->attrName, 
"saLogStreamLogFullAction")) {
-                               (*stream)->logFullAction = *((SaUint32T *) 
value);
+                               (*stream)->logFullAction = 
*((SaLogFileFullActionT *) value);
                                TRACE("logFullAction: %u", 
(*stream)->logFullAction);
                        } else if 
(!strcmp(ccb->param.create.attrValues[i]->attrName, 
"saLogStreamLogFullHaltThreshold")) {
                                (*stream)->logFullHaltThreshold = *((SaUint32T 
*) value);
@@ -2201,7 +2210,7 @@ static SaAisErrorT stream_create_and_con
 
        /* Update creation timestamp */
        (void) immutil_update_one_rattr(lgs_cb->immOiHandle, (const char*) 
objectName.value,
-                       "saLogStreamCreationTimestamp", SA_IMM_ATTR_SATIMET,
+                       (SaImmAttrNameT) "saLogStreamCreationTimestamp", 
SA_IMM_ATTR_SATIMET,
                        &(*stream)->creationTimeStamp);
 
        done:
@@ -2270,7 +2279,7 @@ static void stream_ccb_apply_modify(cons
                        stream->fixedLogRecordSize = fixedLogRecordSize;
                        new_cfg_file_needed = true;
                } else if (!strcmp(attribute->attrName, 
"saLogStreamLogFullAction")) {
-                       SaLogFileFullActionT logFullAction = *((SaUint32T 
*)value);
+                       SaLogFileFullActionT logFullAction = 
*((SaLogFileFullActionT *)value);
                        stream->logFullAction = logFullAction;
                        new_cfg_file_needed = true;
                } else if (!strcmp(attribute->attrName, 
"saLogStreamLogFullHaltThreshold")) {
@@ -2299,7 +2308,7 @@ static void stream_ccb_apply_modify(cons
 
        osaf_clock_gettime(CLOCK_REALTIME, &curtime_tspec);
        time_t cur_time = curtime_tspec.tv_sec;
-       const char *root_path = lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
+       const char *root_path = (const char *) 
lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
        if (new_cfg_file_needed) {
                int rc;
                if ((rc = log_stream_config_change(LGS_STREAM_CREATE_FILES,
@@ -2531,16 +2540,16 @@ static SaAisErrorT stream_create_and_con
        int i = 0;
        log_stream_t *stream;
        char *attribute_names[] = {
-               "saLogStreamFileName",
-               "saLogStreamPathName",
-               "saLogStreamMaxLogFileSize",
-               "saLogStreamFixedLogRecordSize",
-               "saLogStreamLogFullAction",
-               "saLogStreamLogFullHaltThreshold",
-               "saLogStreamMaxFilesRotated",
-               "saLogStreamLogFileFormat",
-               "saLogStreamSeverityFilter",
-               "saLogStreamCreationTimestamp",
+               const_cast<char *> ("saLogStreamFileName"),
+               const_cast<char *> ("saLogStreamPathName"),
+               const_cast<char *> ("saLogStreamMaxLogFileSize"),
+               const_cast<char *> ("saLogStreamFixedLogRecordSize"),
+               const_cast<char *> ("saLogStreamLogFullAction"),
+               const_cast<char *> ("saLogStreamLogFullHaltThreshold"),
+               const_cast<char *> ("saLogStreamMaxFilesRotated"),
+               const_cast<char *> ("saLogStreamLogFileFormat"),
+               const_cast<char *> ("saLogStreamSeverityFilter"),
+               const_cast<char *> ("saLogStreamCreationTimestamp"),
                NULL
        };
        
@@ -2594,7 +2603,7 @@ static SaAisErrorT stream_create_and_con
                        stream->fixedLogRecordSize = *((SaUint32T *)value);
                        TRACE("fixedLogRecordSize: %u", 
stream->fixedLogRecordSize);
                } else if (!strcmp(attribute->attrName, 
"saLogStreamLogFullAction")) {
-                       stream->logFullAction = *((SaUint32T *)value);
+                       stream->logFullAction = *((SaLogFileFullActionT 
*)value);
                        TRACE("logFullAction: %u", stream->logFullAction);
                } else if (!strcmp(attribute->attrName, 
"saLogStreamLogFullHaltThreshold")) {
                        stream->logFullHaltThreshold = *((SaUint32T *)value);
@@ -2667,10 +2676,10 @@ SaAisErrorT lgs_imm_create_configStream(
        int streamId = 0;
        int errorsAreFatal;
        SaNameT objectName;
-       SaNameT root_name = {
-               .value = "safApp=safLogService",
-               .length = sizeof("safApp=safLogService")
-       };
+       SaNameT root_name;
+
+       strcpy((char *) root_name.value, "safApp=safLogService");
+       root_name.length = sizeof("safApp=safLogService");
 
 
        TRACE_ENTER();
@@ -2679,7 +2688,7 @@ SaAisErrorT lgs_imm_create_configStream(
        (void)immutil_saImmOmAccessorInitialize(omHandle, &accessorHandle);
 
        /* Search for all objects of class "SaLogStreamConfig" */
-       objectSearch.searchOneAttr.attrName = "safLgStrCfg";
+       objectSearch.searchOneAttr.attrName = (SaImmAttrNameT) "safLgStrCfg";
        objectSearch.searchOneAttr.attrValueType = SA_IMM_ATTR_SASTRINGT;
        objectSearch.searchOneAttr.attrValue = NULL;
 
@@ -2714,8 +2723,8 @@ SaAisErrorT lgs_imm_create_configStream(
        stream = log_stream_getnext_by_name(NULL);
        while (stream != NULL) {
                (void)immutil_update_one_rattr(cb->immOiHandle, stream->name,
-                                              "saLogStreamCreationTimestamp", 
SA_IMM_ATTR_SATIMET,
-                                              &stream->creationTimeStamp);
+                                  (SaImmAttrNameT) 
"saLogStreamCreationTimestamp", SA_IMM_ATTR_SATIMET,
+                              &stream->creationTimeStamp);
 
                log_stream_open_fileinit(stream);
                stream = log_stream_getnext_by_name(stream->name);
@@ -2754,12 +2763,11 @@ void lgs_imm_init_OI_handle(SaImmOiHandl
        SaSelectionObjectT *immSelectionObject)
 {
        SaAisErrorT rc;
-       int msecs_waited;
+       uint32_t msecs_waited = 0;
 
        TRACE_ENTER();
 
        /* Initialize IMM OI service */
-       msecs_waited = 0;
        rc = saImmOiInitialize_2(immOiHandle, &callbacks, &immVersion);
        while ((rc == SA_AIS_ERR_TRY_AGAIN) && (msecs_waited < 
max_waiting_time_60s)) {
                usleep(sleep_delay_ms * 1000);
@@ -2794,13 +2802,12 @@ void lgs_imm_init_OI_handle(SaImmOiHandl
 static SaAisErrorT imm_impl_set_sequence(SaImmOiHandleT immOiHandle)
 {
        SaAisErrorT rc = SA_AIS_OK;
-       int msecs_waited;
+       uint32_t msecs_waited = 0;
 
        TRACE_ENTER();
 
        /* Become object implementer
         */
-       msecs_waited = 0;
        rc = saImmOiImplementerSet(immOiHandle, implementerName);
        while (((rc == SA_AIS_ERR_TRY_AGAIN) || (rc == SA_AIS_ERR_EXIST)) &&
                        (msecs_waited < max_waiting_time_60s)) {
@@ -2817,14 +2824,13 @@ static SaAisErrorT imm_impl_set_sequence
         * Become class implementer for the OpenSafLogConfig class if it exists
         */
        if ( true == *(bool*) 
lgs_cfg_get(LGS_IMM_LOG_OPENSAFLOGCONFIG_CLASS_EXIST)) {
-               (void)immutil_saImmOiClassImplementerSet(immOiHandle, 
"OpenSafLogConfig");
                msecs_waited = 0;
-               rc = saImmOiClassImplementerSet(immOiHandle, 
"OpenSafLogConfig");
+               rc = saImmOiClassImplementerSet(immOiHandle, safLogConfig_str);
                while (((rc == SA_AIS_ERR_TRY_AGAIN) || (rc == 
SA_AIS_ERR_EXIST))
                                && (msecs_waited < max_waiting_time_60s)) {
                        usleep(sleep_delay_ms * 1000);
                        msecs_waited += sleep_delay_ms;
-                       rc = saImmOiClassImplementerSet(immOiHandle, 
"OpenSafLogConfig");
+                       rc = saImmOiClassImplementerSet(immOiHandle, 
safLogConfig_str);
                }
                if (rc != SA_AIS_OK) {
                        TRACE("saImmOiClassImplementerSet OpenSafLogConfig 
failed %s", saf_error(rc));
@@ -2832,21 +2838,19 @@ static SaAisErrorT imm_impl_set_sequence
                }
        }
 
-       if (*(bool*) lgs_cfg_get(LGS_IMM_LOG_OPENSAFLOGCONFIG_CLASS_EXIST)) {
-               msecs_waited = 0;
-               rc = saImmOiClassImplementerSet(immOiHandle, 
"SaLogStreamConfig");
-               while (((rc == SA_AIS_ERR_TRY_AGAIN) || (rc == 
SA_AIS_ERR_EXIST))
-                               && (msecs_waited < max_waiting_time_60s)) {
-                       usleep(sleep_delay_ms * 1000);
-                       msecs_waited += sleep_delay_ms;
-                       rc = saImmOiClassImplementerSet(immOiHandle, 
"SaLogStreamConfig");
-               }
-               if (rc != SA_AIS_OK) {
-                       TRACE("saImmOiClassImplementerSet SaLogStreamConfig 
failed %u", rc);
-                       goto done;
-               }
+       msecs_waited = 0;
+       rc = saImmOiClassImplementerSet(immOiHandle, streamConfig_str);
+       while (((rc == SA_AIS_ERR_TRY_AGAIN) || (rc == SA_AIS_ERR_EXIST))
+                       && (msecs_waited < max_waiting_time_60s)) {
+               usleep(sleep_delay_ms * 1000);
+               msecs_waited += sleep_delay_ms;
+               rc = saImmOiClassImplementerSet(immOiHandle, streamConfig_str);
        }
-       
+       if (rc != SA_AIS_OK) {
+               TRACE("saImmOiClassImplementerSet SaLogStreamConfig failed %u", 
rc);
+               goto done;
+       }
+
 done:
        return rc;
        TRACE_LEAVE();
@@ -2907,7 +2911,7 @@ static void *imm_impl_init_thread(void *
         * This will reinstall IMM poll event handling
         */
        lgsv_lgs_evt_t *lgsv_evt;
-       lgsv_evt = calloc(1, sizeof(lgsv_lgs_evt_t));
+       lgsv_evt = (lgsv_lgs_evt_t *) calloc(1, sizeof(lgsv_lgs_evt_t));
        osafassert(lgsv_evt);
        lgsv_evt->evt_type = LGSV_EVT_NO_OP;
        if (m_NCS_IPC_SEND(&lgs_mbx, lgsv_evt, LGS_IPC_PRIO_CTRL_MSGS) !=
diff --git a/osaf/services/saf/logsv/lgs/lgs_main.c 
b/osaf/services/saf/logsv/lgs/lgs_main.cc
rename from osaf/services/saf/logsv/lgs/lgs_main.c
rename to osaf/services/saf/logsv/lgs/lgs_main.cc
--- a/osaf/services/saf/logsv/lgs/lgs_main.c
+++ b/osaf/services/saf/logsv/lgs/lgs_main.cc
@@ -20,8 +20,9 @@
  *   INCLUDE FILES
  * ========================================================================
  */
-
+#ifndef _GNU_SOURCE
 #define _GNU_SOURCE
+#endif
 #include <string.h>
 #include <stdio.h>
 #include <stdlib.h>
@@ -110,7 +111,7 @@ static void rda_cb(uint32_t cb_hdl, PCS_
 
        TRACE_ENTER();
 
-       evt = calloc(1, sizeof(lgsv_lgs_evt_t));
+       evt = (lgsv_lgs_evt_t *) calloc(1, sizeof(lgsv_lgs_evt_t));
        if (NULL == evt) {
                LOG_ER("calloc failed");
                goto done;
@@ -209,6 +210,8 @@ static uint32_t log_initialize(void)
        uint32_t rc = NCSCC_RC_FAILURE;
 
        TRACE_ENTER();
+       char *logsv_root_dir = NULL;
+       char *logsv_data_groupname = NULL;
 
        /* Determine how this process was started, by NID or AMF */
        if (getenv("SA_AMF_COMPONENT_NAME") == NULL)
@@ -239,8 +242,8 @@ static uint32_t log_initialize(void)
        lgs_trace_config(); /* Show all configuration in TRACE */
        
        /* Show some configurtion info in sysylog */
-       char *logsv_root_dir = (char *) lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
-       char *logsv_data_groupname = (char *) 
lgs_cfg_get(LGS_IMM_DATA_GROUPNAME);
+       logsv_root_dir = (char *) lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
+       logsv_data_groupname = (char *) lgs_cfg_get(LGS_IMM_DATA_GROUPNAME);
        LOG_NO("LOG root directory is: \"%s\"", logsv_root_dir);
        LOG_NO("LOG data group is: \"%s\"", logsv_data_groupname);
 
@@ -342,7 +345,7 @@ static uint32_t log_initialize(void)
 
 done:
        if (lgs_cb->nid_started &&
-           nid_notify("LOGD", rc, NULL) != NCSCC_RC_SUCCESS) {
+           nid_notify(const_cast<char *>("LOGD"), rc, NULL) != 
NCSCC_RC_SUCCESS) {
                LOG_ER("nid_notify failed");
                rc = NCSCC_RC_FAILURE;
        }
diff --git a/osaf/services/saf/logsv/lgs/lgs_mbcsv.c 
b/osaf/services/saf/logsv/lgs/lgs_mbcsv.cc
rename from osaf/services/saf/logsv/lgs/lgs_mbcsv.c
rename to osaf/services/saf/logsv/lgs/lgs_mbcsv.cc
--- a/osaf/services/saf/logsv/lgs/lgs_mbcsv.c
+++ b/osaf/services/saf/logsv/lgs/lgs_mbcsv.cc
@@ -157,7 +157,7 @@ uint32_t edp_ed_open_stream_rec(EDU_HDL 
                memset(*ckpt_open_stream_msg_dec_ptr, '\0', 
sizeof(lgs_ckpt_stream_open_t));
                ckpt_open_stream_msg_ptr = *ckpt_open_stream_msg_dec_ptr;
        } else {
-               ckpt_open_stream_msg_ptr = ptr;
+               ckpt_open_stream_msg_ptr = (lgs_ckpt_stream_open_t *) ptr;
        }
 
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, 
ckpt_open_stream_rec_ed_rules, ckpt_open_stream_msg_ptr,
@@ -621,13 +621,13 @@ static uint32_t edu_enc_streams(lgs_cb_t
 {
        log_stream_t *log_stream_rec = NULL;
        lgs_ckpt_stream_open_t *ckpt_stream_rec;
-       EDU_ERR ederror = 0;
+       EDU_ERR ederror;
        uint32_t rc = NCSCC_RC_SUCCESS, num_rec = 0;
        uint8_t *pheader = NULL;
        lgsv_ckpt_header_t ckpt_hdr;
 
        /* Prepare reg. structure to encode */
-       ckpt_stream_rec = malloc(sizeof(lgs_ckpt_stream_open_t));
+       ckpt_stream_rec = (lgs_ckpt_stream_open_t *) 
malloc(sizeof(lgs_ckpt_stream_open_t));
        if (ckpt_stream_rec == NULL) {
                LOG_WA("malloc FAILED");
                return (NCSCC_RC_FAILURE);
@@ -691,14 +691,14 @@ static uint32_t edu_enc_reg_list(lgs_cb_
 {
        log_client_t *client = NULL;
        lgs_ckpt_initialize_msg_t *ckpt_reg_rec;
-       EDU_ERR ederror = 0;
+       EDU_ERR ederror;
        uint32_t rc = NCSCC_RC_SUCCESS, num_rec = 0;
        uint8_t *pheader = NULL;
        lgsv_ckpt_header_t ckpt_hdr;
 
        TRACE_ENTER();
        /* Prepare reg. structure to encode */
-       ckpt_reg_rec = malloc(sizeof(lgs_ckpt_initialize_msg_t));
+       ckpt_reg_rec = (lgs_ckpt_initialize_msg_t *) 
malloc(sizeof(lgs_ckpt_initialize_msg_t));
        if (ckpt_reg_rec == NULL) {
                LOG_WA("malloc FAILED");
                return (NCSCC_RC_FAILURE);
@@ -771,7 +771,7 @@ static uint32_t ckpt_encode_async_update
        lgsv_ckpt_msg_v2_t *data_v2 = NULL;
        lgsv_ckpt_msg_v1_t *data_v1 = NULL;
        void * vdata = NULL;
-       EDU_ERR ederror = 0;
+       EDU_ERR ederror;
        uint32_t rc = NCSCC_RC_SUCCESS;
        EDU_PROG_HANDLER edp_function;
        
@@ -953,11 +953,11 @@ static uint32_t ckpt_decode_log_write(lg
        const int max_waiting_time_ms = 100;
 
        if (lgs_is_peer_v2()) {
-               lgsv_ckpt_msg_v2_t *ckpt_msg_v2 = ckpt_msg;
+               lgsv_ckpt_msg_v2_t *ckpt_msg_v2 = (lgsv_ckpt_msg_v2_t *) 
ckpt_msg;
                write_log = &ckpt_msg_v2->ckpt_rec.write_log;
                edp_function = edp_ed_write_rec_v2;
        } else {
-               lgsv_ckpt_msg_v1_t *ckpt_msg_v1 = ckpt_msg;
+               lgsv_ckpt_msg_v1_t *ckpt_msg_v1 = (lgsv_ckpt_msg_v1_t *) 
ckpt_msg;
                write_log = &ckpt_msg_v1->ckpt_rec.write_log;
                edp_function = edp_ed_write_rec_v1;
        }
@@ -995,11 +995,11 @@ static uint32_t ckpt_decode_log_close(lg
        EDU_PROG_HANDLER edp_function;
        
        if (lgs_is_peer_v2()) {
-               lgsv_ckpt_msg_v2_t *ckpt_msg_v2 = ckpt_msg;
+               lgsv_ckpt_msg_v2_t *ckpt_msg_v2 = (lgsv_ckpt_msg_v2_t *) 
ckpt_msg;
                stream_close = &ckpt_msg_v2->ckpt_rec.stream_close;
                edp_function = edp_ed_close_stream_rec_v2;
        } else {
-               lgsv_ckpt_msg_v1_t *ckpt_msg_v1 = ckpt_msg;
+               lgsv_ckpt_msg_v1_t *ckpt_msg_v1 = (lgsv_ckpt_msg_v1_t *) 
ckpt_msg;
                stream_close = &ckpt_msg_v1->ckpt_rec.stream_close;
                edp_function = edp_ed_close_stream_rec_v1;
        }
@@ -1019,11 +1019,11 @@ static uint32_t ckpt_decode_log_client_f
        EDU_PROG_HANDLER edp_function;
        
        if (lgs_is_peer_v2()) {
-               lgsv_ckpt_msg_v2_t *ckpt_msg_v2 = ckpt_msg;
+               lgsv_ckpt_msg_v2_t *ckpt_msg_v2 = (lgsv_ckpt_msg_v2_t *) 
ckpt_msg;
                finalize_client = &ckpt_msg_v2->ckpt_rec.finalize_client;
                edp_function = edp_ed_finalize_rec_v2;
        } else {
-               lgsv_ckpt_msg_v1_t *ckpt_msg_v1 = ckpt_msg;
+               lgsv_ckpt_msg_v1_t *ckpt_msg_v1 = (lgsv_ckpt_msg_v1_t *) 
ckpt_msg;
                finalize_client = &ckpt_msg_v1->ckpt_rec.finalize_client;
                edp_function = edp_ed_finalize_rec_v1;
        }
@@ -1043,11 +1043,11 @@ static uint32_t ckpt_decode_log_client_d
        EDU_PROG_HANDLER edp_function;
                
        if (lgs_is_peer_v2()) {
-               lgsv_ckpt_msg_v2_t *ckpt_msg_v2 = ckpt_msg;
+               lgsv_ckpt_msg_v2_t *ckpt_msg_v2 = (lgsv_ckpt_msg_v2_t *) 
ckpt_msg;
                client_down = &ckpt_msg_v2->ckpt_rec.agent_down;
                edp_function = edp_ed_agent_down_rec_v2;
        } else {
-               lgsv_ckpt_msg_v1_t *ckpt_msg_v1 = ckpt_msg;
+               lgsv_ckpt_msg_v1_t *ckpt_msg_v1 = (lgsv_ckpt_msg_v1_t *) 
ckpt_msg;
                client_down = &ckpt_msg_v1->ckpt_rec.agent_dest;
                edp_function = ncs_edp_mds_dest;
        }
@@ -1067,11 +1067,11 @@ static uint32_t ckpt_decode_log_cfg_stre
        EDU_PROG_HANDLER edp_function;
        
        if (lgs_is_peer_v2()) {
-               lgsv_ckpt_msg_v2_t *ckpt_msg_v2 = ckpt_msg;
+               lgsv_ckpt_msg_v2_t *ckpt_msg_v2 = (lgsv_ckpt_msg_v2_t *) 
ckpt_msg;
                stream_cfg = &ckpt_msg_v2->ckpt_rec.stream_cfg;
                edp_function = edp_ed_cfg_stream_rec_v2;
        } else {
-               lgsv_ckpt_msg_v1_t *ckpt_msg_v1 = ckpt_msg;
+               lgsv_ckpt_msg_v1_t *ckpt_msg_v1 = (lgsv_ckpt_msg_v1_t *) 
ckpt_msg;
                stream_cfg = &ckpt_msg_v1->ckpt_rec.stream_cfg;
                edp_function = edp_ed_cfg_stream_rec_v1;
        }
@@ -1094,15 +1094,15 @@ static uint32_t ckpt_decode_log_cfg(lgs_
        lgsv_ckpt_msg_v2_t *ckpt_msg_v2;
 
        if (lgs_is_peer_v5()) {
-               ckpt_msg_v5 = ckpt_msg;
+               ckpt_msg_v5 = (lgsv_ckpt_msg_v5_t *) ckpt_msg;
                lgs_cfg = &ckpt_msg_v5->ckpt_rec.lgs_cfg;
                edp_function = edp_ed_lgs_cfg_rec_v5;
        } else if (lgs_is_peer_v4()) {
-               ckpt_msg_v3 = ckpt_msg;
+               ckpt_msg_v3 = (lgsv_ckpt_msg_v3_t *) ckpt_msg;
                lgs_cfg = &ckpt_msg_v3->ckpt_rec.lgs_cfg;
                edp_function = edp_ed_lgs_cfg_rec_v3;
        } else if (lgs_is_peer_v2()) {
-               ckpt_msg_v2 = ckpt_msg;
+               ckpt_msg_v2 = (lgsv_ckpt_msg_v2_t *) ckpt_msg;
                lgs_cfg = &ckpt_msg_v2->ckpt_rec.lgs_cfg;
                edp_function = edp_ed_lgs_cfg_rec_v2;
        } else {
@@ -1286,7 +1286,7 @@ static uint32_t ckpt_decode_async_update
 static uint32_t ckpt_decode_cold_sync(lgs_cb_t *cb, NCS_MBCSV_CB_ARG *cbk_arg)
 {
        uint32_t rc = NCSCC_RC_SUCCESS;
-       EDU_ERR ederror = 0;
+       EDU_ERR ederror;
        lgsv_ckpt_msg_v1_t msg_v1;
        lgsv_ckpt_msg_v2_t msg_v2;
        uint32_t num_rec = 0;
@@ -1436,7 +1436,7 @@ static uint32_t process_ckpt_data(lgs_cb
 {
        uint32_t rc = NCSCC_RC_SUCCESS;
        lgsv_ckpt_msg_type_t lgsv_ckpt_msg_type;
-       lgsv_ckpt_msg_v2_t *data_v1;
+       lgsv_ckpt_msg_v1_t *data_v1;
        lgsv_ckpt_msg_v2_t *data_v2;
        lgsv_ckpt_msg_v3_t *data_v3;
        lgsv_ckpt_msg_v5_t *data_v5;
@@ -1447,16 +1447,16 @@ static uint32_t process_ckpt_data(lgs_cb
        }
        
        if (lgs_is_peer_v5()) {
-               data_v5 = data;
+               data_v5 = (lgsv_ckpt_msg_v5_t *) data;
                lgsv_ckpt_msg_type = data_v5->header.ckpt_rec_type;
        } else if (lgs_is_peer_v4()) {
-               data_v3 = data;
+               data_v3 = (lgsv_ckpt_msg_v3_t *) data;
                lgsv_ckpt_msg_type = data_v3->header.ckpt_rec_type;
        } else if (lgs_is_peer_v2()) {
-               data_v2 = data;
+               data_v2 = (lgsv_ckpt_msg_v2_t *) data;
                lgsv_ckpt_msg_type = data_v2->header.ckpt_rec_type;
        } else {
-               data_v1 = data;
+               data_v1 = (lgsv_ckpt_msg_v1_t *) data;
                lgsv_ckpt_msg_type = data_v1->header.ckpt_rec_type;
        }
        
@@ -1498,10 +1498,10 @@ static uint32_t ckpt_proc_initialize_cli
        lgs_ckpt_initialize_msg_t *param;
        
        if (lgs_is_peer_v2()) {
-               lgsv_ckpt_msg_v2_t *data_v2 = data;
+               lgsv_ckpt_msg_v2_t *data_v2 = (lgsv_ckpt_msg_v2_t *) data;
                param = &data_v2->ckpt_rec.initialize_client;
        } else {
-               lgsv_ckpt_msg_v1_t *data_v1 = data;
+               lgsv_ckpt_msg_v1_t *data_v1 = (lgsv_ckpt_msg_v1_t *) data;
                param = &data_v1->ckpt_rec.initialize_client;
        }
 
@@ -1559,7 +1559,8 @@ static void insert_localmsg_in_stream(lo
        const int LOG_REC_ID = 0;
        const int sleep_delay_ms = 10;
        const int max_waiting_time_ms = 100;
-       
+       int msecs_waited = 0;
+
        /* Log record common */
        //log_record.logTimeStamp = setLogTime();
        log_record.logTimeStamp = setLogTime();
@@ -1606,7 +1607,7 @@ static void insert_localmsg_in_stream(lo
        uint32_t max_logrecsize = *(uint32_t *) lgs_cfg_get(
                LGS_IMM_LOG_MAX_LOGRECSIZE);
        buf_size = stream->fixedLogRecordSize == 0 ? max_logrecsize : 
stream->fixedLogRecordSize;
-       logOutputString = calloc(1, buf_size+1); /* Make room for a '\0' 
termination */
+       logOutputString = (char *) calloc(1, buf_size+1); /* Make room for a 
'\0' termination */
        if (logOutputString == NULL) {
                LOG_ER("%s - Could not allocate %d bytes",__FUNCTION__, 
stream->fixedLogRecordSize + 1);
                goto done;
@@ -1621,7 +1622,6 @@ static void insert_localmsg_in_stream(lo
        }
 
        /* Write the log record to file */
-       int msecs_waited = 0;
        rc = log_stream_write_h(stream, logOutputString, n);
        while ((rc == -2) && (msecs_waited < max_waiting_time_ms)) {
                usleep(sleep_delay_ms * 1000);
@@ -1632,7 +1632,7 @@ static void insert_localmsg_in_stream(lo
                  Therefore, need to re-allocate memory & retry writing log.
                */
                if (logOutputString == NULL) {
-                       logOutputString = calloc(1, buf_size + 1); /* Make room 
for a '\0' termination */
+                       logOutputString = (char *) calloc(1, buf_size + 1); /* 
Make room for a '\0' termination */
                        if (logOutputString == NULL) {
                                LOG_ER("%s - Could not allocate %d 
bytes",__FUNCTION__, stream->fixedLogRecordSize + 1);
                        }
@@ -1700,7 +1700,7 @@ static uint32_t ckpt_proc_log_write(lgs_
        TRACE_ENTER();
 
        if (lgs_is_peer_v2()) {
-               lgsv_ckpt_msg_v2_t *data_v2 = data;
+               lgsv_ckpt_msg_v2_t *data_v2 = (lgsv_ckpt_msg_v2_t *) data;
                streamId = data_v2->ckpt_rec.write_log.streamId;
                recordId = data_v2->ckpt_rec.write_log.recordId;
                curFileSize = data_v2->ckpt_rec.write_log.curFileSize;
@@ -1708,7 +1708,7 @@ static uint32_t ckpt_proc_log_write(lgs_
                logRecord = data_v2->ckpt_rec.write_log.logRecord;
                c_file_close_time_stamp = 
data_v2->ckpt_rec.write_log.c_file_close_time_stamp;
        } else {
-               lgsv_ckpt_msg_v1_t *data_v1 = data;
+               lgsv_ckpt_msg_v1_t *data_v1 = (lgsv_ckpt_msg_v1_t *) data;
                streamId = data_v1->ckpt_rec.write_log.streamId;
                recordId = data_v1->ckpt_rec.write_log.recordId;
                curFileSize = data_v1->ckpt_rec.write_log.curFileSize;
@@ -1737,7 +1737,7 @@ static uint32_t ckpt_proc_log_write(lgs_
                 * in log file.
                 */
                if ((stream->stb_logRecordId + 1) != recordId) {
-                       insert_localmsg_in_stream(stream, "Possible loss of log 
record");
+                       insert_localmsg_in_stream(stream, const_cast<char *> 
("Possible loss of log record"));
                }
 
                /* Make a limited number of attempts to write if file IO timed 
out when 
@@ -1803,13 +1803,13 @@ static uint32_t ckpt_proc_close_stream(l
        TRACE_ENTER();
 
        if (lgs_is_peer_v2()) {
-               lgsv_ckpt_msg_v2_t *data_v2 = data;
+               lgsv_ckpt_msg_v2_t *data_v2 = (lgsv_ckpt_msg_v2_t *) data;
                streamId = data_v2->ckpt_rec.stream_close.streamId;
                clientId = data_v2->ckpt_rec.stream_close.clientId;
                /* Set time for closing. Used for renaming */
                closetime_ptr = (time_t *) 
&data_v2->ckpt_rec.stream_close.c_file_close_time_stamp;
        } else {
-               lgsv_ckpt_msg_v1_t *data_v1 = data;
+               lgsv_ckpt_msg_v1_t *data_v1 = (lgsv_ckpt_msg_v1_t *) data;
                streamId = data_v1->ckpt_rec.stream_close.streamId;
                clientId = data_v1->ckpt_rec.stream_close.clientId;
                closetime_ptr = NULL;
@@ -1858,15 +1858,17 @@ uint32_t ckpt_proc_open_stream(lgs_cb_t 
        TRACE_ENTER();
        
        if (lgs_is_peer_v2()) {
-               lgsv_ckpt_msg_v2_t *data_v2 = data;
+               lgsv_ckpt_msg_v2_t *data_v2 = (lgsv_ckpt_msg_v2_t *) data;
                param = &data_v2->ckpt_rec.stream_open;
        } else {
-               lgsv_ckpt_msg_v1_t *data_v1 = data;
+               lgsv_ckpt_msg_v1_t *data_v1 = (lgsv_ckpt_msg_v1_t *) data;
                param = &data_v1->ckpt_rec.stream_open;
        }       
 
+       uint32_t invalidClient = (uint32_t) (-1);
        /* Check that client still exist */
-       if ((param->clientId != -1) && (lgs_client_get_by_id(param->clientId) 
== NULL)) {
+       if ((param->clientId != invalidClient) &&
+               (lgs_client_get_by_id(param->clientId) == NULL)) {
                LOG_WA("\tClient %u does not exist, failed to create stream 
'%s'", param->clientId, param->logStreamName);
                goto done;
        }
@@ -1928,7 +1930,8 @@ uint32_t ckpt_proc_open_stream(lgs_cb_t 
         ** Create an association between this client_id and the stream
         ** A client ID of -1 indicates that no client exist, skip this step.
         */
-       if ((param->clientId != -1) && lgs_client_stream_add(param->clientId, 
stream->streamId) != 0) {
+       if ((param->clientId != invalidClient) &&
+               lgs_client_stream_add(param->clientId, stream->streamId) != 0) {
                /* Do not allow standby to get out of sync */
                LOG_ER("%s - Failed to add stream '%s' to client 
%u",__FUNCTION__,
                                param->logStreamName, param->clientId);
@@ -1968,12 +1971,12 @@ static uint32_t ckpt_proc_finalize_clien
        time_t *closetime_ptr;
        
        if (lgs_is_peer_v2()) {
-               lgsv_ckpt_msg_v2_t *data_v2 = data;
+               lgsv_ckpt_msg_v2_t *data_v2 = (lgsv_ckpt_msg_v2_t *) data;
                lgs_ckpt_finalize_msg_v2_t *param = 
&data_v2->ckpt_rec.finalize_client;
                closetime_ptr = (time_t *) &param->c_file_close_time_stamp;
                client_id = param->client_id;
        } else {
-               lgsv_ckpt_msg_v1_t *data_v1 = data;
+               lgsv_ckpt_msg_v1_t *data_v1 = (lgsv_ckpt_msg_v1_t *) data;
                lgs_ckpt_finalize_msg_v1_t *param = 
&data_v1->ckpt_rec.finalize_client;
                closetime_ptr = NULL;
                client_id = param->client_id;
@@ -2011,12 +2014,12 @@ uint32_t ckpt_proc_agent_down(lgs_cb_t *
        TRACE_ENTER();
        
        if (lgs_is_peer_v2()) {
-               lgsv_ckpt_msg_v2_t *data_v2 = data;
+               lgsv_ckpt_msg_v2_t *data_v2 = (lgsv_ckpt_msg_v2_t *) data;
                closetime_ptr = (time_t *) 
&data_v2->ckpt_rec.agent_down.c_file_close_time_stamp;
                agent_dest = (MDS_DEST) data_v2->ckpt_rec.agent_down.agent_dest;
                
        } else {
-               lgsv_ckpt_msg_v1_t *data_v1 = data;
+               lgsv_ckpt_msg_v1_t *data_v1 = (lgsv_ckpt_msg_v1_t *) data;
                closetime_ptr = NULL;
                agent_dest = data_v1->ckpt_rec.agent_dest;
        }
@@ -2070,10 +2073,10 @@ static uint32_t ckpt_proc_cfg_stream(lgs
        TRACE_ENTER();
        
        if (lgs_is_peer_v2()) {
-               lgsv_ckpt_msg_v2_t *data_v2 = data;
+               lgsv_ckpt_msg_v2_t *data_v2 = (lgsv_ckpt_msg_v2_t *) data;
                name = data_v2->ckpt_rec.stream_cfg.name;
                fileName = data_v2->ckpt_rec.stream_cfg.fileName;
-               pathName = data_v2->ckpt_rec.stream_cfg.pathName; 
+               pathName = data_v2->ckpt_rec.stream_cfg.pathName;
                maxLogFileSize = data_v2->ckpt_rec.stream_cfg.maxLogFileSize;
                fixedLogRecordSize = 
data_v2->ckpt_rec.stream_cfg.fixedLogRecordSize;
                logFullAction = data_v2->ckpt_rec.stream_cfg.logFullAction;
@@ -2084,10 +2087,10 @@ static uint32_t ckpt_proc_cfg_stream(lgs
                logFileCurrent = data_v2->ckpt_rec.stream_cfg.logFileCurrent;
                closetime = 
data_v2->ckpt_rec.stream_cfg.c_file_close_time_stamp;
        } else {
-               lgsv_ckpt_msg_v1_t *data_v1 = data;
+               lgsv_ckpt_msg_v1_t *data_v1 = (lgsv_ckpt_msg_v1_t *) data;
                name = data_v1->ckpt_rec.stream_cfg.name;
                fileName = data_v1->ckpt_rec.stream_cfg.fileName;
-               pathName = data_v1->ckpt_rec.stream_cfg.pathName; 
+               pathName = data_v1->ckpt_rec.stream_cfg.pathName;
                maxLogFileSize = data_v1->ckpt_rec.stream_cfg.maxLogFileSize;
                fixedLogRecordSize = 
data_v1->ckpt_rec.stream_cfg.fixedLogRecordSize;
                logFullAction = data_v1->ckpt_rec.stream_cfg.logFullAction;
@@ -2124,7 +2127,7 @@ static uint32_t ckpt_proc_cfg_stream(lgs
        /* If split file mode, update standby files */
        if (lgs_is_split_file_system()) {
                int rc=0;
-               const char *root_path = lgs_cfg_get(
+               const char *root_path = (const char *) lgs_cfg_get(
                        LGS_IMM_LOG_ROOT_DIRECTORY);
                if ((rc = log_stream_config_change(LGS_STREAM_CREATE_FILES,
                                root_path, stream,
@@ -2180,16 +2183,16 @@ uint32_t lgs_ckpt_send_async(lgs_cb_t *c
        lgsv_ckpt_msg_type_t ckpt_rec_type;
 
        if (lgs_is_peer_v5()) {
-               lgsv_ckpt_msg_v5_t *ckpt_rec_v5 = ckpt_rec;
+               lgsv_ckpt_msg_v5_t *ckpt_rec_v5 = (lgsv_ckpt_msg_v5_t *) 
ckpt_rec;
                ckpt_rec_type = ckpt_rec_v5->header.ckpt_rec_type;
        } else if (lgs_is_peer_v4()) {
-               lgsv_ckpt_msg_v3_t *ckpt_rec_v3 = ckpt_rec;
+               lgsv_ckpt_msg_v3_t *ckpt_rec_v3 = (lgsv_ckpt_msg_v3_t *) 
ckpt_rec;
                ckpt_rec_type = ckpt_rec_v3->header.ckpt_rec_type;
        } else if (lgs_is_peer_v2()) {
-               lgsv_ckpt_msg_v2_t *ckpt_rec_v2 = ckpt_rec;
+               lgsv_ckpt_msg_v2_t *ckpt_rec_v2 = (lgsv_ckpt_msg_v2_t *) 
ckpt_rec;
                ckpt_rec_type = ckpt_rec_v2->header.ckpt_rec_type;
        } else {
-               lgsv_ckpt_msg_v1_t *ckpt_rec_v1 = ckpt_rec;
+               lgsv_ckpt_msg_v1_t *ckpt_rec_v1 = (lgsv_ckpt_msg_v1_t *) 
ckpt_rec;
                ckpt_rec_type = ckpt_rec_v1->header.ckpt_rec_type;
        }
        
@@ -2198,8 +2201,8 @@ uint32_t lgs_ckpt_send_async(lgs_cb_t *c
        memset(&mbcsv_arg, '\0', sizeof(NCS_MBCSV_ARG));
        mbcsv_arg.i_op = NCS_MBCSV_OP_SEND_CKPT;
        mbcsv_arg.i_mbcsv_hdl = cb->mbcsv_hdl;
-       mbcsv_arg.info.send_ckpt.i_action = action;
-       mbcsv_arg.info.send_ckpt.i_ckpt_hdl = 
(NCS_MBCSV_CKPT_HDL)cb->mbcsv_ckpt_hdl;
+       mbcsv_arg.info.send_ckpt.i_action = (NCS_MBCSV_ACT_TYPE) action;
+       mbcsv_arg.info.send_ckpt.i_ckpt_hdl = (NCS_MBCSV_CKPT_HDL) 
cb->mbcsv_ckpt_hdl;
        mbcsv_arg.info.send_ckpt.i_reo_hdl = NCS_PTR_TO_UNS64_CAST(ckpt_rec);   
/*Will be used in encode callback */
 
        /* Just store the address of the data to be send as an 
@@ -2329,7 +2332,7 @@ static uint32_t edp_ed_stream_list(EDU_H
        } else if (op == EDP_OP_TYPE_DEC) {
                ckpt_stream_list_msg_dec_ptr = (lgs_stream_list_t **)ptr;
                if (*ckpt_stream_list_msg_dec_ptr == NULL) {
-                       *ckpt_stream_list_msg_dec_ptr = calloc(1, 
sizeof(lgs_stream_list_t));
+                       *ckpt_stream_list_msg_dec_ptr = (lgs_stream_list *) 
calloc(1, sizeof(lgs_stream_list_t));
                        if (*ckpt_stream_list_msg_dec_ptr == NULL) {
                                LOG_WA("calloc FAILED");
                                *o_err = EDU_ERR_MEM_FAIL;
@@ -2339,7 +2342,7 @@ static uint32_t edp_ed_stream_list(EDU_H
                memset(*ckpt_stream_list_msg_dec_ptr, '\0', 
sizeof(lgs_stream_list_t));
                ckpt_stream_list_msg_ptr = *ckpt_stream_list_msg_dec_ptr;
        } else {
-               ckpt_stream_list_msg_ptr = ptr;
+               ckpt_stream_list_msg_ptr = (lgs_stream_list *) ptr;
        }
 
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, ckpt_stream_list_ed_rules, 
ckpt_stream_list_msg_ptr, ptr_data_len,
@@ -2374,7 +2377,7 @@ uint32_t edp_ed_reg_rec(EDU_HDL *edu_hdl
                memset(*ckpt_reg_msg_dec_ptr, '\0', 
sizeof(lgs_ckpt_initialize_msg_t));
                ckpt_reg_msg_ptr = *ckpt_reg_msg_dec_ptr;
        } else {
-               ckpt_reg_msg_ptr = ptr;
+               ckpt_reg_msg_ptr = (lgs_ckpt_initialize_msg_t *) ptr;
        }
 
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, ckpt_reg_rec_ed_rules, 
ckpt_reg_msg_ptr, ptr_data_len,
@@ -2427,7 +2430,7 @@ uint32_t edp_ed_header_rec(EDU_HDL *edu_
                memset(*ckpt_header_dec_ptr, '\0', sizeof(lgsv_ckpt_header_t));
                ckpt_header_ptr = *ckpt_header_dec_ptr;
        } else {
-               ckpt_header_ptr = ptr;
+               ckpt_header_ptr = (lgsv_ckpt_header_t *) ptr;
        }
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, ckpt_header_rec_ed_rules, 
ckpt_header_ptr, ptr_data_len,
                                 buf_env, op, o_err);
@@ -2547,7 +2550,7 @@ static uint32_t dec_ckpt_header(NCS_UBAI
                return NCSCC_RC_FAILURE;
        }
        p8 = ncs_dec_flatten_space(uba, local_data, 4);
-       header->ckpt_rec_type = ncs_decode_32bit(&p8);
+       header->ckpt_rec_type = (lgsv_ckpt_msg_type_t) ncs_decode_32bit(&p8);
        ncs_dec_skip_space(uba, 4);
 
        p8 = ncs_dec_flatten_space(uba, local_data, 4);
diff --git a/osaf/services/saf/logsv/lgs/lgs_mbcsv.h 
b/osaf/services/saf/logsv/lgs/lgs_mbcsv.h
--- a/osaf/services/saf/logsv/lgs/lgs_mbcsv.h
+++ b/osaf/services/saf/logsv/lgs/lgs_mbcsv.h
@@ -88,7 +88,7 @@ typedef struct {
        char *logPath;          /* log file path */
        uint64_t maxFileSize;   /* max file size configurable */
        int32_t maxLogRecordSize;       /* constant size of the records */
-       int32_t logFileFullAction;
+       SaLogFileFullActionT logFileFullAction;
        int32_t maxFilesRotated;        /* max number of rotation files 
configurable */
        char *fileFmt;
        /* end correspond to SaLogFileCreateAttributes */
diff --git a/osaf/services/saf/logsv/lgs/lgs_mbcsv_v1.c 
b/osaf/services/saf/logsv/lgs/lgs_mbcsv_v1.cc
rename from osaf/services/saf/logsv/lgs/lgs_mbcsv_v1.c
rename to osaf/services/saf/logsv/lgs/lgs_mbcsv_v1.cc
--- a/osaf/services/saf/logsv/lgs/lgs_mbcsv_v1.c
+++ b/osaf/services/saf/logsv/lgs/lgs_mbcsv_v1.cc
@@ -68,7 +68,7 @@ uint32_t edp_ed_write_rec_v1(EDU_HDL *ed
                memset(*ckpt_write_msg_dec_ptr, '\0', 
sizeof(lgs_ckpt_write_log_v1_t));
                ckpt_write_msg_ptr = *ckpt_write_msg_dec_ptr;
        } else {
-               ckpt_write_msg_ptr = ptr;
+               ckpt_write_msg_ptr = (lgs_ckpt_write_log_v1_t *) ptr;
        }
 
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, ckpt_write_rec_ed_rules, 
ckpt_write_msg_ptr, ptr_data_len,
@@ -121,7 +121,7 @@ uint32_t edp_ed_close_stream_rec_v1(EDU_
                memset(*ckpt_close_stream_msg_dec_ptr, '\0', 
sizeof(lgs_ckpt_stream_close_v1_t));
                ckpt_close_stream_msg_ptr = *ckpt_close_stream_msg_dec_ptr;
        } else {
-               ckpt_close_stream_msg_ptr = ptr;
+               ckpt_close_stream_msg_ptr = (lgs_ckpt_stream_close_v1_t *) ptr;
        }
 
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, 
ckpt_close_stream_rec_ed_rules,
@@ -173,7 +173,7 @@ uint32_t edp_ed_finalize_rec_v1(EDU_HDL 
                memset(*ckpt_final_msg_dec_ptr, '\0', 
sizeof(lgs_ckpt_finalize_msg_v1_t));
                ckpt_final_msg_ptr = *ckpt_final_msg_dec_ptr;
        } else {
-               ckpt_final_msg_ptr = ptr;
+               ckpt_final_msg_ptr = (lgs_ckpt_finalize_msg_v1_t *) ptr;
        }
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, ckpt_final_rec_ed_rules, 
ckpt_final_msg_ptr, ptr_data_len,
                                 buf_env, op, o_err);
@@ -235,7 +235,7 @@ uint32_t edp_ed_cfg_stream_rec_v1(EDU_HD
                memset(*ckpt_stream_cfg_msg_dec_ptr, '\0', 
sizeof(lgs_ckpt_stream_cfg_v1_t));
                ckpt_stream_cfg_msg_ptr = *ckpt_stream_cfg_msg_dec_ptr;
        } else {
-               ckpt_stream_cfg_msg_ptr = ptr;
+               ckpt_stream_cfg_msg_ptr = (lgs_ckpt_stream_cfg_v1_t *) ptr;
        }
 
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, 
ckpt_stream_cfg_rec_ed_rules, ckpt_stream_cfg_msg_ptr, ptr_data_len,
@@ -282,40 +282,40 @@ uint32_t edp_ed_ckpt_msg_v1(EDU_HDL *edu
                 (EDU_EXEC_RTINE)ckpt_msg_test_type},
 
                /* Reg Record */
-               {EDU_EXEC, edp_ed_reg_rec, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_reg_rec, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v1_t *)0)->ckpt_rec.initialize_client, 
0, NULL},
 
                /* Finalize record */
-               {EDU_EXEC, edp_ed_finalize_rec_v1, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_finalize_rec_v1, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v1_t *)0)->ckpt_rec.finalize_client, 0, 
NULL},
 
                /* write log Record */
-               {EDU_EXEC, edp_ed_write_rec_v1, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_write_rec_v1, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v1_t *)0)->ckpt_rec.write_log, 0, NULL},
 
                /* Open stream */
-               {EDU_EXEC, edp_ed_open_stream_rec, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_open_stream_rec, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v1_t *)0)->ckpt_rec.stream_open, 0, 
NULL},
 
                /* Close stream */
-               {EDU_EXEC, edp_ed_close_stream_rec_v1, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_close_stream_rec_v1, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v1_t *)0)->ckpt_rec.stream_close, 0, 
NULL},
 
                /* Agent dest */
-               {EDU_EXEC, ncs_edp_mds_dest, 0, 0, EDU_EXIT,
+               {EDU_EXEC, ncs_edp_mds_dest, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v1_t *)0)->ckpt_rec.agent_dest, 0, 
NULL},
 
                /* Cfg stream */
-               {EDU_EXEC, edp_ed_cfg_stream_rec_v1, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_cfg_stream_rec_v1, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v1_t *)0)->ckpt_rec.stream_cfg, 0, 
NULL},
 
                {EDU_END, 0, 0, 0, 0, 0, 0, NULL},
        };
 
        if (op == EDP_OP_TYPE_ENC) {
-               ckpt_msg_ptr = (lgsv_ckpt_msg_v1_t *)ptr;
+               ckpt_msg_ptr = (lgsv_ckpt_msg_v1_t *) ptr;
        } else if (op == EDP_OP_TYPE_DEC) {
-               ckpt_msg_dec_ptr = (lgsv_ckpt_msg_v1_t **)ptr;
+               ckpt_msg_dec_ptr = (lgsv_ckpt_msg_v1_t **) ptr;
                if (*ckpt_msg_dec_ptr == NULL) {
                        *o_err = EDU_ERR_MEM_FAIL;
                        return NCSCC_RC_FAILURE;
@@ -323,7 +323,7 @@ uint32_t edp_ed_ckpt_msg_v1(EDU_HDL *edu
                memset(*ckpt_msg_dec_ptr, '\0', sizeof(lgsv_ckpt_msg_v1_t));
                ckpt_msg_ptr = *ckpt_msg_dec_ptr;
        } else {
-               ckpt_msg_ptr = ptr;
+               ckpt_msg_ptr = (lgsv_ckpt_msg_v1_t *) ptr;
        }
 
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, ckpt_msg_ed_rules, 
ckpt_msg_ptr, ptr_data_len, buf_env, op, o_err);
diff --git a/osaf/services/saf/logsv/lgs/lgs_mbcsv_v1.h 
b/osaf/services/saf/logsv/lgs/lgs_mbcsv_v1.h
--- a/osaf/services/saf/logsv/lgs/lgs_mbcsv_v1.h
+++ b/osaf/services/saf/logsv/lgs/lgs_mbcsv_v1.h
@@ -19,13 +19,13 @@
 #ifndef LGS_MBCSV_V1_H
 #define        LGS_MBCSV_V1_H
 
+#include "lgs.h"
+#include "lgs_mbcsv.h"
+
 #ifdef __cplusplus
 extern "C" {
 #endif
 
-#include "lgs.h"
-#include "lgs_mbcsv.h"
-
 /* Structures for Checkpoint data ver 1 (to be replicated at the standby) */
 
 /* Finalize checkpoint record, used in cold/async checkpoint updates */
diff --git a/osaf/services/saf/logsv/lgs/lgs_mbcsv_v2.c 
b/osaf/services/saf/logsv/lgs/lgs_mbcsv_v2.cc
rename from osaf/services/saf/logsv/lgs/lgs_mbcsv_v2.c
rename to osaf/services/saf/logsv/lgs/lgs_mbcsv_v2.cc
--- a/osaf/services/saf/logsv/lgs/lgs_mbcsv_v2.c
+++ b/osaf/services/saf/logsv/lgs/lgs_mbcsv_v2.cc
@@ -50,12 +50,12 @@ uint32_t ckpt_proc_lgs_cfg_v2(lgs_cb_t *
                LOG_ER("%s ERROR: Called when ceck-point version 
1",__FUNCTION__);
                osafassert(0);
        }
-       lgsv_ckpt_msg_v2_t *data_v2 = data;
+       lgsv_ckpt_msg_v2_t *data_v2 = (lgsv_ckpt_msg_v2_t *) data;
        lgs_ckpt_lgs_cfg_v2_t *param = &data_v2->ckpt_rec.lgs_cfg;
        
        /* Handle log files for new directory if configured for split file 
system */
        if (lgs_is_split_file_system()) {
-               const char *old_root = lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
+               const char *old_root = (const char *) 
lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
                const char *new_root = param->logRootDirectory;
                /* Change root path in configuration struct */
                lgs_rootpathconf_set(param->logRootDirectory);
@@ -123,7 +123,7 @@ uint32_t edp_ed_write_rec_v2(EDU_HDL *ed
                memset(*ckpt_write_msg_dec_ptr, '\0', 
sizeof(lgs_ckpt_write_log_v2_t));
                ckpt_write_msg_ptr = *ckpt_write_msg_dec_ptr;
        } else {
-               ckpt_write_msg_ptr = ptr;
+               ckpt_write_msg_ptr = (lgs_ckpt_write_log_v2_t *) ptr;
        }
 
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, ckpt_write_rec_ed_rules, 
ckpt_write_msg_ptr, ptr_data_len,
@@ -178,7 +178,7 @@ uint32_t edp_ed_close_stream_rec_v2(EDU_
                memset(*ckpt_close_stream_msg_dec_ptr, '\0', 
sizeof(lgs_ckpt_stream_close_v2_t));
                ckpt_close_stream_msg_ptr = *ckpt_close_stream_msg_dec_ptr;
        } else {
-               ckpt_close_stream_msg_ptr = ptr;
+               ckpt_close_stream_msg_ptr = (lgs_ckpt_stream_close_v2_t *) ptr;
        }
 
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, 
ckpt_close_stream_rec_ed_rules,
@@ -232,7 +232,7 @@ uint32_t edp_ed_finalize_rec_v2(EDU_HDL 
                memset(*ckpt_final_msg_dec_ptr, '\0', 
sizeof(lgs_ckpt_finalize_msg_v2_t));
                ckpt_final_msg_ptr = *ckpt_final_msg_dec_ptr;
        } else {
-               ckpt_final_msg_ptr = ptr;
+               ckpt_final_msg_ptr = (lgs_ckpt_finalize_msg_v2_t *) ptr;
        }
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, ckpt_final_rec_ed_rules, 
ckpt_final_msg_ptr, ptr_data_len,
                                 buf_env, op, o_err);
@@ -296,7 +296,7 @@ uint32_t edp_ed_cfg_stream_rec_v2(EDU_HD
                memset(*ckpt_stream_cfg_msg_dec_ptr, '\0', 
sizeof(lgs_ckpt_stream_cfg_v2_t));
                ckpt_stream_cfg_msg_ptr = *ckpt_stream_cfg_msg_dec_ptr;
        } else {
-               ckpt_stream_cfg_msg_ptr = ptr;
+               ckpt_stream_cfg_msg_ptr = (lgs_ckpt_stream_cfg_v2_t *) ptr;
        }
 
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, 
ckpt_stream_cfg_rec_ed_rules, ckpt_stream_cfg_msg_ptr, ptr_data_len,
@@ -349,7 +349,7 @@ uint32_t edp_ed_lgs_cfg_rec_v2(EDU_HDL *
                memset(*ckpt_lgs_cfg_msg_dec_ptr, '\0', 
sizeof(lgs_ckpt_lgs_cfg_v2_t));
                ckpt_lgs_cfg_msg_ptr = *ckpt_lgs_cfg_msg_dec_ptr;
        } else {
-               ckpt_lgs_cfg_msg_ptr = ptr;
+               ckpt_lgs_cfg_msg_ptr = (lgs_ckpt_lgs_cfg_v2_t *) ptr;
        }
 
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, ckpt_lgs_cfg_rec_ed_rules, 
ckpt_lgs_cfg_msg_ptr, ptr_data_len,
@@ -403,7 +403,7 @@ uint32_t edp_ed_agent_down_rec_v2(EDU_HD
                memset(*ckpt_agent_down_dec_ptr, '\0', 
sizeof(lgs_ckpt_agent_down_v2_t));
                ckpt_agent_down_msg_ptr = *ckpt_agent_down_dec_ptr;
        } else {
-               ckpt_agent_down_msg_ptr = ptr;
+               ckpt_agent_down_msg_ptr = (lgs_ckpt_agent_down_v2_t *) ptr;
        }
 
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, 
ckpt_lgs_agent_down_ed_rules, ckpt_agent_down_msg_ptr, ptr_data_len,
@@ -450,36 +450,36 @@ uint32_t edp_ed_ckpt_msg_v2(EDU_HDL *edu
                 (EDU_EXEC_RTINE)ckpt_msg_test_type},
 
                /* Reg Record */
-               {EDU_EXEC, edp_ed_reg_rec, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_reg_rec, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v2_t *)0)->ckpt_rec.initialize_client, 
0, NULL},
 
                /* Finalize record */
-               {EDU_EXEC, edp_ed_finalize_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_finalize_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v2_t *)0)->ckpt_rec.finalize_client, 0, 
NULL},
 
                /* write log Record */
-               {EDU_EXEC, edp_ed_write_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_write_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v2_t *)0)->ckpt_rec.write_log, 0, NULL},
 
                /* Open stream */
-               {EDU_EXEC, edp_ed_open_stream_rec, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_open_stream_rec, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v2_t *)0)->ckpt_rec.stream_open, 0, 
NULL},
 
                /* Close stream */
-               {EDU_EXEC, edp_ed_close_stream_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_close_stream_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v2_t *)0)->ckpt_rec.stream_close, 0, 
NULL},
 
                /* Agent dest */
-               {EDU_EXEC, edp_ed_agent_down_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_agent_down_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v2_t *)0)->ckpt_rec.stream_cfg, 0, 
NULL},
 
 
                /* Cfg stream */
-               {EDU_EXEC, edp_ed_cfg_stream_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_cfg_stream_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v2_t *)0)->ckpt_rec.stream_cfg, 0, 
NULL},
 
                /* Lgs cfg */
-               {EDU_EXEC, edp_ed_lgs_cfg_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_lgs_cfg_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v2_t *)0)->ckpt_rec.lgs_cfg, 0, NULL},
 
                {EDU_END, 0, 0, 0, 0, 0, 0, NULL},
@@ -496,7 +496,7 @@ uint32_t edp_ed_ckpt_msg_v2(EDU_HDL *edu
                memset(*ckpt_msg_dec_ptr, '\0', sizeof(lgsv_ckpt_msg_v2_t));
                ckpt_msg_ptr = *ckpt_msg_dec_ptr;
        } else {
-               ckpt_msg_ptr = ptr;
+               ckpt_msg_ptr = (lgsv_ckpt_msg_v2_t *) ptr;
        }
 
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, ckpt_msg_ed_rules, 
ckpt_msg_ptr, ptr_data_len, buf_env, op, o_err);
diff --git a/osaf/services/saf/logsv/lgs/lgs_mbcsv_v3.c 
b/osaf/services/saf/logsv/lgs/lgs_mbcsv_v3.cc
rename from osaf/services/saf/logsv/lgs/lgs_mbcsv_v3.c
rename to osaf/services/saf/logsv/lgs/lgs_mbcsv_v3.cc
--- a/osaf/services/saf/logsv/lgs/lgs_mbcsv_v3.c
+++ b/osaf/services/saf/logsv/lgs/lgs_mbcsv_v3.cc
@@ -50,7 +50,7 @@ uint32_t ckpt_proc_lgs_cfg_v3(lgs_cb_t *
                osafassert(0);
        }
 
-       lgsv_ckpt_msg_v3_t *data_v3 = data;
+       lgsv_ckpt_msg_v3_t *data_v3 = (lgsv_ckpt_msg_v3_t *) data;
        lgs_ckpt_lgs_cfg_v3_t *param = &data_v3->ckpt_rec.lgs_cfg;
 
        if (strcmp(param->logRootDirectory, logsv_root_dir) != 0) {
@@ -59,7 +59,7 @@ uint32_t ckpt_proc_lgs_cfg_v3(lgs_cb_t *
                if (lgs_is_split_file_system()) {
                        /* Move log files on standby also */
                        const char *new_root_path = param->logRootDirectory;
-                       const char *old_root_path = 
lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
+                       const char *old_root_path = (const char *) 
lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
                        /* Update configuration with new root path */
                        lgs_rootpathconf_set(param->logRootDirectory);
                        logRootDirectory_filemove(new_root_path, old_root_path,
@@ -188,45 +188,45 @@ uint32_t edp_ed_ckpt_msg_v3(EDU_HDL *edu
                 (EDU_EXEC_RTINE)ckpt_msg_test_type},
 
                /* Reg Record */
-               {EDU_EXEC, edp_ed_reg_rec, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_reg_rec, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v3_t *)0)->ckpt_rec.initialize_client, 
0, NULL},
 
                /* Finalize record */
-               {EDU_EXEC, edp_ed_finalize_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_finalize_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v3_t *)0)->ckpt_rec.finalize_client, 0, 
NULL},
 
                /* write log Record */
-               {EDU_EXEC, edp_ed_write_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_write_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v3_t *)0)->ckpt_rec.write_log, 0, NULL},
 
                /* Open stream */
-               {EDU_EXEC, edp_ed_open_stream_rec, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_open_stream_rec, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v3_t *)0)->ckpt_rec.stream_open, 0, 
NULL},
 
                /* Close stream */
-               {EDU_EXEC, edp_ed_close_stream_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_close_stream_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v3_t *)0)->ckpt_rec.stream_close, 0, 
NULL},
 
                /* Agent dest */
-               {EDU_EXEC, edp_ed_agent_down_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_agent_down_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v3_t *)0)->ckpt_rec.stream_cfg, 0, 
NULL},
 
 
                /* Cfg stream */
-               {EDU_EXEC, edp_ed_cfg_stream_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_cfg_stream_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v3_t *)0)->ckpt_rec.stream_cfg, 0, 
NULL},
 
                /* Lgs cfg */
-               {EDU_EXEC, edp_ed_lgs_cfg_rec_v3, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_lgs_cfg_rec_v3, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v3_t *)0)->ckpt_rec.lgs_cfg, 0, NULL},
 
                {EDU_END, 0, 0, 0, 0, 0, 0, NULL},
        };
 
        if (op == EDP_OP_TYPE_ENC) {
-               ckpt_msg_ptr = (lgsv_ckpt_msg_v3_t *)ptr;
+               ckpt_msg_ptr = (lgsv_ckpt_msg_v3_t *) ptr;
        } else if (op == EDP_OP_TYPE_DEC) {
-               ckpt_msg_dec_ptr = (lgsv_ckpt_msg_v3_t **)ptr;
+               ckpt_msg_dec_ptr = (lgsv_ckpt_msg_v3_t **) ptr;
                if (*ckpt_msg_dec_ptr == NULL) {
                        *o_err = EDU_ERR_MEM_FAIL;
                        return NCSCC_RC_FAILURE;
@@ -234,7 +234,7 @@ uint32_t edp_ed_ckpt_msg_v3(EDU_HDL *edu
                memset(*ckpt_msg_dec_ptr, '\0', sizeof(lgsv_ckpt_msg_v3_t));
                ckpt_msg_ptr = *ckpt_msg_dec_ptr;
        } else {
-               ckpt_msg_ptr = ptr;
+               ckpt_msg_ptr = (lgsv_ckpt_msg_v3_t *) ptr;
        }
 
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, ckpt_msg_ed_rules, 
ckpt_msg_ptr, ptr_data_len, buf_env, op, o_err);
diff --git a/osaf/services/saf/logsv/lgs/lgs_mbcsv_v5.c 
b/osaf/services/saf/logsv/lgs/lgs_mbcsv_v5.cc
rename from osaf/services/saf/logsv/lgs/lgs_mbcsv_v5.c
rename to osaf/services/saf/logsv/lgs/lgs_mbcsv_v5.cc
--- a/osaf/services/saf/logsv/lgs/lgs_mbcsv_v5.c
+++ b/osaf/services/saf/logsv/lgs/lgs_mbcsv_v5.cc
@@ -64,7 +64,7 @@ uint32_t ckpt_proc_lgs_cfg_v5(lgs_cb_t *
                osafassert(0);
        }
 
-       lgsv_ckpt_msg_v5_t *data_v5 = data;
+       lgsv_ckpt_msg_v5_t *data_v5 = (lgsv_ckpt_msg_v5_t *) data;
        lgs_ckpt_lgs_cfg_v5_t *param = &data_v5->ckpt_rec.lgs_cfg;
 
        /* Act on configuration changes
@@ -95,7 +95,7 @@ uint32_t ckpt_proc_lgs_cfg_v5(lgs_cb_t *
                if ((strcmp(name_str, LOG_ROOT_DIRECTORY) == 0) &&
                    (lgs_is_split_file_system() == true)){
                        const char *new_root_path = value_str;
-                       const char *old_root_path = 
lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
+                       const char *old_root_path = (const char *) 
lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
                        logRootDirectory_filemove(new_root_path, old_root_path,
                                (time_t *) &param->c_file_close_time_stamp);
                } else if ((strcmp(name_str, LOG_DATA_GROUPNAME) == 0) &&
@@ -251,44 +251,44 @@ uint32_t edp_ed_ckpt_msg_v5(EDU_HDL *edu
                 (EDU_EXEC_RTINE)ckpt_msg_test_type},
 
                /* Reg Record */
-               {EDU_EXEC, edp_ed_reg_rec, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_reg_rec, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v5_t *)0)->ckpt_rec.initialize_client, 
0, NULL},
 
                /* Finalize record */
-               {EDU_EXEC, edp_ed_finalize_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_finalize_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v5_t *)0)->ckpt_rec.finalize_client, 0, 
NULL},
 
                /* write log Record */
-               {EDU_EXEC, edp_ed_write_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_write_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v5_t *)0)->ckpt_rec.write_log, 0, NULL},
 
                /* Open stream */
-               {EDU_EXEC, edp_ed_open_stream_rec, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_open_stream_rec, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v5_t *)0)->ckpt_rec.stream_open, 0, 
NULL},
 
                /* Close stream */
-               {EDU_EXEC, edp_ed_close_stream_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_close_stream_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v5_t *)0)->ckpt_rec.stream_close, 0, 
NULL},
 
                /* Agent dest */
-               {EDU_EXEC, edp_ed_agent_down_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_agent_down_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v5_t *)0)->ckpt_rec.stream_cfg, 0, 
NULL},
 
                /* Cfg stream */
-               {EDU_EXEC, edp_ed_cfg_stream_rec_v2, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_cfg_stream_rec_v2, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v5_t *)0)->ckpt_rec.stream_cfg, 0, 
NULL},
 
                /* Lgs cfg */
-               {EDU_EXEC, edp_ed_lgs_cfg_rec_v5, 0, 0, EDU_EXIT,
+               {EDU_EXEC, edp_ed_lgs_cfg_rec_v5, 0, 0, (int)EDU_EXIT,
                 (long)&((lgsv_ckpt_msg_v5_t *)0)->ckpt_rec.lgs_cfg, 0, NULL},
 
                {EDU_END, 0, 0, 0, 0, 0, 0, NULL},
        };
 
        if (op == EDP_OP_TYPE_ENC) {
-               ckpt_msg_ptr = (lgsv_ckpt_msg_v5_t *)ptr;
+               ckpt_msg_ptr = (lgsv_ckpt_msg_v5_t *) ptr;
        } else if (op == EDP_OP_TYPE_DEC) {
-               ckpt_msg_dec_ptr = (lgsv_ckpt_msg_v5_t **)ptr;
+               ckpt_msg_dec_ptr = (lgsv_ckpt_msg_v5_t **) ptr;
                if (*ckpt_msg_dec_ptr == NULL) {
                        *o_err = EDU_ERR_MEM_FAIL;
                        return NCSCC_RC_FAILURE;
@@ -296,7 +296,7 @@ uint32_t edp_ed_ckpt_msg_v5(EDU_HDL *edu
                memset(*ckpt_msg_dec_ptr, '\0', sizeof(lgsv_ckpt_msg_v5_t));
                ckpt_msg_ptr = *ckpt_msg_dec_ptr;
        } else {
-               ckpt_msg_ptr = ptr;
+               ckpt_msg_ptr = (lgsv_ckpt_msg_v5_t *) ptr;
        }
 
        rc = m_NCS_EDU_RUN_RULES(edu_hdl, edu_tkn, ckpt_msg_ed_rules,
diff --git a/osaf/services/saf/logsv/lgs/lgs_mds.c 
b/osaf/services/saf/logsv/lgs/lgs_mds.cc
rename from osaf/services/saf/logsv/lgs/lgs_mds.c
rename to osaf/services/saf/logsv/lgs/lgs_mds.cc
--- a/osaf/services/saf/logsv/lgs/lgs_mds.c
+++ b/osaf/services/saf/logsv/lgs/lgs_mds.cc
@@ -179,15 +179,16 @@ static uint32_t dec_lstr_open_sync_msg(N
        p8 = ncs_dec_flatten_space(uba, local_data, 24);
        param->maxLogFileSize = ncs_decode_64bit(&p8);
        param->maxLogRecordSize = ncs_decode_32bit(&p8);
-       param->haProperty = ncs_decode_32bit(&p8);
-       param->logFileFullAction = ncs_decode_32bit(&p8);
+       param->haProperty = (SaBoolT) ncs_decode_32bit(&p8);
+       param->logFileFullAction = (SaLogFileFullActionT) ncs_decode_32bit(&p8);
        param->maxFilesRotated = ncs_decode_16bit(&p8);
        len = ncs_decode_16bit(&p8);
        ncs_dec_skip_space(uba, 24);
 
        /* Decode format string if initiated */
        if (len > 0) {
-               if ((param->logFileFmt = malloc(len)) == NULL) {
+               param->logFileFmt = (char *) malloc(len);
+               if (param->logFileFmt == NULL) {
                        LOG_WA("malloc FAILED");
                        rc = NCSCC_RC_FAILURE;
                        goto done;
@@ -269,7 +270,7 @@ static uint32_t dec_write_log_async_msg(
        param->lstr_id = ncs_decode_32bit(&p8);
        ncs_dec_skip_space(uba, 20);
 
-       param->logRecord = malloc(sizeof(SaLogRecordT));
+       param->logRecord = (SaLogRecordT *) malloc(sizeof(SaLogRecordT));
        if (!param->logRecord) {
                LOG_WA("malloc FAILED");
                rc = NCSCC_RC_FAILURE;
@@ -281,7 +282,7 @@ static uint32_t dec_write_log_async_msg(
        /* ************* SaLogRecord decode ************** */
        p8 = ncs_dec_flatten_space(uba, local_data, 12);
        param->logRecord->logTimeStamp = ncs_decode_64bit(&p8);
-       param->logRecord->logHdrType = ncs_decode_32bit(&p8);
+       param->logRecord->logHdrType = (SaLogHeaderTypeT) ncs_decode_32bit(&p8);
        ncs_dec_skip_space(uba, 12);
 
        /*
@@ -299,9 +300,9 @@ static uint32_t dec_write_log_async_msg(
                
                p8 = ncs_dec_flatten_space(uba, local_data, 14);
                ntfLogH->notificationId = ncs_decode_64bit(&p8);
-               ntfLogH->eventType = ncs_decode_32bit(&p8);
+               ntfLogH->eventType = (SaNtfEventTypeT) ncs_decode_32bit(&p8);
 
-               ntfLogH->notificationObject = malloc(sizeof(SaNameT) + 1);
+               ntfLogH->notificationObject = (SaNameT *) 
malloc(sizeof(SaNameT) + 1);
                if (!ntfLogH->notificationObject) {
                        LOG_WA("malloc FAILED");
                        rc = NCSCC_RC_FAILURE;
@@ -320,7 +321,7 @@ static uint32_t dec_write_log_async_msg(
                                             
ntfLogH->notificationObject->value, ntfLogH->notificationObject->length);
                
ntfLogH->notificationObject->value[ntfLogH->notificationObject->length] = '\0';
 
-               ntfLogH->notifyingObject = malloc(sizeof(SaNameT) + 1);
+               ntfLogH->notifyingObject = (SaNameT *) malloc(sizeof(SaNameT) + 
1);
                if (!ntfLogH->notifyingObject) {
                        LOG_WA("malloc FAILED");
                        rc = NCSCC_RC_FAILURE;
@@ -339,7 +340,7 @@ static uint32_t dec_write_log_async_msg(
                ncs_decode_n_octets_from_uba(uba, 
ntfLogH->notifyingObject->value, ntfLogH->notifyingObject->length);
                
ntfLogH->notifyingObject->value[ntfLogH->notifyingObject->length] = '\0';
 
-               ntfLogH->notificationClassId = malloc(sizeof(SaNtfClassIdT));
+               ntfLogH->notificationClassId = (SaNtfClassIdT *) 
malloc(sizeof(SaNtfClassIdT));
                if (!ntfLogH->notificationClassId) {
                        LOG_WA("malloc FAILED");
                        rc = NCSCC_RC_FAILURE;
@@ -358,7 +359,7 @@ static uint32_t dec_write_log_async_msg(
                /* Initiate general header pointers */
                genLogH->notificationClassId = NULL;
                
-               genLogH->notificationClassId = malloc(sizeof(SaNtfClassIdT));
+               genLogH->notificationClassId = (SaNtfClassIdT *) 
malloc(sizeof(SaNtfClassIdT));
                if (!genLogH->notificationClassId) {
                        LOG_WA("malloc FAILED");
                        rc = NCSCC_RC_FAILURE;
@@ -369,7 +370,7 @@ static uint32_t dec_write_log_async_msg(
                genLogH->notificationClassId->majorId = ncs_decode_16bit(&p8);
                genLogH->notificationClassId->minorId = ncs_decode_16bit(&p8);
 
-               logSvcUsrName = malloc(sizeof(SaNameT) + 1);
+               logSvcUsrName = (SaNameT *) malloc(sizeof(SaNameT) + 1);
                if (!logSvcUsrName) {
                        LOG_WA("malloc FAILED");
                        rc = NCSCC_RC_FAILURE;
@@ -403,7 +404,7 @@ static uint32_t dec_write_log_async_msg(
                goto err_done;
        }
        
-       param->logRecord->logBuffer = malloc(sizeof(SaLogBufferT));
+       param->logRecord->logBuffer = (SaLogBufferT *) 
malloc(sizeof(SaLogBufferT));
        if (!param->logRecord->logBuffer) {
                LOG_WA("malloc FAILED");
                rc = NCSCC_RC_FAILURE;
@@ -417,7 +418,7 @@ static uint32_t dec_write_log_async_msg(
        ncs_dec_skip_space(uba, 4);
 
        /* Make sure at least one byte is allocated for later */
-       param->logRecord->logBuffer->logBuf = calloc(1, 
param->logRecord->logBuffer->logBufSize + 1);
+       param->logRecord->logBuffer->logBuf = (SaUint8T *) calloc(1, 
param->logRecord->logBuffer->logBufSize + 1);
        if (param->logRecord->logBuffer->logBuf == NULL) {
                LOG_WA("malloc FAILED");
                rc = NCSCC_RC_FAILURE;
@@ -769,7 +770,8 @@ static uint32_t mds_dec(struct ncsmds_ca
        }
 
     /** allocate an LGSV_LGS_EVENT now **/
-       if (NULL == (evt = calloc(1, sizeof(lgsv_lgs_evt_t)))) {
+       evt = (lgsv_lgs_evt_t *) calloc(1, sizeof(lgsv_lgs_evt_t));
+       if (NULL == evt) {
                LOG_WA("calloc FAILED");
                goto err;
        }
@@ -778,12 +780,12 @@ static uint32_t mds_dec(struct ncsmds_ca
        info->info.dec.o_msg = (uint8_t *)evt;
 
        p8 = ncs_dec_flatten_space(uba, local_data, 4);
-       evt->info.msg.type = ncs_decode_32bit(&p8);
+       evt->info.msg.type = (lgsv_msg_type_t) ncs_decode_32bit(&p8);
        ncs_dec_skip_space(uba, 4);
 
        if (LGSV_LGA_API_MSG == evt->info.msg.type) {
                p8 = ncs_dec_flatten_space(uba, local_data, 4);
-               evt->info.msg.info.api_info.type = ncs_decode_32bit(&p8);
+               evt->info.msg.info.api_info.type = (lgsv_api_msg_type_t) 
ncs_decode_32bit(&p8);
                ncs_dec_skip_space(uba, 4);
 
                /* FIX error handling for dec functions */
@@ -1040,7 +1042,8 @@ static uint32_t mds_quiesced_ack(struct 
 
        TRACE_ENTER();
 
-       if (NULL == (lgsv_evt = calloc(1, sizeof(lgsv_lgs_evt_t)))) {
+       lgsv_evt = (lgsv_lgs_evt_t *) calloc(1, sizeof(lgsv_lgs_evt_t));
+       if (NULL == lgsv_evt) {
                LOG_WA("calloc FAILED");
                goto err;
        }
@@ -1097,7 +1100,8 @@ static uint32_t mds_svc_event(struct ncs
                                info->info.svc_evt.i_dest, 
info->info.svc_evt.i_node_id, info->info.svc_evt.i_svc_id);
 
                        /* As of now we are only interested in LGA events */
-                       if (NULL == (evt = calloc(1, sizeof(lgsv_lgs_evt_t)))) {
+                       evt = (lgsv_lgs_evt_t *) calloc(1, 
sizeof(lgsv_lgs_evt_t));
+                       if (NULL == evt) {
                                LOG_WA("calloc FAILED");
                                rc = NCSCC_RC_FAILURE;
                                goto done;
diff --git a/osaf/services/saf/logsv/lgs/lgs_stream.c 
b/osaf/services/saf/logsv/lgs/lgs_stream.cc
rename from osaf/services/saf/logsv/lgs/lgs_stream.c
rename to osaf/services/saf/logsv/lgs/lgs_stream.cc
--- a/osaf/services/saf/logsv/lgs/lgs_stream.c
+++ b/osaf/services/saf/logsv/lgs/lgs_stream.cc
@@ -246,7 +246,7 @@ static int rotate_if_needed(log_stream_t
         ** Remove until we have one less than allowed, we are just about to
         ** create a new one again.
         */
-       while (file_cnt >= stream->maxFilesRotated) {
+       while (file_cnt >= (int) stream->maxFilesRotated) {
                if ((rc = file_unlink_h(oldest_file)) == -1) {
                        LOG_NO("Could not delete: %s - %s", oldest_file, 
strerror(errno));
                        goto done;
@@ -313,7 +313,7 @@ static uint32_t log_stream_remove(const 
 void log_initiate_stream_files(log_stream_t *stream)
 {
        int errno_save;
-       const char *log_root_path = lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
+       const char *log_root_path = (const char *) 
lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
        
        TRACE_ENTER();
        
@@ -500,6 +500,7 @@ log_stream_t *log_stream_new(SaNameT *dn
 {
        int rc;
        log_stream_t *stream = NULL;
+       uint32_t invalidId = (uint32_t) (-1);
 
        osafassert(dn != NULL);
        TRACE_ENTER2("%s, l: %u", dn->value, dn->length);
@@ -507,7 +508,7 @@ log_stream_t *log_stream_new(SaNameT *dn
        if (lgs_relative_path_check_ts(pathname)) {
                goto done;
        }
-       stream = calloc(1, sizeof(log_stream_t));
+       stream = (log_stream_t *) calloc(1, sizeof(log_stream_t));
        if (stream == NULL) {
                LOG_WA("log_stream_new calloc FAILED");
                goto done;
@@ -546,7 +547,7 @@ log_stream_t *log_stream_new(SaNameT *dn
        }
 
        /* Add stream to array */
-       if (stream->streamId == -1)
+       if (stream->streamId == invalidId)
                rc = lgs_stream_array_insert_new(stream, &stream->streamId);
        else
                rc = lgs_stream_array_insert(stream, stream->streamId);
@@ -575,7 +576,7 @@ log_stream_t *log_stream_new(SaNameT *dn
 
                void *arr1[] = { &rdnstr };
                const SaImmAttrValuesT_2 attr_safLgStr = {
-                       .attrName = "safLgStr",
+                       .attrName = (SaImmAttrNameT) "safLgStr",
                        .attrValueType = SA_IMM_ATTR_SASTRINGT,
                        .attrValuesNumber = 1,
                        .attrValues = arr1
@@ -583,7 +584,7 @@ log_stream_t *log_stream_new(SaNameT *dn
                char *str2 = stream->fileName;
                void *arr2[] = { &str2 };
                const SaImmAttrValuesT_2 attr_safLogStreamFileName = {
-                       .attrName = "saLogStreamFileName",
+                       .attrName = (SaImmAttrNameT) "saLogStreamFileName",
                        .attrValueType = SA_IMM_ATTR_SASTRINGT,
                        .attrValuesNumber = 1,
                        .attrValues = arr2
@@ -591,42 +592,42 @@ log_stream_t *log_stream_new(SaNameT *dn
                char *str3 = stream->pathName;
                void *arr3[] = { &str3 };
                const SaImmAttrValuesT_2 attr_safLogStreamPathName = {
-                       .attrName = "saLogStreamPathName",
+                       .attrName = (SaImmAttrNameT) "saLogStreamPathName",
                        .attrValueType = SA_IMM_ATTR_SASTRINGT,
                        .attrValuesNumber = 1,
                        .attrValues = arr3
                };
                void *arr4[] = { &stream->maxLogFileSize };
                const SaImmAttrValuesT_2 attr_saLogStreamMaxLogFileSize = {
-                       .attrName = "saLogStreamMaxLogFileSize",
+                       .attrName = (SaImmAttrNameT) 
"saLogStreamMaxLogFileSize",
                        .attrValueType = SA_IMM_ATTR_SAUINT64T,
                        .attrValuesNumber = 1,
                        .attrValues = arr4
                };
                void *arr5[] = { &stream->fixedLogRecordSize };
                const SaImmAttrValuesT_2 attr_saLogStreamFixedLogRecordSize = {
-                       .attrName = "saLogStreamFixedLogRecordSize",
+                       .attrName = (SaImmAttrNameT) 
"saLogStreamFixedLogRecordSize",
                        .attrValueType = SA_IMM_ATTR_SAUINT32T,
                        .attrValuesNumber = 1,
                        .attrValues = arr5
                };
                void *arr6[] = { &stream->haProperty };
                const SaImmAttrValuesT_2 attr_saLogStreamHaProperty = {
-                       .attrName = "saLogStreamHaProperty",
+                       .attrName = (SaImmAttrNameT) "saLogStreamHaProperty",
                        .attrValueType = SA_IMM_ATTR_SAUINT32T,
                        .attrValuesNumber = 1,
                        .attrValues = arr6
                };
                void *arr7[] = { &stream->logFullAction };
                const SaImmAttrValuesT_2 attr_saLogStreamLogFullAction = {
-                       .attrName = "saLogStreamLogFullAction",
+                       .attrName = (SaImmAttrNameT) "saLogStreamLogFullAction",
                        .attrValueType = SA_IMM_ATTR_SAUINT32T,
                        .attrValuesNumber = 1,
                        .attrValues = arr7
                };
                void *arr8[] = { &stream->maxFilesRotated };
                const SaImmAttrValuesT_2 attr_saLogStreamMaxFilesRotated = {
-                       .attrName = "saLogStreamMaxFilesRotated",
+                       .attrName = (SaImmAttrNameT) 
"saLogStreamMaxFilesRotated",
                        .attrValueType = SA_IMM_ATTR_SAUINT32T,
                        .attrValuesNumber = 1,
                        .attrValues = arr8
@@ -634,21 +635,21 @@ log_stream_t *log_stream_new(SaNameT *dn
                char *str9 = stream->logFileFormat;
                void *arr9[] = { &str9 };
                const SaImmAttrValuesT_2 attr_saLogStreamLogFileFormat = {
-                       .attrName = "saLogStreamLogFileFormat",
+                       .attrName = (SaImmAttrNameT) "saLogStreamLogFileFormat",
                        .attrValueType = SA_IMM_ATTR_SASTRINGT,
                        .attrValuesNumber = 1,
                        .attrValues = arr9
                };
                void *arr10[] = { &stream->severityFilter };
                const SaImmAttrValuesT_2 attr_saLogStreamSeverityFilter = {
-                       .attrName = "saLogStreamSeverityFilter",
+                       .attrName = (SaImmAttrNameT) 
"saLogStreamSeverityFilter",
                        .attrValueType = SA_IMM_ATTR_SAUINT32T,
                        .attrValuesNumber = 1,
                        .attrValues = arr10
                };
                void *arr11[] = { &stream->creationTimeStamp };
                const SaImmAttrValuesT_2 attr_saLogStreamCreationTimestamp = {
-                       .attrName = "saLogStreamCreationTimestamp",
+                       .attrName = (SaImmAttrNameT) 
"saLogStreamCreationTimestamp",
                        .attrValueType = SA_IMM_ATTR_SATIMET,
                        .attrValuesNumber = 1,
                        .attrValues = arr11
@@ -673,7 +674,8 @@ log_stream_t *log_stream_new(SaNameT *dn
                        SaAisErrorT rv;
 
                        rv = saImmOiRtObjectCreate_2(lgs_cb->immOiHandle,
-                                                            "SaLogStream", 
parentName, attrValues);
+                                                                               
 (SaImmClassNameT) "SaLogStream",
+                                                                               
 parentName, attrValues);
                        free(dndup);
 
                        if (rv != SA_AIS_OK) {
@@ -700,11 +702,11 @@ log_stream_t *log_stream_new_2(SaNameT *
 {
        int rc;
        log_stream_t *stream = NULL;
-
+       uint32_t invalidId = (uint32_t) (-1);
        osafassert(name != NULL);
        TRACE_ENTER2("%s, l: %u", name->value, (unsigned int)name->length);
 
-       stream = calloc(1, sizeof(log_stream_t));
+       stream = (log_stream_t *) calloc(1, sizeof(log_stream_t));
        if (stream == NULL) {
                LOG_WA("calloc FAILED");
                goto done;
@@ -727,7 +729,7 @@ log_stream_t *log_stream_new_2(SaNameT *
        }
 
        /* Add stream to array */
-       if (stream->streamId == -1)
+       if (stream->streamId == invalidId)
                rc = lgs_stream_array_insert_new(stream, &stream->streamId);
        else
                rc = lgs_stream_array_insert(stream, stream->streamId);
@@ -843,12 +845,12 @@ void log_stream_close(log_stream_t **s, 
        log_stream_t *stream = *s;
        char *file_to_rename = NULL;
        char *timeString = NULL;
-       int msecs_waited = 0;
+       uint32_t msecs_waited = 0;
        const unsigned int max_waiting_time = 8 * 1000; /* 8 secs */
        const unsigned int sleep_delay_ms = 500;
        SaUint32T trace_num_openers;
        struct timespec closetime_tspec;
-       const char *root_path = lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
+       const char *root_path = (const char *) 
lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
 
        osafassert(stream != NULL);
        TRACE_ENTER2("%s", stream->name);
@@ -978,7 +980,10 @@ static int get_number_of_log_files_h(log
        int rc, n;
        
        TRACE_ENTER();
-       
+
+       char *logsv_root_dir = (char *)
+               lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
+
        n = snprintf(parameters_in.file_name, SA_MAX_NAME_LENGTH, "%s", 
logStream->fileName);
        if (n >= SA_MAX_NAME_LENGTH) {
                rc = -1;
@@ -986,9 +991,6 @@ static int get_number_of_log_files_h(log
                goto done;
        }
 
-       char *logsv_root_dir = (char *)
-               lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
-
        n = snprintf(parameters_in.logsv_root_dir, PATH_MAX, "%s", 
logsv_root_dir);
        if (n >= PATH_MAX) {
                rc = -1;
@@ -1047,7 +1049,7 @@ static int log_rotation_stb(log_stream_t
        char *current_time_str;
        char new_current_log_filename[NAME_MAX];
        bool do_rotate = false;
-       const char *root_path = lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
+       const char *root_path = (const char *) 
lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
        
        TRACE_ENTER();
 
@@ -1145,7 +1147,7 @@ static int log_rotation_act(log_stream_t
        int errno_save;
        int errno_ret;
        struct timespec closetime_tspec;
-       const char *root_path = lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
+       const char *root_path = (const char *) 
lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
        
        /* If file size > max file size:
         *  - Close the log file and create a new.
@@ -1387,7 +1389,7 @@ static int lgs_stream_array_insert(log_s
 static int lgs_stream_array_insert_new(log_stream_t *stream, uint32_t *id)
 {
        int rc = -1;
-       int i;
+       uint32_t i = 0;
 
        osafassert(id != NULL);
 
@@ -1419,7 +1421,7 @@ static int lgs_stream_array_remove(int i
 {
        int rc = -1;
 
-       if (0 <= id && id < stream_array_size) {
+       if (0 <= id && id < (int) stream_array_size) {
                osafassert(stream_array[id] != NULL);
                stream_array[id] = NULL;
                rc = 0;
@@ -1435,7 +1437,7 @@ static int lgs_stream_array_remove(int i
  */
 void log_stream_id_print(void)
 {
-       int i;
+       uint32_t i = 0;
 
        TRACE("  Current number of streams: %u", numb_of_streams);
        for (i = 0; i < stream_array_size; i++) {
@@ -1454,7 +1456,7 @@ uint32_t log_stream_init(void)
        stream_array_size += value;
 
        TRACE("Max %u application log streams", stream_array_size - 3);
-       stream_array = calloc(1, sizeof(log_stream_t *) * stream_array_size);
+       stream_array = (log_stream_t **) calloc(1, sizeof(log_stream_t *) * 
stream_array_size);
        if (stream_array == NULL) {
                LOG_WA("calloc FAILED");
                return NCSCC_RC_FAILURE;
diff --git a/osaf/services/saf/logsv/lgs/lgs_stream.h 
b/osaf/services/saf/logsv/lgs/lgs_stream.h
--- a/osaf/services/saf/logsv/lgs/lgs_stream.h
+++ b/osaf/services/saf/logsv/lgs/lgs_stream.h
@@ -23,6 +23,10 @@
 #include "lgs_fmt.h"
 #include <ncspatricia.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /**
  * Stream descriptor.
  * Contains both the IMM LOG Class attributes and implementation dependent
@@ -116,4 +120,8 @@ extern log_stream_t *log_stream_getnext_
 extern void log_stream_print(log_stream_t *stream);
 extern log_stream_t *log_stream_get_by_id(uint32_t id);
 
+#ifdef __cplusplus
+}
 #endif
+
+#endif
diff --git a/osaf/services/saf/logsv/lgs/lgs_util.c 
b/osaf/services/saf/logsv/lgs/lgs_util.cc
rename from osaf/services/saf/logsv/lgs/lgs_util.c
rename to osaf/services/saf/logsv/lgs/lgs_util.cc
--- a/osaf/services/saf/logsv/lgs/lgs_util.c
+++ b/osaf/services/saf/logsv/lgs/lgs_util.cc
@@ -62,10 +62,14 @@ int lgs_create_config_file_h(const char 
        size_t params_in_size;
        char *logFileFormat_p;
        char *pathname_p;
-       
+
        int rc;
-       int path_len, n;
+       int path_len;
+       uint32_t n = 0;
        char pathname[PATH_MAX];
+       size_t logFileFormat_size = 0;
+       size_t pathname_size = 0;
+
 
        TRACE_ENTER();
        
@@ -116,11 +120,11 @@ int lgs_create_config_file_h(const char 
        params_in = malloc(params_in_size);
        
        /* Set pointers to allocated memory */
-       header_in_p = params_in;
-       logFileFormat_p = params_in + sizeof(ccfh_t);
-       size_t logFileFormat_size = params_in_size - sizeof(ccfh_t);
+       header_in_p = (ccfh_t *) params_in;
+       logFileFormat_p = (char *) params_in + sizeof(ccfh_t);
+       logFileFormat_size = params_in_size - sizeof(ccfh_t);
        pathname_p = logFileFormat_p + strlen(stream->logFileFormat) + 1;
-       size_t pathname_size = logFileFormat_size - 
(strlen(stream->logFileFormat) + 1);
+       pathname_size = logFileFormat_size - (strlen(stream->logFileFormat) + 
1);
 
        /* Fill in in parameters */
        header_in_p->version.releaseCode = lgs_cb->log_version.releaseCode;
@@ -269,7 +273,9 @@ int lgs_file_rename_h(
        char *oldpath_in_p;
        char *newpath_in_p;
        size_t *oldpath_str_size_p;
-       
+       size_t oldpath_size = 0;
+       size_t newpath_size = 0;
+
        TRACE_ENTER();
 
        n = snprintf(oldpath, PATH_MAX, "%s/%s/%s%s",
@@ -301,15 +307,15 @@ int lgs_file_rename_h(
        TRACE_4("              to %s", newpath);
        
        /* Allocate memory for parameters */
-       size_t oldpath_size = strlen(oldpath)+1;
-       size_t newpath_size = strlen(newpath)+1;
+       oldpath_size = strlen(oldpath) + 1;
+       newpath_size = strlen(newpath) + 1;
        params_in_size = sizeof(size_t) + oldpath_size + newpath_size;
        
        params_in_p = malloc(params_in_size);
        
        /* Fill in pointer addresses */
-       oldpath_str_size_p = params_in_p;
-       oldpath_in_p = params_in_p + sizeof(size_t);
+       oldpath_str_size_p = (size_t *) params_in_p;
+       oldpath_in_p = (char *) params_in_p + sizeof(size_t);
        newpath_in_p = oldpath_in_p + oldpath_size;
        
        /* Fill in parameters */
@@ -407,7 +413,7 @@ void lgs_send_write_log_ack(uint32_t cli
 
        rc = ncsmds_api(&mds_info);
        if (rc != NCSCC_RC_SUCCESS)
-               LOG_NO("Send of WRITE ack to %"PRIu64"x FAILED: %u", mds_dest, 
rc);
+               LOG_NO("Failed (%u) to send of WRITE ack to: %" PRIu64, rc, 
mds_dest);
 
        TRACE_LEAVE();
 }
@@ -615,6 +621,9 @@ int lgs_own_log_files_h(log_stream_t *st
 
        TRACE_ENTER2("stream %s",stream->name);
 
+       /* Set in parameter dir_path */
+       const char *logsv_root_dir = (const char *) 
lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
+
        /* Set in parameter file_name */
        n = snprintf(data_in->file_name, SA_MAX_NAME_LENGTH, "%s", 
stream->fileName);
        if (n >= SA_MAX_NAME_LENGTH) {
@@ -623,9 +632,6 @@ int lgs_own_log_files_h(log_stream_t *st
                goto done;
        }
 
-       /* Set in parameter dir_path */
-       const char *logsv_root_dir = lgs_cfg_get(LGS_IMM_LOG_ROOT_DIRECTORY);
-
        n = snprintf(data_in->dir_path, PATH_MAX, "%s/%s",
                logsv_root_dir, stream->pathName);
        if (n >= PATH_MAX) {
diff --git a/osaf/services/saf/logsv/lgs/lgs_util.h 
b/osaf/services/saf/logsv/lgs/lgs_util.h
--- a/osaf/services/saf/logsv/lgs/lgs_util.h
+++ b/osaf/services/saf/logsv/lgs/lgs_util.h
@@ -29,6 +29,10 @@
 #include "lgs_stream.h"
 #include "lgs_evt.h"
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 /* ========================================================================
  *   DEFINITIONS
  * ========================================================================
@@ -68,4 +72,9 @@ extern int lgs_check_path_exists_h(const
 extern gid_t lgs_get_data_gid(char *groupname);
 extern int lgs_own_log_files_h(log_stream_t *stream, const char *groupname);
 extern bool lgs_has_special_char(const char *str);
+
+#ifdef __cplusplus
+}
+#endif
+
 #endif   /* ifndef __LGS_UTIL_H */


------------------------------------------------------------------------------
_______________________________________________
Opensaf-devel mailing list
Opensaf-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/opensaf-devel

Reply via email to