Move trailer status size calculation to its own function
diff --git a/boot/bootutil/src/bootutil_misc.c b/boot/bootutil/src/bootutil_misc.c
index a47fadf..4f41c23 100644
--- a/boot/bootutil/src/bootutil_misc.c
+++ b/boot/bootutil/src/bootutil_misc.c
@@ -198,6 +198,20 @@
     return fap->fa_size - off_from_end;
 }
 
+int
+boot_status_entries(const struct flash_area *fap)
+{
+    switch (fap->fa_id) {
+    case FLASH_AREA_IMAGE_0:
+    case FLASH_AREA_IMAGE_1:
+        return BOOT_STATUS_STATE_COUNT * BOOT_STATUS_MAX_ENTRIES;
+    case FLASH_AREA_IMAGE_SCRATCH:
+        return BOOT_STATUS_STATE_COUNT;
+    default:
+        return BOOT_EBADARGS;
+    }
+}
+
 uint32_t
 boot_status_off(const struct flash_area *fap)
 {
diff --git a/boot/bootutil/src/bootutil_priv.h b/boot/bootutil/src/bootutil_priv.h
index 925e7f3..59f655d 100644
--- a/boot/bootutil/src/bootutil_priv.h
+++ b/boot/bootutil/src/bootutil_priv.h
@@ -99,6 +99,7 @@
     uint8_t key_id);
 
 uint32_t boot_slots_trailer_sz(uint8_t min_write_sz);
+int boot_status_entries(const struct flash_area *fap);
 uint32_t boot_status_off(const struct flash_area *fap);
 int boot_read_swap_state(const struct flash_area *fap,
                          struct boot_swap_state *state);
diff --git a/boot/bootutil/src/loader.c b/boot/bootutil/src/loader.c
index 886c099..1b0a1f0 100644
--- a/boot/bootutil/src/loader.c
+++ b/boot/bootutil/src/loader.c
@@ -393,11 +393,7 @@
     int i;
 
     off = boot_status_off(fap);
-
-    max_entries = BOOT_STATUS_STATE_COUNT;
-    if (fap->fa_id != FLASH_AREA_IMAGE_SCRATCH) {
-        max_entries *= BOOT_STATUS_MAX_ENTRIES;
-    }
+    max_entries = boot_status_entries(fap);
 
     found = 0;
     for (i = 0; i < max_entries; i++) {