Core: Improve code quality
This patch fixes the following things:
* avoid implicit casting by using matching types or casting
* avoid implicit casting between enum tfm_buffer_share_region_e and
uint32_t types by replacing the enumerated type with uint32_t and its
constants with preprocessor constants
* make explicit that the return value of a function is not used
* remove function return type if not needed
* replace preprocessor if condition by ifdef if only definition is
checked
* replace enumerated types not used by preprocessor constants
Change-Id: Ib718937f89631cae2212de1fc748c48461b683d0
Signed-off-by: Hugues de Valon <hugues.devalon@arm.com>
diff --git a/secure_fw/spm/spm_api.c b/secure_fw/spm/spm_api.c
index e138190..9b3f3f2 100644
--- a/secure_fw/spm/spm_api.c
+++ b/secure_fw/spm/spm_api.c
@@ -134,7 +134,7 @@
part_ptr = &(g_spm_partition_db.partitions[
g_spm_partition_db.partition_count]);
part_ptr->static_data.partition_id = TFM_SP_NON_SECURE_ID;
-#if TFM_PSA_API
+#ifdef TFM_PSA_API
part_ptr->static_data.partition_flags = SPM_PART_FLAG_APP_ROT |
SPM_PART_FLAG_IPC;
part_ptr->static_data.partition_priority = TFM_PRIORITY_LOW;
@@ -206,7 +206,7 @@
desc.sfn = (sfn_t)part->static_data.partition_init;
desc.sp_id = part->static_data.partition_id;
res = tfm_core_sfn_request(&desc);
- if (res == TFM_SUCCESS) {
+ if (res == (int32_t)TFM_SUCCESS) {
tfm_spm_partition_set_state(idx, SPM_PARTITION_STATE_IDLE);
} else {
tfm_spm_partition_err_handler(part, TFM_INIT_FAILURE, res);
diff --git a/secure_fw/spm/spm_api.h b/secure_fw/spm/spm_api.h
index d707346..565e708 100644
--- a/secure_fw/spm/spm_api.h
+++ b/secure_fw/spm/spm_api.h
@@ -28,21 +28,17 @@
SPM_ERR_INVALID_CONFIG,
};
-enum spm_part_state_t {
- SPM_PARTITION_STATE_UNINIT = 0,
- SPM_PARTITION_STATE_IDLE,
- SPM_PARTITION_STATE_RUNNING,
- SPM_PARTITION_STATE_HANDLING_IRQ,
- SPM_PARTITION_STATE_SUSPENDED,
- SPM_PARTITION_STATE_BLOCKED,
- SPM_PARTITION_STATE_CLOSED
-};
+#define SPM_PARTITION_STATE_UNINIT 0
+#define SPM_PARTITION_STATE_IDLE 1
+#define SPM_PARTITION_STATE_RUNNING 2
+#define SPM_PARTITION_STATE_HANDLING_IRQ 3
+#define SPM_PARTITION_STATE_SUSPENDED 4
+#define SPM_PARTITION_STATE_BLOCKED 5
+#define SPM_PARTITION_STATE_CLOSED 6
-enum spm_part_flag_mask_t {
- SPM_PART_FLAG_APP_ROT = 0x01,
- SPM_PART_FLAG_PSA_ROT = 0x02,
- SPM_PART_FLAG_IPC = 0x04
-};
+#define SPM_PART_FLAG_APP_ROT 0x01
+#define SPM_PART_FLAG_PSA_ROT 0x02
+#define SPM_PART_FLAG_IPC 0x04
/**
* \brief Holds the iovec parameters that are passed to a service
@@ -339,7 +335,12 @@
* \return Error code \ref spm_err_t
*
* \note This function doesn't check if partition_idx is valid.
- * \note share has to have the value set of \ref tfm_buffer_share_region_e
+ * \note share has to have one of the buffer share values:
+ * - TFM_BUFFER_SHARE_DISABLE
+ * - TFM_BUFFER_SHARE_NS_CODE
+ * - TFM_BUFFER_SHARE_SCRATCH
+ * - TFM_BUFFER_SHARE_PRIV
+ * - TFM_BUFFER_SHARE_DEFAULT
*/
enum spm_err_t tfm_spm_partition_set_share(uint32_t partition_idx,
uint32_t share);
diff --git a/secure_fw/spm/spm_db.h b/secure_fw/spm/spm_db.h
index 6e6e25c..a3af8be 100644
--- a/secure_fw/spm/spm_db.h
+++ b/secure_fw/spm/spm_db.h
@@ -22,17 +22,13 @@
#define TFM_PARTITION_TYPE_PSA "PSA-ROT"
#ifdef TFM_PSA_API
-enum tfm_partition_priority {
- TFM_PRIORITY_LOW = THRD_PRIOR_LOWEST,
- TFM_PRIORITY_NORMAL = THRD_PRIOR_MEDIUM,
- TFM_PRIORITY_HIGH = THRD_PRIOR_HIGHEST,
-};
+#define TFM_PRIORITY_LOW THRD_PRIOR_LOWEST
+#define TFM_PRIORITY_NORMAL THRD_PRIOR_MEDIUM
+#define TFM_PRIORITY_HIGH THRD_PRIOR_HIGHEST
#else
-enum tfm_partition_priority {
- TFM_PRIORITY_LOW = 0xFF,
- TFM_PRIORITY_NORMAL = 0x7F,
- TFM_PRIORITY_HIGH = 0,
-};
+#define TFM_PRIORITY_LOW 0xFF
+#define TFM_PRIORITY_NORMAL 0x7F
+#define TFM_PRIORITY_HIGH 0
#endif
#define TFM_PRIORITY(LEVEL) TFM_PRIORITY_##LEVEL