00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022 #ifndef OM_HGUARD_FLINT_BTREEUTIL_H
00023 #define OM_HGUARD_FLINT_BTREEUTIL_H
00024
00025 #include "flint_types.h"
00026 #include "omassert.h"
00027
00028 #include <string.h>
00029
00030
00031
00032
00033
00034
00035
00036
00037
00038 inline int
00039 getint1(const byte *p, int c)
00040 {
00041 Assert(c >= 0);
00042 Assert(c < 65536);
00043 return p[c];
00044 }
00045
00046 inline void
00047 setint1(byte *p, int c, int x)
00048 {
00049 Assert(c >= 0);
00050 Assert(c < 65536);
00051 p[c] = x;
00052 }
00053
00054 inline int
00055 getint2(const byte *p, int c)
00056 {
00057 Assert(c >= 0);
00058 Assert(c < 65536 - 1);
00059 return p[c] << 8 | p[c + 1];
00060 }
00061
00062 inline void
00063 setint2(byte *p, int c, int x)
00064 {
00065 Assert(c >= 0);
00066 Assert(c < 65536 - 1);
00067 p[c] = x >> 8;
00068 p[c + 1] = x;
00069 }
00070
00071 inline int
00072 getint4(const byte *p, int c)
00073 {
00074 Assert(c >= 0);
00075 Assert(c < 65536 - 3);
00076 return p[c] << 24 | p[c + 1] << 16 | p[c + 2] << 8 | p[c + 3];
00077 }
00078
00079 inline void
00080 setint4(byte *p, int c, int x)
00081 {
00082 Assert(c >= 0);
00083 Assert(c < 65536 - 3);
00084 p[c] = x >> 24;
00085 p[c + 1] = x >> 16;
00086 p[c + 2] = x >> 8;
00087 p[c + 3] = x;
00088 }
00089
00090 #endif