[TT #592][docs] Add docs about assigning to registers in docs/debugger.pod
[parrot.git] / include / parrot / vtables.h
blob8d89ebedfe92caff7d3cc31c25b4f416a05a61e7
1 /* vtables.h
2 * Copyright (C) 2001-2003, Parrot Foundation.
3 * SVN Info
4 * $Id$
5 * Overview:
6 * Vtable manipulation code. Not to be confused with vtable.h
7 * Data Structure and Algorithms:
8 * History:
9 * Notes:
10 * References:
13 #ifndef PARROT_VTABLES_H_GUARD
14 #define PARROT_VTABLES_H_GUARD
17 /* HEADERIZER BEGIN: src/vtables.c */
18 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
20 PARROT_EXPORT
21 PARROT_MALLOC
22 PARROT_CANNOT_RETURN_NULL
23 VTABLE * Parrot_clone_vtable(PARROT_INTERP,
24 ARGIN(const VTABLE *base_vtable))
25 __attribute__nonnull__(1)
26 __attribute__nonnull__(2);
28 PARROT_EXPORT
29 void Parrot_destroy_vtable(PARROT_INTERP, ARGMOD(VTABLE *vtable))
30 __attribute__nonnull__(1)
31 __attribute__nonnull__(2)
32 FUNC_MODIFIES(*vtable);
34 PARROT_EXPORT
35 void Parrot_initialize_core_vtables(PARROT_INTERP)
36 __attribute__nonnull__(1);
38 PARROT_EXPORT
39 PARROT_MALLOC
40 PARROT_CANNOT_RETURN_NULL
41 VTABLE * Parrot_new_vtable(SHIM_INTERP);
43 void mark_vtables(PARROT_INTERP)
44 __attribute__nonnull__(1);
46 void parrot_alloc_vtables(PARROT_INTERP)
47 __attribute__nonnull__(1);
49 void parrot_free_vtables(PARROT_INTERP)
50 __attribute__nonnull__(1);
52 void parrot_realloc_vtables(PARROT_INTERP)
53 __attribute__nonnull__(1);
55 #define ASSERT_ARGS_Parrot_clone_vtable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
56 PARROT_ASSERT_ARG(interp) \
57 , PARROT_ASSERT_ARG(base_vtable))
58 #define ASSERT_ARGS_Parrot_destroy_vtable __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
59 PARROT_ASSERT_ARG(interp) \
60 , PARROT_ASSERT_ARG(vtable))
61 #define ASSERT_ARGS_Parrot_initialize_core_vtables \
62 __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
63 PARROT_ASSERT_ARG(interp))
64 #define ASSERT_ARGS_Parrot_new_vtable __attribute__unused__ int _ASSERT_ARGS_CHECK = (0)
65 #define ASSERT_ARGS_mark_vtables __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
66 PARROT_ASSERT_ARG(interp))
67 #define ASSERT_ARGS_parrot_alloc_vtables __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
68 PARROT_ASSERT_ARG(interp))
69 #define ASSERT_ARGS_parrot_free_vtables __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
70 PARROT_ASSERT_ARG(interp))
71 #define ASSERT_ARGS_parrot_realloc_vtables __attribute__unused__ int _ASSERT_ARGS_CHECK = (\
72 PARROT_ASSERT_ARG(interp))
73 /* Don't modify between HEADERIZER BEGIN / HEADERIZER END. Your changes will be lost. */
74 /* HEADERIZER END: src/vtables.c */
76 #endif /* PARROT_VTABLES_H_GUARD */
79 * Local variables:
80 * c-file-style: "parrot"
81 * End:
82 * vim: expandtab shiftwidth=4: