コード例 #1
0
ファイル: ATA.cs プロジェクト: Bargomer/COSMOS-OS
 public static void Detect()
 {
     int num = 1;
     for (int i = 0; i < BlockDevice.Devices.Count; i++)
     {
         if (BlockDevice.Devices[i] is AtaPio)
         {
             AtaPio ataPio = (AtaPio)BlockDevice.Devices[i];
             ataPio.ReadBlock(0uL, 2u, ATA.a.Data);
             Devices.device device = new Devices.device();
             device.name = "/dev/sd" + ATA.b.ToString();
             device.dev = ataPio;
             Devices.dev.Add(device);
             ATA.b += '\u0001';
         }
         else
         {
             if (BlockDevice.Devices[i] is Partition)
             {
                 Partition dev = BlockDevice.Devices[i] as Partition;
                 Devices.device device = new Devices.device();
                 device.name = "/dev/sda" + num.ToString();
                 device.dev = dev;
                 num++;
                 Devices.dev.Add(device);
             }
         }
     }
 }
コード例 #2
0
ファイル: ATA.cs プロジェクト: Bargomer/COSMOS-OS
 public static void ReadMBR(AtaPio dev)
 {
     BinaryReader binaryReader = new BinaryReader(ATA.a);
     for (int i = 0; i < 4; i++)
     {
         binaryReader.BaseStream.Position = 446 + i * 16 + 8;
         uint num = binaryReader.ReadUInt32();
         uint num2 = binaryReader.ReadUInt32();
         if (num2 != 0u)
         {
             Partition dev2 = new Partition(dev, (ulong)num, (ulong)num2);
             Devices.device device = new Devices.device();
             device.dev = dev2;
             device.name = "/dev/sd" + ATA.b.ToString() + (i + 1).ToString();
             Devices.dev.Add(device);
         }
     }
 }
コード例 #3
0
ファイル: DevFS.cs プロジェクト: Bargomer/COSMOS-OS
 public override byte[] readFile(string name)
 {
     Devices.device device = new Devices.device();
     for (int i = 0; i < Devices.dev.Count; i++)
     {
         int num = Util.LastIndexOf(Devices.dev[i].name, this.Seperator);
         if (Devices.dev[i].name.Substring(num + 1) == Util.cleanName(name))
         {
             byte[] array = new byte[Devices.dev[i].dev.get_BlockCount() * Devices.dev[i].dev.get_BlockSize()];
             byte[] array2 = new byte[Devices.dev[i].dev.get_BlockSize()];
             for (int j = 0; j < (int)((uint)Devices.dev[i].dev.get_BlockCount()); j++)
             {
                 Devices.dev[i].dev.ReadBlock((ulong)((long)j), 1u, array2);
                 for (int k = 0; k < (int)((uint)Devices.dev[i].dev.get_BlockSize()); k++)
                 {
                     array[j * (int)((uint)Devices.dev[i].dev.get_BlockSize()) + k] = array2[k];
                 }
             }
             return array;
         }
     }
     throw new Exception("File not found!");
 }