summaryrefslogtreecommitdiffstats
path: root/reference-cne
diff options
context:
space:
mode:
authorSridhar Parasuram <sridharp@quicinc.com>2009-12-08 11:55:31 -0800
committerSridhar Parasuram <sridharp@quicinc.com>2009-12-08 11:55:31 -0800
commita65debe705e17d510c0b3f5cbc07ebfa936d753e (patch)
tree80cb4ca71566b4ababc5883ee8fcc1da510b6a24 /reference-cne
downloadandroid_external_connectivity-a65debe705e17d510c0b3f5cbc07ebfa936d753e.tar.gz
android_external_connectivity-a65debe705e17d510c0b3f5cbc07ebfa936d753e.tar.bz2
android_external_connectivity-a65debe705e17d510c0b3f5cbc07ebfa936d753e.zip
Initial commit
Diffstat (limited to 'reference-cne')
-rwxr-xr-xreference-cne/inc/CRefCne.h128
-rwxr-xr-xreference-cne/inc/CRefCneRadio.h120
-rwxr-xr-xreference-cne/inc/RefCneDefs.h134
-rwxr-xr-xreference-cne/src/Android.mk46
-rwxr-xr-xreference-cne/src/CRefCne.cpp402
-rwxr-xr-xreference-cne/src/CRefCneRadio.cpp280
-rwxr-xr-xreference-cne/src/CneSvc.cpp133
7 files changed, 1243 insertions, 0 deletions
diff --git a/reference-cne/inc/CRefCne.h b/reference-cne/inc/CRefCne.h
new file mode 100755
index 0000000..bd04790
--- /dev/null
+++ b/reference-cne/inc/CRefCne.h
@@ -0,0 +1,128 @@
+#ifndef REF_CNE_H
+#define REF_CNE_H
+
+/**----------------------------------------------------------------------------
+ @file REF_CNE.h
+
+
+-----------------------------------------------------------------------------*/
+
+/* Copyright (c) 2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+/*----------------------------------------------------------------------------
+ * Include Files
+ * -------------------------------------------------------------------------*/
+
+#include "cne_svc.h"
+#include "RefCneDefs.h"
+#include "CRefCneRadio.h"
+
+
+/*----------------------------------------------------------------------------
+ * Preprocessor Definitions and Constants
+ * -------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ * Type Declarations
+ * -------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ * Class Definitions
+ * -------------------------------------------------------------------------*/
+class CRefCne
+{
+public:
+ /**
+ @brief Returns an instance of the CneSpm class.
+
+ The user of this class will call this function to get an
+ instance of the class. All other public functions will be
+ called on this instance
+
+ @param None
+ @see None
+ @return An instance of the CneSpm class is returned.
+ */
+ static CRefCne* getInstance ();
+ static void RefCneCmdHdlr
+ (
+ int ,
+ int ,
+ void*
+ );
+
+private:
+ /* Wlan notification command format */
+ typedef struct _Wlan {
+ int status;
+ int rssi;
+ char ssid[32];
+ } refCneWlanInfoCmdFmt;
+
+ /* Wwan notification command format */
+ typedef struct _Wwan {
+ int type;
+ int status;
+ int rssi;
+ int roaming;
+ } refCneWwanInfoCmdFmt;
+
+ CRefCne();
+ ~CRefCne();
+ static CRefCne* m_sInstancePtr;
+ int m_iNumActiveNetworks;
+ static cne_rat_type m_siPrefNetwork;
+ CRefCneRadio* RefCneWifi;
+ CRefCneRadio* RefCneWwan;
+
+
+ ref_cne_ret_enum_type UpdateWlanInfoCmd
+ (
+ void*
+ );
+
+ ref_cne_ret_enum_type UpdateWwanInfoCmd
+ (
+ void*
+ );
+
+ ref_cne_ret_enum_type SetPrefNetCmd
+ (
+ void *
+ );
+ void SetPreferredNetwork
+ (
+ cne_rat_type *
+ );
+ cne_rat_type GetPreferredNetwork();
+ void ProcessStateChange();
+};
+
+#endif /* REF_CNE_H */ \ No newline at end of file
diff --git a/reference-cne/inc/CRefCneRadio.h b/reference-cne/inc/CRefCneRadio.h
new file mode 100755
index 0000000..e173c8e
--- /dev/null
+++ b/reference-cne/inc/CRefCneRadio.h
@@ -0,0 +1,120 @@
+#ifndef REF_CNE_RADIO_H
+ #define REF_CNE_RADIO_H
+
+/**----------------------------------------------------------------------------
+ @file REF_CNE_RADIO.h
+
+
+-----------------------------------------------------------------------------*/
+
+/* Copyright (c) 2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+/*----------------------------------------------------------------------------
+ * Include Files
+ * -------------------------------------------------------------------------*/
+ #include "cne_svc.h"
+ #include "RefCneDefs.h"
+
+/*----------------------------------------------------------------------------
+ * Preprocessor Definitions and Constants
+ * -------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ * Type Declarations
+ * -------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ * Class Definitions
+ * -------------------------------------------------------------------------*/
+class CRefCneRadio
+{
+public:
+ /**
+ * @brief Returns an instance of the RefCneRadio class.
+
+ The user of this class will call this function to get an
+ instance of the class. All other public functions will be
+ called on this instance
+
+ @param None
+ @see None
+ *@return An instance of the RCneRadio class is returned.
+ **/
+
+ //Constructor
+ CRefCneRadio
+ (
+ cne_rat_type
+ );
+
+ //Destructor
+ ~CRefCneRadio(){};
+
+ // returns if True if status is connected, else false
+ bool bIsDataConnected ();
+
+ int iIsConActionPending ();
+
+ void ClearPending ();
+
+ bool bIsConStateChanged ();
+
+ void UpdateStatus
+ (
+ int
+ );
+
+ //Turn ON Radio
+ void TurnOn ();
+
+ //Turn OFF Radio
+ void TurnOff ();
+
+ void SetPending
+ (
+ ref_cne_net_con_req_enum_type
+ );
+
+private:
+
+ //private member variables
+ cne_network_state_enum_type m_iNetState;
+ cne_rat_type m_iMyRatType;
+ ref_cne_net_con_req_enum_type m_iRequestState;
+ ref_cne_net_con_status_enum_type m_iPrevNetConState;
+ ref_cne_net_con_status_enum_type m_iNetConState;
+
+ /* Impicit Contructor which cannot be explicitly called */
+ CRefCneRadio();
+ CRefCneRadio(const CRefCneRadio& radio);
+};
+#endif /* REF_CNE_RADIO_H */
+
+
diff --git a/reference-cne/inc/RefCneDefs.h b/reference-cne/inc/RefCneDefs.h
new file mode 100755
index 0000000..b189ddd
--- /dev/null
+++ b/reference-cne/inc/RefCneDefs.h
@@ -0,0 +1,134 @@
+#ifndef REF_CNE_DEFS_H
+#define REF_CNE_DEFS_H
+
+/**----------------------------------------------------------------------------
+ @file REFCNE_Defs.h
+
+ This file holds various definations that get used across, different CNE
+ modules.
+-----------------------------------------------------------------------------*/
+
+
+/* Copyright (c) 2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+/*----------------------------------------------------------------------------
+ * Include Files
+ * -------------------------------------------------------------------------*/
+ #include <utils/Log.h>
+
+/*----------------------------------------------------------------------------
+ * Preprocessor Definitions and Constants
+ * -------------------------------------------------------------------------*/
+
+ #define RCNE_LOG_TAG "RefCnE"
+
+ #define RCNE_MSG_WARN(...) LOG(LOG_WARN,RCNE_LOG_TAG,__VA_ARGS__)
+ #define RCNE_MSG_WARN1 RCNE_MSG_WARN
+ #define RCNE_MSG_WARN2 RCNE_MSG_WARN
+ #define RCNE_MSG_WARN3 RCNE_MSG_WARN
+ #define RCNE_MSG_WARN4 RCNE_MSG_WARN
+ #define RCNE_MSG_WARN5 RCNE_MSG_WARN
+
+ #define RCNE_MSG_DEBUG(...) LOG(LOG_DEBUG,RCNE_LOG_TAG,__VA_ARGS__)
+ #define RCNE_MSG_DEBUG1 RCNE_MSG_DEBUG
+ #define RCNE_MSG_DEBUG2 RCNE_MSG_DEBUG
+ #define RCNE_MSG_DEBUG3 RCNE_MSG_DEBUG
+ #define RCNE_MSG_DEBUG4 RCNE_MSG_DEBUG
+ #define RCNE_MSG_DEBUG5 RCNE_MSG_DEBUG
+
+ #define RCNE_MSG_ERROR(...) LOG(LOG_ERROR,RCNE_LOG_TAG,__VA_ARGS__)
+ #define RCNE_MSG_ERROR1 RCNE_MSG_ERROR
+ #define RCNE_MSG_ERROR2 RCNE_MSG_ERROR
+ #define RCNE_MSG_ERROR3 RCNE_MSG_ERROR
+ #define RCNE_MSG_ERROR4 RCNE_MSG_ERROR
+ #define RCNE_MSG_ERROR5 RCNE_MSG_ERROR
+
+ #define RCNE_MSG_VERBOSE(...) LOG(LOG_VERBOSE,RCNE_LOG_TAG,__VA_ARGS__)
+ #define RCNE_MSG_VERBOSE1 RCNE_MSG_VERBOSE
+ #define RCNE_MSG_VERBOSE2 RCNE_MSG_VERBOSE
+ #define RCNE_MSG_VERBOSE3 RCNE_MSG_VERBOSE
+ #define RCNE_MSG_VERBOSE4 RCNE_MSG_VERBOSE
+ #define RCNE_MSG_VERBOSE5 RCNE_MSG_VERBOSE
+
+ #define RCNE_MSG_INFO(...) LOG(LOG_INFO,RCNE_LOG_TAG,__VA_ARGS__)
+ #define RCNE_MSG_INFO1 RCNE_MSG_INFO
+ #define RCNE_MSG_INFO2 RCNE_MSG_INFO
+ #define RCNE_MSG_INFO3 RCNE_MSG_INFO
+ #define RCNE_MSG_INFO4 RCNE_MSG_INFO
+ #define RCNE_MSG_INFO5 RCNE_MSG_INFO
+
+/*----------------------------------------------------------------------------
+ * Type Declarations
+ * -------------------------------------------------------------------------*/
+
+/** Possible return codes */
+typedef enum
+{
+ /* ADD other new error codes here */
+ REF_CNE_RET_ERROR = -1,
+
+ REF_CNE_RET_OK = 1,
+} ref_cne_ret_enum_type;
+
+typedef enum
+{
+ REF_CNE_NET_STATE_DISCONNECTED=0,
+ REF_CNE_NET_STATE_CONNECTED,
+ REF_CNE_NET_STATE_UNINITIALIZED,
+} ref_cne_net_con_status_enum_type;
+
+typedef enum
+{
+ REF_CNE_NET_PENDING_CONNECT=0,
+ REF_CNE_NET_PENDING_DISCONNECT,
+ REF_CNE_NET_NOT_PENDING,
+} ref_cne_net_con_req_enum_type;
+
+#ifndef TRUE
+ #define TRUE 1 /* Boolean true value. */
+#endif /* TRUE */
+
+#ifndef FALSE
+ #define FALSE 0 /* Boolean false value. */
+#endif /* FALSE */
+
+#ifndef NULL
+ #define NULL 0
+#endif /* NULL */
+
+#ifndef MAX
+ #define MAX( x, y ) ( ((x) > (y)) ? (x) : (y) )
+#endif /* MAX */
+
+#ifndef MIN
+ #define MIN( x, y ) ( ((x) < (y)) ? (x) : (y) )
+#endif /* MIN */
+
+#endif /* REF_CNE_DEFS_H */
diff --git a/reference-cne/src/Android.mk b/reference-cne/src/Android.mk
new file mode 100755
index 0000000..280264e
--- /dev/null
+++ b/reference-cne/src/Android.mk
@@ -0,0 +1,46 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(CLEAR_VARS)
+
+# measurements show that the ARM version of ZLib is about x1.17 faster
+# than the thumb one...
+LOCAL_ARM_MODE := arm
+
+#this is needed to make sure that the path for stlport is specified first than stdc++
+LOCAL_NO_DEFAULT_COMPILER_FLAGS :=true
+
+LOCAL_SRC_FILES:= \
+ CRefCne.cpp\
+ CRefCneRadio.cpp\
+ CneSvc.cpp\
+
+LOCAL_MODULE:= librefcne
+
+LOCAL_C_INCLUDES := \
+ external/connectivity/reference-cne/inc \
+ external/connectivity/include/cne \
+ bionic/libstdc++/include \
+ system/core/include \
+ hardware/libhardware/include \
+ hardware/libhardware_legacy/include \
+ hardware/ril/include \
+ dalvik/libnativehelper/include \
+ frameworks/base/include \
+ external/skia/include \
+ out/target/product/dream/obj/include \
+ bionic/libc/arch-arm/include \
+ bionic/libc/include \
+ bionic/libstdc++/include \
+ bionic/libc/kernel/common \
+ bionic/libc/kernel/arch-arm \
+ bionic/libm/include \
+ bionic/libm/include/arch/arm \
+ bionic/libthread_db/include \
+ out/target/product/dream/obj/EXECUTABLES/cnetest_intermediates
+
+LOCAL_CFLAGS+= -fno-exceptions -Wno-multichar -msoft-float -fpic -ffunction-sections -funwind-tables -fstack-protector -fno-short-enums -march=armv5te -mtune=xscale -D__ARM_ARCH_5__ -D__ARM_ARCH_5T__ -D__ARM_ARCH_5TE__ -include system/core/include/arch/linux-arm/AndroidConfig.h -I system/core/include/arch/linux-arm/ -mthumb-interwork -DANDROID -fmessage-length=0 -W -Wall -Wno-unused -DSK_RELEASE -DNDEBUG -O2 -g -Wstrict-aliasing=2 -finline-functions -fno-inline-functions-called-once -fgcse-after-reload -frerun-cse-after-loop -frename-registers -DNDEBUG -UDEBUG -fvisibility-inlines-hidden -fomit-frame-pointer -fstrict-aliasing -funswitch-loops -finline-limit=300 -fno-rtti -DFEATURE_XMLLIB
+
+LOCAL_PRELINK_MODULE := false
+
+include $(BUILD_SHARED_LIBRARY)
+
diff --git a/reference-cne/src/CRefCne.cpp b/reference-cne/src/CRefCne.cpp
new file mode 100755
index 0000000..5577a0a
--- /dev/null
+++ b/reference-cne/src/CRefCne.cpp
@@ -0,0 +1,402 @@
+/**----------------------------------------------------------------------------
+ @file CRefCne.cpp
+
+
+-----------------------------------------------------------------------------*/
+
+/* Copyright (c) 2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+/*----------------------------------------------------------------------------
+ * Preprocessor Definitions and Constants
+ * -------------------------------------------------------------------------*/
+#define TWO_RADIOS_ARE_CONNECTED 2
+#define ONE_RADIO_IS_CONNECTED 1
+#define ALL_RADIOS_ARE_DISCONNECTED 0
+
+/*----------------------------------------------------------------------------
+ * Include Files
+ * -------------------------------------------------------------------------*/
+#include "stdio.h"
+#include "cne_svc.h"
+#include "CRefCne.h"
+#include "CRefCneRadio.h"
+#include "RefCneDefs.h"
+
+/*----------------------------------------------------------------------------
+ * Static Member declarations
+ * -------------------------------------------------------------------------*/
+CRefCne* CRefCne::m_sInstancePtr = NULL;
+cne_rat_type CRefCne::m_siPrefNetwork = CNE_RAT_NONE;
+
+/*----------------------------------------------------------------------------
+ * Type Declarations
+ * -------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ * Class Definitions
+ * -------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------------
+ * FUNCTION getInstance
+
+ * DESCRIPTION The user of this class will call this function to get an
+ instance of the class. All other public functions will be
+ called on this instance
+
+ * DEPENDENCIES None
+
+ * RETURN VALUE an instance of CRefCne class
+
+ * SIDE EFFECTS None
+ *--------------------------------------------------------------------------*/
+CRefCne* CRefCne::getInstance
+(
+)
+{
+ if (m_sInstancePtr == NULL)
+ {
+ m_sInstancePtr = new CRefCne;
+ }
+ return(m_sInstancePtr);
+}
+/*----------------------------------------------------------------------------
+ * FUNCTION Constructor
+
+ * DESCRIPTION Creates the RefCne object & initializes members appropriately
+
+ * DEPENDENCIES None
+
+ * RETURN VALUE an instance of CRefCne class
+
+ * SIDE EFFECTS RefCne object is created
+ *--------------------------------------------------------------------------*/
+CRefCne::CRefCne ()
+{
+ m_iNumActiveNetworks = NULL;
+ RefCneWifi = new CRefCneRadio(CNE_RAT_WLAN);
+ RefCneWwan = new CRefCneRadio(CNE_RAT_WWAN);
+}
+/*----------------------------------------------------------------------------
+ * FUNCTION RefCneCmdHdlr
+
+ * DESCRIPTION This the master command handler which calls specific handler
+ to handle a particular command sent by the daemon
+
+ * DEPENDENCIES None
+
+ * RETURN VALUE None
+
+ * SIDE EFFECTS None
+ *--------------------------------------------------------------------------*/
+void CRefCne::RefCneCmdHdlr
+(
+ int cmd,
+ int cmd_len,
+ void* pCmdDataPtr
+)
+{
+ cmd = (cne_cmd_enum_type) cmd;
+ CRefCne* myself = getInstance();
+ switch (cmd)
+ {
+ case CNE_NOTIFY_DEFAULT_NW_PREF_CMD:
+ {
+ RCNE_MSG_INFO("Command hdlr: Notify default"
+ " network pref cmd called [%d]",cmd);
+ ref_cne_ret_enum_type ret = myself->SetPrefNetCmd(pCmdDataPtr);
+ if (ret != REF_CNE_RET_OK)
+ {
+ //ASSERT(0);
+ }
+ break;
+ }
+ case CNE_REQUEST_UPDATE_WLAN_INFO_CMD:
+ {
+ RCNE_MSG_INFO("Command hdlr: Update Wifi info cmd called [%d]",cmd);
+ ref_cne_ret_enum_type ret = myself->UpdateWlanInfoCmd(pCmdDataPtr);
+ if (ret != REF_CNE_RET_OK)
+ {
+ //ASSERT(0);
+ }
+ break;
+ }
+ case CNE_REQUEST_UPDATE_WWAN_INFO_CMD:
+ {
+ RCNE_MSG_INFO("Command hdlr: Update WWAN info cmd called [%d]",cmd);
+ ref_cne_ret_enum_type ret = myself->UpdateWwanInfoCmd(pCmdDataPtr);
+ if (ret != REF_CNE_RET_OK)
+ {
+ //assert(0);
+ }
+ break;
+ }
+ default:
+ {
+ RCNE_MSG_ERROR("Command hdlr: Unrecognized command recvd [%d]",cmd);
+ }
+ }
+ myself->ProcessStateChange();
+}
+/*----------------------------------------------------------------------------
+ * FUNCTION ProcessStateChange
+
+ * DESCRIPTION Processess the change of state of the connectivity engine
+ after the command received from the daemon is processed
+
+ * DEPENDENCIES None
+
+ * RETURN VALUE None
+
+ * SIDE EFFECTS None
+ *--------------------------------------------------------------------------*/
+void CRefCne::ProcessStateChange
+(
+)
+{
+ RCNE_MSG_INFO("PSC:BEGIN processing state change");
+ m_iNumActiveNetworks = 0;
+ cne_rat_type myPrefNet = GetPreferredNetwork();
+ /* Check if the preferred network is set, if not then phone is
+ * in boot up process, so do nothing */
+ if (myPrefNet == NULL)
+ {
+ return;
+ }
+
+ CRefCneRadio* pref;
+ CRefCneRadio* nonpref;
+ if (myPrefNet == CNE_RAT_WLAN )
+ {
+ RCNE_MSG_DEBUG("PSC: Preferred RAT is Wifi, non-preferred RAT is WWAN");
+ pref = RefCneWifi;
+ nonpref = RefCneWwan;
+ } else
+ {
+ RCNE_MSG_DEBUG("PSC: Preferred RAT is WWAN, non-preferred RAT is Wifi");
+ pref = RefCneWwan;
+ nonpref = RefCneWifi;
+ }
+ if (RefCneWifi->bIsDataConnected() == TRUE )
+ {
+ ++m_iNumActiveNetworks;
+ RCNE_MSG_INFO("PSC: Wifi is in connected state");
+ }
+ if (RefCneWwan->bIsDataConnected() == TRUE )
+ {
+ ++m_iNumActiveNetworks;
+ RCNE_MSG_INFO("PSC: WWAN is in connected state");
+ }
+ switch (m_iNumActiveNetworks)
+ {
+ case TWO_RADIOS_ARE_CONNECTED:
+ /**
+ * If both Radios are up turn off the non-preferred network
+ */
+ {
+ RCNE_MSG_DEBUG("PSC: both radios are up; disconnecting"
+ " non-preferred radio");
+ nonpref->TurnOff();
+ nonpref->SetPending(REF_CNE_NET_PENDING_DISCONNECT);
+ break;
+ }
+ case ONE_RADIO_IS_CONNECTED:
+ /**
+ * If only one radio is up check if it is the preferred one,
+ * if not then turn on the preferred network
+ */
+ {
+ if (pref->bIsDataConnected() == FALSE)
+ {
+ RCNE_MSG_INFO("PSC: Non preferred radio is up; reconnecting"
+ " preferred radio");
+ pref->TurnOn();
+ pref->SetPending(REF_CNE_NET_PENDING_CONNECT);
+ } else
+ {
+ RCNE_MSG_INFO("PSC: Preferred radio is connected");
+ }
+ break;
+ }
+ case ALL_RADIOS_ARE_DISCONNECTED:
+ /**
+ * If both networks are disconnected then try to bring up
+ * both networks
+ */
+ {
+ RCNE_MSG_INFO("All radios are disconnected; trying to reconnect");
+ pref->TurnOn();
+ pref->SetPending(REF_CNE_NET_PENDING_CONNECT);
+ nonpref->TurnOn();
+ nonpref->SetPending(REF_CNE_NET_PENDING_CONNECT);
+ break;
+ }
+ default:
+ {
+ RCNE_MSG_WARN("PSC: number of active networks is invalid");
+ //ASSERT(0);
+ }
+ }
+}
+/*----------------------------------------------------------------------------
+ * FUNCTION UpdateWlanInfoCmd
+
+ * DESCRIPTION The command handler for UpdateWlanInfo notification
+
+ * DEPENDENCIES None
+
+ * RETURN VALUE ref_cne_ret_enum_type
+
+ * SIDE EFFECTS None
+ *--------------------------------------------------------------------------*/
+ref_cne_ret_enum_type CRefCne::UpdateWlanInfoCmd
+(
+ void* pWifiCmdData
+)
+{
+ RCNE_MSG_DEBUG("UWLICH: Wlan update info cmd handler called");
+ refCneWlanInfoCmdFmt *WlanInfoCmd;
+ WlanInfoCmd = (refCneWlanInfoCmdFmt *)pWifiCmdData;
+ if (WlanInfoCmd->status == NULL)
+ {
+ RCNE_MSG_ERROR("UWLICH: Invalid (==NULL) WLAN status received");
+ return(REF_CNE_RET_ERROR);
+ }
+ RefCneWifi->UpdateStatus(WlanInfoCmd->status);
+ if ( (RefCneWifi->bIsDataConnected()
+ && (RefCneWifi->iIsConActionPending()== REF_CNE_NET_PENDING_CONNECT) )
+ || (!RefCneWifi->bIsDataConnected()
+ && (RefCneWifi->iIsConActionPending()== REF_CNE_NET_PENDING_DISCONNECT) ) )
+ {
+ RCNE_MSG_DEBUG("UWLICH: Was in connection action pending state; clearing it");
+ RefCneWifi->ClearPending();
+ }
+ RCNE_MSG_INFO("UWLICH: handled Wlan update info cmd");
+ return(REF_CNE_RET_OK);
+}
+/*----------------------------------------------------------------------------
+ * FUNCTION UpdateWwanInfoCmd
+
+ * DESCRIPTION The command handler for UpdateWwanInfo notification
+
+ * DEPENDENCIES None
+
+ * RETURN VALUE ref_cne_ret_enum_type
+
+ * SIDE EFFECTS None
+ *--------------------------------------------------------------------------*/
+ref_cne_ret_enum_type CRefCne::UpdateWwanInfoCmd
+(
+ void* pWwanCmdData
+)
+{
+ RCNE_MSG_DEBUG("UWWICH: Wwan update info cmd handler called");
+ refCneWwanInfoCmdFmt *WwanInfoCmd;
+ WwanInfoCmd = (refCneWwanInfoCmdFmt *)pWwanCmdData;
+ if (WwanInfoCmd->status == NULL)
+ {
+ RCNE_MSG_ERROR("UWWICH: Invalid (==NULL) WWAN status received");
+ return(REF_CNE_RET_ERROR);
+ }
+ RefCneWwan->UpdateStatus(WwanInfoCmd->status);
+ if ( (RefCneWwan->bIsDataConnected()
+ && (RefCneWwan->iIsConActionPending()== REF_CNE_NET_PENDING_CONNECT) )
+ || (!RefCneWwan->bIsDataConnected()
+ && (RefCneWwan->iIsConActionPending()== REF_CNE_NET_PENDING_DISCONNECT) ) )
+ {
+ RCNE_MSG_DEBUG("UWWICH: Was in connection action pending state; clearing it");
+ RefCneWwan->ClearPending();
+ }
+ RCNE_MSG_INFO("UWWICH: handled Wwan update info cmd");
+ return(REF_CNE_RET_OK);
+}
+/*----------------------------------------------------------------------------
+ * FUNCTION SetPrefNetCmd
+
+ * DESCRIPTION The command handler for set preferred network notification
+
+ * DEPENDENCIES None
+
+ * RETURN VALUE ref_cne_ret_enum_type
+
+ * SIDE EFFECTS None
+ *--------------------------------------------------------------------------*/
+ref_cne_ret_enum_type CRefCne::SetPrefNetCmd
+(
+ void* pPrefNetCmdData
+)
+{
+ RCNE_MSG_DEBUG("SPNCH: Set preferred network command handler called");
+ cne_rat_type *pPrefNetwork;
+ pPrefNetwork = (cne_rat_type *)pPrefNetCmdData;
+ if ( (*pPrefNetwork != CNE_RAT_WLAN)&&(*pPrefNetwork != CNE_RAT_WWAN) )
+ {
+ RCNE_MSG_ERROR("SPNCH: Invalid Network ID [%d] received",*pPrefNetwork);
+ return(REF_CNE_RET_ERROR);
+ }
+ SetPreferredNetwork(pPrefNetwork);
+ RCNE_MSG_DEBUG("SPNCH: handled set preferred network cmd");
+ return(REF_CNE_RET_OK);
+}
+/*----------------------------------------------------------------------------
+ * FUNCTION SetPreferredNetwork
+
+ * DESCRIPTION Sets the desired network as the preferred network
+
+ * DEPENDENCIES None
+
+ * RETURN VALUE None
+
+ * SIDE EFFECTS The default network for the system is changed
+ *--------------------------------------------------------------------------*/
+void CRefCne::SetPreferredNetwork
+(
+ cne_rat_type* pNetId
+)
+{
+ m_siPrefNetwork = *pNetId;
+ return;
+}
+/*----------------------------------------------------------------------------
+ * FUNCTION GetPreferredNetwork
+
+ * DESCRIPTION Informs the caller about which network is used as default
+
+ * DEPENDENCIES None
+
+ * RETURN VALUE cne_rat_type
+
+ * SIDE EFFECTS None
+ *--------------------------------------------------------------------------*/
+cne_rat_type CRefCne::GetPreferredNetwork
+(
+)
+{
+ return(m_siPrefNetwork);
+}
+
diff --git a/reference-cne/src/CRefCneRadio.cpp b/reference-cne/src/CRefCneRadio.cpp
new file mode 100755
index 0000000..48a4738
--- /dev/null
+++ b/reference-cne/src/CRefCneRadio.cpp
@@ -0,0 +1,280 @@
+/*============================================================================
+ FILE: CRefCneRadio.cpp
+
+ OVERVIEW: The CRefCneRadio class provides means to control an air
+ interface upon creation of its object. Some of the methods
+ such as bIsDataConnected, bIsConStateChanged, provide means to
+ find out the current connectivity state of the radio
+
+ DEPENDENCIES: The CRefCneRadio class is constructed for a unique air interface
+ denoted by its RAT type. Once constructed, all other methods
+ can be called on this object.
+============================================================================*/
+
+/* Copyright (c) 2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+/*---------------------------------------------------------------------------
+ * Extern Declarations
+ *-------------------------------------------------------------------------*/
+extern "C" void cnd_sendUnsolicitedMsg
+ (
+ int targetFd,
+ int msgType,
+ int dataLen,
+ void *data
+ );
+
+/*----------------------------------------------------------------------------
+ * Includes
+ * -------------------------------------------------------------------------*/
+#include "CRefCneRadio.h"
+#include "RefCneDefs.h"
+#include "cne_svc.h"
+
+/*=============================================================================
+ FUNCTION CRefCneRadio
+
+ DESCRIPTION Class constructor initializes class member variables
+
+ DEPENDENCIES None
+
+ RETURN VALUE CRefCneRadio instance
+
+ SIDE EFFECTS None
+ ============================================================================*/
+CRefCneRadio::CRefCneRadio
+(
+ cne_rat_type myRadio
+):m_iRequestState(REF_CNE_NET_NOT_PENDING),
+ m_iNetConState(REF_CNE_NET_STATE_UNINITIALIZED),
+ m_iPrevNetConState(REF_CNE_NET_STATE_UNINITIALIZED)
+{
+ //Print to logcat: RefCne Radio constructor called
+ /* set the command handlers */
+
+ m_iMyRatType = myRadio;
+
+ //Print to logcat: RefCne Radio constructed
+}
+/*=============================================================================
+ FUNCTION CRefCneRadio
+
+ DESCRIPTION Copy constructor, not allowed.
+
+ DEPENDENCIES None
+
+ RETURN VALUE None
+
+ SIDE EFFECTS None
+ ============================================================================*/
+CRefCneRadio::CRefCneRadio(const CRefCneRadio& radio)
+{
+}
+/*=============================================================================
+ FUNCTION bIsDataConnected
+
+ DESCRIPTION Querrys the Radio to see if it is connected
+
+ DEPENDENCIES None
+
+ RETURN VALUE TRUE, FALSE
+
+ SIDE EFFECTS None
+ ============================================================================*/
+bool CRefCneRadio::bIsDataConnected ()
+{
+ if(m_iNetConState == REF_CNE_NET_STATE_CONNECTED)
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+/*=============================================================================
+ FUNCTION iIsConActionPending
+
+ DESCRIPTION Querrys the Radio for a pending request
+
+ DEPENDENCIES None
+
+ RETURN VALUE TRUE, FALSE
+
+ SIDE EFFECTS None
+ ============================================================================*/
+int CRefCneRadio::iIsConActionPending
+(
+)
+{
+ return m_iRequestState;
+}
+/*=============================================================================
+ FUNCTION ClearPending
+
+ DESCRIPTION Clears the request pending flag
+
+ DEPENDENCIES None
+
+ RETURN VALUE None
+
+ SIDE EFFECTS None
+ ============================================================================*/
+void CRefCneRadio::ClearPending
+(
+)
+{
+ m_iRequestState = REF_CNE_NET_NOT_PENDING;
+}
+/*=============================================================================
+ FUNCTION bIsConStateChanged
+
+ DESCRIPTION Querry the radio to see if the new status is different from
+ previous
+
+ DEPENDENCIES None
+
+ RETURN VALUE None
+
+ SIDE EFFECTS None
+ ============================================================================*/
+bool CRefCneRadio::bIsConStateChanged
+(
+)
+{
+ if(m_iNetConState != m_iPrevNetConState)
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+/*=============================================================================
+ FUNCTION UpdateStatus
+
+ DESCRIPTION Maintains the previous and current state of the radio
+
+ DEPENDENCIES None
+
+ RETURN VALUE None
+
+ SIDE EFFECTS None
+ ============================================================================*/
+void CRefCneRadio::UpdateStatus
+ (
+ int myNetStatus
+ )
+{
+ m_iNetState = (cne_network_state_enum_type )myNetStatus;
+ m_iPrevNetConState = m_iNetConState;
+ switch(myNetStatus)
+ {
+ case CNE_NETWORK_STATE_CONNECTED:
+ {
+ m_iNetConState = REF_CNE_NET_STATE_CONNECTED;
+ break;
+ }
+ default:
+ {
+ m_iNetConState = REF_CNE_NET_STATE_DISCONNECTED;
+ }
+ }
+ return;
+}
+/*=============================================================================
+ FUNCTION TurnOn
+
+ DESCRIPTION Turns the radio on
+
+ DEPENDENCIES None
+
+ RETURN VALUE None
+
+ SIDE EFFECTS None
+ ============================================================================*/
+void CRefCneRadio::TurnOn
+(
+)
+{
+ //Send Turn On command to Connectivity daemon
+ cnd_sendUnsolicitedMsg
+ (0, CNE_REQUEST_BRING_RAT_UP_MSG, sizeof(m_iMyRatType), &m_iMyRatType);
+ return;
+}
+/*=============================================================================
+ FUNCTION TurnOff
+
+ DESCRIPTION Turns the radio off
+
+ DEPENDENCIES None
+
+ RETURN VALUE None
+
+ SIDE EFFECTS None
+ ============================================================================*/
+void CRefCneRadio::TurnOff
+(
+)
+{
+ //Send Turn Off command to Connectivity daemon
+ cnd_sendUnsolicitedMsg
+ (0, CNE_REQUEST_BRING_RAT_DOWN_MSG, sizeof(m_iMyRatType), &m_iMyRatType);
+ return;
+}
+/*=============================================================================
+ FUNCTION SetPending
+
+ DESCRIPTION Sets the pending flag appropriately when radio is turned on
+ or off
+
+ DEPENDENCIES None
+
+ RETURN VALUE None
+
+ SIDE EFFECTS None
+ ============================================================================*/
+void CRefCneRadio::SetPending
+(
+ ref_cne_net_con_req_enum_type flag
+)
+{
+ m_iRequestState = flag;
+}
+
+//Implicit constructor
+CRefCneRadio::CRefCneRadio
+(
+)
+{
+}
+
+
diff --git a/reference-cne/src/CneSvc.cpp b/reference-cne/src/CneSvc.cpp
new file mode 100755
index 0000000..9c91ed4
--- /dev/null
+++ b/reference-cne/src/CneSvc.cpp
@@ -0,0 +1,133 @@
+/*============================================================================
+ FILE: CneSvc.cpp
+
+ OVERVIEW: Provide an overview of the implementation contained in this
+ file. Do not rehash the user-level documentation from the
+ header file. Maintainers, not users of this code will be
+ reading this. Describe anything of interest about the
+ algorithms or design, and call attention to anything tricky
+ or potentially confusing.
+
+ DEPENDENCIES: If the code in this file has any notable dependencies,
+ describe them here. Any initialization and sequencing
+ requirements, or assumptions about the overall state of
+ the system belong here.
+============================================================================*/
+
+/* Copyright (c) 2009, Code Aurora Forum. All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ * * Redistributions of source code must retain the above copyright
+ * notice, this list of conditions and the following disclaimer.
+ * * Redistributions in binary form must reproduce the above copyright
+ * notice, this list of conditions and the following disclaimer in the
+ * documentation and/or other materials provided with the distribution.
+ * * Neither the name of Code Aurora nor
+ * the names of its contributors may be used to endorse or promote
+ * products derived from this software without specific prior written
+ * permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NON-INFRINGEMENT ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
+ * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
+ * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
+ * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *
+ */
+
+
+/*----------------------------------------------------------------------------
+ * Include Files
+ * -------------------------------------------------------------------------*/
+#include "cne_svc.h"
+#include "CRefCne.h"
+#include "RefCneDefs.h"
+
+/*----------------------------------------------------------------------------
+ * Preprocessor Definitions and Constants
+ * -------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ * Type Declarations
+ * -------------------------------------------------------------------------*/
+#ifdef __cplusplus
+ extern "C" {
+#endif /* __cplusplus */
+
+extern void cnd_regCommandsNotificationCb
+(
+ int,
+ void (*)(int,int,void*),
+ int
+);
+
+#ifdef __cplusplus
+ }
+#endif /* __cplusplus */
+
+/*----------------------------------------------------------------------------
+ * Global Data Definitions
+ * -------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------------
+ * Static Variable Definitions
+ * -------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ * Static/Class member Function Declarations and Definitions
+ * -------------------------------------------------------------------------*/
+
+/*----------------------------------------------------------------------------
+ * Externalized Function Definitions
+ * -------------------------------------------------------------------------*/
+/*----------------------------------------------------------------------------
+ * FUNCTION Function Name
+
+ * DESCRIPTION Function Description
+
+ * DEPENDENCIES
+
+ * RETURN VALUE
+
+ * SIDE EFFECTS
+ *--------------------------------------------------------------------------*/
+extern "C" void
+cne_processCommand
+(
+ int cmd,
+ int cmd_len,
+ void *cmd_data /* event data depends on the type of event */
+)
+{
+ //CRefCne::getInstance()->RefCneCmdHdlr(cmd, cmd_len, cmd_data);
+ CRefCne::RefCneCmdHdlr(cmd, cmd_len, cmd_data);
+ return;
+}
+
+/*----------------------------------------------------------------------------
+ * FUNCTION Function Name
+
+ * DESCRIPTION Function Description
+
+ * DEPENDENCIES
+
+ * RETURN VALUE
+
+ * SIDE EFFECTS
+ *--------------------------------------------------------------------------*/
+void cne_svc_init
+(
+ void
+)
+{
+ /* create the RefCne obj */
+ (void) CRefCne::getInstance();
+}
+
+