Disabled debug for Poseidon by default.
[cake.git] / rom / graphics / disownblitter.c
blob42c6c5309aa630728d4c0255c7c88909b2b57078
1 /*
2 Copyright © 1995-2001, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: Release the bitter from private usage
6 Lang: english
7 */
9 #include <proto/exec.h>
10 #include <graphics/gfxbase.h>
11 #include <exec/tasks.h>
13 /*****************************************************************************
15 NAME */
16 #include <proto/graphics.h>
18 AROS_LH0(void, DisownBlitter,
20 /* SYNOPSIS */
23 /* LOCATION */
24 struct GfxBase *, GfxBase, 77, Graphics)
26 /* FUNCTION
27 The blitter is returned to usage by other tasks.
29 INPUTS
31 RESULT
33 NOTES
35 EXAMPLE
37 BUGS
39 SEE ALSO
40 DisownBlitter()
42 INTERNALS
44 HISTORY
46 ******************************************************************************/
48 /* if there are no blits in any of the two queues (QBlit() and QBSBlit())
49 then check whether there is a Task in the BlitWaitQ and put it into
50 the TaskReadyList.
53 AROS_LIBFUNC_INIT
55 Forbid();
57 GfxBase -> BlitOwner = NULL;
59 if (NULL == GfxBase-> blthd &&
60 NULL == GfxBase->bsblthd)
62 if((struct Node *) GfxBase->BlitWaitQ.lh_Head !=
63 (struct Node *)&GfxBase->BlitWaitQ.lh_TailPred )
65 /* make that task ready again! */
66 struct Task * first = (struct Task *)RemHead(&GfxBase->BlitWaitQ);
67 first->tc_State = TS_READY;
68 /* Put it into the correct list of tasks */
69 Reschedule(first);
72 else
74 /* let the interrupt handler start the queued blitter requests */
77 Permit();
79 AROS_LIBFUNC_EXIT
80 } /* DisownBlitter */