diff options
| author | Mark Lobodzinski <mark@lunarg.com> | 2016-02-02 18:53:34 -0700 |
|---|---|---|
| committer | Mark Lobodzinski <mark@lunarg.com> | 2016-02-08 13:57:56 -0700 |
| commit | da976b8c70bd34ccd34850c3945a1fa0f762a9b7 (patch) | |
| tree | dcd66be841aed143ab06074b27b3b7d1e0440fba /loader/loader.h | |
| parent | cf5d177c525d705642ed5a84f646baf5e55d4c41 (diff) | |
| download | usermoji-da976b8c70bd34ccd34850c3945a1fa0f762a9b7.tar.xz | |
loader: Null-terminated string checks
Diffstat (limited to 'loader/loader.h')
| -rw-r--r-- | loader/loader.h | 25 |
1 files changed, 24 insertions, 1 deletions
diff --git a/loader/loader.h b/loader/loader.h index ac20d748..2c894604 100644 --- a/loader/loader.h +++ b/loader/loader.h @@ -72,6 +72,24 @@ enum layer_type { 0xc, // both instance and device layer, bitwise }; + +typedef enum VkStringErrorFlagBits { + VK_STRING_ERROR_NONE = 0x00000000, + VK_STRING_ERROR_LENGTH = 0x00000001, + VK_STRING_ERROR_BAD_DATA = 0x00000002, +} VkStringErrorFlagBits; +typedef VkFlags VkStringErrorFlags; + +static const int MaxLoaderStringLength = 256; +static const char UTF8_ONE_BYTE_CODE = 0xC0; +static const char UTF8_ONE_BYTE_MASK = 0xE0; +static const char UTF8_TWO_BYTE_CODE = 0xE0; +static const char UTF8_TWO_BYTE_MASK = 0xF0; +static const char UTF8_THREE_BYTE_CODE = 0xF0; +static const char UTF8_THREE_BYTE_MASK = 0xF8; +static const char UTF8_DATA_BYTE_CODE = 0x80; +static const char UTF8_DATA_BYTE_MASK = 0xC0; + // form of all dynamic lists/arrays // only the list element should be changed struct loader_generic_list { @@ -370,11 +388,13 @@ struct loader_msg_callback_map_entry { bool compare_vk_extension_properties(const VkExtensionProperties *op1, const VkExtensionProperties *op2); -VkResult loader_validate_layers(const uint32_t layer_count, +VkResult loader_validate_layers(const struct loader_instance *inst, + const uint32_t layer_count, const char *const *ppEnabledLayerNames, const struct loader_layer_list *list); VkResult loader_validate_instance_extensions( + const struct loader_instance *inst, const struct loader_extension_list *icd_exts, const struct loader_layer_list *instance_layer, const VkInstanceCreateInfo *pCreateInfo); @@ -507,4 +527,7 @@ void loader_heap_free(const struct loader_instance *instance, void *pMemory); void *loader_tls_heap_alloc(size_t size); void loader_tls_heap_free(void *pMemory); + +VkStringErrorFlags vk_string_validate(const int max_length, const char *char_array); + #endif /* LOADER_H */ |
