File: il__endian_8h-source.html

package info (click to toggle)
devil 1.7.8-10
  • links: PTS
  • area: main
  • in suites: bookworm, bullseye, buster, stretch
  • size: 9,796 kB
  • sloc: ansic: 45,835; sh: 15,558; cpp: 4,009; python: 1,300; pascal: 792; makefile: 307; cs: 192; fortran: 5
file content (398 lines) | stat: -rw-r--r-- 30,316 bytes parent folder | download | duplicates (5)
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
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html><head><meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
<title>DevIL: /home/dwoods/DevIL/src-IL/include/il_endian.h Source File</title>
<link href="doxygen.css" rel="stylesheet" type="text/css">
<link href="tabs.css" rel="stylesheet" type="text/css">
</head><body>
<!-- Generated by Doxygen 1.5.6 -->
<div class="navigation" id="top">
  <div class="tabs">
    <ul>
      <li><a href="index.html"><span>Main&nbsp;Page</span></a></li>
      <li><a href="annotated.html"><span>Data&nbsp;Structures</span></a></li>
      <li class="current"><a href="files.html"><span>Files</span></a></li>
    </ul>
  </div>
<h1>/home/dwoods/DevIL/src-IL/include/il_endian.h</h1><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">//-----------------------------------------------------------------------------</span>
<a name="l00002"></a>00002 <span class="comment">//</span>
<a name="l00003"></a>00003 <span class="comment">// ImageLib Sources</span>
<a name="l00004"></a>00004 <span class="comment">// Copyright (C) 2000-2009 by Denton Woods</span>
<a name="l00005"></a>00005 <span class="comment">// Last modified: 01/29/2009</span>
<a name="l00006"></a>00006 <span class="comment">//</span>
<a name="l00007"></a>00007 <span class="comment">// Filename: src-IL/include/il_endian.h</span>
<a name="l00008"></a>00008 <span class="comment">//</span>
<a name="l00009"></a>00009 <span class="comment">// Description: Handles Endian-ness</span>
<a name="l00010"></a>00010 <span class="comment">//</span>
<a name="l00011"></a>00011 <span class="comment">//-----------------------------------------------------------------------------</span>
<a name="l00012"></a>00012 
<a name="l00013"></a>00013 <span class="preprocessor">#ifndef IL_ENDIAN_H</span>
<a name="l00014"></a>00014 <span class="preprocessor"></span><span class="preprocessor">#define IL_ENDIAN_H</span>
<a name="l00015"></a>00015 <span class="preprocessor"></span>
<a name="l00016"></a>00016 <span class="preprocessor">#include "il_internal.h"</span>
<a name="l00017"></a>00017 
<a name="l00018"></a>00018 <span class="preprocessor">#ifdef WORDS_BIGENDIAN  // This is defined by ./configure.</span>
<a name="l00019"></a>00019 <span class="preprocessor"></span><span class="preprocessor">        #ifndef __BIG_ENDIAN__</span>
<a name="l00020"></a>00020 <span class="preprocessor"></span><span class="preprocessor">        #define __BIG_ENDIAN__ 1</span>
<a name="l00021"></a>00021 <span class="preprocessor"></span><span class="preprocessor">        #endif</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="preprocessor">#if (defined(__BYTE_ORDER__) &amp;&amp; __BYTE_ORDER__ == __BIG_ENDIAN__) \</span>
<a name="l00025"></a>00025 <span class="preprocessor">  || (defined(__BIG_ENDIAN__) &amp;&amp; !defined(__LITTLE_ENDIAN__))</span>
<a name="l00026"></a>00026 <span class="preprocessor"></span><span class="preprocessor">        #undef __LITTLE_ENDIAN__</span>
<a name="l00027"></a>00027 <span class="preprocessor"></span><span class="preprocessor">        #define Short(s) iSwapShort(s)</span>
<a name="l00028"></a>00028 <span class="preprocessor"></span><span class="preprocessor">        #define UShort(s) iSwapUShort(s)</span>
<a name="l00029"></a>00029 <span class="preprocessor"></span><span class="preprocessor">        #define Int(i) iSwapInt(i)</span>
<a name="l00030"></a>00030 <span class="preprocessor"></span><span class="preprocessor">        #define UInt(i) iSwapUInt(i)</span>
<a name="l00031"></a>00031 <span class="preprocessor"></span><span class="preprocessor">        #define Float(f) iSwapFloat(f)</span>
<a name="l00032"></a>00032 <span class="preprocessor"></span><span class="preprocessor">        #define Double(d) iSwapDouble(d)</span>
<a name="l00033"></a>00033 <span class="preprocessor"></span> 
<a name="l00034"></a>00034 <span class="preprocessor">        #define BigShort(s)  </span>
<a name="l00035"></a>00035 <span class="preprocessor"></span><span class="preprocessor">        #define BigUShort(s)  </span>
<a name="l00036"></a>00036 <span class="preprocessor"></span><span class="preprocessor">        #define BigInt(i)  </span>
<a name="l00037"></a>00037 <span class="preprocessor"></span><span class="preprocessor">        #define BigUInt(i)  </span>
<a name="l00038"></a>00038 <span class="preprocessor"></span><span class="preprocessor">        #define BigFloat(f)  </span>
<a name="l00039"></a>00039 <span class="preprocessor"></span><span class="preprocessor">        #define BigDouble(d)  </span>
<a name="l00040"></a>00040 <span class="preprocessor"></span><span class="preprocessor">#else</span>
<a name="l00041"></a>00041 <span class="preprocessor"></span><span class="preprocessor">        #undef __BIG_ENDIAN__</span>
<a name="l00042"></a>00042 <span class="preprocessor"></span><span class="preprocessor">        #undef __LITTLE_ENDIAN__  // Not sure if it's defined by any compiler...</span>
<a name="l00043"></a>00043 <span class="preprocessor"></span><span class="preprocessor">        #define __LITTLE_ENDIAN__</span>
<a name="l00044"></a>00044 <span class="preprocessor"></span><span class="preprocessor">        #define Short(s)  </span>
<a name="l00045"></a>00045 <span class="preprocessor"></span><span class="preprocessor">        #define UShort(s)  </span>
<a name="l00046"></a>00046 <span class="preprocessor"></span><span class="preprocessor">        #define Int(i)  </span>
<a name="l00047"></a>00047 <span class="preprocessor"></span><span class="preprocessor">        #define UInt(i)  </span>
<a name="l00048"></a>00048 <span class="preprocessor"></span><span class="preprocessor">        #define Float(f)  </span>
<a name="l00049"></a>00049 <span class="preprocessor"></span><span class="preprocessor">        #define Double(d)  </span>
<a name="l00050"></a>00050 <span class="preprocessor"></span>
<a name="l00051"></a>00051 <span class="preprocessor">        #define BigShort(s) iSwapShort(s)</span>
<a name="l00052"></a>00052 <span class="preprocessor"></span><span class="preprocessor">        #define BigUShort(s) iSwapUShort(s)</span>
<a name="l00053"></a>00053 <span class="preprocessor"></span><span class="preprocessor">        #define BigInt(i) iSwapInt(i)</span>
<a name="l00054"></a>00054 <span class="preprocessor"></span><span class="preprocessor">        #define BigUInt(i) iSwapUInt(i)</span>
<a name="l00055"></a>00055 <span class="preprocessor"></span><span class="preprocessor">        #define BigFloat(f) iSwapFloat(f)</span>
<a name="l00056"></a>00056 <span class="preprocessor"></span><span class="preprocessor">        #define BigDouble(d) iSwapDouble(d)</span>
<a name="l00057"></a>00057 <span class="preprocessor"></span><span class="preprocessor">#endif</span>
<a name="l00058"></a>00058 <span class="preprocessor"></span>
<a name="l00059"></a>00059 <span class="keywordtype">void</span>   iSwapUShort(ILushort *s);
<a name="l00060"></a>00060 <span class="keywordtype">void</span>   iSwapShort(ILshort *s);
<a name="l00061"></a>00061 <span class="keywordtype">void</span>   iSwapUInt(ILuint *i);
<a name="l00062"></a>00062 <span class="keywordtype">void</span>   iSwapInt(ILint *i);
<a name="l00063"></a>00063 <span class="keywordtype">void</span>   iSwapFloat(ILfloat *f);
<a name="l00064"></a>00064 <span class="keywordtype">void</span>   iSwapDouble(ILdouble *d);
<a name="l00065"></a>00065 ILushort GetLittleUShort();
<a name="l00066"></a>00066 ILshort  GetLittleShort();
<a name="l00067"></a>00067 ILuint   GetLittleUInt();
<a name="l00068"></a>00068 ILint    GetLittleInt();
<a name="l00069"></a>00069 ILfloat  GetLittleFloat();
<a name="l00070"></a>00070 ILdouble GetLittleDouble();
<a name="l00071"></a>00071 ILushort GetBigUShort();
<a name="l00072"></a>00072 ILshort  GetBigShort();
<a name="l00073"></a>00073 ILuint   GetBigUInt();
<a name="l00074"></a>00074 ILint    GetBigInt();
<a name="l00075"></a>00075 ILfloat  GetBigFloat();
<a name="l00076"></a>00076 ILdouble GetBigDouble();
<a name="l00077"></a>00077 ILubyte SaveLittleUShort(ILushort s);
<a name="l00078"></a>00078 ILubyte SaveLittleShort(ILshort s);
<a name="l00079"></a>00079 ILubyte SaveLittleUInt(ILuint i);
<a name="l00080"></a>00080 ILubyte SaveLittleInt(ILint i);
<a name="l00081"></a>00081 ILubyte SaveLittleFloat(ILfloat f);
<a name="l00082"></a>00082 ILubyte SaveLittleDouble(ILdouble d);
<a name="l00083"></a>00083 ILubyte SaveBigUShort(ILushort s);
<a name="l00084"></a>00084 ILubyte SaveBigShort(ILshort s);
<a name="l00085"></a>00085 ILubyte SaveBigUInt(ILuint i);
<a name="l00086"></a>00086 ILubyte SaveBigInt(ILint i);
<a name="l00087"></a>00087 ILubyte SaveBigFloat(ILfloat f);
<a name="l00088"></a>00088 ILubyte SaveBigDouble(ILdouble d);
<a name="l00089"></a>00089 
<a name="l00090"></a>00090 <span class="preprocessor">#ifdef IL_ENDIAN_C</span>
<a name="l00091"></a>00091 <span class="preprocessor"></span><span class="preprocessor">#undef NOINLINE</span>
<a name="l00092"></a>00092 <span class="preprocessor"></span><span class="preprocessor">#undef INLINE</span>
<a name="l00093"></a>00093 <span class="preprocessor"></span><span class="preprocessor">#define INLINE</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="preprocessor">#ifndef NOINLINE</span>
<a name="l00097"></a>00097 <span class="preprocessor"></span>INLINE <span class="keywordtype">void</span> iSwapUShort(ILushort *s)  {
<a name="l00098"></a>00098 <span class="preprocessor">        #ifdef USE_WIN32_ASM</span>
<a name="l00099"></a>00099 <span class="preprocessor"></span>                __asm {
<a name="l00100"></a>00100                         mov ebx, s
<a name="l00101"></a>00101                         mov al, [ebx+1]
<a name="l00102"></a>00102                         mov ah, [ebx  ]
<a name="l00103"></a>00103                         mov [ebx], ax
<a name="l00104"></a>00104                 }
<a name="l00105"></a>00105 <span class="preprocessor">        #else</span>
<a name="l00106"></a>00106 <span class="preprocessor"></span><span class="preprocessor">        #ifdef GCC_X86_ASM</span>
<a name="l00107"></a>00107 <span class="preprocessor"></span>                <span class="keyword">asm</span>(<span class="stringliteral">"ror $8,%0"</span>
<a name="l00108"></a>00108                         : <span class="stringliteral">"=r"</span> (*s)
<a name="l00109"></a>00109                         : <span class="stringliteral">"0"</span> (*s));
<a name="l00110"></a>00110 <span class="preprocessor">        #else</span>
<a name="l00111"></a>00111 <span class="preprocessor"></span>                *s = ((*s)&gt;&gt;8) | ((*s)&lt;&lt;8);
<a name="l00112"></a>00112 <span class="preprocessor">        #endif //GCC_X86_ASM</span>
<a name="l00113"></a>00113 <span class="preprocessor"></span><span class="preprocessor">        #endif //USE_WIN32_ASM</span>
<a name="l00114"></a>00114 <span class="preprocessor"></span>}
<a name="l00115"></a>00115 
<a name="l00116"></a>00116 INLINE <span class="keywordtype">void</span> iSwapShort(ILshort *s) {
<a name="l00117"></a>00117         iSwapUShort((ILushort*)s);
<a name="l00118"></a>00118 }
<a name="l00119"></a>00119 
<a name="l00120"></a>00120 INLINE <span class="keywordtype">void</span> iSwapUInt(ILuint *i) {
<a name="l00121"></a>00121 <span class="preprocessor">        #ifdef USE_WIN32_ASM</span>
<a name="l00122"></a>00122 <span class="preprocessor"></span>                __asm {
<a name="l00123"></a>00123                         mov ebx, i
<a name="l00124"></a>00124                         mov eax, [ebx]
<a name="l00125"></a>00125                         bswap eax
<a name="l00126"></a>00126                         mov [ebx], eax
<a name="l00127"></a>00127                 }
<a name="l00128"></a>00128 <span class="preprocessor">        #else</span>
<a name="l00129"></a>00129 <span class="preprocessor"></span><span class="preprocessor">        #ifdef GCC_X86_ASM</span>
<a name="l00130"></a>00130 <span class="preprocessor"></span>                        <span class="keyword">asm</span>(<span class="stringliteral">"bswap %0;"</span>
<a name="l00131"></a>00131                                 : <span class="stringliteral">"+r"</span> (*i));
<a name="l00132"></a>00132 <span class="preprocessor">        #else</span>
<a name="l00133"></a>00133 <span class="preprocessor"></span>                *i = ((*i)&gt;&gt;24) | (((*i)&gt;&gt;8) &amp; 0xff00) | (((*i)&lt;&lt;8) &amp; 0xff0000) | ((*i)&lt;&lt;24);
<a name="l00134"></a>00134 <span class="preprocessor">        #endif //GCC_X86_ASM</span>
<a name="l00135"></a>00135 <span class="preprocessor"></span><span class="preprocessor">        #endif //USE_WIN32_ASM</span>
<a name="l00136"></a>00136 <span class="preprocessor"></span>}
<a name="l00137"></a>00137 
<a name="l00138"></a>00138 INLINE <span class="keywordtype">void</span> iSwapInt(ILint *i) {
<a name="l00139"></a>00139         iSwapUInt((ILuint*)i);
<a name="l00140"></a>00140 }
<a name="l00141"></a>00141 
<a name="l00142"></a>00142 INLINE <span class="keywordtype">void</span> iSwapFloat(ILfloat *f) {
<a name="l00143"></a>00143         iSwapUInt((ILuint*)f);
<a name="l00144"></a>00144 }
<a name="l00145"></a>00145 
<a name="l00146"></a>00146 INLINE <span class="keywordtype">void</span> iSwapDouble(ILdouble *d) {
<a name="l00147"></a>00147 <span class="preprocessor">        #ifdef GCC_X86_ASM</span>
<a name="l00148"></a>00148 <span class="preprocessor"></span>        <span class="keywordtype">int</span> *t = (<span class="keywordtype">int</span>*)d;
<a name="l00149"></a>00149         <span class="keyword">asm</span>(<span class="stringliteral">"bswap %2    \n"</span>
<a name="l00150"></a>00150                 <span class="stringliteral">"bswap %3    \n"</span>
<a name="l00151"></a>00151                 <span class="stringliteral">"movl  %2,%1 \n"</span>
<a name="l00152"></a>00152                 <span class="stringliteral">"movl  %3,%0 \n"</span>
<a name="l00153"></a>00153                 : <span class="stringliteral">"=g"</span> (t[0]), <span class="stringliteral">"=g"</span> (t[1])
<a name="l00154"></a>00154                 : <span class="stringliteral">"r"</span>  (t[0]), <span class="stringliteral">"r"</span>  (t[1]));
<a name="l00155"></a>00155 <span class="preprocessor">        #else</span>
<a name="l00156"></a>00156 <span class="preprocessor"></span>        ILubyte t,*b = (ILubyte*)d;
<a name="l00157"></a>00157 <span class="preprocessor">        #define dswap(x,y) t=b[x];b[x]=b[y];b[y]=b[x];</span>
<a name="l00158"></a>00158 <span class="preprocessor"></span>        dswap(0,7);
<a name="l00159"></a>00159         dswap(1,6);
<a name="l00160"></a>00160         dswap(2,5);
<a name="l00161"></a>00161         dswap(3,4);
<a name="l00162"></a>00162 <span class="preprocessor">        #undef dswap</span>
<a name="l00163"></a>00163 <span class="preprocessor"></span><span class="preprocessor">        #endif</span>
<a name="l00164"></a>00164 <span class="preprocessor"></span>}
<a name="l00165"></a>00165 
<a name="l00166"></a>00166 
<a name="l00167"></a>00167 INLINE ILushort GetLittleUShort() {
<a name="l00168"></a>00168         ILushort s;
<a name="l00169"></a>00169         iread(&amp;s, <span class="keyword">sizeof</span>(ILushort), 1);
<a name="l00170"></a>00170 <span class="preprocessor">#ifdef __BIG_ENDIAN__</span>
<a name="l00171"></a>00171 <span class="preprocessor"></span>        iSwapUShort(&amp;s);
<a name="l00172"></a>00172 <span class="preprocessor">#endif</span>
<a name="l00173"></a>00173 <span class="preprocessor"></span>        <span class="keywordflow">return</span> s;
<a name="l00174"></a>00174 }
<a name="l00175"></a>00175 
<a name="l00176"></a>00176 INLINE ILshort GetLittleShort() {
<a name="l00177"></a>00177         ILshort s;
<a name="l00178"></a>00178         iread(&amp;s, <span class="keyword">sizeof</span>(ILshort), 1);
<a name="l00179"></a>00179 <span class="preprocessor">#ifdef __BIG_ENDIAN__</span>
<a name="l00180"></a>00180 <span class="preprocessor"></span>        iSwapShort(&amp;s);
<a name="l00181"></a>00181 <span class="preprocessor">#endif</span>
<a name="l00182"></a>00182 <span class="preprocessor"></span>        <span class="keywordflow">return</span> s;
<a name="l00183"></a>00183 }
<a name="l00184"></a>00184 
<a name="l00185"></a>00185 INLINE ILuint GetLittleUInt() {
<a name="l00186"></a>00186         ILuint i;
<a name="l00187"></a>00187         iread(&amp;i, <span class="keyword">sizeof</span>(ILuint), 1);
<a name="l00188"></a>00188 <span class="preprocessor">#ifdef __BIG_ENDIAN__</span>
<a name="l00189"></a>00189 <span class="preprocessor"></span>        iSwapUInt(&amp;i);
<a name="l00190"></a>00190 <span class="preprocessor">#endif</span>
<a name="l00191"></a>00191 <span class="preprocessor"></span>        <span class="keywordflow">return</span> i;
<a name="l00192"></a>00192 }
<a name="l00193"></a>00193 
<a name="l00194"></a>00194 INLINE ILint GetLittleInt() {
<a name="l00195"></a>00195         ILint i;
<a name="l00196"></a>00196         iread(&amp;i, <span class="keyword">sizeof</span>(ILint), 1);
<a name="l00197"></a>00197 <span class="preprocessor">#ifdef __BIG_ENDIAN__</span>
<a name="l00198"></a>00198 <span class="preprocessor"></span>        iSwapInt(&amp;i);
<a name="l00199"></a>00199 <span class="preprocessor">#endif</span>
<a name="l00200"></a>00200 <span class="preprocessor"></span>        <span class="keywordflow">return</span> i;
<a name="l00201"></a>00201 }
<a name="l00202"></a>00202 
<a name="l00203"></a>00203 INLINE ILfloat GetLittleFloat() {
<a name="l00204"></a>00204         ILfloat f;
<a name="l00205"></a>00205         iread(&amp;f, <span class="keyword">sizeof</span>(ILfloat), 1);
<a name="l00206"></a>00206 <span class="preprocessor">#ifdef __BIG_ENDIAN__</span>
<a name="l00207"></a>00207 <span class="preprocessor"></span>        iSwapFloat(&amp;f);
<a name="l00208"></a>00208 <span class="preprocessor">#endif</span>
<a name="l00209"></a>00209 <span class="preprocessor"></span>        <span class="keywordflow">return</span> f;
<a name="l00210"></a>00210 }
<a name="l00211"></a>00211 
<a name="l00212"></a>00212 INLINE ILdouble GetLittleDouble() {
<a name="l00213"></a>00213         ILdouble d;
<a name="l00214"></a>00214         iread(&amp;d, <span class="keyword">sizeof</span>(ILdouble), 1);
<a name="l00215"></a>00215 <span class="preprocessor">#ifdef __BIG_ENDIAN__</span>
<a name="l00216"></a>00216 <span class="preprocessor"></span>        iSwapDouble(&amp;d);
<a name="l00217"></a>00217 <span class="preprocessor">#endif</span>
<a name="l00218"></a>00218 <span class="preprocessor"></span>        <span class="keywordflow">return</span> d;
<a name="l00219"></a>00219 }
<a name="l00220"></a>00220 
<a name="l00221"></a>00221 
<a name="l00222"></a>00222 INLINE ILushort GetBigUShort() {
<a name="l00223"></a>00223         ILushort s;
<a name="l00224"></a>00224         iread(&amp;s, <span class="keyword">sizeof</span>(ILushort), 1);
<a name="l00225"></a>00225 <span class="preprocessor">#ifdef __LITTLE_ENDIAN__</span>
<a name="l00226"></a>00226 <span class="preprocessor"></span>        iSwapUShort(&amp;s);
<a name="l00227"></a>00227 <span class="preprocessor">#endif</span>
<a name="l00228"></a>00228 <span class="preprocessor"></span>        <span class="keywordflow">return</span> s;
<a name="l00229"></a>00229 }
<a name="l00230"></a>00230 
<a name="l00231"></a>00231 
<a name="l00232"></a>00232 INLINE ILshort GetBigShort() {
<a name="l00233"></a>00233         ILshort s;
<a name="l00234"></a>00234         iread(&amp;s, <span class="keyword">sizeof</span>(ILshort), 1);
<a name="l00235"></a>00235 <span class="preprocessor">#ifdef __LITTLE_ENDIAN__</span>
<a name="l00236"></a>00236 <span class="preprocessor"></span>        iSwapShort(&amp;s);
<a name="l00237"></a>00237 <span class="preprocessor">#endif</span>
<a name="l00238"></a>00238 <span class="preprocessor"></span>        <span class="keywordflow">return</span> s;
<a name="l00239"></a>00239 }
<a name="l00240"></a>00240 
<a name="l00241"></a>00241 
<a name="l00242"></a>00242 INLINE ILuint GetBigUInt() {
<a name="l00243"></a>00243         ILuint i;
<a name="l00244"></a>00244         iread(&amp;i, <span class="keyword">sizeof</span>(ILuint), 1);
<a name="l00245"></a>00245 <span class="preprocessor">#ifdef __LITTLE_ENDIAN__</span>
<a name="l00246"></a>00246 <span class="preprocessor"></span>        iSwapUInt(&amp;i);
<a name="l00247"></a>00247 <span class="preprocessor">#endif</span>
<a name="l00248"></a>00248 <span class="preprocessor"></span>        <span class="keywordflow">return</span> i;
<a name="l00249"></a>00249 }
<a name="l00250"></a>00250 
<a name="l00251"></a>00251 
<a name="l00252"></a>00252 INLINE ILint GetBigInt() {
<a name="l00253"></a>00253         ILint i;
<a name="l00254"></a>00254         iread(&amp;i, <span class="keyword">sizeof</span>(ILint), 1);
<a name="l00255"></a>00255 <span class="preprocessor">#ifdef __LITTLE_ENDIAN__</span>
<a name="l00256"></a>00256 <span class="preprocessor"></span>        iSwapInt(&amp;i);
<a name="l00257"></a>00257 <span class="preprocessor">#endif</span>
<a name="l00258"></a>00258 <span class="preprocessor"></span>        <span class="keywordflow">return</span> i;
<a name="l00259"></a>00259 }
<a name="l00260"></a>00260 
<a name="l00261"></a>00261 
<a name="l00262"></a>00262 INLINE ILfloat GetBigFloat() {
<a name="l00263"></a>00263         ILfloat f;
<a name="l00264"></a>00264         iread(&amp;f, <span class="keyword">sizeof</span>(ILfloat), 1);
<a name="l00265"></a>00265 <span class="preprocessor">#ifdef __LITTLE_ENDIAN__</span>
<a name="l00266"></a>00266 <span class="preprocessor"></span>        iSwapFloat(&amp;f);
<a name="l00267"></a>00267 <span class="preprocessor">#endif</span>
<a name="l00268"></a>00268 <span class="preprocessor"></span>        <span class="keywordflow">return</span> f;
<a name="l00269"></a>00269 }
<a name="l00270"></a>00270 
<a name="l00271"></a>00271 
<a name="l00272"></a>00272 INLINE ILdouble GetBigDouble() {
<a name="l00273"></a>00273         ILdouble d;
<a name="l00274"></a>00274         iread(&amp;d, <span class="keyword">sizeof</span>(ILdouble), 1);
<a name="l00275"></a>00275 <span class="preprocessor">#ifdef __LITTLE_ENDIAN__</span>
<a name="l00276"></a>00276 <span class="preprocessor"></span>        iSwapDouble(&amp;d);
<a name="l00277"></a>00277 <span class="preprocessor">#endif</span>
<a name="l00278"></a>00278 <span class="preprocessor"></span>        <span class="keywordflow">return</span> d;
<a name="l00279"></a>00279 }
<a name="l00280"></a>00280 
<a name="l00281"></a>00281 INLINE ILubyte SaveLittleUShort(ILushort s) {
<a name="l00282"></a>00282 <span class="preprocessor">#ifdef __BIG_ENDIAN__</span>
<a name="l00283"></a>00283 <span class="preprocessor"></span>        iSwapUShort(&amp;s);
<a name="l00284"></a>00284 <span class="preprocessor">#endif</span>
<a name="l00285"></a>00285 <span class="preprocessor"></span>        <span class="keywordflow">return</span> iwrite(&amp;s, <span class="keyword">sizeof</span>(ILushort), 1);
<a name="l00286"></a>00286 }
<a name="l00287"></a>00287 
<a name="l00288"></a>00288 INLINE ILubyte SaveLittleShort(ILshort s) {
<a name="l00289"></a>00289 <span class="preprocessor">#ifdef __BIG_ENDIAN__</span>
<a name="l00290"></a>00290 <span class="preprocessor"></span>        iSwapShort(&amp;s);
<a name="l00291"></a>00291 <span class="preprocessor">#endif</span>
<a name="l00292"></a>00292 <span class="preprocessor"></span>        <span class="keywordflow">return</span> iwrite(&amp;s, <span class="keyword">sizeof</span>(ILshort), 1);
<a name="l00293"></a>00293 }
<a name="l00294"></a>00294 
<a name="l00295"></a>00295 
<a name="l00296"></a>00296 INLINE ILubyte SaveLittleUInt(ILuint i) {
<a name="l00297"></a>00297 <span class="preprocessor">#ifdef __BIG_ENDIAN__</span>
<a name="l00298"></a>00298 <span class="preprocessor"></span>        iSwapUInt(&amp;i);
<a name="l00299"></a>00299 <span class="preprocessor">#endif</span>
<a name="l00300"></a>00300 <span class="preprocessor"></span>        <span class="keywordflow">return</span> iwrite(&amp;i, <span class="keyword">sizeof</span>(ILuint), 1);
<a name="l00301"></a>00301 }
<a name="l00302"></a>00302 
<a name="l00303"></a>00303 
<a name="l00304"></a>00304 INLINE ILubyte SaveLittleInt(ILint i) {
<a name="l00305"></a>00305 <span class="preprocessor">#ifdef __BIG_ENDIAN__</span>
<a name="l00306"></a>00306 <span class="preprocessor"></span>        iSwapInt(&amp;i);
<a name="l00307"></a>00307 <span class="preprocessor">#endif</span>
<a name="l00308"></a>00308 <span class="preprocessor"></span>        <span class="keywordflow">return</span> iwrite(&amp;i, <span class="keyword">sizeof</span>(ILint), 1);
<a name="l00309"></a>00309 }
<a name="l00310"></a>00310 
<a name="l00311"></a>00311 INLINE ILubyte SaveLittleFloat(ILfloat f) {
<a name="l00312"></a>00312 <span class="preprocessor">#ifdef __BIG_ENDIAN__</span>
<a name="l00313"></a>00313 <span class="preprocessor"></span>        iSwapFloat(&amp;f);
<a name="l00314"></a>00314 <span class="preprocessor">#endif</span>
<a name="l00315"></a>00315 <span class="preprocessor"></span>        <span class="keywordflow">return</span> iwrite(&amp;f, <span class="keyword">sizeof</span>(ILfloat), 1);
<a name="l00316"></a>00316 }
<a name="l00317"></a>00317 
<a name="l00318"></a>00318 
<a name="l00319"></a>00319 INLINE ILubyte SaveLittleDouble(ILdouble d) {
<a name="l00320"></a>00320 <span class="preprocessor">#ifdef __BIG_ENDIAN__</span>
<a name="l00321"></a>00321 <span class="preprocessor"></span>        iSwapDouble(&amp;d);
<a name="l00322"></a>00322 <span class="preprocessor">#endif</span>
<a name="l00323"></a>00323 <span class="preprocessor"></span>        <span class="keywordflow">return</span> iwrite(&amp;d, <span class="keyword">sizeof</span>(ILdouble), 1);
<a name="l00324"></a>00324 }
<a name="l00325"></a>00325 
<a name="l00326"></a>00326 
<a name="l00327"></a>00327 INLINE ILubyte SaveBigUShort(ILushort s) {
<a name="l00328"></a>00328 <span class="preprocessor">#ifdef __LITTLE_ENDIAN__</span>
<a name="l00329"></a>00329 <span class="preprocessor"></span>        iSwapUShort(&amp;s);
<a name="l00330"></a>00330 <span class="preprocessor">#endif</span>
<a name="l00331"></a>00331 <span class="preprocessor"></span>        <span class="keywordflow">return</span> iwrite(&amp;s, <span class="keyword">sizeof</span>(ILushort), 1);
<a name="l00332"></a>00332 }
<a name="l00333"></a>00333 
<a name="l00334"></a>00334 
<a name="l00335"></a>00335 INLINE ILubyte SaveBigShort(ILshort s) {
<a name="l00336"></a>00336 <span class="preprocessor">#ifdef __LITTLE_ENDIAN__</span>
<a name="l00337"></a>00337 <span class="preprocessor"></span>        iSwapShort(&amp;s);
<a name="l00338"></a>00338 <span class="preprocessor">#endif</span>
<a name="l00339"></a>00339 <span class="preprocessor"></span>        <span class="keywordflow">return</span> iwrite(&amp;s, <span class="keyword">sizeof</span>(ILshort), 1);
<a name="l00340"></a>00340 }
<a name="l00341"></a>00341 
<a name="l00342"></a>00342 
<a name="l00343"></a>00343 INLINE ILubyte SaveBigUInt(ILuint i) {
<a name="l00344"></a>00344 <span class="preprocessor">#ifdef __LITTLE_ENDIAN__</span>
<a name="l00345"></a>00345 <span class="preprocessor"></span>        iSwapUInt(&amp;i);
<a name="l00346"></a>00346 <span class="preprocessor">#endif</span>
<a name="l00347"></a>00347 <span class="preprocessor"></span>        <span class="keywordflow">return</span> iwrite(&amp;i, <span class="keyword">sizeof</span>(ILuint), 1);
<a name="l00348"></a>00348 }
<a name="l00349"></a>00349 
<a name="l00350"></a>00350 
<a name="l00351"></a>00351 INLINE ILubyte SaveBigInt(ILint i) {
<a name="l00352"></a>00352 <span class="preprocessor">#ifdef __LITTLE_ENDIAN__</span>
<a name="l00353"></a>00353 <span class="preprocessor"></span>        iSwapInt(&amp;i);
<a name="l00354"></a>00354 <span class="preprocessor">#endif</span>
<a name="l00355"></a>00355 <span class="preprocessor"></span>        <span class="keywordflow">return</span> iwrite(&amp;i, <span class="keyword">sizeof</span>(ILint), 1);
<a name="l00356"></a>00356 }
<a name="l00357"></a>00357 
<a name="l00358"></a>00358 
<a name="l00359"></a>00359 INLINE ILubyte SaveBigFloat(ILfloat f) {
<a name="l00360"></a>00360 <span class="preprocessor">#ifdef __LITTLE_ENDIAN__</span>
<a name="l00361"></a>00361 <span class="preprocessor"></span>        iSwapFloat(&amp;f);
<a name="l00362"></a>00362 <span class="preprocessor">#endif</span>
<a name="l00363"></a>00363 <span class="preprocessor"></span>        <span class="keywordflow">return</span> iwrite(&amp;f, <span class="keyword">sizeof</span>(ILfloat), 1);
<a name="l00364"></a>00364 }
<a name="l00365"></a>00365 
<a name="l00366"></a>00366 
<a name="l00367"></a>00367 INLINE ILubyte SaveBigDouble(ILdouble d) {
<a name="l00368"></a>00368 <span class="preprocessor">#ifdef __LITTLE_ENDIAN__</span>
<a name="l00369"></a>00369 <span class="preprocessor"></span>        iSwapDouble(&amp;d);
<a name="l00370"></a>00370 <span class="preprocessor">#endif</span>
<a name="l00371"></a>00371 <span class="preprocessor"></span>        <span class="keywordflow">return</span> iwrite(&amp;d, <span class="keyword">sizeof</span>(ILdouble), 1);
<a name="l00372"></a>00372 }
<a name="l00373"></a>00373 <span class="preprocessor">#endif//NOINLINE</span>
<a name="l00374"></a>00374 <span class="preprocessor"></span>
<a name="l00375"></a>00375 <span class="keywordtype">void</span>            EndianSwapData(<span class="keywordtype">void</span> *_Image);
<a name="l00376"></a>00376 
<a name="l00377"></a>00377 <span class="preprocessor">#endif//ENDIAN_H</span>
</pre></div></div>
<hr size="1"><address style="text-align: right;"><small>Generated on Sun Mar 8 20:01:41 2009 for DevIL by&nbsp;
<a href="http://www.doxygen.org/index.html">
<img src="doxygen.png" alt="doxygen" align="middle" border="0"></a> 1.5.6 </small></address>
</body>
</html>