added concrete implementations of putc(), getc(), getchar() and gets()
[tangerine.git] / rom / intuition / lockpubscreenlist.c
blob0f89e4bde3c51129a61731d52c52100a0271dea9
1 /*
2 Copyright © 1995-2007, The AROS Development Team. All rights reserved.
3 Copyright © 2001-2003, The MorphOS Development Team. All Rights Reserved.
4 $Id$
5 */
7 #include "intuition_intern.h"
9 /*****************************************************************************
11 NAME */
12 #include <proto/intuition.h>
14 AROS_LH0(struct List *, LockPubScreenList,
16 /* SYNOPSIS */
18 /* LOCATION */
19 struct IntuitionBase *, IntuitionBase, 87, Intuition)
21 /* FUNCTION
23 Arbitrates access to the system public screen list. This is for Public
24 Screen Manager programs only! The list should be locked as short a time
25 as possible.
27 INPUTS
29 RESULT
31 NOTES
33 The list's nodes are PubScreenNodes as defined in <intuition/screens.h>.
34 Act very quickly when holding this lock!
36 EXAMPLE
38 BUGS
40 SEE ALSO
42 UnlockPubScreenList()
44 INTERNALS
46 HISTORY
47 21-06-98 SDuvan Implemented
48 29-10-95 digulla automatically created from
49 intuition_lib.fd and clib/intuition_protos.h
51 *****************************************************************************/
52 #define GPB(x) GetPrivIBase(x)
55 AROS_LIBFUNC_INIT
57 DEBUG_LOCKPUBSCREENLIST(dprintf("LockPubScreenList: <%s>\n",
58 FindTask(NULL)->tc_Node.ln_Name));
59 ObtainSemaphore(&GPB(IntuitionBase)->PubScrListLock);
60 DEBUG_LOCKPUBSCREENLIST(dprintf("LockPubScreenList: done\n"));
62 return (struct List *)&(GPB(IntuitionBase)->PubScreenList);
64 AROS_LIBFUNC_EXIT
65 } /* LockPubScreenList */