1bf215546Sopenharmony_ci/* This file is generated by venus-protocol. See vn_protocol_driver.h. */ 2bf215546Sopenharmony_ci 3bf215546Sopenharmony_ci/* 4bf215546Sopenharmony_ci * Copyright 2020 Google LLC 5bf215546Sopenharmony_ci * SPDX-License-Identifier: MIT 6bf215546Sopenharmony_ci */ 7bf215546Sopenharmony_ci 8bf215546Sopenharmony_ci#ifndef VN_PROTOCOL_DRIVER_EVENT_H 9bf215546Sopenharmony_ci#define VN_PROTOCOL_DRIVER_EVENT_H 10bf215546Sopenharmony_ci 11bf215546Sopenharmony_ci#include "vn_instance.h" 12bf215546Sopenharmony_ci#include "vn_protocol_driver_structs.h" 13bf215546Sopenharmony_ci 14bf215546Sopenharmony_ci/* struct VkEventCreateInfo chain */ 15bf215546Sopenharmony_ci 16bf215546Sopenharmony_cistatic inline size_t 17bf215546Sopenharmony_civn_sizeof_VkEventCreateInfo_pnext(const void *val) 18bf215546Sopenharmony_ci{ 19bf215546Sopenharmony_ci /* no known/supported struct */ 20bf215546Sopenharmony_ci return vn_sizeof_simple_pointer(NULL); 21bf215546Sopenharmony_ci} 22bf215546Sopenharmony_ci 23bf215546Sopenharmony_cistatic inline size_t 24bf215546Sopenharmony_civn_sizeof_VkEventCreateInfo_self(const VkEventCreateInfo *val) 25bf215546Sopenharmony_ci{ 26bf215546Sopenharmony_ci size_t size = 0; 27bf215546Sopenharmony_ci /* skip val->{sType,pNext} */ 28bf215546Sopenharmony_ci size += vn_sizeof_VkFlags(&val->flags); 29bf215546Sopenharmony_ci return size; 30bf215546Sopenharmony_ci} 31bf215546Sopenharmony_ci 32bf215546Sopenharmony_cistatic inline size_t 33bf215546Sopenharmony_civn_sizeof_VkEventCreateInfo(const VkEventCreateInfo *val) 34bf215546Sopenharmony_ci{ 35bf215546Sopenharmony_ci size_t size = 0; 36bf215546Sopenharmony_ci 37bf215546Sopenharmony_ci size += vn_sizeof_VkStructureType(&val->sType); 38bf215546Sopenharmony_ci size += vn_sizeof_VkEventCreateInfo_pnext(val->pNext); 39bf215546Sopenharmony_ci size += vn_sizeof_VkEventCreateInfo_self(val); 40bf215546Sopenharmony_ci 41bf215546Sopenharmony_ci return size; 42bf215546Sopenharmony_ci} 43bf215546Sopenharmony_ci 44bf215546Sopenharmony_cistatic inline void 45bf215546Sopenharmony_civn_encode_VkEventCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val) 46bf215546Sopenharmony_ci{ 47bf215546Sopenharmony_ci /* no known/supported struct */ 48bf215546Sopenharmony_ci vn_encode_simple_pointer(enc, NULL); 49bf215546Sopenharmony_ci} 50bf215546Sopenharmony_ci 51bf215546Sopenharmony_cistatic inline void 52bf215546Sopenharmony_civn_encode_VkEventCreateInfo_self(struct vn_cs_encoder *enc, const VkEventCreateInfo *val) 53bf215546Sopenharmony_ci{ 54bf215546Sopenharmony_ci /* skip val->{sType,pNext} */ 55bf215546Sopenharmony_ci vn_encode_VkFlags(enc, &val->flags); 56bf215546Sopenharmony_ci} 57bf215546Sopenharmony_ci 58bf215546Sopenharmony_cistatic inline void 59bf215546Sopenharmony_civn_encode_VkEventCreateInfo(struct vn_cs_encoder *enc, const VkEventCreateInfo *val) 60bf215546Sopenharmony_ci{ 61bf215546Sopenharmony_ci assert(val->sType == VK_STRUCTURE_TYPE_EVENT_CREATE_INFO); 62bf215546Sopenharmony_ci vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_EVENT_CREATE_INFO }); 63bf215546Sopenharmony_ci vn_encode_VkEventCreateInfo_pnext(enc, val->pNext); 64bf215546Sopenharmony_ci vn_encode_VkEventCreateInfo_self(enc, val); 65bf215546Sopenharmony_ci} 66bf215546Sopenharmony_ci 67bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkCreateEvent(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) 68bf215546Sopenharmony_ci{ 69bf215546Sopenharmony_ci const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateEvent_EXT; 70bf215546Sopenharmony_ci const VkFlags cmd_flags = 0; 71bf215546Sopenharmony_ci size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 72bf215546Sopenharmony_ci 73bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkDevice(&device); 74bf215546Sopenharmony_ci cmd_size += vn_sizeof_simple_pointer(pCreateInfo); 75bf215546Sopenharmony_ci if (pCreateInfo) 76bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkEventCreateInfo(pCreateInfo); 77bf215546Sopenharmony_ci cmd_size += vn_sizeof_simple_pointer(pAllocator); 78bf215546Sopenharmony_ci if (pAllocator) 79bf215546Sopenharmony_ci assert(false); 80bf215546Sopenharmony_ci cmd_size += vn_sizeof_simple_pointer(pEvent); 81bf215546Sopenharmony_ci if (pEvent) 82bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkEvent(pEvent); 83bf215546Sopenharmony_ci 84bf215546Sopenharmony_ci return cmd_size; 85bf215546Sopenharmony_ci} 86bf215546Sopenharmony_ci 87bf215546Sopenharmony_cistatic inline void vn_encode_vkCreateEvent(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) 88bf215546Sopenharmony_ci{ 89bf215546Sopenharmony_ci const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateEvent_EXT; 90bf215546Sopenharmony_ci 91bf215546Sopenharmony_ci vn_encode_VkCommandTypeEXT(enc, &cmd_type); 92bf215546Sopenharmony_ci vn_encode_VkFlags(enc, &cmd_flags); 93bf215546Sopenharmony_ci 94bf215546Sopenharmony_ci vn_encode_VkDevice(enc, &device); 95bf215546Sopenharmony_ci if (vn_encode_simple_pointer(enc, pCreateInfo)) 96bf215546Sopenharmony_ci vn_encode_VkEventCreateInfo(enc, pCreateInfo); 97bf215546Sopenharmony_ci if (vn_encode_simple_pointer(enc, pAllocator)) 98bf215546Sopenharmony_ci assert(false); 99bf215546Sopenharmony_ci if (vn_encode_simple_pointer(enc, pEvent)) 100bf215546Sopenharmony_ci vn_encode_VkEvent(enc, pEvent); 101bf215546Sopenharmony_ci} 102bf215546Sopenharmony_ci 103bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkCreateEvent_reply(VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) 104bf215546Sopenharmony_ci{ 105bf215546Sopenharmony_ci const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateEvent_EXT; 106bf215546Sopenharmony_ci size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 107bf215546Sopenharmony_ci 108bf215546Sopenharmony_ci VkResult ret; 109bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkResult(&ret); 110bf215546Sopenharmony_ci /* skip device */ 111bf215546Sopenharmony_ci /* skip pCreateInfo */ 112bf215546Sopenharmony_ci /* skip pAllocator */ 113bf215546Sopenharmony_ci cmd_size += vn_sizeof_simple_pointer(pEvent); 114bf215546Sopenharmony_ci if (pEvent) 115bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkEvent(pEvent); 116bf215546Sopenharmony_ci 117bf215546Sopenharmony_ci return cmd_size; 118bf215546Sopenharmony_ci} 119bf215546Sopenharmony_ci 120bf215546Sopenharmony_cistatic inline VkResult vn_decode_vkCreateEvent_reply(struct vn_cs_decoder *dec, VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) 121bf215546Sopenharmony_ci{ 122bf215546Sopenharmony_ci VkCommandTypeEXT command_type; 123bf215546Sopenharmony_ci vn_decode_VkCommandTypeEXT(dec, &command_type); 124bf215546Sopenharmony_ci assert(command_type == VK_COMMAND_TYPE_vkCreateEvent_EXT); 125bf215546Sopenharmony_ci 126bf215546Sopenharmony_ci VkResult ret; 127bf215546Sopenharmony_ci vn_decode_VkResult(dec, &ret); 128bf215546Sopenharmony_ci /* skip device */ 129bf215546Sopenharmony_ci /* skip pCreateInfo */ 130bf215546Sopenharmony_ci /* skip pAllocator */ 131bf215546Sopenharmony_ci if (vn_decode_simple_pointer(dec)) { 132bf215546Sopenharmony_ci vn_decode_VkEvent(dec, pEvent); 133bf215546Sopenharmony_ci } else { 134bf215546Sopenharmony_ci pEvent = NULL; 135bf215546Sopenharmony_ci } 136bf215546Sopenharmony_ci 137bf215546Sopenharmony_ci return ret; 138bf215546Sopenharmony_ci} 139bf215546Sopenharmony_ci 140bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkDestroyEvent(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) 141bf215546Sopenharmony_ci{ 142bf215546Sopenharmony_ci const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyEvent_EXT; 143bf215546Sopenharmony_ci const VkFlags cmd_flags = 0; 144bf215546Sopenharmony_ci size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 145bf215546Sopenharmony_ci 146bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkDevice(&device); 147bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkEvent(&event); 148bf215546Sopenharmony_ci cmd_size += vn_sizeof_simple_pointer(pAllocator); 149bf215546Sopenharmony_ci if (pAllocator) 150bf215546Sopenharmony_ci assert(false); 151bf215546Sopenharmony_ci 152bf215546Sopenharmony_ci return cmd_size; 153bf215546Sopenharmony_ci} 154bf215546Sopenharmony_ci 155bf215546Sopenharmony_cistatic inline void vn_encode_vkDestroyEvent(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) 156bf215546Sopenharmony_ci{ 157bf215546Sopenharmony_ci const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyEvent_EXT; 158bf215546Sopenharmony_ci 159bf215546Sopenharmony_ci vn_encode_VkCommandTypeEXT(enc, &cmd_type); 160bf215546Sopenharmony_ci vn_encode_VkFlags(enc, &cmd_flags); 161bf215546Sopenharmony_ci 162bf215546Sopenharmony_ci vn_encode_VkDevice(enc, &device); 163bf215546Sopenharmony_ci vn_encode_VkEvent(enc, &event); 164bf215546Sopenharmony_ci if (vn_encode_simple_pointer(enc, pAllocator)) 165bf215546Sopenharmony_ci assert(false); 166bf215546Sopenharmony_ci} 167bf215546Sopenharmony_ci 168bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkDestroyEvent_reply(VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) 169bf215546Sopenharmony_ci{ 170bf215546Sopenharmony_ci const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyEvent_EXT; 171bf215546Sopenharmony_ci size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 172bf215546Sopenharmony_ci 173bf215546Sopenharmony_ci /* skip device */ 174bf215546Sopenharmony_ci /* skip event */ 175bf215546Sopenharmony_ci /* skip pAllocator */ 176bf215546Sopenharmony_ci 177bf215546Sopenharmony_ci return cmd_size; 178bf215546Sopenharmony_ci} 179bf215546Sopenharmony_ci 180bf215546Sopenharmony_cistatic inline void vn_decode_vkDestroyEvent_reply(struct vn_cs_decoder *dec, VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) 181bf215546Sopenharmony_ci{ 182bf215546Sopenharmony_ci VkCommandTypeEXT command_type; 183bf215546Sopenharmony_ci vn_decode_VkCommandTypeEXT(dec, &command_type); 184bf215546Sopenharmony_ci assert(command_type == VK_COMMAND_TYPE_vkDestroyEvent_EXT); 185bf215546Sopenharmony_ci 186bf215546Sopenharmony_ci /* skip device */ 187bf215546Sopenharmony_ci /* skip event */ 188bf215546Sopenharmony_ci /* skip pAllocator */ 189bf215546Sopenharmony_ci} 190bf215546Sopenharmony_ci 191bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetEventStatus(VkDevice device, VkEvent event) 192bf215546Sopenharmony_ci{ 193bf215546Sopenharmony_ci const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetEventStatus_EXT; 194bf215546Sopenharmony_ci const VkFlags cmd_flags = 0; 195bf215546Sopenharmony_ci size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 196bf215546Sopenharmony_ci 197bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkDevice(&device); 198bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkEvent(&event); 199bf215546Sopenharmony_ci 200bf215546Sopenharmony_ci return cmd_size; 201bf215546Sopenharmony_ci} 202bf215546Sopenharmony_ci 203bf215546Sopenharmony_cistatic inline void vn_encode_vkGetEventStatus(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkEvent event) 204bf215546Sopenharmony_ci{ 205bf215546Sopenharmony_ci const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetEventStatus_EXT; 206bf215546Sopenharmony_ci 207bf215546Sopenharmony_ci vn_encode_VkCommandTypeEXT(enc, &cmd_type); 208bf215546Sopenharmony_ci vn_encode_VkFlags(enc, &cmd_flags); 209bf215546Sopenharmony_ci 210bf215546Sopenharmony_ci vn_encode_VkDevice(enc, &device); 211bf215546Sopenharmony_ci vn_encode_VkEvent(enc, &event); 212bf215546Sopenharmony_ci} 213bf215546Sopenharmony_ci 214bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkGetEventStatus_reply(VkDevice device, VkEvent event) 215bf215546Sopenharmony_ci{ 216bf215546Sopenharmony_ci const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkGetEventStatus_EXT; 217bf215546Sopenharmony_ci size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 218bf215546Sopenharmony_ci 219bf215546Sopenharmony_ci VkResult ret; 220bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkResult(&ret); 221bf215546Sopenharmony_ci /* skip device */ 222bf215546Sopenharmony_ci /* skip event */ 223bf215546Sopenharmony_ci 224bf215546Sopenharmony_ci return cmd_size; 225bf215546Sopenharmony_ci} 226bf215546Sopenharmony_ci 227bf215546Sopenharmony_cistatic inline VkResult vn_decode_vkGetEventStatus_reply(struct vn_cs_decoder *dec, VkDevice device, VkEvent event) 228bf215546Sopenharmony_ci{ 229bf215546Sopenharmony_ci VkCommandTypeEXT command_type; 230bf215546Sopenharmony_ci vn_decode_VkCommandTypeEXT(dec, &command_type); 231bf215546Sopenharmony_ci assert(command_type == VK_COMMAND_TYPE_vkGetEventStatus_EXT); 232bf215546Sopenharmony_ci 233bf215546Sopenharmony_ci VkResult ret; 234bf215546Sopenharmony_ci vn_decode_VkResult(dec, &ret); 235bf215546Sopenharmony_ci /* skip device */ 236bf215546Sopenharmony_ci /* skip event */ 237bf215546Sopenharmony_ci 238bf215546Sopenharmony_ci return ret; 239bf215546Sopenharmony_ci} 240bf215546Sopenharmony_ci 241bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkSetEvent(VkDevice device, VkEvent event) 242bf215546Sopenharmony_ci{ 243bf215546Sopenharmony_ci const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSetEvent_EXT; 244bf215546Sopenharmony_ci const VkFlags cmd_flags = 0; 245bf215546Sopenharmony_ci size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 246bf215546Sopenharmony_ci 247bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkDevice(&device); 248bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkEvent(&event); 249bf215546Sopenharmony_ci 250bf215546Sopenharmony_ci return cmd_size; 251bf215546Sopenharmony_ci} 252bf215546Sopenharmony_ci 253bf215546Sopenharmony_cistatic inline void vn_encode_vkSetEvent(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkEvent event) 254bf215546Sopenharmony_ci{ 255bf215546Sopenharmony_ci const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSetEvent_EXT; 256bf215546Sopenharmony_ci 257bf215546Sopenharmony_ci vn_encode_VkCommandTypeEXT(enc, &cmd_type); 258bf215546Sopenharmony_ci vn_encode_VkFlags(enc, &cmd_flags); 259bf215546Sopenharmony_ci 260bf215546Sopenharmony_ci vn_encode_VkDevice(enc, &device); 261bf215546Sopenharmony_ci vn_encode_VkEvent(enc, &event); 262bf215546Sopenharmony_ci} 263bf215546Sopenharmony_ci 264bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkSetEvent_reply(VkDevice device, VkEvent event) 265bf215546Sopenharmony_ci{ 266bf215546Sopenharmony_ci const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkSetEvent_EXT; 267bf215546Sopenharmony_ci size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 268bf215546Sopenharmony_ci 269bf215546Sopenharmony_ci VkResult ret; 270bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkResult(&ret); 271bf215546Sopenharmony_ci /* skip device */ 272bf215546Sopenharmony_ci /* skip event */ 273bf215546Sopenharmony_ci 274bf215546Sopenharmony_ci return cmd_size; 275bf215546Sopenharmony_ci} 276bf215546Sopenharmony_ci 277bf215546Sopenharmony_cistatic inline VkResult vn_decode_vkSetEvent_reply(struct vn_cs_decoder *dec, VkDevice device, VkEvent event) 278bf215546Sopenharmony_ci{ 279bf215546Sopenharmony_ci VkCommandTypeEXT command_type; 280bf215546Sopenharmony_ci vn_decode_VkCommandTypeEXT(dec, &command_type); 281bf215546Sopenharmony_ci assert(command_type == VK_COMMAND_TYPE_vkSetEvent_EXT); 282bf215546Sopenharmony_ci 283bf215546Sopenharmony_ci VkResult ret; 284bf215546Sopenharmony_ci vn_decode_VkResult(dec, &ret); 285bf215546Sopenharmony_ci /* skip device */ 286bf215546Sopenharmony_ci /* skip event */ 287bf215546Sopenharmony_ci 288bf215546Sopenharmony_ci return ret; 289bf215546Sopenharmony_ci} 290bf215546Sopenharmony_ci 291bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkResetEvent(VkDevice device, VkEvent event) 292bf215546Sopenharmony_ci{ 293bf215546Sopenharmony_ci const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetEvent_EXT; 294bf215546Sopenharmony_ci const VkFlags cmd_flags = 0; 295bf215546Sopenharmony_ci size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags); 296bf215546Sopenharmony_ci 297bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkDevice(&device); 298bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkEvent(&event); 299bf215546Sopenharmony_ci 300bf215546Sopenharmony_ci return cmd_size; 301bf215546Sopenharmony_ci} 302bf215546Sopenharmony_ci 303bf215546Sopenharmony_cistatic inline void vn_encode_vkResetEvent(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkEvent event) 304bf215546Sopenharmony_ci{ 305bf215546Sopenharmony_ci const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetEvent_EXT; 306bf215546Sopenharmony_ci 307bf215546Sopenharmony_ci vn_encode_VkCommandTypeEXT(enc, &cmd_type); 308bf215546Sopenharmony_ci vn_encode_VkFlags(enc, &cmd_flags); 309bf215546Sopenharmony_ci 310bf215546Sopenharmony_ci vn_encode_VkDevice(enc, &device); 311bf215546Sopenharmony_ci vn_encode_VkEvent(enc, &event); 312bf215546Sopenharmony_ci} 313bf215546Sopenharmony_ci 314bf215546Sopenharmony_cistatic inline size_t vn_sizeof_vkResetEvent_reply(VkDevice device, VkEvent event) 315bf215546Sopenharmony_ci{ 316bf215546Sopenharmony_ci const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetEvent_EXT; 317bf215546Sopenharmony_ci size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type); 318bf215546Sopenharmony_ci 319bf215546Sopenharmony_ci VkResult ret; 320bf215546Sopenharmony_ci cmd_size += vn_sizeof_VkResult(&ret); 321bf215546Sopenharmony_ci /* skip device */ 322bf215546Sopenharmony_ci /* skip event */ 323bf215546Sopenharmony_ci 324bf215546Sopenharmony_ci return cmd_size; 325bf215546Sopenharmony_ci} 326bf215546Sopenharmony_ci 327bf215546Sopenharmony_cistatic inline VkResult vn_decode_vkResetEvent_reply(struct vn_cs_decoder *dec, VkDevice device, VkEvent event) 328bf215546Sopenharmony_ci{ 329bf215546Sopenharmony_ci VkCommandTypeEXT command_type; 330bf215546Sopenharmony_ci vn_decode_VkCommandTypeEXT(dec, &command_type); 331bf215546Sopenharmony_ci assert(command_type == VK_COMMAND_TYPE_vkResetEvent_EXT); 332bf215546Sopenharmony_ci 333bf215546Sopenharmony_ci VkResult ret; 334bf215546Sopenharmony_ci vn_decode_VkResult(dec, &ret); 335bf215546Sopenharmony_ci /* skip device */ 336bf215546Sopenharmony_ci /* skip event */ 337bf215546Sopenharmony_ci 338bf215546Sopenharmony_ci return ret; 339bf215546Sopenharmony_ci} 340bf215546Sopenharmony_ci 341bf215546Sopenharmony_cistatic inline void vn_submit_vkCreateEvent(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent, struct vn_instance_submit_command *submit) 342bf215546Sopenharmony_ci{ 343bf215546Sopenharmony_ci uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 344bf215546Sopenharmony_ci void *cmd_data = local_cmd_data; 345bf215546Sopenharmony_ci size_t cmd_size = vn_sizeof_vkCreateEvent(device, pCreateInfo, pAllocator, pEvent); 346bf215546Sopenharmony_ci if (cmd_size > sizeof(local_cmd_data)) { 347bf215546Sopenharmony_ci cmd_data = malloc(cmd_size); 348bf215546Sopenharmony_ci if (!cmd_data) 349bf215546Sopenharmony_ci cmd_size = 0; 350bf215546Sopenharmony_ci } 351bf215546Sopenharmony_ci const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateEvent_reply(device, pCreateInfo, pAllocator, pEvent) : 0; 352bf215546Sopenharmony_ci 353bf215546Sopenharmony_ci struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 354bf215546Sopenharmony_ci if (cmd_size) { 355bf215546Sopenharmony_ci vn_encode_vkCreateEvent(enc, cmd_flags, device, pCreateInfo, pAllocator, pEvent); 356bf215546Sopenharmony_ci vn_instance_submit_command(vn_instance, submit); 357bf215546Sopenharmony_ci if (cmd_data != local_cmd_data) 358bf215546Sopenharmony_ci free(cmd_data); 359bf215546Sopenharmony_ci } 360bf215546Sopenharmony_ci} 361bf215546Sopenharmony_ci 362bf215546Sopenharmony_cistatic inline void vn_submit_vkDestroyEvent(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator, struct vn_instance_submit_command *submit) 363bf215546Sopenharmony_ci{ 364bf215546Sopenharmony_ci uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 365bf215546Sopenharmony_ci void *cmd_data = local_cmd_data; 366bf215546Sopenharmony_ci size_t cmd_size = vn_sizeof_vkDestroyEvent(device, event, pAllocator); 367bf215546Sopenharmony_ci if (cmd_size > sizeof(local_cmd_data)) { 368bf215546Sopenharmony_ci cmd_data = malloc(cmd_size); 369bf215546Sopenharmony_ci if (!cmd_data) 370bf215546Sopenharmony_ci cmd_size = 0; 371bf215546Sopenharmony_ci } 372bf215546Sopenharmony_ci const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyEvent_reply(device, event, pAllocator) : 0; 373bf215546Sopenharmony_ci 374bf215546Sopenharmony_ci struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 375bf215546Sopenharmony_ci if (cmd_size) { 376bf215546Sopenharmony_ci vn_encode_vkDestroyEvent(enc, cmd_flags, device, event, pAllocator); 377bf215546Sopenharmony_ci vn_instance_submit_command(vn_instance, submit); 378bf215546Sopenharmony_ci if (cmd_data != local_cmd_data) 379bf215546Sopenharmony_ci free(cmd_data); 380bf215546Sopenharmony_ci } 381bf215546Sopenharmony_ci} 382bf215546Sopenharmony_ci 383bf215546Sopenharmony_cistatic inline void vn_submit_vkGetEventStatus(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkEvent event, struct vn_instance_submit_command *submit) 384bf215546Sopenharmony_ci{ 385bf215546Sopenharmony_ci uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 386bf215546Sopenharmony_ci void *cmd_data = local_cmd_data; 387bf215546Sopenharmony_ci size_t cmd_size = vn_sizeof_vkGetEventStatus(device, event); 388bf215546Sopenharmony_ci if (cmd_size > sizeof(local_cmd_data)) { 389bf215546Sopenharmony_ci cmd_data = malloc(cmd_size); 390bf215546Sopenharmony_ci if (!cmd_data) 391bf215546Sopenharmony_ci cmd_size = 0; 392bf215546Sopenharmony_ci } 393bf215546Sopenharmony_ci const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkGetEventStatus_reply(device, event) : 0; 394bf215546Sopenharmony_ci 395bf215546Sopenharmony_ci struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 396bf215546Sopenharmony_ci if (cmd_size) { 397bf215546Sopenharmony_ci vn_encode_vkGetEventStatus(enc, cmd_flags, device, event); 398bf215546Sopenharmony_ci vn_instance_submit_command(vn_instance, submit); 399bf215546Sopenharmony_ci if (cmd_data != local_cmd_data) 400bf215546Sopenharmony_ci free(cmd_data); 401bf215546Sopenharmony_ci } 402bf215546Sopenharmony_ci} 403bf215546Sopenharmony_ci 404bf215546Sopenharmony_cistatic inline void vn_submit_vkSetEvent(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkEvent event, struct vn_instance_submit_command *submit) 405bf215546Sopenharmony_ci{ 406bf215546Sopenharmony_ci uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 407bf215546Sopenharmony_ci void *cmd_data = local_cmd_data; 408bf215546Sopenharmony_ci size_t cmd_size = vn_sizeof_vkSetEvent(device, event); 409bf215546Sopenharmony_ci if (cmd_size > sizeof(local_cmd_data)) { 410bf215546Sopenharmony_ci cmd_data = malloc(cmd_size); 411bf215546Sopenharmony_ci if (!cmd_data) 412bf215546Sopenharmony_ci cmd_size = 0; 413bf215546Sopenharmony_ci } 414bf215546Sopenharmony_ci const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkSetEvent_reply(device, event) : 0; 415bf215546Sopenharmony_ci 416bf215546Sopenharmony_ci struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 417bf215546Sopenharmony_ci if (cmd_size) { 418bf215546Sopenharmony_ci vn_encode_vkSetEvent(enc, cmd_flags, device, event); 419bf215546Sopenharmony_ci vn_instance_submit_command(vn_instance, submit); 420bf215546Sopenharmony_ci if (cmd_data != local_cmd_data) 421bf215546Sopenharmony_ci free(cmd_data); 422bf215546Sopenharmony_ci } 423bf215546Sopenharmony_ci} 424bf215546Sopenharmony_ci 425bf215546Sopenharmony_cistatic inline void vn_submit_vkResetEvent(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkEvent event, struct vn_instance_submit_command *submit) 426bf215546Sopenharmony_ci{ 427bf215546Sopenharmony_ci uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE]; 428bf215546Sopenharmony_ci void *cmd_data = local_cmd_data; 429bf215546Sopenharmony_ci size_t cmd_size = vn_sizeof_vkResetEvent(device, event); 430bf215546Sopenharmony_ci if (cmd_size > sizeof(local_cmd_data)) { 431bf215546Sopenharmony_ci cmd_data = malloc(cmd_size); 432bf215546Sopenharmony_ci if (!cmd_data) 433bf215546Sopenharmony_ci cmd_size = 0; 434bf215546Sopenharmony_ci } 435bf215546Sopenharmony_ci const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkResetEvent_reply(device, event) : 0; 436bf215546Sopenharmony_ci 437bf215546Sopenharmony_ci struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size); 438bf215546Sopenharmony_ci if (cmd_size) { 439bf215546Sopenharmony_ci vn_encode_vkResetEvent(enc, cmd_flags, device, event); 440bf215546Sopenharmony_ci vn_instance_submit_command(vn_instance, submit); 441bf215546Sopenharmony_ci if (cmd_data != local_cmd_data) 442bf215546Sopenharmony_ci free(cmd_data); 443bf215546Sopenharmony_ci } 444bf215546Sopenharmony_ci} 445bf215546Sopenharmony_ci 446bf215546Sopenharmony_cistatic inline VkResult vn_call_vkCreateEvent(struct vn_instance *vn_instance, VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) 447bf215546Sopenharmony_ci{ 448bf215546Sopenharmony_ci VN_TRACE_FUNC(); 449bf215546Sopenharmony_ci 450bf215546Sopenharmony_ci struct vn_instance_submit_command submit; 451bf215546Sopenharmony_ci vn_submit_vkCreateEvent(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pAllocator, pEvent, &submit); 452bf215546Sopenharmony_ci struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 453bf215546Sopenharmony_ci if (dec) { 454bf215546Sopenharmony_ci const VkResult ret = vn_decode_vkCreateEvent_reply(dec, device, pCreateInfo, pAllocator, pEvent); 455bf215546Sopenharmony_ci vn_instance_free_command_reply(vn_instance, &submit); 456bf215546Sopenharmony_ci return ret; 457bf215546Sopenharmony_ci } else { 458bf215546Sopenharmony_ci return VK_ERROR_OUT_OF_HOST_MEMORY; 459bf215546Sopenharmony_ci } 460bf215546Sopenharmony_ci} 461bf215546Sopenharmony_ci 462bf215546Sopenharmony_cistatic inline void vn_async_vkCreateEvent(struct vn_instance *vn_instance, VkDevice device, const VkEventCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkEvent* pEvent) 463bf215546Sopenharmony_ci{ 464bf215546Sopenharmony_ci struct vn_instance_submit_command submit; 465bf215546Sopenharmony_ci vn_submit_vkCreateEvent(vn_instance, 0, device, pCreateInfo, pAllocator, pEvent, &submit); 466bf215546Sopenharmony_ci} 467bf215546Sopenharmony_ci 468bf215546Sopenharmony_cistatic inline void vn_call_vkDestroyEvent(struct vn_instance *vn_instance, VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) 469bf215546Sopenharmony_ci{ 470bf215546Sopenharmony_ci VN_TRACE_FUNC(); 471bf215546Sopenharmony_ci 472bf215546Sopenharmony_ci struct vn_instance_submit_command submit; 473bf215546Sopenharmony_ci vn_submit_vkDestroyEvent(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, event, pAllocator, &submit); 474bf215546Sopenharmony_ci struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 475bf215546Sopenharmony_ci if (dec) { 476bf215546Sopenharmony_ci vn_decode_vkDestroyEvent_reply(dec, device, event, pAllocator); 477bf215546Sopenharmony_ci vn_instance_free_command_reply(vn_instance, &submit); 478bf215546Sopenharmony_ci } 479bf215546Sopenharmony_ci} 480bf215546Sopenharmony_ci 481bf215546Sopenharmony_cistatic inline void vn_async_vkDestroyEvent(struct vn_instance *vn_instance, VkDevice device, VkEvent event, const VkAllocationCallbacks* pAllocator) 482bf215546Sopenharmony_ci{ 483bf215546Sopenharmony_ci struct vn_instance_submit_command submit; 484bf215546Sopenharmony_ci vn_submit_vkDestroyEvent(vn_instance, 0, device, event, pAllocator, &submit); 485bf215546Sopenharmony_ci} 486bf215546Sopenharmony_ci 487bf215546Sopenharmony_cistatic inline VkResult vn_call_vkGetEventStatus(struct vn_instance *vn_instance, VkDevice device, VkEvent event) 488bf215546Sopenharmony_ci{ 489bf215546Sopenharmony_ci VN_TRACE_FUNC(); 490bf215546Sopenharmony_ci 491bf215546Sopenharmony_ci struct vn_instance_submit_command submit; 492bf215546Sopenharmony_ci vn_submit_vkGetEventStatus(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, event, &submit); 493bf215546Sopenharmony_ci struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 494bf215546Sopenharmony_ci if (dec) { 495bf215546Sopenharmony_ci const VkResult ret = vn_decode_vkGetEventStatus_reply(dec, device, event); 496bf215546Sopenharmony_ci vn_instance_free_command_reply(vn_instance, &submit); 497bf215546Sopenharmony_ci return ret; 498bf215546Sopenharmony_ci } else { 499bf215546Sopenharmony_ci return VK_ERROR_OUT_OF_HOST_MEMORY; 500bf215546Sopenharmony_ci } 501bf215546Sopenharmony_ci} 502bf215546Sopenharmony_ci 503bf215546Sopenharmony_cistatic inline void vn_async_vkGetEventStatus(struct vn_instance *vn_instance, VkDevice device, VkEvent event) 504bf215546Sopenharmony_ci{ 505bf215546Sopenharmony_ci struct vn_instance_submit_command submit; 506bf215546Sopenharmony_ci vn_submit_vkGetEventStatus(vn_instance, 0, device, event, &submit); 507bf215546Sopenharmony_ci} 508bf215546Sopenharmony_ci 509bf215546Sopenharmony_cistatic inline VkResult vn_call_vkSetEvent(struct vn_instance *vn_instance, VkDevice device, VkEvent event) 510bf215546Sopenharmony_ci{ 511bf215546Sopenharmony_ci VN_TRACE_FUNC(); 512bf215546Sopenharmony_ci 513bf215546Sopenharmony_ci struct vn_instance_submit_command submit; 514bf215546Sopenharmony_ci vn_submit_vkSetEvent(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, event, &submit); 515bf215546Sopenharmony_ci struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 516bf215546Sopenharmony_ci if (dec) { 517bf215546Sopenharmony_ci const VkResult ret = vn_decode_vkSetEvent_reply(dec, device, event); 518bf215546Sopenharmony_ci vn_instance_free_command_reply(vn_instance, &submit); 519bf215546Sopenharmony_ci return ret; 520bf215546Sopenharmony_ci } else { 521bf215546Sopenharmony_ci return VK_ERROR_OUT_OF_HOST_MEMORY; 522bf215546Sopenharmony_ci } 523bf215546Sopenharmony_ci} 524bf215546Sopenharmony_ci 525bf215546Sopenharmony_cistatic inline void vn_async_vkSetEvent(struct vn_instance *vn_instance, VkDevice device, VkEvent event) 526bf215546Sopenharmony_ci{ 527bf215546Sopenharmony_ci struct vn_instance_submit_command submit; 528bf215546Sopenharmony_ci vn_submit_vkSetEvent(vn_instance, 0, device, event, &submit); 529bf215546Sopenharmony_ci} 530bf215546Sopenharmony_ci 531bf215546Sopenharmony_cistatic inline VkResult vn_call_vkResetEvent(struct vn_instance *vn_instance, VkDevice device, VkEvent event) 532bf215546Sopenharmony_ci{ 533bf215546Sopenharmony_ci VN_TRACE_FUNC(); 534bf215546Sopenharmony_ci 535bf215546Sopenharmony_ci struct vn_instance_submit_command submit; 536bf215546Sopenharmony_ci vn_submit_vkResetEvent(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, event, &submit); 537bf215546Sopenharmony_ci struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit); 538bf215546Sopenharmony_ci if (dec) { 539bf215546Sopenharmony_ci const VkResult ret = vn_decode_vkResetEvent_reply(dec, device, event); 540bf215546Sopenharmony_ci vn_instance_free_command_reply(vn_instance, &submit); 541bf215546Sopenharmony_ci return ret; 542bf215546Sopenharmony_ci } else { 543bf215546Sopenharmony_ci return VK_ERROR_OUT_OF_HOST_MEMORY; 544bf215546Sopenharmony_ci } 545bf215546Sopenharmony_ci} 546bf215546Sopenharmony_ci 547bf215546Sopenharmony_cistatic inline void vn_async_vkResetEvent(struct vn_instance *vn_instance, VkDevice device, VkEvent event) 548bf215546Sopenharmony_ci{ 549bf215546Sopenharmony_ci struct vn_instance_submit_command submit; 550bf215546Sopenharmony_ci vn_submit_vkResetEvent(vn_instance, 0, device, event, &submit); 551bf215546Sopenharmony_ci} 552bf215546Sopenharmony_ci 553bf215546Sopenharmony_ci#endif /* VN_PROTOCOL_DRIVER_EVENT_H */ 554