@@ -3465,40 +3465,39 @@ typedef enum {
34653465 MEM_ACCESS_RESULT_TYPE_OK ,
34663466 MEM_ACCESS_RESULT_TYPE_DISABLED ,
34673467 MEM_ACCESS_RESULT_TYPE_SKIPPED ,
3468- MEM_ACCESS_RESULT_TYPE_FAILED
3468+ MEM_ACCESS_RESULT_TYPE_FAILED ,
3469+ MEM_ACCESS_RESULT_TYPE_ENUM_SIZE ,
34693470} mem_access_result_type_t ;
34703471
3471- #define LIST_OF_MEM_ACCESS_RESULTS \
3472- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_OK, \
3473- MEM_ACCESS_RESULT_TYPE_OK, "ok") \
3474- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_DISABLED, \
3475- MEM_ACCESS_RESULT_TYPE_DISABLED, "disabled") \
3476- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_ABSTRACT_ACCESS_CMDERR, \
3477- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (abstract access cmderr)") \
3478- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_PROGBUF_NOT_PRESENT, \
3479- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (progbuf not present)") \
3480- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_PROGBUF_INSUFFICIENT, \
3481- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (insufficient progbuf)") \
3482- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_UNSUPPORTED_ACCESS_SIZE, \
3483- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (unsupported access size)") \
3484- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_XLEN_TOO_SHORT, \
3485- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (xlen too short)") \
3486- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_TARGET_NOT_HALTED, \
3487- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (target not halted)") \
3488- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_TOO_LARGE_ADDRESS, \
3489- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (address too large)") \
3490- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_UNSUPPORTED_INCREMENT_SIZE, \
3491- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (increment size not supported)") \
3492- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_TARGET_SELECT_FAILED, \
3493- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (dm target select failed)") \
3494- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_FENCE_EXEC_FAILED, \
3495- MEM_ACCESS_RESULT_TYPE_SKIPPED, "skipped (fence execution failed)") \
3496- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_FAILED, \
3497- MEM_ACCESS_RESULT_TYPE_FAILED, "failed") \
3498- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_FAILED_DM_ACCESS_FAILED, \
3499- MEM_ACCESS_RESULT_TYPE_FAILED, "failed (DM register access failed)") \
3500- MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_FAILED_PRIV_MOD_FAILED, \
3501- MEM_ACCESS_RESULT_TYPE_FAILED, "failed (privilege modification failed)") \
3472+ #define LIST_OF_MEM_ACCESS_RESULTS \
3473+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_OK, OK, "ok") \
3474+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_DISABLED, DISABLED, "disabled") \
3475+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED, SKIPPED, "skipped") \
3476+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_ABSTRACT_ACCESS_CMDERR, \
3477+ SKIPPED, "skipped (abstract access cmderr)") \
3478+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_PROGBUF_NOT_PRESENT, \
3479+ SKIPPED, "skipped (progbuf not present)") \
3480+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_PROGBUF_INSUFFICIENT, \
3481+ SKIPPED, "skipped (insufficient progbuf)") \
3482+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_UNSUPPORTED_ACCESS_SIZE, \
3483+ SKIPPED, "skipped (unsupported access size)") \
3484+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_XLEN_TOO_SHORT, \
3485+ SKIPPED, "skipped (xlen too short)") \
3486+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_TARGET_NOT_HALTED, \
3487+ SKIPPED, "skipped (target not halted)") \
3488+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_TOO_LARGE_ADDRESS, \
3489+ SKIPPED, "skipped (address too large)") \
3490+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_UNSUPPORTED_INCREMENT_SIZE, \
3491+ SKIPPED, "skipped (increment size not supported)") \
3492+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_TARGET_SELECT_FAILED, \
3493+ SKIPPED, "skipped (dm target select failed)") \
3494+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_SKIPPED_FENCE_EXEC_FAILED, \
3495+ SKIPPED, "skipped (fence execution failed)") \
3496+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_FAILED, FAILED, "failed") \
3497+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_FAILED_DM_ACCESS_FAILED, \
3498+ FAILED, "failed (DM register access failed)") \
3499+ MEM_ACCESS_RESULT_HANDLER(MEM_ACCESS_FAILED_PRIV_MOD_FAILED, \
3500+ FAILED, "failed (privilege modification failed)")
35023501
35033502
35043503#define MEM_ACCESS_RESULT_HANDLER (name , kind , msg ) name,
@@ -3510,14 +3509,13 @@ typedef enum {
35103509bool is_mem_access_failed (mem_access_result_t status )
35113510{
35123511 #define MEM_ACCESS_RESULT_HANDLER (name , kind , msg ) \
3513- case name: return kind == MEM_ACCESS_RESULT_TYPE_FAILED;
3512+ case name: return MEM_ACCESS_RESULT_TYPE_##kind \
3513+ == MEM_ACCESS_RESULT_TYPE_FAILED;
35143514
35153515 switch (status ) {
35163516 LIST_OF_MEM_ACCESS_RESULTS
35173517 }
3518-
35193518 #undef MEM_ACCESS_RESULT_HANDLER
3520-
35213519 LOG_ERROR ("Unknown memory access status: %d" , status );
35223520 assert (false && "Unknown memory access status" );
35233521 return true;
@@ -3526,14 +3524,13 @@ bool is_mem_access_failed(mem_access_result_t status)
35263524bool is_mem_access_skipped (mem_access_result_t status )
35273525{
35283526 #define MEM_ACCESS_RESULT_HANDLER (name , kind , msg ) \
3529- case name: return kind == MEM_ACCESS_RESULT_TYPE_SKIPPED;
3527+ case name: return MEM_ACCESS_RESULT_TYPE_##kind \
3528+ == MEM_ACCESS_RESULT_TYPE_SKIPPED;
35303529
35313530 switch (status ) {
35323531 LIST_OF_MEM_ACCESS_RESULTS
35333532 }
3534-
35353533 #undef MEM_ACCESS_RESULT_HANDLER
3536-
35373534 LOG_ERROR ("Unknown memory access status: %d" , status );
35383535 assert (false && "Unknown memory access status" );
35393536 return true;
0 commit comments