+
+ /* We measure fixed_memory_copy_ovhd */
+ /*************************************/
+ PRW( fosa_thread_get_cputime_clock( fosa_thread_self(), &cpu_clock) );
+
+
+ for(i = 0 ; i < NUMBER_OF_TESTS ; i++)
+ {
+ fosa_clock_get_time(FOSA_CLOCK_REALTIME, &initial_time);
+ memcpy(memory_region_destination, memory_region_source, 0);
+ fosa_clock_get_time(FOSA_CLOCK_REALTIME, &final_time);
+
+ decr_timespec(&final_time, &initial_time);
+
+ process_result(fixed_memory_copy_ovhd, final_time);
+ }
+
+ fixed_memory_copy_ovhd->average_interval =
+ timespec_divide_by_int(fixed_memory_copy_ovhd->total_interval,
+ fixed_memory_copy_ovhd->number_of_tries - 1);
+
+ /* We measure memory_copy_per_byte_ovhd */
+ /****************************************/
+ for(i = 0 ; i < NUMBER_OF_TESTS ; i++)
+ {
+ fosa_clock_get_time(cpu_clock, &initial_time); // Start measurement
+ memcpy(memory_region_destination, memory_region_source, NUMBER_OF_BYTES_TO_SIMULATE);
+ fosa_clock_get_time(cpu_clock, &final_time); // End measurement
+
+ decr_timespec(&final_time, &initial_time);
+ final_time = timespec_divide_by_int(final_time, NUMBER_OF_BYTES_TO_SIMULATE / 1024);
+
+ process_result(memory_copy_per_byte_ovhd, final_time);
+ }
+
+ memory_copy_per_byte_ovhd->average_interval =
+ timespec_divide_by_int(memory_copy_per_byte_ovhd->total_interval,
+ memory_copy_per_byte_ovhd->number_of_tries - 1);
+