]> git.saurik.com Git - apple/security.git/blob - libsecurity_cryptkit/lib/ECDSA_Profile.h
Security-55178.0.1.tar.gz
[apple/security.git] / libsecurity_cryptkit / lib / ECDSA_Profile.h
1 /*
2 File: ECDSA_Profile.h
3
4 Contains: ECDSA Profiling support.
5
6 Written by: Doug Mitchell
7
8 Copyright: Copyright 1998 by Apple Computer, Inc., all rights reserved.
9
10 Change History (most recent first):
11
12 <7> 10/06/98 ap Changed to compile with C++.
13
14 To Do:
15 */
16
17 /* Copyright (c) 1998 Apple Computer, Inc. All rights reserved.
18 *
19 * NOTICE: USE OF THE MATERIALS ACCOMPANYING THIS NOTICE IS SUBJECT
20 * TO THE TERMS OF THE SIGNED "FAST ELLIPTIC ENCRYPTION (FEE) REFERENCE
21 * SOURCE CODE EVALUATION AGREEMENT" BETWEEN APPLE COMPUTER, INC. AND THE
22 * ORIGINAL LICENSEE THAT OBTAINED THESE MATERIALS FROM APPLE COMPUTER,
23 * INC. ANY USE OF THESE MATERIALS NOT PERMITTED BY SUCH AGREEMENT WILL
24 * EXPOSE YOU TO LIABILITY.
25 ***************************************************************************
26 */
27
28 #ifndef _CK_ECDSA_PROFILE_H_
29 #define _CK_ECDSA_PROFILE_H_
30
31 #include "ckconfig.h"
32
33 #if CRYPTKIT_ECDSA_ENABLE
34
35 #include "feeDebug.h"
36
37 #ifdef FEE_DEBUG
38 #define ECDSA_PROFILE 0
39 #else /* FEE_DEBUG */
40 #define ECDSA_PROFILE 0 /* always off */
41 #endif /* FEE_DEBUG */
42
43 #if ECDSA_PROFILE
44
45 #include <kern/time_stamp.h>
46
47 /*
48 * Unlike the profiling macros in feeDebug.h, these are intended to
49 * be used for fragments of code, not entire functions.
50 */
51 #define SIGPROF_START \
52 { \
53 struct tsval _profStartTime; \
54 struct tsval _profEndTime; \
55 kern_timestamp(&_profStartTime);
56
57 /*
58 * This one goes at the end of the routine, just before the (only) return.
59 * There must be a static accumulator (an unsigned int) on a per-routine basis.
60 */
61 #define SIGPROF_END(accum) \
62 kern_timestamp(&_profEndTime); \
63 accum += (_profEndTime.low_val - _profStartTime.low_val); \
64 }
65
66
67 /*
68 * Accumulators.
69 */
70 extern unsigned signStep1;
71 extern unsigned signStep2;
72 extern unsigned signStep34;
73 extern unsigned signStep5;
74 extern unsigned signStep67;
75 extern unsigned signStep8;
76 extern unsigned vfyStep1;
77 extern unsigned vfyStep3;
78 extern unsigned vfyStep4;
79 extern unsigned vfyStep5;
80 extern unsigned vfyStep6;
81 extern unsigned vfyStep7;
82
83 #else /* ECDSA_PROFILE */
84
85 #define SIGPROF_START
86 #define SIGPROF_END(accum)
87
88 #endif /* ECDSA_PROFILE */
89
90 #endif /* CRYPTKIT_ECDSA_ENABLE */
91 #endif /* _CK_ECDSA_PROFILE_H_ */