Significado del subrayado doble al principio

En la biblioteca estándar (glibc) veo funciones definidas con guiones bajos dobles, como__mmap ensys/mman.h. ¿Cuál es el propósito? ¿Y cómo podemos llamar todavía una función?mmap Lo que no parece ser declarado en ninguna parte. Quiero decir que incluimossys/mman.h para eso, perosys/mman.h no declarammapse declara solo__mmap.