qcacmn: scan convergence - interface definition

Add north interface, south interface and offload interface
API definitions

Change-Id: Iccae20d266e7248088241416730d9ea317c3f77b
CRs-Fixed: 1095299
diff --git a/umac/scan/dispatcher/src/wlan_scan_utils_api.c b/umac/scan/dispatcher/src/wlan_scan_utils_api.c
index 13a309c..ec32f82 100644
--- a/umac/scan/dispatcher/src/wlan_scan_utils_api.c
+++ b/umac/scan/dispatcher/src/wlan_scan_utils_api.c
@@ -19,3 +19,87 @@
 /*
  * DOC: Defines scan utility functions
  */
+
+#include <wlan_scan_ucfg_api.h>
+#include <wlan_scan_utils_api.h>
+#include <../../core/src/wlan_scan_cache_db.h>
+#include <../../core/src/wlan_scan_main.h>
+
+const char*
+util_scan_get_ev_type_name(enum scan_event_type type)
+{
+	static const char * const event_name[] = {
+		[SCAN_EVENT_TYPE_STARTED] = "STARTED",
+		[SCAN_EVENT_TYPE_COMPLETED] = "COMPLETED",
+		[SCAN_EVENT_TYPE_BSS_CHANNEL] = "HOME_CHANNEL",
+		[SCAN_EVENT_TYPE_FOREIGN_CHANNEL] = "FOREIGN_CHANNEL",
+		[SCAN_EVENT_TYPE_DEQUEUED] = "DEQUEUED",
+		[SCAN_EVENT_TYPE_PREEMPTED] = "PREEMPTED",
+		[SCAN_EVENT_TYPE_START_FAILED] = "START_FAILED",
+		[SCAN_EVENT_TYPE_RESTARTED] = "RESTARTED",
+		[SCAN_EVENT_TYPE_FOREIGN_CHANNEL_EXIT] = "FOREIGN_CHANNEL_EXIT",
+		[SCAN_EVENT_TYPE_SUSPENDED] = "SUSPENDED",
+		[SCAN_EVENT_TYPE_RESUMED] = "RESUMED",
+		[SCAN_EVENT_TYPE_NLO_COMPLETE] = "NLO_COMPLETE",
+		[SCAN_EVENT_TYPE_INVALID] = "INVALID",
+		[SCAN_EVENT_TYPE_GPIO_TIMEOUT] = "GPIO_TIMEOUT",
+		[SCAN_EVENT_TYPE_RADIO_MEASUREMENT_START] =
+			"RADIO_MEASUREMENT_START",
+		[SCAN_EVENT_TYPE_RADIO_MEASUREMENT_END] =
+			"RADIO_MEASUREMENT_END",
+		[SCAN_EVENT_TYPE_BSSID_MATCH] = "BSSID_MATCH",
+		[SCAN_EVENT_TYPE_FOREIGN_CHANNEL_GET_NF] =
+			"FOREIGN_CHANNEL_GET_NF",
+	};
+
+	if (type >= SCAN_EVENT_TYPE_MAX) {
+		scm_err("unknown type : %d", type);
+		QDF_ASSERT(0);
+		return "UNKNOWN";
+	}
+
+	return event_name[type];
+}
+
+
+const char*
+util_scan_get_ev_reason_name(enum scan_completion_reason reason)
+{
+	static const char * const reason_name[] = {
+		[SCAN_REASON_NONE] = "NONE",
+		[SCAN_REASON_COMPLETED] = "COMPLETED",
+		[SCAN_REASON_CANCELLED] = "CANCELLED",
+		[SCAN_REASON_PREEMPTED] = "PREEMPTED",
+		[SCAN_REASON_TIMEDOUT] = "TIMEDOUT",
+		[SCAN_REASON_INTERNAL_FAILURE] = "INTERNAL_FAILURE",
+		[SCAN_REASON_SUSPENDED] = "SUSPENDED",
+		[SCAN_REASON_RUN_FAILED] = "RUN_FAILED",
+		[SCAN_REASON_TERMINATION_FUNCTION] = "TERMINATION_FUNCTION",
+		[SCAN_REASON_MAX_OFFCHAN_RETRIES] = "MAX_OFFCHAN_RETRIES",
+	};
+
+	if (reason >= SCAN_REASON_MAX) {
+		scm_err("unknown reason : %d", reason);
+		QDF_ASSERT(0);
+		return "UNKNOWN";
+	}
+
+	return reason_name[reason];
+}
+
+qdf_time_t
+util_get_last_scan_time(struct wlan_objmgr_vdev *vdev)
+{
+	uint8_t pdev_id;
+	struct wlan_scan_obj *scan_obj;
+
+	if (!vdev) {
+		scm_warn("null vdev");
+		QDF_ASSERT(0);
+		return 0;
+	}
+	pdev_id = wlan_scan_vdev_get_pdev_id(vdev);
+	scan_obj = wlan_vdev_get_scan_obj(vdev);
+
+	return scan_obj->pdev_info[pdev_id].last_scan_time;
+}