• Home
  • History
  • Annotate
  • Line#
  • Navigate
  • Raw
  • Download
  • only in /asuswrt-rt-n18u-9.0.0.4.380.2695/release/src-rt-6.x.4708/toolchains/hndtools-armeabi-2011.09/share/doc/arm-arm-none-eabi/html/gcc/
1<html lang="en">
2<head>
3<title>Modern GNU Objective-C runtime API - Using the GNU Compiler Collection (GCC)</title>
4<meta http-equiv="Content-Type" content="text/html">
5<meta name="description" content="Using the GNU Compiler Collection (GCC)">
6<meta name="generator" content="makeinfo 4.13">
7<link title="Top" rel="start" href="index.html#Top">
8<link rel="up" href="GNU-Objective_002dC-runtime-API.html#GNU-Objective_002dC-runtime-API" title="GNU Objective-C runtime API">
9<link rel="next" href="Traditional-GNU-Objective_002dC-runtime-API.html#Traditional-GNU-Objective_002dC-runtime-API" title="Traditional GNU Objective-C runtime API">
10<link href="http://www.gnu.org/software/texinfo/" rel="generator-home" title="Texinfo Homepage">
11<!--
12Copyright (C) 1988, 1989, 1992, 1993, 1994, 1995, 1996, 1997,
131998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009,
142010 Free Software Foundation, Inc.
15
16Permission is granted to copy, distribute and/or modify this document
17under the terms of the GNU Free Documentation License, Version 1.3 or
18any later version published by the Free Software Foundation; with the
19Invariant Sections being ``Funding Free Software'', the Front-Cover
20Texts being (a) (see below), and with the Back-Cover Texts being (b)
21(see below).  A copy of the license is included in the section entitled
22``GNU Free Documentation License''.
23
24(a) The FSF's Front-Cover Text is:
25
26     A GNU Manual
27
28(b) The FSF's Back-Cover Text is:
29
30     You have freedom to copy and modify this GNU Manual, like GNU
31     software.  Copies published by the Free Software Foundation raise
32     funds for GNU development.-->
33<meta http-equiv="Content-Style-Type" content="text/css">
34<style type="text/css"><!--
35  pre.display { font-family:inherit }
36  pre.format  { font-family:inherit }
37  pre.smalldisplay { font-family:inherit; font-size:smaller }
38  pre.smallformat  { font-family:inherit; font-size:smaller }
39  pre.smallexample { font-size:smaller }
40  pre.smalllisp    { font-size:smaller }
41  span.sc    { font-variant:small-caps }
42  span.roman { font-family:serif; font-weight:normal; } 
43  span.sansserif { font-family:sans-serif; font-weight:normal; } 
44--></style>
45<link rel="stylesheet" type="text/css" href="../cs.css">
46</head>
47<body>
48<div class="node">
49<a name="Modern-GNU-Objective-C-runtime-API"></a>
50<a name="Modern-GNU-Objective_002dC-runtime-API"></a>
51<p>
52Next:&nbsp;<a rel="next" accesskey="n" href="Traditional-GNU-Objective_002dC-runtime-API.html#Traditional-GNU-Objective_002dC-runtime-API">Traditional GNU Objective-C runtime API</a>,
53Up:&nbsp;<a rel="up" accesskey="u" href="GNU-Objective_002dC-runtime-API.html#GNU-Objective_002dC-runtime-API">GNU Objective-C runtime API</a>
54<hr>
55</div>
56
57<h4 class="subsection">8.1.1 Modern GNU Objective-C runtime API</h4>
58
59<p>The GNU Objective-C runtime provides an API which is similar to the
60one provided by the &ldquo;Objective-C 2.0&rdquo; Apple/NeXT Objective-C
61runtime.  The API is documented in the public header files of the GNU
62Objective-C runtime:
63
64     <ul>
65<li><samp><span class="file">objc/objc.h</span></samp>: this is the basic Objective-C header file,
66defining the basic Objective-C types such as <code>id</code>, <code>Class</code>
67and <code>BOOL</code>.  You have to include this header to do almost
68anything with Objective-C.
69
70     <li><samp><span class="file">objc/runtime.h</span></samp>: this header declares most of the public runtime
71API functions allowing you to inspect and manipulate the Objective-C
72runtime data structures.  These functions are fairly standardized
73across Objective-C runtimes and are almost identical to the Apple/NeXT
74Objective-C runtime ones.  It does not declare functions in some
75specialized areas (constructing and forwarding message invocations,
76threading) which are in the other headers below.  You have to include
77<samp><span class="file">objc/objc.h</span></samp> and <samp><span class="file">objc/runtime.h</span></samp> to use any of the
78functions, such as <code>class_getName()</code>, declared in
79<samp><span class="file">objc/runtime.h</span></samp>.
80
81     <li><samp><span class="file">objc/message.h</span></samp>: this header declares public functions used to
82construct, deconstruct and forward message invocations.  Because
83messaging is done in quite a different way on different runtimes,
84functions in this header are specific to the GNU Objective-C runtime
85implementation.
86
87     <li><samp><span class="file">objc/objc-exception.h</span></samp>: this header declares some public
88functions related to Objective-C exceptions.  For example functions in
89this header allow you to throw an Objective-C exception from plain
90C/C++ code.
91
92     <li><samp><span class="file">objc/objc-sync.h</span></samp>: this header declares some public functions
93related to the Objective-C <code>@synchronized()</code> syntax, allowing
94you to emulate an Objective-C <code>@synchronized()</code> block in plain
95C/C++ code.
96
97     <li><samp><span class="file">objc/thr.h</span></samp>: this header declares a public runtime API threading
98layer that is only provided by the GNU Objective-C runtime.  It
99declares functions such as <code>objc_mutex_lock()</code>, which provide a
100platform-independent set of threading functions.
101
102 </ul>
103
104 <p>The header files contain detailed documentation for each function in
105the GNU Objective-C runtime API.
106
107<!-- ========================================================================= -->
108 </body></html>
109
110