/* * Public domain * * Dongsheng Song * Brent Cook */ #include #include #include #include "apps.h" double app_timer_real(int get) { static __int64 start; __int64 now; now = GetTickCount64(); if (get) { return (now - start) / 1000.0; } start = now; return 0.0; } double app_timer_user(int stop) { static unsigned __int64 tmstart; union { unsigned __int64 u64; FILETIME ft; } ct, et, kt, ut; GetProcessTimes(GetCurrentProcess(), &ct.ft, &et.ft, &kt.ft, &ut.ft); if (stop) return (ut.u64 + kt.u64 - tmstart) / (double) 10000000; tmstart = ut.u64 + kt.u64; return 0.0; } int setup_ui(void) { ui_method = UI_create_method("OpenSSL application user interface"); UI_method_set_opener(ui_method, ui_open); UI_method_set_reader(ui_method, ui_read); UI_method_set_writer(ui_method, ui_write); UI_method_set_closer(ui_method, ui_close); /* * Set STDIO to binary */ _setmode(_fileno(stdin), _O_BINARY); _setmode(_fileno(stdout), _O_BINARY); _setmode(_fileno(stderr), _O_BINARY); return 0; } void destroy_ui(void) { if (ui_method) { UI_destroy_method(ui_method); ui_method = NULL; } }