revert between 56095 -> 55830 in arch
[AROS.git] / workbench / devs / diskimage / support / amigaos / allocvecpooled.s
blobd702d79753ac5680ecc7cc80b45b799c34b122a0
1 ; Copyright 2007-2012 Fredrik Wikstrom. All rights reserved.
3 ; Redistribution and use in source and binary forms, with or without
4 ; modification, are permitted provided that the following conditions
5 ; are met:
7 ; 1. Redistributions of source code must retain the above copyright
8 ; notice, this list of conditions and the following disclaimer.
10 ; 2. Redistributions in binary form must reproduce the above copyright
11 ; notice, this list of conditions and the following disclaimer in the
12 ; documentation and/or other materials provided with the distribution.
14 ; THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS `AS IS'
15 ; AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16 ; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17 ; ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
18 ; LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
19 ; CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
20 ; SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
21 ; INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
22 ; CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
23 ; ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
24 ; POSSIBILITY OF SUCH DAMAGE.
26 INCLUDE LVOs.i
28 XREF _SysBase
30 XDEF _AllocVecPooled
31 XDEF AllocVecPooled
32 _AllocVecPooled:
33 move.l _SysBase,a6
34 move.l 4(a7),a0
35 move.l 8(a7),d0
36 AllocVecPooled
37 tst.l d0
38 beq.s avp_fail
39 addq.l #4,d0
40 move.l d0,-(a7)
41 jsr _LVOAllocPooled(a6)
42 move.l (a7)+,d1
43 tst.l d0
44 beq.s avp_fail
45 move.l d0,a0
46 move.l d1,(a0)+
47 move.l a0,d0
48 avp_fail:
49 rts
51 XDEF _FreeVecPooled
52 XDEF FreeVecPooled
53 _FreeVecPooled:
54 move.l _SysBase,a6
55 move.l 4(a7),a0
56 move.l 8(a7),a1
57 FreeVecPooled
58 move.l -(a1),d0
59 jsr _LVOFreePooled(a6)
60 rts