Adding missing files to the correct path.
diff --git a/CORE/SME/inc/nan_Api.h b/CORE/SME/inc/nan_Api.h
new file mode 100644
index 0000000..8e49cf0
--- /dev/null
+++ b/CORE/SME/inc/nan_Api.h
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2014-2015 The Linux Foundation. All rights reserved.
+ *
+ * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
+ *
+ *
+ * Permission to use, copy, modify, and/or distribute this software for
+ * any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * This file was originally distributed by Qualcomm Atheros, Inc.
+ * under proprietary terms before Copyright ownership was assigned
+ * to the Linux Foundation.
+ */
+
+/******************************************************************************
+*
+* Name:  nan_Api.h
+*
+* Description: NAN FSM defines.
+*
+******************************************************************************/
+
+#ifndef __NAN_API_H__
+#define __NAN_API_H__
+
+#include "vos_types.h"
+#include "halTypes.h"
+
+typedef struct sNanRequestReq
+{
+    tANI_U16 request_data_len;
+    const tANI_U8* request_data;
+} tNanRequestReq, *tpNanRequestReq;
+
+/******************************************************************************
+ * Function: Pointer NanCallback
+ *
+ * Description:
+ * this function pointer is used hold nan response callback. When ever driver
+ * receives nan response, this callback will be used.
+ *
+ * Args:
+ * first argument to pass hHal pointer and second argument
+ * to pass the nan response data.
+ *
+ * Returns:
+ * void
+******************************************************************************/
+typedef void (*NanCallback)(void*, tSirNanEvent*);
+
+/******************************************************************************
+ * Function: sme_NanRegisterCallback
+ *
+ * Description:
+ * This function gets called when HDD wants register nan rsp callback with
+ * sme layer.
+ *
+ * Args:
+ * hHal and callback which needs to be registered.
+ *
+ * Returns:
+ * void
+******************************************************************************/
+void sme_NanRegisterCallback(tHalHandle hHal, NanCallback callback);
+
+/******************************************************************************
+ * Function: sme_NanRequest
+ *
+ * Description:
+ * This function gets called when HDD receives NAN vendor command
+ * from userspace
+ *
+ * Args:
+ * hHal, Nan Request structure ptr and sessionId
+ *
+ * Returns:
+ * VOS_STATUS
+******************************************************************************/
+VOS_STATUS sme_NanRequest(tHalHandle hHalHandle, tpNanRequestReq input,
+        tANI_U32 sessionId);
+
+/******************************************************************************
+  \fn sme_NanEvent
+
+  \brief
+  a callback function called when SME received eWNI_SME_NAN_EVENT
+  event from WDA
+
+  \param hHal - HAL handle for device
+  \param pMsg - Message body passed from WDA; includes NAN header
+
+  \return VOS_STATUS
+******************************************************************************/
+VOS_STATUS sme_NanEvent(tHalHandle hHal, void* pMsg);
+
+#endif /* __NAN_API_H__ */
diff --git a/CORE/SME/src/nan/nan_Api.c b/CORE/SME/src/nan/nan_Api.c
new file mode 100644
index 0000000..3ccf954
--- /dev/null
+++ b/CORE/SME/src/nan/nan_Api.c
@@ -0,0 +1,167 @@
+/*
+ * Copyright (c) 2014-2015 The Linux Foundation. All rights reserved.
+ *
+ * Previously licensed under the ISC license by Qualcomm Atheros, Inc.
+ *
+ *
+ * Permission to use, copy, modify, and/or distribute this software for
+ * any purpose with or without fee is hereby granted, provided that the
+ * above copyright notice and this permission notice appear in all
+ * copies.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
+ * WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
+ * WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
+ * AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL
+ * DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR
+ * PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+ * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+ * PERFORMANCE OF THIS SOFTWARE.
+ */
+
+/*
+ * This file was originally distributed by Qualcomm Atheros, Inc.
+ * under proprietary terms before Copyright ownership was assigned
+ * to the Linux Foundation.
+ */
+
+#include "sme_Api.h"
+#include "smsDebug.h"
+#include "csrInsideApi.h"
+#include "smeInside.h"
+#include "limApi.h"
+#include "cfgApi.h"
+
+/******************************************************************************
+ * Function: sme_NanRegisterCallback
+ *
+ * Description:
+ * This function gets called when HDD wants register nan rsp callback with
+ * sme layer.
+ *
+ * Args:
+ * hHal and callback which needs to be registered.
+ *
+ * Returns:
+ * void
+ *****************************************************************************/
+void sme_NanRegisterCallback(tHalHandle hHal, NanCallback callback)
+{
+    tpAniSirGlobal pMac = NULL;
+
+    if (NULL == hHal)
+    {
+        VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
+                FL("hHal is not valid"));
+        return;
+    }
+    pMac = PMAC_STRUCT(hHal);
+    pMac->sme.nanCallback = callback;
+}
+
+/******************************************************************************
+ * Function: sme_NanRequest
+ *
+ * Description:
+ * This function gets called when HDD receives NAN vendor command
+ * from userspace
+ *
+ * Args:
+ * hHal, Nan Request structure ptr and sessionId
+ *
+ * Returns:
+ * VOS_STATUS
+ *****************************************************************************/
+VOS_STATUS sme_NanRequest(tHalHandle hHalHandle, tpNanRequestReq input,
+        tANI_U32 sessionId)
+{
+    tNanRequest *pNanReq = NULL;
+    size_t data_len;
+    tSmeCmd *pCommand;
+    tpAniSirGlobal pMac = PMAC_STRUCT(hHalHandle);
+
+    pCommand = csrGetCommandBuffer(pMac);
+    if (NULL == pCommand)
+    {
+        VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
+                FL("Failed to get command buffer for nan req"));
+        return eHAL_STATUS_RESOURCES;
+    }
+
+    data_len = sizeof(tNanRequest) - sizeof(pNanReq->request_data)
+                 + input->request_data_len;
+    pNanReq = vos_mem_malloc(data_len);
+
+    if (pNanReq == NULL)
+    {
+        VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
+                FL("Memory allocation failure, size : %zu"), data_len);
+        csrReleaseCommand(pMac, pCommand);
+        return eHAL_STATUS_RESOURCES;
+    }
+
+    smsLog(pMac, LOG1, "Posting NAN command to csr queue");
+    vos_mem_zero(pNanReq, data_len);
+    pNanReq->request_data_len = input->request_data_len;
+    vos_mem_copy(pNanReq->request_data,
+                 input->request_data,
+                 input->request_data_len);
+
+    pCommand->command = eSmeCommandNanReq;
+    pCommand->sessionId = sessionId;
+    pCommand->u.pNanReq = pNanReq;
+
+    if (!HAL_STATUS_SUCCESS(csrQueueSmeCommand(pMac, pCommand, TRUE)))
+    {
+        VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
+                 FL("failed to post eSmeCommandNanReq command"));
+        csrReleaseCommand(pMac, pCommand);
+        vos_mem_free(pNanReq);
+        return VOS_STATUS_E_FAILURE;
+    }
+
+    return VOS_STATUS_SUCCESS;
+}
+
+/******************************************************************************
+ * Function: sme_NanEvent
+ *
+ * Description:
+ * This callback function will be called when SME received eWNI_SME_NAN_EVENT
+ * event from WMA
+ *
+ * Args:
+ * hHal - HAL handle for device
+ * pMsg - Message body passed from WDA; includes NAN header
+ *
+ * Returns:
+ * VOS_STATUS
+******************************************************************************/
+VOS_STATUS sme_NanEvent(tHalHandle hHal, void* pMsg)
+{
+    tpAniSirGlobal pMac = PMAC_STRUCT(hHal);
+    VOS_STATUS status = VOS_STATUS_SUCCESS;
+
+    if (NULL == pMsg)
+    {
+        VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
+                FL("msg ptr is NULL"));
+        status = VOS_STATUS_E_FAILURE;
+    }
+    else
+    {
+        VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_INFO_MED,
+                FL("SME: Received sme_NanEvent"));
+        if (pMac->sme.nanCallback)
+        {
+            pMac->sme.nanCallback(pMac->hHdd, (tSirNanEvent *)pMsg);
+        }
+        else
+        {
+            VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_ERROR,
+                    FL("nanCallback is NULL"));
+        }
+    }
+
+    return status;
+}