1af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner// Copyright 2014 The Android Open Source Project
2af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner//
3af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner// This software is licensed under the terms of the GNU General Public
4af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner// License version 2, as published by the Free Software Foundation, and
5af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner// may be copied, distributed, and modified under those terms.
6af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner//
7af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner// This program is distributed in the hope that it will be useful,
8af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner// but WITHOUT ANY WARRANTY; without even the implied warranty of
9af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
10af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner// GNU General Public License for more details.
11af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner
12af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner#include "android/utils/eintr_wrapper.h"
13af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner
14af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner#include "android/utils/panic.h"
15af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner
16af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner#ifndef _WIN32
17af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turnervoid android_eintr_wrapper_fatal(const char* file,
18af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner                                 long lineno,
19af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner                                 const char* function,
20af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner                                 const char* call) {
21af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner    android_panic(
22af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner            "%s:%ld:%s%s System call looped around EINTR %d times: %s\n",
23af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner            file,
24af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner            lineno,
25af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner            function ? function : "",
26af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner            function ? ":" : "",
27af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner            MAX_EINTR_LOOP_COUNT,
28af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner            call);
29af81d7432594d8459c4fb9f76c5e8a981f69a94cDavid 'Digit' Turner}
30a2c14f947951612b45024095afd2210aa7368773David 'Digit' Turner#endif  // !_WIN32
31