forked from chromium/crashpad
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
linux: Add ExceptionHandlerServer and ExceptionHandlerClient
Bug: crashpad:30 Change-Id: I60874a26ccb281144f870df2b4d16c6970a39f6b Reviewed-on: https://chromium-review.googlesource.com/772824 Commit-Queue: Joshua Peraza <[email protected]> Reviewed-by: Mark Mentovai <[email protected]>
- Loading branch information
Joshua Peraza
authored and
Commit Bot
committed
Dec 19, 2017
1 parent
99b0030
commit 9b2ba58
Showing
27 changed files
with
1,483 additions
and
58 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,37 @@ | ||
// Copyright 2017 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. | ||
|
||
#include <sys/epoll.h> | ||
|
||
#include <dlfcn.h> | ||
#include <sys/syscall.h> | ||
#include <unistd.h> | ||
|
||
#if __ANDROID_API__ < 21 | ||
|
||
extern "C" { | ||
|
||
int epoll_create1(int flags) { | ||
static const auto epoll_create1_p = | ||
reinterpret_cast<int (*)(int)>(dlsym(RTLD_DEFAULT, "epoll_create1")); | ||
if (epoll_create1_p) { | ||
return epoll_create1_p(flags); | ||
} | ||
|
||
return syscall(SYS_epoll_create1, flags); | ||
} | ||
|
||
} // extern "C" | ||
|
||
#endif // __ANDROID_API__ < 21 |
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,50 @@ | ||
// Copyright 2017 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_COMPAT_ANDROID_SYS_EPOLL_H_ | ||
#define CRASHPAD_COMPAT_ANDROID_SYS_EPOLL_H_ | ||
|
||
#include_next <sys/epoll.h> | ||
|
||
#include <android/api-level.h> | ||
#include <fcntl.h> | ||
|
||
// This is missing from traditional headers before API 21. | ||
#if !defined(EPOLLRDHUP) | ||
#define EPOLLRDHUP 0x00002000 | ||
#endif | ||
|
||
// EPOLL_CLOEXEC is undefined in traditional headers before API 21 and removed | ||
// from unified headers at API levels < 21 as a means to indicate that | ||
// epoll_create1 is missing from the C library, but the raw system call should | ||
// still be available. | ||
#if !defined(EPOLL_CLOEXEC) | ||
#define EPOLL_CLOEXEC O_CLOEXEC | ||
#endif | ||
|
||
#if __ANDROID_API__ < 21 | ||
|
||
#ifdef __cplusplus | ||
extern "C" { | ||
#endif | ||
|
||
int epoll_create1(int flags); | ||
|
||
#ifdef __cplusplus | ||
} // extern "C" | ||
#endif | ||
|
||
#endif // __ANDROID_API__ < 21 | ||
|
||
#endif // CRASHPAD_COMPAT_ANDROID_SYS_EPOLL_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
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
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
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
Oops, something went wrong.