Store and use undecoded buffers for ATA IDENTIFY (PACKET) DEVICE, SCSI INQUIRY and SCSI MODE PAGE 2Ah in device reports in database.

This commit is contained in:
2018-12-23 23:51:06 +00:00
parent ded1e9a70b
commit 994ea2bc80
20 changed files with 1699 additions and 211 deletions

View File

@@ -160,14 +160,10 @@ namespace DiscImageChef.Database.Migrations
b.Property<int?>("FeaturesId");
b.Property<int?>("ModeSense2AId");
b.HasKey("Id");
b.HasIndex("FeaturesId");
b.HasIndex("ModeSense2AId");
b.ToTable("Mmc");
});
@@ -1079,10 +1075,6 @@ namespace DiscImageChef.Database.Migrations
b.HasOne("DiscImageChef.CommonTypes.Metadata.MmcFeatures", "Features")
.WithMany()
.HasForeignKey("FeaturesId");
b.HasOne("DiscImageChef.Decoders.SCSI.Modes+ModePage_2A", "ModeSense2A")
.WithMany()
.HasForeignKey("ModeSense2AId");
});
modelBuilder.Entity("DiscImageChef.CommonTypes.Metadata.Scsi", b =>

View File

@@ -287,17 +287,13 @@ namespace DiscImageChef.Database.Migrations
{
Id = table.Column<int>(nullable: false)
.Annotation("Sqlite:Autoincrement", true),
ModeSense2AId = table.Column<int>(nullable: true),
FeaturesId = table.Column<int>(nullable: true)
FeaturesId = table.Column<int>(nullable: true)
}, constraints: table =>
{
table.PrimaryKey("PK_Mmc", x => x.Id);
table.ForeignKey("FK_Mmc_MmcFeatures_FeaturesId", x => x.FeaturesId,
"MmcFeatures", "Id",
onDelete: ReferentialAction.Restrict);
table.ForeignKey("FK_Mmc_ModePage_2A_ModeSense2AId", x => x.ModeSense2AId,
"ModePage_2A", "Id",
onDelete: ReferentialAction.Restrict);
});
migrationBuilder.CreateTable("BlockDescriptor",
@@ -626,8 +622,6 @@ namespace DiscImageChef.Database.Migrations
migrationBuilder.CreateIndex("IX_Mmc_FeaturesId", "Mmc", "FeaturesId");
migrationBuilder.CreateIndex("IX_Mmc_ModeSense2AId", "Mmc", "ModeSense2AId");
migrationBuilder.CreateIndex("IX_Reports_ATAId", "Reports", "ATAId");
migrationBuilder.CreateIndex("IX_Reports_ATAPIId", "Reports", "ATAPIId");

View File

@@ -168,14 +168,10 @@ namespace DiscImageChef.Database.Migrations
b.Property<int?>("FeaturesId");
b.Property<int?>("ModeSense2AId");
b.HasKey("Id");
b.HasIndex("FeaturesId");
b.HasIndex("ModeSense2AId");
b.ToTable("Mmc");
});
@@ -1087,10 +1083,6 @@ namespace DiscImageChef.Database.Migrations
b.HasOne("DiscImageChef.CommonTypes.Metadata.MmcFeatures", "Features")
.WithMany()
.HasForeignKey("FeaturesId");
b.HasOne("DiscImageChef.Decoders.SCSI.Modes+ModePage_2A", "ModeSense2A")
.WithMany()
.HasForeignKey("ModeSense2AId");
});
modelBuilder.Entity("DiscImageChef.CommonTypes.Metadata.Scsi", b =>

View File

@@ -111,14 +111,10 @@ namespace DiscImageChef.Database.Migrations
b.Property<int?>("FeaturesId");
b.Property<int?>("ModeSense2AId");
b.HasKey("Id");
b.HasIndex("FeaturesId");
b.HasIndex("ModeSense2AId");
b.ToTable("Mmc");
});
@@ -1094,10 +1090,6 @@ namespace DiscImageChef.Database.Migrations
b.HasOne("DiscImageChef.CommonTypes.Metadata.MmcFeatures", "Features")
.WithMany()
.HasForeignKey("FeaturesId");
b.HasOne("DiscImageChef.Decoders.SCSI.Modes+ModePage_2A", "ModeSense2A")
.WithMany()
.HasForeignKey("ModeSense2AId");
});
modelBuilder.Entity("DiscImageChef.CommonTypes.Metadata.Scsi", b =>

View File

@@ -111,14 +111,10 @@ namespace DiscImageChef.Database.Migrations
b.Property<int?>("FeaturesId");
b.Property<int?>("ModeSense2AId");
b.HasKey("Id");
b.HasIndex("FeaturesId");
b.HasIndex("ModeSense2AId");
b.ToTable("Mmc");
});
@@ -1164,10 +1160,6 @@ namespace DiscImageChef.Database.Migrations
b.HasOne("DiscImageChef.CommonTypes.Metadata.MmcFeatures", "Features")
.WithMany()
.HasForeignKey("FeaturesId");
b.HasOne("DiscImageChef.Decoders.SCSI.Modes+ModePage_2A", "ModeSense2A")
.WithMany()
.HasForeignKey("ModeSense2AId");
});
modelBuilder.Entity("DiscImageChef.CommonTypes.Metadata.Scsi", b =>

View File

@@ -111,14 +111,10 @@ namespace DiscImageChef.Database.Migrations
b.Property<int?>("FeaturesId");
b.Property<int?>("ModeSense2AId");
b.HasKey("Id");
b.HasIndex("FeaturesId");
b.HasIndex("ModeSense2AId");
b.ToTable("Mmc");
});
@@ -1180,10 +1176,6 @@ namespace DiscImageChef.Database.Migrations
b.HasOne("DiscImageChef.CommonTypes.Metadata.MmcFeatures", "Features")
.WithMany()
.HasForeignKey("FeaturesId");
b.HasOne("DiscImageChef.Decoders.SCSI.Modes+ModePage_2A", "ModeSense2A")
.WithMany()
.HasForeignKey("ModeSense2AId");
});
modelBuilder.Entity("DiscImageChef.CommonTypes.Metadata.Scsi", b =>

View File

@@ -111,14 +111,10 @@ namespace DiscImageChef.Database.Migrations
b.Property<int?>("FeaturesId");
b.Property<int?>("ModeSense2AId");
b.HasKey("Id");
b.HasIndex("FeaturesId");
b.HasIndex("ModeSense2AId");
b.ToTable("Mmc");
});
@@ -1200,10 +1196,6 @@ namespace DiscImageChef.Database.Migrations
b.HasOne("DiscImageChef.CommonTypes.Metadata.MmcFeatures", "Features")
.WithMany()
.HasForeignKey("FeaturesId");
b.HasOne("DiscImageChef.Decoders.SCSI.Modes+ModePage_2A", "ModeSense2A")
.WithMany()
.HasForeignKey("ModeSense2AId");
});
modelBuilder.Entity("DiscImageChef.CommonTypes.Metadata.Scsi", b =>

View File

@@ -111,14 +111,10 @@ namespace DiscImageChef.Database.Migrations
b.Property<int?>("FeaturesId");
b.Property<int?>("ModeSense2AId");
b.HasKey("Id");
b.HasIndex("FeaturesId");
b.HasIndex("ModeSense2AId");
b.ToTable("Mmc");
});
@@ -1216,10 +1212,6 @@ namespace DiscImageChef.Database.Migrations
b.HasOne("DiscImageChef.CommonTypes.Metadata.MmcFeatures", "Features")
.WithMany()
.HasForeignKey("FeaturesId");
b.HasOne("DiscImageChef.Decoders.SCSI.Modes+ModePage_2A", "ModeSense2A")
.WithMany()
.HasForeignKey("ModeSense2AId");
});
modelBuilder.Entity("DiscImageChef.CommonTypes.Metadata.Scsi", b =>

View File

@@ -111,14 +111,10 @@ namespace DiscImageChef.Database.Migrations
b.Property<int?>("FeaturesId");
b.Property<int?>("ModeSense2AId");
b.HasKey("Id");
b.HasIndex("FeaturesId");
b.HasIndex("ModeSense2AId");
b.ToTable("Mmc");
});
@@ -1230,10 +1226,6 @@ namespace DiscImageChef.Database.Migrations
b.HasOne("DiscImageChef.CommonTypes.Metadata.MmcFeatures", "Features")
.WithMany()
.HasForeignKey("FeaturesId");
b.HasOne("DiscImageChef.Decoders.SCSI.Modes+ModePage_2A", "ModeSense2A")
.WithMany()
.HasForeignKey("ModeSense2AId");
});
modelBuilder.Entity("DiscImageChef.CommonTypes.Metadata.Scsi", b =>

View File

@@ -111,14 +111,10 @@ namespace DiscImageChef.Database.Migrations
b.Property<int?>("FeaturesId");
b.Property<int?>("ModeSense2AId");
b.HasKey("Id");
b.HasIndex("FeaturesId");
b.HasIndex("ModeSense2AId");
b.ToTable("Mmc");
});
@@ -1246,10 +1242,6 @@ namespace DiscImageChef.Database.Migrations
b.HasOne("DiscImageChef.CommonTypes.Metadata.MmcFeatures", "Features")
.WithMany()
.HasForeignKey("FeaturesId");
b.HasOne("DiscImageChef.Decoders.SCSI.Modes+ModePage_2A", "ModeSense2A")
.WithMany()
.HasForeignKey("ModeSense2AId");
});
modelBuilder.Entity("DiscImageChef.CommonTypes.Metadata.Scsi", b =>

View File

@@ -125,14 +125,10 @@ namespace DiscImageChef.Database.Migrations
b.Property<int?>("FeaturesId");
b.Property<int?>("ModeSense2AId");
b.HasKey("Id");
b.HasIndex("FeaturesId");
b.HasIndex("ModeSense2AId");
b.ToTable("Mmc");
});
@@ -1312,10 +1308,6 @@ namespace DiscImageChef.Database.Migrations
b.HasOne("DiscImageChef.CommonTypes.Metadata.MmcFeatures", "Features")
.WithMany()
.HasForeignKey("FeaturesId");
b.HasOne("DiscImageChef.Decoders.SCSI.Modes+ModePage_2A", "ModeSense2A")
.WithMany()
.HasForeignKey("ModeSense2AId");
});
modelBuilder.Entity("DiscImageChef.CommonTypes.Metadata.Scsi", b =>

View File

@@ -0,0 +1,90 @@
using System;
using Microsoft.EntityFrameworkCore.Migrations;
namespace DiscImageChef.Database.Migrations
{
public partial class UseBinaryDataForIdentifyInquiryAndModesInReports : Migration
{
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropTable(
name: "ModePage_2A");
migrationBuilder.AddColumn<byte[]>(
name: "ModeSense2AData",
table: "Mmc",
nullable: true);
}
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropColumn(
name: "ModeSense2AData",
table: "Mmc");
migrationBuilder.CreateTable(
name: "ModePage_2A",
columns: table => new
{
Id = table.Column<int>(nullable: false)
.Annotation("Sqlite:Autoincrement", true),
AccurateCDDA = table.Column<bool>(nullable: false),
AudioPlay = table.Column<bool>(nullable: false),
BCK = table.Column<bool>(nullable: false),
BUF = table.Column<bool>(nullable: false),
BufferSize = table.Column<ushort>(nullable: false),
C2Pointer = table.Column<bool>(nullable: false),
CDDACommand = table.Column<bool>(nullable: false),
CMRSupported = table.Column<ushort>(nullable: false),
Composite = table.Column<bool>(nullable: false),
CurrentSpeed = table.Column<ushort>(nullable: false),
CurrentWriteSpeed = table.Column<ushort>(nullable: false),
CurrentWriteSpeedSelected = table.Column<ushort>(nullable: false),
DeinterlaveSubchannel = table.Column<bool>(nullable: false),
DigitalPort1 = table.Column<bool>(nullable: false),
DigitalPort2 = table.Column<bool>(nullable: false),
Eject = table.Column<bool>(nullable: false),
ISRC = table.Column<bool>(nullable: false),
LSBF = table.Column<bool>(nullable: false),
LeadInPW = table.Column<bool>(nullable: false),
Length = table.Column<byte>(nullable: false),
LoadingMechanism = table.Column<byte>(nullable: false),
Lock = table.Column<bool>(nullable: false),
LockState = table.Column<bool>(nullable: false),
MaxWriteSpeed = table.Column<ushort>(nullable: false),
MaximumSpeed = table.Column<ushort>(nullable: false),
Method2 = table.Column<bool>(nullable: false),
Mode2Form1 = table.Column<bool>(nullable: false),
Mode2Form2 = table.Column<bool>(nullable: false),
MultiSession = table.Column<bool>(nullable: false),
PS = table.Column<bool>(nullable: false),
PreventJumper = table.Column<bool>(nullable: false),
RCK = table.Column<bool>(nullable: false),
ReadBarcode = table.Column<bool>(nullable: false),
ReadCDR = table.Column<bool>(nullable: false),
ReadCDRW = table.Column<bool>(nullable: false),
ReadDVDR = table.Column<bool>(nullable: false),
ReadDVDRAM = table.Column<bool>(nullable: false),
ReadDVDROM = table.Column<bool>(nullable: false),
RotationControlSelected = table.Column<byte>(nullable: false),
SCC = table.Column<bool>(nullable: false),
SDP = table.Column<bool>(nullable: false),
SSS = table.Column<bool>(nullable: false),
SeparateChannelMute = table.Column<bool>(nullable: false),
SeparateChannelVolume = table.Column<bool>(nullable: false),
Subchannel = table.Column<bool>(nullable: false),
SupportedVolumeLevels = table.Column<ushort>(nullable: false),
TestWrite = table.Column<bool>(nullable: false),
UPC = table.Column<bool>(nullable: false),
WriteCDR = table.Column<bool>(nullable: false),
WriteCDRW = table.Column<bool>(nullable: false),
WriteDVDR = table.Column<bool>(nullable: false),
WriteDVDRAM = table.Column<bool>(nullable: false)
},
constraints: table =>
{
table.PrimaryKey("PK_ModePage_2A", x => x.Id);
});
}
}
}

View File

@@ -115,14 +115,12 @@ namespace DiscImageChef.Database.Migrations
b.Property<int?>("FeaturesId");
b.Property<int?>("ModeSense2AId");
b.Property<byte[]>("ModeSense2AData");
b.HasKey("Id");
b.HasIndex("FeaturesId");
b.HasIndex("ModeSense2AId");
b.ToTable("Mmc");
});
@@ -1139,119 +1137,6 @@ namespace DiscImageChef.Database.Migrations
b.ToTable("Versions");
});
modelBuilder.Entity("DiscImageChef.Decoders.SCSI.Modes+ModePage_2A", b =>
{
b.Property<int>("Id").ValueGeneratedOnAdd();
b.Property<bool>("AccurateCDDA");
b.Property<bool>("AudioPlay");
b.Property<bool>("BCK");
b.Property<bool>("BUF");
b.Property<ushort>("BufferSize");
b.Property<bool>("C2Pointer");
b.Property<bool>("CDDACommand");
b.Property<ushort>("CMRSupported");
b.Property<bool>("Composite");
b.Property<ushort>("CurrentSpeed");
b.Property<ushort>("CurrentWriteSpeed");
b.Property<ushort>("CurrentWriteSpeedSelected");
b.Property<bool>("DeinterlaveSubchannel");
b.Property<bool>("DigitalPort1");
b.Property<bool>("DigitalPort2");
b.Property<bool>("Eject");
b.Property<bool>("ISRC");
b.Property<bool>("LSBF");
b.Property<bool>("LeadInPW");
b.Property<byte>("Length");
b.Property<byte>("LoadingMechanism");
b.Property<bool>("Lock");
b.Property<bool>("LockState");
b.Property<ushort>("MaxWriteSpeed");
b.Property<ushort>("MaximumSpeed");
b.Property<bool>("Method2");
b.Property<bool>("Mode2Form1");
b.Property<bool>("Mode2Form2");
b.Property<bool>("MultiSession");
b.Property<bool>("PS");
b.Property<bool>("PreventJumper");
b.Property<bool>("RCK");
b.Property<bool>("ReadBarcode");
b.Property<bool>("ReadCDR");
b.Property<bool>("ReadCDRW");
b.Property<bool>("ReadDVDR");
b.Property<bool>("ReadDVDRAM");
b.Property<bool>("ReadDVDROM");
b.Property<byte>("RotationControlSelected");
b.Property<bool>("SCC");
b.Property<bool>("SDP");
b.Property<bool>("SSS");
b.Property<bool>("SeparateChannelMute");
b.Property<bool>("SeparateChannelVolume");
b.Property<bool>("Subchannel");
b.Property<ushort>("SupportedVolumeLevels");
b.Property<bool>("TestWrite");
b.Property<bool>("UPC");
b.Property<bool>("WriteCDR");
b.Property<bool>("WriteCDRW");
b.Property<bool>("WriteDVDR");
b.Property<bool>("WriteDVDRAM");
b.HasKey("Id");
b.ToTable("ModePage_2A");
});
modelBuilder.Entity("DiscImageChef.CommonTypes.Metadata.Ata",
b =>
{
@@ -1273,14 +1158,12 @@ namespace DiscImageChef.Database.Migrations
.WithMany("DensityCodes").HasForeignKey("SscSupportedMediaId");
});
modelBuilder.Entity("DiscImageChef.CommonTypes.Metadata.Mmc", b =>
{
b.HasOne("DiscImageChef.CommonTypes.Metadata.MmcFeatures", "Features").WithMany()
.HasForeignKey("FeaturesId");
b.HasOne("DiscImageChef.Decoders.SCSI.Modes+ModePage_2A", "ModeSense2A").WithMany()
.HasForeignKey("ModeSense2AId");
});
modelBuilder.Entity("DiscImageChef.CommonTypes.Metadata.Mmc",
b =>
{
b.HasOne("DiscImageChef.CommonTypes.Metadata.MmcFeatures", "Features").WithMany()
.HasForeignKey("FeaturesId");
});
modelBuilder.Entity("DiscImageChef.CommonTypes.Metadata.Scsi", b =>
{