~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/myisam/myisampack.h

  • Committer: Eric Day
  • Date: 2009-10-31 21:53:33 UTC
  • mfrom: (1200 staging)
  • mto: This revision was merged to the branch mainline in revision 1202.
  • Revision ID: eday@oddments.org-20091031215333-j94bjoanwmi68p6f
Merged trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
13
13
   along with this program; if not, write to the Free Software
14
14
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA */
15
15
 
16
 
#ifndef STORAGE_MYISAM_MYISAMPACK_H
17
 
#define STORAGE_MYISAM_MYISAMPACK_H
 
16
#ifndef PLUGIN_MYISAM_MYISAMPACK_H
 
17
#define PLUGIN_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))
29
28
 
30
29
#define mi_sint2korr(A) ((int16_t) (((int16_t) (((const unsigned char*) (A))[1])) +\
31
30
                                  ((int16_t) ((int16_t) ((const char*) (A))[0]) << 8)))
129
128
 
130
129
#ifdef WORDS_BIGENDIAN
131
130
 
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
 
 
137
131
#define mi_float4get(V,M)   { float def_temp;\
138
132
                              ((unsigned char*) &def_temp)[0]= ((const unsigned char*) (M))[0];\
139
133
                              ((unsigned char*) &def_temp)[1]= ((const unsigned char*) (M))[1];\
141
135
                              ((unsigned char*) &def_temp)[3]= ((const unsigned char*) (M))[3];\
142
136
                              (V)= def_temp; }
143
137
 
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
 
 
153
138
#define mi_float8get(V,M)   { double def_temp;\
154
139
                              ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[0];\
155
140
                              ((unsigned char*) &def_temp)[1]= ((unsigned char*) (M))[1];\
162
147
                              (V)= def_temp; }
163
148
#else
164
149
 
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
 
 
170
150
#define mi_float4get(V,M)   { float def_temp;\
171
151
                              ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[3];\
172
152
                              ((unsigned char*) &def_temp)[1]= ((unsigned char*) (M))[2];\
175
155
                              (V)= def_temp; }
176
156
 
177
157
#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];}
186
158
 
187
159
#define mi_float8get(V,M)   { double def_temp;\
188
160
                              ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[3];\
196
168
                              (V)= def_temp; }
197
169
 
198
170
#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];}
207
171
 
208
172
#define mi_float8get(V,M)   { double def_temp;\
209
173
                              ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[7];\
225
189
#define mi_sizestore(T,A)   mi_int8store(T, A)
226
190
#define mi_sizekorr(T)      mi_uint8korr(T)
227
191
 
228
 
#endif /* STORAGE_MYISAM_MYISAMPACK_H */
 
192
#endif /* PLUGIN_MYISAM_MYISAMPACK_H */