]>
Commit | Line | Data |
---|---|---|
88e17b57 | 1 | /* GNU Objective C Runtime internal declarations |
748086b7 | 2 | Copyright (C) 1993, 1995, 1996, 1997, 2002, 2004, 2009 Free Software Foundation, Inc. |
88e17b57 BE |
3 | Contributed by Kresten Krab Thorup |
4 | ||
6c82ad25 | 5 | This file is part of GCC. |
88e17b57 | 6 | |
6c82ad25 | 7 | GCC is free software; you can redistribute it and/or modify it under the |
88e17b57 | 8 | terms of the GNU General Public License as published by the Free Software |
748086b7 | 9 | Foundation; either version 3, or (at your option) any later version. |
88e17b57 | 10 | |
6c82ad25 | 11 | GCC is distributed in the hope that it will be useful, but WITHOUT ANY |
88e17b57 BE |
12 | WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS |
13 | FOR A PARTICULAR PURPOSE. See the GNU General Public License for more | |
14 | details. | |
15 | ||
748086b7 JJ |
16 | Under Section 7 of GPL version 3, you are granted additional |
17 | permissions described in the GCC Runtime Library Exception, version | |
18 | 3.1, as published by the Free Software Foundation. | |
19 | ||
20 | You should have received a copy of the GNU General Public License and | |
21 | a copy of the GCC Runtime Library Exception along with this program; | |
22 | see the files COPYING3 and COPYING.RUNTIME respectively. If not, see | |
23 | <http://www.gnu.org/licenses/>. */ | |
88e17b57 | 24 | |
88e17b57 BE |
25 | |
26 | #ifndef __objc_runtime_INCLUDE_GNU | |
27 | #define __objc_runtime_INCLUDE_GNU | |
28 | ||
9567d415 AP |
29 | #include <stdarg.h> /* for varargs and va_list's */ |
30 | ||
31 | #include <stdio.h> | |
32 | #include <ctype.h> | |
33 | ||
34 | #include <stddef.h> /* so noone else will get system versions */ | |
35 | #include <assert.h> | |
36 | ||
cf223603 DA |
37 | #include "objc.h" /* core data types */ |
38 | #include "objc-api.h" /* runtime api functions */ | |
88e17b57 | 39 | |
cf223603 | 40 | #include "thr.h" /* thread and mutex support */ |
88e17b57 | 41 | |
cf223603 DA |
42 | #include "hash.h" /* hash structures */ |
43 | #include "objc-list.h" /* linear lists */ | |
88e17b57 | 44 | |
6f0aa5e1 AP |
45 | #ifdef __cplusplus |
46 | extern "C" { | |
47 | #endif /* __cplusplus */ | |
48 | ||
88e17b57 BE |
49 | extern void __objc_add_class_to_hash(Class); /* (objc-class.c) */ |
50 | extern void __objc_init_selector_tables(void); /* (objc-sel.c) */ | |
51 | extern void __objc_init_class_tables(void); /* (objc-class.c) */ | |
52 | extern void __objc_init_dispatch_tables(void); /* (objc-dispatch.c) */ | |
53 | extern void __objc_install_premature_dtable(Class); /* (objc-dispatch.c) */ | |
54 | extern void __objc_resolve_class_links(void); /* (objc-class.c) */ | |
55 | extern void __objc_register_selectors_from_class(Class); /* (objc-sel.c) */ | |
435317e2 | 56 | extern void __objc_register_selectors_from_list (MethodList_t); /* (selector.c) */ |
88e17b57 BE |
57 | extern void __objc_update_dispatch_table_for_class (Class);/* (objc-msg.c) */ |
58 | ||
59 | extern int __objc_init_thread_system(void); /* thread.c */ | |
60 | extern int __objc_fini_thread_system(void); /* thread.c */ | |
61 | extern void __objc_print_dtable_stats(void); /* sendmsg.c */ | |
62 | ||
63 | extern void class_add_method_list(Class, MethodList_t); | |
64 | ||
65 | /* Registering instance methods as class methods for root classes */ | |
66 | extern void __objc_register_instance_methods_to_class(Class); | |
67 | extern Method_t search_for_method_in_list(MethodList_t list, SEL op); | |
68 | ||
69 | /* True when class links has been resolved */ | |
70 | extern BOOL __objc_class_links_resolved; | |
71 | ||
72 | /* Number of selectors stored in each of the selector tables */ | |
b62cc13a | 73 | extern unsigned int __objc_selector_max_index; |
88e17b57 BE |
74 | |
75 | /* Mutex locking __objc_selector_max_index and its arrays. */ | |
76 | extern objc_mutex_t __objc_runtime_mutex; | |
77 | ||
78 | /* Number of threads which are alive. */ | |
79 | extern int __objc_runtime_threads_alive; | |
80 | ||
81 | #ifdef DEBUG | |
82 | #define DEBUG_PRINTF(format, args...) printf (format, ## args) | |
83 | #else | |
84 | #define DEBUG_PRINTF(format, args...) | |
85 | #endif | |
86 | ||
87 | BOOL __objc_responds_to (id object, SEL sel); /* for internal use only! */ | |
88 | SEL __sel_register_typed_name (const char*, const char*, | |
89 | struct objc_selector*, BOOL is_const); | |
b62cc13a | 90 | extern void __objc_generate_gc_type_description (Class); |
88e17b57 | 91 | |
6f0aa5e1 AP |
92 | #ifdef __cplusplus |
93 | } | |
94 | #endif /* __cplusplus */ | |
95 | ||
88e17b57 | 96 | #endif /* not __objc_runtime_INCLUDE_GNU */ |