1*523fa7a6SAndroid Build Coastguard Worker /* 2*523fa7a6SAndroid Build Coastguard Worker * Copyright (c) Meta Platforms, Inc. and affiliates. 3*523fa7a6SAndroid Build Coastguard Worker * All rights reserved. 4*523fa7a6SAndroid Build Coastguard Worker * 5*523fa7a6SAndroid Build Coastguard Worker * This source code is licensed under the BSD-style license found in the 6*523fa7a6SAndroid Build Coastguard Worker * LICENSE file in the root directory of this source tree. 7*523fa7a6SAndroid Build Coastguard Worker */ 8*523fa7a6SAndroid Build Coastguard Worker 9*523fa7a6SAndroid Build Coastguard Worker #pragma once 10*523fa7a6SAndroid Build Coastguard Worker 11*523fa7a6SAndroid Build Coastguard Worker #include <executorch/runtime/core/result.h> 12*523fa7a6SAndroid Build Coastguard Worker 13*523fa7a6SAndroid Build Coastguard Worker namespace executorch { 14*523fa7a6SAndroid Build Coastguard Worker namespace backends { 15*523fa7a6SAndroid Build Coastguard Worker namespace vulkan { 16*523fa7a6SAndroid Build Coastguard Worker 17*523fa7a6SAndroid Build Coastguard Worker // Byte decoding utilities 18*523fa7a6SAndroid Build Coastguard Worker uint64_t getUInt64LE(const uint8_t* data); 19*523fa7a6SAndroid Build Coastguard Worker uint32_t getUInt32LE(const uint8_t* data); 20*523fa7a6SAndroid Build Coastguard Worker uint32_t getUInt16LE(const uint8_t* data); 21*523fa7a6SAndroid Build Coastguard Worker 22*523fa7a6SAndroid Build Coastguard Worker struct VulkanDelegateHeader { 23*523fa7a6SAndroid Build Coastguard Worker bool is_valid() const; 24*523fa7a6SAndroid Build Coastguard Worker 25*523fa7a6SAndroid Build Coastguard Worker static executorch::runtime::Result<VulkanDelegateHeader> parse( 26*523fa7a6SAndroid Build Coastguard Worker const void* data); 27*523fa7a6SAndroid Build Coastguard Worker 28*523fa7a6SAndroid Build Coastguard Worker uint32_t header_size; 29*523fa7a6SAndroid Build Coastguard Worker uint32_t flatbuffer_offset; 30*523fa7a6SAndroid Build Coastguard Worker uint32_t flatbuffer_size; 31*523fa7a6SAndroid Build Coastguard Worker uint32_t bytes_offset; 32*523fa7a6SAndroid Build Coastguard Worker uint64_t bytes_size; 33*523fa7a6SAndroid Build Coastguard Worker }; 34*523fa7a6SAndroid Build Coastguard Worker 35*523fa7a6SAndroid Build Coastguard Worker } // namespace vulkan 36*523fa7a6SAndroid Build Coastguard Worker } // namespace backends 37*523fa7a6SAndroid Build Coastguard Worker } // namespace executorch 38