X-Git-Url: https://git.saurik.com/apple/security.git/blobdiff_plain/b04fe171f0375ecd5d8a24747ca1dff85720a0ca..6b200bc335dc93c5516ccb52f14bd896d8c7fad7:/SecurityTests/cspxutils/utilLib/cputime.h diff --git a/SecurityTests/cspxutils/utilLib/cputime.h b/SecurityTests/cspxutils/utilLib/cputime.h deleted file mode 100644 index 5bc08c46..00000000 --- a/SecurityTests/cspxutils/utilLib/cputime.h +++ /dev/null @@ -1,89 +0,0 @@ -/* - * Copyright (c) 2003 Apple Computer, Inc. All Rights Reserved. - * - * The contents of this file constitute Original Code as defined in and are - * subject to the Apple Public Source License Version 1.2 (the 'License'). - * You may not use this file except in compliance with the License. Please - * obtain a copy of the License at http://www.apple.com/publicsource and - * read it before using this file. - * - * This Original Code and all software distributed under the License are - * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER - * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, - * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT. - * Please see the License for the specific language governing rights and - * limitations under the License. - */ - -/* - * cputime.h - high resolution timing module - * - * This module uses a highly machine-dependent mechanism to get timestamps - * directly from CPU registers, without the overhead of a system call. The - * timestamps are exported as type CPUTime and you should not concern yourself - * with exactly what that is. - * - * We provide routines to convert a difference between two CPUTimes as a double, - * in seconds, milliseconds, and microseconds. Th - * - * The cost (time) of getting a timestamp (via CPUTimeRead()) generally takes - * two or fewer times the resolution period, i.e., less than 80 ns on a 100 MHz - * bus machine, often 40 ns. - * - * The general usage of this module is as follows: - * - * { - * set up test scenario; - * CPUTime startTime = CPUTimeRead(); - * ...critical timed code here... - * CPUTime endTime = CPUTimeRead(); - * double elapsedMilliseconds = CPUTimeDeltaMs(startTime, endTime); - * } - * - * It's crucial to place the CPUTimeDelta*() call OUTSIDE of the critical timed - * area. It's really cheap to snag the timestamps, but it's not at all cheap - * to convert the difference between two timestamps to a double. - */ - -#ifndef _CPUTIME_H_ -#define _CPUTIME_H_ - -#ifdef __cplusplus -extern "C" { -#endif - -#include - - -typedef uint64_t CPUTime; - -/* - * Obtain machine-dependent, high resolution, cheap-to-read timestamp. - */ -#define CPUTimeRead() mach_absolute_time() - -/* - * Convert difference between two CPUTimes into various units. - * Implemented as separate functions to preserve as much precision as possible - * before required machine-dependent "divide by clock frequency". - */ -extern double CPUTimeDeltaSec(CPUTime from, CPUTime to); // seconds -extern double CPUTimeDeltaMs(CPUTime from, CPUTime to); // milliseconds -extern double CPUTimeDeltaUs(CPUTime from, CPUTime to); // microseconds - -/* - * Calculate the average of an array of doubles. The lowest and highest values - * are discarded if there are more than two samples. Typically used to get an - * average of a set of values returned from CPUTimeDelta*(). - */ -double CPUTimeAvg( - const double *array, - unsigned arraySize); - -#ifdef __cplusplus -} -#endif - -#endif /* _CPUTIME_H_ */ -