-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
4 changed files
with
564 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,34 @@ | ||
/* | ||
* Copyright (c) 2011-2014 Apple Inc. All rights reserved. | ||
* | ||
* @APPLE_APACHE_LICENSE_HEADER_START@ | ||
* | ||
* Licensed under the Apache License, Version 2.0 (the "License"); | ||
* you may not use this file except in compliance with the License. | ||
* You may obtain a copy of the License at | ||
* | ||
* http://www.apache.org/licenses/LICENSE-2.0 | ||
* | ||
* Unless required by applicable law or agreed to in writing, software | ||
* distributed under the License is distributed on an "AS IS" BASIS, | ||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
* See the License for the specific language governing permissions and | ||
* limitations under the License. | ||
* | ||
* @APPLE_APACHE_LICENSE_HEADER_END@ | ||
*/ | ||
|
||
#ifndef __OS_GENERIC_BASE__ | ||
#define __OS_GENERIC_BASE__ | ||
|
||
#if !defined(__BEGIN_DECLS) && !defined(__END_DECLS) | ||
#if defined(__cplusplus) | ||
#define __BEGIN_DECLS extern "C" { | ||
#define __END_DECLS } | ||
#else | ||
#define __BEGIN_DECLS | ||
#define __END_DECLS | ||
#endif | ||
#endif | ||
|
||
#endif /* __OS_GENERIC_BASE__ */ |
130 changes: 130 additions & 0 deletions
130
Sources/CDispatchHeaders/include/os/generic_unix_base.h
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,130 @@ | ||
/* | ||
* This source file is part of the Swift.org open source project | ||
* | ||
* Copyright (c) 2015 Apple Inc. and the Swift project authors | ||
* | ||
* Licensed under Apache License v2.0 with Runtime Library Exception | ||
* | ||
* See https://swift.org/LICENSE.txt for license information | ||
* See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors | ||
* | ||
*/ | ||
|
||
#ifndef __OS_GENERIC_UNIX_BASE__ | ||
#define __OS_GENERIC_UNIX_BASE__ | ||
|
||
#include <os/generic_base.h> | ||
|
||
#if __has_include(<sys/sysmacros.h>) | ||
#include <sys/sysmacros.h> | ||
#endif | ||
|
||
#if defined(__FreeBSD__) | ||
#include <libutil.h> | ||
#include <fcntl.h> | ||
#endif | ||
#include <sys/param.h> | ||
|
||
#if __has_include(<sys/cdefs.h>) | ||
#include <sys/cdefs.h> | ||
#endif | ||
|
||
#ifndef API_AVAILABLE | ||
#define API_AVAILABLE(...) | ||
#endif | ||
#ifndef API_DEPRECATED | ||
#define API_DEPRECATED(...) | ||
#endif | ||
#ifndef API_UNAVAILABLE | ||
#define API_UNAVAILABLE(...) | ||
#endif | ||
#ifndef API_DEPRECATED_WITH_REPLACEMENT | ||
#define API_DEPRECATED_WITH_REPLACEMENT(...) | ||
#endif | ||
|
||
#if __GNUC__ | ||
#define OS_EXPECT(x, v) __builtin_expect((x), (v)) | ||
#define OS_UNUSED __attribute__((__unused__)) | ||
#else | ||
#define OS_EXPECT(x, v) (x) | ||
#define OS_UNUSED | ||
#endif | ||
|
||
#ifndef os_likely | ||
#define os_likely(x) OS_EXPECT(!!(x), 1) | ||
#endif | ||
#ifndef os_unlikely | ||
#define os_unlikely(x) OS_EXPECT(!!(x), 0) | ||
#endif | ||
|
||
#if __has_feature(assume_nonnull) | ||
#define OS_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin") | ||
#define OS_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end") | ||
#else | ||
#define OS_ASSUME_NONNULL_BEGIN | ||
#define OS_ASSUME_NONNULL_END | ||
#endif | ||
|
||
#if __has_builtin(__builtin_assume) | ||
#define OS_COMPILER_CAN_ASSUME(expr) __builtin_assume(expr) | ||
#else | ||
#define OS_COMPILER_CAN_ASSUME(expr) ((void)(expr)) | ||
#endif | ||
|
||
#if __has_feature(attribute_availability_swift) | ||
// equivalent to __SWIFT_UNAVAILABLE from Availability.h | ||
#define OS_SWIFT_UNAVAILABLE(_msg) \ | ||
__attribute__((__availability__(swift, unavailable, message=_msg))) | ||
#else | ||
#define OS_SWIFT_UNAVAILABLE(_msg) | ||
#endif | ||
|
||
#if __has_attribute(swift_private) | ||
# define OS_REFINED_FOR_SWIFT __attribute__((__swift_private__)) | ||
#else | ||
# define OS_REFINED_FOR_SWIFT | ||
#endif | ||
|
||
#if __has_attribute(swift_name) | ||
# define OS_SWIFT_NAME(_name) __attribute__((__swift_name__(#_name))) | ||
#else | ||
# define OS_SWIFT_NAME(_name) | ||
#endif | ||
|
||
#define __OS_STRINGIFY(s) #s | ||
#define OS_STRINGIFY(s) __OS_STRINGIFY(s) | ||
#define __OS_CONCAT(x, y) x ## y | ||
#define OS_CONCAT(x, y) __OS_CONCAT(x, y) | ||
|
||
#if __has_feature(objc_fixed_enum) || __has_extension(cxx_strong_enums) | ||
#define OS_ENUM(_name, _type, ...) \ | ||
typedef enum : _type { __VA_ARGS__ } _name##_t | ||
#else | ||
#define OS_ENUM(_name, _type, ...) \ | ||
enum { __VA_ARGS__ }; typedef _type _name##_t | ||
#endif | ||
|
||
/* | ||
* Stub out misc linking and compilation attributes | ||
*/ | ||
|
||
#ifdef OS_EXPORT | ||
#undef OS_EXPORT | ||
#endif | ||
#define OS_EXPORT | ||
|
||
#ifdef OS_WARN_RESULT_NEEDS_RELEASE | ||
#undef OS_WARN_RESULT_NEEDS_RELEASE | ||
#endif | ||
|
||
#ifdef OS_WARN_RESULT | ||
#undef OS_WARN_RESULT | ||
#endif | ||
#define OS_WARN_RESULT | ||
|
||
#ifdef OS_NOTHROW | ||
#undef OS_NOTHROW | ||
#endif | ||
#define OS_NOTHROW | ||
|
||
#endif /* __OS_GENERIC_UNIX_BASE__ */ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,128 @@ | ||
/* | ||
* This source file is part of the Swift.org open source project | ||
* | ||
* Copyright (c) 2015 Apple Inc. and the Swift project authors | ||
* | ||
* Licensed under Apache License v2.0 with Runtime Library Exception | ||
* | ||
* See https://swift.org/LICENSE.txt for license information | ||
* See https://swift.org/CONTRIBUTORS.txt for the list of Swift project authors | ||
* | ||
*/ | ||
|
||
#ifndef __OS_GENERIC_WIN_BASE__ | ||
#define __OS_GENERIC_WIN_BASE__ | ||
|
||
#include <os/generic_base.h> | ||
|
||
// Unices provide `roundup` via sys/param.h | ||
#define roundup(x, y) ((((x) + ((y) - 1)) / (y)) * (y)) | ||
// Unices provide `MAX` via sys/param.h | ||
#define MAX(a,b) (((a)>(b))?(a):(b)) | ||
// Unices provide `MIN` via sys/param.h | ||
#define MIN(a,b) (((a)<(b))?(a):(b)) | ||
// Unices provide `howmany` via sys/param.h | ||
#define howmany(x, y) (((x) + ((y) - 1)) / (y)) | ||
|
||
#ifndef HAVE_MODE_T | ||
typedef int mode_t; | ||
#endif | ||
typedef void pthread_attr_t; | ||
|
||
#ifndef API_AVAILABLE | ||
#define API_AVAILABLE(...) | ||
#endif | ||
#ifndef API_DEPRECATED | ||
#define API_DEPRECATED(...) | ||
#endif | ||
#ifndef API_UNAVAILABLE | ||
#define API_UNAVAILABLE(...) | ||
#endif | ||
#ifndef API_DEPRECATED_WITH_REPLACEMENT | ||
#define API_DEPRECATED_WITH_REPLACEMENT(...) | ||
#endif | ||
|
||
#if !defined(__has_attribute) | ||
#define __has_attribute(attibute) 0 | ||
#endif | ||
|
||
#if !defined(__has_builtin) | ||
#define __has_builtin(builtin) 0 | ||
#endif | ||
|
||
#if !defined(__has_feature) | ||
#define __has_feature(feature) 0 | ||
#endif | ||
|
||
#if __has_builtin(__builtin_expect) | ||
#define OS_EXPECT(expression, value) __builtin_expect((expression), (value)) | ||
#else | ||
#define OS_EXPECT(expression, value) (expression) | ||
#endif | ||
|
||
#if __has_attribute(__unused__) | ||
#define OS_UNUSED __attribute__((__unused__)) | ||
#else | ||
#define OS_UNUSED | ||
#endif | ||
|
||
#ifndef os_likely | ||
#define os_likely(expression) OS_EXPECT(!!(expression), 1) | ||
#endif | ||
#ifndef os_unlikely | ||
#define os_unlikely(expression) OS_EXPECT(!!(expression), 0) | ||
#endif | ||
|
||
#if __has_feature(assume_nonnull) | ||
#define OS_ASSUME_NONNULL_BEGIN _Pragma("clang assume_nonnull begin") | ||
#define OS_ASSUME_NONNULL_END _Pragma("clang assume_nonnull end") | ||
#else | ||
#define OS_ASSUME_NONNULL_BEGIN | ||
#define OS_ASSUME_NONNULL_END | ||
#endif | ||
|
||
#if __has_builtin(__builtin_assume) | ||
#define OS_COMPILER_CAN_ASSUME(expr) __builtin_assume(expr) | ||
#else | ||
#define OS_COMPILER_CAN_ASSUME(expr) ((void)(expr)) | ||
#endif | ||
|
||
#if __has_feature(attribute_availability_swift) | ||
// equivalent to __SWIFT_UNAVAILABLE from Availability.h | ||
#define OS_SWIFT_UNAVAILABLE(msg) \ | ||
__attribute__((__availability__(swift, unavailable, message = msg))) | ||
#else | ||
#define OS_SWIFT_UNAVAILABLE(msg) | ||
#endif | ||
|
||
#define __OS_STRINGIFY(s) #s | ||
#define OS_STRINGIFY(s) __OS_STRINGIFY(s) | ||
|
||
#if __has_feature(objc_fixed_enum) || __has_extension(cxx_strong_enums) | ||
#define OS_ENUM(name, type, ...) typedef enum : type { __VA_ARGS__ } name##_t | ||
#else | ||
#define OS_ENUM(name, type, ...) \ | ||
enum { __VA_ARGS__ }; \ | ||
typedef type name##_t | ||
#endif | ||
|
||
#ifdef OS_EXPORT | ||
#undef OS_EXPORT | ||
#endif | ||
#define OS_EXPORT __declspec(dllexport) | ||
|
||
#ifdef OS_WARN_RESULT_NEEDS_RELEASE | ||
#undef OS_WARN_RESULT_NEEDS_RELEASE | ||
#endif | ||
|
||
#ifdef OS_WARN_RESULT | ||
#undef OS_WARN_RESULT | ||
#endif | ||
#define OS_WARN_RESULT | ||
|
||
#ifdef OS_NOTHROW | ||
#undef OS_NOTHROW | ||
#endif | ||
#define OS_NOTHROW | ||
|
||
#endif |
Oops, something went wrong.