Some optical change on startup
[hashcat.git] / src / shared.c
index 6b5051c..b59f0e8 100644 (file)
@@ -83,7 +83,7 @@ u64 byte_swap_64 (const u64 n)
 
 int last_len = 0;
 
-void log_final (FILE *fp, const char *fmt, va_list ap)
+int log_final (FILE *fp, const char *fmt, va_list ap)
 {
   if (last_len)
   {
@@ -110,84 +110,96 @@ void log_final (FILE *fp, const char *fmt, va_list ap)
   fflush (fp);
 
   last_len = len;
+
+  return len;
 }
 
-void log_out_nn (FILE *fp, const char *fmt, ...)
+int log_out_nn (FILE *fp, const char *fmt, ...)
 {
-  if (SUPPRESS_OUTPUT) return;
+  if (SUPPRESS_OUTPUT) return 0;
 
   va_list ap;
 
   va_start (ap, fmt);
 
-  log_final (fp, fmt, ap);
+  const int len = log_final (fp, fmt, ap);
 
   va_end (ap);
+
+  return len;
 }
 
-void log_info_nn (const char *fmt, ...)
+int log_info_nn (const char *fmt, ...)
 {
-  if (SUPPRESS_OUTPUT) return;
+  if (SUPPRESS_OUTPUT) return 0;
 
   va_list ap;
 
   va_start (ap, fmt);
 
-  log_final (stdout, fmt, ap);
+  const int len = log_final (stdout, fmt, ap);
 
   va_end (ap);
+
+  return len;
 }
 
-void log_error_nn (const char *fmt, ...)
+int log_error_nn (const char *fmt, ...)
 {
-  if (SUPPRESS_OUTPUT) return;
+  if (SUPPRESS_OUTPUT) return 0;
 
   va_list ap;
 
   va_start (ap, fmt);
 
-  log_final (stderr, fmt, ap);
+  const int len = log_final (stderr, fmt, ap);
 
   va_end (ap);
+
+  return len;
 }
 
-void log_out (FILE *fp, const char *fmt, ...)
+int log_out (FILE *fp, const char *fmt, ...)
 {
-  if (SUPPRESS_OUTPUT) return;
+  if (SUPPRESS_OUTPUT) return 0;
 
   va_list ap;
 
   va_start (ap, fmt);
 
-  log_final (fp, fmt, ap);
+  const int len = log_final (fp, fmt, ap);
 
   va_end (ap);
 
   fputc ('\n', fp);
 
   last_len = 0;
+
+  return len;
 }
 
-void log_info (const char *fmt, ...)
+int log_info (const char *fmt, ...)
 {
-  if (SUPPRESS_OUTPUT) return;
+  if (SUPPRESS_OUTPUT) return 0;
 
   va_list ap;
 
   va_start (ap, fmt);
 
-  log_final (stdout, fmt, ap);
+  const int len = log_final (stdout, fmt, ap);
 
   va_end (ap);
 
   fputc ('\n', stdout);
 
   last_len = 0;
+
+  return len;
 }
 
-void log_error (const char *fmt, ...)
+int log_error (const char *fmt, ...)
 {
-  if (SUPPRESS_OUTPUT) return;
+  if (SUPPRESS_OUTPUT) return 0;
 
   fputc ('\n', stderr);
   fputc ('\n', stderr);
@@ -196,7 +208,7 @@ void log_error (const char *fmt, ...)
 
   va_start (ap, fmt);
 
-  log_final (stderr, fmt, ap);
+  const int len = log_final (stderr, fmt, ap);
 
   va_end (ap);
 
@@ -204,6 +216,8 @@ void log_error (const char *fmt, ...)
   fputc ('\n', stderr);
 
   last_len = 0;
+
+  return len;
 }
 
 /**
@@ -2657,7 +2671,7 @@ void unlock_file (FILE *fp)
 }
 #endif // F_SETLKW
 
-#ifdef _WIN
+#ifdef WIN
 void fsync (int fd)
 {
   HANDLE h = (HANDLE) _get_osfhandle (fd);
@@ -3398,21 +3412,6 @@ int hm_get_throttle_with_device_id (const uint device_id)
   return -1;
 }
 
-int hm_set_fanspeed_with_device_id_xnvctrl (const uint device_id, const int fanspeed)
-{
-  if (data.hm_device[device_id].fan_set_supported == 1)
-  {
-    if (data.hm_xnvctrl)
-    {
-      if (set_fan_speed_target (data.hm_xnvctrl, data.hm_device[device_id].xnvctrl, fanspeed) != 0) return -1;
-
-      return 0;
-    }
-  }
-
-  return -1;
-}
-
 int hm_set_fanspeed_with_device_id_adl (const uint device_id, const int fanspeed, const int fanpolicy)
 {
   if (data.hm_device[device_id].fan_set_supported == 1)
@@ -3453,6 +3452,43 @@ int hm_set_fanspeed_with_device_id_adl (const uint device_id, const int fanspeed
   return -1;
 }
 
+int hm_set_fanspeed_with_device_id_nvapi (const uint device_id, const int fanspeed, const int fanpolicy)
+{
+  if (data.hm_device[device_id].fan_set_supported == 1)
+  {
+    if (data.hm_nvapi)
+    {
+      NV_GPU_COOLER_LEVELS CoolerLevels = { 0 };
+
+      CoolerLevels.Version = GPU_COOLER_LEVELS_VER | sizeof (NV_GPU_COOLER_LEVELS);
+
+      CoolerLevels.Levels[0].Level  = fanspeed;
+      CoolerLevels.Levels[0].Policy = fanpolicy;
+
+      if (hm_NvAPI_GPU_SetCoolerLevels (data.hm_nvapi, data.hm_device[device_id].nvapi, 0, &CoolerLevels) != NVAPI_OK) return -1;
+
+      return 0;
+    }
+  }
+
+  return -1;
+}
+
+int hm_set_fanspeed_with_device_id_xnvctrl (const uint device_id, const int fanspeed)
+{
+  if (data.hm_device[device_id].fan_set_supported == 1)
+  {
+    if (data.hm_xnvctrl)
+    {
+      if (set_fan_speed_target (data.hm_xnvctrl, data.hm_device[device_id].xnvctrl, fanspeed) != 0) return -1;
+
+      return 0;
+    }
+  }
+
+  return -1;
+}
+
 #endif // HAVE_HWMON
 
 /**
@@ -4452,7 +4488,7 @@ int pthread_setaffinity_np (pthread_t thread, size_t cpu_size, cpu_set_t *cpu_se
 
 void set_cpu_affinity (char *cpu_affinity)
 {
-  #ifdef WIN
+  #ifdef _WIN
   DWORD_PTR aff_mask = 0;
   #elif _POSIX
   cpu_set_t cpuset;
@@ -4471,7 +4507,7 @@ void set_cpu_affinity (char *cpu_affinity)
 
       if (cpu_id == 0)
       {
-        #ifdef WIN
+        #ifdef _WIN
         aff_mask = 0;
         #elif _POSIX
         CPU_ZERO (&cpuset);
@@ -4487,7 +4523,7 @@ void set_cpu_affinity (char *cpu_affinity)
         exit (-1);
       }
 
-      #ifdef WIN
+      #ifdef _WIN
       aff_mask |= 1 << (cpu_id - 1);
       #elif _POSIX
       CPU_SET ((cpu_id - 1), &cpuset);
@@ -4498,7 +4534,7 @@ void set_cpu_affinity (char *cpu_affinity)
     free (devices);
   }
 
-  #ifdef WIN
+  #ifdef _WIN
   SetProcessAffinityMask (GetCurrentProcess (), aff_mask);
   SetThreadAffinityMask (GetCurrentThread (), aff_mask);
   #elif _POSIX
@@ -4721,7 +4757,7 @@ int sort_by_dictstat (const void *s1, const void *s2)
   dictstat_t *d1 = (dictstat_t *) s1;
   dictstat_t *d2 = (dictstat_t *) s2;
 
-  #ifdef LINUX
+  #ifdef _LINUX
   d2->stat.st_atim = d1->stat.st_atim;
   #else
   d2->stat.st_atime = d1->stat.st_atime;