define __KERNEL_STRICT_NAMES to avoid inclusion of kernel types on systems that carry...
[cake.git] / rom / oop / addclass.c
blobf0b649b26bccc5d8a92db1b9961cb6abb93931e1
1 /*
2 Copyright © 1995-2007, The AROS Development Team. All rights reserved.
3 $Id$
5 Desc: Add a class to the list of puvlic classes
6 Lang: english
7 */
8 #include <exec/lists.h>
9 #include <proto/exec.h>
10 #include "intern.h"
12 /*****************************************************************************
14 NAME */
15 #include <proto/oop.h>
17 AROS_LH1(VOID, OOP_AddClass,
19 /* SYNOPSIS */
20 AROS_LHA(OOP_Class *, classPtr, A0),
22 /* LOCATION */
23 struct Library *, OOPBase, 8, OOP)
25 /* FUNCTION
26 Adds a class to the public list of classes.
27 This means that any process can create objects of this
28 class.
30 INPUTS
31 classPtr - Pointer to the class to make public.
33 RESULT
34 None.
36 NOTES
38 EXAMPLE
40 BUGS
41 Would be faster to use a hashtable to look up class IDs
43 SEE ALSO
44 OOP_RemoveClass()
46 INTERNALS
48 HISTORY
49 29-10-95 digulla automatically created from
50 intuition_lib.fd and clib/intuition_protos.h
52 *****************************************************************************/
54 AROS_LIBFUNC_INIT
56 if (classPtr)
59 ObtainSemaphore( &GetOBase(OOPBase)->ob_ClassListLock );
61 AddTail((struct List *)&GetOBase(OOPBase)->ob_ClassList
62 ,(struct Node *)classPtr);
64 ReleaseSemaphore( & GetOBase(OOPBase)->ob_ClassListLock );
67 return;
68 AROS_LIBFUNC_EXIT
69 } /* OOP_AddClass */