diff options
Diffstat (limited to 'src/usr/diag/prdf/common/framework/rule/prdrRegister.H')
-rwxr-xr-x | src/usr/diag/prdf/common/framework/rule/prdrRegister.H | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/src/usr/diag/prdf/common/framework/rule/prdrRegister.H b/src/usr/diag/prdf/common/framework/rule/prdrRegister.H index a6da312db..af6d57649 100755 --- a/src/usr/diag/prdf/common/framework/rule/prdrRegister.H +++ b/src/usr/diag/prdf/common/framework/rule/prdrRegister.H @@ -93,6 +93,7 @@ struct CaptureReqStruct PRDR_CAPTURE_CONN = 'C', PRDR_CAPTURE_FUNC = 'f', PRDR_CAPTURE_TYPE = 'T', // Added this for storing a register's type in the capture struct. + PRDR_CAPTURE_NONZERO = 'P' // Added this to specify non zero register. }; void output(FILE * l_file) @@ -114,6 +115,7 @@ struct CaptureReqStruct break; case PRDR_CAPTURE_FUNC: + case PRDR_CAPTURE_NONZERO: loopMax = 0; break; } @@ -123,12 +125,24 @@ struct CaptureReqStruct l_tmp32 = htonl(data[i]); PRDR_FWRITE(&l_tmp32, 4, 1, l_file); } + if (type == PRDR_CAPTURE_FUNC) { if ('"' == (str)[0]) str = str.substr(1, str.size() - 2); PRDR_FWRITE(str.c_str(), str.size() + 1, 1, l_file); } + + if (type == PRDR_CAPTURE_NONZERO ) + { + if ('"' == (str)[0]) + { + // remove double quotes from the string + str = str.substr(1, str.size() - 2); + } + l_tmp32 = htonl(PRDF::Util::hashString(str.c_str())); + fwrite(&l_tmp32, sizeof(l_tmp32), 1, l_file); + } }; }; |