/*  DO NOT EDIT THIS FILE.

    It has been auto-edited by fixincludes from:

	"fixinc/tests/inc/AvailabilityInternal.h"

    This had to be done to correct non-standard usages in the
    original, manufacturer supplied header file.  */



#if defined( DARWIN_AVAILABILITYINTERNAL_CHECK )
#if defined(__has_attribute)
  #if __has_attribute(availability)
#define __API_A(x) __attribute__((availability(__API_AVAILABLE_PLATFORM_##x)))
  #else
    #define __API_A(x)
  #endif
#else
    #define __API_A(x)
#endif
#if defined(__has_attribute)
  #if __has_attribute(availability)
#define __API_D(msg,x) __attribute__((availability(__API_DEPRECATED_PLATFORM_##x,message=msg)))
  #else
    #define __API_D(msg,x)
  #endif
#else
    #define __API_D(msg,x)
#endif
#endif  /* DARWIN_AVAILABILITYINTERNAL_CHECK */
