1*61046927SAndroid Build Coastguard Worker /*
2*61046927SAndroid Build Coastguard Worker * Copyright © 2012 Rob Clark <[email protected]>
3*61046927SAndroid Build Coastguard Worker * SPDX-License-Identifier: MIT
4*61046927SAndroid Build Coastguard Worker */
5*61046927SAndroid Build Coastguard Worker
6*61046927SAndroid Build Coastguard Worker #ifndef REDUMP_H_
7*61046927SAndroid Build Coastguard Worker #define REDUMP_H_
8*61046927SAndroid Build Coastguard Worker
9*61046927SAndroid Build Coastguard Worker #include <unistd.h>
10*61046927SAndroid Build Coastguard Worker
11*61046927SAndroid Build Coastguard Worker enum rd_sect_type {
12*61046927SAndroid Build Coastguard Worker RD_NONE,
13*61046927SAndroid Build Coastguard Worker RD_TEST, /* ascii text */
14*61046927SAndroid Build Coastguard Worker RD_CMD, /* ascii text */
15*61046927SAndroid Build Coastguard Worker RD_GPUADDR, /* u32 gpuaddr, u32 size */
16*61046927SAndroid Build Coastguard Worker RD_CONTEXT, /* raw dump */
17*61046927SAndroid Build Coastguard Worker RD_CMDSTREAM, /* raw dump */
18*61046927SAndroid Build Coastguard Worker RD_CMDSTREAM_ADDR, /* gpu addr of cmdstream */
19*61046927SAndroid Build Coastguard Worker RD_PARAM, /* u32 param_type, u32 param_val, u32 bitlen */
20*61046927SAndroid Build Coastguard Worker RD_FLUSH, /* empty, clear previous params */
21*61046927SAndroid Build Coastguard Worker RD_PROGRAM, /* shader program, raw dump */
22*61046927SAndroid Build Coastguard Worker RD_VERT_SHADER,
23*61046927SAndroid Build Coastguard Worker RD_FRAG_SHADER,
24*61046927SAndroid Build Coastguard Worker RD_BUFFER_CONTENTS,
25*61046927SAndroid Build Coastguard Worker RD_GPU_ID,
26*61046927SAndroid Build Coastguard Worker RD_CHIP_ID,
27*61046927SAndroid Build Coastguard Worker RD_SHADER_LOG_BUFFER, /* Specifies buffer which has logs from shaders */
28*61046927SAndroid Build Coastguard Worker RD_CP_LOG_BUFFER, /* Specifies buffer which has logs from CP */
29*61046927SAndroid Build Coastguard Worker RD_WRBUFFER, /* Specifies buffer which has data that needs to be written out to a file */
30*61046927SAndroid Build Coastguard Worker };
31*61046927SAndroid Build Coastguard Worker
32*61046927SAndroid Build Coastguard Worker /* RD_PARAM types: */
33*61046927SAndroid Build Coastguard Worker enum rd_param_type {
34*61046927SAndroid Build Coastguard Worker RD_PARAM_SURFACE_WIDTH,
35*61046927SAndroid Build Coastguard Worker RD_PARAM_SURFACE_HEIGHT,
36*61046927SAndroid Build Coastguard Worker RD_PARAM_SURFACE_PITCH,
37*61046927SAndroid Build Coastguard Worker RD_PARAM_COLOR,
38*61046927SAndroid Build Coastguard Worker RD_PARAM_BLIT_X,
39*61046927SAndroid Build Coastguard Worker RD_PARAM_BLIT_Y,
40*61046927SAndroid Build Coastguard Worker RD_PARAM_BLIT_WIDTH,
41*61046927SAndroid Build Coastguard Worker RD_PARAM_BLIT_HEIGHT,
42*61046927SAndroid Build Coastguard Worker RD_PARAM_BLIT_X2, /* BLIT_X + BLIT_WIDTH */
43*61046927SAndroid Build Coastguard Worker RD_PARAM_BLIT_Y2, /* BLIT_Y + BLIT_WIDTH */
44*61046927SAndroid Build Coastguard Worker };
45*61046927SAndroid Build Coastguard Worker
46*61046927SAndroid Build Coastguard Worker static inline void
rd_write_section(int fd,enum rd_sect_type type,const void * buf,int sz)47*61046927SAndroid Build Coastguard Worker rd_write_section(int fd, enum rd_sect_type type, const void *buf, int sz)
48*61046927SAndroid Build Coastguard Worker {
49*61046927SAndroid Build Coastguard Worker write(fd, &type, 4);
50*61046927SAndroid Build Coastguard Worker write(fd, &sz, 4);
51*61046927SAndroid Build Coastguard Worker write(fd, buf, sz);
52*61046927SAndroid Build Coastguard Worker }
53*61046927SAndroid Build Coastguard Worker
54*61046927SAndroid Build Coastguard Worker #endif /* REDUMP_H_ */
55