1 #ifndef __EXEC_PLATFORM_H
2 #define __EXEC_PLATFORM_H
5 #define __stdcall __attribute__((ms_abi))
7 #define __stdcall __attribute__((stdcall))
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
);
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
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)
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 */