| Absolute File Name: | /home/opencoverage/opencoverage/guest-scripts/openssl/src/crypto/rand/rand_unix.c |
| Switch to Source code | Preprocessed file |
| Line | Source | Count | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 1 | - | |||||||||||||
| 2 | - | |||||||||||||
| 3 | - | |||||||||||||
| 4 | - | |||||||||||||
| 5 | - | |||||||||||||
| 6 | - | |||||||||||||
| 7 | - | |||||||||||||
| 8 | static uint64_t get_time_stamp(void); | - | ||||||||||||
| 9 | static uint64_t get_timer_bits(void); | - | ||||||||||||
| 10 | static ssize_t syscall_random(void *buf, size_t buflen); | - | ||||||||||||
| 11 | static ssize_t syscall_random(void *buf, size_t buflen) | - | ||||||||||||
| 12 | { | - | ||||||||||||
| 13 | extern int getentropy(void *buffer, size_t length) __attribute__((weak)); | - | ||||||||||||
| 14 | - | |||||||||||||
| 15 | if (getentropy !=
| 0-780 | ||||||||||||
| 16 | ((void *)0)
| 0-780 | ||||||||||||
| 17 | ) | - | ||||||||||||
| 18 | return never executed: getentropy(buf, buflen) == 0return getentropy(buf, buflen) == 0 ? (ssize_t)buflen : -1;
never executed: return getentropy(buf, buflen) == 0 ? (ssize_t)buflen : -1; | 0 | ||||||||||||
| 19 | return executed 780 times by 2 tests: syscall(return syscall( 318 , buf, buflen, 0);Executed by:
executed 780 times by 2 tests: return syscall( 318 , buf, buflen, 0);Executed by:
| 780 | ||||||||||||
| 20 | 318 executed 780 times by 2 tests: return syscall( 318 , buf, buflen, 0);Executed by:
| 780 | ||||||||||||
| 21 | , buf, buflen, 0); executed 780 times by 2 tests: return syscall( 318 , buf, buflen, 0);Executed by:
| 780 | ||||||||||||
| 22 | - | |||||||||||||
| 23 | - | |||||||||||||
| 24 | - | |||||||||||||
| 25 | - | |||||||||||||
| 26 | - | |||||||||||||
| 27 | - | |||||||||||||
| 28 | } | - | ||||||||||||
| 29 | - | |||||||||||||
| 30 | - | |||||||||||||
| 31 | static const char *random_device_paths[] = { "/dev/urandom","/dev/random","/dev/srandom" }; | - | ||||||||||||
| 32 | static struct random_device { | - | ||||||||||||
| 33 | int fd; | - | ||||||||||||
| 34 | dev_t dev; | - | ||||||||||||
| 35 | ino_t ino; | - | ||||||||||||
| 36 | mode_t mode; | - | ||||||||||||
| 37 | dev_t rdev; | - | ||||||||||||
| 38 | } random_devices[(sizeof(random_device_paths)/sizeof((random_device_paths)[0]))]; | - | ||||||||||||
| 39 | static int keep_random_devices_open = 1; | - | ||||||||||||
| 40 | static int check_random_device(struct random_device * rd) | - | ||||||||||||
| 41 | { | - | ||||||||||||
| 42 | struct stat st; | - | ||||||||||||
| 43 | - | |||||||||||||
| 44 | return executed 9678 times by 12 tests: rd->fd != -1return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;Executed by:
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;Executed by:
| 4600-9678 | ||||||||||||
| 45 | && fstat(rd->fd, &st) != -1
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;Executed by:
| 0-9678 | ||||||||||||
| 46 | && rd->dev == st.st_dev
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;Executed by:
| 2300-9678 | ||||||||||||
| 47 | && rd->ino == st.st_ino
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;Executed by:
| 0-9678 | ||||||||||||
| 48 | && ((
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;Executed by:
| 0-9678 | ||||||||||||
| 49 | (0400|0200|0100)
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;Executed by:
| 0-9678 | ||||||||||||
| 50 | |
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;Executed by:
| 0-9678 | ||||||||||||
| 51 | ((0400|0200|0100) >> 3)
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;Executed by:
| 0-9678 | ||||||||||||
| 52 | |
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;Executed by:
| 0-9678 | ||||||||||||
| 53 | (((0400|0200|0100) >> 3) >> 3)
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;Executed by:
| 0-9678 | ||||||||||||
| 54 | )) == 0
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;Executed by:
| 0-9678 | ||||||||||||
| 55 | && rd->rdev == st.st_rdev
executed 9678 times by 12 tests: return rd->fd != -1 && fstat(rd->fd, &st) != -1 && rd->dev == st.st_dev && rd->ino == st.st_ino && ((rd->mode ^ st.st_mode) & ~( (0400|0200|0100) | ((0400|0200|0100) >> 3) | (((0400|0200|0100) >> 3) >> 3) )) == 0 && rd->rdev == st.st_rdev;Executed by:
| 0-9678 | ||||||||||||
| 56 | } | - | ||||||||||||
| 57 | - | |||||||||||||
| 58 | - | |||||||||||||
| 59 | - | |||||||||||||
| 60 | - | |||||||||||||
| 61 | static int get_random_device(size_t n) | - | ||||||||||||
| 62 | { | - | ||||||||||||
| 63 | struct stat st; | - | ||||||||||||
| 64 | struct random_device * rd = &random_devices[n]; | - | ||||||||||||
| 65 | - | |||||||||||||
| 66 | - | |||||||||||||
| 67 | if (check_random_device(rd)
| 0-3450 | ||||||||||||
| 68 | return never executed: rd->fd;return rd->fd;never executed: return rd->fd; | 0 | ||||||||||||
| 69 | - | |||||||||||||
| 70 | - | |||||||||||||
| 71 | if ((
| 1150-2300 | ||||||||||||
| 72 | 00
| 1150-2300 | ||||||||||||
| 73 | )) == -1
| 1150-2300 | ||||||||||||
| 74 | return executed 1150 times by 2 tests: rd->fd;return rd->fd;Executed by:
executed 1150 times by 2 tests: return rd->fd;Executed by:
| 1150 | ||||||||||||
| 75 | - | |||||||||||||
| 76 | - | |||||||||||||
| 77 | if (fstat(rd->fd, &st) != -1
| 0-2300 | ||||||||||||
| 78 | rd->dev = st.st_dev; | - | ||||||||||||
| 79 | rd->ino = st.st_ino; | - | ||||||||||||
| 80 | rd->mode = st.st_mode; | - | ||||||||||||
| 81 | rd->rdev = st.st_rdev; | - | ||||||||||||
| 82 | } executed 2300 times by 2 tests: else {end of blockExecuted by:
| 2300 | ||||||||||||
| 83 | close(rd->fd); | - | ||||||||||||
| 84 | rd->fd = -1; | - | ||||||||||||
| 85 | } never executed: end of block | 0 | ||||||||||||
| 86 | - | |||||||||||||
| 87 | return executed 2300 times by 2 tests: rd->fd;return rd->fd;Executed by:
executed 2300 times by 2 tests: return rd->fd;Executed by:
| 2300 | ||||||||||||
| 88 | } | - | ||||||||||||
| 89 | - | |||||||||||||
| 90 | - | |||||||||||||
| 91 | - | |||||||||||||
| 92 | - | |||||||||||||
| 93 | static void close_random_device(size_t n) | - | ||||||||||||
| 94 | { | - | ||||||||||||
| 95 | struct random_device * rd = &random_devices[n]; | - | ||||||||||||
| 96 | - | |||||||||||||
| 97 | if (check_random_device(rd)
| 2300-3928 | ||||||||||||
| 98 | close(rd->fd); executed 2300 times by 2 tests: close(rd->fd);Executed by:
| 2300 | ||||||||||||
| 99 | rd->fd = -1; | - | ||||||||||||
| 100 | } executed 6228 times by 12 tests: end of blockExecuted by:
| 6228 | ||||||||||||
| 101 | - | |||||||||||||
| 102 | static void open_random_devices(void) | - | ||||||||||||
| 103 | { | - | ||||||||||||
| 104 | size_t i; | - | ||||||||||||
| 105 | - | |||||||||||||
| 106 | for (i = 0; i < (sizeof(random_devices)/sizeof((random_devices)[0]))
| 1150-3450 | ||||||||||||
| 107 | ( executed 3450 times by 2 tests: void)get_random_device(i);(void)get_random_device(i);Executed by:
executed 3450 times by 2 tests: (void)get_random_device(i);Executed by:
| 3450 | ||||||||||||
| 108 | } executed 1150 times by 2 tests: end of blockExecuted by:
| 1150 | ||||||||||||
| 109 | - | |||||||||||||
| 110 | int rand_pool_init(void) | - | ||||||||||||
| 111 | { | - | ||||||||||||
| 112 | size_t i; | - | ||||||||||||
| 113 | - | |||||||||||||
| 114 | for (i = 0; i < (sizeof(random_devices)/sizeof((random_devices)[0]))
| 1150-3450 | ||||||||||||
| 115 | random_devices[i].fd = -1; executed 3450 times by 2 tests: random_devices[i].fd = -1;Executed by:
| 3450 | ||||||||||||
| 116 | open_random_devices(); | - | ||||||||||||
| 117 | return executed 1150 times by 2 tests: 1;return 1;Executed by:
executed 1150 times by 2 tests: return 1;Executed by:
| 1150 | ||||||||||||
| 118 | } | - | ||||||||||||
| 119 | - | |||||||||||||
| 120 | void rand_pool_cleanup(void) | - | ||||||||||||
| 121 | { | - | ||||||||||||
| 122 | size_t i; | - | ||||||||||||
| 123 | - | |||||||||||||
| 124 | for (i = 0; i < (sizeof(random_devices)/sizeof((random_devices)[0]))
| 2076-6228 | ||||||||||||
| 125 | close_random_device(i); executed 6228 times by 12 tests: close_random_device(i);Executed by:
| 6228 | ||||||||||||
| 126 | } executed 2076 times by 12 tests: end of blockExecuted by:
| 2076 | ||||||||||||
| 127 | - | |||||||||||||
| 128 | void rand_pool_keep_random_devices_open(int keep) | - | ||||||||||||
| 129 | { | - | ||||||||||||
| 130 | if (keep
| 0 | ||||||||||||
| 131 | open_random_devices(); never executed: open_random_devices(); | 0 | ||||||||||||
| 132 | else | - | ||||||||||||
| 133 | rand_pool_cleanup(); never executed: rand_pool_cleanup(); | 0 | ||||||||||||
| 134 | keep_random_devices_open = keep; | - | ||||||||||||
| 135 | } never executed: end of block | 0 | ||||||||||||
| 136 | size_t rand_pool_acquire_entropy(RAND_POOL *pool) | - | ||||||||||||
| 137 | { | - | ||||||||||||
| 138 | - | |||||||||||||
| 139 | - | |||||||||||||
| 140 | - | |||||||||||||
| 141 | size_t bytes_needed; | - | ||||||||||||
| 142 | size_t entropy_available = 0; | - | ||||||||||||
| 143 | unsigned char *buffer; | - | ||||||||||||
| 144 | - | |||||||||||||
| 145 | - | |||||||||||||
| 146 | { | - | ||||||||||||
| 147 | ssize_t bytes; | - | ||||||||||||
| 148 | - | |||||||||||||
| 149 | int attempts = 3; | - | ||||||||||||
| 150 | - | |||||||||||||
| 151 | bytes_needed = rand_pool_bytes_needed(pool, 1 ); | - | ||||||||||||
| 152 | while (bytes_needed != 0
| 0-799 | ||||||||||||
| 153 | buffer = rand_pool_add_begin(pool, bytes_needed); | - | ||||||||||||
| 154 | bytes = syscall_random(buffer, bytes_needed); | - | ||||||||||||
| 155 | if (bytes > 0
| 0-780 | ||||||||||||
| 156 | rand_pool_add_end(pool, bytes, 8 * bytes); | - | ||||||||||||
| 157 | bytes_needed -= bytes; | - | ||||||||||||
| 158 | attempts = 3; | - | ||||||||||||
| 159 | } executed 780 times by 2 tests: else if (bytes < 0end of blockExecuted by:
| 0-780 | ||||||||||||
| 160 | (*
| 0 | ||||||||||||
| 161 | !=
| 0 | ||||||||||||
| 162 | 4
| 0 | ||||||||||||
| 163 | ) { | - | ||||||||||||
| 164 | break; never executed: break; | 0 | ||||||||||||
| 165 | } | - | ||||||||||||
| 166 | } executed 780 times by 2 tests: end of blockExecuted by:
| 780 | ||||||||||||
| 167 | } | - | ||||||||||||
| 168 | entropy_available = rand_pool_entropy_available(pool); | - | ||||||||||||
| 169 | if (entropy_available > 0
| 0-799 | ||||||||||||
| 170 | return executed 799 times by 2 tests: entropy_available;return entropy_available;Executed by:
executed 799 times by 2 tests: return entropy_available;Executed by:
| 799 | ||||||||||||
| 171 | bytes_needed = rand_pool_bytes_needed(pool, 1 ); | - | ||||||||||||
| 172 | { | - | ||||||||||||
| 173 | size_t i; | - | ||||||||||||
| 174 | - | |||||||||||||
| 175 | for (i = 0; bytes_needed > 0
| 0 | ||||||||||||
| 176 | ssize_t bytes = 0; | - | ||||||||||||
| 177 | - | |||||||||||||
| 178 | int attempts = 3; | - | ||||||||||||
| 179 | const int fd = get_random_device(i); | - | ||||||||||||
| 180 | - | |||||||||||||
| 181 | if (fd == -1
| 0 | ||||||||||||
| 182 | continue; never executed: continue; | 0 | ||||||||||||
| 183 | - | |||||||||||||
| 184 | while (bytes_needed != 0
| 0 | ||||||||||||
| 185 | buffer = rand_pool_add_begin(pool, bytes_needed); | - | ||||||||||||
| 186 | bytes = read(fd, buffer, bytes_needed); | - | ||||||||||||
| 187 | - | |||||||||||||
| 188 | if (bytes > 0
| 0 | ||||||||||||
| 189 | rand_pool_add_end(pool, bytes, 8 * bytes); | - | ||||||||||||
| 190 | bytes_needed -= bytes; | - | ||||||||||||
| 191 | attempts = 3; | - | ||||||||||||
| 192 | } never executed: else if (bytes < 0end of block
| 0 | ||||||||||||
| 193 | (*
| 0 | ||||||||||||
| 194 | !=
| 0 | ||||||||||||
| 195 | 4
| 0 | ||||||||||||
| 196 | ) { | - | ||||||||||||
| 197 | break; never executed: break; | 0 | ||||||||||||
| 198 | } | - | ||||||||||||
| 199 | } never executed: end of block | 0 | ||||||||||||
| 200 | if (bytes < 0
| 0 | ||||||||||||
| 201 | close_random_device(i); never executed: close_random_device(i); | 0 | ||||||||||||
| 202 | - | |||||||||||||
| 203 | bytes_needed = rand_pool_bytes_needed(pool, 1 ); | - | ||||||||||||
| 204 | } never executed: end of block | 0 | ||||||||||||
| 205 | entropy_available = rand_pool_entropy_available(pool); | - | ||||||||||||
| 206 | if (entropy_available > 0
| 0 | ||||||||||||
| 207 | return never executed: entropy_available;return entropy_available;never executed: return entropy_available; | 0 | ||||||||||||
| 208 | } | - | ||||||||||||
| 209 | return never executed: rand_pool_entropy_available(pool);return rand_pool_entropy_available(pool);never executed: return rand_pool_entropy_available(pool); | 0 | ||||||||||||
| 210 | - | |||||||||||||
| 211 | } | - | ||||||||||||
| 212 | - | |||||||||||||
| 213 | - | |||||||||||||
| 214 | - | |||||||||||||
| 215 | - | |||||||||||||
| 216 | int rand_pool_add_nonce_data(RAND_POOL *pool) | - | ||||||||||||
| 217 | { | - | ||||||||||||
| 218 | struct { | - | ||||||||||||
| 219 | pid_t pid; | - | ||||||||||||
| 220 | CRYPTO_THREAD_ID tid; | - | ||||||||||||
| 221 | uint64_t time; | - | ||||||||||||
| 222 | } data = { 0 }; | - | ||||||||||||
| 223 | - | |||||||||||||
| 224 | - | |||||||||||||
| 225 | - | |||||||||||||
| 226 | - | |||||||||||||
| 227 | - | |||||||||||||
| 228 | - | |||||||||||||
| 229 | data.pid = getpid(); | - | ||||||||||||
| 230 | data.tid = CRYPTO_THREAD_get_current_id(); | - | ||||||||||||
| 231 | data.time = get_time_stamp(); | - | ||||||||||||
| 232 | - | |||||||||||||
| 233 | return executed 781 times by 2 tests: rand_pool_add(pool, (unsigned char *)&data, sizeof(data), 0);return rand_pool_add(pool, (unsigned char *)&data, sizeof(data), 0);Executed by:
executed 781 times by 2 tests: return rand_pool_add(pool, (unsigned char *)&data, sizeof(data), 0);Executed by:
| 781 | ||||||||||||
| 234 | } | - | ||||||||||||
| 235 | - | |||||||||||||
| 236 | int rand_pool_add_additional_data(RAND_POOL *pool) | - | ||||||||||||
| 237 | { | - | ||||||||||||
| 238 | struct { | - | ||||||||||||
| 239 | CRYPTO_THREAD_ID tid; | - | ||||||||||||
| 240 | uint64_t time; | - | ||||||||||||
| 241 | } data = { 0 }; | - | ||||||||||||
| 242 | - | |||||||||||||
| 243 | - | |||||||||||||
| 244 | - | |||||||||||||
| 245 | - | |||||||||||||
| 246 | - | |||||||||||||
| 247 | - | |||||||||||||
| 248 | data.tid = CRYPTO_THREAD_get_current_id(); | - | ||||||||||||
| 249 | data.time = get_timer_bits(); | - | ||||||||||||
| 250 | - | |||||||||||||
| 251 | return executed 1046919 times by 2 tests: rand_pool_add(pool, (unsigned char *)&data, sizeof(data), 0);return rand_pool_add(pool, (unsigned char *)&data, sizeof(data), 0);Executed by:
executed 1046919 times by 2 tests: return rand_pool_add(pool, (unsigned char *)&data, sizeof(data), 0);Executed by:
| 1046919 | ||||||||||||
| 252 | } | - | ||||||||||||
| 253 | static uint64_t get_time_stamp(void) | - | ||||||||||||
| 254 | { | - | ||||||||||||
| 255 | - | |||||||||||||
| 256 | { | - | ||||||||||||
| 257 | struct timespec ts; | - | ||||||||||||
| 258 | - | |||||||||||||
| 259 | if (clock_gettime(
| 0-781 | ||||||||||||
| 260 | 0
| 0-781 | ||||||||||||
| 261 | , &ts) == 0
| 0-781 | ||||||||||||
| 262 | return executed 781 times by 2 tests: ((((uint64_t)(ts.tv_sec)) << 32) + (ts.tv_nsec));return ((((uint64_t)(ts.tv_sec)) << 32) + (ts.tv_nsec));Executed by:
executed 781 times by 2 tests: return ((((uint64_t)(ts.tv_sec)) << 32) + (ts.tv_nsec));Executed by:
| 781 | ||||||||||||
| 263 | } | - | ||||||||||||
| 264 | - | |||||||||||||
| 265 | - | |||||||||||||
| 266 | - | |||||||||||||
| 267 | { | - | ||||||||||||
| 268 | struct timeval tv; | - | ||||||||||||
| 269 | - | |||||||||||||
| 270 | if (gettimeofday(&tv,
| 0 | ||||||||||||
| 271 | ((void *)0)
| 0 | ||||||||||||
| 272 | ) == 0
| 0 | ||||||||||||
| 273 | return never executed: ((((uint64_t)(tv.tv_sec)) << 32) + (tv.tv_usec));return ((((uint64_t)(tv.tv_sec)) << 32) + (tv.tv_usec));never executed: return ((((uint64_t)(tv.tv_sec)) << 32) + (tv.tv_usec)); | 0 | ||||||||||||
| 274 | } | - | ||||||||||||
| 275 | - | |||||||||||||
| 276 | return never executed: time(return time( ((void *)0) );never executed: return time( ((void *)0) ); | 0 | ||||||||||||
| 277 | ((void *)0) never executed: return time( ((void *)0) ); | 0 | ||||||||||||
| 278 | ); never executed: return time( ((void *)0) ); | 0 | ||||||||||||
| 279 | } | - | ||||||||||||
| 280 | static uint64_t get_timer_bits(void) | - | ||||||||||||
| 281 | { | - | ||||||||||||
| 282 | uint64_t res = OPENSSL_rdtsc(); | - | ||||||||||||
| 283 | - | |||||||||||||
| 284 | if (res != 0
| 0-1048187 | ||||||||||||
| 285 | return executed 1047722 times by 2 tests: res;return res;Executed by:
executed 1047722 times by 2 tests: return res;Executed by:
| 1047722 | ||||||||||||
| 286 | { | - | ||||||||||||
| 287 | struct timespec ts; | - | ||||||||||||
| 288 | if (clock_gettime(
| 0 | ||||||||||||
| 289 | 7
| 0 | ||||||||||||
| 290 | , &ts) == 0
| 0 | ||||||||||||
| 291 | return never executed: ((((uint64_t)(ts.tv_sec)) << 32) + (ts.tv_nsec));return ((((uint64_t)(ts.tv_sec)) << 32) + (ts.tv_nsec));never executed: return ((((uint64_t)(ts.tv_sec)) << 32) + (ts.tv_nsec)); | 0 | ||||||||||||
| 292 | } | - | ||||||||||||
| 293 | - | |||||||||||||
| 294 | - | |||||||||||||
| 295 | - | |||||||||||||
| 296 | { | - | ||||||||||||
| 297 | struct timeval tv; | - | ||||||||||||
| 298 | - | |||||||||||||
| 299 | if (gettimeofday(&tv,
| 0 | ||||||||||||
| 300 | ((void *)0)
| 0 | ||||||||||||
| 301 | ) == 0
| 0 | ||||||||||||
| 302 | return never executed: ((((uint64_t)(tv.tv_sec)) << 32) + (tv.tv_usec));return ((((uint64_t)(tv.tv_sec)) << 32) + (tv.tv_usec));never executed: return ((((uint64_t)(tv.tv_sec)) << 32) + (tv.tv_usec)); | 0 | ||||||||||||
| 303 | } | - | ||||||||||||
| 304 | - | |||||||||||||
| 305 | return never executed: time(return time( ((void *)0) );never executed: return time( ((void *)0) ); | 0 | ||||||||||||
| 306 | ((void *)0) never executed: return time( ((void *)0) ); | 0 | ||||||||||||
| 307 | ); never executed: return time( ((void *)0) ); | 0 | ||||||||||||
| 308 | } | - | ||||||||||||
| Switch to Source code | Preprocessed file |