/*** MACRO DEFINATIONS ***/ #include /* Needed for KERN_INFO */ extern u64 gMemDiagStartAddr; extern u64 gDiagAvailAddr; extern u64 gMemDiagRegionSize; extern u64 gMemDiagTOLMAddr; extern u64 gMemDiagTOHMAddr; extern u64 gMemDiagTSEGAddr; extern u64 gMemDiagTSEGSize; #define MEM_COMPLETE_PROGRESS_UINT 0 #define M_INIT_TEST_BASE(startAddr) do { \ if((startAddr < gMemDiagStartAddr) \ || (startAddr > (gMemDiagStartAddr + gMemDiagRegionSize))) \ startAddr = gMemDiagStartAddr; \ } while (0) #define M_INIT_TEST_REGION(startAddr, sizeTest) do { \ if((sizeTest == 0) || (sizeTest > gMemDiagRegionSize) \ || ((startAddr + sizeTest) > (gMemDiagStartAddr + gMemDiagRegionSize))) \ sizeTest = (gMemDiagStartAddr + gMemDiagRegionSize) - startAddr; \ } while (0) #define M_INIT_TEST_LOOP(loopTest) do { \ if(loopTest == 0) loopTest = MEM_TEST_DEFAULT_LOOP; \ } while (0) #define M_MEM_RESET_PROGRESS(cur, rpt) do { \ cur =0 ; \ rpt = cur; \ } while (0) #define M_SET_REPORT_STRING(item, str) do { \ if(item == MEM_DIAG_ITEM_CODE_MARCHC) { \ str = "Memory MarchC Test"; \ } else if (item == MEM_DIAG_ITEM_CODE_EXTENDPATTERNS) { \ str = "Memory Word Pattern Test"; \ } else if (item == MEM_DIAG_ITEM_CODE_ADMAOPERATION) { \ str = "Memory DMA Operation Test"; \ } else { \ str = "Unknown Memory Test"; \ } \ } while (0) #define M_MEM_REPORT_PROGRESS(str, cur, rpt, incr) do { \ cur+=incr; \ if ((cur > 0) && (cur > rpt)) { \ commPostProgress(str, cur, MEM_TOTAL_PROGRESS_UINT); \ rpt = cur; \ } else if ((incr == 0) && (cur != MEM_TOTAL_PROGRESS_UINT)){ \ commPostProgress(str, MEM_TOTAL_PROGRESS_UINT, MEM_TOTAL_PROGRESS_UINT); \ } \ } while (0)