diff options
author | unknown <aelkin@dl145j.mysql.com> | 2007-12-12 11:21:54 +0100 |
---|---|---|
committer | unknown <aelkin@dl145j.mysql.com> | 2007-12-12 11:21:54 +0100 |
commit | 230f589f51ae1696443fffddd24f481d201fdef2 (patch) | |
tree | 26a6be0967fa78ae52464242a4192ad14e512830 /include | |
parent | d27196b43bfad852175774bd8291a4c89b1ef6c9 (diff) | |
parent | 96a51b7f39be9bd664a8d242670ad1d6522c2b83 (diff) | |
download | mariadb-git-230f589f51ae1696443fffddd24f481d201fdef2.tar.gz |
Merge elkin@aelkin2.mysql.internal:MySQL/TEAM/FIXES/5.1/bug31609-conflict_detection
into dl145j.mysql.com:/tmp/andrei/bug31552
mysql-test/extra/rpl_tests/rpl_row_basic.test:
Auto merged
mysql-test/suite/rpl/r/rpl_row_basic_2myisam.result:
Auto merged
mysql-test/suite/rpl/r/rpl_row_basic_3innodb.result:
Auto merged
mysql-test/suite/rpl/r/rpl_row_tabledefs_2myisam.result:
Auto merged
mysql-test/suite/rpl/r/rpl_row_tabledefs_3innodb.result:
Auto merged
mysql-test/suite/rpl_ndb/r/rpl_row_basic_7ndb.result:
Auto merged
sql/mysql_priv.h:
Auto merged
sql/mysqld.cc:
Auto merged
sql/set_var.cc:
Auto merged
sql/set_var.h:
Auto merged
sql/share/errmsg.txt:
Auto merged
sql/sql_class.h:
Auto merged
sql/log_event.cc:
manual merge
Diffstat (limited to 'include')
-rw-r--r-- | include/my_bitmap.h | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/include/my_bitmap.h b/include/my_bitmap.h index ab69b2d671d..78642df3362 100644 --- a/include/my_bitmap.h +++ b/include/my_bitmap.h @@ -159,6 +159,22 @@ static inline my_bool bitmap_cmp(const MY_BITMAP *map1, const MY_BITMAP *map2) #define bitmap_set_all(MAP) \ (memset((MAP)->bitmap, 0xFF, 4*no_words_in_map((MAP)))) +/** + check, set and clear a bit of interest of an integer. + + If the bit is out of range @retval -1. Otherwise + bit_is_set @return 0 or 1 reflecting the bit is set or not; + bit_do_set @return 1 (bit is set 1) + bit_do_clear @return 0 (bit is cleared to 0) +*/ + +#define bit_is_set(I,B) (sizeof(I) * CHAR_BIT > (B) ? \ + (((I) & (ULL(1) << (B))) == 0 ? 0 : 1) : -1) +#define bit_do_set(I,B) (sizeof(I) * CHAR_BIT > (B) ? \ + ((I) |= (ULL(1) << (B)), 1) : -1) +#define bit_do_clear(I,B) (sizeof(I) * CHAR_BIT > (B) ? \ + ((I) &= ~(ULL(1) << (B)), 0) : -1) + #ifdef __cplusplus } #endif |