platform: msm_shared: add partition_get_index_in_lun

add function to calculate partition index relative to lun

Change-Id: Ic03b330788d21a9d9122a7e0fd2df266222ac6e5
diff --git a/platform/msm_shared/include/partition_parser.h b/platform/msm_shared/include/partition_parser.h
index af69e03..f1eb61d 100644
--- a/platform/msm_shared/include/partition_parser.h
+++ b/platform/msm_shared/include/partition_parser.h
@@ -166,6 +166,7 @@
 };
 
 int partition_get_index(const char *name);
+int partition_get_index_in_lun(const char *name, unsigned int lun);
 unsigned long long partition_get_size(int index);
 unsigned long long partition_get_offset(int index);
 uint8_t partition_get_lun(int index);
diff --git a/platform/msm_shared/partition_parser.c b/platform/msm_shared/partition_parser.c
index 22be711..c7e91a1 100644
--- a/platform/msm_shared/partition_parser.c
+++ b/platform/msm_shared/partition_parser.c
@@ -899,6 +899,26 @@
 	return INVALID_PTN;
 }
 
+/*
+ * Find relative index of partition in lun
+ */
+int partition_get_index_in_lun(const char *name, unsigned int lun)
+{
+	unsigned int input_string_length = strlen(name);
+	unsigned int n, relative_index = 0;
+	for (n = 0; n < partition_count; n++) {
+		if (lun == partition_entries[n].lun)
+		{
+			relative_index++;
+			if ((input_string_length == strlen((const char *)&partition_entries[n].name))
+				&& !memcmp(name, &partition_entries[n].name, input_string_length)) {
+				return relative_index;
+			}
+		}
+	}
+	return INVALID_PTN;
+}
+
 /* Get size of the partition */
 unsigned long long partition_get_size(int index)
 {