#include static struct __AvailabilityDomain __EnabledDomain __attribute__((availability_domain(EnabledDomain))) = { __AVAILABILITY_DOMAIN_ENABLED, 0}; static struct __AvailabilityDomain __DisabledDomain __attribute__((availability_domain(DisabledDomain))) = { __AVAILABILITY_DOMAIN_DISABLED, 0}; int dynamic_domain_pred(); static struct __AvailabilityDomain __DynamicDomain __attribute__((availability_domain(DynamicDomain))) = { __AVAILABILITY_DOMAIN_DYNAMIC, dynamic_domain_pred}; #define AVAIL 0 #define UNAVAIL 1 __attribute__((availability(domain:EnabledDomain, AVAIL))) void available_in_enabled_domain(void); __attribute__((availability(domain:EnabledDomain, UNAVAIL))) void unavailable_in_enabled_domain(void); __attribute__((availability(domain:DisabledDomain, AVAIL))) void available_in_disabled_domain(void); __attribute__((availability(domain:DisabledDomain, UNAVAIL))) void unavailable_in_disabled_domain(void); __attribute__((availability(domain:DynamicDomain, AVAIL))) void available_in_dynamic_domain(void); __attribute__((availability(domain:DynamicDomain, UNAVAIL))) void unavailable_in_dynamic_domain(void);