xref: /aosp_15_r20/external/executorch/backends/vulkan/runtime/VulkanDelegateHeader.h (revision 523fa7a60841cd1ecfb9cc4201f1ca8b03ed023a)
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