version 1.11, 2015/09/05 11:28:35 |
version 1.12, 2015/10/17 21:48:42 |
|
|
char *bfname; /* btree file name */ |
char *bfname; /* btree file name */ |
} RECNOINFO; |
} RECNOINFO; |
|
|
#ifdef __DBINTERFACE_PRIVATE |
|
/* |
|
* Little endian <==> big endian 32-bit swap macros. |
|
* M_32_SWAP swap a memory location |
|
* P_32_SWAP swap a referenced memory location |
|
* P_32_COPY swap from one location to another |
|
*/ |
|
#define M_32_SWAP(a) { \ |
|
u_int32_t _tmp = a; \ |
|
((char *)&a)[0] = ((char *)&_tmp)[3]; \ |
|
((char *)&a)[1] = ((char *)&_tmp)[2]; \ |
|
((char *)&a)[2] = ((char *)&_tmp)[1]; \ |
|
((char *)&a)[3] = ((char *)&_tmp)[0]; \ |
|
} |
|
#define P_32_SWAP(a) { \ |
|
u_int32_t _tmp = *(u_int32_t *)a; \ |
|
((char *)a)[0] = ((char *)&_tmp)[3]; \ |
|
((char *)a)[1] = ((char *)&_tmp)[2]; \ |
|
((char *)a)[2] = ((char *)&_tmp)[1]; \ |
|
((char *)a)[3] = ((char *)&_tmp)[0]; \ |
|
} |
|
#define P_32_COPY(a, b) { \ |
|
((char *)&(b))[0] = ((char *)&(a))[3]; \ |
|
((char *)&(b))[1] = ((char *)&(a))[2]; \ |
|
((char *)&(b))[2] = ((char *)&(a))[1]; \ |
|
((char *)&(b))[3] = ((char *)&(a))[0]; \ |
|
} |
|
|
|
/* |
|
* Little endian <==> big endian 16-bit swap macros. |
|
* M_16_SWAP swap a memory location |
|
* P_16_SWAP swap a referenced memory location |
|
* P_16_COPY swap from one location to another |
|
*/ |
|
#define M_16_SWAP(a) { \ |
|
u_int16_t _tmp = a; \ |
|
((char *)&a)[0] = ((char *)&_tmp)[1]; \ |
|
((char *)&a)[1] = ((char *)&_tmp)[0]; \ |
|
} |
|
#define P_16_SWAP(a) { \ |
|
u_int16_t _tmp = *(u_int16_t *)a; \ |
|
((char *)a)[0] = ((char *)&_tmp)[1]; \ |
|
((char *)a)[1] = ((char *)&_tmp)[0]; \ |
|
} |
|
#define P_16_COPY(a, b) { \ |
|
((char *)&(b))[0] = ((char *)&(a))[1]; \ |
|
((char *)&(b))[1] = ((char *)&(a))[0]; \ |
|
} |
|
#endif |
|
|
|
__BEGIN_DECLS |
__BEGIN_DECLS |
DB *dbopen(const char *, int, int, DBTYPE, const void *); |
DB *dbopen(const char *, int, int, DBTYPE, const void *); |
__END_DECLS |
__END_DECLS |