-
Notifications
You must be signed in to change notification settings - Fork 1
/
__ansi_8h_source.html
246 lines (229 loc) · 19.7 KB
/
__ansi_8h_source.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<title>PSP2SDK: include/_ansi.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
$(document).ready(function() { searchBox.OnSelectItem(0); });
</script>
</head>
<body>
<div id="top"><!-- do not remove this div! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectlogo"><img alt="Logo" src="logo.png"/></td>
<td style="padding-left: 0.5em;">
<div id="projectname">PSP2SDK
 <span id="projectnumber">dirty-f9e4f2d</span>
</div>
<div id="projectbrief">The free SDK for PSP2</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- Generated by Doxygen 1.7.6.1 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<div id="navrow1" class="tabs">
<ul class="tablist">
<li><a href="index.html"><span>Main Page</span></a></li>
<li><a href="annotated.html"><span>Data Structures</span></a></li>
<li class="current"><a href="files.html"><span>Files</span></a></li>
<li>
<div id="MSearchBox" class="MSearchBoxInactive">
<span class="left">
<img id="MSearchSelect" src="search/mag_sel.png"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
alt=""/>
<input type="text" id="MSearchField" value="Search" accesskey="S"
onfocus="searchBox.OnSearchFieldFocus(true)"
onblur="searchBox.OnSearchFieldFocus(false)"
onkeyup="searchBox.OnSearchFieldChange(event)"/>
</span><span class="right">
<a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
</span>
</div>
</li>
</ul>
</div>
<div id="navrow2" class="tabs2">
<ul class="tablist">
<li><a href="files.html"><span>File List</span></a></li>
<li><a href="globals.html"><span>Globals</span></a></li>
</ul>
</div>
</div>
<div class="header">
<div class="headertitle">
<div class="title">include/_ansi.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span>
<a name="l00002"></a>00002 <span class="comment"> * Copyright (C) 2015 PSP2SDK Project</span>
<a name="l00003"></a>00003 <span class="comment"> *</span>
<a name="l00004"></a>00004 <span class="comment"> * This Source Code Form is subject to the terms of the Mozilla Public</span>
<a name="l00005"></a>00005 <span class="comment"> * License, v. 2.0. If a copy of the MPL was not distributed with this</span>
<a name="l00006"></a>00006 <span class="comment"> * file, You can obtain one at http://mozilla.org/MPL/2.0/.</span>
<a name="l00007"></a>00007 <span class="comment"> *</span>
<a name="l00008"></a>00008 <span class="comment"> * Modified for PSP2 by PSP2SDK Team</span>
<a name="l00009"></a>00009 <span class="comment"> */</span>
<a name="l00010"></a>00010
<a name="l00011"></a>00011 <span class="preprocessor">#ifndef __ANSI_H_</span>
<a name="l00012"></a>00012 <span class="preprocessor"></span><span class="preprocessor">#define __ANSI_H_</span>
<a name="l00013"></a>00013 <span class="preprocessor"></span>
<a name="l00014"></a>00014 <span class="preprocessor">#include <sys/config.h></span>
<a name="l00015"></a>00015
<a name="l00016"></a>00016 <span class="comment">/* First try to figure out whether we really are in an ANSI C environment. */</span>
<a name="l00017"></a>00017 <span class="comment">/* FIXME: This probably needs some work. Perhaps sys/config.h can be</span>
<a name="l00018"></a>00018 <span class="comment"> prevailed upon to give us a clue. */</span>
<a name="l00019"></a>00019
<a name="l00020"></a>00020 <span class="preprocessor">#ifdef __STDC__</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">#define _HAVE_STDC</span>
<a name="l00022"></a>00022 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00023"></a>00023 <span class="preprocessor"></span>
<a name="l00024"></a>00024 <span class="comment">/* ISO C++. */</span>
<a name="l00025"></a>00025
<a name="l00026"></a>00026 <span class="preprocessor">#ifdef __cplusplus</span>
<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">#if !(defined(_BEGIN_STD_C) && defined(_END_STD_C))</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">#ifdef _HAVE_STD_CXX</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">#define _BEGIN_STD_C namespace std { extern "C" {</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">#define _END_STD_C } }</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">#define _BEGIN_STD_C extern "C" {</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span><span class="preprocessor">#define _END_STD_C }</span>
<a name="l00034"></a>00034 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">#if __GNUC_PREREQ (3, 3)</span>
<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">#define _NOTHROW __attribute__ ((__nothrow__))</span>
<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">#define _NOTHROW throw()</span>
<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">#define _BEGIN_STD_C</span>
<a name="l00043"></a>00043 <span class="preprocessor"></span><span class="preprocessor">#define _END_STD_C</span>
<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">#define _NOTHROW</span>
<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00046"></a>00046 <span class="preprocessor"></span>
<a name="l00047"></a>00047 <span class="preprocessor">#ifdef _HAVE_STDC</span>
<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">#define _PTR void *</span>
<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">#define _AND ,</span>
<a name="l00050"></a>00050 <span class="preprocessor"></span><span class="preprocessor">#define _NOARGS void</span>
<a name="l00051"></a>00051 <span class="preprocessor"></span><span class="preprocessor">#define _CONST const</span>
<a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor">#define _VOLATILE volatile</span>
<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">#define _SIGNED signed</span>
<a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">#define _DOTS , ...</span>
<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">#define _VOID void</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">#ifdef __CYGWIN__</span>
<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor">#define _EXFUN_NOTHROW(name, proto) __cdecl name proto _NOTHROW</span>
<a name="l00058"></a>00058 <span class="preprocessor"></span><span class="preprocessor">#define _EXFUN(name, proto) __cdecl name proto</span>
<a name="l00059"></a>00059 <span class="preprocessor"></span><span class="preprocessor">#define _EXPARM(name, proto) (* __cdecl name) proto</span>
<a name="l00060"></a>00060 <span class="preprocessor"></span><span class="preprocessor">#define _EXFNPTR(name, proto) (__cdecl * name) proto</span>
<a name="l00061"></a>00061 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00062"></a>00062 <span class="preprocessor"></span><span class="preprocessor">#define _EXFUN_NOTHROW(name, proto) name proto _NOTHROW</span>
<a name="l00063"></a>00063 <span class="preprocessor"></span><span class="preprocessor">#define _EXFUN(name, proto) name proto</span>
<a name="l00064"></a>00064 <span class="preprocessor"></span><span class="preprocessor">#define _EXPARM(name, proto) (* name) proto</span>
<a name="l00065"></a>00065 <span class="preprocessor"></span><span class="preprocessor">#define _EXFNPTR(name, proto) (* name) proto</span>
<a name="l00066"></a>00066 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00067"></a>00067 <span class="preprocessor"></span><span class="preprocessor">#define _DEFUN(name, arglist, args) name(args)</span>
<a name="l00068"></a>00068 <span class="preprocessor"></span><span class="preprocessor">#define _DEFUN_VOID(name) name(_NOARGS)</span>
<a name="l00069"></a>00069 <span class="preprocessor"></span><span class="preprocessor">#define _CAST_VOID (void)</span>
<a name="l00070"></a>00070 <span class="preprocessor"></span><span class="preprocessor">#ifndef _LONG_DOUBLE</span>
<a name="l00071"></a>00071 <span class="preprocessor"></span><span class="preprocessor">#define _LONG_DOUBLE long double</span>
<a name="l00072"></a>00072 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00073"></a>00073 <span class="preprocessor"></span><span class="preprocessor">#ifndef _PARAMS</span>
<a name="l00074"></a>00074 <span class="preprocessor"></span><span class="preprocessor">#define _PARAMS(paramlist) paramlist</span>
<a name="l00075"></a>00075 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00076"></a>00076 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00077"></a>00077 <span class="preprocessor"></span><span class="preprocessor">#define _PTR char *</span>
<a name="l00078"></a>00078 <span class="preprocessor"></span><span class="preprocessor">#define _AND ;</span>
<a name="l00079"></a>00079 <span class="preprocessor"></span><span class="preprocessor">#define _NOARGS</span>
<a name="l00080"></a>00080 <span class="preprocessor"></span><span class="preprocessor">#define _CONST</span>
<a name="l00081"></a>00081 <span class="preprocessor"></span><span class="preprocessor">#define _VOLATILE</span>
<a name="l00082"></a>00082 <span class="preprocessor"></span><span class="preprocessor">#define _SIGNED</span>
<a name="l00083"></a>00083 <span class="preprocessor"></span><span class="preprocessor">#define _DOTS</span>
<a name="l00084"></a>00084 <span class="preprocessor"></span><span class="preprocessor">#define _VOID void</span>
<a name="l00085"></a>00085 <span class="preprocessor"></span><span class="preprocessor">#define _EXFUN(name, proto) name()</span>
<a name="l00086"></a>00086 <span class="preprocessor"></span><span class="preprocessor">#define _EXFUN_NOTHROW(name, proto) name()</span>
<a name="l00087"></a>00087 <span class="preprocessor"></span><span class="preprocessor">#define _DEFUN(name, arglist, args) name arglist args;</span>
<a name="l00088"></a>00088 <span class="preprocessor"></span><span class="preprocessor">#define _DEFUN_VOID(name) name()</span>
<a name="l00089"></a>00089 <span class="preprocessor"></span><span class="preprocessor">#define _CAST_VOID</span>
<a name="l00090"></a>00090 <span class="preprocessor"></span><span class="preprocessor">#define _LONG_DOUBLE double</span>
<a name="l00091"></a>00091 <span class="preprocessor"></span><span class="preprocessor">#ifndef _PARAMS</span>
<a name="l00092"></a>00092 <span class="preprocessor"></span><span class="preprocessor">#define _PARAMS(paramlist) ()</span>
<a name="l00093"></a>00093 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00094"></a>00094 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00095"></a>00095 <span class="preprocessor"></span>
<a name="l00096"></a>00096 <span class="comment">/* Support gcc's __attribute__ facility. */</span>
<a name="l00097"></a>00097
<a name="l00098"></a>00098 <span class="preprocessor">#ifdef __GNUC__</span>
<a name="l00099"></a>00099 <span class="preprocessor"></span><span class="preprocessor">#define _ATTRIBUTE(attrs) __attribute__ (attrs)</span>
<a name="l00100"></a>00100 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00101"></a>00101 <span class="preprocessor"></span><span class="preprocessor">#define _ATTRIBUTE(attrs)</span>
<a name="l00102"></a>00102 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00103"></a>00103 <span class="preprocessor"></span>
<a name="l00104"></a>00104 <span class="comment">/* The traditional meaning of 'extern inline' for GCC is not</span>
<a name="l00105"></a>00105 <span class="comment"> to emit the function body unless the address is explicitly</span>
<a name="l00106"></a>00106 <span class="comment"> taken. However this behaviour is changing to match the C99</span>
<a name="l00107"></a>00107 <span class="comment"> standard, which uses 'extern inline' to indicate that the</span>
<a name="l00108"></a>00108 <span class="comment"> function body *must* be emitted. Likewise, a function declared</span>
<a name="l00109"></a>00109 <span class="comment"> without either 'extern' or 'static' defaults to extern linkage</span>
<a name="l00110"></a>00110 <span class="comment"> (C99 6.2.2p5), and the compiler may choose whether to use the</span>
<a name="l00111"></a>00111 <span class="comment"> inline version or call the extern linkage version (6.7.4p6).</span>
<a name="l00112"></a>00112 <span class="comment"> If we are using GCC, but do not have the new behaviour, we need</span>
<a name="l00113"></a>00113 <span class="comment"> to use extern inline; if we are using a new GCC with the</span>
<a name="l00114"></a>00114 <span class="comment"> C99-compatible behaviour, or a non-GCC compiler (which we will</span>
<a name="l00115"></a>00115 <span class="comment"> have to hope is C99, since there is no other way to achieve the</span>
<a name="l00116"></a>00116 <span class="comment"> effect of omitting the function if it isn't referenced) we use</span>
<a name="l00117"></a>00117 <span class="comment"> 'static inline', which c99 defines to mean more-or-less the same</span>
<a name="l00118"></a>00118 <span class="comment"> as the Gnu C 'extern inline'. */</span>
<a name="l00119"></a>00119 <span class="preprocessor">#if defined(__GNUC__) && !defined(__GNUC_STDC_INLINE__)</span>
<a name="l00120"></a>00120 <span class="preprocessor"></span><span class="comment">/* We're using GCC, but without the new C99-compatible behaviour. */</span>
<a name="l00121"></a>00121 <span class="preprocessor">#define _ELIDABLE_INLINE extern __inline__ _ATTRIBUTE ((__always_inline__))</span>
<a name="l00122"></a>00122 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00123"></a>00123 <span class="preprocessor"></span><span class="comment">/* We're using GCC in C99 mode, or an unknown compiler which</span>
<a name="l00124"></a>00124 <span class="comment"> we just have to hope obeys the C99 semantics of inline. */</span>
<a name="l00125"></a>00125 <span class="preprocessor">#define _ELIDABLE_INLINE static __inline__</span>
<a name="l00126"></a>00126 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00127"></a>00127 <span class="preprocessor"></span>
<a name="l00128"></a>00128 <span class="preprocessor">#if __GNUC_PREREQ (3, 1)</span>
<a name="l00129"></a>00129 <span class="preprocessor"></span><span class="preprocessor">#define _NOINLINE __attribute__ ((__noinline__))</span>
<a name="l00130"></a>00130 <span class="preprocessor"></span><span class="preprocessor">#define _NOINLINE_STATIC _NOINLINE static</span>
<a name="l00131"></a>00131 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00132"></a>00132 <span class="preprocessor"></span><span class="comment">/* On non-GNU compilers and GCC prior to version 3.1 the compiler can't be</span>
<a name="l00133"></a>00133 <span class="comment"> trusted not to inline if it is static. */</span>
<a name="l00134"></a>00134 <span class="preprocessor">#define _NOINLINE</span>
<a name="l00135"></a>00135 <span class="preprocessor"></span><span class="preprocessor">#define _NOINLINE_STATIC</span>
<a name="l00136"></a>00136 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00137"></a>00137 <span class="preprocessor"></span>
<a name="l00138"></a>00138 <span class="preprocessor">#endif </span><span class="comment">/* _ANSIDECL_H_ */</span>
</pre></div></div><!-- contents -->
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
<a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(0)"><span class="SelectionMark"> </span>All</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(1)"><span class="SelectionMark"> </span>Data Structures</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(2)"><span class="SelectionMark"> </span>Files</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(3)"><span class="SelectionMark"> </span>Functions</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(4)"><span class="SelectionMark"> </span>Variables</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(5)"><span class="SelectionMark"> </span>Typedefs</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(6)"><span class="SelectionMark"> </span>Enumerations</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(7)"><span class="SelectionMark"> </span>Enumerator</a><a class="SelectItem" href="javascript:void(0)" onclick="searchBox.OnSelectItem(8)"><span class="SelectionMark"> </span>Defines</a></div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<hr class="footer"/><address class="footer"><small>
Generated on Thu Oct 15 2015 23:52:23 for PSP2SDK by  <a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/>
</a> 1.7.6.1
</small></address>
</body>
</html>