Is this the proper way to zero the first 12 bits of an address?
void *ans = (void*)((unsigned long)addr & ((0UL - 1) ^ 0xfff));
Where addr is any user process memory address..
Note this method works...I just want to know if there is a better way