1 /****************************************************************************
2  ****************************************************************************
3  ***
4  ***   This header was automatically generated from a Linux kernel header
5  ***   of the same name, to make information necessary for userspace to
6  ***   call into the kernel available to libc.  It contains only constants,
7  ***   structures, and macros generated from the original header, and thus,
8  ***   contains no copyrightable information.
9  ***
10  ***   To edit the content of this header, modify the corresponding
11  ***   source file (e.g. under external/kernel-headers/original/) then
12  ***   run bionic/libc/kernel/tools/update_all.py
13  ***
14  ***   Any manual change here will be lost the next time this script will
15  ***   be run. You've been warned!
16  ***
17  ****************************************************************************
18  ****************************************************************************/
19 #ifndef _TTM_PLACEMENT_USER_H_
20 #define _TTM_PLACEMENT_USER_H_
21 #ifndef _KERNEL
22 #include <stdint.h>
23 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
24 #else
25 #include <linux/kernel.h>
26 #endif
27 #include "ttm/ttm_placement.h"
28 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
29 #define TTM_PLACEMENT_MAJOR 0
30 #define TTM_PLACEMENT_MINOR 1
31 #define TTM_PLACEMENT_PL 0
32 #define TTM_PLACEMENT_DATE "080819"
33 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
34 struct ttm_pl_create_req {
35  uint64_t size;
36  uint32_t placement;
37  uint32_t page_alignment;
38 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
39 };
40 struct ttm_pl_create_ub_req {
41  uint64_t size;
42  uint64_t user_address;
43 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
44  uint32_t placement;
45  uint32_t page_alignment;
46 };
47 struct ttm_pl_rep {
48 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
49  uint64_t gpu_offset;
50  uint64_t bo_size;
51  uint64_t map_handle;
52  uint32_t placement;
53 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
54  uint32_t handle;
55  uint32_t sync_object_arg;
56  uint32_t pad64;
57 };
58 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
59 struct ttm_pl_setstatus_req {
60  uint32_t set_placement;
61  uint32_t clr_placement;
62  uint32_t handle;
63 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
64  uint32_t pad64;
65 };
66 struct ttm_pl_reference_req {
67  uint32_t handle;
68 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
69  uint32_t pad64;
70 };
71 #define TTM_PL_SYNCCPU_MODE_READ TTM_ACCESS_READ
72 #define TTM_PL_SYNCCPU_MODE_WRITE TTM_ACCESS_WRITE
73 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
74 #define TTM_PL_SYNCCPU_MODE_NO_BLOCK (1 << 2)
75 #define TTM_PL_SYNCCPU_MODE_TRYCACHED (1 << 3)
76 struct ttm_pl_synccpu_arg {
77  uint32_t handle;
78 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
79  uint32_t access_mode;
80  enum {
81  TTM_PL_SYNCCPU_OP_GRAB,
82  TTM_PL_SYNCCPU_OP_RELEASE
83 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
84  } op;
85  uint32_t pad64;
86 };
87 #define TTM_PL_WAITIDLE_MODE_LAZY (1 << 0)
88 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
89 #define TTM_PL_WAITIDLE_MODE_NO_BLOCK (1 << 1)
90 struct ttm_pl_waitidle_arg {
91  uint32_t handle;
92  uint32_t mode;
93 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
94 };
95 union ttm_pl_create_arg {
96  struct ttm_pl_create_req req;
97  struct ttm_pl_rep rep;
98 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
99 };
100 union ttm_pl_reference_arg {
101  struct ttm_pl_reference_req req;
102  struct ttm_pl_rep rep;
103 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
104 };
105 union ttm_pl_setstatus_arg {
106  struct ttm_pl_setstatus_req req;
107  struct ttm_pl_rep rep;
108 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
109 };
110 union ttm_pl_create_ub_arg {
111  struct ttm_pl_create_ub_req req;
112  struct ttm_pl_rep rep;
113 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
114 };
115 #define TTM_PL_CREATE 0x00
116 #define TTM_PL_REFERENCE 0x01
117 #define TTM_PL_UNREF 0x02
118 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
119 #define TTM_PL_SYNCCPU 0x03
120 #define TTM_PL_WAITIDLE 0x04
121 #define TTM_PL_SETSTATUS 0x05
122 #define TTM_PL_CREATE_UB 0x06
123 /* WARNING: DO NOT EDIT, AUTO-GENERATED CODE - SEE TOP FOR INSTRUCTIONS */
124 #endif
125 
126