Path: blob/21.2-virgl/src/virtio/venus-protocol/vn_protocol_driver_command_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_COMMAND_POOL_H8#define VN_PROTOCOL_DRIVER_COMMAND_POOL_H910#include "vn_device.h"11#include "vn_protocol_driver_structs.h"1213/* struct VkCommandPoolCreateInfo chain */1415static inline size_t16vn_sizeof_VkCommandPoolCreateInfo_pnext(const void *val)17{18/* no known/supported struct */19return vn_sizeof_simple_pointer(NULL);20}2122static inline size_t23vn_sizeof_VkCommandPoolCreateInfo_self(const VkCommandPoolCreateInfo *val)24{25size_t size = 0;26/* skip val->{sType,pNext} */27size += vn_sizeof_VkFlags(&val->flags);28size += vn_sizeof_uint32_t(&val->queueFamilyIndex);29return size;30}3132static inline size_t33vn_sizeof_VkCommandPoolCreateInfo(const VkCommandPoolCreateInfo *val)34{35size_t size = 0;3637size += vn_sizeof_VkStructureType(&val->sType);38size += vn_sizeof_VkCommandPoolCreateInfo_pnext(val->pNext);39size += vn_sizeof_VkCommandPoolCreateInfo_self(val);4041return size;42}4344static inline void45vn_encode_VkCommandPoolCreateInfo_pnext(struct vn_cs_encoder *enc, const void *val)46{47/* no known/supported struct */48vn_encode_simple_pointer(enc, NULL);49}5051static inline void52vn_encode_VkCommandPoolCreateInfo_self(struct vn_cs_encoder *enc, const VkCommandPoolCreateInfo *val)53{54/* skip val->{sType,pNext} */55vn_encode_VkFlags(enc, &val->flags);56vn_encode_uint32_t(enc, &val->queueFamilyIndex);57}5859static inline void60vn_encode_VkCommandPoolCreateInfo(struct vn_cs_encoder *enc, const VkCommandPoolCreateInfo *val)61{62assert(val->sType == VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO);63vn_encode_VkStructureType(enc, &(VkStructureType){ VK_STRUCTURE_TYPE_COMMAND_POOL_CREATE_INFO });64vn_encode_VkCommandPoolCreateInfo_pnext(enc, val->pNext);65vn_encode_VkCommandPoolCreateInfo_self(enc, val);66}6768static inline size_t vn_sizeof_vkCreateCommandPool(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool)69{70const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateCommandPool_EXT;71const VkFlags cmd_flags = 0;72size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);7374cmd_size += vn_sizeof_VkDevice(&device);75cmd_size += vn_sizeof_simple_pointer(pCreateInfo);76if (pCreateInfo)77cmd_size += vn_sizeof_VkCommandPoolCreateInfo(pCreateInfo);78cmd_size += vn_sizeof_simple_pointer(pAllocator);79if (pAllocator)80assert(false);81cmd_size += vn_sizeof_simple_pointer(pCommandPool);82if (pCommandPool)83cmd_size += vn_sizeof_VkCommandPool(pCommandPool);8485return cmd_size;86}8788static inline void vn_encode_vkCreateCommandPool(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool)89{90const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateCommandPool_EXT;9192vn_encode_VkCommandTypeEXT(enc, &cmd_type);93vn_encode_VkFlags(enc, &cmd_flags);9495vn_encode_VkDevice(enc, &device);96if (vn_encode_simple_pointer(enc, pCreateInfo))97vn_encode_VkCommandPoolCreateInfo(enc, pCreateInfo);98if (vn_encode_simple_pointer(enc, pAllocator))99assert(false);100if (vn_encode_simple_pointer(enc, pCommandPool))101vn_encode_VkCommandPool(enc, pCommandPool);102}103104static inline size_t vn_sizeof_vkCreateCommandPool_reply(VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool)105{106const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkCreateCommandPool_EXT;107size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);108109VkResult ret;110cmd_size += vn_sizeof_VkResult(&ret);111/* skip device */112/* skip pCreateInfo */113/* skip pAllocator */114cmd_size += vn_sizeof_simple_pointer(pCommandPool);115if (pCommandPool)116cmd_size += vn_sizeof_VkCommandPool(pCommandPool);117118return cmd_size;119}120121static inline VkResult vn_decode_vkCreateCommandPool_reply(struct vn_cs_decoder *dec, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool)122{123VkCommandTypeEXT command_type;124vn_decode_VkCommandTypeEXT(dec, &command_type);125assert(command_type == VK_COMMAND_TYPE_vkCreateCommandPool_EXT);126127VkResult ret;128vn_decode_VkResult(dec, &ret);129/* skip device */130/* skip pCreateInfo */131/* skip pAllocator */132if (vn_decode_simple_pointer(dec)) {133vn_decode_VkCommandPool(dec, pCommandPool);134} else {135pCommandPool = NULL;136}137138return ret;139}140141static inline size_t vn_sizeof_vkDestroyCommandPool(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator)142{143const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyCommandPool_EXT;144const VkFlags cmd_flags = 0;145size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);146147cmd_size += vn_sizeof_VkDevice(&device);148cmd_size += vn_sizeof_VkCommandPool(&commandPool);149cmd_size += vn_sizeof_simple_pointer(pAllocator);150if (pAllocator)151assert(false);152153return cmd_size;154}155156static inline void vn_encode_vkDestroyCommandPool(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator)157{158const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyCommandPool_EXT;159160vn_encode_VkCommandTypeEXT(enc, &cmd_type);161vn_encode_VkFlags(enc, &cmd_flags);162163vn_encode_VkDevice(enc, &device);164vn_encode_VkCommandPool(enc, &commandPool);165if (vn_encode_simple_pointer(enc, pAllocator))166assert(false);167}168169static inline size_t vn_sizeof_vkDestroyCommandPool_reply(VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator)170{171const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkDestroyCommandPool_EXT;172size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);173174/* skip device */175/* skip commandPool */176/* skip pAllocator */177178return cmd_size;179}180181static inline void vn_decode_vkDestroyCommandPool_reply(struct vn_cs_decoder *dec, VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator)182{183VkCommandTypeEXT command_type;184vn_decode_VkCommandTypeEXT(dec, &command_type);185assert(command_type == VK_COMMAND_TYPE_vkDestroyCommandPool_EXT);186187/* skip device */188/* skip commandPool */189/* skip pAllocator */190}191192static inline size_t vn_sizeof_vkResetCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags)193{194const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetCommandPool_EXT;195const VkFlags cmd_flags = 0;196size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);197198cmd_size += vn_sizeof_VkDevice(&device);199cmd_size += vn_sizeof_VkCommandPool(&commandPool);200cmd_size += vn_sizeof_VkFlags(&flags);201202return cmd_size;203}204205static inline void vn_encode_vkResetCommandPool(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags)206{207const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetCommandPool_EXT;208209vn_encode_VkCommandTypeEXT(enc, &cmd_type);210vn_encode_VkFlags(enc, &cmd_flags);211212vn_encode_VkDevice(enc, &device);213vn_encode_VkCommandPool(enc, &commandPool);214vn_encode_VkFlags(enc, &flags);215}216217static inline size_t vn_sizeof_vkResetCommandPool_reply(VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags)218{219const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkResetCommandPool_EXT;220size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);221222VkResult ret;223cmd_size += vn_sizeof_VkResult(&ret);224/* skip device */225/* skip commandPool */226/* skip flags */227228return cmd_size;229}230231static inline VkResult vn_decode_vkResetCommandPool_reply(struct vn_cs_decoder *dec, VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags)232{233VkCommandTypeEXT command_type;234vn_decode_VkCommandTypeEXT(dec, &command_type);235assert(command_type == VK_COMMAND_TYPE_vkResetCommandPool_EXT);236237VkResult ret;238vn_decode_VkResult(dec, &ret);239/* skip device */240/* skip commandPool */241/* skip flags */242243return ret;244}245246static inline size_t vn_sizeof_vkTrimCommandPool(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)247{248const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkTrimCommandPool_EXT;249const VkFlags cmd_flags = 0;250size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type) + vn_sizeof_VkFlags(&cmd_flags);251252cmd_size += vn_sizeof_VkDevice(&device);253cmd_size += vn_sizeof_VkCommandPool(&commandPool);254cmd_size += vn_sizeof_VkFlags(&flags);255256return cmd_size;257}258259static inline void vn_encode_vkTrimCommandPool(struct vn_cs_encoder *enc, VkCommandFlagsEXT cmd_flags, VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)260{261const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkTrimCommandPool_EXT;262263vn_encode_VkCommandTypeEXT(enc, &cmd_type);264vn_encode_VkFlags(enc, &cmd_flags);265266vn_encode_VkDevice(enc, &device);267vn_encode_VkCommandPool(enc, &commandPool);268vn_encode_VkFlags(enc, &flags);269}270271static inline size_t vn_sizeof_vkTrimCommandPool_reply(VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)272{273const VkCommandTypeEXT cmd_type = VK_COMMAND_TYPE_vkTrimCommandPool_EXT;274size_t cmd_size = vn_sizeof_VkCommandTypeEXT(&cmd_type);275276/* skip device */277/* skip commandPool */278/* skip flags */279280return cmd_size;281}282283static inline void vn_decode_vkTrimCommandPool_reply(struct vn_cs_decoder *dec, VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)284{285VkCommandTypeEXT command_type;286vn_decode_VkCommandTypeEXT(dec, &command_type);287assert(command_type == VK_COMMAND_TYPE_vkTrimCommandPool_EXT);288289/* skip device */290/* skip commandPool */291/* skip flags */292}293294static inline void vn_submit_vkCreateCommandPool(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool, struct vn_instance_submit_command *submit)295{296uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];297void *cmd_data = local_cmd_data;298size_t cmd_size = vn_sizeof_vkCreateCommandPool(device, pCreateInfo, pAllocator, pCommandPool);299if (cmd_size > sizeof(local_cmd_data)) {300cmd_data = malloc(cmd_size);301if (!cmd_data)302cmd_size = 0;303}304const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkCreateCommandPool_reply(device, pCreateInfo, pAllocator, pCommandPool) : 0;305306struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);307if (cmd_size) {308vn_encode_vkCreateCommandPool(enc, cmd_flags, device, pCreateInfo, pAllocator, pCommandPool);309vn_instance_submit_command(vn_instance, submit);310if (cmd_data != local_cmd_data)311free(cmd_data);312}313}314315static inline void vn_submit_vkDestroyCommandPool(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator, struct vn_instance_submit_command *submit)316{317uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];318void *cmd_data = local_cmd_data;319size_t cmd_size = vn_sizeof_vkDestroyCommandPool(device, commandPool, pAllocator);320if (cmd_size > sizeof(local_cmd_data)) {321cmd_data = malloc(cmd_size);322if (!cmd_data)323cmd_size = 0;324}325const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkDestroyCommandPool_reply(device, commandPool, pAllocator) : 0;326327struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);328if (cmd_size) {329vn_encode_vkDestroyCommandPool(enc, cmd_flags, device, commandPool, pAllocator);330vn_instance_submit_command(vn_instance, submit);331if (cmd_data != local_cmd_data)332free(cmd_data);333}334}335336static inline void vn_submit_vkResetCommandPool(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags, struct vn_instance_submit_command *submit)337{338uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];339void *cmd_data = local_cmd_data;340size_t cmd_size = vn_sizeof_vkResetCommandPool(device, commandPool, flags);341if (cmd_size > sizeof(local_cmd_data)) {342cmd_data = malloc(cmd_size);343if (!cmd_data)344cmd_size = 0;345}346const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkResetCommandPool_reply(device, commandPool, flags) : 0;347348struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);349if (cmd_size) {350vn_encode_vkResetCommandPool(enc, cmd_flags, device, commandPool, flags);351vn_instance_submit_command(vn_instance, submit);352if (cmd_data != local_cmd_data)353free(cmd_data);354}355}356357static inline void vn_submit_vkTrimCommandPool(struct vn_instance *vn_instance, VkCommandFlagsEXT cmd_flags, VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags, struct vn_instance_submit_command *submit)358{359uint8_t local_cmd_data[VN_SUBMIT_LOCAL_CMD_SIZE];360void *cmd_data = local_cmd_data;361size_t cmd_size = vn_sizeof_vkTrimCommandPool(device, commandPool, flags);362if (cmd_size > sizeof(local_cmd_data)) {363cmd_data = malloc(cmd_size);364if (!cmd_data)365cmd_size = 0;366}367const size_t reply_size = cmd_flags & VK_COMMAND_GENERATE_REPLY_BIT_EXT ? vn_sizeof_vkTrimCommandPool_reply(device, commandPool, flags) : 0;368369struct vn_cs_encoder *enc = vn_instance_submit_command_init(vn_instance, submit, cmd_data, cmd_size, reply_size);370if (cmd_size) {371vn_encode_vkTrimCommandPool(enc, cmd_flags, device, commandPool, flags);372vn_instance_submit_command(vn_instance, submit);373if (cmd_data != local_cmd_data)374free(cmd_data);375}376}377378static inline VkResult vn_call_vkCreateCommandPool(struct vn_instance *vn_instance, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool)379{380struct vn_instance_submit_command submit;381vn_submit_vkCreateCommandPool(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, pCreateInfo, pAllocator, pCommandPool, &submit);382struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);383if (dec) {384const VkResult ret = vn_decode_vkCreateCommandPool_reply(dec, device, pCreateInfo, pAllocator, pCommandPool);385vn_instance_free_command_reply(vn_instance, &submit);386return ret;387} else {388return VK_ERROR_OUT_OF_HOST_MEMORY;389}390}391392static inline void vn_async_vkCreateCommandPool(struct vn_instance *vn_instance, VkDevice device, const VkCommandPoolCreateInfo* pCreateInfo, const VkAllocationCallbacks* pAllocator, VkCommandPool* pCommandPool)393{394struct vn_instance_submit_command submit;395vn_submit_vkCreateCommandPool(vn_instance, 0, device, pCreateInfo, pAllocator, pCommandPool, &submit);396}397398static inline void vn_call_vkDestroyCommandPool(struct vn_instance *vn_instance, VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator)399{400struct vn_instance_submit_command submit;401vn_submit_vkDestroyCommandPool(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, commandPool, pAllocator, &submit);402struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);403if (dec) {404vn_decode_vkDestroyCommandPool_reply(dec, device, commandPool, pAllocator);405vn_instance_free_command_reply(vn_instance, &submit);406}407}408409static inline void vn_async_vkDestroyCommandPool(struct vn_instance *vn_instance, VkDevice device, VkCommandPool commandPool, const VkAllocationCallbacks* pAllocator)410{411struct vn_instance_submit_command submit;412vn_submit_vkDestroyCommandPool(vn_instance, 0, device, commandPool, pAllocator, &submit);413}414415static inline VkResult vn_call_vkResetCommandPool(struct vn_instance *vn_instance, VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags)416{417struct vn_instance_submit_command submit;418vn_submit_vkResetCommandPool(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, commandPool, flags, &submit);419struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);420if (dec) {421const VkResult ret = vn_decode_vkResetCommandPool_reply(dec, device, commandPool, flags);422vn_instance_free_command_reply(vn_instance, &submit);423return ret;424} else {425return VK_ERROR_OUT_OF_HOST_MEMORY;426}427}428429static inline void vn_async_vkResetCommandPool(struct vn_instance *vn_instance, VkDevice device, VkCommandPool commandPool, VkCommandPoolResetFlags flags)430{431struct vn_instance_submit_command submit;432vn_submit_vkResetCommandPool(vn_instance, 0, device, commandPool, flags, &submit);433}434435static inline void vn_call_vkTrimCommandPool(struct vn_instance *vn_instance, VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)436{437struct vn_instance_submit_command submit;438vn_submit_vkTrimCommandPool(vn_instance, VK_COMMAND_GENERATE_REPLY_BIT_EXT, device, commandPool, flags, &submit);439struct vn_cs_decoder *dec = vn_instance_get_command_reply(vn_instance, &submit);440if (dec) {441vn_decode_vkTrimCommandPool_reply(dec, device, commandPool, flags);442vn_instance_free_command_reply(vn_instance, &submit);443}444}445446static inline void vn_async_vkTrimCommandPool(struct vn_instance *vn_instance, VkDevice device, VkCommandPool commandPool, VkCommandPoolTrimFlags flags)447{448struct vn_instance_submit_command submit;449vn_submit_vkTrimCommandPool(vn_instance, 0, device, commandPool, flags, &submit);450}451452#endif /* VN_PROTOCOL_DRIVER_COMMAND_POOL_H */453454455