Diffstat (limited to 'noncore/settings/sysinfo/contrib/dhry.c') (more/less context) (ignore whitespace changes)
-rw-r--r-- | noncore/settings/sysinfo/contrib/dhry.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/noncore/settings/sysinfo/contrib/dhry.c b/noncore/settings/sysinfo/contrib/dhry.c index 20b627c..07fd1c0 100644 --- a/noncore/settings/sysinfo/contrib/dhry.c +++ b/noncore/settings/sysinfo/contrib/dhry.c | |||
@@ -450,97 +450,97 @@ double dtime(void) | |||
450 | #define _POSIX_SOURCE 1 | 450 | #define _POSIX_SOURCE 1 |
451 | #include <unistd.h> | 451 | #include <unistd.h> |
452 | #include <limits.h> | 452 | #include <limits.h> |
453 | #include <sys/times.h> | 453 | #include <sys/times.h> |
454 | 454 | ||
455 | struct tms tms; | 455 | struct tms tms; |
456 | 456 | ||
457 | double dtime() | 457 | double dtime() |
458 | { | 458 | { |
459 | double q; | 459 | double q; |
460 | times(&tms); | 460 | times(&tms); |
461 | q = (double)tms.tms_utime / (double)CLK_TCK; | 461 | q = (double)tms.tms_utime / (double)CLK_TCK; |
462 | return q; | 462 | return q; |
463 | } | 463 | } |
464 | #endif | 464 | #endif |
465 | /* | 465 | /* |
466 | ************************************************************************* | 466 | ************************************************************************* |
467 | * | 467 | * |
468 | * "DHRYSTONE" Benchmark Program | 468 | * "DHRYSTONE" Benchmark Program |
469 | * ----------------------------- | 469 | * ----------------------------- |
470 | * | 470 | * |
471 | * Version: C, Version 2.1 | 471 | * Version: C, Version 2.1 |
472 | * | 472 | * |
473 | * File: dhry_1.c (part 2 of 3) | 473 | * File: dhry_1.c (part 2 of 3) |
474 | * | 474 | * |
475 | * Date: May 25, 1988 | 475 | * Date: May 25, 1988 |
476 | * | 476 | * |
477 | * Author: Reinhold P. Weicker | 477 | * Author: Reinhold P. Weicker |
478 | * | 478 | * |
479 | ************************************************************************* | 479 | ************************************************************************* |
480 | */ | 480 | */ |
481 | 481 | ||
482 | #include <stdio.h> | 482 | #include <stdio.h> |
483 | #include <stdlib.h> | 483 | #include <stdlib.h> |
484 | #include <string.h> | 484 | #include <string.h> |
485 | #include "dhry.h" | 485 | #include "dhry.h" |
486 | 486 | ||
487 | /* Global Variables: */ | 487 | /* Global Variables: */ |
488 | 488 | ||
489 | Rec_Pointer Ptr_Glob, | 489 | Rec_Pointer Ptr_Glob, |
490 | Next_Ptr_Glob; | 490 | Next_Ptr_Glob; |
491 | int Int_Glob; | 491 | int Int_Glob; |
492 | Boolean Bool_Glob; | 492 | Boolean Bool_Glob; |
493 | char Ch_1_Glob, | 493 | char Ch_1_Glob, |
494 | Ch_2_Glob; | 494 | Ch_2_Glob; |
495 | int Arr_1_Glob [50]; | 495 | int Arr_1_Glob [50]; |
496 | int Arr_2_Glob [50] [50]; | 496 | int Arr_2_Glob [50] [50]; |
497 | 497 | ||
498 | char Reg_Define[] = "Register option selected."; | 498 | char Reg_Define[32] = "Register option selected."; |
499 | 499 | ||
500 | //extern char *malloc (); | 500 | //extern char *malloc (); |
501 | Enumeration Func_1 (); | 501 | Enumeration Func_1 (); |
502 | /* | 502 | /* |
503 | forward declaration necessary since Enumeration may not simply be int | 503 | forward declaration necessary since Enumeration may not simply be int |
504 | */ | 504 | */ |
505 | 505 | ||
506 | #ifndef ROPT | 506 | #ifndef ROPT |
507 | #define REG | 507 | #define REG |
508 | /* REG becomes defined as empty */ | 508 | /* REG becomes defined as empty */ |
509 | /* i.e. no register variables */ | 509 | /* i.e. no register variables */ |
510 | #else | 510 | #else |
511 | #define REG register | 511 | #define REG register |
512 | #endif | 512 | #endif |
513 | 513 | ||
514 | 514 | ||
515 | /* variables for time measurement: */ | 515 | /* variables for time measurement: */ |
516 | 516 | ||
517 | #define Too_Small_Time 2 | 517 | #define Too_Small_Time 2 |
518 | /* Measurements should last at least 2 seconds */ | 518 | /* Measurements should last at least 2 seconds */ |
519 | 519 | ||
520 | double Begin_Time, | 520 | double Begin_Time, |
521 | End_Time, | 521 | End_Time, |
522 | User_Time; | 522 | User_Time; |
523 | 523 | ||
524 | double Microseconds, | 524 | double Microseconds, |
525 | Dhrystones_Per_Second, | 525 | Dhrystones_Per_Second, |
526 | Vax_Mips; | 526 | Vax_Mips; |
527 | 527 | ||
528 | /* end of variables for time measurement */ | 528 | /* end of variables for time measurement */ |
529 | 529 | ||
530 | /**********************************************************************************************/ | 530 | /**********************************************************************************************/ |
531 | 531 | ||
532 | 532 | ||
533 | Proc_1 (Ptr_Val_Par) | 533 | Proc_1 (Ptr_Val_Par) |
534 | /******************/ | 534 | /******************/ |
535 | 535 | ||
536 | REG Rec_Pointer Ptr_Val_Par; | 536 | REG Rec_Pointer Ptr_Val_Par; |
537 | /* executed once */ | 537 | /* executed once */ |
538 | { | 538 | { |
539 | REG Rec_Pointer Next_Record = Ptr_Val_Par->Ptr_Comp; | 539 | REG Rec_Pointer Next_Record = Ptr_Val_Par->Ptr_Comp; |
540 | /* == Ptr_Glob_Next */ | 540 | /* == Ptr_Glob_Next */ |
541 | /* Local variable, initialized with Ptr_Val_Par->Ptr_Comp, */ | 541 | /* Local variable, initialized with Ptr_Val_Par->Ptr_Comp, */ |
542 | /* corresponds to "rename" in Ada, "with" in Pascal */ | 542 | /* corresponds to "rename" in Ada, "with" in Pascal */ |
543 | 543 | ||
544 | structassign (*Ptr_Val_Par->Ptr_Comp, *Ptr_Glob); | 544 | structassign (*Ptr_Val_Par->Ptr_Comp, *Ptr_Glob); |
545 | Ptr_Val_Par->variant.var_1.Int_Comp = 5; | 545 | Ptr_Val_Par->variant.var_1.Int_Comp = 5; |
546 | Next_Record->variant.var_1.Int_Comp | 546 | Next_Record->variant.var_1.Int_Comp |
@@ -938,73 +938,73 @@ double dhry_main( int n ) | |||
938 | printf (" should be: (implementation-dependent)\n"); | 938 | printf (" should be: (implementation-dependent)\n"); |
939 | printf (" Discr: %d\n", Ptr_Glob->Discr); | 939 | printf (" Discr: %d\n", Ptr_Glob->Discr); |
940 | printf (" should be: %d\n", 0); | 940 | printf (" should be: %d\n", 0); |
941 | printf (" Enum_Comp: %d\n", Ptr_Glob->variant.var_1.Enum_Comp); | 941 | printf (" Enum_Comp: %d\n", Ptr_Glob->variant.var_1.Enum_Comp); |
942 | printf (" should be: %d\n", 2); | 942 | printf (" should be: %d\n", 2); |
943 | printf (" Int_Comp: %d\n", Ptr_Glob->variant.var_1.Int_Comp); | 943 | printf (" Int_Comp: %d\n", Ptr_Glob->variant.var_1.Int_Comp); |
944 | printf (" should be: %d\n", 17); | 944 | printf (" should be: %d\n", 17); |
945 | printf (" Str_Comp: %s\n", Ptr_Glob->variant.var_1.Str_Comp); | 945 | printf (" Str_Comp: %s\n", Ptr_Glob->variant.var_1.Str_Comp); |
946 | printf (" should be: DHRYSTONE PROGRAM, SOME STRING\n"); | 946 | printf (" should be: DHRYSTONE PROGRAM, SOME STRING\n"); |
947 | printf ("Next_Ptr_Glob->\n"); | 947 | printf ("Next_Ptr_Glob->\n"); |
948 | printf (" Ptr_Comp: %d\n", (int) Next_Ptr_Glob->Ptr_Comp); | 948 | printf (" Ptr_Comp: %d\n", (int) Next_Ptr_Glob->Ptr_Comp); |
949 | printf (" should be: (implementation-dependent), same as above\n"); | 949 | printf (" should be: (implementation-dependent), same as above\n"); |
950 | printf (" Discr: %d\n", Next_Ptr_Glob->Discr); | 950 | printf (" Discr: %d\n", Next_Ptr_Glob->Discr); |
951 | printf (" should be: %d\n", 0); | 951 | printf (" should be: %d\n", 0); |
952 | printf (" Enum_Comp: %d\n", Next_Ptr_Glob->variant.var_1.Enum_Comp); | 952 | printf (" Enum_Comp: %d\n", Next_Ptr_Glob->variant.var_1.Enum_Comp); |
953 | printf (" should be: %d\n", 1); | 953 | printf (" should be: %d\n", 1); |
954 | printf (" Int_Comp: %d\n", Next_Ptr_Glob->variant.var_1.Int_Comp); | 954 | printf (" Int_Comp: %d\n", Next_Ptr_Glob->variant.var_1.Int_Comp); |
955 | printf (" should be: %d\n", 18); | 955 | printf (" should be: %d\n", 18); |
956 | printf (" Str_Comp: %s\n", Next_Ptr_Glob->variant.var_1.Str_Comp); | 956 | printf (" Str_Comp: %s\n", Next_Ptr_Glob->variant.var_1.Str_Comp); |
957 | printf (" should be: DHRYSTONE PROGRAM, SOME STRING\n"); | 957 | printf (" should be: DHRYSTONE PROGRAM, SOME STRING\n"); |
958 | printf ("Int_1_Loc: %d\n", Int_1_Loc); | 958 | printf ("Int_1_Loc: %d\n", Int_1_Loc); |
959 | printf (" should be: %d\n", 5); | 959 | printf (" should be: %d\n", 5); |
960 | printf ("Int_2_Loc: %d\n", Int_2_Loc); | 960 | printf ("Int_2_Loc: %d\n", Int_2_Loc); |
961 | printf (" should be: %d\n", 13); | 961 | printf (" should be: %d\n", 13); |
962 | printf ("Int_3_Loc: %d\n", Int_3_Loc); | 962 | printf ("Int_3_Loc: %d\n", Int_3_Loc); |
963 | printf (" should be: %d\n", 7); | 963 | printf (" should be: %d\n", 7); |
964 | printf ("Enum_Loc: %d\n", Enum_Loc); | 964 | printf ("Enum_Loc: %d\n", Enum_Loc); |
965 | printf (" should be: %d\n", 1); | 965 | printf (" should be: %d\n", 1); |
966 | printf ("Str_1_Loc: %s\n", Str_1_Loc); | 966 | printf ("Str_1_Loc: %s\n", Str_1_Loc); |
967 | printf (" should be: DHRYSTONE PROGRAM, 1'ST STRING\n"); | 967 | printf (" should be: DHRYSTONE PROGRAM, 1'ST STRING\n"); |
968 | printf ("Str_2_Loc: %s\n", Str_2_Loc); | 968 | printf ("Str_2_Loc: %s\n", Str_2_Loc); |
969 | printf (" should be: DHRYSTONE PROGRAM, 2'ND STRING\n"); | 969 | printf (" should be: DHRYSTONE PROGRAM, 2'ND STRING\n"); |
970 | printf ("\n"); | 970 | printf ("\n"); |
971 | */ | 971 | */ |
972 | User_Time = End_Time - Begin_Time; | 972 | User_Time = End_Time - Begin_Time; |
973 | 973 | ||
974 | if (User_Time < Too_Small_Time) return -1; | 974 | if (User_Time < Too_Small_Time) return -1; |
975 | else | 975 | else |
976 | { | 976 | { |
977 | Microseconds = User_Time * Mic_secs_Per_Second | 977 | Microseconds = User_Time * Mic_secs_Per_Second |
978 | / (double) Number_Of_Runs; | 978 | / (double) Number_Of_Runs; |
979 | Dhrystones_Per_Second = (double) Number_Of_Runs / User_Time; | 979 | Dhrystones_Per_Second = (double) Number_Of_Runs / User_Time; |
980 | Vax_Mips = Dhrystones_Per_Second / 1757.0; | 980 | Vax_Mips = Dhrystones_Per_Second / 1757.0; |
981 | 981 | ||
982 | #ifdef ROPT | 982 | #ifdef ROPT |
983 | //printf ("Register option selected? YES\n"); | 983 | //printf ("Register option selected? YES\n"); |
984 | #else | 984 | #else |
985 | //printf ("Register option selected? NO\n"); | 985 | //printf ("Register option selected? NO\n"); |
986 | strcpy(Reg_Define, "Register option not selected."); | 986 | strncpy(Reg_Define, "Register option not selected.", 30); |
987 | #endif | 987 | #endif |
988 | printf ("Microseconds for one run through Dhrystone: "); | 988 | printf ("Microseconds for one run through Dhrystone: "); |
989 | printf ("%7.1lf \n", Microseconds); | 989 | printf ("%7.1lf \n", Microseconds); |
990 | printf ("Dhrystones per Second: "); | 990 | printf ("Dhrystones per Second: "); |
991 | printf ("%10.1lf \n", Dhrystones_Per_Second); | 991 | printf ("%10.1lf \n", Dhrystones_Per_Second); |
992 | printf ("VAX MIPS rating = %10.3lf \n",Vax_Mips); | 992 | printf ("VAX MIPS rating = %10.3lf \n",Vax_Mips); |
993 | printf ("\n"); | 993 | printf ("\n"); |
994 | 994 | ||
995 | return Dhrystones_Per_Second; | 995 | return Dhrystones_Per_Second; |
996 | 996 | ||
997 | /* | 997 | /* |
998 | 998 | ||
999 | fprintf(Ap,"\n"); | 999 | fprintf(Ap,"\n"); |
1000 | fprintf(Ap,"Dhrystone Benchmark, Version 2.1 (Language: C)\n"); | 1000 | fprintf(Ap,"Dhrystone Benchmark, Version 2.1 (Language: C)\n"); |
1001 | fprintf(Ap,"%s\n",Reg_Define); | 1001 | fprintf(Ap,"%s\n",Reg_Define); |
1002 | fprintf(Ap,"Microseconds for one loop: %7.1lf\n",Microseconds); | 1002 | fprintf(Ap,"Microseconds for one loop: %7.1lf\n",Microseconds); |
1003 | fprintf(Ap,"Dhrystones per second: %10.1lf\n",Dhrystones_Per_Second); | 1003 | fprintf(Ap,"Dhrystones per second: %10.1lf\n",Dhrystones_Per_Second); |
1004 | fprintf(Ap,"VAX MIPS rating: %10.3lf\n",Vax_Mips); | 1004 | fprintf(Ap,"VAX MIPS rating: %10.3lf\n",Vax_Mips); |
1005 | fclose(Ap); | 1005 | fclose(Ap); |
1006 | */ | 1006 | */ |
1007 | 1007 | ||
1008 | } | 1008 | } |
1009 | 1009 | ||
1010 | } | 1010 | } |