branch update for HEAD-2003091401
[reactos.git] / ntoskrnl / ex / zone.c
index 404f7fe..3cdca28 100644 (file)
 
 /* FUNCTIONS ***************************************************************/
 
+// undocumented? from extypes.h in here for now...
+
+//typedef struct _ZONE_ENTRY
+//{
+//   SINGLE_LIST_ENTRY Entry;
+//} ZONE_ENTRY, *PZONE_ENTRY;
+
+
+
+/*
+ * @implemented
+ */
 NTSTATUS
 STDCALL
 ExExtendZone (
@@ -21,27 +33,30 @@ ExExtendZone (
        ULONG           SegmentSize
        )
 {
-   PZONE_ENTRY entry;
-   PZONE_SEGMENT seg;
+   PZONE_SEGMENT_HEADER entry;
+   PZONE_SEGMENT_HEADER seg;
    unsigned int i;
    
-   seg = (PZONE_SEGMENT)Segment;
-   seg->size = SegmentSize;
+   seg = (PZONE_SEGMENT_HEADER)Segment;
+   seg->Reserved = (PVOID) SegmentSize;
    
-   PushEntryList(&Zone->SegmentList,&seg->Entry);
+   PushEntryList(&Zone->SegmentList,&seg->SegmentList);
    
-   entry = (PZONE_ENTRY)( ((PVOID)seg) + sizeof(ZONE_SEGMENT) );
+   entry = (PZONE_SEGMENT_HEADER)( ((PVOID)seg) + sizeof(ZONE_SEGMENT_HEADER) );
    
    for (i=0;i<(SegmentSize / Zone->BlockSize);i++)
      {
-       PushEntryList(&Zone->FreeList,&entry->Entry);
-       entry = (PZONE_ENTRY)(((PVOID)entry) + sizeof(ZONE_ENTRY) + 
+       PushEntryList(&Zone->FreeList,&entry->SegmentList);
+       entry = (PZONE_SEGMENT_HEADER)(((PVOID)entry) + sizeof(PZONE_SEGMENT_HEADER) + 
                              Zone->BlockSize);
      }
    return(STATUS_SUCCESS);
 }
 
 
+/*
+ * @implemented
+ */
 NTSTATUS
 STDCALL
 ExInterlockedExtendZone (
@@ -61,6 +76,9 @@ ExInterlockedExtendZone (
 }
 
 
+/*
+ * @implemented
+ */
 NTSTATUS
 STDCALL
 ExInitializeZone (
@@ -80,25 +98,25 @@ ExInitializeZone (
  */
 {
    unsigned int i;
-   PZONE_SEGMENT seg;
-   PZONE_ENTRY entry;
+   PZONE_SEGMENT_HEADER seg;
+   PZONE_SEGMENT_HEADER entry;
    
    Zone->FreeList.Next=NULL;
    Zone->SegmentList.Next=NULL;
    Zone->BlockSize=BlockSize;
    Zone->TotalSegmentSize = InitialSegmentSize;
    
-   seg = (PZONE_SEGMENT)InitialSegment;
-   seg->size = InitialSegmentSize;
+   seg = (PZONE_SEGMENT_HEADER)InitialSegment;
+   seg->Reserved = (PVOID*) InitialSegmentSize;
    
-   PushEntryList(&Zone->SegmentList,&seg->Entry);
+   PushEntryList(&Zone->SegmentList,&seg->SegmentList);
    
-   entry = (PZONE_ENTRY)( ((PVOID)seg) + sizeof(ZONE_SEGMENT) );
+   entry = (PZONE_SEGMENT_HEADER)( ((PVOID)seg) + sizeof(ZONE_SEGMENT_HEADER) );
    
    for (i=0;i<(InitialSegmentSize / BlockSize);i++)
      {
-       PushEntryList(&Zone->FreeList,&entry->Entry);
-       entry = (PZONE_ENTRY)(((PVOID)entry) + sizeof(ZONE_ENTRY) + BlockSize);
+       PushEntryList(&Zone->FreeList,&entry->SegmentList);
+       entry = (PZONE_SEGMENT_HEADER)(((PVOID)entry) + sizeof(PZONE_SEGMENT_HEADER) + BlockSize);
      }
 
    return(STATUS_SUCCESS);