2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
6 /*****************************************************************************
10 AROS_LH0(ULONG, SuperState,
13 struct ExecBase *, SysBase, 25, Exec)
16 Enter supervisor mode (like Supervisor()), but return on the user
17 stack. This will mean that the user stack variables are still there.
18 A call to UserState() will end this mode.
24 The old supervisor stack. This must be passed to UserState(). If the
25 processor was already in supervisor mode, then this function will
26 return NULL. In that case do NOT call UserState().
29 This is not a good function to use, it has limited scope, and will
30 probably be even less useful in the future.
35 You can easily cause your system to cease operating normally.
38 Supervisor(), UserState()
41 For extra details see Supervisor().
45 ******************************************************************************/
48 .globl Exec_SuperState
51 stmfd sp!, {r4, fp, ip, lr, pc}
56 mov r0, #0 // 1st param
57 mov r1, r0 // 2nd param
58 move r2, r4 // SysBase
60 ldr pc, [r4, #-96] // call SetSR
62 // check whether I am already in superstate?
64 // I am already in superstate!
65 ldmea fp, {r4, fp, sp, pc}
70 .globl _sys_SuperState