Path: blob/21.2-virgl/src/virtio/venus-protocol/vn_protocol_driver_descriptor_pool.h
4560 views
/* This file is generated by venus-protocol. See vn_protocol_driver.h. */12/*3* Copyright 2020 Google LLC4* SPDX-License-Identifier: MIT5*/67#ifndef VN_PROTOCOL_DRIVER_DESCRIPTOR_POOL_H8#define VN_PROTOCOL_DRIVER_DESCRIPTOR_POOL_H910#include "vn_device.h"11#include "vn_protocol_driver_structs.h"1213/* struct VkDescriptorPoolSize */1415static inline size_t16vn_sizeof_VkDescriptorPoolSize(const VkDescriptorPoolSize *val)17{18size_t size = 0;19size += vn_sizeof_VkDescriptorType(&val->type);20size += vn_sizeof_uint32_t(&val->descriptorCount);21return size;22}2324static inline void25vn_encode_VkDescriptorPoolSize(struct vn_cs_encoder *enc, const VkDescriptorPoolSize *val)26{27vn_encode_VkDescriptorType(enc, &val->type);28vn_encode_uint32_t(enc, &val->descriptorCount);29}3031/* struct VkDescriptorPoolCreateInfo chain */3233static inline size_t34vn_sizeof_VkDescriptorPoolCreateInfo_pnext(const void *val)35{36/* no known/supported struct */37return vn_sizeof_simple_pointer(NULL);38}3940static inline size_t41vn_sizeof_VkDescriptorPoolCreateInfo_self(const VkDescriptorPoolCreateInfo *val)42{43size_t size = 0;44/* skip val->{sType,pNext} */45size += vn_sizeof_VkFlags(&val->flags);46size += vn_sizeof_uint32_t(&val->maxSets);47size += vn_sizeof_uint32_t(&val->poolSizeCount);48if (val->pPoolSizes) {49size += vn_sizeof_array_size(val->poolSizeCount);50for (uint32_t i = 0; i < val->poolSizeCount; i++)51size += vn_sizeof_VkDescriptorPoolSize(&val->pPoolSizes[i]);52} else {53size += vn_sizeof_array_size(0);54}55return size;56}5758static inline size_t59vn_sizeof_VkDescriptorPoolCreateInfo(const VkDescriptorPoolCreateInfo *val)60{61size_t size = 0;6263size += vn_sizeof_VkStructureType(&val->sType);64size += vn_sizeof_VkDescriptorPoolCreateInfo_pnext(val->pNext);65size += vn_sizeof_VkDescriptorPoolCreateInfo_self(val);6667return size;68}6970static inline void71vn_encode_VkDescriptorPoolCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)72{73/* no known/supported struct */74vn_encode_simple_pointer(enc, NULL);75}7677static inline void78vn_encode_VkDescriptorPoolCreateInfo_self(struct vn_cs_encoder *enc, const VkDescriptorPoolCreateInfo *val)79{80/* skip val->{sType,pNext} */81vn_encode_VkFlags(enc, &val->flags);82vn_encode_uint32_t(enc, &val->maxSets);83vn_encode_uint32_t(enc, &val->poolSizeCount);84if (val->pPoolSizes) {85vn_encode_array_size(enc, val->poolSizeCount);86for (uint32_t i = 0; i < val->poolSizeCount; i++)87vn_encode_VkDescriptorPoolSize(enc, &val->pPoolSizes[i]);88} else {89vn_encode_array_size(enc, 0);90}91}9293static inline void94vn_encode_VkDescriptorPoolCreateInfo(struct vn_cs_encoder *enc, const VkDescriptorPoolCreateInfo *val)95{96assert(val->sType == VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO);97vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_DESCRIPTOR_POOL_CREATE_INFO });98vn_encode_VkDescriptorPoolCreateInfo_pnext(enc, val->pNext);99vn_encode_VkDescriptorPoolCreateInfo_self(enc, val);100}101102static inline size_t vn_sizeof_vkCreateDescriptorPool(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool)103{104const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateDescriptorPool_EXT;105const VkFlags cmd_flags = 0;106size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);107108cmd_size += vn_sizeof_VkDevice(&device);109cmd_size += vn_sizeof_simple_pointer(pCreateInfo);110if (pCreateInfo)111cmd_size += vn_sizeof_VkDescriptorPoolCreateInfo(pCreateInfo);112cmd_size += vn_sizeof_simple_pointer(pAllocator);113if (pAllocator)114assert(false);115cmd_size += vn_sizeof_simple_pointer(pDescriptorPool);116if (pDescriptorPool)117cmd_size += vn_sizeof_VkDescriptorPool(pDescriptorPool);118119return cmd_size;120}121122static inline void vn_encode_vkCreateDescriptorPool(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool)123{124const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateDescriptorPool_EXT;125126vn_encode_VkCommandTypeEXT(enc, &cmd_type);127vn_encode_VkFlags(enc, &cmd_flags);128129vn_encode_VkDevice(enc, &device);130if (vn_encode_simple_pointer(enc, pCreateInfo))131vn_encode_VkDescriptorPoolCreateInfo(enc, pCreateInfo);132if (vn_encode_simple_pointer(enc, pAllocator))133assert(false);134if (vn_encode_simple_pointer(enc, pDescriptorPool))135vn_encode_VkDescriptorPool(enc, pDescriptorPool);136}137138static inline size_t vn_sizeof_vkCreateDescriptorPool_reply(VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool)139{140const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateDescriptorPool_EXT;141size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);142143VkResult ret;144cmd_size += vn_sizeof_VkResult(&ret);145/* skip device */146/* skip pCreateInfo */147/* skip pAllocator */148cmd_size += vn_sizeof_simple_pointer(pDescriptorPool);149if (pDescriptorPool)150cmd_size += vn_sizeof_VkDescriptorPool(pDescriptorPool);151152return cmd_size;153}154155static inline VkResult vn_decode_vkCreateDescriptorPool_reply(struct vn_cs_decoder *dec, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool)156{157VkCommandTypeEXT command_type;158vn_decode_VkCommandTypeEXT(dec, &command_type);159assert(command_type == VK_COMMAND_TYPE_vkCreateDescriptorPool_EXT);160161VkResult ret;162vn_decode_VkResult(dec, &ret);163/* skip device */164/* skip pCreateInfo */165/* skip pAllocator */166if (vn_decode_simple_pointer(dec)) {167vn_decode_VkDescriptorPool(dec, pDescriptorPool);168} else {169pDescriptorPool = NULL;170}171172return ret;173}174175static inline size_t vn_sizeof_vkDestroyDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator)176{177const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyDescriptorPool_EXT;178const VkFlags cmd_flags = 0;179size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);180181cmd_size += vn_sizeof_VkDevice(&device);182cmd_size += vn_sizeof_VkDescriptorPool(&descriptorPool);183cmd_size += vn_sizeof_simple_pointer(pAllocator);184if (pAllocator)185assert(false);186187return cmd_size;188}189190static inline void vn_encode_vkDestroyDescriptorPool(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator)191{192const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyDescriptorPool_EXT;193194vn_encode_VkCommandTypeEXT(enc, &cmd_type);195vn_encode_VkFlags(enc, &cmd_flags);196197vn_encode_VkDevice(enc, &device);198vn_encode_VkDescriptorPool(enc, &descriptorPool);199if (vn_encode_simple_pointer(enc, pAllocator))200assert(false);201}202203static inline size_t vn_sizeof_vkDestroyDescriptorPool_reply(VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator)204{205const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyDescriptorPool_EXT;206size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);207208/* skip device */209/* skip descriptorPool */210/* skip pAllocator */211212return cmd_size;213}214215static inline void vn_decode_vkDestroyDescriptorPool_reply(struct vn_cs_decoder *dec, VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator)216{217VkCommandTypeEXT command_type;218vn_decode_VkCommandTypeEXT(dec, &command_type);219assert(command_type == VK_COMMAND_TYPE_vkDestroyDescriptorPool_EXT);220221/* skip device */222/* skip descriptorPool */223/* skip pAllocator */224}225226static inline size_t vn_sizeof_vkResetDescriptorPool(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags)227{228const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetDescriptorPool_EXT;229const VkFlags cmd_flags = 0;230size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);231232cmd_size += vn_sizeof_VkDevice(&device);233cmd_size += vn_sizeof_VkDescriptorPool(&descriptorPool);234cmd_size += vn_sizeof_VkFlags(&flags);235236return cmd_size;237}238239static inline void vn_encode_vkResetDescriptorPool(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags)240{241const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetDescriptorPool_EXT;242243vn_encode_VkCommandTypeEXT(enc, &cmd_type);244vn_encode_VkFlags(enc, &cmd_flags);245246vn_encode_VkDevice(enc, &device);247vn_encode_VkDescriptorPool(enc, &descriptorPool);248vn_encode_VkFlags(enc, &flags);249}250251static inline size_t vn_sizeof_vkResetDescriptorPool_reply(VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags)252{253const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetDescriptorPool_EXT;254size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);255256VkResult ret;257cmd_size += vn_sizeof_VkResult(&ret);258/* skip device */259/* skip descriptorPool */260/* skip flags */261262return cmd_size;263}264265static inline VkResult vn_decode_vkResetDescriptorPool_reply(struct vn_cs_decoder *dec, VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags)266{267VkCommandTypeEXT command_type;268vn_decode_VkCommandTypeEXT(dec, &command_type);269assert(command_type == VK_COMMAND_TYPE_vkResetDescriptorPool_EXT);270271VkResult ret;272vn_decode_VkResult(dec, &ret);273/* skip device */274/* skip descriptorPool */275/* skip flags */276277return ret;278}279280static inline void vn_submit_vkCreateDescriptorPool(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool, struct vn_instance_submit_command *submit)281{282uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];283void *cmd_data = local_cmd_data;284size_t cmd_size = vn_sizeof_vkCreateDescriptorPool(device, pCreateInfo, pAllocator, pDescriptorPool);285if (cmd_size > sizeof(local_cmd_data)) {286cmd_data = malloc(cmd_size);287if (!cmd_data)288cmd_size = 0;289}290const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateDescriptorPool_reply(device, pCreateInfo, pAllocator, pDescriptorPool) : 0;291292struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);293if (cmd_size) {294vn_encode_vkCreateDescriptorPool(enc, cmd_flags, device, pCreateInfo, pAllocator, pDescriptorPool);295vn_instance_submit_command(vn_instance, submit);296if (cmd_data != local_cmd_data)297free(cmd_data);298}299}300301static inline void vn_submit_vkDestroyDescriptorPool(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator, struct vn_instance_submit_command *submit)302{303uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];304void *cmd_data = local_cmd_data;305size_t cmd_size = vn_sizeof_vkDestroyDescriptorPool(device, descriptorPool, pAllocator);306if (cmd_size > sizeof(local_cmd_data)) {307cmd_data = malloc(cmd_size);308if (!cmd_data)309cmd_size = 0;310}311const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyDescriptorPool_reply(device, descriptorPool, pAllocator) : 0;312313struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);314if (cmd_size) {315vn_encode_vkDestroyDescriptorPool(enc, cmd_flags, device, descriptorPool, pAllocator);316vn_instance_submit_command(vn_instance, submit);317if (cmd_data != local_cmd_data)318free(cmd_data);319}320}321322static inline void vn_submit_vkResetDescriptorPool(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags, struct vn_instance_submit_command *submit)323{324uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];325void *cmd_data = local_cmd_data;326size_t cmd_size = vn_sizeof_vkResetDescriptorPool(device, descriptorPool, flags);327if (cmd_size > sizeof(local_cmd_data)) {328cmd_data = malloc(cmd_size);329if (!cmd_data)330cmd_size = 0;331}332const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkResetDescriptorPool_reply(device, descriptorPool, flags) : 0;333334struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);335if (cmd_size) {336vn_encode_vkResetDescriptorPool(enc, cmd_flags, device, descriptorPool, flags);337vn_instance_submit_command(vn_instance, submit);338if (cmd_data != local_cmd_data)339free(cmd_data);340}341}342343static inline VkResult vn_call_vkCreateDescriptorPool(struct vn_instance *vn_instance, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool)344{345struct vn_instance_submit_command submit;346vn_submit_vkCreateDescriptorPool(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pAllocator, pDescriptorPool, &submit);347struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);348if (dec) {349const VkResult ret = vn_decode_vkCreateDescriptorPool_reply(dec, device, pCreateInfo, pAllocator, pDescriptorPool);350vn_instance_free_command_reply(vn_instance, &submit);351return ret;352} else {353return VK_ERROR_OUT_OF_HOST_MEMORY;354}355}356357static inline void vn_async_vkCreateDescriptorPool(struct vn_instance *vn_instance, VkDevice device, const VkDescriptorPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkDescriptorPool* pDescriptorPool)358{359struct vn_instance_submit_command submit;360vn_submit_vkCreateDescriptorPool(vn_instance, 0, device, pCreateInfo, pAllocator, pDescriptorPool, &submit);361}362363static inline void vn_call_vkDestroyDescriptorPool(struct vn_instance *vn_instance, VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator)364{365struct vn_instance_submit_command submit;366vn_submit_vkDestroyDescriptorPool(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, descriptorPool, pAllocator, &submit);367struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);368if (dec) {369vn_decode_vkDestroyDescriptorPool_reply(dec, device, descriptorPool, pAllocator);370vn_instance_free_command_reply(vn_instance, &submit);371}372}373374static inline void vn_async_vkDestroyDescriptorPool(struct vn_instance *vn_instance, VkDevice device, VkDescriptorPool descriptorPool, const VkAllocationCallbacks* pAllocator)375{376struct vn_instance_submit_command submit;377vn_submit_vkDestroyDescriptorPool(vn_instance, 0, device, descriptorPool, pAllocator, &submit);378}379380static inline VkResult vn_call_vkResetDescriptorPool(struct vn_instance *vn_instance, VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags)381{382struct vn_instance_submit_command submit;383vn_submit_vkResetDescriptorPool(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, descriptorPool, flags, &submit);384struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);385if (dec) {386const VkResult ret = vn_decode_vkResetDescriptorPool_reply(dec, device, descriptorPool, flags);387vn_instance_free_command_reply(vn_instance, &submit);388return ret;389} else {390return VK_ERROR_OUT_OF_HOST_MEMORY;391}392}393394static inline void vn_async_vkResetDescriptorPool(struct vn_instance *vn_instance, VkDevice device, VkDescriptorPool descriptorPool, VkDescriptorPoolResetFlags flags)395{396struct vn_instance_submit_command submit;397vn_submit_vkResetDescriptorPool(vn_instance, 0, device, descriptorPool, flags, &submit);398}399400#endif /* VN_PROTOCOL_DRIVER_DESCRIPTOR_POOL_H */401402403