mirror of
https://github.com/reactos/reactos.git
synced 2024-08-02 01:21:00 +00:00
[INTRIN_ARM]
- Implement __yield and __break arm intrinsics. [DDK] - Relax INTERLOCKED_RESULT conditional definition. [PSDK] - Fix some nasty structure misalignments. - Fix YieldProcessor definition for ARM. [ARMDDK] - Add several missing definitions. svn path=/branches/header-work/; revision=47196
This commit is contained in:
parent
b596fbada4
commit
d052e38953
|
@ -35,6 +35,10 @@
|
|||
#define _ReturnAddress() (__builtin_return_address(0))
|
||||
#define _ReadWriteBarrier() __sync_synchronize()
|
||||
|
||||
__INTRIN_INLINE void __yield(void) { __asm__ __volatile__("yield"); }
|
||||
|
||||
__INTRIN_INLINE void __break(unsigned int value) { __asm__ __volatile__("bkpt %0": : "M" (value)); }
|
||||
|
||||
__INTRIN_INLINE unsigned short _byteswap_ushort(unsigned short value)
|
||||
{
|
||||
return (value >> 8) || (value << 8);
|
||||
|
|
|
@ -3289,13 +3289,11 @@ ExFreeToZone(
|
|||
#define RESULT_POSITIVE 2
|
||||
#endif
|
||||
|
||||
#if defined(_X86_) || defined(_IA64_) || defined(_M_AMD64) && !defined(RC_INVOKED) && !defined(MIDL_PASS)
|
||||
typedef enum _INTERLOCKED_RESULT {
|
||||
ResultNegative = RESULT_NEGATIVE,
|
||||
ResultZero = RESULT_ZERO,
|
||||
ResultPositive = RESULT_POSITIVE
|
||||
} INTERLOCKED_RESULT;
|
||||
#endif
|
||||
|
||||
#ifdef _X86_
|
||||
|
||||
|
|
|
@ -3760,6 +3760,7 @@ typedef struct _IMAGE_SECTION_HEADER {
|
|||
} IMAGE_SECTION_HEADER,*PIMAGE_SECTION_HEADER;
|
||||
|
||||
#include <pshpack2.h>
|
||||
|
||||
typedef struct _IMAGE_SYMBOL {
|
||||
union {
|
||||
BYTE ShortName[8];
|
||||
|
@ -3818,6 +3819,17 @@ typedef union _IMAGE_AUX_SYMBOL {
|
|||
} Section;
|
||||
} IMAGE_AUX_SYMBOL,*PIMAGE_AUX_SYMBOL;
|
||||
|
||||
typedef struct _IMAGE_RELOCATION {
|
||||
_ANONYMOUS_UNION union {
|
||||
DWORD VirtualAddress;
|
||||
DWORD RelocCount;
|
||||
} DUMMYUNIONNAME;
|
||||
DWORD SymbolTableIndex;
|
||||
WORD Type;
|
||||
} IMAGE_RELOCATION,*PIMAGE_RELOCATION;
|
||||
|
||||
#include <poppack.h>
|
||||
|
||||
#ifndef __IMAGE_COR20_HEADER_DEFINED__
|
||||
#define __IMAGE_COR20_HEADER_DEFINED__
|
||||
|
||||
|
@ -3885,16 +3897,6 @@ typedef struct _IMAGE_COFF_SYMBOLS_HEADER {
|
|||
DWORD RvaToLastByteOfData;
|
||||
} IMAGE_COFF_SYMBOLS_HEADER,*PIMAGE_COFF_SYMBOLS_HEADER;
|
||||
|
||||
typedef struct _IMAGE_RELOCATION {
|
||||
_ANONYMOUS_UNION union {
|
||||
DWORD VirtualAddress;
|
||||
DWORD RelocCount;
|
||||
} DUMMYUNIONNAME;
|
||||
DWORD SymbolTableIndex;
|
||||
WORD Type;
|
||||
} IMAGE_RELOCATION,*PIMAGE_RELOCATION;
|
||||
#include <poppack.h>
|
||||
|
||||
typedef struct _IMAGE_BASE_RELOCATION {
|
||||
DWORD VirtualAddress;
|
||||
DWORD SizeOfBlock;
|
||||
|
@ -5081,7 +5083,7 @@ MemoryBarrier(VOID)
|
|||
#elif defined(_M_MIPS)
|
||||
#define YieldProcessor() __asm__ __volatile__("nop");
|
||||
#elif defined(_M_ARM)
|
||||
#define YieldProcessor()
|
||||
#define YieldProcessor __yield
|
||||
#else
|
||||
#error Unknown architecture
|
||||
#endif
|
||||
|
|
|
@ -189,6 +189,36 @@ struct _KTHREAD*
|
|||
NTAPI
|
||||
KeGetCurrentThread(VOID);
|
||||
|
||||
extern volatile struct _KSYSTEM_TIME KeTickCount;
|
||||
|
||||
#ifndef YieldProcessor
|
||||
#define YieldProcessor __yield
|
||||
#endif
|
||||
|
||||
#define ASSERT_BREAKPOINT BREAKPOINT_COMMAND_STRING + 1
|
||||
|
||||
#define DbgRaiseAssertionFailure() __break(ASSERT_BREAKPOINT)
|
||||
|
||||
#define PCR_MINOR_VERSION 1
|
||||
#define PCR_MAJOR_VERSION 1
|
||||
|
||||
#define RESULT_ZERO 0
|
||||
#define RESULT_NEGATIVE 1
|
||||
#define RESULT_POSITIVE 2
|
||||
|
||||
DECLSPEC_IMPORT
|
||||
VOID
|
||||
__fastcall
|
||||
KfReleaseSpinLock(
|
||||
IN OUT ULONG_PTR* SpinLock,
|
||||
IN KIRQL NewIrql);
|
||||
|
||||
DECLSPEC_IMPORT
|
||||
KIRQL
|
||||
__fastcall
|
||||
KfAcquireSpinLock(
|
||||
IN OUT ULONG_PTR* SpinLock);
|
||||
|
||||
#ifndef _WINNT_H
|
||||
//
|
||||
// IRQL Support on ARM is similar to MIPS/ALPHA
|
||||
|
|
Loading…
Reference in a new issue