diff --git a/reactos/drivers/storage/ide/uniata/atapi.h b/reactos/drivers/storage/ide/uniata/atapi.h index 5d25c601a7f..b068f02be39 100644 --- a/reactos/drivers/storage/ide/uniata/atapi.h +++ b/reactos/drivers/storage/ide/uniata/atapi.h @@ -1067,8 +1067,8 @@ AtapiFindController( ULONG AtapiParseArgumentString( - IN PCHAR String, - IN PCHAR KeyWord + IN PCCH String, + IN PCCH KeyWord ); BOOLEAN @@ -1206,15 +1206,15 @@ AtapiRegCheckDevValue( IN PVOID HwDeviceExtension, IN ULONG chan, IN ULONG dev, - IN PWSTR Name, + IN PCWSTR Name, IN ULONG Default ); extern ULONG AtapiRegCheckParameterValue( IN PVOID HwDeviceExtension, - IN PWSTR PathSuffix, - IN PWSTR Name, + IN PCWSTR PathSuffix, + IN PCWSTR Name, IN ULONG Default ); @@ -1224,7 +1224,7 @@ extern "C" VOID _cdecl _PrintNtConsole( - PCHAR DebugMessage, + PCCH DebugMessage, ... ); diff --git a/reactos/drivers/storage/ide/uniata/bm_devs.h b/reactos/drivers/storage/ide/uniata/bm_devs.h index 09028bc80f0..aa8e81a505f 100644 --- a/reactos/drivers/storage/ide/uniata/bm_devs.h +++ b/reactos/drivers/storage/ide/uniata/bm_devs.h @@ -482,7 +482,7 @@ typedef struct _BUSMASTER_CONTROLLER_INFORMATION { { #idlo, 4, 0x##idlo, #idhi, 4, 0x##idhi, rev, mode, name, flags} #else #define PCI_DEV_HW_SPEC_BM(idhi, idlo, rev, mode, name, flags) \ - { #idlo, 4, 0x##idlo, #idhi, 4, 0x##idhi, rev, mode, NULL, flags} + { (PCHAR) #idlo, 4, 0x##idlo, (PCHAR) #idhi, 4, 0x##idhi, rev, mode, NULL, flags} #endif #define BMLIST_TERMINATOR (0xffffffffL) diff --git a/reactos/drivers/storage/ide/uniata/bsmaster.h b/reactos/drivers/storage/ide/uniata/bsmaster.h index 993b6e034c1..061453dcdb9 100644 --- a/reactos/drivers/storage/ide/uniata/bsmaster.h +++ b/reactos/drivers/storage/ide/uniata/bsmaster.h @@ -987,7 +987,7 @@ typedef struct _HW_DEVICE_EXTENSION { BOOLEAN opt_AtapiDmaRawRead; // default TRUE BOOLEAN opt_AtapiDmaReadWrite; // default TRUE - PCHAR FullDevName; + PCCH FullDevName; } HW_DEVICE_EXTENSION, *PHW_DEVICE_EXTENSION; @@ -1172,9 +1172,9 @@ AtapiDmaInit( IN ULONG DeviceNumber, IN ULONG lChannel, // logical channel, // is always 0 except simplex-only controllers - IN CHAR apiomode, - IN CHAR wdmamode, - IN CHAR udmamode + IN SCHAR apiomode, + IN SCHAR wdmamode, + IN SCHAR udmamode ); extern BOOLEAN NTAPI diff --git a/reactos/drivers/storage/ide/uniata/id_ata.cpp b/reactos/drivers/storage/ide/uniata/id_ata.cpp index 58f8313b5cf..fc3609ccd62 100644 --- a/reactos/drivers/storage/ide/uniata/id_ata.cpp +++ b/reactos/drivers/storage/ide/uniata/id_ata.cpp @@ -2861,12 +2861,12 @@ Return Values: --*/ ULONG AtapiParseArgumentString( - IN PCHAR String, - IN PCHAR KeyWord + IN PCCH String, + IN PCCH KeyWord ) { - PCHAR cptr; - PCHAR kptr; + PCCH cptr; + PCCH kptr; ULONG value; ULONG stringLength = 0; ULONG keyWordLength = 0; @@ -2879,24 +2879,15 @@ AtapiParseArgumentString( return 0; } - // Calculate the string length and lower case all characters. + // Calculate the string length. cptr = String; - while (*cptr) { - if (*cptr >= 'A' && *cptr <= 'Z') { - *cptr = *cptr + ('a' - 'A'); - } - cptr++; + while (*cptr++) { stringLength++; } - // Calculate the keyword length and lower case all characters. - cptr = KeyWord; - while (*cptr) { - - if (*cptr >= 'A' && *cptr <= 'Z') { - *cptr = *cptr + ('a' - 'A'); - } - cptr++; + // Calculate the keyword length. + kptr = KeyWord; + while (*kptr++) { keyWordLength++; } @@ -2922,18 +2913,21 @@ ContinueSearch: } kptr = KeyWord; - while (*cptr++ == *kptr++) { + while ((*cptr == *kptr) || + (*cptr <= 'Z' && *cptr + ('a' - 'A') == *kptr) || + (*cptr >= 'a' && *cptr - ('a' - 'A') == *kptr)) { + cptr++; + kptr++; - if (*(cptr - 1) == '\0') { + if (*cptr == '\0') { // end of string return 0; } } - if (*(kptr - 1) == '\0') { + if (*kptr == '\0') { // May have a match backup and check for blank or equals. - cptr--; while (*cptr == ' ' || *cptr == '\t') { cptr++; } @@ -2969,7 +2963,7 @@ ContinueSearch: } value = 0; - if ((*cptr == '0') && (*(cptr + 1) == 'x')) { + if ((*cptr == '0') && ((*(cptr + 1) == 'x') || (*(cptr + 1) == 'X'))) { // Value is in Hex. Skip the "0x" cptr += 2; for (index = 0; *(cptr + index); index++) { @@ -2985,6 +2979,8 @@ ContinueSearch: } else { if ((*(cptr + index) >= 'a') && (*(cptr + index) <= 'f')) { value = (16 * value) + (*(cptr + index) - 'a' + 10); + } else if ((*(cptr + index) >= 'A') && (*(cptr + index) <= 'F')) { + value = (16 * value) + (*(cptr + index) - 'A' + 10); } else { // Syntax error, return not found. return 0; @@ -8754,10 +8750,10 @@ BuildRequestSenseSrb ( ULONG AtapiRegCheckDevLunValue( IN PVOID HwDeviceExtension, - IN PWCHAR NamePrefix, + IN PCWCH NamePrefix, IN ULONG chan, IN ULONG dev, - IN PWSTR Name, + IN PCWSTR Name, IN ULONG Default ) { @@ -8824,7 +8820,7 @@ AtapiRegCheckDevValue( IN PVOID HwDeviceExtension, IN ULONG chan, IN ULONG dev, - IN PWSTR Name, + IN PCWSTR Name, IN ULONG Default ) { @@ -8942,8 +8938,8 @@ AtapiRegCheckDevValue( ULONG AtapiRegCheckParameterValue( IN PVOID HwDeviceExtension, - IN PWSTR PathSuffix, - IN PWSTR Name, + IN PCWSTR PathSuffix, + IN PCWSTR Name, IN ULONG Default ) { @@ -9110,7 +9106,7 @@ extern "C" VOID _cdecl _PrintNtConsole( - PCHAR DebugMessage, + PCCH DebugMessage, ... ) { diff --git a/reactos/drivers/storage/ide/uniata/id_dma.cpp b/reactos/drivers/storage/ide/uniata/id_dma.cpp index 6de1fa7a011..bc5c17887ff 100644 --- a/reactos/drivers/storage/ide/uniata/id_dma.cpp +++ b/reactos/drivers/storage/ide/uniata/id_dma.cpp @@ -281,7 +281,7 @@ retry_DB_IO: if(!dma_count || ((LONG)(dma_base) == -1)) { KdPrint2((PRINT_PREFIX "AtapiDmaSetup: No 1st block\n" )); //AtaReq->dma_base = NULL; - AtaReq->ahci_base64 = (ULONGLONG)NULL; + AtaReq->ahci_base64 = 0; return FALSE; } @@ -303,7 +303,7 @@ retry_DB_IO: if (i >= max_entries) { KdPrint2((PRINT_PREFIX "too many segments in DMA table\n" )); //AtaReq->dma_base = NULL; - AtaReq->ahci_base64 = (ULONGLONG)NULL; + AtaReq->ahci_base64 = 0; return FALSE; } KdPrint2((PRINT_PREFIX " get Phys(data[n]=%x)\n", data )); @@ -321,7 +321,7 @@ retry_DB_IO: } else if(!dma_count || !dma_base || ((LONG)(dma_base) == -1)) { //AtaReq->dma_base = NULL; - AtaReq->ahci_base64 = (ULONGLONG)NULL; + AtaReq->ahci_base64 = 0; KdPrint2((PRINT_PREFIX "AtapiDmaSetup: No NEXT block\n" )); return FALSE; } @@ -596,7 +596,7 @@ AtapiDmaReinit( ) { PHW_LU_EXTENSION LunExt = &(deviceExtension->lun[ldev]); - CHAR apiomode; + SCHAR apiomode; apiomode = (CHAR)AtaPioMode(&(LunExt->IdentifyData)); @@ -754,9 +754,9 @@ AtapiDmaInit( IN ULONG DeviceNumber, IN ULONG lChannel, // logical channel, // is always 0 except simplex-only controllers - IN CHAR apiomode, - IN CHAR wdmamode, - IN CHAR udmamode + IN SCHAR apiomode, + IN SCHAR wdmamode, + IN SCHAR udmamode ) { PHW_DEVICE_EXTENSION deviceExtension = (PHW_DEVICE_EXTENSION)HwDeviceExtension; @@ -1046,7 +1046,7 @@ set_new_acard: /* set PIO mode timings */ AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_PIO0 + apiomode); if((apiomode >= 0) && (ChipType != VIA133)) { - SetPciConfig1(reg-0x08, via_pio[(UCHAR)apiomode]); + SetPciConfig1(reg-0x08, via_pio[apiomode]); } via82c_timing(deviceExtension, dev, ATA_PIO0 + apiomode); AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_PIO0 + apiomode); @@ -1067,18 +1067,18 @@ set_new_acard: apiomode = 4; for(i=udmamode; i>=0; i--) { if(AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_UDMA0 + i)) { - AtapiWritePortEx4(chan, (ULONG)(&deviceExtension->BaseIoAddressBM_0), mode_reg, cyr_udmatiming[(UCHAR)udmamode]); + AtapiWritePortEx4(chan, (ULONG)(&deviceExtension->BaseIoAddressBM_0), mode_reg, cyr_udmatiming[udmamode]); return; } } for(i=wdmamode; i>=0; i--) { if(AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_WDMA0 + i)) { - AtapiWritePortEx4(chan, (ULONG)(&deviceExtension->BaseIoAddressBM_0), mode_reg, cyr_wdmatiming[(UCHAR)wdmamode]); + AtapiWritePortEx4(chan, (ULONG)(&deviceExtension->BaseIoAddressBM_0), mode_reg, cyr_wdmatiming[wdmamode]); return; } } if(AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_PIO0 + apiomode)) { - AtapiWritePortEx4(chan, (ULONG)(&deviceExtension->BaseIoAddressBM_0), mode_reg, cyr_piotiming[(UCHAR)apiomode]); + AtapiWritePortEx4(chan, (ULONG)(&deviceExtension->BaseIoAddressBM_0), mode_reg, cyr_piotiming[apiomode]); return; } return; @@ -1113,7 +1113,7 @@ set_new_acard: } if(AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_PIO0 + apiomode)) { ChangePciConfig4(0x44 + (dev * 8), a | 0x80000000); - SetPciConfig4(0x40 + (dev * 8), nat_piotiming[(UCHAR)apiomode]); + SetPciConfig4(0x40 + (dev * 8), nat_piotiming[apiomode]); return; } /* Use GENERIC PIO */ @@ -1413,7 +1413,7 @@ set_new_acard: // 44 GetPciConfig4(0x44, reg44); reg44 = (reg44 & ~(0xff << bit_offset)) | - (sw_dma_modes[(UCHAR)wdmamode] << bit_offset); + (sw_dma_modes[wdmamode] << bit_offset); SetPciConfig4(0x44, reg44); // 40 GetPciConfig4(0x40, reg40); @@ -1439,7 +1439,7 @@ set_new_acard: // 40 GetPciConfig4(0x40, reg40); reg40 = (reg40 & ~(0xff << bit_offset)) | - (sw_pio_modes[(UCHAR)apiomode] << bit_offset); + (sw_pio_modes[apiomode] << bit_offset); SetPciConfig4(0x40, reg40); return; break; } @@ -1488,7 +1488,7 @@ l_ATA_SILICON_IMAGE_ID: AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_PIO0 + apiomode); SetPciConfig1(mreg, mode | (mask & 0x11)); - SetPciConfig2(ureg - 0x8, sil_pio_modes[i]); + SetPciConfig2(ureg - 0x8, sil_pio_modes[apiomode]); return; } else { @@ -1527,7 +1527,7 @@ l_ATA_SILICON_IMAGE_ID: /* set PIO mode timings */ AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_PIO0 + apiomode); - SetPciConfig1(treg, cmd_pio_modes[(UCHAR)apiomode]); + SetPciConfig1(treg, cmd_pio_modes[apiomode]); ChangePciConfig1(Channel ? 0x7b : 0x73, a & ~(!(DeviceNumber & 1) ? 0x35 : 0xca)); return; @@ -1731,8 +1731,8 @@ setup_drive_ite: AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_PIO0 + apiomode); ChangePciConfig1(0x50, a | (1 << (dev + 3)) ); GetPciConfig1(0x54 + offset, reg54); - if(reg54 < chtiming[i]) { - SetPciConfig1(0x54 + offset, chtiming[i]); + if(reg54 < chtiming[apiomode]) { + SetPciConfig1(0x54 + offset, chtiming[apiomode]); } return; } diff --git a/reactos/drivers/storage/ide/uniata/id_probe.cpp b/reactos/drivers/storage/ide/uniata/id_probe.cpp index 51cd639b996..ae3ebd7dcc4 100644 --- a/reactos/drivers/storage/ide/uniata/id_probe.cpp +++ b/reactos/drivers/storage/ide/uniata/id_probe.cpp @@ -503,8 +503,8 @@ UniataEnumBusMasterController__( /* if(known) { RtlCopyMemory(newBMListPtr, (PVOID)&(BusMasterAdapters[i]), sizeof(BUSMASTER_CONTROLLER_INFORMATION)); } else {*/ - sprintf((PCHAR)vendorStrPtr, "%4.4x", (UINT32)VendorID); - sprintf((PCHAR)deviceStrPtr, "%4.4x", (UINT32)DeviceID); + sprintf((PCHAR)vendorStrPtr, "%4.4lx", VendorID); + sprintf((PCHAR)deviceStrPtr, "%4.4lx", DeviceID); RtlCopyMemory(&(newBMListPtr->VendorIdStr), (PCHAR)vendorStrPtr, 4); RtlCopyMemory(&(newBMListPtr->DeviceIdStr), (PCHAR)deviceStrPtr, 4); diff --git a/reactos/drivers/storage/ide/uniata/ntddk_ex.h b/reactos/drivers/storage/ide/uniata/ntddk_ex.h index 3dc20fdc6e6..c61de2b2540 100644 --- a/reactos/drivers/storage/ide/uniata/ntddk_ex.h +++ b/reactos/drivers/storage/ide/uniata/ntddk_ex.h @@ -1,15 +1,11 @@ #ifndef __NTDDK_EX__H__ #define __NTDDK_EX__H__ -#ifndef __REACTOS__ +#ifdef ASSERT #undef ASSERT -#define ASSERT -#else -#undef ASSERT -//#define ASSERT //(x) if (!(x)) {RtlAssert("#x",__FILE__,__LINE__, ""); } -#define ASSERT(x) // FIXME: WTF! -#endif //__REACTOS__ - +#define ASSERT(x) ((void)0) +// #define ASSERT(x) if (!(x)) { RtlAssert("#x",__FILE__,__LINE__, ""); } +#endif #ifndef FILE_CHARACTERISTIC_PNP_DEVICE // DDK 2003 diff --git a/reactos/drivers/storage/ide/uniata/warningfixes.diff b/reactos/drivers/storage/ide/uniata/warningfixes.diff index 3760c51242a..db828d8b556 100644 --- a/reactos/drivers/storage/ide/uniata/warningfixes.diff +++ b/reactos/drivers/storage/ide/uniata/warningfixes.diff @@ -1,8 +1,8 @@ -Index: atapi.h -=================================================================== ---- atapi.h (revision 38425) -+++ atapi.h (working copy) -@@ -138,6 +138,10 @@ +Index: atapi.h +=================================================================== +--- atapi.h (revision 38451) ++++ atapi.h (working copy) +@@ -138,6 +138,10 @@ #else // _DEBUG @@ -13,41 +13,96 @@ Index: atapi.h #define PRINT_PREFIX "UniATA: " //#define KdPrint3(_x_) {if(LOG_ON_RAISED_IRQL_W2K || MajorVersion < 0x05 || KeGetCurrentIrql() <= 2){/*DbgPrint("%x: ", PsGetCurrentThread()) ;*/ DbgPrint _x_ ; if(g_LogToDisplay){ PrintNtConsole _x_ ;} }} -Index: id_ata.cpp -=================================================================== ---- id_ata.cpp (revision 38425) -+++ id_ata.cpp (working copy) -@@ -1864,7 +1864,9 @@ - ULONG slotNumber = deviceExtension->slotNumber; - ULONG SystemIoBusNumber = deviceExtension->SystemIoBusNumber; - ULONG VendorID = deviceExtension->DevID & 0xffff; -+#ifdef _DEBUG - ULONG DeviceID = (deviceExtension->DevID >> 16) & 0xffff; -+#endif - //ULONG RevID = deviceExtension->RevID; - ULONG ChipFlags = deviceExtension->HwFlags & CHIPFLAG_MASK; - UCHAR tmp8; -Index: id_badblock.cpp -=================================================================== ---- id_badblock.cpp (revision 38425) -+++ id_badblock.cpp (working copy) -@@ -159,7 +159,11 @@ - L"UniATA\\Parameters\\BadBlocks", - QueryTable, 0, 0); +@@ -1063,8 +1067,8 @@ -+#ifdef _DEBUG - KdPrint(( "InitBadBlocks returned: %#x\n", status)); -+#else -+ UNREFERENCED_PARAMETER(status); -+#endif - } else { + ULONG + AtapiParseArgumentString( +- IN PCHAR String, +- IN PCHAR KeyWord ++ IN PCCH String, ++ IN PCCH KeyWord + ); - KdPrint(( "InitBadBlocks local\n")); -Index: id_dma.cpp -=================================================================== ---- id_dma.cpp (revision 38425) -+++ id_dma.cpp (working copy) -@@ -219,7 +219,7 @@ + BOOLEAN +@@ -1202,15 +1206,15 @@ + IN PVOID HwDeviceExtension, + IN ULONG chan, + IN ULONG dev, +- IN PWSTR Name, ++ IN PCWSTR Name, + IN ULONG Default + ); + + extern ULONG + AtapiRegCheckParameterValue( + IN PVOID HwDeviceExtension, +- IN PWSTR PathSuffix, +- IN PWSTR Name, ++ IN PCWSTR PathSuffix, ++ IN PCWSTR Name, + IN ULONG Default + ); + +@@ -1220,7 +1224,7 @@ + VOID + _cdecl + _PrintNtConsole( +- PCHAR DebugMessage, ++ PCCH DebugMessage, + ... + ); + +Index: id_sata.cpp +=================================================================== +--- id_sata.cpp (revision 38451) ++++ id_sata.cpp (working copy) +@@ -7,7 +7,7 @@ + ) + { + PHW_DEVICE_EXTENSION deviceExtension = (PHW_DEVICE_EXTENSION)HwDeviceExtension; +- ULONG Channel = deviceExtension->Channel + lChannel; ++ //ULONG Channel = deviceExtension->Channel + lChannel; + PHW_CHANNEL chan = &deviceExtension->chan[lChannel]; + SATA_SSTATUS_REG SStatus; + ULONG i; +@@ -126,7 +126,7 @@ + { + PHW_DEVICE_EXTENSION deviceExtension = (PHW_DEVICE_EXTENSION)HwDeviceExtension; + PHW_CHANNEL chan = &deviceExtension->chan[lChannel]; +- ULONG ChipFlags = deviceExtension->HwFlags & CHIPFLAG_MASK; ++ //ULONG ChipFlags = deviceExtension->HwFlags & CHIPFLAG_MASK; + SATA_SSTATUS_REG SStatus; + SATA_SERROR_REG SError; + +Index: ntddk_ex.h +=================================================================== +--- ntddk_ex.h (revision 38451) ++++ ntddk_ex.h (working copy) +@@ -1,15 +1,12 @@ + #ifndef __NTDDK_EX__H__ + #define __NTDDK_EX__H__ + +-#ifndef __REACTOS__ ++#ifdef ASSERT + #undef ASSERT +-#define ASSERT +-#else +-#undef ASSERT +-#define ASSERT //(x) if (!(x)) {RtlAssert("#x",__FILE__,__LINE__, ""); } +-#endif //__REACTOS__ ++#define ASSERT(x) ((void)0) ++// #define ASSERT(x) if (!(x)) { RtlAssert("#x",__FILE__,__LINE__, ""); } ++#endif + +- + #ifndef FILE_CHARACTERISTIC_PNP_DEVICE // DDK 2003 + + #define FILE_CHARACTERISTIC_PNP_DEVICE 0x00000800 +Index: id_dma.cpp +=================================================================== +--- id_dma.cpp (revision 38451) ++++ id_dma.cpp (working copy) +@@ -219,7 +219,7 @@ PHW_CHANNEL chan = &(deviceExtension->chan[lChannel]); PATA_REQ AtaReq = (PATA_REQ)(Srb->SrbExtension); BOOLEAN use_DB_IO = FALSE; @@ -56,34 +111,43 @@ Index: id_dma.cpp ULONG orig_count = count; ULONG max_entries = (deviceExtension->HwFlags & UNIATA_AHCI) ? ATA_AHCI_DMA_ENTRIES : ATA_DMA_ENTRIES; -@@ -281,7 +281,7 @@ +@@ -281,7 +281,7 @@ if(!dma_count || ((LONG)(dma_base) == -1)) { KdPrint2((PRINT_PREFIX "AtapiDmaSetup: No 1st block\n" )); //AtaReq->dma_base = NULL; - AtaReq->ahci_base64 = NULL; -+ AtaReq->ahci_base64 = (ULONGLONG)NULL; ++ AtaReq->ahci_base64 = 0; return FALSE; } -@@ -303,7 +303,7 @@ +@@ -303,7 +303,7 @@ if (i >= max_entries) { KdPrint2((PRINT_PREFIX "too many segments in DMA table\n" )); //AtaReq->dma_base = NULL; - AtaReq->ahci_base64 = NULL; -+ AtaReq->ahci_base64 = (ULONGLONG)NULL; ++ AtaReq->ahci_base64 = 0; return FALSE; } KdPrint2((PRINT_PREFIX " get Phys(data[n]=%x)\n", data )); -@@ -321,7 +321,7 @@ +@@ -321,7 +321,7 @@ } else if(!dma_count || !dma_base || ((LONG)(dma_base) == -1)) { //AtaReq->dma_base = NULL; - AtaReq->ahci_base64 = NULL; -+ AtaReq->ahci_base64 = (ULONGLONG)NULL; ++ AtaReq->ahci_base64 = 0; KdPrint2((PRINT_PREFIX "AtapiDmaSetup: No NEXT block\n" )); return FALSE; } -@@ -612,7 +612,7 @@ +@@ -596,7 +596,7 @@ + ) + { + PHW_LU_EXTENSION LunExt = &(deviceExtension->lun[ldev]); +- CHAR apiomode; ++ SCHAR apiomode; + + apiomode = (CHAR)AtaPioMode(&(LunExt->IdentifyData)); + +@@ -612,7 +612,7 @@ } if((deviceExtension->HbaCtrlFlags & HBAFLAGS_DMA_DISABLED_LBA48) && @@ -92,7 +156,7 @@ Index: id_dma.cpp (LunExt->TransferMode > ATA_PIO5) ) { KdPrint2((PRINT_PREFIX "AtapiDmaReinit: FORCE_DOWNRATE on Device %d for LBA48\n", ldev & 1)); -@@ -623,7 +623,7 @@ +@@ -623,7 +623,7 @@ if(AtaReq->Flags & REQ_FLAG_FORCE_DOWNRATE) { KdPrint2((PRINT_PREFIX "AtapiDmaReinit: FORCE_DOWNRATE on Device %d\n", ldev & 1)); @@ -101,74 +165,29 @@ Index: id_dma.cpp limit_lba48: LunExt->DeviceFlags |= REQ_FLAG_FORCE_DOWNRATE_LBA48; limit_pio: -@@ -1046,7 +1046,7 @@ - /* set PIO mode timings */ - AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_PIO0 + apiomode); - if((apiomode >= 0) && (ChipType != VIA133)) { -- SetPciConfig1(reg-0x08, via_pio[apiomode]); -+ SetPciConfig1(reg-0x08, via_pio[(UCHAR)apiomode]); - } - via82c_timing(deviceExtension, dev, ATA_PIO0 + apiomode); - AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_PIO0 + apiomode); -@@ -1067,18 +1067,18 @@ - apiomode = 4; - for(i=udmamode; i>=0; i--) { - if(AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_UDMA0 + i)) { -- AtapiWritePortEx4(chan, (ULONG)(&deviceExtension->BaseIoAddressBM_0), mode_reg, cyr_udmatiming[udmamode]); -+ AtapiWritePortEx4(chan, (ULONG)(&deviceExtension->BaseIoAddressBM_0), mode_reg, cyr_udmatiming[(UCHAR)udmamode]); - return; - } - } - for(i=wdmamode; i>=0; i--) { - if(AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_WDMA0 + i)) { -- AtapiWritePortEx4(chan, (ULONG)(&deviceExtension->BaseIoAddressBM_0), mode_reg, cyr_wdmatiming[wdmamode]); -+ AtapiWritePortEx4(chan, (ULONG)(&deviceExtension->BaseIoAddressBM_0), mode_reg, cyr_wdmatiming[(UCHAR)wdmamode]); - return; - } - } - if(AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_PIO0 + apiomode)) { -- AtapiWritePortEx4(chan, (ULONG)(&deviceExtension->BaseIoAddressBM_0), mode_reg, cyr_piotiming[apiomode]); -+ AtapiWritePortEx4(chan, (ULONG)(&deviceExtension->BaseIoAddressBM_0), mode_reg, cyr_piotiming[(UCHAR)apiomode]); - return; - } - return; -@@ -1113,7 +1113,7 @@ - } - if(AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_PIO0 + apiomode)) { - ChangePciConfig4(0x44 + (dev * 8), a | 0x80000000); -- SetPciConfig4(0x40 + (dev * 8), nat_piotiming[apiomode]); -+ SetPciConfig4(0x40 + (dev * 8), nat_piotiming[(UCHAR)apiomode]); - return; - } - /* Use GENERIC PIO */ -@@ -1413,7 +1413,7 @@ - // 44 - GetPciConfig4(0x44, reg44); - reg44 = (reg44 & ~(0xff << bit_offset)) | -- (sw_dma_modes[wdmamode] << bit_offset); -+ (sw_dma_modes[(UCHAR)wdmamode] << bit_offset); - SetPciConfig4(0x44, reg44); - // 40 - GetPciConfig4(0x40, reg40); -@@ -1439,7 +1439,7 @@ - // 40 - GetPciConfig4(0x40, reg40); - reg40 = (reg40 & ~(0xff << bit_offset)) | -- (sw_pio_modes[apiomode] << bit_offset); -+ (sw_pio_modes[(UCHAR)apiomode] << bit_offset); - SetPciConfig4(0x40, reg40); - return; - break; } -@@ -1527,7 +1527,7 @@ - /* set PIO mode timings */ +@@ -754,9 +754,9 @@ + IN ULONG DeviceNumber, + IN ULONG lChannel, // logical channel, + // is always 0 except simplex-only controllers +- IN CHAR apiomode, +- IN CHAR wdmamode, +- IN CHAR udmamode ++ IN SCHAR apiomode, ++ IN SCHAR wdmamode, ++ IN SCHAR udmamode + ) + { + PHW_DEVICE_EXTENSION deviceExtension = (PHW_DEVICE_EXTENSION)HwDeviceExtension; +@@ -1488,7 +1488,7 @@ AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_PIO0 + apiomode); -- SetPciConfig1(treg, cmd_pio_modes[apiomode]); -+ SetPciConfig1(treg, cmd_pio_modes[(UCHAR)apiomode]); - ChangePciConfig1(Channel ? 0x7b : 0x73, a & ~(!(DeviceNumber & 1) ? 0x35 : 0xca)); + SetPciConfig1(mreg, mode | (mask & 0x11)); +- SetPciConfig2(ureg - 0x8, sil_pio_modes[i]); ++ SetPciConfig2(ureg - 0x8, sil_pio_modes[apiomode]); return; -@@ -1538,7 +1538,7 @@ + } else { +@@ -1538,7 +1538,7 @@ /*******/ /* SiS */ /*******/ @@ -177,7 +196,7 @@ Index: id_dma.cpp static const ULONG sis_modes_new133[] = { 0x28269008, 0x0c266008, 0x04263008, 0x0c0a3008, 0x05093008, 0x22196008, 0x0c0a3008, 0x05093008, 0x050939fc, 0x050936ac, -@@ -1553,9 +1553,9 @@ +@@ -1553,9 +1553,9 @@ { 0x00cb, 0x0067, 0x0044, 0x0033, 0x0031, 0x0044, 0x0033, 0x0031, 0x8b31, 0x8731, 0x8531, 0x8431, 0x8231, 0x8131 }; @@ -189,7 +208,18 @@ Index: id_dma.cpp ULONG offs; switch(ChipType) { -@@ -1901,7 +1901,7 @@ +@@ -1731,8 +1731,8 @@ + AtaSetTransferMode(deviceExtension, DeviceNumber, lChannel, LunExt, ATA_PIO0 + apiomode); + ChangePciConfig1(0x50, a | (1 << (dev + 3)) ); + GetPciConfig1(0x54 + offset, reg54); +- if(reg54 < chtiming[i]) { +- SetPciConfig1(0x54 + offset, chtiming[i]); ++ if(reg54 < chtiming[apiomode]) { ++ SetPciConfig1(0x54 + offset, chtiming[apiomode]); + } + return; + } +@@ -1901,7 +1901,7 @@ ULONG ChipType = deviceExtension->HwFlags & CHIPTYPE_MASK; //ULONG ChipFlags = deviceExtension->HwFlags & CHIPFLAG_MASK; @@ -198,11 +228,27 @@ Index: id_dma.cpp if(mode == ATA_PIO5) mode = ATA_PIO4; -Index: id_init.cpp -=================================================================== ---- id_init.cpp (revision 38425) -+++ id_init.cpp (working copy) -@@ -52,11 +52,11 @@ +Index: id_badblock.cpp +=================================================================== +--- id_badblock.cpp (revision 38451) ++++ id_badblock.cpp (working copy) +@@ -159,7 +159,11 @@ + L"UniATA\\Parameters\\BadBlocks", + QueryTable, 0, 0); + ++#ifdef _DEBUG + KdPrint(( "InitBadBlocks returned: %#x\n", status)); ++#else ++ UNREFERENCED_PARAMETER(status); ++#endif + } else { + + KdPrint(( "InitBadBlocks local\n")); +Index: id_init.cpp +=================================================================== +--- id_init.cpp (revision 38451) ++++ id_init.cpp (working copy) +@@ -52,11 +52,11 @@ ) { PHW_DEVICE_EXTENSION deviceExtension = (PHW_DEVICE_EXTENSION)HwDeviceExtension; @@ -218,7 +264,7 @@ Index: id_init.cpp ULONG ChipType = deviceExtension->HwFlags & CHIPTYPE_MASK; ULONG ChipFlags= deviceExtension->HwFlags & CHIPFLAG_MASK; -@@ -216,7 +216,7 @@ +@@ -216,7 +216,7 @@ PCI_DEV_HW_SPEC_BM( 0730, 1039, 0x00, ATA_UDMA5, "SiS 730" , SIS100OLD ), PCI_DEV_HW_SPEC_BM( 0646, 1039, 0x00, ATA_UDMA6, "SiS 645DX", SIS133NEW ), @@ -227,7 +273,7 @@ Index: id_init.cpp /* PCI_DEV_HW_SPEC_BM( 0640, 1039, 0x00, ATA_UDMA4, "SiS 640" , SIS_SOUTH ),*/ PCI_DEV_HW_SPEC_BM( 0635, 1039, 0x00, ATA_UDMA5, "SiS 635" , SIS100NEW ), PCI_DEV_HW_SPEC_BM( 0633, 1039, 0x00, ATA_UDMA5, "SiS 633" , SIS100NEW ), -@@ -419,7 +419,7 @@ +@@ -419,7 +419,7 @@ BaseIoAddressBM = AtapiGetIoRange(HwDeviceExtension, ConfigInfo, pciData, SystemIoBusNumber, 4, 0, deviceExtension->NumberChannels*sizeof(IDE_BUSMASTER_REGISTERS)); for(c=0; cNumberChannels; c++) { @@ -236,7 +282,7 @@ Index: id_init.cpp ULONG unit10 = (c & 2); chan = &deviceExtension->chan[c]; -@@ -987,7 +987,7 @@ +@@ -987,7 +987,7 @@ IN ULONG slotNumber ) { @@ -245,7 +291,7 @@ Index: id_init.cpp PCI_COMMON_CONFIG pciData; ULONG funcNumber; ULONG busDataRead; -@@ -1039,7 +1039,7 @@ +@@ -1039,7 +1039,7 @@ IN ULONG c ) { @@ -254,7 +300,7 @@ Index: id_init.cpp PCI_COMMON_CONFIG pciData; ULONG funcNumber; ULONG busDataRead; -@@ -1174,7 +1174,7 @@ +@@ -1174,7 +1174,7 @@ ULONG slotNumber = deviceExtension->slotNumber; ULONG SystemIoBusNumber = deviceExtension->SystemIoBusNumber; @@ -263,7 +309,7 @@ Index: id_init.cpp PHW_CHANNEL chan; ULONG c; // logical channel (for Compatible Mode controllers) UCHAR tmp8; -@@ -1332,7 +1332,9 @@ +@@ -1332,7 +1332,9 @@ ULONG slotNumber = deviceExtension->slotNumber; ULONG SystemIoBusNumber = deviceExtension->SystemIoBusNumber; ULONG VendorID = deviceExtension->DevID & 0xffff; @@ -273,11 +319,158 @@ Index: id_init.cpp ULONG RevID = deviceExtension->RevID; // ULONG i; // BUSMASTER_CONTROLLER_INFORMATION* DevTypeInfo; -Index: id_probe.cpp -=================================================================== ---- id_probe.cpp (revision 38425) -+++ id_probe.cpp (working copy) -@@ -76,7 +76,6 @@ +Index: id_ata.cpp +=================================================================== +--- id_ata.cpp (revision 38451) ++++ id_ata.cpp (working copy) +@@ -1864,7 +1864,9 @@ + ULONG slotNumber = deviceExtension->slotNumber; + ULONG SystemIoBusNumber = deviceExtension->SystemIoBusNumber; + ULONG VendorID = deviceExtension->DevID & 0xffff; ++#ifdef _DEBUG + ULONG DeviceID = (deviceExtension->DevID >> 16) & 0xffff; ++#endif + //ULONG RevID = deviceExtension->RevID; + ULONG ChipFlags = deviceExtension->HwFlags & CHIPFLAG_MASK; + UCHAR tmp8; +@@ -2859,12 +2861,12 @@ + --*/ + ULONG + AtapiParseArgumentString( +- IN PCHAR String, +- IN PCHAR KeyWord ++ IN PCCH String, ++ IN PCCH KeyWord + ) + { +- PCHAR cptr; +- PCHAR kptr; ++ PCCH cptr; ++ PCCH kptr; + ULONG value; + ULONG stringLength = 0; + ULONG keyWordLength = 0; +@@ -2877,24 +2879,15 @@ + return 0; + } + +- // Calculate the string length and lower case all characters. ++ // Calculate the string length. + cptr = String; +- while (*cptr) { +- if (*cptr >= 'A' && *cptr <= 'Z') { +- *cptr = *cptr + ('a' - 'A'); +- } +- cptr++; ++ while (*cptr++) { + stringLength++; + } + +- // Calculate the keyword length and lower case all characters. +- cptr = KeyWord; +- while (*cptr) { +- +- if (*cptr >= 'A' && *cptr <= 'Z') { +- *cptr = *cptr + ('a' - 'A'); +- } +- cptr++; ++ // Calculate the keyword length. ++ kptr = KeyWord; ++ while (*kptr++) { + keyWordLength++; + } + +@@ -2920,18 +2913,21 @@ + } + + kptr = KeyWord; +- while (*cptr++ == *kptr++) { ++ while ((*cptr == *kptr) || ++ (*cptr <= 'Z' && *cptr + ('a' - 'A') == *kptr) || ++ (*cptr >= 'a' && *cptr - ('a' - 'A') == *kptr)) { ++ cptr++; ++ kptr++; + +- if (*(cptr - 1) == '\0') { ++ if (*cptr == '\0') { + // end of string + return 0; + } + } + +- if (*(kptr - 1) == '\0') { ++ if (*kptr == '\0') { + + // May have a match backup and check for blank or equals. +- cptr--; + while (*cptr == ' ' || *cptr == '\t') { + cptr++; + } +@@ -2967,7 +2963,7 @@ + } + + value = 0; +- if ((*cptr == '0') && (*(cptr + 1) == 'x')) { ++ if ((*cptr == '0') && ((*(cptr + 1) == 'x') || (*(cptr + 1) == 'X'))) { + // Value is in Hex. Skip the "0x" + cptr += 2; + for (index = 0; *(cptr + index); index++) { +@@ -2983,6 +2979,8 @@ + } else { + if ((*(cptr + index) >= 'a') && (*(cptr + index) <= 'f')) { + value = (16 * value) + (*(cptr + index) - 'a' + 10); ++ } else if ((*(cptr + index) >= 'A') && (*(cptr + index) <= 'F')) { ++ value = (16 * value) + (*(cptr + index) - 'A' + 10); + } else { + // Syntax error, return not found. + return 0; +@@ -8752,10 +8750,10 @@ + ULONG + AtapiRegCheckDevLunValue( + IN PVOID HwDeviceExtension, +- IN PWCHAR NamePrefix, ++ IN PCWCH NamePrefix, + IN ULONG chan, + IN ULONG dev, +- IN PWSTR Name, ++ IN PCWSTR Name, + IN ULONG Default + ) + { +@@ -8822,7 +8820,7 @@ + IN PVOID HwDeviceExtension, + IN ULONG chan, + IN ULONG dev, +- IN PWSTR Name, ++ IN PCWSTR Name, + IN ULONG Default + ) + { +@@ -8940,8 +8938,8 @@ + ULONG + AtapiRegCheckParameterValue( + IN PVOID HwDeviceExtension, +- IN PWSTR PathSuffix, +- IN PWSTR Name, ++ IN PCWSTR PathSuffix, ++ IN PCWSTR Name, + IN ULONG Default + ) + { +@@ -9108,7 +9106,7 @@ + VOID + _cdecl + _PrintNtConsole( +- PCHAR DebugMessage, ++ PCCH DebugMessage, + ... + ) + { +Index: id_probe.cpp +=================================================================== +--- id_probe.cpp (revision 38451) ++++ id_probe.cpp (working copy) +@@ -76,7 +76,6 @@ VOID AtapiDoNothing(VOID) { @@ -285,18 +478,18 @@ Index: id_probe.cpp return; } // end AtapiDoNothing() -@@ -504,8 +503,8 @@ +@@ -504,8 +503,8 @@ /* if(known) { RtlCopyMemory(newBMListPtr, (PVOID)&(BusMasterAdapters[i]), sizeof(BUSMASTER_CONTROLLER_INFORMATION)); } else {*/ - sprintf((PCHAR)vendorStrPtr, "%4.4x", VendorID); - sprintf((PCHAR)deviceStrPtr, "%4.4x", DeviceID); -+ sprintf((PCHAR)vendorStrPtr, "%4.4x", (UINT32)VendorID); -+ sprintf((PCHAR)deviceStrPtr, "%4.4x", (UINT32)DeviceID); ++ sprintf((PCHAR)vendorStrPtr, "%4.4lx", VendorID); ++ sprintf((PCHAR)deviceStrPtr, "%4.4lx", DeviceID); RtlCopyMemory(&(newBMListPtr->VendorIdStr), (PCHAR)vendorStrPtr, 4); RtlCopyMemory(&(newBMListPtr->DeviceIdStr), (PCHAR)deviceStrPtr, 4); -@@ -874,7 +873,11 @@ +@@ -874,7 +873,11 @@ BOOLEAN found = FALSE; BOOLEAN MasterDev; BOOLEAN simplexOnly = FALSE; @@ -308,7 +501,7 @@ Index: id_probe.cpp BOOLEAN AltInit = FALSE; SCSI_PHYSICAL_ADDRESS IoBasePort1; -@@ -1712,7 +1715,7 @@ +@@ -1712,7 +1715,7 @@ ) { PHW_DEVICE_EXTENSION deviceExtension = (PHW_DEVICE_EXTENSION)HwDeviceExtension; @@ -317,7 +510,7 @@ Index: id_probe.cpp // this buffer must be global for UNIATA_CORE build PCI_COMMON_CONFIG pciData; -@@ -1743,8 +1746,8 @@ +@@ -1743,8 +1746,8 @@ BOOLEAN found = FALSE; BOOLEAN MasterDev; BOOLEAN simplexOnly = FALSE; @@ -328,7 +521,7 @@ Index: id_probe.cpp PIDE_BUSMASTER_REGISTERS BaseIoAddressBM_0 = NULL; -@@ -1797,7 +1800,7 @@ +@@ -1797,7 +1800,7 @@ &pciData, PCI_COMMON_HDR_LENGTH); @@ -337,7 +530,7 @@ Index: id_probe.cpp KdPrint2((PRINT_PREFIX "busDataRead < PCI_COMMON_HDR_LENGTH => SP_RETURN_ERROR\n")); goto exit_error; } -@@ -2207,7 +2210,7 @@ +@@ -2207,7 +2210,7 @@ PHW_DEVICE_EXTENSION deviceExtension = (PHW_DEVICE_EXTENSION)HwDeviceExtension; PHW_CHANNEL chan; PULONG adapterCount = (PULONG)Context; @@ -346,7 +539,7 @@ Index: id_probe.cpp ULONG i; ULONG irq=0; ULONG portBase; -@@ -2217,7 +2220,7 @@ +@@ -2217,7 +2220,7 @@ BOOLEAN preConfig = FALSE; // PIDE_REGISTERS_1 BaseIoAddress1; @@ -355,39 +548,42 @@ Index: id_probe.cpp // The following table specifies the ports to be checked when searching for // an IDE controller. A zero entry terminates the search. -Index: id_sata.cpp -=================================================================== ---- id_sata.cpp (revision 38425) -+++ id_sata.cpp (working copy) -@@ -7,7 +7,7 @@ - ) - { - PHW_DEVICE_EXTENSION deviceExtension = (PHW_DEVICE_EXTENSION)HwDeviceExtension; -- ULONG Channel = deviceExtension->Channel + lChannel; -+ //ULONG Channel = deviceExtension->Channel + lChannel; - PHW_CHANNEL chan = &deviceExtension->chan[lChannel]; - SATA_SSTATUS_REG SStatus; - ULONG i; -@@ -126,7 +126,7 @@ - { - PHW_DEVICE_EXTENSION deviceExtension = (PHW_DEVICE_EXTENSION)HwDeviceExtension; - PHW_CHANNEL chan = &deviceExtension->chan[lChannel]; -- ULONG ChipFlags = deviceExtension->HwFlags & CHIPFLAG_MASK; -+ //ULONG ChipFlags = deviceExtension->HwFlags & CHIPFLAG_MASK; - SATA_SSTATUS_REG SStatus; - SATA_SERROR_REG SError; - -Index: ntddk_ex.h -=================================================================== ---- ntddk_ex.h (revision 38425) -+++ ntddk_ex.h (working copy) -@@ -6,7 +6,8 @@ - #define ASSERT +Index: bm_devs.h +=================================================================== +--- bm_devs.h (revision 38451) ++++ bm_devs.h (working copy) +@@ -482,7 +482,7 @@ + { #idlo, 4, 0x##idlo, #idhi, 4, 0x##idhi, rev, mode, name, flags} #else - #undef ASSERT --#define ASSERT //(x) if (!(x)) {RtlAssert("#x",__FILE__,__LINE__, ""); } -+//#define ASSERT //(x) if (!(x)) {RtlAssert("#x",__FILE__,__LINE__, ""); } -+#define ASSERT(x) // FIXME: WTF! - #endif //__REACTOS__ + #define PCI_DEV_HW_SPEC_BM(idhi, idlo, rev, mode, name, flags) \ +- { #idlo, 4, 0x##idlo, #idhi, 4, 0x##idhi, rev, mode, NULL, flags} ++ { (PCHAR) #idlo, 4, 0x##idlo, (PCHAR) #idhi, 4, 0x##idhi, rev, mode, NULL, flags} + #endif + #define BMLIST_TERMINATOR (0xffffffffL) +Index: bsmaster.h +=================================================================== +--- bsmaster.h (revision 38451) ++++ bsmaster.h (working copy) +@@ -987,7 +987,7 @@ + BOOLEAN opt_AtapiDmaRawRead; // default TRUE + BOOLEAN opt_AtapiDmaReadWrite; // default TRUE +- PCHAR FullDevName; ++ PCCH FullDevName; + + } HW_DEVICE_EXTENSION, *PHW_DEVICE_EXTENSION; + +@@ -1172,9 +1172,9 @@ + IN ULONG DeviceNumber, + IN ULONG lChannel, // logical channel, + // is always 0 except simplex-only controllers +- IN CHAR apiomode, +- IN CHAR wdmamode, +- IN CHAR udmamode ++ IN SCHAR apiomode, ++ IN SCHAR wdmamode, ++ IN SCHAR udmamode + ); + + extern BOOLEAN NTAPI