src/endian/SDL_endian.c
/* [<][>][^][v][top][bottom][index][help] */
FUNCTIONS
This source file includes following functions.
- SDL_ReadLE16
- SDL_ReadBE16
- SDL_ReadLE32
- SDL_ReadBE32
- SDL_ReadLE64
- SDL_ReadBE64
- SDL_WriteLE16
- SDL_WriteBE16
- SDL_WriteLE32
- SDL_WriteBE32
- SDL_WriteLE64
- SDL_WriteBE64
1 /*
2 SDL - Simple DirectMedia Layer
3 Copyright (C) 1997, 1998, 1999, 2000, 2001 Sam Lantinga
4
5 This library is free software; you can redistribute it and/or
6 modify it under the terms of the GNU Library General Public
7 License as published by the Free Software Foundation; either
8 version 2 of the License, or (at your option) any later version.
9
10 This library is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13 Library General Public License for more details.
14
15 You should have received a copy of the GNU Library General Public
16 License along with this library; if not, write to the Free
17 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
18
19 Sam Lantinga
20 slouken@devolution.com
21 */
22
23 #ifdef SAVE_RCSID
24 static char rcsid =
25 "@(#) $Id: SDL_endian.c,v 1.2.2.2 2001/02/10 07:20:04 hercules Exp $";
26 #endif
27
28 /* Functions for dynamically reading and writing endian-specific values */
29
30 #include "SDL_endian.h"
31
32 Uint16 SDL_ReadLE16 (SDL_RWops *src)
/* [<][>][^][v][top][bottom][index][help] */
33 {
34 Uint16 value;
35
36 SDL_RWread(src, &value, (sizeof value), 1);
37 return(SDL_SwapLE16(value));
38 }
39 Uint16 SDL_ReadBE16 (SDL_RWops *src)
/* [<][>][^][v][top][bottom][index][help] */
40 {
41 Uint16 value;
42
43 SDL_RWread(src, &value, (sizeof value), 1);
44 return(SDL_SwapBE16(value));
45 }
46 Uint32 SDL_ReadLE32 (SDL_RWops *src)
/* [<][>][^][v][top][bottom][index][help] */
47 {
48 Uint32 value;
49
50 SDL_RWread(src, &value, (sizeof value), 1);
51 return(SDL_SwapLE32(value));
52 }
53 Uint32 SDL_ReadBE32 (SDL_RWops *src)
/* [<][>][^][v][top][bottom][index][help] */
54 {
55 Uint32 value;
56
57 SDL_RWread(src, &value, (sizeof value), 1);
58 return(SDL_SwapBE32(value));
59 }
60 Uint64 SDL_ReadLE64 (SDL_RWops *src)
/* [<][>][^][v][top][bottom][index][help] */
61 {
62 Uint64 value;
63
64 SDL_RWread(src, &value, (sizeof value), 1);
65 return(SDL_SwapLE64(value));
66 }
67 Uint64 SDL_ReadBE64 (SDL_RWops *src)
/* [<][>][^][v][top][bottom][index][help] */
68 {
69 Uint64 value;
70
71 SDL_RWread(src, &value, (sizeof value), 1);
72 return(SDL_SwapBE64(value));
73 }
74
75 int SDL_WriteLE16 (SDL_RWops *dst, Uint16 value)
/* [<][>][^][v][top][bottom][index][help] */
76 {
77 value = SDL_SwapLE16(value);
78 return(SDL_RWwrite(dst, &value, (sizeof value), 1));
79 }
80 int SDL_WriteBE16 (SDL_RWops *dst, Uint16 value)
/* [<][>][^][v][top][bottom][index][help] */
81 {
82 value = SDL_SwapBE16(value);
83 return(SDL_RWwrite(dst, &value, (sizeof value), 1));
84 }
85 int SDL_WriteLE32 (SDL_RWops *dst, Uint32 value)
/* [<][>][^][v][top][bottom][index][help] */
86 {
87 value = SDL_SwapLE32(value);
88 return(SDL_RWwrite(dst, &value, (sizeof value), 1));
89 }
90 int SDL_WriteBE32 (SDL_RWops *dst, Uint32 value)
/* [<][>][^][v][top][bottom][index][help] */
91 {
92 value = SDL_SwapBE32(value);
93 return(SDL_RWwrite(dst, &value, (sizeof value), 1));
94 }
95 int SDL_WriteLE64 (SDL_RWops *dst, Uint64 value)
/* [<][>][^][v][top][bottom][index][help] */
96 {
97 value = SDL_SwapLE64(value);
98 return(SDL_RWwrite(dst, &value, (sizeof value), 1));
99 }
100 int SDL_WriteBE64 (SDL_RWops *dst, Uint64 value)
/* [<][>][^][v][top][bottom][index][help] */
101 {
102 value = SDL_SwapBE64(value);
103 return(SDL_RWwrite(dst, &value, (sizeof value), 1));
104 }