Back to home page

OSCL-LXR

 
 

    


0001 /* SPDX-License-Identifier: GPL-2.0-only
0002  *
0003  * Copyright (C) 2020-2021 Intel Corporation.
0004  */
0005 
0006 #ifndef _IOSM_IPC_COREDUMP_H_
0007 #define _IOSM_IPC_COREDUMP_H_
0008 
0009 #include "iosm_ipc_devlink.h"
0010 
0011 /* Max number of bytes to receive for Coredump list structure */
0012 #define MAX_CD_LIST_SIZE  0x1000
0013 
0014 /* Max buffer allocated to receive coredump data */
0015 #define MAX_DATA_SIZE 0x00010000
0016 
0017 /* Max length */
0018 #define MAX_SIZE_LEN 32
0019 
0020 /**
0021  * struct iosm_cd_list_entry - Structure to hold coredump file info.
0022  * @size:       Number of bytes for the entry
0023  * @filename:   Coredump filename to be generated on host
0024  */
0025 struct iosm_cd_list_entry {
0026     __le32 size;
0027     char filename[IOSM_MAX_FILENAME_LEN];
0028 } __packed;
0029 
0030 /**
0031  * struct iosm_cd_list - Structure to hold list of coredump files
0032  *                      to be collected.
0033  * @num_entries:        Number of entries to be received
0034  * @entry:              Contains File info
0035  */
0036 struct iosm_cd_list {
0037     __le32 num_entries;
0038     struct iosm_cd_list_entry entry[];
0039 } __packed;
0040 
0041 /**
0042  * struct iosm_cd_table - Common Coredump table
0043  * @version:            Version of coredump structure
0044  * @list:               Coredump list structure
0045  */
0046 struct iosm_cd_table {
0047     __le32 version;
0048     struct iosm_cd_list list;
0049 } __packed;
0050 
0051 int ipc_coredump_collect(struct iosm_devlink *devlink, u8 **data, int entry,
0052              u32 region_size);
0053 
0054 int ipc_coredump_get_list(struct iosm_devlink *devlink, u16 cmd);
0055 
0056 #endif /* _IOSM_IPC_COREDUMP_H_ */