locale.library: correctly return the position of remaining datastream
[AROS.git] / workbench / libs / lowlevel / remvblankint.c
blob8fbd17fb711570c9e8c1c66af720a4e359dbccbb
1 /*
2 Copyright © 1995-2007, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc:
6 Lang: English
7 */
8 #include "lowlevel_intern.h"
10 #include <aros/libcall.h>
11 #include <exec/types.h>
12 #include <libraries/lowlevel.h>
13 #include <hardware/intbits.h>
15 /*****************************************************************************
17 NAME */
19 AROS_LH1(VOID, RemVBlankInt,
21 /* SYNOPSIS */
22 AROS_LHA(APTR, intHandle, A1),
24 /* LOCATION */
25 struct LowLevelBase *, LowLevelBase, 19, LowLevel)
27 /* FUNCTION
29 Remove a vertical blank interrupt routine previously added by a call to
30 AddVBlankInt().
32 INPUTS
34 intHandle -- return value from AddVBlankInt(); may be NULL in which case
35 this function is a no-op.
37 RESULT
39 BUGS
41 SEE ALSO
43 AddVBlankInt()
45 INTERNALS
47 *****************************************************************************/
49 AROS_LIBFUNC_INIT
51 /* Protection against erroneous programs */
52 if (intHandle != NULL ||
53 ((struct Interrupt *)intHandle) != &LowLevelBase->ll_VBlank)
55 return;
58 ObtainSemaphore(&LowLevelBase->ll_Lock);
59 RemIntServer(INTB_VERTB, &LowLevelBase->ll_VBlank);
60 LowLevelBase->ll_VBlank.is_Code = NULL;
61 LowLevelBase->ll_VBlank.is_Data = NULL;
62 ReleaseSemaphore(&LowLevelBase->ll_Lock);
64 AROS_LIBFUNC_EXIT
65 } /* RemVBlankInt */