]>
Commit | Line | Data |
---|---|---|
88e17b57 | 1 | /* GNU Objective C Runtime internal declarations |
a5544970 | 2 | Copyright (C) 1993-2019 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 | |
a19fac96 NP |
25 | /* You need to include this file after including a number of standard ObjC files. |
26 | ||
27 | The original list was: | |
28 | ||
29 | #include "objc/objc.h" | |
30 | #include "objc/objc-api.h" | |
31 | #include "objc/thr.h" | |
32 | #include "objc/hash.h" | |
33 | #include "objc/objc-list.h" | |
34 | ||
cad10e05 | 35 | but can almost certainly be shrunk down. */ |
88e17b57 | 36 | |
90a2689f NP |
37 | #ifndef __objc_private_runtime_INCLUDE_GNU |
38 | #define __objc_private_runtime_INCLUDE_GNU | |
88e17b57 | 39 | |
9567d415 AP |
40 | #include <stdarg.h> /* for varargs and va_list's */ |
41 | ||
42 | #include <stdio.h> | |
43 | #include <ctype.h> | |
44 | ||
cad10e05 | 45 | #include <stddef.h> /* so no one else will get system versions */ |
9567d415 AP |
46 | #include <assert.h> |
47 | ||
1575c9de NP |
48 | extern BOOL __objc_add_class_to_hash (Class); /* (objc-class.c) */ |
49 | extern void __objc_init_class_tables (void); /* (objc-class.c) */ | |
50 | extern void __objc_init_dispatch_tables (void); /* (objc-dispatch.c) */ | |
51 | extern void __objc_install_premature_dtable (Class); /* (objc-dispatch.c) */ | |
52 | extern void __objc_resolve_class_links (void); /* (objc-class.c) */ | |
88e17b57 BE |
53 | extern void __objc_update_dispatch_table_for_class (Class);/* (objc-msg.c) */ |
54 | ||
1575c9de NP |
55 | extern int __objc_init_thread_system (void); /* thread.c */ |
56 | extern int __objc_fini_thread_system (void); /* thread.c */ | |
0bfe3fa1 | 57 | extern BOOL __objc_init_class (Class class); /* init.c */ |
1575c9de | 58 | extern void class_add_method_list (Class, struct objc_method_list *); |
88e17b57 BE |
59 | |
60 | /* Registering instance methods as class methods for root classes */ | |
8637d320 NP |
61 | extern void __objc_register_instance_methods_to_class (Class); |
62 | extern struct objc_method * search_for_method_in_list (struct objc_method_list * list, SEL op); | |
88e17b57 | 63 | |
51194e8e NP |
64 | extern void |
65 | __objc_update_classes_with_methods (struct objc_method *method_a, struct objc_method *method_b); /* class.c */ | |
66 | ||
88e17b57 BE |
67 | /* Mutex locking __objc_selector_max_index and its arrays. */ |
68 | extern objc_mutex_t __objc_runtime_mutex; | |
69 | ||
70 | /* Number of threads which are alive. */ | |
71 | extern int __objc_runtime_threads_alive; | |
72 | ||
88e17b57 | 73 | BOOL __objc_responds_to (id object, SEL sel); /* for internal use only! */ |
b62cc13a | 74 | extern void __objc_generate_gc_type_description (Class); |
88e17b57 | 75 | |
90a2689f | 76 | #endif /* not __objc_private_runtime_INCLUDE_GNU */ |