iosm_ipc_coredump.h (1436B)
1/* SPDX-License-Identifier: GPL-2.0-only 2 * 3 * Copyright (C) 2020-2021 Intel Corporation. 4 */ 5 6#ifndef _IOSM_IPC_COREDUMP_H_ 7#define _IOSM_IPC_COREDUMP_H_ 8 9#include "iosm_ipc_devlink.h" 10 11/* Max number of bytes to receive for Coredump list structure */ 12#define MAX_CD_LIST_SIZE 0x1000 13 14/* Max buffer allocated to receive coredump data */ 15#define MAX_DATA_SIZE 0x00010000 16 17/* Max length */ 18#define MAX_SIZE_LEN 32 19 20/** 21 * struct iosm_cd_list_entry - Structure to hold coredump file info. 22 * @size: Number of bytes for the entry 23 * @filename: Coredump filename to be generated on host 24 */ 25struct iosm_cd_list_entry { 26 __le32 size; 27 char filename[IOSM_MAX_FILENAME_LEN]; 28} __packed; 29 30/** 31 * struct iosm_cd_list - Structure to hold list of coredump files 32 * to be collected. 33 * @num_entries: Number of entries to be received 34 * @entry: Contains File info 35 */ 36struct iosm_cd_list { 37 __le32 num_entries; 38 struct iosm_cd_list_entry entry[]; 39} __packed; 40 41/** 42 * struct iosm_cd_table - Common Coredump table 43 * @version: Version of coredump structure 44 * @list: Coredump list structure 45 */ 46struct iosm_cd_table { 47 __le32 version; 48 struct iosm_cd_list list; 49} __packed; 50 51int ipc_coredump_collect(struct iosm_devlink *devlink, u8 **data, int entry, 52 u32 region_size); 53 54int ipc_coredump_get_list(struct iosm_devlink *devlink, u16 cmd); 55 56#endif /* _IOSM_IPC_COREDUMP_H_ */