| true | 964 | | trc_store_trace_event( ID, TD, tid, omit ) | | | 965 | | TRC_ID ID; | | | 966 | | TRC_TEVDESC TD; | | | 967 | | int tid; | | | 968 | | int omit; | | | 969 | | { | | | 970 | | TRC_DATADESC DD; | | | 971 | | | | | 972 | | TRC_TEVTASK TT; | | | 973 | | | | | 974 | | char upk_byte[TRC_MAX_UNPACK_ARR_SIZE];
| | | | | ... | | | 989 | | int maxlen; | | | 990 | | int ignore; | | | 991 | | int tusec; | | | 992 | | int tsec; | | | 993 | | int len; | | | 994 | | int num; | | | 995 | | int i; | | | 996 | | | | | 997 | | | | | 998 | | | | | 999 | | if ( !omit && TD->dump ) | | | 1000 | | trc_dump_tevdesc( ID, TD, tid ); | | | 1001 | | | | | 1002 | | | | | 1003 | | | | | 1004 | | TT = (TRC_TEVTASK) NULL;
| | | 1005 | | | | | 1006 | | tsec = tusec = -1; | | | 1007 | | | | | 1008 | | newtask = TRC_FALSE;
| | | 1009 | | endtask = TRC_FALSE;
| | | 1010 | | | | | 1011 | | if ( !strcmp( TD->name, "newtask" ) | | | 1012 | | || !strcmp( TD->name, "spntask" ) ) | | | 1013 | | { | | | 1014 | | newtask = TRC_TRUE;
| | | 1015 | | } | | | 1016 | | | | | 1017 | | else if ( !strcmp( TD->name, "endtask" ) ) | | | 1018 | | endtask = TRC_TRUE;
| | | 1019 | | | | | 1020 | | ignore = TRC_FALSE;
| | | 1021 | | | | | 1022 | | | | | 1023 | | | | | 1024 | | if ( !omit ) | | | 1025 | | ( ID, TD, tid ); | | | 1026 | | | | | 1027 | | | | | 1028 | | | | | 1029 | | DD = TD->ddesc; | | | 1030 | | | | | 1031 | | while ( DD != NULL )
| | | 1032 | | { | | | 1033 | | if ( DD->array == TEV_DATA_ARRAY )
| | | 1034 | | { | | | 1035 | | TRC_PVMCKERR( pvm_upkint( &num, 1, 1 ),
| | | 1036 | | "Array Unpack", return( TRC_FALSE ) ); | | | 1037 | | | | | 1038 | | if ( num > TRC_MAX_UNPACK_ARR_SIZE
| | | 1039 | | && DD->dt != TEV_DATA_STRING )
| | | 1040 | | { | | | 1041 | | if ( !omit ) | | | 1042 | | printf( "Error: Unpack Size %d Too Large\n", num ); | | | 1043 | | | | | | | ... | | | 1063 | | } | | | 1064 | | | | | 1065 | | else | | | 1066 | | { | | | 1067 | | fprintf( ID->trace_out, "[%d] { ", num ); | | | 1068 | | | | | 1069 | | } | | | 1070 | | } | | | 1071 | | } | | | 1072 | | | | | 1073 | | else | | | 1074 | | num = 1; | | | 1075 | | | | | 1076 | | switch ( DD->dt ) | | | 1077 | | { | | | 1078 | | case TEV_DATA_NULL: break;
| | | 1079 | | | | | 1080 | | case TEV_DATA_BYTE:
| | | 1081 | | { | | | 1082 | | TRC_PVMCKERR( pvm_upkbyte( upk_byte, num, 1 ),
| | | 1083 | | "Event BYTE Unpack", return( TRC_FALSE ) ); | | | 1084 | | | | | 1085 | | if ( omit ) | | | 1086 | | break; | | | | | ... | | | 1355 | | { | | | 1356 | | fprintf( ID->trace_out, "%u", upk_short[i] ); | | | 1357 | | | | | 1358 | | if ( i < num - 1 ) | | | 1359 | | fprintf( ID->trace_out, ", " ); | | | 1360 | | } | | | 1361 | | | | | 1362 | | break; | | | 1363 | | } | | | 1364 | | | | | 1365 | | case TEV_DATA_STRING:
| | | 1366 | | { | | | 1367 | | if ( num < 1 ) | | | 1368 | | break; | | | 1369 | | | | | 1370 | | strarr = (char **) malloc( (unsigned) num | | | 1371 | | * sizeof(char *) ); | | | 1372 | | trc_memcheck( strarr, "String Array" ); | | | 1373 | | | | | 1374 | | maxlen = 0; | | | 1375 | | | | | 1376 | | for ( i=0 ; i < num ; i++ ) | | | 1377 | | { | | | 1378 | | TRC_PVMCKERR( pvm_upkstr( upk_str ),
|
| | 1680 | | | | pvm_upkstr(cp) | | | 1681 | | | | char *cp; | | | 1682 | | | | { | | | 1683 | | | | int l; | | | 1684 | | | | int cc; | | | 1685 | | | | long ad; | | | 1686 | | | | TEV_DECLS
| | | 1687 | | | | | | | 1688 | | | | if (TEV_EXCLUSIVE) {
| | | 1689 | | | | if (TEV_DO_TRACE(TEV_UPKSTR,TEV_EVENT_ENTRY)) {
| | | 1690 | | | | ad = (long)cp; | | | 1691 | | | | TEV_PACK_LONG( TEV_DID_PDA, TEV_DATA_SCALAR, &ad, 1, 1 );
| | | 1692 | | | | TEV_FIN;
| | | 1693 | | | | } | | | 1694 | | | | } | | | 1695 | | | | | | | 1696 | | | | if (!pvmrbuf) | | | 1697 | | | | cc = PvmNoBuf;
| | | 1698 | | | | else { | | | 1699 | | | | if (!(cc = (pvmrbuf->m_codef->dec_int) | | | 1700 | | | | (pvmrbuf, (void*)&l, 1, 1, sizeof(int)))) | | | 1701 | | | | cc = (pvmrbuf->m_codef->dec_byte) | | | 1702 | | | | (pvmrbuf, (void*)cp, l, 1, 1); | | | 1703 | | | | } | | | 1704 | | | | | | | 1705 | | | | if (TEV_AMEXCL) {
| | | 1706 | | | | if (TEV_DO_TRACE(TEV_UPKSTR,TEV_EVENT_EXIT)) {
| | | 1707 | | | | TEV_PACK_INT( TEV_DID_CC, TEV_DATA_SCALAR, &cc, 1, 1 );
| | | 1708 | | | | TEV_FIN;
| | | 1709 | | | | } | | | 1710 | | | | TEV_ENDEXCL;
| | | 1711 | | | | } | | | 1712 | | | | return (cc < 0 ? lpvmerr("pvm_upkstr", cc) : PvmOk);
| | upk_str is uninitialized | 1713 | | | | } |
|