feat: add helpers for names of various enums
Adds helper functions for getting string representations of
`ffa_data_access`, `ffa_instruction_access`, `ffa_memory_type`,
`ffa_memory_cacheability`, `ffa_memory_shareability` and
`ffa_memory_security`. This makes debug logs more readable than printing
the integer value.
Change-Id: Ibbc771dfb871b74cf430c02d1c8fd6e44df21237
Signed-off-by: Karl Meakin <karl.meakin@arm.com>
diff --git a/src/ffa_memory.c b/src/ffa_memory.c
index b9544d5..c3d3884 100644
--- a/src/ffa_memory.c
+++ b/src/ffa_memory.c
@@ -1781,22 +1781,27 @@
memory_type = attributes.type;
if (memory_type != FFA_MEMORY_NORMAL_MEM) {
- dlog_verbose("Invalid memory type %#x, expected %#x.\n",
- memory_type, FFA_MEMORY_NORMAL_MEM);
+ dlog_verbose("Invalid memory type %s, expected %s\n",
+ ffa_memory_type_name(memory_type),
+ ffa_memory_type_name(FFA_MEMORY_NORMAL_MEM));
return ffa_error(FFA_DENIED);
}
cacheability = attributes.cacheability;
if (cacheability != FFA_MEMORY_CACHE_WRITE_BACK) {
- dlog_verbose("Invalid cacheability %#x, expected %#x.\n",
- cacheability, FFA_MEMORY_CACHE_WRITE_BACK);
+ dlog_verbose("Invalid cacheability %s, expected %s.\n",
+ ffa_memory_cacheability_name(cacheability),
+ ffa_memory_cacheability_name(
+ FFA_MEMORY_CACHE_WRITE_BACK));
return ffa_error(FFA_DENIED);
}
shareability = attributes.shareability;
if (shareability != FFA_MEMORY_INNER_SHAREABLE) {
- dlog_verbose("Invalid shareability %#x, expected #%x.\n",
- shareability, FFA_MEMORY_INNER_SHAREABLE);
+ dlog_verbose("Invalid shareability %s, expected %s.\n",
+ ffa_memory_shareability_name(shareability),
+ ffa_memory_shareability_name(
+ FFA_MEMORY_INNER_SHAREABLE));
return ffa_error(FFA_DENIED);
}
@@ -1827,6 +1832,7 @@
enum ffa_data_access data_access;
enum ffa_instruction_access instruction_access;
enum ffa_memory_security security_state;
+ enum ffa_memory_type type;
struct ffa_value ret;
const size_t minimum_first_fragment_length =
memory_region->receivers_offset +
@@ -2007,24 +2013,30 @@
instruction_access == FFA_INSTRUCTION_ACCESS_RESERVED) {
dlog_verbose(
"Reserved value for receiver permissions "
- "%#x.\n",
- permissions);
+ "(data_access = %s, instruction_access = %s)\n",
+ ffa_data_access_name(data_access),
+ ffa_instruction_access_name(
+ instruction_access));
return ffa_error(FFA_INVALID_PARAMETERS);
}
if (instruction_access !=
FFA_INSTRUCTION_ACCESS_NOT_SPECIFIED) {
dlog_verbose(
- "Invalid instruction access permissions %#x "
- "for sending memory.\n",
- permissions);
+ "Invalid instruction access permissions %s "
+ "for sending memory, expected %s.\n",
+ ffa_instruction_access_name(instruction_access),
+ ffa_instruction_access_name(
+ FFA_INSTRUCTION_ACCESS_RESERVED));
return ffa_error(FFA_INVALID_PARAMETERS);
}
if (share_func == FFA_MEM_SHARE_32) {
if (data_access == FFA_DATA_ACCESS_NOT_SPECIFIED) {
dlog_verbose(
- "Invalid data access permissions %#x "
- "for sharing memory.\n",
- permissions);
+ "Invalid data access permissions %s "
+ "for sharing memory, expected %s.\n",
+ ffa_data_access_name(data_access),
+ ffa_data_access_name(
+ FFA_DATA_ACCESS_NOT_SPECIFIED));
return ffa_error(FFA_INVALID_PARAMETERS);
}
/*
@@ -2043,18 +2055,22 @@
if (share_func == FFA_MEM_LEND_32 &&
data_access == FFA_DATA_ACCESS_NOT_SPECIFIED) {
dlog_verbose(
- "Invalid data access permissions %#x for "
- "lending memory.\n",
- permissions);
+ "Invalid data access permissions %s for "
+ "lending memory, expected %s.\n",
+ ffa_data_access_name(data_access),
+ ffa_data_access_name(
+ FFA_DATA_ACCESS_NOT_SPECIFIED));
return ffa_error(FFA_INVALID_PARAMETERS);
}
if (share_func == FFA_MEM_DONATE_32 &&
data_access != FFA_DATA_ACCESS_NOT_SPECIFIED) {
dlog_verbose(
- "Invalid data access permissions %#x for "
- "donating memory.\n",
- permissions);
+ "Invalid data access permissions %s for "
+ "donating memory, expected %s.\n",
+ ffa_data_access_name(data_access),
+ ffa_data_access_name(
+ FFA_DATA_ACCESS_NOT_SPECIFIED));
return ffa_error(FFA_INVALID_PARAMETERS);
}
}
@@ -2063,7 +2079,11 @@
security_state = memory_region->attributes.security;
if (security_state != FFA_MEMORY_SECURITY_UNSPECIFIED) {
dlog_verbose(
- "Invalid security state for memory share operation.\n");
+ "Invalid security state %s for memory share operation, "
+ "expected %s.\n",
+ ffa_memory_security_name(security_state),
+ ffa_memory_security_name(
+ FFA_MEMORY_SECURITY_UNSPECIFIED));
return ffa_error(FFA_INVALID_PARAMETERS);
}
@@ -2071,14 +2091,17 @@
* If a memory donate or lend with single borrower, the memory type
* shall not be specified by the sender.
*/
+ type = memory_region->attributes.type;
if (share_func == FFA_MEM_DONATE_32 ||
(share_func == FFA_MEM_LEND_32 &&
memory_region->receiver_count == 1)) {
- if (memory_region->attributes.type !=
- FFA_MEMORY_NOT_SPECIFIED_MEM) {
+ if (type != FFA_MEMORY_NOT_SPECIFIED_MEM) {
dlog_verbose(
- "Memory type shall not be specified by "
- "sender.\n");
+ "Invalid memory type %s for memory share "
+ "operation, expected %s.\n",
+ ffa_memory_type_name(type),
+ ffa_memory_type_name(
+ FFA_MEMORY_NOT_SPECIFIED_MEM));
return ffa_error(FFA_INVALID_PARAMETERS);
}
} else {