1 | /* GNU Objective C Runtime internal declarations |
---|
2 | Copyright (C) 1993, 1995 Free Software Foundation, Inc. |
---|
3 | Contributed by Kresten Krab Thorup |
---|
4 | |
---|
5 | This file is part of GNU CC. |
---|
6 | |
---|
7 | GNU CC is free software; you can redistribute it and/or modify it under the |
---|
8 | terms of the GNU General Public License as published by the Free Software |
---|
9 | Foundation; either version 2, or (at your option) any later version. |
---|
10 | |
---|
11 | GNU CC is distributed in the hope that it will be useful, but WITHOUT ANY |
---|
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 | |
---|
16 | You should have received a copy of the GNU General Public License along with |
---|
17 | GNU CC; see the file COPYING. If not, write to the Free Software |
---|
18 | Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ |
---|
19 | |
---|
20 | /* As a special exception, if you link this library with files compiled with |
---|
21 | GCC to produce an executable, this does not cause the resulting executable |
---|
22 | to be covered by the GNU General Public License. This exception does not |
---|
23 | however invalidate any other reasons why the executable file might be |
---|
24 | covered by the GNU General Public License. */ |
---|
25 | |
---|
26 | #ifndef __objc_runtime_INCLUDE_GNU |
---|
27 | #define __objc_runtime_INCLUDE_GNU |
---|
28 | |
---|
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 | |
---|
37 | #include "objc/objc.h" /* core data types */ |
---|
38 | #include "objc/objc-api.h" /* runtime api functions */ |
---|
39 | |
---|
40 | #include "objc/hash.h" /* hash structures */ |
---|
41 | #include "objc/list.h" /* linear lists */ |
---|
42 | |
---|
43 | extern void __objc_add_class_to_hash(Class); /* (objc-class.c) */ |
---|
44 | extern void __objc_init_selector_tables(); /* (objc-sel.c) */ |
---|
45 | extern void __objc_init_class_tables(); /* (objc-class.c) */ |
---|
46 | extern void __objc_init_dispatch_tables(); /* (objc-dispatch.c) */ |
---|
47 | extern void __objc_install_premature_dtable(Class); /* (objc-dispatch.c) */ |
---|
48 | extern void __objc_resolve_class_links(); /* (objc-class.c) */ |
---|
49 | extern void __objc_register_selectors_from_class(Class); /* (objc-sel.c) */ |
---|
50 | extern void __objc_update_dispatch_table_for_class (Class);/* (objc-msg.c) */ |
---|
51 | extern void class_add_method_list(Class, MethodList_t); |
---|
52 | |
---|
53 | extern void objc_error(id object, const char* fmt, va_list); |
---|
54 | extern void (*_objc_error)(id, const char*, va_list); |
---|
55 | |
---|
56 | /* True when class links has been resolved */ |
---|
57 | extern BOOL __objc_class_links_resolved; |
---|
58 | |
---|
59 | /* Number of selectors stored in each of the selector tables */ |
---|
60 | extern int __objc_selector_max_index; |
---|
61 | |
---|
62 | #ifdef DEBUG |
---|
63 | #define DEBUG_PRINTF(format, args...) printf (format, ## args) |
---|
64 | #else |
---|
65 | #define DEBUG_PRINTF(format, args...) |
---|
66 | #endif |
---|
67 | |
---|
68 | BOOL __objc_responds_to (id object, SEL sel); /* for internal use only! */ |
---|
69 | SEL __sel_register_typed_name (const char*, const char*, |
---|
70 | struct objc_selector*); |
---|
71 | |
---|
72 | #endif /* not __objc_runtime_INCLUDE_GNU */ |
---|
73 | |
---|
74 | |
---|