Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5f052559 authored by Michael Bestas's avatar Michael Bestas Committed by Dees Troy
Browse files

mtdutils: Fix mounting partitions by-name

Change-Id: I8314bb94bf5bcd9576995cd2ecdc5133c5f5ea11
parent 0d0d522b
Loading
Loading
Loading
Loading
+10 −2
Original line number Diff line number Diff line
@@ -12,6 +12,10 @@ LOCAL_SRC_FILES += rk3xhack.c
LOCAL_CFLAGS += -DRK3X
endif

ifeq ($(TARGET_MTD_BY_NAME),true)
LOCAL_CFLAGS += -DBYNAME
endif

LOCAL_MODULE := libmtdutils
LOCAL_STATIC_LIBRARIES := libcutils libc
LOCAL_CLANG := true
@@ -29,6 +33,10 @@ LOCAL_SRC_FILES += rk3xhack.c
LOCAL_CFLAGS += -DRK3X
endif

ifeq ($(TARGET_MTD_BY_NAME),true)
LOCAL_CFLAGS += -DBYNAME
endif

LOCAL_MODULE := libmtdutils
LOCAL_SHARED_LIBRARIES := libcutils libc
LOCAL_CLANG := true
+15 −1
Original line number Diff line number Diff line
@@ -32,6 +32,11 @@
    #include "rk3xhack.h"
#endif

#ifdef BYNAME
static const char mtdprefix[] = "/dev/block/mtd/by-name/";
#define MTD_BASENAME_OFFSET (sizeof(mtdprefix)-1)
#endif

struct MtdReadContext {
    const MtdPartition *partition;
    char *buffer;
@@ -141,7 +146,11 @@ mtd_scan_partitions()
            p->device_index = mtdnum;
            p->size = mtdsize;
            p->erase_size = mtderasesize;
#ifdef BYNAME
            asprintf(&p->name, "%s%s", mtdprefix, mtdname);
#else
            p->name = strdup(mtdname);
#endif
            if (p->name == NULL) {
                errno = ENOMEM;
                goto bail;
@@ -180,6 +189,11 @@ mtd_find_partition_by_name(const char *name)
                if (strcmp(p->name, name) == 0) {
                    return p;
                }
#ifdef BYNAME
                if (strcmp(p->name+MTD_BASENAME_OFFSET, name) == 0) {
                    return p;
                }
#endif
            }
        }
    }