- Changed all registry functions to WCHAR. - Implemented packed/unpacked names for keys and values. - Fixed the hash values for very short data. - Fixed the debug build. - Don't search for a serial mouse, if the port is used for debug prints. Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hardware.c Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hwapm.c Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hwcpu.c Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hwpci.c Modified: trunk/reactos/boot/freeldr/freeldr/cache/cache.c Modified: trunk/reactos/boot/freeldr/freeldr/comm/rs232.c Modified: trunk/reactos/boot/freeldr/freeldr/debug.c Modified: trunk/reactos/boot/freeldr/freeldr/freeldr_base.xml Modified: trunk/reactos/boot/freeldr/freeldr/freeldr_base64k.xml Modified: trunk/reactos/boot/freeldr/freeldr/freeldr_main.xml Modified: trunk/reactos/boot/freeldr/freeldr/freeldr_startup.xml Modified: trunk/reactos/boot/freeldr/freeldr/include/comm.h Modified: trunk/reactos/boot/freeldr/freeldr/include/debug.h Modified: trunk/reactos/boot/freeldr/freeldr/include/freeldr.h Modified: trunk/reactos/boot/freeldr/freeldr/include/registry.h Modified: trunk/reactos/boot/freeldr/freeldr/include/version.h Modified: trunk/reactos/boot/freeldr/freeldr/reactos/binhive.c Modified: trunk/reactos/boot/freeldr/freeldr/reactos/reactos.c Modified: trunk/reactos/boot/freeldr/freeldr/reactos/registry.c Modified: trunk/reactos/boot/freeldr/freeldr/reactos/setupldr.c _____
Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hardware.c --- trunk/reactos/boot/freeldr/freeldr/arch/i386/hardware.c 2005-11-18 20:35:42 UTC (rev 19328) +++ trunk/reactos/boot/freeldr/freeldr/arch/i386/hardware.c 2005-11-18 22:04:17 UTC (rev 19329) @@ -117,7 +117,7 @@
} __attribute__((packed)) CM_PNP_BIOS_INSTALLATION_CHECK, *PCM_PNP_BIOS_INSTALLATION_CHECK;
-static char Hex[] = "0123456789ABCDEF"; +static WCHAR Hex[] = L"0123456789ABCDEF"; static unsigned int delay_count = 1;
@@ -247,7 +247,7 @@
/* Set 'Component Information' value */ Error = RegSetValue(ComponentKey, - "Component Information", + L"Component Information", REG_BINARY, (PCHAR)&CompInfo, sizeof(CM_COMPONENT_INFORMATION)); @@ -264,7 +264,7 @@ PCM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor; PCM_PNP_BIOS_DEVICE_NODE DeviceNode; PCM_PNP_BIOS_INSTALLATION_CHECK InstData; - char Buffer[80]; + WCHAR Buffer[80]; FRLDRHKEY BusKey; ULONG x; ULONG NodeSize = 0; @@ -302,8 +302,8 @@ DbgPrint((DPRINT_HWDETECT, "Estimated buffer size %u\n", NodeSize * NodeCount));
/* Create new bus key */ - sprintf(Buffer, - "MultifunctionAdapter\%u", *BusNumber); + swprintf(Buffer, + L"MultifunctionAdapter\%u", *BusNumber); Error = RegCreateKey(SystemKey, Buffer, &BusKey); @@ -324,10 +324,10 @@
/* Set 'Identifier' value */ Error = RegSetValue(BusKey, - "Identifier", + L"Identifier", REG_SZ, - "PNP BIOS", - 9); + (PCHAR)L"PNP BIOS", + 9 * sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error)); @@ -402,7 +402,7 @@
/* Set 'Configuration Data' value */ Error = RegSetValue(BusKey, - "Configuration Data", + L"Configuration Data", REG_FULL_RESOURCE_DESCRIPTOR, (PCHAR) FullResourceDescriptor, Size); @@ -484,7 +484,7 @@ DiskGeometry->BytesPerSector));
Error = RegSetValue(DiskKey, - "Configuration Data", + L"Configuration Data", REG_FULL_RESOURCE_DESCRIPTOR, (PCHAR) FullResourceDescriptor, Size); @@ -507,7 +507,7 @@ ULONG i; ULONG Checksum; ULONG Signature; - CHAR Identifier[20]; + WCHAR Identifier[20]; LONG Error;
/* Read the MBR */ @@ -541,7 +541,7 @@ Identifier[5] = Hex[(Checksum >> 8) & 0x0F]; Identifier[6] = Hex[(Checksum >> 4) & 0x0F]; Identifier[7] = Hex[Checksum & 0x0F]; - Identifier[8] = '-'; + Identifier[8] = L'-'; Identifier[9] = Hex[(Signature >> 28) & 0x0F]; Identifier[10] = Hex[(Signature >> 24) & 0x0F]; Identifier[11] = Hex[(Signature >> 20) & 0x0F]; @@ -550,17 +550,17 @@ Identifier[14] = Hex[(Signature >> 8) & 0x0F]; Identifier[15] = Hex[(Signature >> 4) & 0x0F]; Identifier[16] = Hex[Signature & 0x0F]; - Identifier[17] = '-'; - Identifier[18] = 'A'; + Identifier[17] = L'-'; + Identifier[18] = L'A'; Identifier[19] = 0; - DbgPrint((DPRINT_HWDETECT, "Identifier: %x\n", Identifier)); + DbgPrint((DPRINT_HWDETECT, "Identifier: %S\n", Identifier));
/* Set identifier */ Error = RegSetValue(DiskKey, - "Identifier", + L"Identifier", REG_SZ, - Identifier, - 20); + (PCHAR)Identifier, + sizeof(Identifier)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, @@ -577,7 +577,7 @@ PCM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor; PCM_INT13_DRIVE_PARAMETER Int13Drives; GEOMETRY Geometry; - CHAR Buffer[80]; + WCHAR Buffer[80]; FRLDRHKEY DiskKey; ULONG DiskCount; ULONG Size; @@ -662,7 +662,7 @@
/* Set 'Configuration Data' value */ Error = RegSetValue(SystemKey, - "Configuration Data", + L"Configuration Data", REG_FULL_RESOURCE_DESCRIPTOR, (PCHAR) FullResourceDescriptor, Size); @@ -679,9 +679,9 @@ for (i = 0; i < DiskCount; i++) { /* Create disk key */ - sprintf (Buffer, - "DiskController\0\DiskPeripheral\%u", - i); + swprintf (Buffer, + L"DiskController\0\DiskPeripheral\%u", + i);
Error = RegCreateKey(BusKey, Buffer, @@ -691,7 +691,7 @@ DbgPrint((DPRINT_HWDETECT, "Failed to create drive key\n")); continue; } - DbgPrint((DPRINT_HWDETECT, "Created key: %s\n", Buffer)); + DbgPrint((DPRINT_HWDETECT, "Created key: %S\n", Buffer));
/* Set disk values */ SetHarddiskConfigurationData(DiskKey, 0x80 + i); @@ -745,8 +745,8 @@ PCM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor; PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor; PCM_FLOPPY_DEVICE_DATA FloppyData; - char KeyName[32]; - char Identifier[20]; + WCHAR KeyName[32]; + WCHAR Identifier[20]; FRLDRHKEY PeripheralKey; ULONG Size; LONG Error; @@ -766,10 +766,10 @@
Ptr = GetInt1eTable();
- sprintf(KeyName, "FloppyDiskPeripheral\%u", FloppyNumber); + swprintf(KeyName, L"FloppyDiskPeripheral\%u", FloppyNumber);
Error = RegCreateKey(ControllerKey, - "FloppyDiskPeripheral\0", + KeyName, &PeripheralKey); if (Error != ERROR_SUCCESS) { @@ -777,7 +777,7 @@ return; }
- DbgPrint((DPRINT_HWDETECT, "Created key: %s\n", KeyName)); + DbgPrint((DPRINT_HWDETECT, "Created key: %S\n", KeyName));
/* Set 'ComponentInformation' value */ SetComponentInformation(PeripheralKey, @@ -818,7 +818,7 @@
/* Set 'Configuration Data' value */ Error = RegSetValue(PeripheralKey, - "Configuration Data", + L"Configuration Data", REG_FULL_RESOURCE_DESCRIPTOR, (PCHAR) FullResourceDescriptor, Size); @@ -832,12 +832,12 @@ }
/* Set 'Identifier' value */ - sprintf(Identifier, "FLOPPY%u", FloppyNumber + 1); + swprintf(Identifier, L"FLOPPY%u", FloppyNumber + 1); Error = RegSetValue(PeripheralKey, - "Identifier", + L"Identifier", REG_SZ, (PCHAR)Identifier, - strlen(Identifier) + 1); + (wcslen(Identifier) + 1) * sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, @@ -868,7 +868,7 @@ return;
Error = RegCreateKey(BusKey, - "DiskController\0", + L"DiskController\0", &ControllerKey); if (Error != ERROR_SUCCESS) { @@ -928,7 +928,7 @@
/* Set 'Configuration Data' value */ Error = RegSetValue(ControllerKey, - "Configuration Data", + L"Configuration Data", REG_FULL_RESOURCE_DESCRIPTOR, (PCHAR) FullResourceDescriptor, Size); @@ -1112,12 +1112,13 @@ { CM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor; char Buffer[256]; - char Identifier[256]; + WCHAR Identifier[256]; FRLDRHKEY PeripheralKey; ULONG MouseType; ULONG Length; ULONG i; ULONG j; + ULONG k; LONG Error;
DbgPrint((DPRINT_HWDETECT, @@ -1150,12 +1151,13 @@ Buffer));
/* Copy PnpId string */ - memcpy(&Identifier[0], - &Buffer[3], - 7); - memcpy(&Identifier[7], - " - ", - 4); + for (i = 0; i < 7; i++) + { + Identifier[i] = Buffer[3+i]; + } + memcpy(&Identifier[7], + L" - ", + 3 * sizeof(WCHAR));
/* Skip device serial number */ i = 10; @@ -1209,43 +1211,44 @@ i -= 3; if (i > j + 1) { - memcpy(&Identifier[10], - &Buffer[j], - i - j); + for (k = 0; k < i - j; k++) + { + Identifier[k + 10] = Buffer[k + j]; + } Identifier[10 + (i-j)] = 0; } }
DbgPrint((DPRINT_HWDETECT, - "Identifier string: %s\n", + "Identifier string: %S\n", Identifier)); }
- if (Length == 0 || strlen(Identifier) < 11) + if (Length == 0 || wcslen(Identifier) < 11) { switch (MouseType) { case MOUSE_TYPE_LOGITECH: - strcpy (Identifier, - "LOGITECH SERIAL MOUSE"); + wcscpy (Identifier, + L"LOGITECH SERIAL MOUSE"); break;
case MOUSE_TYPE_WHEELZ: - strcpy (Identifier, - "MICROSOFT SERIAL MOUSE WITH WHEEL"); + wcscpy (Identifier, + L"MICROSOFT SERIAL MOUSE WITH WHEEL"); break;
case MOUSE_TYPE_MICROSOFT: default: - strcpy (Identifier, - "MICROSOFT SERIAL MOUSE"); + wcscpy (Identifier, + L"MICROSOFT SERIAL MOUSE"); break; } }
/* Create 'PointerPeripheral' key */ Error = RegCreateKey(ControllerKey, - "PointerPeripheral\0", + L"PointerPeripheral\0", &PeripheralKey); if (Error != ERROR_SUCCESS) { @@ -1269,7 +1272,7 @@ FullResourceDescriptor.PartialResourceList.Count = 0;
Error = RegSetValue(PeripheralKey, - "Configuration Data", + L"Configuration Data", REG_FULL_RESOURCE_DESCRIPTOR, (PCHAR)&FullResourceDescriptor, sizeof(CM_FULL_RESOURCE_DESCRIPTOR) - @@ -1283,10 +1286,10 @@
/* Set 'Identifier' value */ Error = RegSetValue(PeripheralKey, - "Identifier", + L"Identifier", REG_SZ, - Identifier, - strlen(Identifier) + 1); + (PCHAR)Identifier, + (wcslen(Identifier) + 1) * sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, @@ -1305,7 +1308,7 @@ PCM_SERIAL_DEVICE_DATA SerialDeviceData; ULONG Irq[4] = {4, 3, 4, 3}; ULONG Base; - char Buffer[80]; + WCHAR Buffer[80]; PUSHORT BasePtr; ULONG ControllerNumber = 0; FRLDRHKEY ControllerKey; @@ -1329,8 +1332,8 @@ Base));
/* Create controller key */ - sprintf(Buffer, - "SerialController\%u", + swprintf(Buffer, + L"SerialController\%u", ControllerNumber);
Error = RegCreateKey(BusKey, @@ -1341,7 +1344,7 @@ DbgPrint((DPRINT_HWDETECT, "Failed to create controller key\n")); continue; } - DbgPrint((DPRINT_HWDETECT, "Created key: %s\n", Buffer)); + DbgPrint((DPRINT_HWDETECT, "Created key: %S\n", Buffer));
/* Set 'ComponentInformation' value */ SetComponentInformation(ControllerKey, @@ -1398,7 +1401,7 @@
/* Set 'Configuration Data' value */ Error = RegSetValue(ControllerKey, - "Configuration Data", + L"Configuration Data", REG_FULL_RESOURCE_DESCRIPTOR, (PCHAR) FullResourceDescriptor, Size); @@ -1411,14 +1414,14 @@ }
/* Set 'Identifier' value */ - sprintf(Buffer, - "COM%u", - i + 1); + swprintf(Buffer, + L"COM%u", + i + 1); Error = RegSetValue(ControllerKey, - "Identifier", + L"Identifier", REG_SZ, - Buffer, - strlen(Buffer) + 1); + (PCHAR)Buffer, + (wcslen(Buffer) + 1) * sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, @@ -1430,8 +1433,11 @@ "Created value: Identifier %s\n", Buffer));
- /* Detect serial mouse */ - DetectSerialPointerPeripheral(ControllerKey, Base); + if (!Rs232PortInUse(Base)) + { + /* Detect serial mouse */ + DetectSerialPointerPeripheral(ControllerKey, Base); + }
ControllerNumber++; } @@ -1444,7 +1450,7 @@ PCM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor; PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor; ULONG Irq[3] = {7, 5, (ULONG)-1}; - char Buffer[80]; + WCHAR Buffer[80]; FRLDRHKEY ControllerKey; PUSHORT BasePtr; ULONG Base; @@ -1469,9 +1475,9 @@ Base));
/* Create controller key */ - sprintf(Buffer, - "ParallelController\%u", - ControllerNumber); + swprintf(Buffer, + L"ParallelController\%u", + ControllerNumber);
Error = RegCreateKey(BusKey, Buffer, @@ -1481,7 +1487,7 @@ DbgPrint((DPRINT_HWDETECT, "Failed to create controller key\n")); continue; } - DbgPrint((DPRINT_HWDETECT, "Created key: %s\n", Buffer)); + DbgPrint((DPRINT_HWDETECT, "Created key: %S\n", Buffer));
/* Set 'ComponentInformation' value */ SetComponentInformation(ControllerKey, @@ -1531,7 +1537,7 @@
/* Set 'Configuration Data' value */ Error = RegSetValue(ControllerKey, - "Configuration Data", + L"Configuration Data", REG_FULL_RESOURCE_DESCRIPTOR, (PCHAR) FullResourceDescriptor, Size); @@ -1544,14 +1550,14 @@ }
/* Set 'Identifier' value */ - sprintf(Buffer, - "PARALLEL%u", + swprintf(Buffer, + L"PARALLEL%u", i + 1); Error = RegSetValue(ControllerKey, - "Identifier", + L"Identifier", REG_SZ, - Buffer, - strlen(Buffer) + 1); + (PCHAR)Buffer, + (wcslen(Buffer) + 1) * sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, @@ -1637,7 +1643,6 @@ PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDescriptor; PCM_KEYBOARD_DEVICE_DATA KeyboardData; FRLDRHKEY PeripheralKey; - char Buffer[80]; ULONG Size; LONG Error;
@@ -1645,7 +1650,7 @@ { /* Create controller key */ Error = RegCreateKey(ControllerKey, - "KeyboardPeripheral\0", + L"KeyboardPeripheral\0", &PeripheralKey); if (Error != ERROR_SUCCESS) { @@ -1691,7 +1696,7 @@
/* Set 'Configuration Data' value */ Error = RegSetValue(PeripheralKey, - "Configuration Data", + L"Configuration Data", REG_FULL_RESOURCE_DESCRIPTOR, (PCHAR)FullResourceDescriptor, Size); @@ -1704,13 +1709,11 @@ }
/* Set 'Identifier' value */ - strcpy(Buffer, - "PCAT_ENHANCED"); Error = RegSetValue(PeripheralKey, - "Identifier", + L"Identifier", REG_SZ, - Buffer, - strlen(Buffer) + 1); + (PCHAR)L"PCAT_ENHANCED", + 14 * sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, @@ -1732,7 +1735,7 @@
/* Create controller key */ Error = RegCreateKey(BusKey, - "KeyboardController\0", + L"KeyboardController\0", &ControllerKey); if (Error != ERROR_SUCCESS) { @@ -1793,7 +1796,7 @@
/* Set 'Configuration Data' value */ Error = RegSetValue(ControllerKey, - "Configuration Data", + L"Configuration Data", REG_FULL_RESOURCE_DESCRIPTOR, (PCHAR)FullResourceDescriptor, Size); @@ -1929,7 +1932,7 @@
/* Create controller key */ Error = RegCreateKey(BusKey, - "PointerController\0", + L"PointerController\0", &ControllerKey); if (Error != ERROR_SUCCESS) { @@ -1961,7 +1964,7 @@
/* Set 'Configuration Data' value */ Error = RegSetValue(ControllerKey, - "Configuration Data", + L"Configuration Data", REG_FULL_RESOURCE_DESCRIPTOR, (PCHAR)&FullResourceDescriptor, sizeof(CM_FULL_RESOURCE_DESCRIPTOR)); @@ -1980,7 +1983,7 @@
/* Create peripheral key */ Error = RegCreateKey(ControllerKey, - "PointerPeripheral\0", + L"PointerPeripheral\0", &PeripheralKey); if (Error != ERROR_SUCCESS) { @@ -2003,7 +2006,7 @@
/* Set 'Configuration Data' value */ Error = RegSetValue(PeripheralKey, - "Configuration Data", + L"Configuration Data", REG_FULL_RESOURCE_DESCRIPTOR, (PCHAR)&FullResourceDescriptor, sizeof(CM_FULL_RESOURCE_DESCRIPTOR) - @@ -2018,10 +2021,10 @@
/* Set 'Identifier' value */ Error = RegSetValue(PeripheralKey, - "Identifier", + L"Identifier", REG_SZ, - "MICROSOFT PS2 MOUSE", - 20); + (PCHAR)L"MICROSOFT PS2 MOUSE", + 20 * sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, @@ -2037,13 +2040,13 @@ static VOID DetectDisplayController(FRLDRHKEY BusKey) { - CHAR Buffer[80]; + WCHAR Buffer[80]; FRLDRHKEY ControllerKey; USHORT VesaVersion; LONG Error;
Error = RegCreateKey(BusKey, - "DisplayController\0", + L"DisplayController\0", &ControllerKey); if (Error != ERROR_SUCCESS) { @@ -2076,21 +2079,21 @@
if (VesaVersion >= 0x0200) { - strcpy(Buffer, - "VBE Display"); + wcscpy(Buffer, + L"VBE Display"); } else { - strcpy(Buffer, - "VGA Display"); + wcscpy(Buffer, + L"VGA Display"); }
/* Set 'Identifier' value */ Error = RegSetValue(ControllerKey, - "Identifier", + L"Identifier", REG_SZ, - Buffer, - strlen(Buffer) + 1); + (PCHAR)Buffer, + (wcslen(Buffer) + 1) * sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, @@ -2107,14 +2110,14 @@ DetectIsaBios(FRLDRHKEY SystemKey, ULONG *BusNumber) { PCM_FULL_RESOURCE_DESCRIPTOR FullResourceDescriptor; - char Buffer[80]; + WCHAR Buffer[80]; FRLDRHKEY BusKey; ULONG Size; LONG Error;
/* Create new bus key */ - sprintf(Buffer, - "MultifunctionAdapter\%u", *BusNumber); + swprintf(Buffer, + L"MultifunctionAdapter\%u", *BusNumber); Error = RegCreateKey(SystemKey, Buffer, &BusKey); @@ -2135,10 +2138,10 @@
/* Set 'Identifier' value */ Error = RegSetValue(BusKey, - "Identifier", + L"Identifier", REG_SZ, - "ISA", - 4); + (PCHAR)L"ISA", + 4 * sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error)); @@ -2164,7 +2167,7 @@
/* Set 'Configuration Data' value */ Error = RegSetValue(BusKey, - "Configuration Data", + L"Configuration Data", REG_FULL_RESOURCE_DESCRIPTOR, (PCHAR) FullResourceDescriptor, Size); @@ -2207,7 +2210,7 @@
/* Create the 'System' key */ Error = RegCreateKey(NULL, - "\Registry\Machine\HARDWARE\DESCRIPTION\System", + L"\Registry\Machine\HARDWARE\DESCRIPTION\System", &SystemKey); if (Error != ERROR_SUCCESS) { _____
Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c --- trunk/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c 2005-11-18 20:35:42 UTC (rev 19328) +++ trunk/reactos/boot/freeldr/freeldr/arch/i386/hwacpi.c 2005-11-18 22:04:17 UTC (rev 19329) @@ -53,7 +53,7 @@
VOID DetectAcpiBios(FRLDRHKEY SystemKey, ULONG *BusNumber) { - char Buffer[80]; + WCHAR Buffer[80]; FRLDRHKEY BiosKey; LONG Error;
@@ -61,8 +61,8 @@ { AcpiPresent = TRUE; /* Create new bus key */ - sprintf(Buffer, - "MultifunctionAdapter\%u", *BusNumber); + swprintf(Buffer, + L"MultifunctionAdapter\%u", *BusNumber); Error = RegCreateKey(SystemKey, Buffer, &BiosKey); @@ -85,10 +85,10 @@
/* Set 'Identifier' value */ Error = RegSetValue(BiosKey, - "Identifier", + L"Identifier", REG_SZ, - "ACPI BIOS", - 10); + (PCHAR)L"ACPI BIOS", + 10 * sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error)); _____
Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hwapm.c --- trunk/reactos/boot/freeldr/freeldr/arch/i386/hwapm.c 2005-11-18 20:35:42 UTC (rev 19328) +++ trunk/reactos/boot/freeldr/freeldr/arch/i386/hwapm.c 2005-11-18 22:04:17 UTC (rev 19329) @@ -56,15 +56,15 @@
VOID DetectApmBios(FRLDRHKEY SystemKey, ULONG *BusNumber) { - char Buffer[80]; + WCHAR Buffer[80]; FRLDRHKEY BiosKey; LONG Error;
if (FindApmBios()) { /* Create new bus key */ - sprintf(Buffer, - "MultifunctionAdapter\%u", *BusNumber); + swprintf(Buffer, + L"MultifunctionAdapter\%u", *BusNumber); Error = RegCreateKey(SystemKey, Buffer, &BiosKey); @@ -87,10 +87,10 @@
/* Set 'Identifier' value */ Error = RegSetValue(BiosKey, - "Identifier", + L"Identifier", REG_SZ, - "APM", - 4); + (PCHAR)L"APM", + 4 * sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error)); _____
Modified: trunk/reactos/boot/freeldr/freeldr/arch/i386/hwcpu.c --- trunk/reactos/boot/freeldr/freeldr/arch/i386/hwcpu.c 2005-11-18 20:35:42 UTC (rev 19328) +++ trunk/reactos/boot/freeldr/freeldr/arch/i386/hwcpu.c 2005-11-18 22:04:17 UTC (rev 19329) @@ -105,8 +105,9 @@
DetectCPU(FRLDRHKEY CpuKey, FRLDRHKEY FpuKey) { - CHAR VendorIdentifier[13]; - CHAR Identifier[64]; + WCHAR VendorIdentifier[13]; + CHAR tmpVendorIdentifier[13]; + WCHAR Identifier[64]; ULONG FeatureSet; FRLDRHKEY CpuInstKey; FRLDRHKEY FpuInstKey; @@ -122,7 +123,7 @@
/* Create the CPU instance key */ Error = RegCreateKey(CpuKey, - "0", + L"0", &CpuInstKey); if (Error != ERROR_SUCCESS) { @@ -132,7 +133,7 @@
/* Create the FPU instance key */ Error = RegCreateKey(FpuKey, - "0", + L"0", &FpuInstKey); if (Error != ERROR_SUCCESS) { @@ -147,21 +148,22 @@
/* Get vendor identifier */ GetCpuid(0, &eax, &ebx, &ecx, &edx); - VendorIdentifier[12] = 0; - Ptr = (ULONG*)&VendorIdentifier[0]; + tmpVendorIdentifier[12] = 0; + Ptr = (ULONG*)&tmpVendorIdentifier[0]; *Ptr = ebx; Ptr++; *Ptr = edx; Ptr++; *Ptr = ecx; + swprintf(VendorIdentifier, L"%s", tmpVendorIdentifier);
/* Get Identifier */ GetCpuid(1, &eax, &ebx, &ecx, &edx); - sprintf(Identifier, - "x86 Family %u Model %u Stepping %u", - (unsigned int)((eax >> 8) & 0x0F), - (unsigned int)((eax >> 4) & 0x0F), - (unsigned int)(eax & 0x0F)); + swprintf(Identifier, + L"x86 Family %u Model %u Stepping %u", + (unsigned int)((eax >> 8) & 0x0F), + (unsigned int)((eax >> 4) & 0x0F), + (unsigned int)(eax & 0x0F)); FeatureSet = edx; if (((eax >> 8) & 0x0F) >= 5) SupportTSC = TRUE; @@ -170,9 +172,9 @@ { DbgPrint((DPRINT_HWDETECT, "CPUID not supported\n"));
- strcpy(VendorIdentifier, "Unknown"); - sprintf(Identifier, - "x86 Family %u Model %u Stepping %u", + wcscpy(VendorIdentifier, L"Unknown"); + swprintf(Identifier, + L"x86 Family %u Model %u Stepping %u", (unsigned int)((eax >> 8) & 0x0F), (unsigned int)((eax >> 4) & 0x0F), (unsigned int)(eax & 0x0F)); @@ -187,7 +189,7 @@ DbgPrint((DPRINT_HWDETECT, "FeatureSet: %x\n", FeatureSet));
Error = RegSetValue(CpuInstKey, - "FeatureSet", + L"FeatureSet", REG_DWORD, (PCHAR)&FeatureSet, sizeof(ULONG)); @@ -197,36 +199,36 @@ }
/* Set 'Identifier' value (CPU and FPU) */ - DbgPrint((DPRINT_HWDETECT, "Identifier: %s\n", Identifier)); + DbgPrint((DPRINT_HWDETECT, "Identifier: %S\n", Identifier));
Error = RegSetValue(CpuInstKey, - "Identifier", + L"Identifier", REG_SZ, - Identifier, - strlen(Identifier) + 1); + (PCHAR)Identifier, + (wcslen(Identifier) + 1)* sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error)); }
Error = RegSetValue(FpuInstKey, - "Identifier", + L"Identifier", REG_SZ, - Identifier, - strlen(Identifier) + 1); + (PCHAR)Identifier, + (wcslen(Identifier) + 1) * sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error)); }
/* Set 'VendorIdentifier' value (CPU only) */ - DbgPrint((DPRINT_HWDETECT, "Vendor Identifier: %s\n", VendorIdentifier)); + DbgPrint((DPRINT_HWDETECT, "Vendor Identifier: %S\n", VendorIdentifier));
Error = RegSetValue(CpuInstKey, - "VendorIdentifier", + L"VendorIdentifier", REG_SZ, - VendorIdentifier, - strlen(VendorIdentifier) + 1); + (PCHAR)VendorIdentifier, + (wcslen(VendorIdentifier) + 1) * sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error)); @@ -242,7 +244,7 @@ CpuSpeed = GetCpuSpeed();
Error = RegSetValue(CpuInstKey, - "~MHz", + L"~MHz", REG_DWORD, (PCHAR)&CpuSpeed, sizeof(ULONG)); @@ -259,9 +261,10 @@ FRLDRHKEY FpuKey, PMP_PROCESSOR_ENTRY CpuEntry) { - char VendorIdentifier[13]; - char Identifier[64]; - char Buffer[8]; + WCHAR VendorIdentifier[13]; + CHAR tmpVendorIdentifier[13]; + WCHAR Identifier[64]; + WCHAR Buffer[8]; ULONG FeatureSet; FRLDRHKEY CpuInstKey; FRLDRHKEY FpuInstKey; @@ -274,7 +277,7 @@ ULONG CpuSpeed;
/* Get processor instance number */ - sprintf(Buffer, "%u", CpuEntry->LocalApicId); + swprintf(Buffer, L"%u", CpuEntry->LocalApicId);
/* Create the CPU instance key */ Error = RegCreateKey(CpuKey, @@ -298,17 +301,18 @@
/* Get 'VendorIdentifier' */ GetCpuid(0, &eax, &ebx, &ecx, &edx); - VendorIdentifier[12] = 0; - Ptr = (ULONG*)&VendorIdentifier[0]; + tmpVendorIdentifier[12] = 0; + Ptr = (ULONG*)&tmpVendorIdentifier[0]; *Ptr = ebx; Ptr++; *Ptr = edx; Ptr++; *Ptr = ecx; + swprintf(VendorIdentifier, L"%s", tmpVendorIdentifier);
/* Get 'Identifier' */ - sprintf(Identifier, - "x86 Family %u Model %u Stepping %u", + swprintf(Identifier, + L"x86 Family %u Model %u Stepping %u", (ULONG)((CpuEntry->CpuSignature >> 8) & 0x0F), (ULONG)((CpuEntry->CpuSignature >> 4) & 0x0F), (ULONG)(CpuEntry->CpuSignature & 0x0F)); @@ -331,7 +335,7 @@ DbgPrint((DPRINT_HWDETECT, "FeatureSet: %x\n", FeatureSet));
Error = RegSetValue(CpuInstKey, - "FeatureSet", + L"FeatureSet", REG_DWORD, (PCHAR)&FeatureSet, sizeof(ULONG)); @@ -341,36 +345,36 @@ }
/* Set 'Identifier' value (CPU and FPU) */ - DbgPrint((DPRINT_HWDETECT, "Identifier: %s\n", Identifier)); + DbgPrint((DPRINT_HWDETECT, "Identifier: %S\n", Identifier));
Error = RegSetValue(CpuInstKey, - "Identifier", + L"Identifier", REG_SZ, - Identifier, - strlen(Identifier) + 1); + (PCHAR)Identifier, + (wcslen(Identifier) + 1) * sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error)); }
Error = RegSetValue(FpuInstKey, - "Identifier", + L"Identifier", REG_SZ, - Identifier, - strlen(Identifier) + 1); + (PCHAR)Identifier, + (wcslen(Identifier) + 1) * sizeof(WCHAR)); if (Error != ERROR_SUCCESS) { DbgPrint((DPRINT_HWDETECT, "RegSetValue() failed (Error %u)\n", (int)Error)); }
/* Set 'VendorIdentifier' value (CPU only) */ - DbgPrint((DPRINT_HWDETECT, "Vendor Identifier: %s\n", VendorIdentifier)); + DbgPrint((DPRINT_HWDETECT, "Vendor Identifier: %S\n", VendorIdentifier));
Error = RegSetValue(CpuInstKey, - "VendorIdentifier", + L"VendorIdentifier", REG_SZ, [truncated at 1000 lines; 1944 more skipped]