~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to storage/myisam/myisampack.h

  • Committer: Brian Aker
  • Date: 2009-02-21 00:18:15 UTC
  • Revision ID: brian@tangent.org-20090221001815-x20e8h71e984lvs1
Completion (?) of uint conversion.

Show diffs side-by-side

added added

removed removed

Lines of Context:
11
11
 
12
12
   You should have received a copy of the GNU General Public License
13
13
   along with this program; if not, write to the Free Software
14
 
   Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA */
 
14
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
15
15
 
16
 
#ifndef PLUGIN_MYISAM_MYISAMPACK_H
17
 
#define PLUGIN_MYISAM_MYISAMPACK_H
 
16
#ifndef STORAGE_MYISAM_MYISAMPACK_H
 
17
#define STORAGE_MYISAM_MYISAMPACK_H
18
18
 
19
19
/*
20
20
  Storing of values in high byte first order.
25
25
 
26
26
/* these two are for uniformity */
27
27
#define mi_sint1korr(A) ((int8_t)(*A))
 
28
#define mi_uint1korr(A) ((uint8_t)(*A))
28
29
 
29
30
#define mi_sint2korr(A) ((int16_t) (((int16_t) (((const unsigned char*) (A))[1])) +\
30
31
                                  ((int16_t) ((int16_t) ((const char*) (A))[0]) << 8)))
128
129
 
129
130
#ifdef WORDS_BIGENDIAN
130
131
 
 
132
#define mi_float4store(T,A) { ((unsigned char*) (T))[0]= ((const unsigned char*) &A)[0];\
 
133
                              ((unsigned char*) (T))[1]= ((const unsigned char*) &A)[1];\
 
134
                              ((unsigned char*) (T))[2]= ((const unsigned char*) &A)[2];\
 
135
                              ((unsigned char*) (T))[3]= ((const unsigned char*) &A)[3]; }
 
136
 
131
137
#define mi_float4get(V,M)   { float def_temp;\
132
138
                              ((unsigned char*) &def_temp)[0]= ((const unsigned char*) (M))[0];\
133
139
                              ((unsigned char*) &def_temp)[1]= ((const unsigned char*) (M))[1];\
135
141
                              ((unsigned char*) &def_temp)[3]= ((const unsigned char*) (M))[3];\
136
142
                              (V)= def_temp; }
137
143
 
 
144
#define mi_float8store(T,V) { ((unsigned char*) (T))[0]= ((unsigned char*) &V)[0];\
 
145
                              ((unsigned char*) (T))[1]= ((unsigned char*) &V)[1];\
 
146
                              ((unsigned char*) (T))[2]= ((unsigned char*) &V)[2];\
 
147
                              ((unsigned char*) (T))[3]= ((unsigned char*) &V)[3];\
 
148
                              ((unsigned char*) (T))[4]= ((unsigned char*) &V)[4];\
 
149
                              ((unsigned char*) (T))[5]= ((unsigned char*) &V)[5];\
 
150
                              ((unsigned char*) (T))[6]= ((unsigned char*) &V)[6];\
 
151
                              ((unsigned char*) (T))[7]= ((unsigned char*) &V)[7]; }
 
152
 
138
153
#define mi_float8get(V,M)   { double def_temp;\
139
154
                              ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[0];\
140
155
                              ((unsigned char*) &def_temp)[1]= ((unsigned char*) (M))[1];\
147
162
                              (V)= def_temp; }
148
163
#else
149
164
 
 
165
#define mi_float4store(T,A) { ((unsigned char*) (T))[0]= ((unsigned char*) &A)[3];\
 
166
                              ((unsigned char*) (T))[1]= ((unsigned char*) &A)[2];\
 
167
                              ((unsigned char*) (T))[2]= ((unsigned char*) &A)[1];\
 
168
                              ((unsigned char*) (T))[3]= ((unsigned char*) &A)[0]; }
 
169
 
150
170
#define mi_float4get(V,M)   { float def_temp;\
151
171
                              ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[3];\
152
172
                              ((unsigned char*) &def_temp)[1]= ((unsigned char*) (M))[2];\
155
175
                              (V)= def_temp; }
156
176
 
157
177
#if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
 
178
#define mi_float8store(T,V) { ((unsigned char*) (T))[0]= ((unsigned char*) &V)[3];\
 
179
                              ((unsigned char*) (T))[1]= ((unsigned char*) &V)[2];\
 
180
                              ((unsigned char*) (T))[2]= ((unsigned char*) &V)[1];\
 
181
                              ((unsigned char*) (T))[3]= ((unsigned char*) &V)[0];\
 
182
                              ((unsigned char*) (T))[4]= ((unsigned char*) &V)[7];\
 
183
                              ((unsigned char*) (T))[5]= ((unsigned char*) &V)[6];\
 
184
                              ((unsigned char*) (T))[6]= ((unsigned char*) &V)[5];\
 
185
                              ((unsigned char*) (T))[7]= ((unsigned char*) &V)[4];}
158
186
 
159
187
#define mi_float8get(V,M)   { double def_temp;\
160
188
                              ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[3];\
168
196
                              (V)= def_temp; }
169
197
 
170
198
#else
 
199
#define mi_float8store(T,V) { ((unsigned char*) (T))[0]= ((unsigned char*) &V)[7];\
 
200
                              ((unsigned char*) (T))[1]= ((unsigned char*) &V)[6];\
 
201
                              ((unsigned char*) (T))[2]= ((unsigned char*) &V)[5];\
 
202
                              ((unsigned char*) (T))[3]= ((unsigned char*) &V)[4];\
 
203
                              ((unsigned char*) (T))[4]= ((unsigned char*) &V)[3];\
 
204
                              ((unsigned char*) (T))[5]= ((unsigned char*) &V)[2];\
 
205
                              ((unsigned char*) (T))[6]= ((unsigned char*) &V)[1];\
 
206
                              ((unsigned char*) (T))[7]= ((unsigned char*) &V)[0];}
171
207
 
172
208
#define mi_float8get(V,M)   { double def_temp;\
173
209
                              ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[7];\
189
225
#define mi_sizestore(T,A)   mi_int8store(T, A)
190
226
#define mi_sizekorr(T)      mi_uint8korr(T)
191
227
 
192
 
#endif /* PLUGIN_MYISAM_MYISAMPACK_H */
 
228
#endif /* STORAGE_MYISAM_MYISAMPACK_H */