Merge pull request #114 from de-nordic/img-mgmt-curr-slot
img_mgmt: Use IMG_MGMT_BOOT_CURR_SLOT as current running slot ID
diff --git a/cborattr/include/cborattr/cborattr.h b/cborattr/include/cborattr/cborattr.h
index 30e2612..d025e64 100644
--- a/cborattr/include/cborattr/cborattr.h
+++ b/cborattr/include/cborattr/cborattr.h
@@ -48,6 +48,7 @@
CborAttrByteStringType,
CborAttrTextStringType,
CborAttrBooleanType,
+ CborAttrHalfFloatType,
CborAttrFloatType,
CborAttrDoubleType,
CborAttrArrayType,
@@ -85,6 +86,9 @@
struct {
double *store;
} reals;
+ struct{
+ uint16_t *store;
+ } halffloats;
struct {
bool *store;
} booleans;
@@ -99,6 +103,7 @@
union {
long long int *integer;
long long unsigned int *uinteger;
+ uint16_t *halffloat;
double *real;
float *fval;
char *string;
@@ -116,6 +121,7 @@
double real;
bool boolean;
float fval;
+ uint16_t halffloat;
} dflt;
size_t len;
bool nodefault;
@@ -139,6 +145,7 @@
long long unsigned int uinteger;
double real;
float fval;
+ uint16_t halffloat;
const char *string;
bool boolean;
struct {
diff --git a/cborattr/src/cborattr.c b/cborattr/src/cborattr.c
index 31131b7..e5177d6 100644
--- a/cborattr/src/cborattr.c
+++ b/cborattr/src/cborattr.c
@@ -67,6 +67,11 @@
}
break;
#if FLOAT_SUPPORT
+ case CborAttrHalfFloatType:
+ if (ct == CborHalfFloatType) {
+ return 1;
+ }
+ break;
case CborAttrFloatType:
if (ct == CborFloatType) {
return 1;
@@ -120,6 +125,9 @@
targetaddr = (char *)&cursor->addr.uinteger[offset];
break;
#if FLOAT_SUPPORT
+ case CborAttrHalfFloatType:
+ targetaddr = (char *)&cursor->addr.halffloat[offset];
+ break;
case CborAttrFloatType:
targetaddr = (char *)&cursor->addr.fval[offset];
break;
@@ -180,6 +188,9 @@
memcpy(lptr, &cursor->dflt.boolean, sizeof(bool));
break;
#if FLOAT_SUPPORT
+ case CborAttrHalfFloatType:
+ memcpy(lptr, &cursor->dflt.halffloat, sizeof(uint16_t));
+ break;
case CborAttrFloatType:
memcpy(lptr, &cursor->dflt.fval, sizeof(float));
break;
@@ -261,6 +272,9 @@
err |= cbor_value_get_uint64(&cur_value, lptr);
break;
#if FLOAT_SUPPORT
+ case CborAttrHalfFloatType:
+ err |= cbor_value_get_half_float(&cur_value, lptr);
+ break;
case CborAttrFloatType:
err |= cbor_value_get_float(&cur_value, lptr);
break;
@@ -332,6 +346,10 @@
err |= cbor_value_get_uint64(&elem, lptr);
break;
#if FLOAT_SUPPORT
+ case CborAttrHalfFloatType:
+ lptr = &arr->arr.halffloats.store[off];
+ err |= cbor_value_get_half_float(&elem, lptr);
+ break;
case CborAttrFloatType:
case CborAttrDoubleType:
lptr = &arr->arr.reals.store[off];
@@ -491,6 +509,10 @@
break;
#if FLOAT_SUPPORT
+ case CborAttrHalfFloatType:
+ rc = cbor_encode_half_float(enc, &val->halffloat);
+ break;
+
case CborAttrFloatType:
rc = cbor_encode_float(enc, val->fval);
break;
diff --git a/cmd/fs_mgmt/port/zephyr/src/zephyr_fs_mgmt.c b/cmd/fs_mgmt/port/zephyr/src/zephyr_fs_mgmt.c
index f3eb2e4..f63ae2b 100644
--- a/cmd/fs_mgmt/port/zephyr/src/zephyr_fs_mgmt.c
+++ b/cmd/fs_mgmt/port/zephyr/src/zephyr_fs_mgmt.c
@@ -49,6 +49,7 @@
ssize_t bytes_read;
int rc;
+ fs_file_t_init(&file);
rc = fs_open(&file, path, FS_O_READ);
if (rc != 0) {
return MGMT_ERR_ENOENT;
@@ -123,6 +124,7 @@
}
}
+ fs_file_t_init(&file);
rc = fs_open(&file, path, FS_O_CREATE | FS_O_WRITE);
if (rc != 0) {
return MGMT_ERR_EUNKNOWN;