bmz-internal.h

Go to the documentation of this file.
00001 
00020 #ifndef BMZ_INTERNAL_H
00021 #define BMZ_INTERNAL_H
00022 
00023 #include "bmz.h"
00024 
00025 /* Expert APIs for testing and experiement */
00026 
00027 /* MSB of flags */
00028 #define BMZ_HASH_MOD            1
00029 #define BMZ_HASH_MOD16X2        2
00030 #define BMZ_HASH_MASK16X2       3
00031 #define BMZ_HASH_MASK           4
00032 #define BMZ_HASH_MASK32X2       5
00033 
00034 HT_EXTERN(size_t)
00035 bmz_hash_mod(const void *in, size_t in_len, size_t b, size_t m);
00036 
00037 HT_EXTERN(size_t)
00038 bmz_hash_mod16x2(const void *in, size_t in_len, size_t b1, size_t b2,
00039                  size_t m1, size_t m2);
00040 
00041 HT_EXTERN(size_t)
00042 bmz_hash_mask16x2(const void *in, size_t in_len, size_t b1, size_t b2);
00043 
00044 HT_EXTERN(size_t)
00045 bmz_hash_mask(const void *in, size_t in_len, size_t b);
00046 
00047 HT_EXTERN(size_t)
00048 bmz_hash_mask32x2(const void *in, size_t in_len, size_t b1, size_t b2);
00049 
00050 HT_EXTERN(int)
00051 bmz_check_hash_mod(const void *in, size_t in_len, size_t fp_len,
00052                    size_t b, size_t m);
00053 
00054 HT_EXTERN(int)
00055 bmz_check_hash_mod16x2(const void *in, size_t in_len, size_t fp_len,
00056                        size_t b1, size_t b2, size_t m1, size_t m2);
00057 
00058 HT_EXTERN(int)
00059 bmz_check_hash_mask16x2(const void *in, size_t in_len, size_t fp_len,
00060                         size_t b1, size_t b2);
00061 
00062 HT_EXTERN(int)
00063 bmz_check_hash_mask(const void *in, size_t in_len, size_t fp_len, size_t b);
00064 
00065 HT_EXTERN(int)
00066 bmz_check_hash_mask32x2(const void *in, size_t in_len, size_t fp_len,
00067                         size_t b1, size_t b2);
00068 
00069 HT_EXTERN(void)
00070 bmz_bench_hash(const void *in, size_t in_len, unsigned type);
00071 
00072 HT_EXTERN(void)
00073 bmz_bench_lut_mod(const void *in, size_t in_len, size_t fp_len, void *mem,
00074                   size_t b, size_t m);
00075 
00076 HT_EXTERN(void)
00077 bmz_bench_lut_mod16x2(const void *in, size_t in_len, size_t fp_len, void *mem,
00078                       size_t b1, size_t b2, size_t m1, size_t m2);
00079 
00080 HT_EXTERN(void)
00081 bmz_bench_lut_mask16x2(const void *in, size_t in_len, size_t fp_len, void *mem,
00082                        size_t b1, size_t b2);
00083 
00084 HT_EXTERN(void)
00085 bmz_bench_lut_mask(const void *in, size_t in_len, size_t fp_len, void *mem,
00086                    size_t b);
00087 
00088 HT_EXTERN(void)
00089 bmz_bench_lut_mask32x2(const void *in, size_t in_len, size_t fp_len, void *mem,
00090                        size_t b1, size_t b2);
00091 
00092 /* Note: for bmz_bm_pack*, unlike in bmz_pack*, work_mem needs to be
00093  * 64-bit word aligned
00094  */
00095 
00096 HT_EXTERN(int)
00097 bmz_pack_mod(const void *in, size_t in_len, void *out, size_t *out_len_p,
00098              size_t offset, size_t fp_len, unsigned flags, void *work_mem,
00099              size_t b, size_t m);
00100 
00101 HT_EXTERN(int)
00102 bmz_pack_mod16x2(const void *in, size_t in_len, void *out, size_t *out_len_p,
00103              size_t offset, size_t fp_len, unsigned flags, void *work_mem,
00104              size_t b1, size_t b2, size_t m1, size_t m2);
00105 
00106 HT_EXTERN(int)
00107 bmz_pack_mask16x2(const void *in, size_t in_len, void *out, size_t *out_len_p,
00108                   size_t offset, size_t fp_len, unsigned flags, void *work_mem,
00109                   size_t b1, size_t b2);
00110 
00111 HT_EXTERN(int)
00112 bmz_pack_mask(const void *in, size_t in_len, void *out, size_t *out_len_p,
00113               size_t offset, size_t fp_len, unsigned flags, void *work_mem,
00114               size_t b);
00115 
00116 HT_EXTERN(int)
00117 bmz_pack_mask32x2(const void *in, size_t in_len, void *out, size_t *out_len_p,
00118                   size_t offset, size_t fp_len, unsigned flags, void *work_mem,
00119                   size_t b1, size_t b2);
00120 
00121 HT_EXTERN(int)
00122 bmz_bm_pack_mod(const void *in, size_t in_len, void *out, size_t *out_len_p,
00123                 size_t offset, size_t fp_len, void *work_mem,
00124                 size_t b, size_t m);
00125 
00126 HT_EXTERN(int)
00127 bmz_bm_pack_mod16x2(const void *in, size_t in_len, void *out, size_t *out_len_p,
00128                     size_t offset, size_t fp_len, void *work_mem,
00129                     size_t b1, size_t b2, size_t m1, size_t m2);
00130 
00131 HT_EXTERN(int)
00132 bmz_bm_pack_mask16x2(const void *in, size_t in_len, void *out,
00133                      size_t *out_len_p, size_t offset, size_t fp_len,
00134                      void *work_mem, size_t b1, size_t b2);
00135 
00136 HT_EXTERN(int)
00137 bmz_bm_pack_mask(const void *in, size_t in_len, void *out, size_t *out_len_p,
00138                  size_t offset, size_t fp_len, void *work_mem, size_t b);
00139 
00140 HT_EXTERN(int)
00141 bmz_bm_pack_mask32x2(const void *in, size_t in_len, void *out,
00142                      size_t *out_len_p, size_t offset, size_t fp_len,
00143                      void *work_mem, size_t b1, size_t b2);
00144 
00145 HT_EXTERN(size_t)
00146 bmz_bm_pack_worklen(size_t in_len, size_t fp_len);
00147 
00148 HT_EXTERN(int)
00149 bmz_bm_dump(const void *in, size_t in_len);
00150 
00151 HT_EXTERN(int)
00152 bmz_bm_unpack(const void *in, size_t in_len, void *out, size_t *out_len_p);
00153 
00154 HT_EXTERN(int)
00155 bmz_lz_pack(const void *in, size_t in_len, void *out, size_t *out_len_p,
00156             void *work_mem);
00157 
00158 HT_EXTERN(size_t)
00159 bmz_lz_pack_worklen(size_t in_len);
00160 
00161 HT_EXTERN(int)
00162 bmz_lz_unpack(const void *in, size_t in_len, void *out, size_t *out_len_p);
00163 
00164 HT_EXTERN(int)
00165 bmz_set_collision_thresh(int thresh);
00166 
00167 #endif /* BMZ_INTERNAL_H */
00168 /* vim: et sw=2
00169  */

Generated on Sat Aug 15 08:52:18 2009 for hypertable by  doxygen 1.5.9