Ejemplo n.º 1
0
        private Int32 SPIC;   // sectors per (perfect) interleave cycle

        public InterleavedVolume(CHSVolume volume, Int32 interleave, Int32 headSkew, Int32 cylSkew, Int32 start)
        {
            if (interleave < 0)
            {
                throw new ArgumentOutOfRangeException("interleave");
            }
            if (interleave == 0)
            {
                interleave = 1;
            }
            mVol        = volume;
            mSource     = String.Format("{0} [I={1:D0},{2:D0},{3:D0}@{4:D0}]", volume.Source, interleave, headSkew, cylSkew, start);
            mInfo       = String.Format("{0}\nInterleave={1:D0},HeadSkew={2:D0},CylSkew={3:D0},Start={4:D0}", volume.Info, interleave, headSkew, cylSkew, start);
            mInterleave = interleave;
            mHeadSkew   = headSkew;
            mCylSkew    = cylSkew;
            mStart      = start;
            SPT         = mVol.MaxSector(0, 0) - mVol.MinSector(0, 0) + 1;
            TPC         = mVol.MaxHead - mVol.MinHead + 1;
            SPIC        = SPT / GCD(SPT, interleave);
        }
Ejemplo n.º 2
0
 public override Int32 MaxSector(Int32 cylinder, Int32 head)
 {
     return(mVol.MaxSector(cylinder, head));
 }