]> git.proxmox.com Git - ceph.git/blobdiff - ceph/src/crypto/isa-l/isa-l_crypto/include/test.h
update ceph source to reef 18.1.2
[ceph.git] / ceph / src / crypto / isa-l / isa-l_crypto / include / test.h
index 41a21626edc81c060d83898b681559ca25054f87..7b99390b814893895f872cd1a8420d20ed769fb9 100644 (file)
@@ -2,7 +2,7 @@
   Copyright(c) 2011-2016 Intel Corporation All rights reserved.
 
   Redistribution and use in source and binary forms, with or without
-  modification, are permitted provided that the following conditions 
+  modification, are permitted provided that the following conditions
   are met:
     * Redistributions of source code must retain the above copyright
       notice, this list of conditions and the following disclaimer.
@@ -27,7 +27,6 @@
   OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 **********************************************************************/
 
-
 #ifndef _TEST_H
 #define _TEST_H
 
 extern "C" {
 #endif
 
+#include "endian_helper.h"
+
 // Use sys/time.h functions for time
+#if defined (__unix__) || (__APPLE__) || (__MINGW32__)
+# include <sys/time.h>
+#endif
 
-#include <sys/time.h>
+#ifdef _MSC_VER
+# define inline __inline
+# include <time.h>
+# include <Windows.h>
+#endif
+
+#include <stdio.h>
+#include <stdint.h>
 
 struct perf{
        struct timeval tv;
 };
 
 
-inline int perf_start(struct perf *p)
+#if defined (__unix__) || (__APPLE__) || (__MINGW32__)
+static inline int perf_start(struct perf *p)
 {
        return gettimeofday(&(p->tv), 0);
 }
-inline int perf_stop(struct perf *p)
+static inline int perf_stop(struct perf *p)
 {
        return gettimeofday(&(p->tv), 0);
 }
 
-inline void perf_print(struct perf stop, struct perf start, long long dsize)
+static inline void perf_print(struct perf stop, struct perf start, long long dsize)
 {
        long long secs = stop.tv.tv_sec - start.tv.tv_sec;
        long long usecs = secs * 1000000 + stop.tv.tv_usec - start.tv.tv_usec;
@@ -61,7 +73,7 @@ inline void perf_print(struct perf stop, struct perf start, long long dsize)
        printf("runtime = %10lld usecs", usecs);
        if (dsize != 0) {
 #if 1 // not bug in printf for 32-bit
-               printf(", bandwidth %lld MB in %.4f sec = %.2f MB/s\n", dsize/(1024*1024), 
+               printf(", bandwidth %lld MB in %.4f sec = %.2f MB/s\n", dsize/(1024*1024),
                        ((double) usecs)/1000000, ((double) dsize) / (double)usecs);
 #else
                printf(", bandwidth %lld MB ", dsize/(1024*1024));
@@ -72,7 +84,25 @@ inline void perf_print(struct perf stop, struct perf start, long long dsize)
        else
                printf("\n");
 }
+#endif
 
+static inline uint64_t get_filesize(FILE *fp)
+{
+       uint64_t file_size;
+       fpos_t pos, pos_curr;
+
+       fgetpos(fp, &pos_curr);  /* Save current position */
+#if defined(_WIN32) || defined(_WIN64)
+       _fseeki64(fp, 0, SEEK_END);
+#else
+       fseeko(fp, 0, SEEK_END);
+#endif
+       fgetpos(fp, &pos);
+       file_size = *(uint64_t *)&pos;
+       fsetpos(fp, &pos_curr);  /* Restore position */
+
+       return file_size;
+}
 
 #ifdef __cplusplus
 }