4 // gives access to the Pentium's (secret) cycle counter
6 // This software was written by Leonard Janke (janke@unixg.ubc.ca)
7 // in 1996-7 and is entered, by him, into the public domain.
9 #if defined(__WATCOMC__)
10 void GetTSC(unsigned long&);
11 #pragma aux GetTSC = 0x0f 0x31 "mov [edi], eax" parm [edi] modify [edx eax];
12 #elif defined(__GNUC__)
14 void GetTSC(unsigned long& tsc
)
16 asm volatile(".byte 15, 49\n\t"
21 #elif defined(_MSC_VER)
23 void GetTSC(unsigned long& tsc
)
35 #include <openssl/rc4.h>
37 void main(int argc
,char *argv
[])
39 unsigned char buffer
[1024];
41 unsigned long s1
,s2
,e1
,e2
;
43 unsigned long data
[2];
51 if (num
== 0) num
=256;
52 if (num
> 1024-16) num
=1024-16;
57 for (i
=0; i
<10; i
++) /**/
59 RC4(&ctx
,numm
,buffer
,buffer
);
61 RC4(&ctx
,numm
,buffer
,buffer
);
64 RC4(&ctx
,num
,buffer
,buffer
);
66 RC4(&ctx
,num
,buffer
,buffer
);
69 printf("RC4 (%d bytes) %d %d (%d) - 8 bytes\n",num
,
70 e1
-s1
,e2
-s2
,(e1
-s1
)-(e2
-s2
));