aboutsummaryrefslogtreecommitdiffstats
path: root/flashutils/flashutils.c
diff options
context:
space:
mode:
authorKoushik Dutta <koushd@gmail.com>2011-05-26 11:14:15 -0700
committerKoushik Dutta <koushd@gmail.com>2011-05-26 11:14:15 -0700
commit8a6bc7742303fee29c22694a46b6109fb46adbd6 (patch)
tree88cb2881c4acef48aeb563187648dad385d51d5b /flashutils/flashutils.c
parentd79b7541f3ba5fc1c162da1aa7b28544ab85c170 (diff)
downloadbootable_recovery-8a6bc7742303fee29c22694a46b6109fb46adbd6.zip
bootable_recovery-8a6bc7742303fee29c22694a46b6109fb46adbd6.tar.gz
bootable_recovery-8a6bc7742303fee29c22694a46b6109fb46adbd6.tar.bz2
test
Change-Id: I25bd6846aea09247459c89ba98e6ac34c3debaa3
Diffstat (limited to 'flashutils/flashutils.c')
-rw-r--r--flashutils/flashutils.c32
1 files changed, 22 insertions, 10 deletions
diff --git a/flashutils/flashutils.c b/flashutils/flashutils.c
index 7504e4a..7dc750c 100644
--- a/flashutils/flashutils.c
+++ b/flashutils/flashutils.c
@@ -69,7 +69,7 @@ __system(const char *command)
return (pid == -1 ? -1 : pstat);
}
-static int detect_partition(const char *partition)
+static int detect_partition(const char *partitionType, const char *partition)
{
int type = device_flash_type();
if (strstr(partition, "/dev/block/mtd") != NULL)
@@ -78,12 +78,24 @@ static int detect_partition(const char *partition)
type = MMC;
else if (strstr(partition, "/dev/block/bml") != NULL)
type = BML;
-
+
+ if (partitionType != NULL) {
+ if (strstr(partitionType, "mtd") != NULL)
+ type = MTD;
+ else if (strstr(partitionType, "emmc") != NULL)
+ type = MMC;
+ else if (strstr(partitionType, "bml") != NULL)
+ type = BML;
+ }
+
+ printf("partitionType: %s\n", partitionType);
+ printf("partition: %s\n", partition);
+ printf("detected type: %d\n", type);
return type;
}
-int restore_raw_partition(const char *partition, const char *filename)
+int restore_raw_partition(const char* partitionType, const char *partition, const char *filename)
{
- int type = detect_partition(partition);
+ int type = detect_partition(partitionType, partition);
switch (type) {
case MTD:
return cmd_mtd_restore_raw_partition(partition, filename);
@@ -96,9 +108,9 @@ int restore_raw_partition(const char *partition, const char *filename)
}
}
-int backup_raw_partition(const char *partition, const char *filename)
+int backup_raw_partition(const char* partitionType, const char *partition, const char *filename)
{
- int type = detect_partition(partition);
+ int type = detect_partition(partitionType, partition);
switch (type) {
case MTD:
return cmd_mtd_backup_raw_partition(partition, filename);
@@ -112,9 +124,9 @@ int backup_raw_partition(const char *partition, const char *filename)
}
}
-int erase_raw_partition(const char *partition)
+int erase_raw_partition(const char* partitionType, const char *partition)
{
- int type = detect_partition(partition);
+ int type = detect_partition(partitionType, partition);
switch (type) {
case MTD:
return cmd_mtd_erase_raw_partition(partition);
@@ -129,7 +141,7 @@ int erase_raw_partition(const char *partition)
int erase_partition(const char *partition, const char *filesystem)
{
- int type = detect_partition(partition);
+ int type = detect_partition(NULL, partition);
switch (type) {
case MTD:
return cmd_mtd_erase_partition(partition, filesystem);
@@ -144,7 +156,7 @@ int erase_partition(const char *partition, const char *filesystem)
int mount_partition(const char *partition, const char *mount_point, const char *filesystem, int read_only)
{
- int type = detect_partition(partition);
+ int type = detect_partition(NULL, partition);
switch (type) {
case MTD:
return cmd_mtd_mount_partition(partition, mount_point, filesystem, read_only);