Updated PCI IDs to latest snapshot.
[tangerine.git] / workbench / libs / lowlevel / remvblankint.c
blob22a8d4e32eee6393dc4dcfcec3d0df0fbe03ba5c
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, 24, 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 HISTORY
49 *****************************************************************************/
51 AROS_LIBFUNC_INIT
53 /* Protection against erroneous programs */
54 if (intHandle != NULL ||
55 ((struct Interrupt *)intHandle) != &LowLevelBase->ll_VBlank)
57 return;
60 ObtainSemaphore(&LowLevelBase->ll_Lock);
61 RemIntServer(INTB_VERTB, &LowLevelBase->ll_VBlank);
62 LowLevelBase->ll_VBlank.is_Code = NULL;
63 LowLevelBase->ll_VBlank.is_Data = NULL;
64 ReleaseSemaphore(&LowLevelBase->ll_Lock);
66 AROS_LIBFUNC_EXIT
67 } /* RemVBlankInt */