aboutsummaryrefslogtreecommitdiff
path: root/libflash
diff options
context:
space:
mode:
authorMichael Neuling <mikey@neuling.org>2015-02-20 11:37:52 +1100
committerStewart Smith <stewart@linux.vnet.ibm.com>2015-02-23 13:35:48 +1100
commit8f22127ec50e6fa946f09af1e610b38555f11edd (patch)
tree33a1ed657a634a464471c59ba67d4df0a4d2a5df /libflash
parent323d0642bebb9b6365df7a98bfc77e9cd6be915f (diff)
downloadskiboot-8f22127ec50e6fa946f09af1e610b38555f11edd.zip
skiboot-8f22127ec50e6fa946f09af1e610b38555f11edd.tar.gz
skiboot-8f22127ec50e6fa946f09af1e610b38555f11edd.tar.bz2
libffs: Add ecc parameter on ffs_part_info()
Add ecc parmenter to ffs_part_info() to indicate if the partition is ECC protected or not. Fix all call sites. Signed-off-by: Michael Neuling <mikey@neuling.org> Signed-off-by: Stewart Smith <stewart@linux.vnet.ibm.com>
Diffstat (limited to 'libflash')
-rw-r--r--libflash/libffs.c5
-rw-r--r--libflash/libffs.h2
2 files changed, 5 insertions, 2 deletions
diff --git a/libflash/libffs.c b/libflash/libffs.c
index dbe618c..cfd5456 100644
--- a/libflash/libffs.c
+++ b/libflash/libffs.c
@@ -215,7 +215,7 @@ int ffs_lookup_part(struct ffs_handle *ffs, const char *name,
int ffs_part_info(struct ffs_handle *ffs, uint32_t part_idx,
char **name, uint32_t *start,
- uint32_t *total_size, uint32_t *act_size)
+ uint32_t *total_size, uint32_t *act_size, bool *ecc)
{
struct ffs_entry *raw_ent;
struct ffs_entry ent;
@@ -240,6 +240,9 @@ int ffs_part_info(struct ffs_handle *ffs, uint32_t part_idx,
*total_size = ent.size * ffs->hdr.block_size;
if (act_size)
*act_size = ent.actual;
+ if (ecc)
+ *ecc = ((ent.user.datainteg & FFS_ENRY_INTEG_ECC) != 0);
+
if (name) {
n = malloc(PART_NAME_MAX + 1);
memset(n, 0, PART_NAME_MAX + 1);
diff --git a/libflash/libffs.h b/libflash/libffs.h
index 5a3ff40..69e44bb 100644
--- a/libflash/libffs.h
+++ b/libflash/libffs.h
@@ -47,7 +47,7 @@ int ffs_lookup_part(struct ffs_handle *ffs, const char *name,
int ffs_part_info(struct ffs_handle *ffs, uint32_t part_idx,
char **name, uint32_t *start,
- uint32_t *total_size, uint32_t *act_size);
+ uint32_t *total_size, uint32_t *act_size, bool *ecc);
int ffs_update_act_size(struct ffs_handle *ffs, uint32_t part_idx,
uint32_t act_size);