O que significa sublinhado duplo (__const) em C?

extern int ether_hostton (__const char *__hostname, struct ether_addr *__addr)
 __THROW;

Eu encontrei a definição da função acima em /usr/include/netinet/ether.h em uma caixa Linux.

Alguém pode explicar o que os sublinhados duplos significam na frente de const (palavra-chave), addr (identificador) e, por fim, __THROW.

questionAnswers(4)

yourAnswerToTheQuestion