Added "-p" to make parent directories as needed.
[AROS.git] / arch / m68k-amiga / exec / enable.S
blob1b2635c32ebcec75b358da5937476ee176cac648
1 /*
2     Copyright © 1995-2010, The AROS Development Team. All rights reserved.
3     $Id$
5     Desc: Enable() - Allow interrupts to occur after Disable().
6     Lang: english
7 */
8 /*****************************************************************************
10     NAME
11 #include <proto/exec.h>
13         AROS_LH0(void, Enable,
15     LOCATION
16         struct ExecBase *, SysBase, 21, Exec)
18     FUNCTION
19         This function will allow interrupts to occur after they have
20         been disabled by Disable().
22         Note that calls to Disable() nest, and for every call to
23         Disable() you need a matching call to Enable().
25         ***** WARNING *****
27         Using this function is considered very harmful, and it is
28         not recommended to use this function for ** ANY ** reason.
30         It is quite possible to either crash the system, or to prevent
31         normal activities (disk/port i/o) from occuring.
33         Note: As taskswitching is driven by the interrupts subsystem,
34               this function has the side effect of disabling
35               multitasking.
37     INPUTS
38         None.
40     RESULT
41         Interrupts will be enabled again when this call returns.
43     NOTES
44         This function preserves all registers.
46         To prevent deadlocks calling Wait() in disabled state breaks
47         the disable - thus interrupts may happen again.
49     EXAMPLE
50         No you DEFINITATELY don't want to use this function.
52     BUGS
53         The only architecture that you can rely on the registers being
54         saved is on the Motorola mc68000 family.
56     SEE ALSO
57         Forbid(), Permit(), Disable(), Wait()
59     INTERNALS
60         This function must be replaced in the $(KERNEL) or $(ARCH)
61         directories in order to do some work.
63 ******************************************************************************/
64         #include "aros/m68k/asm.h"
66         .text
67         .balign 4
68         .globl  AROS_SLIB_ENTRY(Enable,Exec,21)
70 AROS_SLIB_ENTRY(Enable,Exec,21):
71         /* As we said above: ALL registers must be preserved! */
72         subq.b  #1,%a6@(IDNestCnt)
73         bge.s   0f
74         move.w  #0xc000,0xdff09a
75 0:      rts