mirror of
https://github.com/reactos/reactos.git
synced 2025-06-05 09:20:30 +00:00
[NTOSKRNL/NEWCC]
Fix MSVC build and warnings svn path=/trunk/; revision=55431
This commit is contained in:
parent
0c13e015cf
commit
75a453ceba
8 changed files with 26 additions and 20 deletions
18
reactos/ntoskrnl/cache/cachesub.c
vendored
18
reactos/ntoskrnl/cache/cachesub.c
vendored
|
@ -143,7 +143,7 @@ _CcpFlushCache(IN PNOCC_CACHE_MAP Map,
|
||||||
PNOCC_BCB Bcb = NULL;
|
PNOCC_BCB Bcb = NULL;
|
||||||
LARGE_INTEGER LowerBound, UpperBound;
|
LARGE_INTEGER LowerBound, UpperBound;
|
||||||
PLIST_ENTRY ListEntry;
|
PLIST_ENTRY ListEntry;
|
||||||
IO_STATUS_BLOCK IOSB = { };
|
IO_STATUS_BLOCK IOSB = {0};
|
||||||
|
|
||||||
DPRINT1("CcFlushCache (while file) (%s:%d)\n", File, Line);
|
DPRINT1("CcFlushCache (while file) (%s:%d)\n", File, Line);
|
||||||
|
|
||||||
|
@ -164,7 +164,7 @@ _CcpFlushCache(IN PNOCC_CACHE_MAP Map,
|
||||||
while (ListEntry != &Map->AssociatedBcb)
|
while (ListEntry != &Map->AssociatedBcb)
|
||||||
{
|
{
|
||||||
Bcb = CONTAINING_RECORD(ListEntry, NOCC_BCB, ThisFileList);
|
Bcb = CONTAINING_RECORD(ListEntry, NOCC_BCB, ThisFileList);
|
||||||
CcpReferenceCache(Bcb - CcCacheSections);
|
CcpReferenceCache((ULONG)(Bcb - CcCacheSections));
|
||||||
|
|
||||||
if (Bcb->FileOffset.QuadPart + Bcb->Length >= LowerBound.QuadPart &&
|
if (Bcb->FileOffset.QuadPart + Bcb->Length >= LowerBound.QuadPart &&
|
||||||
Bcb->FileOffset.QuadPart < UpperBound.QuadPart)
|
Bcb->FileOffset.QuadPart < UpperBound.QuadPart)
|
||||||
|
@ -186,7 +186,7 @@ _CcpFlushCache(IN PNOCC_CACHE_MAP Map,
|
||||||
if (Delete && Bcb->RefCount < 2)
|
if (Delete && Bcb->RefCount < 2)
|
||||||
{
|
{
|
||||||
Bcb->RefCount = 1;
|
Bcb->RefCount = 1;
|
||||||
CcpDereferenceCache(Bcb - CcCacheSections, FALSE);
|
CcpDereferenceCache((ULONG)(Bcb - CcCacheSections), FALSE);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
CcpUnpinData(Bcb, TRUE);
|
CcpUnpinData(Bcb, TRUE);
|
||||||
|
@ -276,9 +276,10 @@ PVOID
|
||||||
NTAPI
|
NTAPI
|
||||||
CcRemapBcb(IN PVOID Bcb)
|
CcRemapBcb(IN PVOID Bcb)
|
||||||
{
|
{
|
||||||
|
ULONG Number = (ULONG)(((PNOCC_BCB)Bcb) - CcCacheSections);
|
||||||
CcpLock();
|
CcpLock();
|
||||||
ASSERT(RtlTestBit(CcCacheBitmap, ((PNOCC_BCB)Bcb) - CcCacheSections));
|
ASSERT(RtlTestBit(CcCacheBitmap, Number));
|
||||||
CcpReferenceCache(((PNOCC_BCB)Bcb) - CcCacheSections);
|
CcpReferenceCache(Number);
|
||||||
CcpUnlock();
|
CcpUnlock();
|
||||||
return Bcb;
|
return Bcb;
|
||||||
}
|
}
|
||||||
|
@ -315,10 +316,11 @@ VOID
|
||||||
NTAPI
|
NTAPI
|
||||||
CcRepinBcb(IN PVOID Bcb)
|
CcRepinBcb(IN PVOID Bcb)
|
||||||
{
|
{
|
||||||
|
ULONG Number = (ULONG)(((PNOCC_BCB)Bcb) - CcCacheSections);
|
||||||
CcpLock();
|
CcpLock();
|
||||||
ASSERT(RtlTestBit(CcCacheBitmap, ((PNOCC_BCB)Bcb) - CcCacheSections));
|
ASSERT(RtlTestBit(CcCacheBitmap, Number));
|
||||||
DPRINT("CcRepinBcb(#%x)\n", ((PNOCC_BCB)Bcb) - CcCacheSections);
|
DPRINT("CcRepinBcb(#%x)\n", Number);
|
||||||
CcpReferenceCache(((PNOCC_BCB)Bcb) - CcCacheSections);
|
CcpReferenceCache(Number);
|
||||||
CcpUnlock();
|
CcpUnlock();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
4
reactos/ntoskrnl/cache/fssup.c
vendored
4
reactos/ntoskrnl/cache/fssup.c
vendored
|
@ -297,9 +297,11 @@ CcSetFileSizes(IN PFILE_OBJECT FileObject,
|
||||||
IN PCC_FILE_SIZES FileSizes)
|
IN PCC_FILE_SIZES FileSizes)
|
||||||
{
|
{
|
||||||
PNOCC_CACHE_MAP Map = (PNOCC_CACHE_MAP)FileObject->SectionObjectPointer->SharedCacheMap;
|
PNOCC_CACHE_MAP Map = (PNOCC_CACHE_MAP)FileObject->SectionObjectPointer->SharedCacheMap;
|
||||||
|
PNOCC_BCB Bcb;
|
||||||
|
|
||||||
if (!Map) return;
|
if (!Map) return;
|
||||||
Map->FileSizes = *FileSizes;
|
Map->FileSizes = *FileSizes;
|
||||||
PNOCC_BCB Bcb = Map->AssociatedBcb.Flink == &Map->AssociatedBcb ?
|
Bcb = Map->AssociatedBcb.Flink == &Map->AssociatedBcb ?
|
||||||
NULL : CONTAINING_RECORD(Map->AssociatedBcb.Flink, NOCC_BCB, ThisFileList);
|
NULL : CONTAINING_RECORD(Map->AssociatedBcb.Flink, NOCC_BCB, ThisFileList);
|
||||||
if (!Bcb) return;
|
if (!Bcb) return;
|
||||||
MmExtendCacheSection(Bcb->SectionObject, &FileSizes->FileSize, FALSE);
|
MmExtendCacheSection(Bcb->SectionObject, &FileSizes->FileSize, FALSE);
|
||||||
|
|
5
reactos/ntoskrnl/cache/pinsup.c
vendored
5
reactos/ntoskrnl/cache/pinsup.c
vendored
|
@ -318,6 +318,8 @@ CcpMapData
|
||||||
PMM_CACHE_SECTION_SEGMENT SectionObject = NULL;
|
PMM_CACHE_SECTION_SEGMENT SectionObject = NULL;
|
||||||
NTSTATUS Status;
|
NTSTATUS Status;
|
||||||
PNOCC_CACHE_MAP Map = (PNOCC_CACHE_MAP)FileObject->SectionObjectPointer->SharedCacheMap;
|
PNOCC_CACHE_MAP Map = (PNOCC_CACHE_MAP)FileObject->SectionObjectPointer->SharedCacheMap;
|
||||||
|
ULONG SectionSize;
|
||||||
|
ULONG ViewSize = CACHE_STRIPE;
|
||||||
|
|
||||||
if (!Map)
|
if (!Map)
|
||||||
{
|
{
|
||||||
|
@ -358,8 +360,6 @@ CcpMapData
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
}
|
}
|
||||||
|
|
||||||
ULONG SectionSize;
|
|
||||||
|
|
||||||
DPRINT("File size %08x%08x\n", Map->FileSizes.ValidDataLength.HighPart, Map->FileSizes.ValidDataLength.LowPart);
|
DPRINT("File size %08x%08x\n", Map->FileSizes.ValidDataLength.HighPart, Map->FileSizes.ValidDataLength.LowPart);
|
||||||
|
|
||||||
if (Map->FileSizes.ValidDataLength.QuadPart)
|
if (Map->FileSizes.ValidDataLength.QuadPart)
|
||||||
|
@ -424,7 +424,6 @@ retry:
|
||||||
}
|
}
|
||||||
|
|
||||||
DPRINT("Selected BCB #%x\n", BcbHead);
|
DPRINT("Selected BCB #%x\n", BcbHead);
|
||||||
ULONG ViewSize = CACHE_STRIPE;
|
|
||||||
|
|
||||||
Bcb = &CcCacheSections[BcbHead];
|
Bcb = &CcCacheSections[BcbHead];
|
||||||
Status = MmMapCacheViewInSystemSpaceAtOffset
|
Status = MmMapCacheViewInSystemSpaceAtOffset
|
||||||
|
|
7
reactos/ntoskrnl/cache/section/fault.c
vendored
7
reactos/ntoskrnl/cache/section/fault.c
vendored
|
@ -266,12 +266,13 @@ MiCowCacheSectionPage
|
||||||
Region->Protect == PAGE_EXECUTE_READWRITE)
|
Region->Protect == PAGE_EXECUTE_READWRITE)
|
||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
|
ULONG Entry;
|
||||||
DPRINTC("setting non-cow page %x %x:%x offset %x (%x) to writable\n", Segment, Process, PAddress, Offset.u.LowPart, MmGetPfnForProcess(Process, Address));
|
DPRINTC("setting non-cow page %x %x:%x offset %x (%x) to writable\n", Segment, Process, PAddress, Offset.u.LowPart, MmGetPfnForProcess(Process, Address));
|
||||||
if (Segment->FileObject)
|
if (Segment->FileObject)
|
||||||
{
|
{
|
||||||
DPRINTC("file %wZ\n", &Segment->FileObject->FileName);
|
DPRINTC("file %wZ\n", &Segment->FileObject->FileName);
|
||||||
}
|
}
|
||||||
ULONG Entry = MiGetPageEntryCacheSectionSegment(Segment, &Offset);
|
Entry = MiGetPageEntryCacheSectionSegment(Segment, &Offset);
|
||||||
DPRINT("Entry %x\n", Entry);
|
DPRINT("Entry %x\n", Entry);
|
||||||
if (Entry &&
|
if (Entry &&
|
||||||
!IS_SWAP_FROM_SSE(Entry) &&
|
!IS_SWAP_FROM_SSE(Entry) &&
|
||||||
|
@ -478,7 +479,7 @@ MmpSectionAccessFaultInner
|
||||||
{
|
{
|
||||||
if (Thread->ActiveFaultCount > 0)
|
if (Thread->ActiveFaultCount > 0)
|
||||||
{
|
{
|
||||||
WORK_QUEUE_WITH_CONTEXT Context = { };
|
WORK_QUEUE_WITH_CONTEXT Context = {0};
|
||||||
DPRINT("Already fault handling ... going to work item (%x)\n", Address);
|
DPRINT("Already fault handling ... going to work item (%x)\n", Address);
|
||||||
Context.AddressSpace = AddressSpace;
|
Context.AddressSpace = AddressSpace;
|
||||||
Context.MemoryArea = MemoryArea;
|
Context.MemoryArea = MemoryArea;
|
||||||
|
@ -659,7 +660,7 @@ MmNotPresentFaultCacheSectionInner
|
||||||
{
|
{
|
||||||
if (Thread->ActiveFaultCount > 1)
|
if (Thread->ActiveFaultCount > 1)
|
||||||
{
|
{
|
||||||
WORK_QUEUE_WITH_CONTEXT Context = { };
|
WORK_QUEUE_WITH_CONTEXT Context = {0};
|
||||||
DPRINTC("Already fault handling ... going to work item (%x)\n", Address);
|
DPRINTC("Already fault handling ... going to work item (%x)\n", Address);
|
||||||
Context.AddressSpace = AddressSpace;
|
Context.AddressSpace = AddressSpace;
|
||||||
Context.MemoryArea = MemoryArea;
|
Context.MemoryArea = MemoryArea;
|
||||||
|
|
2
reactos/ntoskrnl/cache/section/newmm.h
vendored
2
reactos/ntoskrnl/cache/section/newmm.h
vendored
|
@ -19,7 +19,7 @@
|
||||||
#define MEMORY_AREA_CACHE (2)
|
#define MEMORY_AREA_CACHE (2)
|
||||||
#define MM_SEGMENT_FINALIZE (0x40000000)
|
#define MM_SEGMENT_FINALIZE (0x40000000)
|
||||||
|
|
||||||
#define RMAP_SEGMENT_MASK ~0xff
|
#define RMAP_SEGMENT_MASK ~((ULONG_PTR)0xff)
|
||||||
#define RMAP_IS_SEGMENT(x) (((ULONG_PTR)(x) & RMAP_SEGMENT_MASK) == RMAP_SEGMENT_MASK)
|
#define RMAP_IS_SEGMENT(x) (((ULONG_PTR)(x) & RMAP_SEGMENT_MASK) == RMAP_SEGMENT_MASK)
|
||||||
|
|
||||||
#define MIN(x,y) (((x)<(y))?(x):(y))
|
#define MIN(x,y) (((x)<(y))?(x):(y))
|
||||||
|
|
2
reactos/ntoskrnl/cache/section/sptab.c
vendored
2
reactos/ntoskrnl/cache/section/sptab.c
vendored
|
@ -107,7 +107,7 @@ MiSectionPageTableGetOrAllocate
|
||||||
MiSectionPageTableGet(Table, FileOffset);
|
MiSectionPageTableGet(Table, FileOffset);
|
||||||
if (!PageTableSlice)
|
if (!PageTableSlice)
|
||||||
{
|
{
|
||||||
CACHE_SECTION_PAGE_TABLE SectionZeroPageTable = { };
|
CACHE_SECTION_PAGE_TABLE SectionZeroPageTable = {0};
|
||||||
SearchFileOffset.QuadPart = ROUND_DOWN(FileOffset->QuadPart, ENTRIES_PER_ELEMENT * PAGE_SIZE);
|
SearchFileOffset.QuadPart = ROUND_DOWN(FileOffset->QuadPart, ENTRIES_PER_ELEMENT * PAGE_SIZE);
|
||||||
SectionZeroPageTable.FileOffset = SearchFileOffset;
|
SectionZeroPageTable.FileOffset = SearchFileOffset;
|
||||||
SectionZeroPageTable.Refcount = 1;
|
SectionZeroPageTable.Refcount = 1;
|
||||||
|
|
3
reactos/ntoskrnl/cache/section/swapout.c
vendored
3
reactos/ntoskrnl/cache/section/swapout.c
vendored
|
@ -422,6 +422,8 @@ bail:
|
||||||
|
|
||||||
if (Segment)
|
if (Segment)
|
||||||
{
|
{
|
||||||
|
ULONG RefCount;
|
||||||
|
|
||||||
DPRINTC("About to finalize section page %x (%x:%x) Status %x %s\n", Page, Segment, FileOffset.LowPart, Status, Dirty ? "dirty" : "clean");
|
DPRINTC("About to finalize section page %x (%x:%x) Status %x %s\n", Page, Segment, FileOffset.LowPart, Status, Dirty ? "dirty" : "clean");
|
||||||
|
|
||||||
if (!NT_SUCCESS(Status) ||
|
if (!NT_SUCCESS(Status) ||
|
||||||
|
@ -438,7 +440,6 @@ bail:
|
||||||
}
|
}
|
||||||
|
|
||||||
// Alas, we had the last reference
|
// Alas, we had the last reference
|
||||||
ULONG RefCount;
|
|
||||||
if ((RefCount = InterlockedDecrementUL(&Segment->ReferenceCount)) == 0)
|
if ((RefCount = InterlockedDecrementUL(&Segment->ReferenceCount)) == 0)
|
||||||
MmFinalizeSegment(Segment);
|
MmFinalizeSegment(Segment);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1290,7 +1290,8 @@ MiReadPage(PMEMORY_AREA MemoryArea,
|
||||||
* Page - Variable that receives a page contains the read data.
|
* Page - Variable that receives a page contains the read data.
|
||||||
*/
|
*/
|
||||||
{
|
{
|
||||||
MM_REQUIRED_RESOURCES Resources = { };
|
MM_REQUIRED_RESOURCES Resources = {0};
|
||||||
|
NTSTATUS Status;
|
||||||
|
|
||||||
Resources.Context = MemoryArea->Data.SectionData.Section->FileObject;
|
Resources.Context = MemoryArea->Data.SectionData.Section->FileObject;
|
||||||
Resources.FileOffset.QuadPart = SegOffset +
|
Resources.FileOffset.QuadPart = SegOffset +
|
||||||
|
@ -1300,7 +1301,7 @@ MiReadPage(PMEMORY_AREA MemoryArea,
|
||||||
|
|
||||||
DPRINT1("%S, offset %x, len %d, page %x\n", ((PFILE_OBJECT)Resources.Context)->FileName.Buffer, Resources.FileOffset.LowPart, Resources.Amount, Resources.Page[0]);
|
DPRINT1("%S, offset %x, len %d, page %x\n", ((PFILE_OBJECT)Resources.Context)->FileName.Buffer, Resources.FileOffset.LowPart, Resources.Amount, Resources.Page[0]);
|
||||||
|
|
||||||
NTSTATUS Status = MiReadFilePage(NULL, NULL, &Resources);
|
Status = MiReadFilePage(NULL, NULL, &Resources);
|
||||||
*Page = Resources.Page[0];
|
*Page = Resources.Page[0];
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue