1 /*
2  * Copyright (C) 2015 Etnaviv Project
3  *
4  * This program is free software; you can redistribute it and/or modify it
5  * under the terms of the GNU General Public License version 2 as published by
6  * the Free Software Foundation.
7  *
8  * This program is distributed in the hope that it will be useful, but WITHOUT
9  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
10  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
11  * more details.
12  *
13  * You should have received a copy of the GNU General Public License along with
14  * this program.  If not, see <http://www.gnu.org/licenses/>.
15  *
16  * Etnaviv devcoredump file definitions
17  */
18 #ifndef ETNAVIV_DUMP_H
19 #define ETNAVIV_DUMP_H
20 
21 #include <linux/types.h>
22 
23 enum {
24 	ETDUMP_MAGIC = 0x414e5445,
25 	ETDUMP_BUF_REG = 0,
26 	ETDUMP_BUF_MMU,
27 	ETDUMP_BUF_RING,
28 	ETDUMP_BUF_CMD,
29 	ETDUMP_BUF_BOMAP,
30 	ETDUMP_BUF_BO,
31 	ETDUMP_BUF_END,
32 };
33 
34 struct etnaviv_dump_object_header {
35 	__le32 magic;
36 	__le32 type;
37 	__le32 file_offset;
38 	__le32 file_size;
39 	__le64 iova;
40 	__le32 data[2];
41 };
42 
43 /* Registers object, an array of these */
44 struct etnaviv_dump_registers {
45 	__le32 reg;
46 	__le32 value;
47 };
48 
49 #ifdef __KERNEL__
50 struct etnaviv_gpu;
51 void etnaviv_core_dump(struct etnaviv_gpu *gpu);
52 #endif
53 
54 #endif
55