mirror of
				https://git.proxmox.com/git/grub2
				synced 2025-11-04 09:14:22 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			106 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			106 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#include <stdio.h>
 | 
						|
#include <stdlib.h>
 | 
						|
#include <sys/resource.h>
 | 
						|
 | 
						|
int
 | 
						|
main (int argc, char **argv)
 | 
						|
{
 | 
						|
  struct rusage buf;
 | 
						|
 | 
						|
  if (argc > 1)
 | 
						|
    {
 | 
						|
      system (argv[1]);
 | 
						|
 | 
						|
      if (getrusage (RUSAGE_CHILDREN, &buf ))
 | 
						|
        {
 | 
						|
          perror ("getrusage");
 | 
						|
          return 1;
 | 
						|
        }
 | 
						|
    }
 | 
						|
  else
 | 
						|
    {
 | 
						|
      if (getrusage (RUSAGE_SELF, &buf ))
 | 
						|
        {
 | 
						|
          perror ("getrusage");
 | 
						|
          return 1;
 | 
						|
        }
 | 
						|
    }
 | 
						|
 | 
						|
  printf ("ru_utime   = %ld.%06ld\n",
 | 
						|
          buf.ru_utime.tv_sec, buf.ru_utime.tv_usec); 
 | 
						|
  printf ("ru_stime   = %ld.%06ld\n",
 | 
						|
          buf.ru_stime.tv_sec, buf.ru_stime.tv_usec);
 | 
						|
  printf ("ru_maxrss  = %ld\n", buf.ru_maxrss   );
 | 
						|
  printf ("ru_ixrss   = %ld\n", buf.ru_ixrss    );
 | 
						|
  printf ("ru_idrss   = %ld\n", buf.ru_idrss    );
 | 
						|
  printf ("ru_isrss   = %ld\n", buf.ru_isrss    );
 | 
						|
  printf ("ru_minflt  = %ld\n", buf.ru_minflt   );
 | 
						|
  printf ("ru_majflt  = %ld\n", buf.ru_majflt   );
 | 
						|
  printf ("ru_nswap   = %ld\n", buf.ru_nswap    );
 | 
						|
  printf ("ru_inblock = %ld\n", buf.ru_inblock  );
 | 
						|
  printf ("ru_oublock = %ld\n", buf.ru_oublock  );
 | 
						|
  printf ("ru_msgsnd  = %ld\n", buf.ru_msgsnd   );
 | 
						|
  printf ("ru_msgrcv  = %ld\n", buf.ru_msgrcv   );
 | 
						|
  printf ("ru_nsignals= %ld\n", buf.ru_nsignals );
 | 
						|
  printf ("ru_nvcsw   = %ld\n", buf.ru_nvcsw    );
 | 
						|
  printf ("ru_nivcsw  = %ld\n", buf.ru_nivcsw   );
 | 
						|
 | 
						|
  fprintf (stderr, "ru_utime   ru_stime   ru_minflt  ru_nccsw  ru_nivcsw\n");
 | 
						|
  fprintf (stderr, "%ld.%06ld  %ld.%06ld  %5ld       %5ld      %5ld\n");
 | 
						|
 | 
						|
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
 | 
						|
/* Codesnippet for debugging in random.c. */
 | 
						|
#if 0
 | 
						|
static void
 | 
						|
collect_rusage_stats (struct rusage *rb)
 | 
						|
{
 | 
						|
  static int idx;
 | 
						|
  static struct rusage buf[100];
 | 
						|
  
 | 
						|
  if (!rb)
 | 
						|
    {
 | 
						|
      int i;
 | 
						|
 | 
						|
      fprintf (stderr, "ru_utime   ru_stime   ru_minflt  ru_nvcsw  ru_nivcsw\n");
 | 
						|
      for (i=0; i < idx; i++)
 | 
						|
        fprintf (stderr, "%ld.%06ld   %ld.%06ld %5ld       %5ld      %5ld\n",
 | 
						|
                 buf[i].ru_utime.tv_sec, buf[i].ru_utime.tv_usec, 
 | 
						|
                 buf[i].ru_stime.tv_sec, buf[i].ru_stime.tv_usec, 
 | 
						|
                 buf[i].ru_minflt, 
 | 
						|
                 buf[i].ru_nvcsw,
 | 
						|
                 buf[i].ru_nivcsw);
 | 
						|
    }      
 | 
						|
  else if (idx < DIM(buf))
 | 
						|
    {
 | 
						|
      buf[idx++] = *rb;
 | 
						|
    }
 | 
						|
}
 | 
						|
#endif
 | 
						|
/*
 | 
						|
 void
 | 
						|
 _gcry_random_dump_stats()
 | 
						|
 {
 | 
						|
@@ -233,8 +261,11 @@
 | 
						|
                  rndstats.naddbytes, rndstats.addbytes,
 | 
						|
        rndstats.mixkey, rndstats.ngetbytes1, rndstats.getbytes1,
 | 
						|
                    rndstats.ngetbytes2, rndstats.getbytes2 );
 | 
						|
+
 | 
						|
+    collect_rusage_stats (NULL);
 | 
						|
 }
 | 
						|
 | 
						|
========
 | 
						|
 | 
						|
     getrusage (RUSAGE_SELF, &buf );
 | 
						|
+    collect_rusage_stats (&buf);
 | 
						|
     add_randomness( &buf, sizeof buf, 1 );
 | 
						|
     memset( &buf, 0, sizeof buf );
 | 
						|
   }
 | 
						|
 
 | 
						|
*/
 | 
						|
 | 
						|
 |