| /* SPDX-License-Identifier: GPL-2.0-only |
| * |
| * Copyright (C) 2020-2021 Intel Corporation. |
| */ |
| |
| #ifndef _IOSM_IPC_COREDUMP_H_ |
| #define _IOSM_IPC_COREDUMP_H_ |
| |
| #include "iosm_ipc_devlink.h" |
| |
| /* Max number of bytes to receive for Coredump list structure */ |
| #define MAX_CD_LIST_SIZE 0x1000 |
| |
| /* Max buffer allocated to receive coredump data */ |
| #define MAX_DATA_SIZE 0x00010000 |
| |
| /* Max length */ |
| #define MAX_SIZE_LEN 32 |
| |
| /** |
| * struct iosm_cd_list_entry - Structure to hold coredump file info. |
| * @size: Number of bytes for the entry |
| * @filename: Coredump filename to be generated on host |
| */ |
| struct iosm_cd_list_entry { |
| __le32 size; |
| char filename[IOSM_MAX_FILENAME_LEN]; |
| } __packed; |
| |
| /** |
| * struct iosm_cd_list - Structure to hold list of coredump files |
| * to be collected. |
| * @num_entries: Number of entries to be received |
| * @entry: Contains File info |
| */ |
| struct iosm_cd_list { |
| __le32 num_entries; |
| struct iosm_cd_list_entry entry[]; |
| } __packed; |
| |
| /** |
| * struct iosm_cd_table - Common Coredump table |
| * @version: Version of coredump structure |
| * @list: Coredump list structure |
| */ |
| struct iosm_cd_table { |
| __le32 version; |
| struct iosm_cd_list list; |
| } __packed; |
| |
| int ipc_coredump_collect(struct iosm_devlink *devlink, u8 **data, int entry, |
| u32 region_size); |
| |
| int ipc_coredump_get_list(struct iosm_devlink *devlink, u16 cmd); |
| |
| #endif /* _IOSM_IPC_COREDUMP_H_ */ |