If addr is NULL, then the kernel chooses the address at which to create the mapping; this is the most portable method of
creating a new mapping. If addr is not NULL, then the kernel takes it as a hint about where to place the mapping; on
Linux, the mapping will be created at a nearby page boundary. The address of the new mapping is returned as the result of
the call.