"Fossies" - the Fresh Open Source Software Archive  

Source code changes of the file "display.c" between
honggfuzz-2.4.tar.gz and honggfuzz-2.5.tar.gz

About: honggfuzz is a security oriented, feedback-driven, evolutionary, easy-to-use fuzzer with powerful analysis options.

display.c  (honggfuzz-2.4):display.c  (honggfuzz-2.5)
skipping to change at line 37 skipping to change at line 37
#include <inttypes.h> #include <inttypes.h>
#include <stdarg.h> #include <stdarg.h>
#include <stdbool.h> #include <stdbool.h>
#include <stdint.h> #include <stdint.h>
#include <stdio.h> #include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include <string.h> #include <string.h>
#include <time.h> #include <time.h>
#include <unistd.h> #include <unistd.h>
#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__OpenBSD__) || defin
ed(__DragonFly__)
#include <sys/resource.h>
#include <sys/sysctl.h>
#if defined(__OpenBSD__)
#include <sys/sched.h>
#endif
#endif
#if defined(__sun)
#include <kstat.h>
#endif
#if defined(__APPLE__)
#include <mach/mach.h>
#include <mach/task_info.h>
#endif
#include "libhfcommon/common.h" #include "libhfcommon/common.h"
#include "libhfcommon/log.h" #include "libhfcommon/log.h"
#include "libhfcommon/util.h" #include "libhfcommon/util.h"
#define ESC_CLEAR_ALL "\033[2J" #define ESC_CLEAR_ALL "\033[2J"
#define ESC_CLEAR_LINE "\033[2K" #define ESC_CLEAR_LINE "\033[2K"
#define ESC_CLEAR_ABOVE "\033[1J" #define ESC_CLEAR_ABOVE "\033[1J"
#define ESC_TERM_RESET "\033c" #define ESC_TERM_RESET "\033c"
#define ESC_NAV(x, y) "\033[" #x ";" #y "H" #define ESC_NAV(x, y) "\033[" #x ";" #y "H"
#define ESC_BOLD "\033[1m" #define ESC_BOLD "\033[1m"
skipping to change at line 93 skipping to change at line 110
} else if (val >= 1000UL) { } else if (val >= 1000UL) {
display_put(" [%.02Lfk]", (long double)val / 1000.0L); display_put(" [%.02Lfk]", (long double)val / 1000.0L);
} }
} }
static unsigned getCpuUse(int numCpus) { static unsigned getCpuUse(int numCpus) {
static uint64_t prevUserT = 0UL; static uint64_t prevUserT = 0UL;
static uint64_t prevNiceT = 0UL; static uint64_t prevNiceT = 0UL;
static uint64_t prevSystemT = 0UL; static uint64_t prevSystemT = 0UL;
static uint64_t prevIdleT = 0UL; static uint64_t prevIdleT = 0UL;
uint64_t userT = 0UL;
uint64_t niceT = 0UL;
uint64_t systemT = 0UL;
uint64_t idleT = 0UL;
#if defined(__linux__) || defined(__CYGWIN__)
FILE* f = fopen("/proc/stat", "re"); FILE* f = fopen("/proc/stat", "re");
if (f == NULL) { if (f == NULL) {
return 0; return 0;
} }
defer { defer {
fclose(f); fclose(f);
}; };
uint64_t userT, niceT, systemT, idleT;
if (fscanf(f, "cpu %" PRIu64 "%" PRIu64 "%" PRIu64 "%" PRIu64, &userT, &nic eT, &systemT, if (fscanf(f, "cpu %" PRIu64 "%" PRIu64 "%" PRIu64 "%" PRIu64, &userT, &nic eT, &systemT,
&idleT) != 4) { &idleT) != 4) {
LOG_W("fscanf('/proc/stat') != 4"); LOG_W("fscanf('/proc/stat') != 4");
return 0; return 0;
} }
#elif defined(__FreeBSD__) || defined(__DragonFly__)
long ticks = (1000 / sysconf(_SC_CLK_TCK));
long off = 0;
size_t cpuDataLen = sizeof(long) * CPUSTATES * numCpus;
long* cpuData = malloc(cpuDataLen);
if (cpuData == NULL) {
return 0;
}
if (sysctlbyname("kern.cp_times", cpuData, &cpuDataLen, NULL, 0) != 0) {
LOG_W("sysctlbyname('kern.cp_times') != 0");
free(cpuData);
return 0;
}
userT = niceT = systemT = idleT = 0;
for (int i = 0; i < numCpus; i++) {
userT += cpuData[CP_USER + off] * ticks;
niceT += cpuData[CP_NICE + off] * ticks;
systemT += cpuData[CP_SYS + off] * ticks;
idleT += cpuData[CP_IDLE + off] * ticks;
off += CPUSTATES;
}
free(cpuData);
#elif defined(__NetBSD__)
long ticks = (1000 / sysconf(_SC_CLK_TCK));
userT = niceT = systemT = idleT = 0;
for (int i = 0; i < numCpus; i++) {
uint64_t cpuData[CPUSTATES];
size_t cpuDataLen = sizeof(cpuData);
char mib[24] = {0};
snprintf(mib, sizeof(mib), "kern.cp_time.%d", i);
if (sysctlbyname(mib, &cpuData, &cpuDataLen, NULL, 0) != 0) {
LOG_W("sysctlbyname('kern.cp_time') != 0");
return 0;
}
userT += cpuData[CP_USER] * ticks;
niceT += cpuData[CP_NICE] * ticks;
systemT += cpuData[CP_SYS] * ticks;
idleT += cpuData[CP_IDLE] * ticks;
}
#elif defined(__OpenBSD__)
long ticks = (1000 / sysconf(_SC_CLK_TCK));
userT = niceT = systemT = idleT = 0;
for (int i = 0; i < numCpus; i++) {
uint64_t cpuData[CPUSTATES];
size_t cpuDataLen = sizeof(cpuData);
int mib[3] = {CTL_KERN, KERN_CPTIME2, i};
if (sysctl(mib, 3, &cpuData, &cpuDataLen, NULL, 0) != 0) {
LOG_W("sysctl('KERN_CPTIME2') != 0");
return 0;
}
userT += cpuData[CP_USER] * ticks;
niceT += cpuData[CP_NICE] * ticks;
systemT += cpuData[CP_SYS] * ticks;
idleT += cpuData[CP_IDLE] * ticks;
}
#elif defined(__sun)
kstat_ctl_t* kctl = kstat_open();
for (int i = 0; i < numCpus; i++) {
kstat_named_t* data;
kstat_t* cpu = kstat_lookup(kctl, "cpu", i, NULL);
if (!cpu) {
LOG_W("kstat_lookup('cpu_info') != 0");
continue;
}
kstat_read(kctl, cpu, NULL);
data = kstat_data_lookup(cpu, "cpu_ticks_user");
userT += data->value.ui64;
data = kstat_data_lookup(cpu, "cpu_ticks_kernel");
systemT += data->value.ui64;
data = kstat_data_lookup(cpu, "cpu_ticks_idle");
idleT += data->value.ui64;
}
kstat_close(kctl);
#else
host_cpu_load_info_data_t avg;
mach_msg_type_number_t num = HOST_CPU_LOAD_INFO_COUNT;
userT = niceT = systemT = idleT = 0;
if (host_statistics(mach_host_self(), HOST_CPU_LOAD_INFO, (host_info_t)&avg,
&num) ==
KERN_SUCCESS) {
userT = avg.cpu_ticks[CPU_STATE_USER];
niceT = avg.cpu_ticks[CPU_STATE_NICE];
systemT = avg.cpu_ticks[CPU_STATE_SYSTEM];
idleT = avg.cpu_ticks[CPU_STATE_IDLE];
}
#endif
uint64_t userCycles = (userT - prevUserT); uint64_t userCycles = (userT - prevUserT);
uint64_t niceCycles = (niceT - prevNiceT); uint64_t niceCycles = (niceT - prevNiceT);
uint64_t systemCycles = (systemT - prevSystemT); uint64_t systemCycles = (systemT - prevSystemT);
uint64_t idleCycles = (idleT - prevIdleT); uint64_t idleCycles = (idleT - prevIdleT);
prevUserT = userT; prevUserT = userT;
prevNiceT = niceT; prevNiceT = niceT;
prevSystemT = systemT; prevSystemT = systemT;
prevIdleT = idleT; prevIdleT = idleT;
 End of changes. 5 change blocks. 
1 lines changed or deleted 120 lines changed or added

Home  |  About  |  Features  |  All  |  Newest  |  Dox  |  Diffs  |  RSS Feeds  |  Screenshots  |  Comments  |  Imprint  |  Privacy  |  HTTP(S)