mirror of
https://github.com/projectacrn/acrn-hypervisor.git
synced 2025-08-17 07:40:14 +00:00
Since ACRN has the capability to reboot and reboot reason is available in SOS, acrnprobe could detect the crash of acrn and SOS kernel. List of added crash types: 1. ACRNCRASH - crashed in hypervisor, this detection depends on files in /tmp/acrnlog_last(provided by acrnlog). 2. IPANIC - crashed in SOS kernel, this detection depends on pstore. 3. SWWDT_IPANIC - crashed in SOS kernel and reboot reason is wdt. 4. HWWDT_UNHANDLE - only recognize reboot reason is global, there is no further clues that it's a SOS kernel crash or a hypervisor crash. 5. SWWDT_UNHANDLE - only recognize reboot reason is wdt, there is no further clues that it's a SOS kernel crash or a hypervisor crash. 6. UNKNOWN - only recognize reboot reason is warm, there is no further clues that it's a SOS kernel crash or a hypervisor crash. Signed-off-by: Liu, Xinwu <xinwu.liu@intel.com> Acked-by: Chen Gang <gang.c.chen@intel.com>
46 lines
1.3 KiB
C
46 lines
1.3 KiB
C
/*
|
|
* Copyright (C) 2018 Intel Corporation
|
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
*/
|
|
|
|
/*
|
|
* Copyright (C) 2018 Intel Corporation
|
|
*
|
|
* 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 __PROBEUTILS_H__
|
|
#define __PROBEUTILS_H__
|
|
|
|
#define UPTIME_SIZE 24
|
|
#define LONG_TIME_SIZE 32
|
|
|
|
enum e_dir_mode {
|
|
MODE_CRASH = 0,
|
|
MODE_STATS,
|
|
MODE_VMEVENT,
|
|
};
|
|
|
|
int get_uptime_string(char newuptime[24], int *hours);
|
|
int get_current_time_long(char buf[32]);
|
|
unsigned long long get_uptime(void);
|
|
char *generate_event_id(char *seed1, char *seed2);
|
|
char *generate_eventid256(char *seed);
|
|
void generate_crashfile(char *dir, char *event, char *hashkey,
|
|
char *type, char *data0,
|
|
char *data1, char *data2);
|
|
char *generate_log_dir(enum e_dir_mode mode, char *hashkey);
|
|
int is_boot_id_changed(void);
|
|
|
|
#endif
|