refactored some code. compiles now without suppresing any warning with gcc-6.3.0.
[AROS.git] / rom / kernel / switch.c
blob5443711bf8b45bb591226b7b45f822f895f51f68
1 /*
2 Copyright © 1995-2013, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc:
6 */
8 #include <aros/kernel.h>
10 #include <kernel_base.h>
11 #include <kernel_syscall.h>
13 /*****************************************************************************
15 NAME */
16 #include <proto/kernel.h>
18 AROS_LH0(void, KrnSwitch,
20 /* SYNOPSIS */
22 /* LOCATION */
23 struct KernelBase *, KernelBase, 5, Kernel)
25 /* FUNCTION
26 Save context of caller's task and dispatch the next available task
28 INPUTS
29 None
31 RESULT
32 None
34 NOTES
35 This entry point directly calls task switch routine
36 in supervisor mode. It neither performs any checks of caller status
37 nor obeys interrupt enable state. After calling this function, caller's
38 task will be replaced by another one, and it's caller's responsibility
39 to do anything to prevent task loss.
41 This function is safe to call only from within user mode.
42 This function is considered internal, and not meant to be called
43 by user's software.
45 EXAMPLE
47 BUGS
49 SEE ALSO
51 INTERNALS
53 ******************************************************************************/
55 AROS_LIBFUNC_INIT
57 krnSysCall(SC_SWITCH);
59 AROS_LIBFUNC_EXIT