]> gcc.gnu.org Git - gcc.git/blame - gcc/objc/runtime.h
More system.h cutover patches:
[gcc.git] / gcc / objc / runtime.h
CommitLineData
c72fc2d9 1/* GNU Objective C Runtime internal declarations
efa7c88e 2 Copyright (C) 1993, 1995, 1996, 1997 Free Software Foundation, Inc.
0994488a 3 Contributed by Kresten Krab Thorup
c72fc2d9
TW
4
5This file is part of GNU CC.
6
7GNU CC is free software; you can redistribute it and/or modify it under the
0994488a
RK
8terms of the GNU General Public License as published by the Free Software
9Foundation; either version 2, or (at your option) any later version.
c72fc2d9
TW
10
11GNU CC is distributed in the hope that it will be useful, but WITHOUT ANY
0994488a
RK
12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
13FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
14details.
c72fc2d9
TW
15
16You should have received a copy of the GNU General Public License along with
0994488a 17GNU CC; see the file COPYING. If not, write to the Free Software
84c09f78 18Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */
c72fc2d9
TW
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
c2ab36e6 29#include <stdarg.h> /* for varargs and va_list's */
36d5f78c 30
a7ab3794 31#include <stdio.h>
a7ab3794 32#include <ctype.h>
e312f965 33
c2ab36e6 34#include <stddef.h> /* so noone else will get system versions */
36be30f1 35#include "assert.h"
c72fc2d9 36
36be30f1
KKT
37#include "objc/objc.h" /* core data types */
38#include "objc/objc-api.h" /* runtime api functions */
c72fc2d9 39
5f79ec0e 40#include "objc/thr.h" /* thread and mutex support */
54d643f6 41
36be30f1 42#include "objc/hash.h" /* hash structures */
5f79ec0e 43#include "objc/objc-list.h" /* linear lists */
c72fc2d9 44
0994488a 45extern void __objc_add_class_to_hash(Class); /* (objc-class.c) */
c72fc2d9 46extern void __objc_init_selector_tables(); /* (objc-sel.c) */
0994488a 47extern void __objc_init_class_tables(); /* (objc-class.c) */
c72fc2d9 48extern void __objc_init_dispatch_tables(); /* (objc-dispatch.c) */
0994488a
RK
49extern void __objc_install_premature_dtable(Class); /* (objc-dispatch.c) */
50extern void __objc_resolve_class_links(); /* (objc-class.c) */
51extern void __objc_register_selectors_from_class(Class); /* (objc-sel.c) */
52extern void __objc_update_dispatch_table_for_class (Class);/* (objc-msg.c) */
54d643f6
RK
53
54extern int __objc_init_thread_system(void); /* thread.c */
55extern int __objc_fini_thread_system(void); /* thread.c */
56
0994488a 57extern void class_add_method_list(Class, MethodList_t);
c72fc2d9 58
61f77e44
RK
59/* Registering instance methods as class methods for root classes */
60extern void __objc_register_instance_methods_to_class(Class);
61extern Method_t search_for_method_in_list(MethodList_t list, SEL op);
62
c72fc2d9
TW
63/* True when class links has been resolved */
64extern BOOL __objc_class_links_resolved;
65
66/* Number of selectors stored in each of the selector tables */
67extern int __objc_selector_max_index;
68
54d643f6 69/* Mutex locking __objc_selector_max_index and its arrays. */
e0d0c8a1 70extern objc_mutex_t __objc_runtime_mutex;
54d643f6
RK
71
72/* Number of threads which are alive. */
73extern int __objc_runtime_threads_alive;
74
c72fc2d9 75#ifdef DEBUG
a39d31bc 76#define DEBUG_PRINTF(format, args...) printf (format, ## args)
c72fc2d9 77#else
a39d31bc 78#define DEBUG_PRINTF(format, args...)
c72fc2d9
TW
79#endif
80
2ebb3053 81BOOL __objc_responds_to (id object, SEL sel); /* for internal use only! */
a39d31bc 82SEL __sel_register_typed_name (const char*, const char*,
018086d1 83 struct objc_selector*, BOOL is_const);
c72fc2d9 84
c72fc2d9
TW
85#endif /* not __objc_runtime_INCLUDE_GNU */
86
87
This page took 0.436925 seconds and 5 git commands to generate.