From 847d06db2946a8b3c0a35a265c2bebb2dd57708a Mon Sep 17 00:00:00 2001 From: Scott Graham Date: Tue, 1 May 2018 15:32:27 -0700 Subject: [PATCH] fuchsia: Add header with shared exception port key When binding to an exception port on Fuchsia, a key is supplied and passed back to coordinate between the registerer and the handler. An arbitrary value is used by both devmgr: https://fuchsia.googlesource.com/zircon/+/HEAD/system/core/devmgr/devmgr.c#203 and by crashlogger: https://fuchsia.googlesource.com/zircon/+/HEAD/system/core/crashlogger/crashlogger.cpp#149 . In order to be able to have crashpad_handler be a drop-in for crashlogger (at least for now), Crashpad will use this same key in subsequent patches for this purpose. Pull this value out in a header so it can be shared by different bits that will need to refer to it. Bug: crashpad:196 Change-Id: I00e0178156a792bd80fc83b1b7d85b5ce6742e9a Reviewed-on: https://chromium-review.googlesource.com/1038123 Reviewed-by: Joshua Peraza Commit-Queue: Scott Graham --- util/BUILD.gn | 1 + util/fuchsia/system_exception_port_key.h | 27 ++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100644 util/fuchsia/system_exception_port_key.h diff --git a/util/BUILD.gn b/util/BUILD.gn index d3578dd4..21e6fed2 100644 --- a/util/BUILD.gn +++ b/util/BUILD.gn @@ -379,6 +379,7 @@ static_library("util") { if (crashpad_is_fuchsia) { sources += [ + "fuchsia/system_exception_port_key.h", "fuchsia/koid_utilities.cc", "fuchsia/koid_utilities.h", "fuchsia/scoped_task_suspend.cc", diff --git a/util/fuchsia/system_exception_port_key.h b/util/fuchsia/system_exception_port_key.h new file mode 100644 index 00000000..0bbae690 --- /dev/null +++ b/util/fuchsia/system_exception_port_key.h @@ -0,0 +1,27 @@ +// Copyright 2018 The Crashpad Authors. All rights reserved. +// +// 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. + +#ifndef CRASHPAD_UTIL_FUCHSIA_EXCEPTION_PORT_KEY_H_ +#define CRASHPAD_UTIL_FUCHSIA_EXCEPTION_PORT_KEY_H_ + +namespace crashpad { + +//! \brief The key used in `zx_task_bind_exception_port()` and packet +//! processing. This matches the value that Zircon's `devmgr` and +//! `crashlogger` use for interoperability, for now. +constexpr uint64_t kSystemExceptionPortKey = 1166444u; + +} // namespace crashpad + +#endif // CRASHPAD_UTIL_FUCHSIA_EXCEPTION_PORT_KEY_H_