summaryrefslogtreecommitdiff
Unidiff
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/settings/sysinfo/contrib/dhry.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/noncore/settings/sysinfo/contrib/dhry.c b/noncore/settings/sysinfo/contrib/dhry.c
index d1dadbd..20b627c 100644
--- a/noncore/settings/sysinfo/contrib/dhry.c
+++ b/noncore/settings/sysinfo/contrib/dhry.c
@@ -308,385 +308,385 @@ double dtime()
308 308
309/*****************************************************/ 309/*****************************************************/
310/* Fujitsu UXP/M timer. */ 310/* Fujitsu UXP/M timer. */
311/* Provided by: Mathew Lim, ANUSF, M.Lim@anu.edu.au */ 311/* Provided by: Mathew Lim, ANUSF, M.Lim@anu.edu.au */
312/*****************************************************/ 312/*****************************************************/
313#ifdef UXPM 313#ifdef UXPM
314#include <sys/types.h> 314#include <sys/types.h>
315#include <sys/timesu.h> 315#include <sys/timesu.h>
316struct tmsu rusage; 316struct tmsu rusage;
317 317
318double dtime() 318double dtime()
319{ 319{
320 double q; 320 double q;
321 321
322 timesu(&rusage); 322 timesu(&rusage);
323 323
324 q = (double)(rusage.tms_utime) * 1.0e-06; 324 q = (double)(rusage.tms_utime) * 1.0e-06;
325 325
326 return q; 326 return q;
327} 327}
328#endif 328#endif
329 329
330/**********************************************/ 330/**********************************************/
331/* Macintosh (MAC_TMgr) Think C dtime() */ 331/* Macintosh (MAC_TMgr) Think C dtime() */
332/* requires Think C Language Extensions or */ 332/* requires Think C Language Extensions or */
333/* #include <MacHeaders> in the prefix */ 333/* #include <MacHeaders> in the prefix */
334/* provided by Francis H Schiffer 3rd (fhs) */ 334/* provided by Francis H Schiffer 3rd (fhs) */
335/* skipschiffer@genie.geis.com */ 335/* skipschiffer@genie.geis.com */
336/**********************************************/ 336/**********************************************/
337#ifdef MAC_TMgr 337#ifdef MAC_TMgr
338#include <Timer.h> 338#include <Timer.h>
339#include <stdlib.h> 339#include <stdlib.h>
340 340
341static TMTask mgrTimer; 341static TMTask mgrTimer;
342static Boolean mgrInited = false; 342static Boolean mgrInited = false;
343static double mgrClock; 343static double mgrClock;
344 344
345#define RMV_TIMER RmvTime( (QElemPtr)&mgrTimer ) 345#define RMV_TIMER RmvTime( (QElemPtr)&mgrTimer )
346#define MAX_TIME 1800000000L 346#define MAX_TIME 1800000000L
347/* MAX_TIME limits time between calls to */ 347/* MAX_TIME limits time between calls to */
348/* dtime( ) to no more than 30 minutes */ 348/* dtime( ) to no more than 30 minutes */
349/* this limitation could be removed by */ 349/* this limitation could be removed by */
350/* creating a completion routine to sum */ 350/* creating a completion routine to sum */
351/* 30 minute segments (fhs 1994 feb 9) */ 351/* 30 minute segments (fhs 1994 feb 9) */
352 352
353static void Remove_timer( ) 353static void Remove_timer( )
354{ 354{
355 RMV_TIMER; 355 RMV_TIMER;
356 mgrInited = false; 356 mgrInited = false;
357} 357}
358 358
359double dtime( ) 359double dtime( )
360{ 360{
361 if( mgrInited ) { 361 if( mgrInited ) {
362 RMV_TIMER; 362 RMV_TIMER;
363 mgrClock += (MAX_TIME + mgrTimer.tmCount)*1.0e-6; 363 mgrClock += (MAX_TIME + mgrTimer.tmCount)*1.0e-6;
364 } else { 364 } else {
365 if( _atexit( &Remove_timer ) == 0 ) mgrInited = true; 365 if( _atexit( &Remove_timer ) == 0 ) mgrInited = true;
366 mgrClock = 0.0; 366 mgrClock = 0.0;
367 } 367 }
368 368
369 if ( mgrInited ) 369 if ( mgrInited )
370 { 370 {
371 mgrTimer.tmAddr = NULL; 371 mgrTimer.tmAddr = NULL;
372 mgrTimer.tmCount = 0; 372 mgrTimer.tmCount = 0;
373 mgrTimer.tmWakeUp = 0; 373 mgrTimer.tmWakeUp = 0;
374 mgrTimer.tmReserved = 0; 374 mgrTimer.tmReserved = 0;
375 InsTime( (QElemPtr)&mgrTimer ); 375 InsTime( (QElemPtr)&mgrTimer );
376 PrimeTime( (QElemPtr)&mgrTimer, -MAX_TIME ); 376 PrimeTime( (QElemPtr)&mgrTimer, -MAX_TIME );
377 } 377 }
378 return( mgrClock ); 378 return( mgrClock );
379} 379}
380#endif 380#endif
381 381
382/***********************************************************/ 382/***********************************************************/
383/* Parsytec GCel timer. */ 383/* Parsytec GCel timer. */
384/* Provided by: Georg Wambach, gw@informatik.uni-koeln.de */ 384/* Provided by: Georg Wambach, gw@informatik.uni-koeln.de */
385/***********************************************************/ 385/***********************************************************/
386#ifdef PARIX 386#ifdef PARIX
387#include <sys/time.h> 387#include <sys/time.h>
388 388
389double dtime() 389double dtime()
390{ 390{
391 double q; 391 double q;
392 392
393 q = (double) (TimeNowHigh()) / (double) CLK_TCK_HIGH; 393 q = (double) (TimeNowHigh()) / (double) CLK_TCK_HIGH;
394 394
395 return q; 395 return q;
396} 396}
397#endif 397#endif
398 398
399/************************************************/ 399/************************************************/
400/* Sun Solaris POSIX dtime() routine */ 400/* Sun Solaris POSIX dtime() routine */
401/* Provided by: Case Larsen, CTLarsen.lbl.gov */ 401/* Provided by: Case Larsen, CTLarsen.lbl.gov */
402/************************************************/ 402/************************************************/
403#ifdef POSIX 403#ifdef POSIX
404#include <sys/time.h> 404#include <sys/time.h>
405#include <sys/resource.h> 405#include <sys/resource.h>
406#include <sys/rusage.h> 406#include <sys/rusage.h>
407 407
408#ifdef __hpux 408#ifdef __hpux
409#include <sys/syscall.h> 409#include <sys/syscall.h>
410#endif 410#endif
411 411
412struct rusage rusage; 412struct rusage rusage;
413 413
414double dtime() 414double dtime()
415{ 415{
416 double q; 416 double q;
417 417
418 getrusage(RUSAGE_SELF,&rusage); 418 getrusage(RUSAGE_SELF,&rusage);
419 419
420 q = (double)(rusage.ru_utime.tv_sec); 420 q = (double)(rusage.ru_utime.tv_sec);
421 q = q + (double)(rusage.ru_utime.tv_nsec) * 1.0e-09; 421 q = q + (double)(rusage.ru_utime.tv_nsec) * 1.0e-09;
422 422
423 return q; 423 return q;
424} 424}
425#endif 425#endif
426 426
427 427
428/****************************************************/ 428/****************************************************/
429/* Windows NT (32 bit) dtime() routine */ 429/* Windows NT (32 bit) dtime() routine */
430/* Provided by: Piers Haken, piersh@microsoft.com */ 430/* Provided by: Piers Haken, piersh@microsoft.com */
431/****************************************************/ 431/****************************************************/
432#ifdef WIN32 432#ifdef WIN32
433#include <windows.h> 433#include <windows.h>
434 434
435double dtime(void) 435double dtime(void)
436{ 436{
437 double q; 437 double q;
438 438
439 q = (double)GetTickCount() * 1.0e-03; 439 q = (double)GetTickCount() * 1.0e-03;
440 440
441 return q; 441 return q;
442} 442}
443#endif 443#endif
444 444
445/*****************************************************/ 445/*****************************************************/
446/* Time according to POSIX.1 - <J.Pelan@qub.ac.uk> */ 446/* Time according to POSIX.1 - <J.Pelan@qub.ac.uk> */
447/* Ref: "POSIX Programmer's Guide" O'Reilly & Assoc.*/ 447/* Ref: "POSIX Programmer's Guide" O'Reilly & Assoc.*/
448/*****************************************************/ 448/*****************************************************/
449#ifdef POSIX1 449#ifdef POSIX1
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
455struct tms tms; 455struct tms tms;
456 456
457double dtime() 457double 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
489Rec_Pointer Ptr_Glob, 489Rec_Pointer Ptr_Glob,
490 Next_Ptr_Glob; 490 Next_Ptr_Glob;
491int Int_Glob; 491int Int_Glob;
492Boolean Bool_Glob; 492Boolean Bool_Glob;
493char Ch_1_Glob, 493char Ch_1_Glob,
494 Ch_2_Glob; 494 Ch_2_Glob;
495int Arr_1_Glob [50]; 495int Arr_1_Glob [50];
496int Arr_2_Glob [50] [50]; 496int Arr_2_Glob [50] [50];
497 497
498char Reg_Define[] = "Register option selected."; 498char Reg_Define[] = "Register option selected.";
499 499
500extern char *malloc (); 500//extern char *malloc ();
501Enumeration Func_1 (); 501Enumeration 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
520double Begin_Time, 520double Begin_Time,
521 End_Time, 521 End_Time,
522 User_Time; 522 User_Time;
523 523
524double Microseconds, 524double 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
533Proc_1 (Ptr_Val_Par) 533Proc_1 (Ptr_Val_Par)
534/******************/ 534/******************/
535 535
536REG Rec_Pointer Ptr_Val_Par; 536REG 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
547 = Ptr_Val_Par->variant.var_1.Int_Comp; 547 = Ptr_Val_Par->variant.var_1.Int_Comp;
548 Next_Record->Ptr_Comp = Ptr_Val_Par->Ptr_Comp; 548 Next_Record->Ptr_Comp = Ptr_Val_Par->Ptr_Comp;
549 Proc_3 (&Next_Record->Ptr_Comp); 549 Proc_3 (&Next_Record->Ptr_Comp);
550 /* Ptr_Val_Par->Ptr_Comp->Ptr_Comp 550 /* Ptr_Val_Par->Ptr_Comp->Ptr_Comp
551 == Ptr_Glob->Ptr_Comp */ 551 == Ptr_Glob->Ptr_Comp */
552 if (Next_Record->Discr == Ident_1) 552 if (Next_Record->Discr == Ident_1)
553 /* then, executed */ 553 /* then, executed */
554 { 554 {
555 Next_Record->variant.var_1.Int_Comp = 6; 555 Next_Record->variant.var_1.Int_Comp = 6;
556 Proc_6 (Ptr_Val_Par->variant.var_1.Enum_Comp, 556 Proc_6 (Ptr_Val_Par->variant.var_1.Enum_Comp,
557 &Next_Record->variant.var_1.Enum_Comp); 557 &Next_Record->variant.var_1.Enum_Comp);
558 Next_Record->Ptr_Comp = Ptr_Glob->Ptr_Comp; 558 Next_Record->Ptr_Comp = Ptr_Glob->Ptr_Comp;
559 Proc_7 (Next_Record->variant.var_1.Int_Comp, 10, 559 Proc_7 (Next_Record->variant.var_1.Int_Comp, 10,
560 &Next_Record->variant.var_1.Int_Comp); 560 &Next_Record->variant.var_1.Int_Comp);
561 } 561 }
562 else /* not executed */ 562 else /* not executed */
563 structassign (*Ptr_Val_Par, *Ptr_Val_Par->Ptr_Comp); 563 structassign (*Ptr_Val_Par, *Ptr_Val_Par->Ptr_Comp);
564} /* Proc_1 */ 564} /* Proc_1 */
565 565
566 566
567Proc_2 (Int_Par_Ref) 567Proc_2 (Int_Par_Ref)
568/******************/ 568/******************/
569 /* executed once */ 569 /* executed once */
570 /* *Int_Par_Ref == 1, becomes 4 */ 570 /* *Int_Par_Ref == 1, becomes 4 */
571 571
572One_Fifty *Int_Par_Ref; 572One_Fifty *Int_Par_Ref;
573{ 573{
574 One_Fifty Int_Loc; 574 One_Fifty Int_Loc;
575 Enumeration Enum_Loc; 575 Enumeration Enum_Loc;
576 576
577 Int_Loc = *Int_Par_Ref + 10; 577 Int_Loc = *Int_Par_Ref + 10;
578 do /* executed once */ 578 do /* executed once */
579 if (Ch_1_Glob == 'A') 579 if (Ch_1_Glob == 'A')
580 /* then, executed */ 580 /* then, executed */
581 { 581 {
582 Int_Loc -= 1; 582 Int_Loc -= 1;
583 *Int_Par_Ref = Int_Loc - Int_Glob; 583 *Int_Par_Ref = Int_Loc - Int_Glob;
584 Enum_Loc = Ident_1; 584 Enum_Loc = Ident_1;
585 } /* if */ 585 } /* if */
586 while (Enum_Loc != Ident_1); /* true */ 586 while (Enum_Loc != Ident_1); /* true */
587} /* Proc_2 */ 587} /* Proc_2 */
588 588
589 589
590Proc_3 (Ptr_Ref_Par) 590Proc_3 (Ptr_Ref_Par)
591/******************/ 591/******************/
592 /* executed once */ 592 /* executed once */
593 /* Ptr_Ref_Par becomes Ptr_Glob */ 593 /* Ptr_Ref_Par becomes Ptr_Glob */
594 594
595Rec_Pointer *Ptr_Ref_Par; 595Rec_Pointer *Ptr_Ref_Par;
596 596
597{ 597{
598 if (Ptr_Glob != Null) 598 if (Ptr_Glob != Null)
599 /* then, executed */ 599 /* then, executed */
600 *Ptr_Ref_Par = Ptr_Glob->Ptr_Comp; 600 *Ptr_Ref_Par = Ptr_Glob->Ptr_Comp;
601 Proc_7 (10, Int_Glob, &Ptr_Glob->variant.var_1.Int_Comp); 601 Proc_7 (10, Int_Glob, &Ptr_Glob->variant.var_1.Int_Comp);
602} /* Proc_3 */ 602} /* Proc_3 */
603 603
604 604
605Proc_4 () /* without parameters */ 605Proc_4 () /* without parameters */
606/*******/ 606/*******/
607 /* executed once */ 607 /* executed once */
608{ 608{
609 Boolean Bool_Loc; 609 Boolean Bool_Loc;
610 610
611 Bool_Loc = Ch_1_Glob == 'A'; 611 Bool_Loc = Ch_1_Glob == 'A';
612 Bool_Glob = Bool_Loc | Bool_Glob; 612 Bool_Glob = Bool_Loc | Bool_Glob;
613 Ch_2_Glob = 'B'; 613 Ch_2_Glob = 'B';
614} /* Proc_4 */ 614} /* Proc_4 */
615 615
616 616
617Proc_5 () /* without parameters */ 617Proc_5 () /* without parameters */
618/*******/ 618/*******/
619 /* executed once */ 619 /* executed once */
620{ 620{
621 Ch_1_Glob = 'A'; 621 Ch_1_Glob = 'A';
622 Bool_Glob = false; 622 Bool_Glob = false;
623} /* Proc_5 */ 623} /* Proc_5 */
624 624
625 625
626 /* Procedure for the assignment of structures, */ 626 /* Procedure for the assignment of structures, */
627 /* if the C compiler doesn't support this feature */ 627 /* if the C compiler doesn't support this feature */
628#ifdef NOSTRUCTASSIGN 628#ifdef NOSTRUCTASSIGN
629memcpy (d, s, l) 629memcpy (d, s, l)
630register char *d; 630register char *d;
631register char *s; 631register char *s;
632register int l; 632register int l;
633{ 633{
634 while (l--) *d++ = *s++; 634 while (l--) *d++ = *s++;
635} 635}
636#endif 636#endif
637 637
638 638
639Proc_6 (Enum_Val_Par, Enum_Ref_Par) 639Proc_6 (Enum_Val_Par, Enum_Ref_Par)
640/*********************************/ 640/*********************************/
641 /* executed once */ 641 /* executed once */
642 /* Enum_Val_Par == Ident_3, Enum_Ref_Par becomes Ident_2 */ 642 /* Enum_Val_Par == Ident_3, Enum_Ref_Par becomes Ident_2 */
643 643
644Enumeration Enum_Val_Par; 644Enumeration Enum_Val_Par;
645Enumeration *Enum_Ref_Par; 645Enumeration *Enum_Ref_Par;
646{ 646{
647 *Enum_Ref_Par = Enum_Val_Par; 647 *Enum_Ref_Par = Enum_Val_Par;
648 if (! Func_3 (Enum_Val_Par)) 648 if (! Func_3 (Enum_Val_Par))
649 /* then, not executed */ 649 /* then, not executed */
650 *Enum_Ref_Par = Ident_4; 650 *Enum_Ref_Par = Ident_4;
651 switch (Enum_Val_Par) 651 switch (Enum_Val_Par)
652 { 652 {
653 case Ident_1: 653 case Ident_1:
654 *Enum_Ref_Par = Ident_1; 654 *Enum_Ref_Par = Ident_1;
655 break; 655 break;
656 case Ident_2: 656 case Ident_2:
657 if (Int_Glob > 100) 657 if (Int_Glob > 100)
658 /* then */ 658 /* then */
659 *Enum_Ref_Par = Ident_1; 659 *Enum_Ref_Par = Ident_1;
660 else *Enum_Ref_Par = Ident_4; 660 else *Enum_Ref_Par = Ident_4;
661 break; 661 break;
662 case Ident_3: /* executed */ 662 case Ident_3: /* executed */
663 *Enum_Ref_Par = Ident_2; 663 *Enum_Ref_Par = Ident_2;
664 break; 664 break;
665 case Ident_4: break; 665 case Ident_4: break;
666 case Ident_5: 666 case Ident_5:
667 *Enum_Ref_Par = Ident_3; 667 *Enum_Ref_Par = Ident_3;
668 break; 668 break;
669 } /* switch */ 669 } /* switch */
670} /* Proc_6 */ 670} /* Proc_6 */
671 671
672 672
673Proc_7 (Int_1_Par_Val, Int_2_Par_Val, Int_Par_Ref) 673Proc_7 (Int_1_Par_Val, Int_2_Par_Val, Int_Par_Ref)
674/**********************************************/ 674/**********************************************/
675 /* executed three times */ 675 /* executed three times */
676 /* first call: Int_1_Par_Val == 2, Int_2_Par_Val == 3, */ 676 /* first call: Int_1_Par_Val == 2, Int_2_Par_Val == 3, */
677 /* Int_Par_Ref becomes 7 */ 677 /* Int_Par_Ref becomes 7 */
678 /* second call: Int_1_Par_Val == 10, Int_2_Par_Val == 5, */ 678 /* second call: Int_1_Par_Val == 10, Int_2_Par_Val == 5, */
679 /* Int_Par_Ref becomes 17 */ 679 /* Int_Par_Ref becomes 17 */
680 /* third call: Int_1_Par_Val == 6, Int_2_Par_Val == 10, */ 680 /* third call: Int_1_Par_Val == 6, Int_2_Par_Val == 10, */
681 /* Int_Par_Ref becomes 18 */ 681 /* Int_Par_Ref becomes 18 */
682One_Fifty Int_1_Par_Val; 682One_Fifty Int_1_Par_Val;
683One_Fifty Int_2_Par_Val; 683One_Fifty Int_2_Par_Val;
684One_Fifty *Int_Par_Ref; 684One_Fifty *Int_Par_Ref;
685{ 685{
686 One_Fifty Int_Loc; 686 One_Fifty Int_Loc;
687 687
688 Int_Loc = Int_1_Par_Val + 2; 688 Int_Loc = Int_1_Par_Val + 2;
689 *Int_Par_Ref = Int_2_Par_Val + Int_Loc; 689 *Int_Par_Ref = Int_2_Par_Val + Int_Loc;
690} /* Proc_7 */ 690} /* Proc_7 */
691 691
692 692