X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FRtsFlags.c;h=439dfd78977a6b7aa621f4a13babd2ade429efb0;hb=8db56c8606e6c0e89a87d34c3f67124f1e8b988e;hp=69064ea743a7b99f57fa24e8ec6147e891b23a81;hpb=d5bd3e829c47c03157cf41cad581d2df44dfd81b;p=ghc-hetmet.git diff --git a/rts/RtsFlags.c b/rts/RtsFlags.c index 69064ea..439dfd7 100644 --- a/rts/RtsFlags.c +++ b/rts/RtsFlags.c @@ -321,6 +321,7 @@ void initRtsFlagsDefaults(void) #ifdef USE_PAPI /* By default no special measurements taken */ RtsFlags.PapiFlags.eventType = 0; + RtsFlags.PapiFlags.numUserEvents = 0; #endif } @@ -721,6 +722,14 @@ error = rtsTrue; case 'e': RtsFlags.PapiFlags.eventType = PAPI_FLAG_CB_EVENTS; break; + case '+': + if (RtsFlags.PapiFlags.numUserEvents >= MAX_PAPI_USER_EVENTS) { + errorBelch("maximum number of PAPI events reached"); + stg_exit(EXIT_FAILURE); + } + RtsFlags.PapiFlags.eventType = PAPI_USER_EVENTS; + RtsFlags.PapiFlags.userEvents[RtsFlags.PapiFlags.numUserEvents++] = rts_argv[arg] + 3; + break; default: bad_option( rts_argv[arg] ); }