~grimler/Heimdall

f6c4698c8b77c63cdaa6987f7a32e2163b035fdb — Henrik Grimler 2 years ago d81e0f5
Revert "PIT: unknown version in PIT header has to be protocol version"

This assumption was wrong.  The number is really the number of logical
units in the storage, which tends to increase over time as the storage
space is increased I suppose.

This reverts commit e916c679ed04f5ba44cc5a9cbf340c8bf96b92fb.
3 files changed, 12 insertions(+), 12 deletions(-)

M heimdall/source/Interface.cpp
M libpit/source/libpit.cpp
M libpit/source/libpit.h
M heimdall/source/Interface.cpp => heimdall/source/Interface.cpp +1 -1
@@ 211,7 211,7 @@ void Interface::PrintPit(const PitData *pitData)
	Interface::Print("Entry Count: %d\n", pitData->GetEntryCount());
	Interface::Print("Unknown string: %s\n", pitData->GetComTar2());
	Interface::Print("CPU/bootloader tag: %s\n", pitData->GetCpuBlId());
	Interface::Print("Protocol version: 0x%04x\n", pitData->GetProtocolVersion());
	Interface::Print("Version(?): 0x%04x\n", pitData->GetUnknown());

	for (unsigned int i = 0; i < pitData->GetEntryCount(); i++)
	{

M libpit/source/libpit.cpp => libpit/source/libpit.cpp +5 -5
@@ 69,7 69,7 @@ PitData::PitData()
	com_tar2[0] = '\0';
	cpu_bl_id[0] = '\0';

	protocol_version = 0;
	unknown_version = 0;
}

PitData::~PitData()


@@ 98,7 98,7 @@ bool PitData::Unpack(const unsigned char *data)
		return (false);
	cpu_bl_id[8]='\0';

	protocol_version = PitData::UnpackShort(data, 24);
	unknown_version = PitData::UnpackShort(data, 24);

	unsigned int integerValue;
	unsigned int entryOffset;


@@ 153,7 153,7 @@ void PitData::Pack(unsigned char *data) const
	memcpy(&data[8], com_tar2, 8);
	memcpy(&data[16], cpu_bl_id, 8);

	PitData::PackShort(data, 24, protocol_version);
	PitData::PackShort(data, 24, unknown_version);

	int entryOffset;



@@ 187,7 187,7 @@ bool PitData::Matches(const PitData *otherPitData) const
	if (entryCount == otherPitData->entryCount &&
	    (strncmp(com_tar2, otherPitData->com_tar2, 8) == 0) &&
	    (strncmp(cpu_bl_id, otherPitData->cpu_bl_id, 8) == 0) &&
	    protocol_version == otherPitData->protocol_version)
	    unknown_version == otherPitData->unknown_version)
	{
		for (unsigned int i = 0; i < entryCount; i++)
		{


@@ 211,7 211,7 @@ void PitData::Clear(void)

	cpu_bl_id[0] = '\0';

	protocol_version = 0;
	unknown_version = 0;

	for (unsigned int i = 0; i < entries.size(); i++)
		delete entries[i];

M libpit/source/libpit.h => libpit/source/libpit.h +6 -6
@@ 261,12 261,12 @@ namespace libpit

		private:

			unsigned int entryCount;          // 0x04
			char com_tar2[8+1];               // 0x08
			unsigned int entryCount;         // 0x04
			char com_tar2[8+1];              // 0x08

			char cpu_bl_id[8+1];              // 0x10
			char cpu_bl_id[8+1];             // 0x10

			unsigned short protocol_version;  // 0x18
			unsigned short unknown_version;  // 0x18

			// Entries start at 0x1C
			std::vector<PitEntry *> entries;


@@ 375,9 375,9 @@ namespace libpit
				return cpu_bl_id;
			}

			unsigned int GetProtocolVersion(void) const
			unsigned int GetUnknown(void) const
			{
				return protocol_version;
				return unknown_version;
			}
	};
}