- Undefine Unicode which is defined by default in cegcc.
- Add a missing include in ke.h
- Implement _CountLeadingZeros, _CountTrailingZeros, _BitScanForward for ARM.
svn path=/trunk/; revision=44625
<compilerflag>-ftracer</compilerflag>
</if>
<compilerflag>-Wno-attributes</compilerflag>
+ <compilerflag>-U_UNICODE</compilerflag>
+ <compilerflag>-UUNICODE</compilerflag>
</group>
VOID
NTAPI
FldrCreateComponentKey(
- IN PCONFIGURATION_COMPONENT_DATA SystemKey,,
+ IN PCONFIGURATION_COMPONENT_DATA SystemKey,
IN CONFIGURATION_CLASS Class,
IN CONFIGURATION_TYPE Type,
IN IDENTIFIER_FLAG Flags,
#define _ReturnAddress() (__builtin_return_address(0))
#define _ReadWriteBarrier() __sync_synchronize()
+__INTRIN_INLINE unsigned _CountLeadingZeros(long Mask)
+{
+ return Mask ? __builtin_clz(Mask) : 32;
+}
+
+__INTRIN_INLINE unsigned _CountTrailingZeros(long Mask)
+{
+ return Mask ? __builtin_ctz(Mask) : 32;
+}
+
+__INTRIN_INLINE unsigned char _BitScanForward(unsigned long * const Index, const unsigned long Mask)
+{
+ *Index = __builtin_ctz(Mask);
+ return Mask ? 1 : 0;
+}
+
__INTRIN_INLINE char _InterlockedCompareExchange8(volatile char * const Destination, const char Exchange, const char Comperand)
{
return __sync_val_compare_and_swap(Destination, Comperand, Exchange);
#ifndef __NTOSKRNL_INCLUDE_INTERNAL_ARM_KE_H
#define __NTOSKRNL_INCLUDE_INTERNAL_ARM_KE_H
+#include "intrin_i.h"
+
//
//Lockdown TLB entries
//
// Returns the Interrupt State from a Trap Frame.
// ON = TRUE, OFF = FALSE
//
-//#define KeGetTrapFrameInterruptState(TrapFrame) \
+//#define KeGetTrapFrameInterruptState(TrapFrame)
//
// Invalidates the TLB entry for a specified address