1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
|
/*
* Copyright IBM Corp. 2021
*
* s390-tools is free software; you can redistribute it and/or modify
* it under the terms of the MIT license. See LICENSE for details.
*/
#ifndef _HSAVMCORE_CONFIG_H
#define _HSAVMCORE_CONFIG_H
#include <limits.h>
#include <stdbool.h>
#include "common.h"
/*
* This represents the application's configuration.
*/
struct config {
/* Log message level */
int verbose;
/* Path to the system's vmcore file */
char vmcore_path[PATH_MAX];
/* Path to the system's zcore hsa file */
char zcore_hsa_path[PATH_MAX];
/*
* Path to a directory where the application could create temporary
* files.
*/
char workdir_path[PATH_MAX];
/* Path to a bind-mount target for vmcore Overlay */
char bind_mount_vmcore_path[PATH_MAX];
/* Path to a swap device/file */
char swap[PATH_MAX];
/* HSA memory size */
int hsa_size;
/* Indicates whether the debugfs shall be mounted */
bool mount_debugfs;
/* Indicates whether the HSA memory file reader shall be used */
bool use_hsa_mem;
/* Indicates whether the HSA memory shall be released after caching */
bool release_hsa;
/* Indicates whether a bind-mount of vmcore Proxy shall be enabled */
bool bind_mount_vmcore;
/* Indicates whether the FUSE debug messages shall be enabled */
bool fuse_debug;
};
/*
* Initializes the application's configuration to its default values.
*/
void init_config(struct config *config);
/*
* Updates the application's configuration from the given configuration file.
*/
int update_config_from_file(const char *config_path, struct config *config);
#endif
|