Flutter Engine
The Flutter Engine
utils_macos.h
Go to the documentation of this file.
1// Copyright (c) 2012, the Dart project authors. Please see the AUTHORS file
2// for details. All rights reserved. Use of this source code is governed by a
3// BSD-style license that can be found in the LICENSE file.
4
5#ifndef RUNTIME_PLATFORM_UTILS_MACOS_H_
6#define RUNTIME_PLATFORM_UTILS_MACOS_H_
7
8#if !defined(RUNTIME_PLATFORM_UTILS_H_)
9#error Do not include utils_macos.h directly; use utils.h instead.
10#endif
11
12#include <AvailabilityMacros.h>
13#include <libkern/OSByteOrder.h> // NOLINT
14
15namespace dart {
16
17namespace internal {
18
19// Returns the running system's Mac OS X version which matches the encoding
20// of MAC_OS_X_VERSION_* defines in AvailabilityMacros.h
21int32_t MacOSXVersion();
22
23} // namespace internal
24
25// Run-time OS version checks.
26#define DEFINE_IS_OS_FUNCS(VERSION) \
27 inline bool IsAtLeastOS##VERSION() { \
28 return (MAC_OS_X_VERSION_MIN_REQUIRED >= MAC_OS_X_VERSION_##VERSION) || \
29 (internal::MacOSXVersion() >= MAC_OS_X_VERSION_##VERSION); \
30 }
31
33
34// Returns |nullptr| if the current Mac OS X version satisfies minimum required
35// Mac OS X version set during compilation (MAC_OS_X_VERSION_MIN_REQUIRED).
36//
37// Otherwise returns a malloc allocated error string with human readable
38// current and expected versions.
40
41inline uint16_t Utils::HostToBigEndian16(uint16_t value) {
42 return OSSwapHostToBigInt16(value);
43}
44
45inline uint32_t Utils::HostToBigEndian32(uint32_t value) {
46 return OSSwapHostToBigInt32(value);
47}
48
49inline uint64_t Utils::HostToBigEndian64(uint64_t value) {
50 return OSSwapHostToBigInt64(value);
51}
52
53inline uint16_t Utils::HostToLittleEndian16(uint16_t value) {
54 return OSSwapHostToLittleInt16(value);
55}
56
57inline uint32_t Utils::HostToLittleEndian32(uint32_t value) {
58 return OSSwapHostToLittleInt32(value);
59}
60
61inline uint64_t Utils::HostToLittleEndian64(uint64_t value) {
62 return OSSwapHostToLittleInt64(value);
63}
64
65inline char* Utils::StrError(int err, char* buffer, size_t bufsize) {
66 if (strerror_r(err, buffer, bufsize) != 0) {
67 snprintf(buffer, bufsize, "%s", "strerror_r failed");
68 }
69 return buffer;
70}
71
72} // namespace dart
73
74#endif // RUNTIME_PLATFORM_UTILS_MACOS_H_
static uint64_t HostToBigEndian64(uint64_t host_value)
Definition: utils_android.h:24
static uint64_t HostToLittleEndian64(uint64_t host_value)
Definition: utils_android.h:36
static uint16_t HostToLittleEndian16(uint16_t host_value)
Definition: utils_android.h:28
static char * StrError(int err, char *buffer, size_t bufsize)
Definition: utils_android.h:40
static uint32_t HostToLittleEndian32(uint32_t host_value)
Definition: utils_android.h:32
static uint32_t HostToBigEndian32(uint32_t host_value)
Definition: utils_android.h:20
uint8_t value
int32_t MacOSXVersion()
Definition: dart_vm.cc:33
char * CheckIsAtLeastMinRequiredMacOSVersion()
DEF_SWITCHES_START aot vmservice shared library Name of the *so containing AOT compiled Dart assets for launching the service isolate vm snapshot The VM snapshot data that will be memory mapped as read only SnapshotAssetPath must be present isolate snapshot The isolate snapshot data that will be memory mapped as read only SnapshotAssetPath must be present cache dir Path to the cache directory This is different from the persistent_cache_path in embedder which is used for Skia shader cache icu native lib Path to the library file that exports the ICU data vm service The hostname IP address on which the Dart VM Service should be served If not defaults to or::depending on whether ipv6 is specified vm service A custom Dart VM Service port The default is to pick a randomly available open port disable vm Disable the Dart VM Service The Dart VM Service is never available in release mode disable vm service Disable mDNS Dart VM Service publication Bind to the IPv6 localhost address for the Dart VM Service Ignored if vm service host is set endless trace buffer
Definition: switches.h:126
#define DEFINE_IS_OS_FUNCS(VERSION)
Definition: utils_macos.h:26