Author: arty
Date: Mon Sep  4 10:38:37 2006
New Revision: 23909
URL: 
http://svn.reactos.org/svn/reactos?rev=23909&view=rev
Log:
Link ntoskrnl.
Removed:
    branches/powerpc/reactos/lib/rtl/bitmap.c
Modified:
    branches/powerpc/reactos/lib/rtl/bit.c
    branches/powerpc/reactos/tools/ppc.lost+found/link-ntoskrnl
Modified: branches/powerpc/reactos/lib/rtl/bit.c
URL:
http://svn.reactos.org/svn/reactos/branches/powerpc/reactos/lib/rtl/bit.c?r…
==============================================================================
--- branches/powerpc/reactos/lib/rtl/bit.c (original)
+++ branches/powerpc/reactos/lib/rtl/bit.c Mon Sep  4 10:38:37 2006
@@ -13,45 +13,4 @@
 /* FUNCTIONS ****************************************************************/
-/*
- * @implemented
- */
-CCHAR NTAPI
-RtlFindLeastSignificantBit(IN ULONGLONG Set)
-{
-  int i;
-
-  if (Set == 0ULL)
-    return -1;
-
-  for (i = 0; i < 64; i++)
-  {
-    if (Set & (1 << i))
-      return (CCHAR)i;
-  }
-
-  return -1;
-}
-
-
-/*
- * @implemented
- */
-CCHAR NTAPI
-RtlFindMostSignificantBit(IN ULONGLONG Set)
-{
-  int i;
-
-  if (Set == 0ULL)
-    return -1;
-
-  for (i = 63; i >= 0; i--)
-  {
-    if (Set & (1 << i))
-      return (CCHAR)i;
-  }
-
-  return -1;
-}
-
 /* EOF */
Removed: branches/powerpc/reactos/lib/rtl/bitmap.c
URL:
http://svn.reactos.org/svn/reactos/branches/powerpc/reactos/lib/rtl/bitmap.…
==============================================================================
--- branches/powerpc/reactos/lib/rtl/bitmap.c (original)
+++ branches/powerpc/reactos/lib/rtl/bitmap.c (removed)
@@ -1,979 +1,0 @@
-/* COPYRIGHT:       See COPYING in the top level directory
- * PROJECT:         ReactOS system libraries
- * FILE:            lib/rtl/bitmap.c
- * PURPOSE:         Bitmap functions
- * PROGRAMMER:      Eric Kohl
- */
-
-/* INCLUDES *****************************************************************/
-
-#include <rtl.h>
-
-#define NDEBUG
-#include <debug.h>
-
-/* MACROS *******************************************************************/
-
-/* Bits set from LSB to MSB; used as mask for runs < 8 bits */
-static const BYTE NTDLL_maskBits[8] = { 0, 1, 3, 7, 15, 31, 63, 127 };
-
-/* Number of set bits for each value of a nibble; used for counting */
-static const BYTE NTDLL_nibbleBitCount[16] = {
-  0, 1, 1, 2, 1, 2, 2, 3, 1, 2, 2, 3, 2, 3, 3, 4
-};
-
-/* First set bit in a nibble; used for determining least significant bit */
-static const BYTE NTDLL_leastSignificant[16] = {
-  0, 0, 1, 0, 2, 0, 1, 0, 3, 0, 1, 0, 2, 0, 1, 0
-};
-
-/* Last set bit in a nibble; used for determining most significant bit */
-static const signed char NTDLL_mostSignificant[16] = {
-  -1, 0, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3
-};
-
-/* PRIVATE FUNCTIONS *********************************************************/
-
-static
-int
-NTDLL_RunSortFn(const void *lhs,
-                const void *rhs)
-{
-  if (((const RTL_BITMAP_RUN*)lhs)->NumberOfBits > ((const
RTL_BITMAP_RUN*)rhs)->NumberOfBits)
-    return -1;
-  return 1;
-}
-
-static
-ULONG
-WINAPI
-NTDLL_FindRuns(PRTL_BITMAP lpBits,
-               PRTL_BITMAP_RUN lpSeries,
-               ULONG ulCount,
-               BOOLEAN bLongest,
-               ULONG (*fn)(PRTL_BITMAP,ULONG,PULONG))
-{
-  BOOL bNeedSort = ulCount > 1 ? TRUE : FALSE;
-  ULONG ulPos = 0, ulRuns = 0;
-
-  if (!ulCount)
-    return ~0U;
-
-  while (ulPos < lpBits->SizeOfBitMap)
-  {
-    /* Find next set/clear run */
-    ULONG ulSize, ulNextPos = fn(lpBits, ulPos, &ulSize);
-
-    if (ulNextPos == ~0U)
-      break;
-
-    if (bLongest && ulRuns == ulCount)
-    {
-      /* Sort runs with shortest at end, if they are out of order */
-      if (bNeedSort)
-        qsort(lpSeries, ulRuns, sizeof(RTL_BITMAP_RUN), NTDLL_RunSortFn);
-
-      /* Replace last run if this one is bigger */
-      if (ulSize > lpSeries[ulRuns - 1].NumberOfBits)
-      {
-        lpSeries[ulRuns - 1].StartingIndex = ulNextPos;
-        lpSeries[ulRuns - 1].NumberOfBits = ulSize;
-
-        /* We need to re-sort the array, _if_ we didn't leave it sorted */
-        if (ulRuns > 1 && ulSize > lpSeries[ulRuns - 2].NumberOfBits)
-          bNeedSort = TRUE;
-      }
-    }
-    else
-    {
-      /* Append to found runs */
-      lpSeries[ulRuns].StartingIndex = ulNextPos;
-      lpSeries[ulRuns].NumberOfBits = ulSize;
-      ulRuns++;
-
-      if (!bLongest && ulRuns == ulCount)
-        break;
-    }
-    ulPos = ulNextPos + ulSize;
-  }
-  return ulRuns;
-}
-
-static
-ULONG
-NTDLL_FindSetRun(PRTL_BITMAP lpBits,
-                 ULONG ulStart,
-                 PULONG lpSize)
-{
-  LPBYTE lpOut;
-  ULONG ulFoundAt = 0, ulCount = 0;
-
-  /* FIXME: It might be more efficient/cleaner to manipulate four bytes
-   * at a time. But beware of the pointer arithmetics...
-   */
-  lpOut = ((BYTE*)lpBits->Buffer) + (ulStart >> 3u);
-
-  while (1)
-  {
-    /* Check bits in first byte */
-    const BYTE bMask = (0xff << (ulStart & 7)) & 0xff;
-    const BYTE bFirst = *lpOut & bMask;
-
-    if (bFirst)
-    {
-      /* Have a set bit in first byte */
-      if (bFirst != bMask)
-      {
-        /* Not every bit is set */
-        ULONG ulOffset;
-
-        if (bFirst & 0x0f)
-          ulOffset = NTDLL_leastSignificant[bFirst & 0x0f];
-        else
-          ulOffset = 4 + NTDLL_leastSignificant[bFirst >> 4];
-        ulStart += ulOffset;
-        ulFoundAt = ulStart;
-        for (;ulOffset < 8; ulOffset++)
-        {
-          if (!(bFirst & (1 << ulOffset)))
-          {
-            *lpSize = ulCount;
-            return ulFoundAt; /* Set from start, but not until the end */
-          }
-          ulCount++;
-          ulStart++;
-        }
-        /* Set to the end - go on to count further bits */
-        lpOut++;
-        break;
-      }
-      /* every bit from start until the end of the byte is set */
-      ulFoundAt = ulStart;
-      ulCount = 8 - (ulStart & 7);
-      ulStart = (ulStart & ~7u) + 8;
-      lpOut++;
-      break;
-    }
-    ulStart = (ulStart & ~7u) + 8;
-    lpOut++;
-    if (ulStart >= lpBits->SizeOfBitMap)
-      return ~0U;
-  }
-
-  /* Count blocks of 8 set bits */
-  while (*lpOut == 0xff)
-  {
-    ulCount += 8;
-    ulStart += 8;
-    if (ulStart >= lpBits->SizeOfBitMap)
-    {
-      *lpSize = ulCount - (ulStart - lpBits->SizeOfBitMap);
-      return ulFoundAt;
-    }
-    lpOut++;
-  }
-
-  /* Count remaining contiguous bits, if any */
-  if (*lpOut & 1)
-  {
-    ULONG ulOffset = 0;
-
-    for (;ulOffset < 7u; ulOffset++)
-    {
-      if (!(*lpOut & (1 << ulOffset)))
-        break;
-      ulCount++;
-    }
-  }
-  *lpSize = ulCount;
-  return ulFoundAt;
-}
-
-static
-ULONG
-NTDLL_FindClearRun(PRTL_BITMAP lpBits,
-                   ULONG ulStart,
-                   PULONG lpSize)
-{
-  LPBYTE lpOut;
-  ULONG ulFoundAt = 0, ulCount = 0;
-
-  /* FIXME: It might be more efficient/cleaner to manipulate four bytes
-   * at a time. But beware of the pointer arithmetics...
-   */
-  lpOut = ((BYTE*)lpBits->Buffer) + (ulStart >> 3u);
-
-  while (1)
-  {
-    /* Check bits in first byte */
-    const BYTE bMask = (0xff << (ulStart & 7)) & 0xff;
-    const BYTE bFirst = (~*lpOut) & bMask;
-
-    if (bFirst)
-    {
-      /* Have a clear bit in first byte */
-      if (bFirst != bMask)
-      {
-        /* Not every bit is clear */
-        ULONG ulOffset;
-
-        if (bFirst & 0x0f)
-          ulOffset = NTDLL_leastSignificant[bFirst & 0x0f];
-        else
-          ulOffset = 4 + NTDLL_leastSignificant[bFirst >> 4];
-        ulStart += ulOffset;
-        ulFoundAt = ulStart;
-        for (;ulOffset < 8; ulOffset++)
-        {
-          if (!(bFirst & (1 << ulOffset)))
-          {
-            *lpSize = ulCount;
-            return ulFoundAt; /* Clear from start, but not until the end */
-          }
-          ulCount++;
-          ulStart++;
-        }
-        /* Clear to the end - go on to count further bits */
-        lpOut++;
-        break;
-      }
-      /* Every bit from start until the end of the byte is clear */
-      ulFoundAt = ulStart;
-      ulCount = 8 - (ulStart & 7);
-      ulStart = (ulStart & ~7u) + 8;
-      lpOut++;
-      break;
-    }
-    ulStart = (ulStart & ~7u) + 8;
-    lpOut++;
-    if (ulStart >= lpBits->SizeOfBitMap)
-      return ~0U;
-  }
-
-  /* Count blocks of 8 clear bits */
-  while (!*lpOut)
-  {
-    ulCount += 8;
-    ulStart += 8;
-    if (ulStart >= lpBits->SizeOfBitMap)
-    {
-      *lpSize = ulCount - (ulStart - lpBits->SizeOfBitMap);
-      return ulFoundAt;
-    }
-    lpOut++;
-  }
-
-  /* Count remaining contiguous bits, if any */
-  if (!(*lpOut & 1))
-  {
-    ULONG ulOffset = 0;
-
-    for (;ulOffset < 7u; ulOffset++)
-    {
-      if (*lpOut & (1 << ulOffset))
-        break;
-      ulCount++;
-    }
-  }
-  *lpSize = ulCount;
-  return ulFoundAt;
-}
-
-/* FUNCTIONS ****************************************************************/
-
-/*
- * @implemented
- */
-VOID
-NTAPI
-RtlInitializeBitMap(IN PRTL_BITMAP BitMapHeader,
-                    IN PULONG BitMapBuffer,
-                    IN ULONG SizeOfBitMap)
-{
-    /* Setup the bitmap header */
-    BitMapHeader->SizeOfBitMap = SizeOfBitMap;
-    BitMapHeader->Buffer = BitMapBuffer;
-}
-
-/*
- * @implemented
- */
-BOOLEAN
-NTAPI
-RtlAreBitsClear(IN PRTL_BITMAP BitMapHeader,
-                IN ULONG StartingIndex,
-                IN ULONG Length)
-{
-  LPBYTE lpOut;
-  ULONG ulRemainder;
-
-  if (!BitMapHeader || !Length ||
-      StartingIndex >= BitMapHeader->SizeOfBitMap ||
-      Length > BitMapHeader->SizeOfBitMap - StartingIndex)
-    return FALSE;
-
-  /* FIXME: It might be more efficient/cleaner to manipulate four bytes
-   * at a time. But beware of the pointer arithmetics...
-   */
-  lpOut = ((BYTE*)BitMapHeader->Buffer) + (StartingIndex >> 3u);
-
-  /* Check bits in first byte, if StartingIndex isn't a byte boundary */
-  if (StartingIndex & 7)
-  {
-    if (Length > 7)
-    {
-      /* Check from start bit to the end of the byte */
-      if (*lpOut & ((0xff << (StartingIndex & 7)) & 0xff))
-        return FALSE;
-      lpOut++;
-      Length -= (8 - (StartingIndex & 7));
-    }
-    else
-    {
-      /* Check from the start bit, possibly into the next byte also */
-      USHORT initialWord = NTDLL_maskBits[Length] << (StartingIndex & 7);
-
-      if (*lpOut & (initialWord & 0xff))
-        return FALSE;
-      if ((initialWord & 0xff00) && (lpOut[1] & (initialWord >>
8)))
-        return FALSE;
-      return TRUE;
-    }
-  }
-
-  /* Check bits in blocks of 8 bytes */
-  ulRemainder = Length & 7;
-  Length >>= 3;
-  while (Length--)
-  {
-    if (*lpOut++)
-      return FALSE;
-  }
-
-  /* Check remaining bits, if any */
-  if (ulRemainder && *lpOut & NTDLL_maskBits[ulRemainder])
-    return FALSE;
-  return TRUE;
-}
-
-
-/*
- * @implemented
- */
-BOOLEAN NTAPI
-RtlAreBitsSet(PRTL_BITMAP BitMapHeader,
-             ULONG StartingIndex,
-             ULONG Length)
-{
-  LPBYTE lpOut;
-  ULONG ulRemainder;
-
-
-  if (!BitMapHeader || !Length ||
-      StartingIndex >= BitMapHeader->SizeOfBitMap ||
-      Length > BitMapHeader->SizeOfBitMap - StartingIndex)
-    return FALSE;
-
-  /* FIXME: It might be more efficient/cleaner to manipulate four bytes
-   * at a time. But beware of the pointer arithmetics...
-   */
-  lpOut = ((BYTE*)BitMapHeader->Buffer) + (StartingIndex >> 3u);
-
-  /* Check bits in first byte, if StartingIndex isn't a byte boundary */
-  if (StartingIndex & 7)
-  {
-    if (Length > 7)
-    {
-      /* Check from start bit to the end of the byte */
-      if ((*lpOut &
-          ((0xff << (StartingIndex & 7))) & 0xff) != ((0xff <<
(StartingIndex & 7) & 0xff)))
-        return FALSE;
-      lpOut++;
-      Length -= (8 - (StartingIndex & 7));
-    }
-    else
-    {
-      /* Check from the start bit, possibly into the next byte also */
-      USHORT initialWord = NTDLL_maskBits[Length] << (StartingIndex & 7);
-
-      if ((*lpOut & (initialWord & 0xff)) != (initialWord & 0xff))
-        return FALSE;
-      if ((initialWord & 0xff00) &&
-          ((lpOut[1] & (initialWord >> 8)) != (initialWord >> 8)))
-        return FALSE;
-      return TRUE;
-    }
-  }
-
-  /* Check bits in blocks of 8 bytes */
-  ulRemainder = Length & 7;
-  Length >>= 3;
-  while (Length--)
-  {
-    if (*lpOut++ != 0xff)
-      return FALSE;
-  }
-
-  /* Check remaining bits, if any */
-  if (ulRemainder &&
-      (*lpOut & NTDLL_maskBits[ulRemainder]) != NTDLL_maskBits[ulRemainder])
-    return FALSE;
-  return TRUE;
-}
-
-
-/*
- * @implemented
- */
-VOID NTAPI
-RtlClearAllBits(IN OUT PRTL_BITMAP BitMapHeader)
-{
-    memset(BitMapHeader->Buffer, 0, ((BitMapHeader->SizeOfBitMap + 31) & ~31)
>> 3);
-}
-
-/*
- * @implemented
- */
-VOID
-NTAPI
-RtlClearBit(PRTL_BITMAP BitMapHeader,
-            ULONG BitNumber)
-{
-    PULONG Ptr;
-
-    if (BitNumber >= BitMapHeader->SizeOfBitMap) return;
-
-    Ptr = (PULONG)BitMapHeader->Buffer + (BitNumber / 32);
-    *Ptr &= ~(1 << (BitNumber % 32));
-}
-
-/*
- * @implemented
- */
-VOID
-NTAPI
-RtlClearBits(IN PRTL_BITMAP BitMapHeader,
-             IN ULONG StartingIndex,
-             IN ULONG NumberToClear)
-{
- LPBYTE lpOut;
-
-  if (!BitMapHeader || !NumberToClear ||
-      StartingIndex >= BitMapHeader->SizeOfBitMap ||
-      NumberToClear > BitMapHeader->SizeOfBitMap - StartingIndex)
-    return;
-
-  /* FIXME: It might be more efficient/cleaner to manipulate four bytes
-   * at a time. But beware of the pointer arithmetics...
-   */
-  lpOut = ((BYTE*)BitMapHeader->Buffer) + (StartingIndex >> 3u);
-
-  /* Clear bits in first byte, if StartingIndex isn't a byte boundary */
-  if (StartingIndex & 7)
-  {
-    if (NumberToClear > 7)
-    {
-      /* Clear from start bit to the end of the byte */
-      *lpOut++ &= ~(0xff << (StartingIndex & 7));
-      NumberToClear -= (8 - (StartingIndex & 7));
-    }
-    else
-    {
-      /* Clear from the start bit, possibly into the next byte also */
-      USHORT initialWord = ~(NTDLL_maskBits[NumberToClear] << (StartingIndex &
7));
-
-      *lpOut++ &= (initialWord & 0xff);
-      *lpOut &= (initialWord >> 8);
-      return;
-    }
-  }
-
-  /* Clear bits (in blocks of 8) on whole byte boundaries */
-  if (NumberToClear >> 3)
-  {
-    memset(lpOut, 0, NumberToClear >> 3);
-    lpOut = lpOut + (NumberToClear >> 3);
-  }
-
-  /* Clear remaining bits, if any */
-  if (NumberToClear & 0x7)
-    *lpOut &= ~NTDLL_maskBits[NumberToClear & 0x7];
-}
-
-
-/*
- * @implemented
- */
-ULONG NTAPI
-RtlFindClearBits(PRTL_BITMAP BitMapHeader,
-                ULONG NumberToFind,
-                ULONG HintIndex)
-{
-  ULONG ulPos, ulEnd;
-
-  if (!BitMapHeader || !NumberToFind || NumberToFind > BitMapHeader->SizeOfBitMap)
-    return ~0U;
-
-  ulEnd = BitMapHeader->SizeOfBitMap;
-
-  if (HintIndex + NumberToFind > BitMapHeader->SizeOfBitMap)
-    HintIndex = 0;
-
-  ulPos = HintIndex;
-
-  while (ulPos < ulEnd)
-  {
-    /* FIXME: This could be made a _lot_ more efficient */
-    if (RtlAreBitsClear(BitMapHeader, ulPos, NumberToFind))
-      return ulPos;
-
-    /* Start from the beginning if we hit the end and started from HintIndex */
-    if (ulPos == ulEnd - 1 && HintIndex)
-    {
-      ulEnd = HintIndex;
-      ulPos = HintIndex = 0;
-    }
-    else
-      ulPos++;
-  }
-  return ~0U;
-}
-
-
-
-
-
-
-
-/*
- * @implemented
- */
-ULONG NTAPI
-RtlFindClearRuns(PRTL_BITMAP BitMapHeader,
-                PRTL_BITMAP_RUN RunArray,
-                ULONG SizeOfRunArray,
-                BOOLEAN LocateLongestRuns)
-{
-    return NTDLL_FindRuns(BitMapHeader, RunArray, SizeOfRunArray, LocateLongestRuns,
NTDLL_FindClearRun);
-}
-
-
-/*
- * @unimplemented
- */
-ULONG NTAPI
-RtlFindLastBackwardRunClear(IN PRTL_BITMAP BitMapHeader,
-                           IN ULONG FromIndex,
-                           IN PULONG StartingRunIndex)
-{
-  UNIMPLEMENTED;
-  return 0;
-}
-
-/*
- * @implemented
- */
-ULONG NTAPI
-RtlFindNextForwardRunClear(IN PRTL_BITMAP BitMapHeader,
-                          IN ULONG FromIndex,
-                          IN PULONG StartingRunIndex)
-{
-  ULONG ulSize = 0;
-
-  if (BitMapHeader && FromIndex < BitMapHeader->SizeOfBitMap &&
StartingRunIndex)
-    *StartingRunIndex = NTDLL_FindClearRun(BitMapHeader, FromIndex, &ulSize);
-
-  return ulSize;
-}
-
-/*
- * @implemented
- */
-ULONG NTAPI
-RtlFindFirstRunSet(IN PRTL_BITMAP BitMapHeader,
-                  IN PULONG StartingIndex)
-{
-  ULONG Size;
-  ULONG Index;
-  ULONG Count;
-  PULONG Ptr;
-  ULONG  Mask;
-
-  Size = BitMapHeader->SizeOfBitMap;
-  if (*StartingIndex > Size)
-  {
-    *StartingIndex = (ULONG)-1;
-    return 0;
-  }
-
-  Index = *StartingIndex;
-  Ptr = (PULONG)BitMapHeader->Buffer + (Index / 32);
-  Mask = 1 << (Index & 0x1F);
-
-  /* Skip clear bits */
-  for (; Index < Size && ~*Ptr & Mask; Index++)
-  {
-    Mask <<= 1;
-
-    if (Mask == 0)
-    {
-      Mask = 1;
-      Ptr++;
-    }
-  }
-
-  /* Return index of first set bit */
-  if (Index >= Size)
-  {
-    *StartingIndex = (ULONG)-1;
-    return 0;
-  }
-  else
-  {
-    *StartingIndex = Index;
-  }
-
-  /* Count set bits */
-  for (Count = 0; Index < Size && *Ptr & Mask; Index++)
-  {
-    Count++;
-    Mask <<= 1;
-
-    if (Mask == 0)
-    {
-      Mask = 1;
-      Ptr++;
-    }
-  }
-
-  return Count;
-}
-
-
-/*
- * @implemented
- */
-ULONG NTAPI
-RtlFindLongestRunClear(PRTL_BITMAP BitMapHeader,
-                      PULONG StartingIndex)
-{
-  RTL_BITMAP_RUN br;
-
-  if (RtlFindClearRuns(BitMapHeader, &br, 1, TRUE) == 1)
-  {
-    if (StartingIndex)
-      *StartingIndex = br.StartingIndex;
-    return br.NumberOfBits;
-  }
-  return 0;
-}
-
-
-/*
- * @implemented
- */
-ULONG NTAPI
-RtlFindLongestRunSet(PRTL_BITMAP BitMapHeader,
-                    PULONG StartingIndex)
-{
-  RTL_BITMAP_RUN br;
-
-  if (NTDLL_FindRuns(BitMapHeader, &br, 1, TRUE, NTDLL_FindSetRun) == 1)
-  {
-    if (StartingIndex)
-      *StartingIndex = br.StartingIndex;
-    return br.NumberOfBits;
-  }
-  return 0;
-}
-
-
-/*
- * @implemented
- */
-ULONG NTAPI
-RtlFindSetBits(PRTL_BITMAP BitMapHeader,
-              ULONG NumberToFind,
-              ULONG HintIndex)
-{
-  ULONG ulPos, ulEnd;
-
-  if (!BitMapHeader || !NumberToFind || NumberToFind > BitMapHeader->SizeOfBitMap)
-    return ~0U;
-
-  ulEnd = BitMapHeader->SizeOfBitMap;
-
-  if (HintIndex + NumberToFind > BitMapHeader->SizeOfBitMap)
-    HintIndex = 0;
-
-  ulPos = HintIndex;
-
-  while (ulPos < ulEnd)
-  {
-    /* FIXME: This could be made a _lot_ more efficient */
-    if (RtlAreBitsSet(BitMapHeader, ulPos, NumberToFind))
-      return ulPos;
-
-    /* Start from the beginning if we hit the end and had a hint */
-    if (ulPos == ulEnd - 1 && HintIndex)
-    {
-      ulEnd = HintIndex;
-      ulPos = HintIndex = 0;
-    }
-    else
-      ulPos++;
-  }
-  return ~0U;
-}
-
-
-/*
- * @implemented
- */
-ULONG NTAPI
-RtlFindSetBitsAndClear(PRTL_BITMAP BitMapHeader,
-                      ULONG NumberToFind,
-                      ULONG HintIndex)
-{
-  ULONG ulPos;
-
-  ulPos = RtlFindSetBits(BitMapHeader, NumberToFind, HintIndex);
-  if (ulPos != ~0U)
-    RtlClearBits(BitMapHeader, ulPos, NumberToFind);
-  return ulPos;
-}
-
-
-
-
-
-/*
- * @implemented
- */
-ULONG NTAPI
-RtlNumberOfSetBits(PRTL_BITMAP BitMapHeader)
-{
-  ULONG ulSet = 0;
-
-  if (BitMapHeader)
-  {
-    LPBYTE lpOut = (BYTE *)BitMapHeader->Buffer;
-    ULONG Length, ulRemainder;
-    BYTE bMasked;
-
-    Length = BitMapHeader->SizeOfBitMap >> 3;
-    ulRemainder = BitMapHeader->SizeOfBitMap & 0x7;
-
-    while (Length--)
-    {
-      ulSet += NTDLL_nibbleBitCount[*lpOut >> 4];
-      ulSet += NTDLL_nibbleBitCount[*lpOut & 0xf];
-      lpOut++;
-    }
-
-    bMasked = *lpOut & NTDLL_maskBits[ulRemainder];
-    ulSet += NTDLL_nibbleBitCount[bMasked >> 4];
-    ulSet += NTDLL_nibbleBitCount[bMasked & 0xf];
-  }
-  return ulSet;
-}
-
-
-/*
- * @implemented
- */
-VOID NTAPI
-RtlSetAllBits(IN OUT PRTL_BITMAP BitMapHeader)
-{
-  memset(BitMapHeader->Buffer, 0xff, ((BitMapHeader->SizeOfBitMap + 31) & ~31)
>> 3);
-}
-
-
-/*
- * @implemented
- */
-VOID NTAPI
-RtlSetBit(PRTL_BITMAP BitMapHeader,
-         ULONG BitNumber)
-{
-  PULONG Ptr;
-
-  if (BitNumber >= BitMapHeader->SizeOfBitMap)
-    return;
-
-  Ptr = (PULONG)BitMapHeader->Buffer + (BitNumber / 32);
-
-  *Ptr |= (1 << (BitNumber % 32));
-}
-
-
-/*
- * @implemented
- */
-VOID NTAPI
-RtlSetBits(PRTL_BITMAP BitMapHeader,
-          ULONG StartingIndex,
-          ULONG NumberToSet)
-{
-  LPBYTE lpOut;
-
-  if (!BitMapHeader || !NumberToSet ||
-      StartingIndex >= BitMapHeader->SizeOfBitMap ||
-      NumberToSet > BitMapHeader->SizeOfBitMap - StartingIndex)
-    return;
-
-  /* FIXME: It might be more efficient/cleaner to manipulate four bytes
-   * at a time. But beware of the pointer arithmetics...
-   */
-  lpOut = ((BYTE*)BitMapHeader->Buffer) + (StartingIndex >> 3u);
-
-  /* Set bits in first byte, if StartingIndex isn't a byte boundary */
-  if (StartingIndex & 7)
-  {
-    if (NumberToSet > 7)
-    {
-      /* Set from start bit to the end of the byte */
-      *lpOut++ |= 0xff << (StartingIndex & 7);
-      NumberToSet -= (8 - (StartingIndex & 7));
-    }
-    else
-    {
-      /* Set from the start bit, possibly into the next byte also */
-      USHORT initialWord = NTDLL_maskBits[NumberToSet] << (StartingIndex & 7);
-
-      *lpOut++ |= (initialWord & 0xff);
-      *lpOut |= (initialWord >> 8);
-      return;
-    }
-  }
-
-  /* Set bits up to complete byte count */
-  if (NumberToSet >> 3)
-  {
-    memset(lpOut, 0xff, NumberToSet >> 3);
-    lpOut = lpOut + (NumberToSet >> 3);
-  }
-
-  /* Set remaining bits, if any */
-  *lpOut |= NTDLL_maskBits[NumberToSet & 0x7];
-}
-
-
-/*
- * @implemented
- */
-BOOLEAN NTAPI
-RtlTestBit(PRTL_BITMAP BitMapHeader,
-          ULONG BitNumber)
-{
-  PULONG Ptr;
-
-  if (BitNumber >= BitMapHeader->SizeOfBitMap)
-    return FALSE;
-
-  Ptr = (PULONG)BitMapHeader->Buffer + (BitNumber / 32);
-
-  return (*Ptr & (1 << (BitNumber % 32)));
-}
-
-/*
- * @implemented
- */
-ULONG NTAPI
-RtlFindFirstRunClear(PRTL_BITMAP BitMapHeader,
-                    PULONG StartingIndex)
-{
-    return RtlFindNextForwardRunClear(BitMapHeader, 0, StartingIndex);
-}
-
-/*
- * @implemented
- */
-ULONG NTAPI
-RtlNumberOfClearBits(PRTL_BITMAP BitMapHeader)
-{
-
-  if (BitMapHeader)
-    return BitMapHeader->SizeOfBitMap - RtlNumberOfSetBits(BitMapHeader);
-  return 0;
-}
-
-/*
- * @implemented
- */
-ULONG NTAPI
-RtlFindClearBitsAndSet(PRTL_BITMAP BitMapHeader,
-                      ULONG NumberToFind,
-                      ULONG HintIndex)
-{
-  ULONG ulPos;
-
-  ulPos = RtlFindClearBits(BitMapHeader, NumberToFind, HintIndex);
-  if (ulPos != ~0U)
-    RtlSetBits(BitMapHeader, ulPos, NumberToFind);
-  return ulPos;
-}
-
-/*
- * @implemented
- */
-CCHAR WINAPI RtlFindMostSignificantBit(ULONGLONG ulLong)
-{
-    signed char ret = 32;
-    DWORD dw;
-
-    if (!(dw = (ulLong >> 32)))
-    {
-        ret = 0;
-        dw = (DWORD)ulLong;
-    }
-    if (dw & 0xffff0000)
-    {
-        dw >>= 16;
-        ret += 16;
-    }
-    if (dw & 0xff00)
-    {
-        dw >>= 8;
-        ret += 8;
-    }
-    if (dw & 0xf0)
-    {
-        dw >>= 4;
-        ret += 4;
-    }
-    return ret + NTDLL_mostSignificant[dw];
-}
-
-/*
- * @implemented
- */
-CCHAR WINAPI RtlFindLeastSignificantBit(ULONGLONG ulLong)
-{
-    signed char ret = 0;
-    DWORD dw;
-
-    if (!(dw = (DWORD)ulLong))
-    {
-        ret = 32;
-        if (!(dw = ulLong >> 32)) return -1;
-    }
-    if (!(dw & 0xffff))
-    {
-        dw >>= 16;
-        ret += 16;
-    }
-    if (!(dw & 0xff))
-    {
-        dw >>= 8;
-        ret += 8;
-    }
-    if (!(dw & 0x0f))
-    {
-        dw >>= 4;
-        ret += 4;
-    }
-    return ret + NTDLL_leastSignificant[dw & 0x0f];
-}
-
-/* EOF */
Modified: branches/powerpc/reactos/tools/ppc.lost+found/link-ntoskrnl
URL:
http://svn.reactos.org/svn/reactos/branches/powerpc/reactos/tools/ppc.lost%…
==============================================================================
--- branches/powerpc/reactos/tools/ppc.lost+found/link-ntoskrnl (original)
+++ branches/powerpc/reactos/tools/ppc.lost+found/link-ntoskrnl Mon Sep  4 10:38:37 2006
@@ -1,3 +1,174 @@
 #!/bin/sh -xv
-reactos-powerpc-gcc --begin-group -v -Wl,--subsystem,native -Wl,--entry,NtProcessStartup
-Wl,--image-base,0x80000000 -Wl,--file-alignment,0x1000 -Wl,--section-alignment,0x1000
-nostartfiles -shared  ntoskrnl.temp.exp -o output-ppc/ntoskrnl/ntoskrnl.exe
obj-ppc/ntoskrnl/ke/powerpc/main_asm.o obj-ppc/ntoskrnl/ke/apc.o obj-ppc/ntoskrnl/ke/bug.o
obj-ppc/ntoskrnl/ke/clock.o obj-ppc/ntoskrnl/ke/device.o obj-ppc/ntoskrnl/ke/dpc.o
obj-ppc/ntoskrnl/ke/event.o obj-ppc/ntoskrnl/ke/exception.o obj-ppc/ntoskrnl/ke/gate.o
obj-ppc/ntoskrnl/ke/gmutex.o obj-ppc/ntoskrnl/ke/ipi.o obj-ppc/ntoskrnl/ke/kqueue.o
obj-ppc/ntoskrnl/ke/kthread.o obj-ppc/ntoskrnl/ke/main.o obj-ppc/ntoskrnl/ke/mutex.o
obj-ppc/ntoskrnl/ke/process.o obj-ppc/ntoskrnl/ke/profile.o obj-ppc/ntoskrnl/ke/queue.o
obj-ppc/ntoskrnl/ke/sem.o obj-ppc/ntoskrnl/ke/spinlock.o obj-ppc/ntoskrnl/ke/timer.o
obj-ppc/ntoskrnl/ke/usercall.o obj-ppc/ntoskrnl/ke/wait.o obj-ppc/ntoskrnl/cc/cacheman.o
obj-ppc/ntoskrnl/cc/copy.o obj-ppc/ntoskrnl/cc/fs.o obj-ppc/ntoskrnl/cc/mdl.o
obj-ppc/ntoskrnl/cc/pin.o obj-ppc/ntoskrnl/cc/view.o obj-ppc/ntoskrnl/cm/import.o
obj-ppc/ntoskrnl/cm/ntfunc.o obj-ppc/ntoskrnl/cm/regfile.o obj-ppc/ntoskrnl/cm/registry.o
obj-ppc/ntoskrnl/cm/regobj.o obj-ppc/ntoskrnl/dbgk/dbgkutil.o
obj-ppc/ntoskrnl/dbgk/debug.o obj-ppc/ntoskrnl/ex/atom.o obj-ppc/ntoskrnl/ex/callback.o
obj-ppc/ntoskrnl/ex/dbgctrl.o obj-ppc/ntoskrnl/ex/error.o obj-ppc/ntoskrnl/ex/event.o
obj-ppc/ntoskrnl/ex/evtpair.o obj-ppc/ntoskrnl/ex/fmutex.o obj-ppc/ntoskrnl/ex/handle.o
obj-ppc/ntoskrnl/ex/init.o obj-ppc/ntoskrnl/ex/lookas.o obj-ppc/ntoskrnl/ex/mutant.o
obj-ppc/ntoskrnl/ex/power.o obj-ppc/ntoskrnl/ex/pushlock.o obj-ppc/ntoskrnl/ex/profile.o
obj-ppc/ntoskrnl/ex/resource.o obj-ppc/ntoskrnl/ex/rundown.o obj-ppc/ntoskrnl/ex/sem.o
obj-ppc/ntoskrnl/ex/sysinfo.o obj-ppc/ntoskrnl/ex/time.o obj-ppc/ntoskrnl/ex/timer.o
obj-ppc/ntoskrnl/ex/uuid.o obj-ppc/ntoskrnl/ex/win32k.o obj-ppc/ntoskrnl/ex/work.o
obj-ppc/ntoskrnl/ex/zone.o obj-ppc/ntoskrnl/ex/zw.o obj-ppc/ntoskrnl/fs/context.o
obj-ppc/ntoskrnl/fs/fastio.o obj-ppc/ntoskrnl/fs/filelock.o obj-ppc/ntoskrnl/fs/mcb.o
obj-ppc/ntoskrnl/fs/name.o obj-ppc/ntoskrnl/fs/notify.o obj-ppc/ntoskrnl/fs/oplock.o
obj-ppc/ntoskrnl/fs/pool.o obj-ppc/ntoskrnl/fs/tunnel.o obj-ppc/ntoskrnl/fs/unc.o
obj-ppc/ntoskrnl/fs/util.o obj-ppc/ntoskrnl/inbv/inbv.o obj-ppc/ntoskrnl/io/adapter.o
obj-ppc/ntoskrnl/io/arcname.o obj-ppc/ntoskrnl/io/bootlog.o
obj-ppc/ntoskrnl/io/controller.o obj-ppc/ntoskrnl/io/device.o
obj-ppc/ntoskrnl/io/deviface.o obj-ppc/ntoskrnl/io/disk.o obj-ppc/ntoskrnl/io/driver.o
obj-ppc/ntoskrnl/io/efi.o obj-ppc/ntoskrnl/io/error.o obj-ppc/ntoskrnl/io/event.o
obj-ppc/ntoskrnl/io/fs.o obj-ppc/ntoskrnl/io/iocomp.o obj-ppc/ntoskrnl/io/iomgr.o
obj-ppc/ntoskrnl/io/iowork.o obj-ppc/ntoskrnl/io/irp.o obj-ppc/ntoskrnl/io/irq.o
obj-ppc/ntoskrnl/io/mdl.o obj-ppc/ntoskrnl/io/plugplay.o obj-ppc/ntoskrnl/io/pnpdma.o
obj-ppc/ntoskrnl/io/pnpmgr.o obj-ppc/ntoskrnl/io/pnpnotify.o
obj-ppc/ntoskrnl/io/pnpreport.o obj-ppc/ntoskrnl/io/pnproot.o obj-ppc/ntoskrnl/io/rawfs.o
obj-ppc/ntoskrnl/io/remlock.o obj-ppc/ntoskrnl/io/resource.o obj-ppc/ntoskrnl/io/share.o
obj-ppc/ntoskrnl/io/symlink.o obj-ppc/ntoskrnl/io/timer.o obj-ppc/ntoskrnl/io/vpb.o
obj-ppc/ntoskrnl/io/wmi.o obj-ppc/ntoskrnl/io/file.o obj-ppc/ntoskrnl/kd/wrappers/bochs.o
obj-ppc/ntoskrnl/kd/wrappers/gdbstub.o obj-ppc/ntoskrnl/kd/kdinit.o
obj-ppc/ntoskrnl/kd/kdio.o obj-ppc/ntoskrnl/kd/kdmain.o obj-ppc/ntoskrnl/ldr/loader.o
obj-ppc/ntoskrnl/ldr/rtl.o obj-ppc/ntoskrnl/lpc/close.o obj-ppc/ntoskrnl/lpc/complete.o
obj-ppc/ntoskrnl/lpc/connect.o obj-ppc/ntoskrnl/lpc/create.o obj-ppc/ntoskrnl/lpc/listen.o
obj-ppc/ntoskrnl/lpc/port.o obj-ppc/ntoskrnl/lpc/query.o obj-ppc/ntoskrnl/lpc/queue.o
obj-ppc/ntoskrnl/lpc/receive.o obj-ppc/ntoskrnl/lpc/reply.o obj-ppc/ntoskrnl/lpc/send.o
obj-ppc/ntoskrnl/mm/anonmem.o obj-ppc/ntoskrnl/mm/aspace.o obj-ppc/ntoskrnl/mm/balance.o
obj-ppc/ntoskrnl/mm/cont.o obj-ppc/ntoskrnl/mm/drvlck.o obj-ppc/ntoskrnl/mm/freelist.o
obj-ppc/ntoskrnl/mm/iospace.o obj-ppc/ntoskrnl/mm/kmap.o obj-ppc/ntoskrnl/mm/marea.o
obj-ppc/ntoskrnl/mm/mdl.o obj-ppc/ntoskrnl/mm/mm.o obj-ppc/ntoskrnl/mm/process.o
obj-ppc/ntoskrnl/mm/mminit.o obj-ppc/ntoskrnl/mm/mpw.o obj-ppc/ntoskrnl/mm/ncache.o
obj-ppc/ntoskrnl/mm/npool.o obj-ppc/ntoskrnl/mm/pagefile.o obj-ppc/ntoskrnl/mm/pageop.o
obj-ppc/ntoskrnl/mm/pager.o obj-ppc/ntoskrnl/mm/pagfault.o obj-ppc/ntoskrnl/mm/paging.o
obj-ppc/ntoskrnl/mm/pe.o obj-ppc/ntoskrnl/mm/physical.o obj-ppc/ntoskrnl/mm/pool.o
obj-ppc/ntoskrnl/mm/ppool.o obj-ppc/ntoskrnl/mm/region.o obj-ppc/ntoskrnl/mm/rmap.o
obj-ppc/ntoskrnl/mm/section.o obj-ppc/ntoskrnl/mm/verifier.o obj-ppc/ntoskrnl/mm/virtual.o
obj-ppc/ntoskrnl/mm/wset.o obj-ppc/ntoskrnl/mm/elf32.o obj-ppc/ntoskrnl/mm/elf64.o
obj-ppc/ntoskrnl/ob/obdir.o obj-ppc/ntoskrnl/ob/obinit.o obj-ppc/ntoskrnl/ob/obhandle.o
obj-ppc/ntoskrnl/ob/obname.o obj-ppc/ntoskrnl/ob/oblife.o obj-ppc/ntoskrnl/ob/obref.o
obj-ppc/ntoskrnl/ob/sdcache.o obj-ppc/ntoskrnl/ob/symlink.o obj-ppc/ntoskrnl/po/power.o
obj-ppc/ntoskrnl/ps/debug.o obj-ppc/ntoskrnl/ps/idle.o obj-ppc/ntoskrnl/ps/job.o
obj-ppc/ntoskrnl/ps/kill.o obj-ppc/ntoskrnl/ps/locale.o obj-ppc/ntoskrnl/ps/notify.o
obj-ppc/ntoskrnl/ps/process.o obj-ppc/ntoskrnl/ps/psmgr.o obj-ppc/ntoskrnl/ps/query.o
obj-ppc/ntoskrnl/ps/quota.o obj-ppc/ntoskrnl/ps/security.o obj-ppc/ntoskrnl/ps/suspend.o
obj-ppc/ntoskrnl/ps/thread.o obj-ppc/ntoskrnl/ps/win32.o obj-ppc/ntoskrnl/rtl/libsupp.o
obj-ppc/ntoskrnl/rtl/misc.o obj-ppc/ntoskrnl/rtl/nls.o obj-ppc/ntoskrnl/rtl/regio.o
obj-ppc/ntoskrnl/rtl/strtok.o obj-ppc/ntoskrnl/se/access.o obj-ppc/ntoskrnl/se/acl.o
obj-ppc/ntoskrnl/se/audit.o obj-ppc/ntoskrnl/se/lsa.o obj-ppc/ntoskrnl/se/luid.o
obj-ppc/ntoskrnl/se/priv.o obj-ppc/ntoskrnl/se/sd.o obj-ppc/ntoskrnl/se/semgr.o
obj-ppc/ntoskrnl/se/sid.o obj-ppc/ntoskrnl/se/token.o obj-ppc/ntoskrnl/ntoskrnl.coff
obj-ppc/ntoskrnl/kdbg/kdb_symbols.o obj-ppc/lib/drivers/csq/csq.a obj-ppc/hal/hal/libhal.a
obj-ppc/lib/kjs/kjs.a obj-ppc/lib/pseh/pseh.a obj-ppc/lib/rtl/rtl.a
obj-ppc/lib/rossym/rossym.a obj-ppc/lib/string/string.a obj-ppc/lib/wdmguid/wdmguid.a
-nostartfiles -nostdlib -lgcc  -g --end-group
+reactos-powerpc-ld \
+    -v \
+    --subsystem native \
+    --entry NtProcessStartup \
+    --image-base 0x80000000 \
+    --file-alignment 0x1000 \
+    --section-alignment 0x1000 \
+    -nostartfiles -shared \
+    ntoskrnl.temp.exp -o output-ppc/ntoskrnl/ntoskrnl.exe \
+    obj-ppc/ntoskrnl/ke/powerpc/main_asm.o \
+    obj-ppc/ntoskrnl/ke/apc.o \
+    obj-ppc/ntoskrnl/ke/bug.o \
+    obj-ppc/ntoskrnl/ke/clock.o \
+    obj-ppc/ntoskrnl/ke/device.o \
+    obj-ppc/ntoskrnl/ke/dpc.o \
+    obj-ppc/ntoskrnl/ke/event.o \
+    obj-ppc/ntoskrnl/ke/exception.o \
+    obj-ppc/ntoskrnl/ke/gate.o \
+    obj-ppc/ntoskrnl/ke/gmutex.o \
+    obj-ppc/ntoskrnl/ke/ipi.o \
+    obj-ppc/ntoskrnl/ke/kqueue.o \
+    obj-ppc/ntoskrnl/ke/kthread.o \
+    obj-ppc/ntoskrnl/ke/mutex.o \
+    obj-ppc/ntoskrnl/ke/process.o \
+    obj-ppc/ntoskrnl/ke/profile.o \
+    obj-ppc/ntoskrnl/ke/queue.o \
+    obj-ppc/ntoskrnl/ke/sem.o \
+    obj-ppc/ntoskrnl/ke/spinlock.o \
+    obj-ppc/ntoskrnl/ke/timer.o \
+    obj-ppc/ntoskrnl/ke/usercall.o \
+    obj-ppc/ntoskrnl/ke/wait.o \
+    obj-ppc/ntoskrnl/cc/cacheman.o \
+    obj-ppc/ntoskrnl/cc/copy.o \
+    obj-ppc/ntoskrnl/cc/fs.o \
+    obj-ppc/ntoskrnl/cc/mdl.o \
+    obj-ppc/ntoskrnl/cc/pin.o \
+    obj-ppc/ntoskrnl/cc/view.o \
+    obj-ppc/ntoskrnl/cm/import.o \
+    obj-ppc/ntoskrnl/cm/ntfunc.o \
+    obj-ppc/ntoskrnl/cm/regfile.o \
+    obj-ppc/ntoskrnl/cm/registry.o \
+    obj-ppc/ntoskrnl/cm/regobj.o \
+    obj-ppc/ntoskrnl/dbgk/dbgkutil.o \
+    obj-ppc/ntoskrnl/dbgk/debug.o \
+    obj-ppc/ntoskrnl/ex/atom.o \
+    obj-ppc/ntoskrnl/ex/callback.o \
+    obj-ppc/ntoskrnl/ex/dbgctrl.o \
+    obj-ppc/ntoskrnl/ex/error.o \
+    obj-ppc/ntoskrnl/ex/event.o \
+    obj-ppc/ntoskrnl/ex/evtpair.o \
+    obj-ppc/ntoskrnl/ex/fmutex.o \
+    obj-ppc/ntoskrnl/ex/handle.o \
+    obj-ppc/ntoskrnl/ex/init.o \
+    obj-ppc/ntoskrnl/ex/lookas.o \
+    obj-ppc/ntoskrnl/ex/mutant.o \
+    obj-ppc/ntoskrnl/ex/power.o \
+    obj-ppc/ntoskrnl/ex/pushlock.o \
+    obj-ppc/ntoskrnl/ex/profile.o \
+    obj-ppc/ntoskrnl/ex/resource.o \
+    obj-ppc/ntoskrnl/ex/rundown.o \
+    obj-ppc/ntoskrnl/ex/sem.o \
+    obj-ppc/ntoskrnl/ex/sysinfo.o \
+    obj-ppc/ntoskrnl/ex/time.o \
+    obj-ppc/ntoskrnl/ex/timer.o \
+    obj-ppc/ntoskrnl/ex/uuid.o \
+    obj-ppc/ntoskrnl/ex/win32k.o \
+    obj-ppc/ntoskrnl/ex/work.o \
+    obj-ppc/ntoskrnl/ex/zone.o \
+    obj-ppc/ntoskrnl/ex/zw.o \
+    obj-ppc/ntoskrnl/fs/context.o \
+    obj-ppc/ntoskrnl/fs/fastio.o \
+    obj-ppc/ntoskrnl/fs/filelock.o \
+    obj-ppc/ntoskrnl/fs/mcb.o \
+    obj-ppc/ntoskrnl/fs/name.o \
+    obj-ppc/ntoskrnl/fs/notify.o \
+    obj-ppc/ntoskrnl/fs/oplock.o \
+    obj-ppc/ntoskrnl/fs/pool.o \
+    obj-ppc/ntoskrnl/fs/tunnel.o \
+    obj-ppc/ntoskrnl/fs/unc.o \
+    obj-ppc/ntoskrnl/fs/util.o \
+    obj-ppc/ntoskrnl/inbv/inbv.o \
+    obj-ppc/ntoskrnl/io/iomgr/*.o \
+    obj-ppc/ntoskrnl/io/pnpmgr/*.o \
+    obj-ppc/ntoskrnl/kd/wrappers/bochs.o \
+    obj-ppc/ntoskrnl/kd/wrappers/gdbstub.o \
+    obj-ppc/ntoskrnl/kd/kdinit.o \
+    obj-ppc/ntoskrnl/kd/kdio.o \
+    obj-ppc/ntoskrnl/kd/kdmain.o \
+    obj-ppc/ntoskrnl/ldr/loader.o \
+    obj-ppc/ntoskrnl/ldr/rtl.o \
+    obj-ppc/ntoskrnl/lpc/close.o \
+    obj-ppc/ntoskrnl/lpc/complete.o \
+    obj-ppc/ntoskrnl/lpc/connect.o \
+    obj-ppc/ntoskrnl/lpc/create.o \
+    obj-ppc/ntoskrnl/lpc/listen.o \
+    obj-ppc/ntoskrnl/lpc/port.o \
+    obj-ppc/ntoskrnl/lpc/query.o \
+    obj-ppc/ntoskrnl/lpc/queue.o \
+    obj-ppc/ntoskrnl/lpc/receive.o \
+    obj-ppc/ntoskrnl/lpc/reply.o \
+    obj-ppc/ntoskrnl/lpc/send.o \
+    obj-ppc/ntoskrnl/mm/anonmem.o \
+    obj-ppc/ntoskrnl/mm/aspace.o \
+    obj-ppc/ntoskrnl/mm/balance.o \
+    obj-ppc/ntoskrnl/mm/cont.o \
+    obj-ppc/ntoskrnl/mm/drvlck.o \
+    obj-ppc/ntoskrnl/mm/freelist.o \
+    obj-ppc/ntoskrnl/mm/iospace.o \
+    obj-ppc/ntoskrnl/mm/kmap.o \
+    obj-ppc/ntoskrnl/mm/marea.o \
+    obj-ppc/ntoskrnl/mm/mdl.o \
+    obj-ppc/ntoskrnl/mm/mm.o \
+    obj-ppc/ntoskrnl/mm/process.o \
+    obj-ppc/ntoskrnl/mm/mminit.o \
+    obj-ppc/ntoskrnl/mm/mpw.o \
+    obj-ppc/ntoskrnl/mm/ncache.o \
+    obj-ppc/ntoskrnl/mm/npool.o \
+    obj-ppc/ntoskrnl/mm/pagefile.o \
+    obj-ppc/ntoskrnl/mm/pageop.o \
+    obj-ppc/ntoskrnl/mm/pager.o \
+    obj-ppc/ntoskrnl/mm/pagfault.o \
+    obj-ppc/ntoskrnl/mm/paging.o \
+    obj-ppc/ntoskrnl/mm/pe.o \
+    obj-ppc/ntoskrnl/mm/physical.o \
+    obj-ppc/ntoskrnl/mm/pool.o \
+    obj-ppc/ntoskrnl/mm/ppool.o \
+    obj-ppc/ntoskrnl/mm/region.o \
+    obj-ppc/ntoskrnl/mm/rmap.o \
+    obj-ppc/ntoskrnl/mm/section.o \
+    obj-ppc/ntoskrnl/mm/verifier.o \
+    obj-ppc/ntoskrnl/mm/virtual.o \
+    obj-ppc/ntoskrnl/mm/wset.o \
+    obj-ppc/ntoskrnl/mm/elf32.o \
+    obj-ppc/ntoskrnl/mm/elf64.o \
+    obj-ppc/ntoskrnl/ob/obdir.o \
+    obj-ppc/ntoskrnl/ob/obinit.o \
+    obj-ppc/ntoskrnl/ob/obhandle.o \
+    obj-ppc/ntoskrnl/ob/obname.o \
+    obj-ppc/ntoskrnl/ob/oblife.o \
+    obj-ppc/ntoskrnl/ob/obref.o \
+    obj-ppc/ntoskrnl/ob/sdcache.o \
+    obj-ppc/ntoskrnl/ob/symlink.o \
+    obj-ppc/ntoskrnl/po/power.o \
+    obj-ppc/ntoskrnl/ps/*.o \
+    obj-ppc/ntoskrnl/rtl/libsupp.o \
+    obj-ppc/ntoskrnl/rtl/misc.o \
+    obj-ppc/ntoskrnl/rtl/nls.o \
+    obj-ppc/ntoskrnl/rtl/regio.o \
+    obj-ppc/ntoskrnl/rtl/strtok.o \
+    obj-ppc/ntoskrnl/se/access.o \
+    obj-ppc/ntoskrnl/se/acl.o \
+    obj-ppc/ntoskrnl/se/audit.o \
+    obj-ppc/ntoskrnl/se/lsa.o \
+    obj-ppc/ntoskrnl/se/luid.o \
+    obj-ppc/ntoskrnl/se/priv.o \
+    obj-ppc/ntoskrnl/se/sd.o \
+    obj-ppc/ntoskrnl/se/semgr.o \
+    obj-ppc/ntoskrnl/se/sid.o \
+    obj-ppc/ntoskrnl/se/token.o \
+    obj-ppc/ntoskrnl/ntoskrnl.coff \
+    obj-ppc/ntoskrnl/kdbg/kdb_symbols.o \
+    obj-ppc/lib/drivers/csq/csq.a \
+    obj-ppc/hal/hal/libhal.a \
+    obj-ppc/lib/kjs/kjs.a \
+    obj-ppc/lib/pseh/pseh.a \
+    obj-ppc/lib/rtl/rtl.a \
+    obj-ppc/lib/rossym/rossym.a \
+    obj-ppc/lib/string/string.a \
+    obj-ppc/lib/wdmguid/wdmguid.a \
+    -nostartfiles \
+    -nostdlib \
+    -lgcc  -g