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 <jperaza@chromium.org>
Commit-Queue: Scott Graham <scottmg@chromium.org>
This commit is contained in:
Scott Graham 2018-05-01 15:32:27 -07:00 committed by Commit Bot
parent a279673974
commit 847d06db29
2 changed files with 28 additions and 0 deletions

View File

@ -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",

View File

@ -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_