typo
[AROS.git] / arch / all-mingw32 / exec / exec_platform.h
blob9d9ea31b3704abb3e9b8795d8ae59d65e01517a5
1 #ifndef __EXEC_PLATFORM_H
2 #define __EXEC_PLATFORM_H
4 #ifdef __x86_64__
5 #define __stdcall __attribute__((ms_abi))
6 #else
7 #define __stdcall __attribute__((stdcall))
8 #endif
10 #define HAVE_PREPAREPLATFORM
12 struct Exec_PlatformData
14 void __stdcall (*ExitProcess)(ULONG uExitCode);
15 ULONG __stdcall (*FlushInstructionCache)(APTR hProcess, void *lpBaseAddress, IPTR dwSize);
16 void (*Reboot)(unsigned char warm);
17 APTR MyProcess;
20 #ifdef AROS_NO_ATOMIC_OPERATIONS
21 #define IDNESTCOUNT_INC SysBase->IDNestCnt++
22 #define IDNESTCOUNT_DEC SysBase->IDNestCnt--
23 #define TDNESTCOUNT_INC SysBase->TDNestCnt++
24 #define TDNESTCOUNT_DEC SysBase->TDNestCnt--
25 #define FLAG_SCHEDQUANTUM_CLEAR SysBase->SysFlags &= ~SFF_QuantumOver
26 #define FLAG_SCHEDQUANTUM_SET SysBase->SysFlags |= SFF_QuantumOver
27 #define FLAG_SCHEDSWITCH_CLEAR SysBase->AttnResched &= ~ARF_AttnSwitch
28 #define FLAG_SCHEDSWITCH_SET SysBase->AttnResched |= ARF_AttnSwitch
29 #define FLAG_SCHEDDISPATCH_CLEAR SysBase->AttnResched &= ~ARF_AttnDispatch
30 #define FLAG_SCHEDDISPATCH_SET SysBase->AttnResched |= ARF_AttnDispatch
31 #else
32 #define IDNESTCOUNT_INC AROS_ATOMIC_INC(SysBase->IDNestCnt)
33 #define IDNESTCOUNT_DEC AROS_ATOMIC_DEC(SysBase->IDNestCnt)
34 #define TDNESTCOUNT_INC AROS_ATOMIC_INC(SysBase->TDNestCnt)
35 #define TDNESTCOUNT_DEC AROS_ATOMIC_DEC(SysBase->TDNestCnt)
36 #define FLAG_SCHEDQUANTUM_CLEAR AROS_ATOMIC_AND(SysBase->SysFlags, ~SFF_QuantumOver)
37 #define FLAG_SCHEDQUANTUM_SET AROS_ATOMIC_OR(SysBase->SysFlags, SFF_QuantumOver)
38 #define FLAG_SCHEDSWITCH_CLEAR AROS_ATOMIC_AND(SysBase->AttnResched, ~ARF_AttnSwitch)
39 #define FLAG_SCHEDSWITCH_SET AROS_ATOMIC_OR(SysBase->AttnResched, ARF_AttnSwitch)
40 #define FLAG_SCHEDDISPATCH_CLEAR AROS_ATOMIC_AND(SysBase->AttnResched, ~ARF_AttnDispatch)
41 #define FLAG_SCHEDDISPATCH_SET AROS_ATOMIC_OR(SysBase->AttnResched, ARF_AttnDispatch)
42 #endif
43 #define IDNESTCOUNT_GET (SysBase->IDNestCnt)
44 #define IDNESTCOUNT_SET(val) (SysBase->IDNestCnt=(val))
45 #define TDNESTCOUNT_GET (SysBase->TDNestCnt)
46 #define TDNESTCOUNT_SET(val) (SysBase->TDNestCnt=(val))
47 #define FLAG_SCHEDQUANTUM_ISSET (SysBase->SysFlags & SFF_QuantumOver)
48 #define FLAG_SCHEDSWITCH_ISSET (SysBase->AttnResched & ARF_AttnSwitch)
49 #define FLAG_SCHEDDISPATCH_ISSET (SysBase->AttnResched & ARF_AttnDispatch)
51 #define GET_THIS_TASK (SysBase->ThisTask)
52 #define SET_THIS_TASK(x) (SysBase->ThisTask=(x))
54 #endif /* __EXEC_PLATFORM_H */