Example #1
0
int handleCounter( void* fcb, uint64_t time,
		uint32_t process, uint32_t counter_token, uint64_t value ) {


	return ( 0 == OTF_Writer_writeCounter( ((fcbT*) fcb)->writer, time, 
		process, counter_token, value ) ) ? OTF_RETURN_ABORT : OTF_RETURN_OK;
}
Example #2
0
int handleSamp( void *fcb, double time, unsigned int cpuorcpugrpid,
		int samplearraydim, const int *sampletokenarray,
		const int *samplevaluetypearray, const void *samplevaluearray ) {


	int i;
	uint64_t tmp;
	uint32_t tmp2;

	/* group means first bit equals 1 */
	if ( (cpuorcpugrpid&0x80000000) == 0) {

		if ( cpuorcpugrpid == (uint32_t) -1 ) {

			fprintf( stderr, "cpuid is not supposed to be -1" );
		}

		++cpuorcpugrpid;
	} else {
	
		/* map it */
		tmp2= searchHash( ((fcbT*)fcb)->pghash, (uint32_t) cpuorcpugrpid );
		if( 0 != tmp2 ) {
			cpuorcpugrpid= tmp2;
		}
	
	}

	for( i = 0; i < samplearraydim; ++i ) {

		if ( samplevaluetypearray[i] == VTF3_VALUETYPE_FLOAT ) {
		
			tmp = (uint64_t) ( ((double*) samplevaluearray)[i] + 0.5f );
		} else {
		
			tmp = ( (uint64_t*) samplevaluearray )[i];
		}
		
		OTF_Writer_writeCounter( ((fcbT*)fcb)->writer, (uint64_t) time,
			cpuorcpugrpid, sampletokenarray[i] + 1, tmp );
	}

	return 0;
}