That's a type, defined in here (as well as few other places).
It is by convention that usually a double underscore in front of a type, variable or function name implies a name that is always reserved, as defined in section 7.1.3 of the current standard (C99).