fix properties
[AROS.git] / rom / intuition / allocremember.c
blob4de7d2383e82337662a4d9032aa785d584370aba
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"
8 #include <exec/memory.h>
9 #include <proto/exec.h>
11 /*****************************************************************************
13 NAME */
14 #include <intuition/intuition.h>
15 #include <proto/intuition.h>
17 AROS_LH3(APTR, AllocRemember,
19 /* SYNOPSIS */
20 AROS_LHA(struct Remember **, rememberKey, A0),
21 AROS_LHA(ULONG , size, D0),
22 AROS_LHA(ULONG , flags, D1),
24 /* LOCATION */
25 struct IntuitionBase *, IntuitionBase, 66, Intuition)
27 /* FUNCTION
28 Allocate some memory and remeber it in the Remember-List.
30 INPUTS
31 rememberKey - Store information in this list. Must be NULL for
32 initial call.
33 size - How many bytes to allocate
34 flags - Attributes (see AllocMem())
36 RESULT
37 Pointer to the allocated memory or NULL.
39 NOTES
41 EXAMPLE
42 struct Remember *remkey;
43 remkey = NULL;
44 AllocRemember(&remkey, BUFSIZE, MEMF_ANY);
45 FreeRemember(&remkey, TRUE);
47 BUGS
49 SEE ALSO
51 INTERNALS
53 HISTORY
55 *****************************************************************************/
57 AROS_LIBFUNC_INIT
59 struct Remember *newKey;
60 APTR ptr = NULL;
62 DEBUG_REMEMBER(dprintf("AllocRemember: Key 0x%lx Size 0x%lx Flags 0x%08lx\n",
63 rememberKey, size, flags));
65 newKey = AllocMem (sizeof (struct Remember), MEMF_ANY);
67 if (newKey)
69 ptr = AllocMem (size, flags);
71 if (ptr)
73 newKey->NextRemember = *rememberKey;
74 newKey->Memory = ptr;
75 newKey->RememberSize = size;
77 *rememberKey = newKey;
79 else
81 FreeMem (newKey, sizeof (struct Remember));
85 DEBUG_REMEMBER(dprintf("AllocRemember: Ptr 0x%lx\n", ptr));
87 return ptr;
89 AROS_LIBFUNC_EXIT
90 } /* AllocRemember */