2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
12 The following functions are guaranteed to preserve
13 all registers. But I don't want to write them completely
14 in assembly - C is generally more readable.
15 So I use those stubs to preserve the registers.
21 .globl AROS_SLIB_ENTRY(ObtainSemaphore,Exec)
22 .type AROS_SLIB_ENTRY(ObtainSemaphore,Exec),@function
23 AROS_SLIB_ENTRY
(ObtainSemaphore
,Exec
):
24 jbra AmigaSWInitObtainSemaphore
25 jbra AROS_CSYMNAME
(_Exec_ObtainSemaphore
)
26 AmigaSWInitObtainSemaphore
:
27 movem.
l %d0-
%d1
/%a0-
%a1
,-(%sp
)
30 jbsr AROS_CSYMNAME
(_Exec_ObtainSemaphore
)
32 movem.
l (%sp
)+,%d0-
%d1
/%a0-
%a1
35 .globl AROS_SLIB_ENTRY(ReleaseSemaphore,Exec)
36 .type AROS_SLIB_ENTRY(ReleaseSemaphore,Exec),@function
37 AROS_SLIB_ENTRY
(ReleaseSemaphore
,Exec
):
38 jbra AmigaSWInitReleaseSemaphore
39 jbra AROS_CSYMNAME
(_Exec_ReleaseSemaphore
)
40 AmigaSWInitReleaseSemaphore
:
41 movem.
l %d0-
%d1
/%a0-
%a1
,-(%sp
)
44 jbsr AROS_CSYMNAME
(_Exec_ReleaseSemaphore
)
46 movem.
l (%sp
)+,%d0-
%d1
/%a0-
%a1
49 .globl AROS_SLIB_ENTRY(ObtainSemaphoreShared,Exec)
50 .type AROS_SLIB_ENTRY(ObtainSemaphoreShared,Exec),@function
51 AROS_SLIB_ENTRY
(ObtainSemaphoreShared
,Exec
):
52 jbra AmigaSWInitObtainSemaphoreShared
53 jbra AROS_CSYMNAME
(_Exec_ObtainSemaphoreShared
)
54 AmigaSWInitObtainSemaphoreShared
:
55 movem.
l %d0-
%d1
/%a0-
%a1
,-(%sp
)
58 jbsr AROS_CSYMNAME
(_Exec_ObtainSemaphoreShared
)
60 movem.
l (%sp
)+,%d0-
%d1
/%a0-
%a1
63 .globl AROS_SLIB_ENTRY(Disable,Exec)
64 .type AROS_SLIB_ENTRY(Disable,Exec),@function
65 AROS_SLIB_ENTRY
(Disable
,Exec
):
66 jbra AmigaSWInitDisable
67 jbra AROS_CSYMNAME
(_Exec_Disable
)
69 movem.
l %d0-
%d1
/%a0-
%a1
,-(%sp
)
71 jbsr AROS_CSYMNAME
(_Exec_Disable
)
73 movem.
l (%sp
)+,%d0-
%d1
/%a0-
%a1
76 .globl AROS_SLIB_ENTRY(Enable,Exec)
77 .type AROS_SLIB_ENTRY(Enable,Exec),@function
78 AROS_SLIB_ENTRY
(Enable
,Exec
):
79 jbra AmigaSWInitEnable
80 jbra AROS_CSYMNAME
(_Exec_Enable
)
82 movem.
l %d0-
%d1
/%a0-
%a1
,-(%sp
)
84 jbsr AROS_CSYMNAME
(_Exec_Enable
)
86 movem.
l (%sp
)+,%d0-
%d1
/%a0-
%a1
89 .globl AROS_SLIB_ENTRY(Forbid,Exec)
90 .type AROS_SLIB_ENTRY(Forbid,Exec),@function
91 AROS_SLIB_ENTRY
(Forbid
,Exec
):
92 jbra AmigaSWInitForbid
93 jbra AROS_CSYMNAME
(_Exec_Forbid
)
95 movem.
l %d0-
%d1
/%a0-
%a1
,-(%sp
)
97 jbsr AROS_CSYMNAME
(_Exec_Forbid
)
99 movem.
l (%sp
)+,%d0-
%d1
/%a0-
%a1
102 .globl AROS_SLIB_ENTRY(Permit,Exec)
103 .type AROS_SLIB_ENTRY(Permit,Exec),@function
104 AROS_SLIB_ENTRY
(Permit
,Exec
):
105 jbra AmigaSWInitPermit
106 jbra AROS_CSYMNAME
(_Exec_Permit
)
108 movem.
l %d0-
%d1
/%a0-
%a1
,-(%sp
)
110 jbsr AROS_CSYMNAME
(_Exec_Permit
)
112 movem.
l (%sp
)+,%d0-
%d1
/%a0-
%a1