home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / sun / volume2 / tahoe-systat / patch01 / disks.c.diff < prev    next >
Encoding:
Text File  |  1990-10-23  |  1.7 KB  |  81 lines

  1. *** disks.c.orig    Mon Jun 11 15:32:59 1990
  2. --- disks.c    Tue Jun 12 19:04:05 1990
  3. ***************
  4. *** 15,20 ****
  5. --- 15,21 ----
  6.   static struct nlist nlst[] = {
  7.   #define    X_DK_NDRIVE    0
  8.       { "_dk_ndrive" },
  9. + #ifndef sun
  10.   #define    X_DK_MSPW    1
  11.       { "_dk_mspw" },
  12.   #ifdef vax
  13. ***************
  14. *** 23,36 ****
  15.   #define    X_UBDINIT    (X_DK_MSPW+2)
  16.       { "_ubdinit" },
  17.   #endif
  18. - #ifdef sun
  19. - #define    X_MBDINIT    (X_DK_MSPW+1)
  20. -     { "_mbdinit" },
  21. - #endif
  22.   #ifdef tahoe
  23.   #define    X_VBDINIT    (X_DK_MSPW+1)
  24.       { "_vbdinit" },
  25.   #endif
  26.       { "" },
  27.   };
  28.   
  29. --- 24,39 ----
  30.   #define    X_UBDINIT    (X_DK_MSPW+2)
  31.       { "_ubdinit" },
  32.   #endif
  33.   #ifdef tahoe
  34.   #define    X_VBDINIT    (X_DK_MSPW+1)
  35.       { "_vbdinit" },
  36.   #endif
  37. + #else                    /* is sun */
  38. + #define    X_MBDINIT    (X_DK_NDRIVE+1)
  39. +     { "_mbdinit" },
  40. + #define    X_DK_BPS    (X_MBDINIT+1)
  41. +     { "_dk_bps" },
  42. + #endif                    /* is sun */
  43.       { "" },
  44.   };
  45.   
  46. ***************
  47. *** 40,45 ****
  48. --- 43,51 ----
  49.       register char *cp;
  50.       static int once = 0;
  51.       static char buf[1024];
  52. + # ifdef sun
  53. +     long *bps;
  54. + # endif
  55.   
  56.       if (once)
  57.           return(1);
  58. ***************
  59. *** 54,61 ****
  60. --- 60,79 ----
  61.           return(0);
  62.       }
  63.       dk_mspw = (float *)calloc(dk_ndrive, sizeof (float));
  64. + #ifdef sun
  65. +     bps = (long *)calloc(dk_ndrive, sizeof (long));
  66. +     lseek(kmem, nlst[X_DK_BPS].n_value, L_SET);
  67. +     read(kmem, bps, dk_ndrive * sizeof (long));
  68. +     for( i = 0; i < dk_ndrive; i++ )
  69. +         if( bps[i] > 0 )
  70. +         dk_mspw[i] = 1.0 / bps[i];
  71. +         else
  72. +         dk_mspw[i] = 0.0;
  73. +     free( bps );
  74. + #else    
  75.       lseek(kmem, nlst[X_DK_MSPW].n_value, L_SET);
  76.       read(kmem, dk_mspw, dk_ndrive * sizeof (float));
  77. + #endif
  78.       dr_name = (char **)calloc(dk_ndrive, sizeof (char *));
  79.       dk_select = (int *)calloc(dk_ndrive, sizeof (int));
  80.       for (cp = buf, i = 0; i < dk_ndrive; i++) {
  81.