1 /* SPDX-License-Identifier: GPL-2.0 */
2 /*
3  * Copyright (C) 2015 Etnaviv Project
4  */
5 
6 #ifndef ETNAVIV_DUMP_H
7 #define ETNAVIV_DUMP_H
8 
9 #include <linux/types.h>
10 
11 enum {
12 	ETDUMP_MAGIC = 0x414e5445,
13 	ETDUMP_BUF_REG = 0,
14 	ETDUMP_BUF_MMU,
15 	ETDUMP_BUF_RING,
16 	ETDUMP_BUF_CMD,
17 	ETDUMP_BUF_BOMAP,
18 	ETDUMP_BUF_BO,
19 	ETDUMP_BUF_END,
20 };
21 
22 struct etnaviv_dump_object_header {
23 	__le32 magic;
24 	__le32 type;
25 	__le32 file_offset;
26 	__le32 file_size;
27 	__le64 iova;
28 	__le32 data[2];
29 };
30 
31 /* Registers object, an array of these */
32 struct etnaviv_dump_registers {
33 	__le32 reg;
34 	__le32 value;
35 };
36 
37 #ifdef __KERNEL__
38 struct etnaviv_gpu;
39 void etnaviv_core_dump(struct etnaviv_gpu *gpu);
40 #endif
41 
42 #endif
43