1 /* This file is generated by venus-protocol.  See vn_protocol_renderer.h. */
2 
3 /*
4  * Copyright 2020 Google LLC
5  * SPDX-License-Identifier: MIT
6  */
7 
8 #ifndef VN_PROTOCOL_RENDERER_PRIVATE_DATA_SLOT_H
9 #define VN_PROTOCOL_RENDERER_PRIVATE_DATA_SLOT_H
10 
11 #include "vn_protocol_renderer_structs.h"
12 
13 #pragma GCC diagnostic push
14 #pragma GCC diagnostic ignored "-Wpointer-arith"
15 #pragma GCC diagnostic ignored "-Wunused-parameter"
16 
17 /* struct VkPrivateDataSlotCreateInfo chain */
18 
19 static inline void *
vn_decode_VkPrivateDataSlotCreateInfo_pnext_temp(struct vn_cs_decoder * dec)20 vn_decode_VkPrivateDataSlotCreateInfo_pnext_temp(struct vn_cs_decoder *dec)
21 {
22     /* no known/supported struct */
23     if (vn_decode_simple_pointer(dec))
24         vn_cs_decoder_set_fatal(dec);
25     return NULL;
26 }
27 
28 static inline void
vn_decode_VkPrivateDataSlotCreateInfo_self_temp(struct vn_cs_decoder * dec,VkPrivateDataSlotCreateInfo * val)29 vn_decode_VkPrivateDataSlotCreateInfo_self_temp(struct vn_cs_decoder *dec, VkPrivateDataSlotCreateInfo *val)
30 {
31     /* skip val->{sType,pNext} */
32     vn_decode_VkFlags(dec, &val->flags);
33 }
34 
35 static inline void
vn_decode_VkPrivateDataSlotCreateInfo_temp(struct vn_cs_decoder * dec,VkPrivateDataSlotCreateInfo * val)36 vn_decode_VkPrivateDataSlotCreateInfo_temp(struct vn_cs_decoder *dec, VkPrivateDataSlotCreateInfo *val)
37 {
38     VkStructureType stype;
39     vn_decode_VkStructureType(dec, &stype);
40     if (stype != VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO)
41         vn_cs_decoder_set_fatal(dec);
42 
43     val->sType = stype;
44     val->pNext = vn_decode_VkPrivateDataSlotCreateInfo_pnext_temp(dec);
45     vn_decode_VkPrivateDataSlotCreateInfo_self_temp(dec, val);
46 }
47 
48 static inline void
vn_replace_VkPrivateDataSlotCreateInfo_handle_self(VkPrivateDataSlotCreateInfo * val)49 vn_replace_VkPrivateDataSlotCreateInfo_handle_self(VkPrivateDataSlotCreateInfo *val)
50 {
51     /* skip val->sType */
52     /* skip val->pNext */
53     /* skip val->flags */
54 }
55 
56 static inline void
vn_replace_VkPrivateDataSlotCreateInfo_handle(VkPrivateDataSlotCreateInfo * val)57 vn_replace_VkPrivateDataSlotCreateInfo_handle(VkPrivateDataSlotCreateInfo *val)
58 {
59     struct VkBaseOutStructure *pnext = (struct VkBaseOutStructure *)val;
60 
61     do {
62         switch ((int32_t)pnext->sType) {
63         case VK_STRUCTURE_TYPE_PRIVATE_DATA_SLOT_CREATE_INFO:
64             vn_replace_VkPrivateDataSlotCreateInfo_handle_self((VkPrivateDataSlotCreateInfo *)pnext);
65             break;
66         default:
67             /* ignore unknown/unsupported struct */
68             break;
69         }
70         pnext = pnext->pNext;
71     } while (pnext);
72 }
73 
vn_decode_vkCreatePrivateDataSlot_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkCreatePrivateDataSlot * args)74 static inline void vn_decode_vkCreatePrivateDataSlot_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkCreatePrivateDataSlot *args)
75 {
76     vn_decode_VkDevice_lookup(dec, &args->device);
77     if (vn_decode_simple_pointer(dec)) {
78         args->pCreateInfo = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pCreateInfo));
79         if (!args->pCreateInfo) return;
80         vn_decode_VkPrivateDataSlotCreateInfo_temp(dec, (VkPrivateDataSlotCreateInfo *)args->pCreateInfo);
81     } else {
82         args->pCreateInfo = NULL;
83         vn_cs_decoder_set_fatal(dec);
84     }
85     if (vn_decode_simple_pointer(dec)) {
86         vn_cs_decoder_set_fatal(dec);
87     } else {
88         args->pAllocator = NULL;
89     }
90     if (vn_decode_simple_pointer(dec)) {
91         args->pPrivateDataSlot = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pPrivateDataSlot));
92         if (!args->pPrivateDataSlot) return;
93         vn_decode_VkPrivateDataSlot(dec, args->pPrivateDataSlot);
94     } else {
95         args->pPrivateDataSlot = NULL;
96         vn_cs_decoder_set_fatal(dec);
97     }
98 }
99 
vn_replace_vkCreatePrivateDataSlot_args_handle(struct vn_command_vkCreatePrivateDataSlot * args)100 static inline void vn_replace_vkCreatePrivateDataSlot_args_handle(struct vn_command_vkCreatePrivateDataSlot *args)
101 {
102     vn_replace_VkDevice_handle(&args->device);
103     if (args->pCreateInfo)
104         vn_replace_VkPrivateDataSlotCreateInfo_handle((VkPrivateDataSlotCreateInfo *)args->pCreateInfo);
105     /* skip args->pAllocator */
106     /* skip args->pPrivateDataSlot */
107 }
108 
vn_encode_vkCreatePrivateDataSlot_reply(struct vn_cs_encoder * enc,const struct vn_command_vkCreatePrivateDataSlot * args)109 static inline void vn_encode_vkCreatePrivateDataSlot_reply(struct vn_cs_encoder *enc, const struct vn_command_vkCreatePrivateDataSlot *args)
110 {
111     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkCreatePrivateDataSlot_EXT});
112 
113     vn_encode_VkResult(enc, &args->ret);
114     /* skip args->device */
115     /* skip args->pCreateInfo */
116     /* skip args->pAllocator */
117     if (vn_encode_simple_pointer(enc, args->pPrivateDataSlot))
118         vn_encode_VkPrivateDataSlot(enc, args->pPrivateDataSlot);
119 }
120 
vn_decode_vkDestroyPrivateDataSlot_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkDestroyPrivateDataSlot * args)121 static inline void vn_decode_vkDestroyPrivateDataSlot_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkDestroyPrivateDataSlot *args)
122 {
123     vn_decode_VkDevice_lookup(dec, &args->device);
124     vn_decode_VkPrivateDataSlot_lookup(dec, &args->privateDataSlot);
125     if (vn_decode_simple_pointer(dec)) {
126         vn_cs_decoder_set_fatal(dec);
127     } else {
128         args->pAllocator = NULL;
129     }
130 }
131 
vn_replace_vkDestroyPrivateDataSlot_args_handle(struct vn_command_vkDestroyPrivateDataSlot * args)132 static inline void vn_replace_vkDestroyPrivateDataSlot_args_handle(struct vn_command_vkDestroyPrivateDataSlot *args)
133 {
134     vn_replace_VkDevice_handle(&args->device);
135     vn_replace_VkPrivateDataSlot_handle(&args->privateDataSlot);
136     /* skip args->pAllocator */
137 }
138 
vn_encode_vkDestroyPrivateDataSlot_reply(struct vn_cs_encoder * enc,const struct vn_command_vkDestroyPrivateDataSlot * args)139 static inline void vn_encode_vkDestroyPrivateDataSlot_reply(struct vn_cs_encoder *enc, const struct vn_command_vkDestroyPrivateDataSlot *args)
140 {
141     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkDestroyPrivateDataSlot_EXT});
142 
143     /* skip args->device */
144     /* skip args->privateDataSlot */
145     /* skip args->pAllocator */
146 }
147 
vn_decode_vkSetPrivateData_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkSetPrivateData * args)148 static inline void vn_decode_vkSetPrivateData_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkSetPrivateData *args)
149 {
150     vn_decode_VkDevice_lookup(dec, &args->device);
151     vn_decode_VkObjectType(dec, &args->objectType);
152     vn_decode_uint64_t(dec, &args->objectHandle);
153     vn_decode_VkPrivateDataSlot_lookup(dec, &args->privateDataSlot);
154     vn_decode_uint64_t(dec, &args->data);
155 }
156 
vn_replace_vkSetPrivateData_args_handle(struct vn_command_vkSetPrivateData * args)157 static inline void vn_replace_vkSetPrivateData_args_handle(struct vn_command_vkSetPrivateData *args)
158 {
159     vn_replace_VkDevice_handle(&args->device);
160     /* skip args->objectType */
161     /* skip args->objectHandle */
162     vn_replace_VkPrivateDataSlot_handle(&args->privateDataSlot);
163     /* skip args->data */
164 }
165 
vn_encode_vkSetPrivateData_reply(struct vn_cs_encoder * enc,const struct vn_command_vkSetPrivateData * args)166 static inline void vn_encode_vkSetPrivateData_reply(struct vn_cs_encoder *enc, const struct vn_command_vkSetPrivateData *args)
167 {
168     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkSetPrivateData_EXT});
169 
170     vn_encode_VkResult(enc, &args->ret);
171     /* skip args->device */
172     /* skip args->objectType */
173     /* skip args->objectHandle */
174     /* skip args->privateDataSlot */
175     /* skip args->data */
176 }
177 
vn_decode_vkGetPrivateData_args_temp(struct vn_cs_decoder * dec,struct vn_command_vkGetPrivateData * args)178 static inline void vn_decode_vkGetPrivateData_args_temp(struct vn_cs_decoder *dec, struct vn_command_vkGetPrivateData *args)
179 {
180     vn_decode_VkDevice_lookup(dec, &args->device);
181     vn_decode_VkObjectType(dec, &args->objectType);
182     vn_decode_uint64_t(dec, &args->objectHandle);
183     vn_decode_VkPrivateDataSlot_lookup(dec, &args->privateDataSlot);
184     if (vn_decode_simple_pointer(dec)) {
185         args->pData = vn_cs_decoder_alloc_temp(dec, sizeof(*args->pData));
186         if (!args->pData) return;
187     } else {
188         args->pData = NULL;
189         vn_cs_decoder_set_fatal(dec);
190     }
191 }
192 
vn_replace_vkGetPrivateData_args_handle(struct vn_command_vkGetPrivateData * args)193 static inline void vn_replace_vkGetPrivateData_args_handle(struct vn_command_vkGetPrivateData *args)
194 {
195     vn_replace_VkDevice_handle(&args->device);
196     /* skip args->objectType */
197     /* skip args->objectHandle */
198     vn_replace_VkPrivateDataSlot_handle(&args->privateDataSlot);
199     /* skip args->pData */
200 }
201 
vn_encode_vkGetPrivateData_reply(struct vn_cs_encoder * enc,const struct vn_command_vkGetPrivateData * args)202 static inline void vn_encode_vkGetPrivateData_reply(struct vn_cs_encoder *enc, const struct vn_command_vkGetPrivateData *args)
203 {
204     vn_encode_VkCommandTypeEXT(enc, &(VkCommandTypeEXT){VK_COMMAND_TYPE_vkGetPrivateData_EXT});
205 
206     /* skip args->device */
207     /* skip args->objectType */
208     /* skip args->objectHandle */
209     /* skip args->privateDataSlot */
210     if (vn_encode_simple_pointer(enc, args->pData))
211         vn_encode_uint64_t(enc, args->pData);
212 }
213 
vn_dispatch_vkCreatePrivateDataSlot(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)214 static inline void vn_dispatch_vkCreatePrivateDataSlot(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
215 {
216     struct vn_command_vkCreatePrivateDataSlot args;
217 
218     if (!ctx->dispatch_vkCreatePrivateDataSlot) {
219         vn_cs_decoder_set_fatal(ctx->decoder);
220         return;
221     }
222 
223     vn_decode_vkCreatePrivateDataSlot_args_temp(ctx->decoder, &args);
224     if (!args.device) {
225         vn_cs_decoder_set_fatal(ctx->decoder);
226         return;
227     }
228 
229     if (!vn_cs_decoder_get_fatal(ctx->decoder))
230         ctx->dispatch_vkCreatePrivateDataSlot(ctx, &args);
231 
232 #ifdef DEBUG
233     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
234         vn_dispatch_debug_log(ctx, "vkCreatePrivateDataSlot returned %d", args.ret);
235 #endif
236 
237     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
238        vn_encode_vkCreatePrivateDataSlot_reply(ctx->encoder, &args);
239 
240     vn_cs_decoder_reset_temp_pool(ctx->decoder);
241 }
242 
vn_dispatch_vkDestroyPrivateDataSlot(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)243 static inline void vn_dispatch_vkDestroyPrivateDataSlot(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
244 {
245     struct vn_command_vkDestroyPrivateDataSlot args;
246 
247     if (!ctx->dispatch_vkDestroyPrivateDataSlot) {
248         vn_cs_decoder_set_fatal(ctx->decoder);
249         return;
250     }
251 
252     vn_decode_vkDestroyPrivateDataSlot_args_temp(ctx->decoder, &args);
253     if (!args.device) {
254         vn_cs_decoder_set_fatal(ctx->decoder);
255         return;
256     }
257 
258     if (!vn_cs_decoder_get_fatal(ctx->decoder))
259         ctx->dispatch_vkDestroyPrivateDataSlot(ctx, &args);
260 
261 
262     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
263        vn_encode_vkDestroyPrivateDataSlot_reply(ctx->encoder, &args);
264 
265     vn_cs_decoder_reset_temp_pool(ctx->decoder);
266 }
267 
vn_dispatch_vkSetPrivateData(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)268 static inline void vn_dispatch_vkSetPrivateData(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
269 {
270     struct vn_command_vkSetPrivateData args;
271 
272     if (!ctx->dispatch_vkSetPrivateData) {
273         vn_cs_decoder_set_fatal(ctx->decoder);
274         return;
275     }
276 
277     vn_decode_vkSetPrivateData_args_temp(ctx->decoder, &args);
278     if (!args.device) {
279         vn_cs_decoder_set_fatal(ctx->decoder);
280         return;
281     }
282 
283     if (!vn_cs_decoder_get_fatal(ctx->decoder))
284         ctx->dispatch_vkSetPrivateData(ctx, &args);
285 
286 #ifdef DEBUG
287     if (!vn_cs_decoder_get_fatal(ctx->decoder) && vn_dispatch_should_log_result(args.ret))
288         vn_dispatch_debug_log(ctx, "vkSetPrivateData returned %d", args.ret);
289 #endif
290 
291     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
292        vn_encode_vkSetPrivateData_reply(ctx->encoder, &args);
293 
294     vn_cs_decoder_reset_temp_pool(ctx->decoder);
295 }
296 
vn_dispatch_vkGetPrivateData(struct vn_dispatch_context * ctx,VkCommandFlagsEXT flags)297 static inline void vn_dispatch_vkGetPrivateData(struct vn_dispatch_context *ctx, VkCommandFlagsEXT flags)
298 {
299     struct vn_command_vkGetPrivateData args;
300 
301     if (!ctx->dispatch_vkGetPrivateData) {
302         vn_cs_decoder_set_fatal(ctx->decoder);
303         return;
304     }
305 
306     vn_decode_vkGetPrivateData_args_temp(ctx->decoder, &args);
307     if (!args.device) {
308         vn_cs_decoder_set_fatal(ctx->decoder);
309         return;
310     }
311 
312     if (!vn_cs_decoder_get_fatal(ctx->decoder))
313         ctx->dispatch_vkGetPrivateData(ctx, &args);
314 
315 
316     if (!vn_cs_decoder_get_fatal(ctx->decoder) && (flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT))
317        vn_encode_vkGetPrivateData_reply(ctx->encoder, &args);
318 
319     vn_cs_decoder_reset_temp_pool(ctx->decoder);
320 }
321 
322 #pragma GCC diagnostic pop
323 
324 #endif /* VN_PROTOCOL_RENDERER_PRIVATE_DATA_SLOT_H */
325