1 /* This file is generated by venus-protocol. See vn_protocol_driver.h. */
2
3 /*
4 * Copyright 2020 Google LLC
5 * SPDX-License-Identifier: MIT
6 */
7
8 #ifndef VN_PROTOCOL_DRIVER_BUFFER_VIEW_H
9 #define VN_PROTOCOL_DRIVER_BUFFER_VIEW_H
10
11 #include "vn_instance.h"
12 #include "vn_protocol_driver_structs.h"
13
14 /* struct VkBufferViewCreateInfo chain */
15
16 static inline size_t
vn_sizeof_VkBufferViewCreateInfo_pnext(const void * val)17 vn_sizeof_VkBufferViewCreateInfo_pnext(const void *val)
18 {
19 /* no known/supported struct */
20 return vn_sizeof_simple_pointer(NULL);
21 }
22
23 static inline size_t
vn_sizeof_VkBufferViewCreateInfo_self(const VkBufferViewCreateInfo * val)24 vn_sizeof_VkBufferViewCreateInfo_self(const VkBufferViewCreateInfo *val)
25 {
26 size_t size = 0;
27 /* skip val->{sType,pNext} */
28 size += vn_sizeof_VkFlags(&val->flags);
29 size += vn_sizeof_VkBuffer(&val->buffer);
30 size += vn_sizeof_VkFormat(&val->format);
31 size += vn_sizeof_VkDeviceSize(&val->offset);
32 size += vn_sizeof_VkDeviceSize(&val->range);
33 return size;
34 }
35
36 static inline size_t
vn_sizeof_VkBufferViewCreateInfo(const VkBufferViewCreateInfo * val)37 vn_sizeof_VkBufferViewCreateInfo(const VkBufferViewCreateInfo *val)
38 {
39 size_t size = 0;
40
41 size += vn_sizeof_VkStructureType(&val->sType);
42 size += vn_sizeof_VkBufferViewCreateInfo_pnext(val->pNext);
43 size += vn_sizeof_VkBufferViewCreateInfo_self(val);
44
45 return size;
46 }
47
48 static inline void
vn_encode_VkBufferViewCreateInfo_pnext(struct vn_cs_encoder * enc,const void * val)49 vn_encode_VkBufferViewCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)
50 {
51 /* no known/supported struct */
52 vn_encode_simple_pointer(enc, NULL);
53 }
54
55 static inline void
vn_encode_VkBufferViewCreateInfo_self(struct vn_cs_encoder * enc,const VkBufferViewCreateInfo * val)56 vn_encode_VkBufferViewCreateInfo_self(struct vn_cs_encoder *enc, const VkBufferViewCreateInfo *val)
57 {
58 /* skip val->{sType,pNext} */
59 vn_encode_VkFlags(enc, &val->flags);
60 vn_encode_VkBuffer(enc, &val->buffer);
61 vn_encode_VkFormat(enc, &val->format);
62 vn_encode_VkDeviceSize(enc, &val->offset);
63 vn_encode_VkDeviceSize(enc, &val->range);
64 }
65
66 static inline void
vn_encode_VkBufferViewCreateInfo(struct vn_cs_encoder * enc,const VkBufferViewCreateInfo * val)67 vn_encode_VkBufferViewCreateInfo(struct vn_cs_encoder *enc, const VkBufferViewCreateInfo *val)
68 {
69 assert(val->sType == VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO);
70 vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_BUFFER_VIEW_CREATE_INFO });
71 vn_encode_VkBufferViewCreateInfo_pnext(enc, val->pNext);
72 vn_encode_VkBufferViewCreateInfo_self(enc, val);
73 }
74
vn_sizeof_vkCreateBufferView(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView)75 static inline size_t vn_sizeof_vkCreateBufferView(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView)
76 {
77 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateBufferView_EXT;
78 const VkFlags cmd_flags = 0;
79 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
80
81 cmd_size += vn_sizeof_VkDevice(&device);
82 cmd_size += vn_sizeof_simple_pointer(pCreateInfo);
83 if (pCreateInfo)
84 cmd_size += vn_sizeof_VkBufferViewCreateInfo(pCreateInfo);
85 cmd_size += vn_sizeof_simple_pointer(pAllocator);
86 if (pAllocator)
87 assert(false);
88 cmd_size += vn_sizeof_simple_pointer(pView);
89 if (pView)
90 cmd_size += vn_sizeof_VkBufferView(pView);
91
92 return cmd_size;
93 }
94
vn_encode_vkCreateBufferView(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView)95 static inline void vn_encode_vkCreateBufferView(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView)
96 {
97 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateBufferView_EXT;
98
99 vn_encode_VkCommandTypeEXT(enc, &cmd_type);
100 vn_encode_VkFlags(enc, &cmd_flags);
101
102 vn_encode_VkDevice(enc, &device);
103 if (vn_encode_simple_pointer(enc, pCreateInfo))
104 vn_encode_VkBufferViewCreateInfo(enc, pCreateInfo);
105 if (vn_encode_simple_pointer(enc, pAllocator))
106 assert(false);
107 if (vn_encode_simple_pointer(enc, pView))
108 vn_encode_VkBufferView(enc, pView);
109 }
110
vn_sizeof_vkCreateBufferView_reply(VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView)111 static inline size_t vn_sizeof_vkCreateBufferView_reply(VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView)
112 {
113 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateBufferView_EXT;
114 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
115
116 VkResult ret;
117 cmd_size += vn_sizeof_VkResult(&ret);
118 /* skip device */
119 /* skip pCreateInfo */
120 /* skip pAllocator */
121 cmd_size += vn_sizeof_simple_pointer(pView);
122 if (pView)
123 cmd_size += vn_sizeof_VkBufferView(pView);
124
125 return cmd_size;
126 }
127
vn_decode_vkCreateBufferView_reply(struct vn_cs_decoder * dec,VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView)128 static inline VkResult vn_decode_vkCreateBufferView_reply(struct vn_cs_decoder *dec, VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView)
129 {
130 VkCommandTypeEXT command_type;
131 vn_decode_VkCommandTypeEXT(dec, &command_type);
132 assert(command_type == VK_COMMAND_TYPE_vkCreateBufferView_EXT);
133
134 VkResult ret;
135 vn_decode_VkResult(dec, &ret);
136 /* skip device */
137 /* skip pCreateInfo */
138 /* skip pAllocator */
139 if (vn_decode_simple_pointer(dec)) {
140 vn_decode_VkBufferView(dec, pView);
141 } else {
142 pView = NULL;
143 }
144
145 return ret;
146 }
147
vn_sizeof_vkDestroyBufferView(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)148 static inline size_t vn_sizeof_vkDestroyBufferView(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator)
149 {
150 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyBufferView_EXT;
151 const VkFlags cmd_flags = 0;
152 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);
153
154 cmd_size += vn_sizeof_VkDevice(&device);
155 cmd_size += vn_sizeof_VkBufferView(&bufferView);
156 cmd_size += vn_sizeof_simple_pointer(pAllocator);
157 if (pAllocator)
158 assert(false);
159
160 return cmd_size;
161 }
162
vn_encode_vkDestroyBufferView(struct vn_cs_encoder * enc,VkCommandFlagsEXT cmd_flags,VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)163 static inline void vn_encode_vkDestroyBufferView(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator)
164 {
165 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyBufferView_EXT;
166
167 vn_encode_VkCommandTypeEXT(enc, &cmd_type);
168 vn_encode_VkFlags(enc, &cmd_flags);
169
170 vn_encode_VkDevice(enc, &device);
171 vn_encode_VkBufferView(enc, &bufferView);
172 if (vn_encode_simple_pointer(enc, pAllocator))
173 assert(false);
174 }
175
vn_sizeof_vkDestroyBufferView_reply(VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)176 static inline size_t vn_sizeof_vkDestroyBufferView_reply(VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator)
177 {
178 const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyBufferView_EXT;
179 size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);
180
181 /* skip device */
182 /* skip bufferView */
183 /* skip pAllocator */
184
185 return cmd_size;
186 }
187
vn_decode_vkDestroyBufferView_reply(struct vn_cs_decoder * dec,VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)188 static inline void vn_decode_vkDestroyBufferView_reply(struct vn_cs_decoder *dec, VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator)
189 {
190 VkCommandTypeEXT command_type;
191 vn_decode_VkCommandTypeEXT(dec, &command_type);
192 assert(command_type == VK_COMMAND_TYPE_vkDestroyBufferView_EXT);
193
194 /* skip device */
195 /* skip bufferView */
196 /* skip pAllocator */
197 }
198
vn_submit_vkCreateBufferView(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView,struct vn_instance_submit_command * submit)199 static inline void vn_submit_vkCreateBufferView(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView, struct vn_instance_submit_command *submit)
200 {
201 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
202 void *cmd_data = local_cmd_data;
203 size_t cmd_size = vn_sizeof_vkCreateBufferView(device, pCreateInfo, pAllocator, pView);
204 if (cmd_size > sizeof(local_cmd_data)) {
205 cmd_data = malloc(cmd_size);
206 if (!cmd_data)
207 cmd_size = 0;
208 }
209 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateBufferView_reply(device, pCreateInfo, pAllocator, pView) : 0;
210
211 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
212 if (cmd_size) {
213 vn_encode_vkCreateBufferView(enc, cmd_flags, device, pCreateInfo, pAllocator, pView);
214 vn_instance_submit_command(vn_instance, submit);
215 if (cmd_data != local_cmd_data)
216 free(cmd_data);
217 }
218 }
219
vn_submit_vkDestroyBufferView(struct vn_instance * vn_instance,VkCommandFlagsEXT cmd_flags,VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator,struct vn_instance_submit_command * submit)220 static inline void vn_submit_vkDestroyBufferView(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator, struct vn_instance_submit_command *submit)
221 {
222 uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];
223 void *cmd_data = local_cmd_data;
224 size_t cmd_size = vn_sizeof_vkDestroyBufferView(device, bufferView, pAllocator);
225 if (cmd_size > sizeof(local_cmd_data)) {
226 cmd_data = malloc(cmd_size);
227 if (!cmd_data)
228 cmd_size = 0;
229 }
230 const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyBufferView_reply(device, bufferView, pAllocator) : 0;
231
232 struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);
233 if (cmd_size) {
234 vn_encode_vkDestroyBufferView(enc, cmd_flags, device, bufferView, pAllocator);
235 vn_instance_submit_command(vn_instance, submit);
236 if (cmd_data != local_cmd_data)
237 free(cmd_data);
238 }
239 }
240
vn_call_vkCreateBufferView(struct vn_instance * vn_instance,VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView)241 static inline VkResult vn_call_vkCreateBufferView(struct vn_instance *vn_instance, VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView)
242 {
243 VN_TRACE_FUNC();
244
245 struct vn_instance_submit_command submit;
246 vn_submit_vkCreateBufferView(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pAllocator, pView, &submit);
247 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
248 if (dec) {
249 const VkResult ret = vn_decode_vkCreateBufferView_reply(dec, device, pCreateInfo, pAllocator, pView);
250 vn_instance_free_command_reply(vn_instance, &submit);
251 return ret;
252 } else {
253 return VK_ERROR_OUT_OF_HOST_MEMORY;
254 }
255 }
256
vn_async_vkCreateBufferView(struct vn_instance * vn_instance,VkDevice device,const VkBufferViewCreateInfo * pCreateInfo,const VkAllocationCallbacks * pAllocator,VkBufferView * pView)257 static inline void vn_async_vkCreateBufferView(struct vn_instance *vn_instance, VkDevice device, const VkBufferViewCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkBufferView* pView)
258 {
259 struct vn_instance_submit_command submit;
260 vn_submit_vkCreateBufferView(vn_instance, 0, device, pCreateInfo, pAllocator, pView, &submit);
261 }
262
vn_call_vkDestroyBufferView(struct vn_instance * vn_instance,VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)263 static inline void vn_call_vkDestroyBufferView(struct vn_instance *vn_instance, VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator)
264 {
265 VN_TRACE_FUNC();
266
267 struct vn_instance_submit_command submit;
268 vn_submit_vkDestroyBufferView(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, bufferView, pAllocator, &submit);
269 struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);
270 if (dec) {
271 vn_decode_vkDestroyBufferView_reply(dec, device, bufferView, pAllocator);
272 vn_instance_free_command_reply(vn_instance, &submit);
273 }
274 }
275
vn_async_vkDestroyBufferView(struct vn_instance * vn_instance,VkDevice device,VkBufferView bufferView,const VkAllocationCallbacks * pAllocator)276 static inline void vn_async_vkDestroyBufferView(struct vn_instance *vn_instance, VkDevice device, VkBufferView bufferView, const VkAllocationCallbacks* pAllocator)
277 {
278 struct vn_instance_submit_command submit;
279 vn_submit_vkDestroyBufferView(vn_instance, 0, device, bufferView, pAllocator, &submit);
280 }
281
282 #endif /* VN_PROTOCOL_DRIVER_BUFFER_VIEW_H */
283