00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030 #ifndef BITMAP_H
00031 #define BITMAP_H
00032
00033 #include "w_defines.h"
00034
00035
00036
00037 #ifdef __GNUG__
00038 #pragma interface
00039 #endif
00040
00041 extern "C" int bm_first_set(const u_char* bm, int size, int start);
00042 extern "C" int bm_first_clr(const u_char* bm, int size, int start);
00043
00044 extern "C" int bm_last_set(const u_char *bm, int size, int start);
00045 extern "C" int bm_last_clr(const u_char *bm, int size, int start);
00046
00047 extern "C" int bm_num_set(const u_char* bm, int size);
00048 extern "C" int bm_num_clr(const u_char* bm, int size);
00049
00050 extern "C" bool bm_is_set(const u_char* bm, int offset);
00051 extern "C" bool bm_is_clr(const u_char* bm, int offset);
00052
00053 extern "C" void bm_zero(u_char* bm, int size);
00054 extern "C" void bm_fill(u_char* bm, int size);
00055
00056 extern "C" void bm_set(u_char* bm, int offset);
00057 extern "C" void bm_clr(u_char* bm, int offset);
00058
00059 inline bool bm_is_clr(const u_char* bm, int offset)
00060 {
00061 return !bm_is_set(bm, offset);
00062 }
00063
00064 inline int bm_num_clr(const u_char* bm, int size)
00065 {
00066 return size - bm_num_set(bm, size);
00067 }
00068
00069
00070
00071 #endif