diff --git a/src/lib/core/decimal.c b/src/lib/core/decimal.c
index 8f7ca3fbef8273154dfe78ecc77f7e2661b32f4b..1f9b5838d38eec416fe25585aeb05fe9e489f2cf 100644
--- a/src/lib/core/decimal.c
+++ b/src/lib/core/decimal.c
@@ -310,14 +310,14 @@ decimal_sqrt(decimal_t *res, const decimal_t *lhs)
 }
 
 uint32_t
-decimal_len(decimal_t *dec)
+decimal_len(const decimal_t *dec)
 {
 	/* 1  + ceil((digits + 1) / 2) */
 	return 2 + dec->digits / 2;
 }
 
 char *
-decimal_pack(char *data, decimal_t *dec)
+decimal_pack(char *data, const decimal_t *dec)
 {
 	uint32_t len = decimal_len(dec);
 	*data++ = decimal_scale(dec);
diff --git a/src/lib/core/decimal.h b/src/lib/core/decimal.h
index 0c7b16098de44ea19eec6ec0d9e2e3980535f74a..1d0f2582ec2b9d989a6fe0baef6e0768857f6218 100644
--- a/src/lib/core/decimal.h
+++ b/src/lib/core/decimal.h
@@ -173,7 +173,7 @@ decimal_sqrt(decimal_t *res, const decimal_t *lhs);
 
 /** @return The length in bytes decimal packed representation will take. */
 uint32_t
-decimal_len(decimal_t *dec);
+decimal_len(const decimal_t *dec);
 
 /**
  * Convert a decimal \a dec to its packed representation.
@@ -181,7 +181,7 @@ decimal_len(decimal_t *dec);
  * @return data + decimal_len(dec);
  */
 char *
-decimal_pack(char *data, decimal_t *dec);
+decimal_pack(char *data, const decimal_t *dec);
 
 /**
  * Using a packed representation of size \a len pointed to by