~drizzle-trunk/drizzle/development

« back to all changes in this revision

Viewing changes to plugin/myisam/myisampack.h

pandora-build v0.71. Added check for avahi.

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 PLUGIN_MYISAM_MYISAMPACK_H
 
17
#define PLUGIN_MYISAM_MYISAMPACK_H
 
18
 
16
19
/*
17
20
  Storing of values in high byte first order.
18
21
 
22
25
 
23
26
/* these two are for uniformity */
24
27
#define mi_sint1korr(A) ((int8_t)(*A))
25
 
#define mi_uint1korr(A) ((uint8_t)(*A))
26
28
 
27
29
#define mi_sint2korr(A) ((int16_t) (((int16_t) (((const unsigned char*) (A))[1])) +\
28
30
                                  ((int16_t) ((int16_t) ((const char*) (A))[0]) << 8)))
126
128
 
127
129
#ifdef WORDS_BIGENDIAN
128
130
 
129
 
#define mi_float4store(T,A) { ((unsigned char*) (T))[0]= ((const unsigned char*) &A)[0];\
130
 
                              ((unsigned char*) (T))[1]= ((const unsigned char*) &A)[1];\
131
 
                              ((unsigned char*) (T))[2]= ((const unsigned char*) &A)[2];\
132
 
                              ((unsigned char*) (T))[3]= ((const unsigned char*) &A)[3]; }
133
 
 
134
131
#define mi_float4get(V,M)   { float def_temp;\
135
132
                              ((unsigned char*) &def_temp)[0]= ((const unsigned char*) (M))[0];\
136
133
                              ((unsigned char*) &def_temp)[1]= ((const unsigned char*) (M))[1];\
138
135
                              ((unsigned char*) &def_temp)[3]= ((const unsigned char*) (M))[3];\
139
136
                              (V)= def_temp; }
140
137
 
141
 
#define mi_float8store(T,V) { ((unsigned char*) (T))[0]= ((unsigned char*) &V)[0];\
142
 
                              ((unsigned char*) (T))[1]= ((unsigned char*) &V)[1];\
143
 
                              ((unsigned char*) (T))[2]= ((unsigned char*) &V)[2];\
144
 
                              ((unsigned char*) (T))[3]= ((unsigned char*) &V)[3];\
145
 
                              ((unsigned char*) (T))[4]= ((unsigned char*) &V)[4];\
146
 
                              ((unsigned char*) (T))[5]= ((unsigned char*) &V)[5];\
147
 
                              ((unsigned char*) (T))[6]= ((unsigned char*) &V)[6];\
148
 
                              ((unsigned char*) (T))[7]= ((unsigned char*) &V)[7]; }
149
 
 
150
138
#define mi_float8get(V,M)   { double def_temp;\
151
139
                              ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[0];\
152
140
                              ((unsigned char*) &def_temp)[1]= ((unsigned char*) (M))[1];\
159
147
                              (V)= def_temp; }
160
148
#else
161
149
 
162
 
#define mi_float4store(T,A) { ((unsigned char*) (T))[0]= ((unsigned char*) &A)[3];\
163
 
                              ((unsigned char*) (T))[1]= ((unsigned char*) &A)[2];\
164
 
                              ((unsigned char*) (T))[2]= ((unsigned char*) &A)[1];\
165
 
                              ((unsigned char*) (T))[3]= ((unsigned char*) &A)[0]; }
166
 
 
167
150
#define mi_float4get(V,M)   { float def_temp;\
168
151
                              ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[3];\
169
152
                              ((unsigned char*) &def_temp)[1]= ((unsigned char*) (M))[2];\
172
155
                              (V)= def_temp; }
173
156
 
174
157
#if defined(__FLOAT_WORD_ORDER) && (__FLOAT_WORD_ORDER == __BIG_ENDIAN)
175
 
#define mi_float8store(T,V) { ((unsigned char*) (T))[0]= ((unsigned char*) &V)[3];\
176
 
                              ((unsigned char*) (T))[1]= ((unsigned char*) &V)[2];\
177
 
                              ((unsigned char*) (T))[2]= ((unsigned char*) &V)[1];\
178
 
                              ((unsigned char*) (T))[3]= ((unsigned char*) &V)[0];\
179
 
                              ((unsigned char*) (T))[4]= ((unsigned char*) &V)[7];\
180
 
                              ((unsigned char*) (T))[5]= ((unsigned char*) &V)[6];\
181
 
                              ((unsigned char*) (T))[6]= ((unsigned char*) &V)[5];\
182
 
                              ((unsigned char*) (T))[7]= ((unsigned char*) &V)[4];}
183
158
 
184
159
#define mi_float8get(V,M)   { double def_temp;\
185
160
                              ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[3];\
193
168
                              (V)= def_temp; }
194
169
 
195
170
#else
196
 
#define mi_float8store(T,V) { ((unsigned char*) (T))[0]= ((unsigned char*) &V)[7];\
197
 
                              ((unsigned char*) (T))[1]= ((unsigned char*) &V)[6];\
198
 
                              ((unsigned char*) (T))[2]= ((unsigned char*) &V)[5];\
199
 
                              ((unsigned char*) (T))[3]= ((unsigned char*) &V)[4];\
200
 
                              ((unsigned char*) (T))[4]= ((unsigned char*) &V)[3];\
201
 
                              ((unsigned char*) (T))[5]= ((unsigned char*) &V)[2];\
202
 
                              ((unsigned char*) (T))[6]= ((unsigned char*) &V)[1];\
203
 
                              ((unsigned char*) (T))[7]= ((unsigned char*) &V)[0];}
204
171
 
205
172
#define mi_float8get(V,M)   { double def_temp;\
206
173
                              ((unsigned char*) &def_temp)[0]= ((unsigned char*) (M))[7];\
216
183
#endif /* WORDS_BIGENDIAN */
217
184
 
218
185
/* Fix to avoid warnings when sizeof(ha_rows) == sizeof(long) */
219
 
 
220
 
#ifdef BIG_TABLES
221
186
#define mi_rowstore(T,A)    mi_int8store(T, A)
222
187
#define mi_rowkorr(T)       mi_uint8korr(T)
223
 
#else
224
 
#define mi_rowstore(T,A)    { mi_int4store(T, 0);\
225
 
                              mi_int4store(((unsigned char*) (T) + 4), A); }
226
 
#define mi_rowkorr(T)       mi_uint4korr((unsigned char*) (T) + 4)
227
 
#endif
228
188
 
229
 
#if SIZEOF_OFF_T > 4
230
189
#define mi_sizestore(T,A)   mi_int8store(T, A)
231
190
#define mi_sizekorr(T)      mi_uint8korr(T)
232
 
#else
233
 
#define mi_sizestore(T,A)            \
234
 
  do {                               \
235
 
    if ((A) == HA_OFFSET_ERROR)      \
236
 
      memset((T), 255, 8);           \
237
 
    else {                           \
238
 
      mi_int4store((T), 0);          \
239
 
      mi_int4store(((T) + 4), A);    \
240
 
    }                                \
241
 
  } while (0)
242
 
#define mi_sizekorr(T)      mi_uint4korr((unsigned char*) (T) + 4)
243
 
#endif
 
191
 
 
192
#endif /* PLUGIN_MYISAM_MYISAMPACK_H */