Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void mem_set_bits(char* base, uint32_t start_bit, uint32_t end_bit)
- {
- char s_bit_under = start_bit & 0x7;
- char e_bit_over = (end_bit+1 & 0x7);
- char start = (start_bit + 7)>>3;
- char end = (end_bit+1)>>3;
- //If bits are not byte aligned for the start
- if((start_bit>>3)==end)
- base[start_bit>>3] |= ((1 << e_bit_over - s_bit_under)-1) << s_bit_under;
- else
- {
- if(s_bit_under)
- base[start_bit>>3] |= ((unsigned char)-1) << s_bit_under;
- if(e_bit_over)
- base[end] |= (1<<e_bit_over)-1;
- }
- for(uint32_t c = start; c<end; c++)
- base[c] = (unsigned char)-1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement