This below code is excerpts from linux kernel fault.c.
#ifdef CONFIG_X86_64
/*
* Instruction fetch faults in the vsyscall page might need
* emulation.
*/
if (unlikely((error_code & PF_INSTR) &&
((address & ~0xfff) == VSYSCALL_ADDR))) {
if (emulate_vsyscall(regs, address))
return;
}
#endif
my question is the meaning of the line : address & ~0xfff.
what does '~' sign mean before the hexdecimal memory address 0xfff?
Thanks for reading.
Regards.