173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * dspbridge/src/api/linux/Timer.c 373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * DSP-BIOS Bridge driver support functions for TI OMAP processors. 573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Copyright (C) 2007 Texas Instruments, Inc. 773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This program is free software; you can redistribute it and/or modify it 973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * under the terms of the GNU Lesser General Public License as published 1073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * by the Free Software Foundation version 2.1 of the License. 1173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 1273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * This program is distributed .as is. WITHOUT ANY WARRANTY of any kind, 1373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * whether express or implied; without even the implied warranty of 1473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 1573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Lesser General Public License for more details. 1673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 1773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 1873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 1973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 2073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== Timer.c ======== 2173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Description: 2273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * Source for API time measurements. For Debugging only 2373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 2473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 2573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! Revision History 2673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! ================= 2773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin *! 01-May-2008 RG: Initial version 2873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * 2973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 3073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 3173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* ----------------------------------- Host OS */ 3273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin#include <perfutils.h> 3373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 3473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 3573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 3673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== StartTimer ======== 3773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 3873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz ZavinINT getTimeStamp(struct timeval *tv) 3973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin{ 4073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin INT Result = 0; 4173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin struct timezone tz; 4273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin Result = gettimeofday(tv, &tz); 4373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin if (Result != 0) 4473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin fprintf(stdout, "FAIL: gettimeofday is failed\n"); 4573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 4673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin return Result; 4773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin} 4873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin/* 4973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin * ======== PrintStatisticsStartTimer ======== 5073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin */ 5173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavinvoid PrintStatistics(struct timeval *tv_beg, struct timeval *tv_end, 5273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin char *ModuleName, INT BufferSize) 5373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin{ 5473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin ULONG totalTimeuSec = 0; 5573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 5673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin if (tv_end->tv_usec < tv_beg->tv_usec) { 5773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin tv_end->tv_usec += 1000000; 5873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin tv_end->tv_sec -= 1; 5973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin } 6073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 6173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin totalTimeuSec = (tv_end->tv_sec - tv_beg->tv_sec) * 1000000 + 6273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin (tv_end->tv_usec - tv_beg->tv_usec); 6373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin fprintf(stdout, "LOG: *********BEGIN STATISTICS************" 6473b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin "********************\n"); 6573b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin fprintf(stdout, "LOG: MODULE: %s \n", ModuleName); 6673b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin if (BufferSize != 0) 6773b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin fprintf(stdout, "LOG: BufferSize: 0x%x \n", BufferSize); 6873b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 6973b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin fprintf(stdout, "LOG: RESULT: %lu\n", totalTimeuSec); 7073b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin fprintf(stdout, "LOG: **********END STATISTICS*************" 7173b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin "******************\n"); 7273b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin 7373b11d6e96b6d49896738a1a1c87b295c1b96be2Rebecca Schultz Zavin} 74