@@ -3466,40 +3466,39 @@ typedef enum {
34663466 MEM_ACCESS_RESULT_TYPE_OK ,
34673467 MEM_ACCESS_RESULT_TYPE_DISABLED ,
34683468 MEM_ACCESS_RESULT_TYPE_SKIPPED ,
3469- MEM_ACCESS_RESULT_TYPE_FAILED
3469+ MEM_ACCESS_RESULT_TYPE_FAILED ,
3470+ MEM_ACCESS_RESULT_TYPE_ENUM_SIZE ,
34703471} mem_access_result_type_t ;
34713472
3472- #define LIST_OF_MEM_ACCESS_RESULTS \
3473- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_OK, \
3474- MEM_ACCESS_RESULT_TYPE_OK, "ok") \
3475- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_DISABLED, \
3476- MEM_ACCESS_RESULT_TYPE_DISABLED, "disabled") \
3477- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_ABSTRACT_ACCESS_CMDERR, \
3478- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (abstract access cmderr)") \
3479- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_PROGBUF_NOT_PRESENT, \
3480- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (progbuf not present)") \
3481- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_PROGBUF_INSUFFICIENT, \
3482- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (insufficient progbuf)") \
3483- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_UNSUPPORTED_ACCESS_SIZE, \
3484- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (unsupported access size)") \
3485- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_XLEN_TOO_SHORT, \
3486- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (xlen too short)") \
3487- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_TARGET_NOT_HALTED, \
3488- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (target not halted)") \
3489- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_TOO_LARGE_ADDRESS, \
3490- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (address too large)") \
3491- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_UNSUPPORTED_INCREMENT_SIZE, \
3492- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (increment size not supported)") \
3493- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_TARGET_SELECT_FAILED, \
3494- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (dm target select failed)") \
3495- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_FENCE_EXEC_FAILED, \
3496- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (fence execution failed)") \
3497- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_FAILED, \
3498- MEM_ACCESS_RESULT_TYPE_FAILED, "failed") \
3499- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_FAILED_DM_ACCESS_FAILED, \
3500- MEM_ACCESS_RESULT_TYPE_FAILED, "failed (DM register access failed)") \
3501- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_FAILED_PRIV_MOD_FAILED, \
3502- MEM_ACCESS_RESULT_TYPE_FAILED, "failed (privilege modification failed)") \
3473+ #define LIST_OF_MEM_ACCESS_RESULTS \
3474+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_OK, OK, "ok") \
3475+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_DISABLED, DISABLED, "disabled") \
3476+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED, SKIPPED, "skipped") \
3477+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_ABSTRACT_ACCESS_CMDERR, \
3478+ SKIPPED, "skipped (abstract access cmderr)") \
3479+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_PROGBUF_NOT_PRESENT, \
3480+ SKIPPED, "skipped (progbuf not present)") \
3481+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_PROGBUF_INSUFFICIENT, \
3482+ SKIPPED, "skipped (insufficient progbuf)") \
3483+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_UNSUPPORTED_ACCESS_SIZE, \
3484+ SKIPPED, "skipped (unsupported access size)") \
3485+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_XLEN_TOO_SHORT, \
3486+ SKIPPED, "skipped (xlen too short)") \
3487+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_TARGET_NOT_HALTED, \
3488+ SKIPPED, "skipped (target not halted)") \
3489+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_TOO_LARGE_ADDRESS, \
3490+ SKIPPED, "skipped (address too large)") \
3491+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_UNSUPPORTED_INCREMENT_SIZE, \
3492+ SKIPPED, "skipped (increment size not supported)") \
3493+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_TARGET_SELECT_FAILED, \
3494+ SKIPPED, "skipped (dm target select failed)") \
3495+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_FENCE_EXEC_FAILED, \
3496+ SKIPPED, "skipped (fence execution failed)") \
3497+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_FAILED, FAILED, "failed") \
3498+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_FAILED_DM_ACCESS_FAILED, \
3499+ FAILED, "failed (DM register access failed)") \
3500+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_FAILED_PRIV_MOD_FAILED, \
3501+ FAILED, "failed (privilege modification failed)")
35033502
35043503
35053504#define MEM_ACCESS_RESULT_HANDLER (name , kind , msg ) name,
@@ -3511,14 +3510,13 @@ typedef enum {
35113510bool is_mem_access_failed (mem_access_result_t status )
35123511{
35133512 #define MEM_ACCESS_RESULT_HANDLER (name , kind , msg ) \
3514- case name: return kind == MEM_ACCESS_RESULT_TYPE_FAILED;
3513+ case name: return MEM_ACCESS_RESULT_TYPE_##kind \
3514+ == MEM_ACCESS_RESULT_TYPE_FAILED;
35153515
35163516 switch (status ) {
35173517 LIST_OF_MEM_ACCESS_RESULTS
35183518 }
3519-
35203519 #undef MEM_ACCESS_RESULT_HANDLER
3521-
35223520 LOG_ERROR ("Unknown memory access status: %d" , status );
35233521 assert (false && "Unknown memory access status" );
35243522 return true;
@@ -3527,14 +3525,13 @@ bool is_mem_access_failed(mem_access_result_t status)
35273525bool is_mem_access_skipped (mem_access_result_t status )
35283526{
35293527 #define MEM_ACCESS_RESULT_HANDLER (name , kind , msg ) \
3530- case name: return kind == MEM_ACCESS_RESULT_TYPE_SKIPPED;
3528+ case name: return MEM_ACCESS_RESULT_TYPE_##kind \
3529+ == MEM_ACCESS_RESULT_TYPE_SKIPPED;
35313530
35323531 switch (status ) {
35333532 LIST_OF_MEM_ACCESS_RESULTS
35343533 }
3535-
35363534 #undef MEM_ACCESS_RESULT_HANDLER
3537-
35383535 LOG_ERROR ("Unknown memory access status: %d" , status );
35393536 assert (false && "Unknown memory access status" );
35403537 return true;
0 commit comments