1*472cd20dSToomas Soome /* 2*472cd20dSToomas Soome * Copyright (c) 2019 Apple Inc. All rights reserved. 3*472cd20dSToomas Soome * 4*472cd20dSToomas Soome * Licensed under the Apache License, Version 2.0 (the "License"); 5*472cd20dSToomas Soome * you may not use this file except in compliance with the License. 6*472cd20dSToomas Soome * You may obtain a copy of the License at 7*472cd20dSToomas Soome * 8*472cd20dSToomas Soome * http://www.apache.org/licenses/LICENSE-2.0 9*472cd20dSToomas Soome * 10*472cd20dSToomas Soome * Unless required by applicable law or agreed to in writing, software 11*472cd20dSToomas Soome * distributed under the License is distributed on an "AS IS" BASIS, 12*472cd20dSToomas Soome * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*472cd20dSToomas Soome * See the License for the specific language governing permissions and 14*472cd20dSToomas Soome * limitations under the License. 15*472cd20dSToomas Soome */ 16*472cd20dSToomas Soome 17*472cd20dSToomas Soome #ifndef __mDNSFeatures_h 18*472cd20dSToomas Soome #define __mDNSFeatures_h 19*472cd20dSToomas Soome 20*472cd20dSToomas Soome #if MDNSRESPONDER_PLATFORM_APPLE 21*472cd20dSToomas Soome #include "ApplePlatformFeatures.h" 22*472cd20dSToomas Soome #endif 23*472cd20dSToomas Soome 24*472cd20dSToomas Soome // Common Features 25*472cd20dSToomas Soome 26*472cd20dSToomas Soome #undef MDNSRESPONDER_PLATFORM_COMMON 27*472cd20dSToomas Soome #define MDNSRESPONDER_PLATFORM_COMMON 1 28*472cd20dSToomas Soome 29*472cd20dSToomas Soome // Feature: DNS Push 30*472cd20dSToomas Soome // Radar: <rdar://problem/23226275> 31*472cd20dSToomas Soome // Enabled: Yes, for Apple. 32*472cd20dSToomas Soome 33*472cd20dSToomas Soome #if !defined(MDNSRESPONDER_SUPPORTS_COMMON_DNS_PUSH) 34*472cd20dSToomas Soome #if defined(MDNSRESPONDER_PLATFORM_APPLE) && MDNSRESPONDER_PLATFORM_APPLE 35*472cd20dSToomas Soome #define MDNSRESPONDER_SUPPORTS_COMMON_DNS_PUSH 1 36*472cd20dSToomas Soome #else 37*472cd20dSToomas Soome #define MDNSRESPONDER_SUPPORTS_COMMON_DNS_PUSH 0 38*472cd20dSToomas Soome #endif 39*472cd20dSToomas Soome #endif 40*472cd20dSToomas Soome 41*472cd20dSToomas Soome #define HAS_FEATURE_CAT(A, B) A ## B 42*472cd20dSToomas Soome #define HAS_FEATURE_CHECK_0 1 43*472cd20dSToomas Soome #define HAS_FEATURE_CHECK_1 1 44*472cd20dSToomas Soome #define HAS_FEATURE(X) ((X) / HAS_FEATURE_CAT(HAS_FEATURE_CHECK_, X)) 45*472cd20dSToomas Soome 46*472cd20dSToomas Soome #define MDNSRESPONDER_SUPPORTS(PLATFORM, FEATURE) \ 47*472cd20dSToomas Soome (defined(MDNSRESPONDER_PLATFORM_ ## PLATFORM) && MDNSRESPONDER_PLATFORM_ ## PLATFORM && \ 48*472cd20dSToomas Soome HAS_FEATURE(MDNSRESPONDER_SUPPORTS_ ## PLATFORM ## _ ## FEATURE)) 49*472cd20dSToomas Soome 50*472cd20dSToomas Soome #endif // __mDNSFeatures_h 51