Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
weixin_43355755
engine
提交
51e07a50
E
engine
项目概览
weixin_43355755
/
engine
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
engine
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
未验证
提交
51e07a50
编写于
7月 14, 2021
作者:
K
Kaushik Iska
提交者:
GitHub
7月 14, 2021
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
[fuchsia] Use FFI to get System clockMonotonic (#27353)
上级
02202569
变更
17
隐藏空白更改
内联
并排
Showing
17 changed file
with
222 addition
and
7 deletion
+222
-7
ci/licenses_golden/licenses_flutter
ci/licenses_golden/licenses_flutter
+4
-0
shell/platform/fuchsia/dart-pkg/zircon/BUILD.gn
shell/platform/fuchsia/dart-pkg/zircon/BUILD.gn
+1
-0
shell/platform/fuchsia/dart-pkg/zircon/lib/src/init.dart
shell/platform/fuchsia/dart-pkg/zircon/lib/src/init.dart
+27
-0
shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart
shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart
+9
-1
shell/platform/fuchsia/dart-pkg/zircon/lib/zircon.dart
shell/platform/fuchsia/dart-pkg/zircon/lib/zircon.dart
+4
-0
shell/platform/fuchsia/dart-pkg/zircon_ffi/BUILD.gn
shell/platform/fuchsia/dart-pkg/zircon_ffi/BUILD.gn
+23
-0
shell/platform/fuchsia/dart-pkg/zircon_ffi/clock.cc
shell/platform/fuchsia/dart-pkg/zircon_ffi/clock.cc
+11
-0
shell/platform/fuchsia/dart-pkg/zircon_ffi/clock.h
shell/platform/fuchsia/dart-pkg/zircon_ffi/clock.h
+22
-0
shell/platform/fuchsia/dart-pkg/zircon_ffi/lib/zircon_ffi.dart
.../platform/fuchsia/dart-pkg/zircon_ffi/lib/zircon_ffi.dart
+36
-0
shell/platform/fuchsia/dart-pkg/zircon_ffi/pubspec.yaml
shell/platform/fuchsia/dart-pkg/zircon_ffi/pubspec.yaml
+40
-0
shell/platform/fuchsia/dart_runner/BUILD.gn
shell/platform/fuchsia/dart_runner/BUILD.gn
+13
-2
shell/platform/fuchsia/dart_runner/kernel/libraries.json
shell/platform/fuchsia/dart_runner/kernel/libraries.json
+4
-1
shell/platform/fuchsia/dart_runner/kernel/libraries.yaml
shell/platform/fuchsia/dart_runner/kernel/libraries.yaml
+3
-0
shell/platform/fuchsia/flutter/BUILD.gn
shell/platform/fuchsia/flutter/BUILD.gn
+13
-2
shell/platform/fuchsia/flutter/kernel/libraries.json
shell/platform/fuchsia/flutter/kernel/libraries.json
+4
-1
shell/platform/fuchsia/flutter/kernel/libraries.yaml
shell/platform/fuchsia/flutter/kernel/libraries.yaml
+3
-0
tools/fuchsia/build_fuchsia_artifacts.py
tools/fuchsia/build_fuchsia_artifacts.py
+5
-0
未找到文件。
ci/licenses_golden/licenses_flutter
浏览文件 @
51e07a50
...
...
@@ -1318,6 +1318,7 @@ FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/fuchsia/sdk_ext/fuchsia.h
FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle.dart
FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_disposition.dart
FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/handle_waiter.dart
FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/init.dart
FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart
FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/lib/zircon.dart
FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/handle.cc
...
...
@@ -1330,6 +1331,9 @@ FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/natives.cc
FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/natives.h
FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.cc
FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon/sdk_ext/system.h
FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/clock.cc
FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/clock.h
FILE: ../../../flutter/shell/platform/fuchsia/dart-pkg/zircon_ffi/lib/zircon_ffi.dart
FILE: ../../../flutter/shell/platform/fuchsia/dart/compiler.dart
FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/builtin_libraries.cc
FILE: ../../../flutter/shell/platform/fuchsia/dart_runner/builtin_libraries.h
...
...
shell/platform/fuchsia/dart-pkg/zircon/BUILD.gn
浏览文件 @
51e07a50
...
...
@@ -30,6 +30,7 @@ source_set("zircon") {
"$fuchsia_sdk_root/pkg:async-loop-cpp",
"$fuchsia_sdk_root/pkg:fdio",
"$fuchsia_sdk_root/pkg:zx",
"../zircon_ffi",
"//flutter/fml",
"//flutter/third_party/tonic",
]
...
...
shell/platform/fuchsia/dart-pkg/zircon/lib/src/init.dart
0 → 100644
浏览文件 @
51e07a50
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
part of
zircon
;
final
_kLibZirconDartPath
=
'/pkg/lib/libzircon_ffi.so'
;
class
_Bindings
{
static
ZirconFFIBindings
?
_bindings
;
@pragma
(
'vm:entry-point'
)
static
ZirconFFIBindings
?
get
()
{
// For soft-transition until libzircon_ffi.so rolls into GI.
if
(!
File
(
_kLibZirconDartPath
).
existsSync
())
{
return
null
;
}
if
(
_bindings
==
null
)
{
final
_dylib
=
DynamicLibrary
.
open
(
_kLibZirconDartPath
);
_bindings
=
ZirconFFIBindings
(
_dylib
);
}
return
_bindings
;
}
}
final
ZirconFFIBindings
?
zirconFFIBindings
=
_Bindings
.
get
();
shell/platform/fuchsia/dart-pkg/zircon/lib/src/system.dart
浏览文件 @
51e07a50
...
...
@@ -236,7 +236,15 @@ class System extends NativeFieldWrapperClass1 {
static
MapResult
vmoMap
(
Handle
vmo
)
native
'System_VmoMap'
;
// Time operations.
static
int
clockGetMonotonic
()
native
'System_ClockGetMonotonic'
;
static
int
clockGetMonotonic
()
{
if
(
zirconFFIBindings
==
null
)
{
return
_nativeClockGetMonotonic
();
}
else
{
return
zirconFFIBindings
!.
zircon_dart_clock_get_monotonic
();
}
}
static
int
_nativeClockGetMonotonic
()
native
'System_ClockGetMonotonic'
;
// TODO(edcoyne): Remove this, it is required to safely do an API transition across repos.
static
int
reboot
()
{
return
-
2
;
/*ZX_ERR_NOT_SUPPORTED*/
}
...
...
shell/platform/fuchsia/dart-pkg/zircon/lib/zircon.dart
浏览文件 @
51e07a50
...
...
@@ -5,10 +5,14 @@
library
zircon
;
import
'dart:convert'
show
utf8
;
import
'dart:ffi'
;
import
'dart:io'
;
import
'dart:nativewrappers'
;
import
'dart:typed_data'
;
import
'dart:zircon_ffi'
;
part
'src/handle.dart'
;
part
'src/handle_disposition.dart'
;
part
'src/handle_waiter.dart'
;
part
'src/init.dart'
;
part
'src/system.dart'
;
shell/platform/fuchsia/dart-pkg/zircon_ffi/BUILD.gn
0 → 100644
浏览文件 @
51e07a50
# Copyright 2013 The Flutter Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
import("//build/fuchsia/sdk.gni")
config("zircon_ffi_config") {
include_dirs = [ "." ]
}
shared_library("zircon_ffi") {
public_configs = [ ":zircon_ffi_config" ]
sources = [
"clock.cc",
"clock.h",
]
deps = [
"$fuchsia_sdk_root/pkg:zx",
"//third_party/dart/runtime:dart_api",
]
}
shell/platform/fuchsia/dart-pkg/zircon_ffi/clock.cc
0 → 100644
浏览文件 @
51e07a50
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "clock.h"
#include <zircon/syscalls.h>
uint64_t
zircon_dart_clock_get_monotonic
()
{
return
zx_clock_get_monotonic
();
}
shell/platform/fuchsia/dart-pkg/zircon_ffi/clock.h
0 → 100644
浏览文件 @
51e07a50
// Copyright 2013 The Flutter Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#ifndef FLUTTER_SHELL_PLATFORM_FUCHSIA_DART_PKG_ZIRCON_SDK_FFI_CLOCK_H_
#define FLUTTER_SHELL_PLATFORM_FUCHSIA_DART_PKG_ZIRCON_SDK_FFI_CLOCK_H_
#include <stdint.h>
#define ZIRCON_FFI_EXPORT __attribute__((visibility("default")))
#ifdef __cplusplus
extern
"C"
{
#endif
ZIRCON_FFI_EXPORT
uint64_t
zircon_dart_clock_get_monotonic
();
#ifdef __cplusplus
}
#endif
#endif // FLUTTER_SHELL_PLATFORM_FUCHSIA_DART_PKG_ZIRCON_SDK_FFI_CLOCK_H_
shell/platform/fuchsia/dart-pkg/zircon_ffi/lib/zircon_ffi.dart
0 → 100644
浏览文件 @
51e07a50
// AUTO GENERATED FILE, DO NOT EDIT.
//
// Generated by `package:ffigen`.
import
'dart:ffi'
as
ffi
;
/// Bindings for `dart:zircon_ffi`.
class
ZirconFFIBindings
{
/// Holds the symbol lookup function.
final
ffi
.
Pointer
<
T
>
Function
<
T
extends
ffi
.
NativeType
>(
String
symbolName
)
_lookup
;
/// The symbols are looked up in [dynamicLibrary].
ZirconFFIBindings
(
ffi
.
DynamicLibrary
dynamicLibrary
)
:
_lookup
=
dynamicLibrary
.
lookup
;
/// The symbols are looked up with [lookup].
ZirconFFIBindings
.
fromLookup
(
ffi
.
Pointer
<
T
>
Function
<
T
extends
ffi
.
NativeType
>(
String
symbolName
)
lookup
)
:
_lookup
=
lookup
;
int
zircon_dart_clock_get_monotonic
()
{
return
_zircon_dart_clock_get_monotonic
();
}
late
final
_zircon_dart_clock_get_monotonic_ptr
=
_lookup
<
ffi
.
NativeFunction
<
_c_zircon_dart_clock_get_monotonic
>>(
'zircon_dart_clock_get_monotonic'
);
late
final
_dart_zircon_dart_clock_get_monotonic
_zircon_dart_clock_get_monotonic
=
_zircon_dart_clock_get_monotonic_ptr
.
asFunction
<
_dart_zircon_dart_clock_get_monotonic
>();
}
typedef
_c_zircon_dart_clock_get_monotonic
=
ffi
.
Uint64
Function
();
typedef
_dart_zircon_dart_clock_get_monotonic
=
int
Function
();
shell/platform/fuchsia/dart-pkg/zircon_ffi/pubspec.yaml
0 → 100644
浏览文件 @
51e07a50
name
:
zircon_ffi
environment
:
sdk
:
'
>=2.12.0
<3.0.0'
dependencies
:
ffi
:
^1.0.0
dev_dependencies
:
ffigen
:
^3.0.0
lints
:
^1.0.1
ffigen
:
name
:
ZirconFFIBindings
description
:
Bindings for `dart:zircon_ffi`.
output
:
'
lib/zircon_ffi.dart'
headers
:
entry-points
:
-
'
clock.h'
functions
:
include
:
-
'
zircon_dart_.*'
macros
:
include
:
-
nothing
enums
:
include
:
-
nothing
unnamed-enums
:
include
:
-
nothing
globals
:
include
:
-
nothing
structs
:
include
:
-
nothing
dependency-only
:
opaque
compiler-opts
:
-
'
-I../../../../../../../third_party/dart/runtime'
shell/platform/fuchsia/dart_runner/BUILD.gn
浏览文件 @
51e07a50
...
...
@@ -10,6 +10,14 @@ import("//flutter/tools/fuchsia/dart.gni")
import("//flutter/tools/fuchsia/fuchsia_archive.gni")
import("//flutter/tools/fuchsia/fuchsia_libs.gni")
# Loaded via FFI
_common_runner_libs = common_libs + [
{
name = "libzircon_ffi.so"
path = rebase_path("$root_out_dir")
},
]
template("runner") {
assert(defined(invoker.product), "The parameter 'product' must be defined")
assert(defined(invoker.output_name),
...
...
@@ -40,6 +48,9 @@ template("runner") {
defines = extra_defines
# For `libzircon_ffi` see _common_runner_libs.
public_deps = [ "../dart-pkg/zircon_ffi:zircon_ffi" ]
dart_deps = []
if (!invoker.product) {
dart_deps += [
...
...
@@ -151,7 +162,7 @@ template("aot_runner_package") {
cmx_file = rebase_path("meta/dart_aot${product_suffix}_runner.cmx")
libraries =
common
_libs
libraries =
_common_runner
_libs
resources = []
if (!invoker.product) {
...
...
@@ -212,7 +223,7 @@ template("jit_runner_package") {
cmx_file = rebase_path("meta/dart_jit${product_suffix}_runner.cmx")
cml_file = rebase_path("meta/dart_jit${product_suffix}_runner.cml")
libraries =
common
_libs
libraries =
_common_runner
_libs
resources = [
{
...
...
shell/platform/fuchsia/dart_runner/kernel/libraries.json
浏览文件 @
51e07a50
{
"comment:0"
:
"NOTE: THIS FILE IS GENERATED. DO NOT EDIT."
,
"comment:1"
:
"Instead modify 'shell/platform/fuchsia/dart_runner/kernel/libraries.yaml' and follow the instructions therein."
,
"comment:1"
:
"Instead modify '
./flutter/
shell/platform/fuchsia/dart_runner/kernel/libraries.yaml' and follow the instructions therein."
,
"dart_runner"
:
{
"libraries"
:
{
"_builtin"
:
{
...
...
@@ -152,6 +152,9 @@
"zircon"
:
{
"uri"
:
"../../dart-pkg/zircon/lib/zircon.dart"
},
"zircon_ffi"
:
{
"uri"
:
"../../dart-pkg/zircon_ffi/lib/zircon_ffi.dart"
},
"fuchsia"
:
{
"uri"
:
"../../dart-pkg/fuchsia/lib/fuchsia.dart"
},
...
...
shell/platform/fuchsia/dart_runner/kernel/libraries.yaml
浏览文件 @
51e07a50
...
...
@@ -152,6 +152,9 @@ dart_runner:
zircon
:
uri
:
"
../../dart-pkg/zircon/lib/zircon.dart"
zircon_ffi
:
uri
:
"
../../dart-pkg/zircon_ffi/lib/zircon_ffi.dart"
fuchsia
:
uri
:
"
../../dart-pkg/fuchsia/lib/fuchsia.dart"
...
...
shell/platform/fuchsia/flutter/BUILD.gn
浏览文件 @
51e07a50
...
...
@@ -151,6 +151,14 @@ runner_sources("flutter_runner_sources_product") {
product = true
}
# Loaded via FFI
_common_runner_libs = common_libs + [
{
name = "libzircon_ffi.so"
path = rebase_path("$root_out_dir")
},
]
# Things that explicitly being excluded:
# 1. Kernel snapshot framework mode.
# 2. Profiler symbols.
...
...
@@ -195,6 +203,9 @@ template("flutter_runner") {
"$fuchsia_sdk_root/pkg:trace-provider-so",
] + extra_deps
# For `libzircon_ffi` see _common_runner_libs.
public_deps = [ "../dart-pkg/zircon_ffi:zircon_ffi" ]
# The flags below are needed so that Dart's CPU profiler can walk the
# C++ stack.
cflags = [ "-fno-omit-frame-pointer" ]
...
...
@@ -331,7 +342,7 @@ template("jit_runner") {
]
_vulkan_icds = []
_libs =
common
_libs
_libs =
_common_runner
_libs
if (enable_vulkan_validation_layers) {
_libs += vulkan_validation_libs
_vulkan_icds += vulkan_icds
...
...
@@ -389,7 +400,7 @@ template("aot_runner") {
}
_vulkan_icds = []
_libs =
common
_libs
_libs =
_common_runner
_libs
if (enable_vulkan_validation_layers) {
_libs += vulkan_validation_libs
_vulkan_icds += vulkan_icds
...
...
shell/platform/fuchsia/flutter/kernel/libraries.json
浏览文件 @
51e07a50
{
"comment:0"
:
"NOTE: THIS FILE IS GENERATED. DO NOT EDIT."
,
"comment:1"
:
"Instead modify 'shell/platform/fuchsia/flutter/kernel/libraries.yaml' and follow the instructions therein."
,
"comment:1"
:
"Instead modify '
./flutter/
shell/platform/fuchsia/flutter/kernel/libraries.yaml' and follow the instructions therein."
,
"flutter_runner"
:
{
"libraries"
:
{
"_builtin"
:
{
...
...
@@ -152,6 +152,9 @@
"zircon"
:
{
"uri"
:
"../../dart-pkg/zircon/lib/zircon.dart"
},
"zircon_ffi"
:
{
"uri"
:
"../../dart-pkg/zircon_ffi/lib/zircon_ffi.dart"
},
"fuchsia"
:
{
"uri"
:
"../../dart-pkg/fuchsia/lib/fuchsia.dart"
},
...
...
shell/platform/fuchsia/flutter/kernel/libraries.yaml
浏览文件 @
51e07a50
...
...
@@ -152,6 +152,9 @@ flutter_runner:
zircon
:
uri
:
"
../../dart-pkg/zircon/lib/zircon.dart"
zircon_ffi
:
uri
:
"
../../dart-pkg/zircon_ffi/lib/zircon_ffi.dart"
fuchsia
:
uri
:
"
../../dart-pkg/fuchsia/lib/fuchsia.dart"
...
...
tools/fuchsia/build_fuchsia_artifacts.py
浏览文件 @
51e07a50
...
...
@@ -125,6 +125,10 @@ def CopyFlutterTesterBinIfExists(source, destination):
destination_base
=
os
.
path
.
join
(
destination
,
'flutter_binaries'
)
FindFileAndCopyTo
(
'flutter_tester'
,
source_root
,
destination_base
)
def
CopyZirconFFILibIfExists
(
source
,
destination
):
source_root
=
os
.
path
.
join
(
_out_dir
,
source
)
destination_base
=
os
.
path
.
join
(
destination
,
'flutter_binaries'
)
FindFileAndCopyTo
(
'libzircon_ffi.so'
,
source_root
,
destination_base
)
def
CopyToBucketWithMode
(
source
,
destination
,
aot
,
product
,
runner_type
):
mode
=
'aot'
if
aot
else
'jit'
...
...
@@ -146,6 +150,7 @@ def CopyToBucketWithMode(source, destination, aot, product, runner_type):
CopyPath
(
patched_sdk_dir
,
dest_sdk_path
)
CopyGenSnapshotIfExists
(
source_root
,
destination
)
CopyFlutterTesterBinIfExists
(
source_root
,
destination
)
CopyZirconFFILibIfExists
(
source_root
,
destination
)
def
CopyToBucket
(
src
,
dst
,
product
=
False
):
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录