Some 64 bits fixes (approved by Filip)
authorHervé Poussineau <hpoussin@reactos.org>
Thu, 7 Sep 2006 19:13:37 +0000 (19:13 +0000)
committerHervé Poussineau <hpoussin@reactos.org>
Thu, 7 Sep 2006 19:13:37 +0000 (19:13 +0000)
svn path=/trunk/; revision=23965

reactos/lib/cmlib/cminit.c
reactos/lib/cmlib/cmlib.h
reactos/lib/cmlib/cmlib.mak
reactos/lib/cmlib/hivebin.c
reactos/lib/cmlib/hivecell.c
reactos/lib/cmlib/hiveinit.c
reactos/lib/cmlib/hivewrt.c
reactos/ntoskrnl/cm/regfile.c

index 5da56d3..ac4a413 100644 (file)
@@ -14,7 +14,7 @@ CmCreateRootNode(
 {\r
    PCM_KEY_NODE KeyCell;\r
    HCELL_INDEX RootCellIndex;\r
-   ULONG NameSize;\r
+   SIZE_T NameSize;\r
 \r
    NameSize = wcslen(Name) * sizeof(WCHAR);\r
    RootCellIndex = HvAllocateCell(Hive, sizeof(CM_KEY_NODE) + NameSize, HvStable);\r
@@ -37,7 +37,7 @@ CmCreateRootNode(
    KeyCell->ValueList.List = HCELL_NULL;\r
    KeyCell->SecurityKeyOffset = HCELL_NULL;\r
    KeyCell->ClassNameOffset = HCELL_NULL; \r
-   KeyCell->NameSize = NameSize;\r
+   KeyCell->NameSize = (USHORT)NameSize;\r
    KeyCell->ClassSize = 0;\r
    memcpy(KeyCell->Name, Name, NameSize);\r
 \r
index b94af31..ab699d6 100644 (file)
@@ -8,6 +8,7 @@
 #ifndef CMLIB_H\r
 #define CMLIB_H\r
 \r
+#define WIN32_NO_STATUS\r
 #include <ntddk.h>\r
 #include "hivedata.h"\r
 #include "cmdata.h"\r
@@ -30,7 +31,7 @@ typedef VOID (CMAPI *PRELEASE_CELL_ROUTINE)(
    HCELL_INDEX Cell);\r
 \r
 typedef PVOID (CMAPI *PALLOCATE_ROUTINE)(\r
-   ULONG Size,\r
+   SIZE_T Size,\r
    BOOLEAN Paged);\r
 \r
 typedef VOID (CMAPI *PFREE_ROUTINE)(\r
@@ -39,21 +40,21 @@ typedef VOID (CMAPI *PFREE_ROUTINE)(
 typedef BOOLEAN (CMAPI *PFILE_READ_ROUTINE)(\r
    struct _HHIVE *RegistryHive,\r
    ULONG FileType,\r
-   ULONG FileOffset,\r
+   ULONGLONG FileOffset,\r
    PVOID Buffer,\r
-   ULONG BufferLength);\r
+   SIZE_T BufferLength);\r
 \r
 typedef BOOLEAN (CMAPI *PFILE_WRITE_ROUTINE)(\r
    struct _HHIVE *RegistryHive,\r
    ULONG FileType,\r
-   ULONG FileOffset,\r
+   ULONGLONG FileOffset,\r
    PVOID Buffer,\r
-   ULONG BufferLength);\r
+   SIZE_T BufferLength);\r
 \r
 typedef BOOLEAN (CMAPI *PFILE_SET_SIZE_ROUTINE)(\r
    struct _HHIVE *RegistryHive,\r
    ULONG FileType,\r
-   ULONG FileSize);\r
+   ULONGLONG FileSize);\r
 \r
 typedef BOOLEAN (CMAPI *PFILE_FLUSH_ROUTINE)(\r
    struct _HHIVE *RegistryHive,\r
@@ -168,7 +169,7 @@ HvGetCellSize(
 HCELL_INDEX CMAPI\r
 HvAllocateCell(\r
    PHHIVE RegistryHive,\r
-   ULONG Size,\r
+   SIZE_T Size,\r
    HV_STORAGE_TYPE Storage);\r
 \r
 HCELL_INDEX CMAPI\r
index 301f3bd..076a792 100644 (file)
@@ -19,9 +19,12 @@ CMLIB_HOST_TARGET = \
        $(CMLIB_OUT)$(SEP)cmlib.a\r
 \r
 CMLIB_HOST_SOURCES = $(addprefix $(CMLIB_BASE_), \\r
+       cminit.c \\r
        hivebin.c \\r
        hivecell.c \\r
        hiveinit.c \\r
+       hivesum.c \\r
+       hivewrt.c \\r
        )\r
 \r
 CMLIB_HOST_OBJECTS = \\r
@@ -36,6 +39,10 @@ $(CMLIB_HOST_TARGET): $(CMLIB_HOST_OBJECTS) | $(CMLIB_OUT)
        $(ECHO_AR)\r
        $(host_ar) -r $@ $(CMLIB_HOST_OBJECTS)\r
 \r
+$(CMLIB_INT_)cminit.o: $(CMLIB_BASE_)cminit.c | $(CMLIB_INT)\r
+       $(ECHO_CC)\r
+       ${host_gcc} $(CMLIB_HOST_CFLAGS) -c $< -o $@\r
+\r
 $(CMLIB_INT_)hivebin.o: $(CMLIB_BASE_)hivebin.c | $(CMLIB_INT)\r
        $(ECHO_CC)\r
        ${host_gcc} $(CMLIB_HOST_CFLAGS) -c $< -o $@\r
@@ -48,6 +55,14 @@ $(CMLIB_INT_)hiveinit.o: $(CMLIB_BASE_)hiveinit.c | $(CMLIB_INT)
        $(ECHO_CC)\r
        ${host_gcc} $(CMLIB_HOST_CFLAGS) -c $< -o $@\r
 \r
+$(CMLIB_INT_)hivesum.o: $(CMLIB_BASE_)hivesum.c | $(CMLIB_INT)\r
+       $(ECHO_CC)\r
+       ${host_gcc} $(CMLIB_HOST_CFLAGS) -c $< -o $@\r
+\r
+$(CMLIB_INT_)hivewrt.o: $(CMLIB_BASE_)hivewrt.c | $(CMLIB_INT)\r
+       $(ECHO_CC)\r
+       ${host_gcc} $(CMLIB_HOST_CFLAGS) -c $< -o $@\r
+\r
 .PHONY: cmlib_host\r
 cmlib_host: $(CMLIB_HOST_TARGET)\r
 \r
index ad13e92..29e74b9 100644 (file)
@@ -16,7 +16,7 @@ HvpAddBin(
 {\r
    PHMAP_ENTRY BlockList;\r
    PHBIN Bin;\r
-   ULONG BinSize;\r
+   SIZE_T BinSize;\r
    ULONG i;\r
    ULONG BitmapSize;\r
    ULONG BlockCount;\r
index 893388e..ce34127 100644 (file)
@@ -351,7 +351,7 @@ HvReallocateCell(
          return HCELL_NULL;\r
 \r
       NewCell = HvGetCell(RegistryHive, NewCellIndex);\r
-      RtlCopyMemory(NewCell, OldCell, -OldCellSize);\r
+      RtlCopyMemory(NewCell, OldCell, (SIZE_T)-OldCellSize);\r
       \r
       HvFreeCell(RegistryHive, CellIndex);\r
 \r
index f587cfd..567789c 100644 (file)
@@ -151,7 +151,7 @@ HvpInitializeMemoryHive(
    //\r
    ChunkSize = ((PHBASE_BLOCK)ChunkBase)->Length;\r
    ((PHBASE_BLOCK)ChunkBase)->Length = HV_BLOCK_SIZE;\r
-   DPRINT1("ChunkSize: %lx\n", ChunkSize);\r
+   DPRINT("ChunkSize: %lx\n", ChunkSize);\r
 \r
    if (ChunkSize < sizeof(HBASE_BLOCK) ||\r
        !HvpVerifyHiveHeader((PHBASE_BLOCK)ChunkBase))\r
@@ -173,7 +173,7 @@ HvpInitializeMemoryHive(
     * we go.\r
     */\r
    \r
-   Hive->Storage[HvStable].Length = (ChunkSize / HV_BLOCK_SIZE) - 1;\r
+   Hive->Storage[HvStable].Length = (ULONG)(ChunkSize / HV_BLOCK_SIZE) - 1;\r
    Hive->Storage[HvStable].BlockList =\r
       Hive->Allocate(Hive->Storage[HvStable].Length *\r
                      sizeof(HMAP_ENTRY), FALSE);\r
index ce0e1af..e1d1c11 100644 (file)
@@ -13,9 +13,9 @@ static BOOLEAN CMAPI
 HvpWriteLog(\r
    PHHIVE RegistryHive)\r
 {\r
-   ULONG FileOffset;\r
-   ULONG BufferSize;\r
-   ULONG BitmapSize;\r
+   ULONGLONG FileOffset;\r
+   SIZE_T BufferSize;\r
+   SIZE_T BitmapSize;\r
    PUCHAR Buffer;\r
    PUCHAR Ptr;\r
    ULONG BlockIndex;\r
@@ -138,7 +138,7 @@ HvpWriteHive(
    PHHIVE RegistryHive,\r
    BOOLEAN OnlyDirty)\r
 {\r
-   ULONG FileOffset;\r
+   ULONGLONG FileOffset;\r
    ULONG BlockIndex;\r
    ULONG LastIndex;\r
    PVOID BlockPtr;\r
index 858d5f6..8ccb8a0 100644 (file)
@@ -46,9 +46,9 @@ BOOLEAN CMAPI
 CmpFileRead(
    PHHIVE RegistryHive,
    ULONG FileType,
-   ULONG FileOffset,
+   ULONGLONG FileOffset,
    PVOID Buffer,
-   ULONG BufferLength)
+   SIZE_T BufferLength)
 {
    PEREGISTRY_HIVE CmHive = (PEREGISTRY_HIVE)RegistryHive;
    HANDLE HiveHandle = FileType == HV_TYPE_PRIMARY ? CmHive->HiveHandle : CmHive->LogHandle;
@@ -67,9 +67,9 @@ BOOLEAN CMAPI
 CmpFileWrite(
    PHHIVE RegistryHive,
    ULONG FileType,
-   ULONG FileOffset,
+   ULONGLONG FileOffset,
    PVOID Buffer,
-   ULONG BufferLength)
+   SIZE_T BufferLength)
 {
    PEREGISTRY_HIVE CmHive = (PEREGISTRY_HIVE)RegistryHive;
    HANDLE HiveHandle = FileType == HV_TYPE_PRIMARY ? CmHive->HiveHandle : CmHive->LogHandle;
@@ -88,7 +88,7 @@ BOOLEAN CMAPI
 CmpFileSetSize(
    PHHIVE RegistryHive,
    ULONG FileType,
-   ULONG FileSize)
+   ULONGLONG FileSize)
 {
    PEREGISTRY_HIVE CmHive = (PEREGISTRY_HIVE)RegistryHive;
    HANDLE HiveHandle = FileType == HV_TYPE_PRIMARY ? CmHive->HiveHandle : CmHive->LogHandle;