diff --git a/NOTICE b/NOTICE index 94690a189c6..e0e571a6afa 100644 --- a/NOTICE +++ b/NOTICE @@ -545,3 +545,24 @@ https://github.com/solana-program/token/tree/program%40v8.0.0/p-token http://www.apache.org/licenses/ ======================================================================= + +The flatbuffers generated code in src/flamenco/runtime/tests/flatbuffers/ +is generated by flatcc. + +https://github.com/dvidelabs/flatcc/ + +Copyright 2015 Mikkel F. Jørgensen, dvide.com + +Licensed under the Apache License, Version 2.0 (the "License"); +you may not use this file except in compliance with the License. +You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + +Unless required by applicable law or agreed to in writing, software +distributed under the License is distributed on an "AS IS" BASIS, +WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +See the License for the specific language governing permissions and +limitations under the License. + +======================================================================= diff --git a/config/extra/with-arm.mk b/config/extra/with-arm.mk index 4d5017e65b4..5efd2a6f9af 100644 --- a/config/extra/with-arm.mk +++ b/config/extra/with-arm.mk @@ -34,6 +34,7 @@ include config/extra/with-bzip2.mk include config/extra/with-lz4.mk include config/extra/with-openssl.mk include config/extra/with-rocksdb.mk +include config/extra/with-flatcc.mk endif diff --git a/config/extra/with-flatcc.mk b/config/extra/with-flatcc.mk new file mode 100644 index 00000000000..8ee89b31be9 --- /dev/null +++ b/config/extra/with-flatcc.mk @@ -0,0 +1,5 @@ +ifneq (,$(wildcard $(OPT)/lib/libflatcc.a)) +FLATCC_LIBS:=$(OPT)/lib/libflatcc.a $(OPT)/lib/libflatccrt.a +else +$(info "flatcc not installed, skipping") +endif diff --git a/config/extra/with-x86-64.mk b/config/extra/with-x86-64.mk index 095e13386f3..f7a48d595f9 100644 --- a/config/extra/with-x86-64.mk +++ b/config/extra/with-x86-64.mk @@ -20,5 +20,6 @@ include config/extra/with-bzip2.mk include config/extra/with-lz4.mk include config/extra/with-openssl.mk include config/extra/with-rocksdb.mk +include config/extra/with-flatcc.mk FD_ARCH_SUPPORTS_SANDBOX:=1 diff --git a/deps.sh b/deps.sh index 9456b305e4f..a14361104b8 100755 --- a/deps.sh +++ b/deps.sh @@ -133,15 +133,16 @@ fetch () { if [[ $MSAN == 1 ]]; then checkout_llvm fi - checkout_repo zstd https://github.com/facebook/zstd "v1.5.7" - checkout_repo lz4 https://github.com/lz4/lz4 "v1.10.0" - checkout_repo s2n https://github.com/awslabs/s2n-bignum "" "4d2e22a" - checkout_repo openssl https://github.com/openssl/openssl "openssl-3.6.0" - checkout_repo secp256k1 https://github.com/bitcoin-core/secp256k1 "v0.7.0" + checkout_repo zstd https://github.com/facebook/zstd "v1.5.7" + checkout_repo lz4 https://github.com/lz4/lz4 "v1.10.0" + checkout_repo s2n https://github.com/awslabs/s2n-bignum "" "4d2e22a" + checkout_repo openssl https://github.com/openssl/openssl "openssl-3.6.0" + checkout_repo secp256k1 https://github.com/bitcoin-core/secp256k1 "v0.7.0" + checkout_repo flatcc https://github.com/dvidelabs/flatcc.git "" "3ae5eda" if [[ $DEVMODE == 1 ]]; then - checkout_repo bzip2 https://gitlab.com/bzip2/bzip2 "bzip2-1.0.8" - checkout_repo rocksdb https://github.com/facebook/rocksdb "v10.5.1" - checkout_repo snappy https://github.com/google/snappy "1.2.2" + checkout_repo bzip2 https://gitlab.com/bzip2/bzip2 "bzip2-1.0.8" + checkout_repo rocksdb https://github.com/facebook/rocksdb "v10.5.1" + checkout_repo snappy https://github.com/google/snappy "1.2.2" fi } @@ -610,6 +611,21 @@ install_snappy () { echo "[+] Successfully installed snappy" } +install_flatcc () { + echo "[+] Installing flatcc" + cd "$PREFIX/git/flatcc" + cmake -B build \ + -DCMAKE_INSTALL_PREFIX=$PREFIX \ + -DCMAKE_BUILD_TYPE=Release \ + -DFLATCC_INSTALL=ON \ + -DCMAKE_POSITION_INDEPENDENT_CODE=ON \ + -DCMAKE_CXX_FLAGS="$EXTRA_CXXFLAGS" \ + -DCMAKE_EXE_LINKER_FLAGS="$EXTRA_LDFLAGS" + cmake --build build -j + cmake --install build + echo "[+] Successfully installed flatcc" +} + install () { CC="$(command -v $_CC)" cc="$CC" @@ -638,6 +654,7 @@ install () { ( install_bzip2 ) ( install_snappy ) ( install_rocksdb ) + ( install_flatcc ) fi # Merge lib64 with lib diff --git a/src/flamenco/runtime/tests/Local.mk b/src/flamenco/runtime/tests/Local.mk index be5b385b696..d5d22dd1696 100644 --- a/src/flamenco/runtime/tests/Local.mk +++ b/src/flamenco/runtime/tests/Local.mk @@ -10,12 +10,14 @@ $(call add-objs,fd_sol_compat,fd_flamenco_test) $(call add-hdrs,generated/context.pb.h,generated/elf.pb.h,generated/invoke.pb.h,generated/txn.pb.h,generated/block.pb.h,generated/vm.pb.h,generated/type.pb.h,generated/shred.pb.h generated/metadata.pb.h) $(call add-objs,generated/context.pb generated/elf.pb generated/invoke.pb generated/txn.pb generated/block.pb generated/vm.pb generated/type.pb generated/shred.pb generated/metadata.pb,fd_flamenco) +$(call add-hdrs,flatbuffers/generated/elf_builder.h,flatbuffers/generated/elf_reader.h) + SOL_COMPAT_FLAGS:=-Wl,--undefined=fd_types_vt_by_name -Wl,--version-script=src/flamenco/runtime/tests/libfd_exec_sol_compat.map -$(call make-unit-test,test_sol_compat,test_sol_compat,fd_flamenco_test fd_flamenco fd_tango fd_funk fd_ballet fd_util fd_disco,$(SECP256K1_LIBS)) -$(call make-shared,libfd_exec_sol_compat.so,fd_sol_compat,fd_flamenco_test fd_flamenco fd_funk fd_ballet fd_util fd_disco,$(SECP256K1_LIBS) $(SOL_COMPAT_FLAGS)) +$(call make-unit-test,test_sol_compat,test_sol_compat,fd_flamenco_test fd_flamenco fd_tango fd_funk fd_ballet fd_util fd_disco,$(SECP256K1_LIBS) $(FLATCC_LIBS)) +$(call make-shared,libfd_exec_sol_compat.so,fd_sol_compat,fd_flamenco_test fd_flamenco fd_funk fd_ballet fd_util fd_disco,$(SECP256K1_LIBS) $(FLATCC_LIBS) $(SOL_COMPAT_FLAGS)) $(call make-unit-test,test_sol_compat_so,test_sol_compat_so,fd_util) -$(call make-unit-test,test_dump_block,test_dump_block,fd_flamenco_test fd_flamenco fd_funk fd_ballet fd_util fd_disco,$(SECP256K1_LIBS)) +$(call make-unit-test,test_dump_block,test_dump_block,fd_flamenco_test fd_flamenco fd_funk fd_ballet fd_util fd_disco,$(SECP256K1_LIBS) $(FLATCC_LIBS)) run-runtime-backtest: $(OBJDIR)/bin/fd_ledger $(OBJDIR)/bin/firedancer-dev OBJDIR=$(OBJDIR) src/flamenco/runtime/tests/run_backtest_ci.sh $(BACKTEST_ARGS) diff --git a/src/flamenco/runtime/tests/fd_elf_harness.c b/src/flamenco/runtime/tests/fd_elf_harness.c index 35f68d2520a..1e36fcf9f2f 100644 --- a/src/flamenco/runtime/tests/fd_elf_harness.c +++ b/src/flamenco/runtime/tests/fd_elf_harness.c @@ -1,11 +1,16 @@ #include "fd_solfuzz.h" #include "fd_solfuzz_private.h" +#include "flatbuffers/generated/flatbuffers_common_builder.h" +#include "flatbuffers/generated/flatbuffers_common_reader.h" #include "generated/elf.pb.h" #include "../../../ballet/sbpf/fd_sbpf_loader.h" #include "../program/fd_bpf_loader_program.h" #include "../../vm/fd_vm_base.h" #include "../../progcache/fd_prog_load.h" +#include "flatbuffers/generated/elf_reader.h" +#include "flatbuffers/generated/elf_builder.h" + #define SORT_NAME sort_ulong #define SORT_KEY_T ulong #define SORT_BEFORE(a,b) (a)<(b) @@ -134,3 +139,110 @@ fd_solfuzz_pb_elf_loader_run( fd_solfuzz_runner_t * runner, *output = elf_effects; return actual_end - (ulong) output_buf; } + +void +fd_solfuzz_fb_elf_loader_build_err_effects( fd_solfuzz_runner_t * runner, int err ) { + FD_TEST( !SOL_COMPAT_NS(ELFLoaderEffects_start_as_root)( runner->fb_builder ) ); + FD_TEST( !SOL_COMPAT_NS(ELFLoaderEffects_err_code_add)( runner->fb_builder, (uchar)(-err) ) ); + FD_TEST( SOL_COMPAT_NS(ELFLoaderEffects_end_as_root)( runner->fb_builder ) ); +} + +int +fd_solfuzz_fb_elf_loader_run( fd_solfuzz_runner_t * runner, + void const * input_ ) { + SOL_COMPAT_NS(ELFLoaderCtx_table_t) input = fd_type_pun_const( input_ ); + + fd_spad_t * spad = runner->spad; + flatbuffers_uint8_vec_t elf_bin_ = SOL_COMPAT_NS(ELFLoaderCtx_elf_data( input )); + uchar const * elf_bin = (uchar const*)elf_bin_; + ulong elf_sz = flatbuffers_uint8_vec_len( elf_bin_ ); + + /* Restore feature set */ + fd_features_t feature_set = {0}; + fd_solfuzz_fb_restore_features( &feature_set, SOL_COMPAT_NS(ELFLoaderCtx_features( input ))); + + fd_sbpf_loader_config_t config = { + .elf_deploy_checks = SOL_COMPAT_NS(ELFLoaderCtx_deploy_checks( input )), + }; + + fd_prog_versions_t versions = fd_prog_versions( &feature_set, UINT_MAX ); + config.sbpf_min_version = versions.min_sbpf_version; + config.sbpf_max_version = versions.max_sbpf_version; + + /* Peek */ + fd_sbpf_elf_info_t info; + int err = fd_sbpf_elf_peek( &info, elf_bin, elf_sz, &config ); + if( err ) { + fd_solfuzz_fb_elf_loader_build_err_effects( runner, err ); + return SOL_COMPAT_V2_SUCCESS; + } + + /* Set up loading context */ + void * rodata = fd_spad_alloc_check( spad, FD_SBPF_PROG_RODATA_ALIGN, info.bin_sz ); + fd_sbpf_program_t * prog = fd_sbpf_program_new( fd_spad_alloc_check( spad, fd_sbpf_program_align(), fd_sbpf_program_footprint( &info ) ), &info, rodata ); + fd_sbpf_syscalls_t * syscalls = fd_sbpf_syscalls_new( fd_spad_alloc_check( spad, fd_sbpf_syscalls_align(), fd_sbpf_syscalls_footprint() )); + void * rodata_scratch = fd_spad_alloc_check( spad, 1UL, elf_sz ); + + /* Register syscalls given the active feature set. We can pass in an + arbitrary slot as its just used to check if features should be + active or not. */ + FD_TEST( !fd_vm_syscall_register_slot( syscalls, UINT_MAX, &feature_set, !!config.elf_deploy_checks ) ); + + /* Load */ + err = fd_sbpf_program_load( prog, elf_bin, elf_sz, syscalls, &config, rodata_scratch, elf_sz ); + if( err ) { + fd_solfuzz_fb_elf_loader_build_err_effects( runner, err ); + return SOL_COMPAT_V2_SUCCESS; + } + + /**** Capture effects ****/ + + /* Error code */ + uchar out_err_code = FD_SBPF_ELF_SUCCESS; + + /* Rodata */ + ulong out_rodata_hash_u64 = fd_hash( 0UL, prog->rodata, prog->rodata_sz ); + SOL_COMPAT_NS(XXHash_t) out_rodata_hash; + fd_memcpy( out_rodata_hash.hash, &out_rodata_hash_u64, sizeof(ulong) ); + + /* Text count */ + ulong out_text_cnt = prog->info.text_cnt; + + /* Text off */ + ulong out_text_off = prog->info.text_off; + + /* Entry PC */ + ulong out_entry_pc = prog->entry_pc; + + /* Calldests */ + ulong max_out_calldests_cnt = 1UL + ( prog->calldests ? fd_sbpf_calldests_cnt( prog->calldests ) : 0UL ); + ulong * tmp_out_calldests = fd_spad_alloc_check( spad, alignof(ulong), sizeof(ulong)*max_out_calldests_cnt ); + ulong out_calldests_cnt = 0UL; + + /* Add the entrypoint to the calldests */ + tmp_out_calldests[out_calldests_cnt++] = prog->entry_pc; + + /* Add the rest of the calldests */ + if( FD_LIKELY( prog->calldests ) ) { + for( ulong target_pc=fd_sbpf_calldests_const_iter_init(prog->calldests); + !fd_sbpf_calldests_const_iter_done(target_pc); + target_pc=fd_sbpf_calldests_const_iter_next(prog->calldests, target_pc) ) { + if( FD_LIKELY( target_pc!=prog->entry_pc ) ) { + tmp_out_calldests[out_calldests_cnt++] = target_pc; + } + } + } + + /* Sort the calldests in ascending order */ + sort_ulong_inplace( tmp_out_calldests, out_calldests_cnt ); + + /* Create output calldests vector */ + ulong out_calldests_hash_u64 = fd_hash( 0UL, tmp_out_calldests, sizeof(ulong) * out_calldests_cnt ); + SOL_COMPAT_NS(XXHash_t) out_calldests_hash; + fd_memcpy( out_calldests_hash.hash, &out_calldests_hash_u64, sizeof(ulong) ); + + /* Build effects */ + SOL_COMPAT_NS(ELFLoaderEffects_create_as_root)( runner->fb_builder, out_err_code, &out_rodata_hash, out_text_cnt, out_text_off, out_entry_pc, &out_calldests_hash ); + + return SOL_COMPAT_V2_SUCCESS; +} diff --git a/src/flamenco/runtime/tests/fd_harness_common.c b/src/flamenco/runtime/tests/fd_harness_common.c index 930a4ca6a9d..e058f691f4f 100644 --- a/src/flamenco/runtime/tests/fd_harness_common.c +++ b/src/flamenco/runtime/tests/fd_harness_common.c @@ -69,3 +69,22 @@ fd_solfuzz_pb_restore_features( fd_features_t * features, } return 1; } + +void +fd_solfuzz_fb_restore_features( fd_features_t * features, + SOL_COMPAT_NS(FeatureSet_table_t) feature_set ) { + if( FD_UNLIKELY( !feature_set ) ) return; + + fd_features_disable_all( features ); + flatbuffers_uint64_vec_t input_features = SOL_COMPAT_NS(FeatureSet_features( feature_set )); + ulong input_features_cnt = flatbuffers_uint64_vec_len( input_features ); + for( ulong i=0UL; i #include #include @@ -287,3 +290,40 @@ sol_compat_shred_parse_v1( uchar * out, pb_release( &fd_exec_test_shred_binary_t_msg, input ); return !!sol_compat_encode( out, out_sz, output, &fd_exec_test_accepts_shred_t_msg ); } + +/* + * execute_v2 + Unlike sol_compat_execute_v1 APIs, v2 APIs use flatbuffers for + zero-copy decoding. Returns SOL_COMPAT_V2_SUCCESS on success and + SOL_COMPAT_V2_FAILURE on failure. + + out: output buffer + out_sz: output buffer size + in: input buffer + in_sz: input buffer size (unused) + + Since flatbuffers utilizes zero-copy decoding, the v2 API does not + require an input buffer size. Therefore, it is the caller's + responsibility to ensure the input buffer is well-formed (preferably + using a call to _verify_as_root) to avoid any OOB reads. + + TODO: Make sol_compat_v2 APIs infallible??? + */ + +int +sol_compat_elf_loader_v2( uchar * out, + ulong * out_sz, + uchar const * in, + ulong FD_FN_UNUSED in_sz ) { + SOL_COMPAT_NS(ELFLoaderCtx_table_t) input = SOL_COMPAT_NS(ELFLoaderCtx_as_root( in )); + if( FD_UNLIKELY( !input ) ) return 0; + + int err = fd_solfuzz_fb_execute_wrapper( runner, input, fd_solfuzz_fb_elf_loader_run ); + if( FD_UNLIKELY( err==SOL_COMPAT_V2_FAILURE ) ) return err; + + ulong buffer_sz = flatcc_builder_get_buffer_size( runner->fb_builder ); + flatcc_builder_copy_buffer( runner->fb_builder, out, buffer_sz ); + *out_sz = buffer_sz; + + return SOL_COMPAT_V2_SUCCESS; +} diff --git a/src/flamenco/runtime/tests/fd_solfuzz.c b/src/flamenco/runtime/tests/fd_solfuzz.c index 7fddf5933d3..cff474a3c89 100644 --- a/src/flamenco/runtime/tests/fd_solfuzz.c +++ b/src/flamenco/runtime/tests/fd_solfuzz.c @@ -117,6 +117,11 @@ fd_solfuzz_runner_new( fd_wksp_t * wksp, runner->runtime_stack = fd_wksp_alloc_laddr( wksp, alignof(fd_runtime_stack_t), sizeof(fd_runtime_stack_t), wksp_tag ); if( FD_UNLIKELY( !runner->runtime_stack ) ) goto bail2; + /* TODO: Consider implementing custom allocators and emitters. + The default builder / emitter uses libc allocators */ + int builder_err = flatcc_builder_init( runner->fb_builder ); + if( FD_UNLIKELY( builder_err ) ) goto bail2; + runner->spad = fd_spad_join( fd_spad_new( spad_mem, spad_max ) ); if( FD_UNLIKELY( !runner->spad ) ) goto bail2; runner->banks = fd_banks_join( fd_banks_new( banks_mem, bank_max, fork_max, 0, 8888UL ) ); @@ -161,6 +166,8 @@ fd_solfuzz_runner_delete( fd_solfuzz_runner_t * runner ) { fd_progcache_admin_leave( runner->progcache_admin, &shpcache ); if( shpcache ) fd_wksp_free_laddr( fd_funk_delete( shpcache ) ); + flatcc_builder_clear( runner->fb_builder ); + if( runner->spad ) fd_wksp_free_laddr( fd_spad_delete( fd_spad_leave( runner->spad ) ) ); if( runner->banks ) fd_wksp_free_laddr( fd_banks_delete( fd_banks_leave( runner->banks ) ) ); fd_wksp_free_laddr( runner ); diff --git a/src/flamenco/runtime/tests/fd_solfuzz.h b/src/flamenco/runtime/tests/fd_solfuzz.h index aba96fce62a..cf86fcb0326 100644 --- a/src/flamenco/runtime/tests/fd_solfuzz.h +++ b/src/flamenco/runtime/tests/fd_solfuzz.h @@ -15,6 +15,7 @@ #include "../../accdb/fd_accdb_user.h" #include "../../progcache/fd_progcache_admin.h" #include "../../progcache/fd_progcache_user.h" +#include "flatcc/flatcc_builder.h" /* A fd_solfuzz_runner_t object processes solfuzz inputs. Can be reused for different inputs, even of different types. Single-thread per @@ -42,6 +43,8 @@ struct fd_solfuzz_runner { fd_exec_accounts_t * exec_accounts; fd_runtime_stack_t * runtime_stack; + flatcc_builder_t fb_builder[1]; /* Persistent flatbuffers builder */ + int enable_vm_tracing; }; @@ -173,6 +176,10 @@ fd_solfuzz_pb_elf_loader_run( fd_solfuzz_runner_t * runner, void * output_buf, ulong output_bufsz ); +int +fd_solfuzz_fb_elf_loader_run( fd_solfuzz_runner_t * runner, + void const * input_ ); + int fd_solfuzz_pb_elf_loader_fixture( fd_solfuzz_runner_t * runner, uchar const * in, diff --git a/src/flamenco/runtime/tests/fd_solfuzz_private.h b/src/flamenco/runtime/tests/fd_solfuzz_private.h index c74bc6ddb1e..ef32a1fe330 100644 --- a/src/flamenco/runtime/tests/fd_solfuzz_private.h +++ b/src/flamenco/runtime/tests/fd_solfuzz_private.h @@ -10,8 +10,17 @@ #include "../../../ballet/nanopb/pb_decode.h" #include "generated/context.pb.h" +#include "flatcc/flatcc_builder.h" +#include "flatbuffers/generated/context_reader.h" + FD_PROTOTYPES_BEGIN +#undef ns +#define SOL_COMPAT_NS(x) FLATBUFFERS_WRAP_NAMESPACE(fd_org_solana_sealevel_v2, x) + +#define SOL_COMPAT_V2_SUCCESS (0) +#define SOL_COMPAT_V2_FAILURE (-1) + /* Creates / overwrites an account in funk given an input account state. On success, loads the account into acc. Optionally, reject any zero-lamport accounts from being loaded in. */ @@ -28,18 +37,24 @@ int fd_solfuzz_pb_restore_features( fd_features_t * features, fd_exec_test_feature_set_t const * feature_set ); -typedef ulong( exec_test_run_fn_t )( fd_solfuzz_runner_t *, - void const *, - void **, - void *, - ulong ); +/* Flatbuffers variant of the above. This function call should never + fail (all passed in features should be supported). Throws FD_LOG_ERR + if any unsupported features are inputted. */ +void +fd_solfuzz_fb_restore_features( fd_features_t * features, + SOL_COMPAT_NS(FeatureSet_table_t) feature_set ); -static inline void -fd_solfuzz_pb_execute_wrapper( fd_solfuzz_runner_t * runner, - void * input, - void ** output, - exec_test_run_fn_t * exec_test_run_fn ) { +typedef ulong( exec_test_run_pb_fn_t )( fd_solfuzz_runner_t *, + void const *, + void **, + void *, + ulong ); +static inline void +fd_solfuzz_pb_execute_wrapper( fd_solfuzz_runner_t * runner, + void const * input, + void ** output, + exec_test_run_pb_fn_t * exec_test_run_fn ) { ulong out_bufsz = 100000000; /* 100 MB */ void * out0 = fd_spad_alloc( runner->spad, 1UL, out_bufsz ); FD_TEST( out_bufsz <= fd_spad_alloc_max( runner->spad, 1UL ) ); @@ -48,7 +63,20 @@ fd_solfuzz_pb_execute_wrapper( fd_solfuzz_runner_t * runner, if( FD_UNLIKELY( !out_used ) ) { *output = NULL; } +} +typedef int( exec_test_run_fb_fn_t )( fd_solfuzz_runner_t *, void const * ); + +/* Returns SOL_COMPAT_V2_SUCCESS on success and SOL_COMPAT_V2_FAILURE on + failure */ +static inline int +fd_solfuzz_fb_execute_wrapper( fd_solfuzz_runner_t * runner, + void const * input, + exec_test_run_fb_fn_t * exec_test_run_fn ) { +FD_SPAD_FRAME_BEGIN( runner->spad ) { + flatcc_builder_reset( runner->fb_builder ); + return exec_test_run_fn( runner, input ); +} FD_SPAD_FRAME_END; } /* Utils */ diff --git a/src/flamenco/runtime/tests/fetch_and_generate.sh b/src/flamenco/runtime/tests/fetch_and_generate.sh index 9a95c53db3c..2fe51214377 100755 --- a/src/flamenco/runtime/tests/fetch_and_generate.sh +++ b/src/flamenco/runtime/tests/fetch_and_generate.sh @@ -1,11 +1,14 @@ #!/bin/bash set -euo pipefail +PROJECT_ROOT=../../../.. + # Allow overriding proto version; default pinned -PROTO_VERSION="${PROTO_VERSION:-v1.0.5}" +PROTO_VERSION="${PROTO_VERSION:-v3.0.0}" +FLATCC="${FLATCC:-${PROJECT_ROOT}/opt/bin/flatcc}" SCRIPT_DIR=$( cd -- "$( dirname -- "${BASH_SOURCE[0]}" )" &> /dev/null && pwd ) -FD_NANOPB_TAG=$(cat ../../../ballet/nanopb/nanopb_tag.txt) +FD_NANOPB_TAG=$(cat ${PROJECT_ROOT}/src/ballet/nanopb/nanopb_tag.txt) # Create venv and install packages python3.11 -m venv nanopb_venv @@ -37,3 +40,8 @@ else fi ./nanopb/generator/nanopb_generator.py -I ./protosol/proto -L "" -C ./protosol/proto/*.proto -D generated + +# Generate flatbuffer headers +rm -rf flatbuffers/generated/* +$FLATCC --prefix=fd_ -a -I protosol/flatbuffers -r -o flatbuffers/generated/ protosol/flatbuffers/*.fbs +python3 fixup_flatbuffers.py diff --git a/src/flamenco/runtime/tests/fixup_flatbuffers.py b/src/flamenco/runtime/tests/fixup_flatbuffers.py new file mode 100644 index 00000000000..a1884579964 --- /dev/null +++ b/src/flamenco/runtime/tests/fixup_flatbuffers.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 + +import pathlib + + +def inject_pragmas(header_path: pathlib.Path) -> bool: + """Ensure the header is wrapped in GCC diagnostic pragmas.""" + text = header_path.read_text() + updated = False + + if "#pragma GCC diagnostic push" not in text: + text = ( + "#pragma GCC diagnostic push\n" + '#pragma GCC diagnostic ignored "-Wmisleading-indentation"\n\n' + + text + ) + updated = True + + if "#pragma GCC diagnostic pop" not in text: + text = text.rstrip() + "\n\n#pragma GCC diagnostic pop\n" + updated = True + + if updated: + header_path.write_text(text) + + return updated + + +def main() -> None: + script_dir = pathlib.Path(__file__).resolve().parent + headers_dir = script_dir / "flatbuffers" / "generated" + + if not headers_dir.is_dir(): + raise SystemExit(f"Missing generated headers directory: {headers_dir}") + + for header in sorted(headers_dir.glob("*.h")): + changed = inject_pragmas(header) + action = "updated" if changed else "skipped" + print(f"{action}: {header}") + + +if __name__ == "__main__": + main() + diff --git a/src/flamenco/runtime/tests/flatbuffers/generated/context_builder.h b/src/flamenco/runtime/tests/flatbuffers/generated/context_builder.h new file mode 100644 index 00000000000..fe58d1fd4e1 --- /dev/null +++ b/src/flamenco/runtime/tests/flatbuffers/generated/context_builder.h @@ -0,0 +1,251 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmisleading-indentation" + +#ifndef CONTEXT_BUILDER_H +#define CONTEXT_BUILDER_H + +/* Generated by flatcc 0.6.2 FlatBuffers schema compiler for C by dvide.com */ + +#ifndef CONTEXT_READER_H +#include "context_reader.h" +#endif +#ifndef FLATBUFFERS_COMMON_BUILDER_H +#include "flatbuffers_common_builder.h" +#endif +#include "flatcc/flatcc_prologue.h" +#ifndef flatbuffers_identifier +#define flatbuffers_identifier 0 +#endif +#ifndef flatbuffers_extension +#define flatbuffers_extension "bin" +#endif + +#define __fd_org_solana_sealevel_v2_Pubkey_formal_args , const uint8_t v0[32] +#define __fd_org_solana_sealevel_v2_Pubkey_call_args , v0 +static inline fd_org_solana_sealevel_v2_Pubkey_t *fd_org_solana_sealevel_v2_Pubkey_assign(fd_org_solana_sealevel_v2_Pubkey_t *p, const uint8_t v0[32]) +{ flatbuffers_uint8_array_copy(p->address, v0, 32); + return p; } +static inline fd_org_solana_sealevel_v2_Pubkey_t *fd_org_solana_sealevel_v2_Pubkey_copy(fd_org_solana_sealevel_v2_Pubkey_t *p, const fd_org_solana_sealevel_v2_Pubkey_t *p2) +{ flatbuffers_uint8_array_copy(p->address, p2->address, 32); + return p; } +static inline fd_org_solana_sealevel_v2_Pubkey_t *fd_org_solana_sealevel_v2_Pubkey_assign_to_pe(fd_org_solana_sealevel_v2_Pubkey_t *p, const uint8_t v0[32]) +{ flatbuffers_uint8_array_copy_to_pe(p->address, v0, 32); + return p; } +static inline fd_org_solana_sealevel_v2_Pubkey_t *fd_org_solana_sealevel_v2_Pubkey_copy_to_pe(fd_org_solana_sealevel_v2_Pubkey_t *p, const fd_org_solana_sealevel_v2_Pubkey_t *p2) +{ flatbuffers_uint8_array_copy_to_pe(p->address, p2->address, 32); + return p; } +static inline fd_org_solana_sealevel_v2_Pubkey_t *fd_org_solana_sealevel_v2_Pubkey_assign_from_pe(fd_org_solana_sealevel_v2_Pubkey_t *p, const uint8_t v0[32]) +{ flatbuffers_uint8_array_copy_from_pe(p->address, v0, 32); + return p; } +static inline fd_org_solana_sealevel_v2_Pubkey_t *fd_org_solana_sealevel_v2_Pubkey_copy_from_pe(fd_org_solana_sealevel_v2_Pubkey_t *p, const fd_org_solana_sealevel_v2_Pubkey_t *p2) +{ flatbuffers_uint8_array_copy_from_pe(p->address, p2->address, 32); + return p; } +__flatbuffers_build_struct(flatbuffers_, fd_org_solana_sealevel_v2_Pubkey, 32, 1, fd_org_solana_sealevel_v2_Pubkey_file_identifier, fd_org_solana_sealevel_v2_Pubkey_type_identifier) +__flatbuffers_define_fixed_array_primitives(flatbuffers_, fd_org_solana_sealevel_v2_Pubkey, fd_org_solana_sealevel_v2_Pubkey_t) + +#define __fd_org_solana_sealevel_v2_Signature_formal_args , const uint8_t v0[64] +#define __fd_org_solana_sealevel_v2_Signature_call_args , v0 +static inline fd_org_solana_sealevel_v2_Signature_t *fd_org_solana_sealevel_v2_Signature_assign(fd_org_solana_sealevel_v2_Signature_t *p, const uint8_t v0[64]) +{ flatbuffers_uint8_array_copy(p->signature, v0, 64); + return p; } +static inline fd_org_solana_sealevel_v2_Signature_t *fd_org_solana_sealevel_v2_Signature_copy(fd_org_solana_sealevel_v2_Signature_t *p, const fd_org_solana_sealevel_v2_Signature_t *p2) +{ flatbuffers_uint8_array_copy(p->signature, p2->signature, 64); + return p; } +static inline fd_org_solana_sealevel_v2_Signature_t *fd_org_solana_sealevel_v2_Signature_assign_to_pe(fd_org_solana_sealevel_v2_Signature_t *p, const uint8_t v0[64]) +{ flatbuffers_uint8_array_copy_to_pe(p->signature, v0, 64); + return p; } +static inline fd_org_solana_sealevel_v2_Signature_t *fd_org_solana_sealevel_v2_Signature_copy_to_pe(fd_org_solana_sealevel_v2_Signature_t *p, const fd_org_solana_sealevel_v2_Signature_t *p2) +{ flatbuffers_uint8_array_copy_to_pe(p->signature, p2->signature, 64); + return p; } +static inline fd_org_solana_sealevel_v2_Signature_t *fd_org_solana_sealevel_v2_Signature_assign_from_pe(fd_org_solana_sealevel_v2_Signature_t *p, const uint8_t v0[64]) +{ flatbuffers_uint8_array_copy_from_pe(p->signature, v0, 64); + return p; } +static inline fd_org_solana_sealevel_v2_Signature_t *fd_org_solana_sealevel_v2_Signature_copy_from_pe(fd_org_solana_sealevel_v2_Signature_t *p, const fd_org_solana_sealevel_v2_Signature_t *p2) +{ flatbuffers_uint8_array_copy_from_pe(p->signature, p2->signature, 64); + return p; } +__flatbuffers_build_struct(flatbuffers_, fd_org_solana_sealevel_v2_Signature, 64, 1, fd_org_solana_sealevel_v2_Signature_file_identifier, fd_org_solana_sealevel_v2_Signature_type_identifier) +__flatbuffers_define_fixed_array_primitives(flatbuffers_, fd_org_solana_sealevel_v2_Signature, fd_org_solana_sealevel_v2_Signature_t) + +#define __fd_org_solana_sealevel_v2_XXHash_formal_args , const uint8_t v0[8] +#define __fd_org_solana_sealevel_v2_XXHash_call_args , v0 +static inline fd_org_solana_sealevel_v2_XXHash_t *fd_org_solana_sealevel_v2_XXHash_assign(fd_org_solana_sealevel_v2_XXHash_t *p, const uint8_t v0[8]) +{ flatbuffers_uint8_array_copy(p->hash, v0, 8); + return p; } +static inline fd_org_solana_sealevel_v2_XXHash_t *fd_org_solana_sealevel_v2_XXHash_copy(fd_org_solana_sealevel_v2_XXHash_t *p, const fd_org_solana_sealevel_v2_XXHash_t *p2) +{ flatbuffers_uint8_array_copy(p->hash, p2->hash, 8); + return p; } +static inline fd_org_solana_sealevel_v2_XXHash_t *fd_org_solana_sealevel_v2_XXHash_assign_to_pe(fd_org_solana_sealevel_v2_XXHash_t *p, const uint8_t v0[8]) +{ flatbuffers_uint8_array_copy_to_pe(p->hash, v0, 8); + return p; } +static inline fd_org_solana_sealevel_v2_XXHash_t *fd_org_solana_sealevel_v2_XXHash_copy_to_pe(fd_org_solana_sealevel_v2_XXHash_t *p, const fd_org_solana_sealevel_v2_XXHash_t *p2) +{ flatbuffers_uint8_array_copy_to_pe(p->hash, p2->hash, 8); + return p; } +static inline fd_org_solana_sealevel_v2_XXHash_t *fd_org_solana_sealevel_v2_XXHash_assign_from_pe(fd_org_solana_sealevel_v2_XXHash_t *p, const uint8_t v0[8]) +{ flatbuffers_uint8_array_copy_from_pe(p->hash, v0, 8); + return p; } +static inline fd_org_solana_sealevel_v2_XXHash_t *fd_org_solana_sealevel_v2_XXHash_copy_from_pe(fd_org_solana_sealevel_v2_XXHash_t *p, const fd_org_solana_sealevel_v2_XXHash_t *p2) +{ flatbuffers_uint8_array_copy_from_pe(p->hash, p2->hash, 8); + return p; } +__flatbuffers_build_struct(flatbuffers_, fd_org_solana_sealevel_v2_XXHash, 8, 1, fd_org_solana_sealevel_v2_XXHash_file_identifier, fd_org_solana_sealevel_v2_XXHash_type_identifier) +__flatbuffers_define_fixed_array_primitives(flatbuffers_, fd_org_solana_sealevel_v2_XXHash, fd_org_solana_sealevel_v2_XXHash_t) + +#define __fd_org_solana_sealevel_v2_Hash_formal_args , const uint8_t v0[32] +#define __fd_org_solana_sealevel_v2_Hash_call_args , v0 +static inline fd_org_solana_sealevel_v2_Hash_t *fd_org_solana_sealevel_v2_Hash_assign(fd_org_solana_sealevel_v2_Hash_t *p, const uint8_t v0[32]) +{ flatbuffers_uint8_array_copy(p->hash, v0, 32); + return p; } +static inline fd_org_solana_sealevel_v2_Hash_t *fd_org_solana_sealevel_v2_Hash_copy(fd_org_solana_sealevel_v2_Hash_t *p, const fd_org_solana_sealevel_v2_Hash_t *p2) +{ flatbuffers_uint8_array_copy(p->hash, p2->hash, 32); + return p; } +static inline fd_org_solana_sealevel_v2_Hash_t *fd_org_solana_sealevel_v2_Hash_assign_to_pe(fd_org_solana_sealevel_v2_Hash_t *p, const uint8_t v0[32]) +{ flatbuffers_uint8_array_copy_to_pe(p->hash, v0, 32); + return p; } +static inline fd_org_solana_sealevel_v2_Hash_t *fd_org_solana_sealevel_v2_Hash_copy_to_pe(fd_org_solana_sealevel_v2_Hash_t *p, const fd_org_solana_sealevel_v2_Hash_t *p2) +{ flatbuffers_uint8_array_copy_to_pe(p->hash, p2->hash, 32); + return p; } +static inline fd_org_solana_sealevel_v2_Hash_t *fd_org_solana_sealevel_v2_Hash_assign_from_pe(fd_org_solana_sealevel_v2_Hash_t *p, const uint8_t v0[32]) +{ flatbuffers_uint8_array_copy_from_pe(p->hash, v0, 32); + return p; } +static inline fd_org_solana_sealevel_v2_Hash_t *fd_org_solana_sealevel_v2_Hash_copy_from_pe(fd_org_solana_sealevel_v2_Hash_t *p, const fd_org_solana_sealevel_v2_Hash_t *p2) +{ flatbuffers_uint8_array_copy_from_pe(p->hash, p2->hash, 32); + return p; } +__flatbuffers_build_struct(flatbuffers_, fd_org_solana_sealevel_v2_Hash, 32, 1, fd_org_solana_sealevel_v2_Hash_file_identifier, fd_org_solana_sealevel_v2_Hash_type_identifier) +__flatbuffers_define_fixed_array_primitives(flatbuffers_, fd_org_solana_sealevel_v2_Hash, fd_org_solana_sealevel_v2_Hash_t) + +#define __fd_org_solana_sealevel_v2_LtHash_formal_args , const uint16_t v0[1024] +#define __fd_org_solana_sealevel_v2_LtHash_call_args , v0 +static inline fd_org_solana_sealevel_v2_LtHash_t *fd_org_solana_sealevel_v2_LtHash_assign(fd_org_solana_sealevel_v2_LtHash_t *p, const uint16_t v0[1024]) +{ flatbuffers_uint16_array_copy(p->hash, v0, 1024); + return p; } +static inline fd_org_solana_sealevel_v2_LtHash_t *fd_org_solana_sealevel_v2_LtHash_copy(fd_org_solana_sealevel_v2_LtHash_t *p, const fd_org_solana_sealevel_v2_LtHash_t *p2) +{ flatbuffers_uint16_array_copy(p->hash, p2->hash, 1024); + return p; } +static inline fd_org_solana_sealevel_v2_LtHash_t *fd_org_solana_sealevel_v2_LtHash_assign_to_pe(fd_org_solana_sealevel_v2_LtHash_t *p, const uint16_t v0[1024]) +{ flatbuffers_uint16_array_copy_to_pe(p->hash, v0, 1024); + return p; } +static inline fd_org_solana_sealevel_v2_LtHash_t *fd_org_solana_sealevel_v2_LtHash_copy_to_pe(fd_org_solana_sealevel_v2_LtHash_t *p, const fd_org_solana_sealevel_v2_LtHash_t *p2) +{ flatbuffers_uint16_array_copy_to_pe(p->hash, p2->hash, 1024); + return p; } +static inline fd_org_solana_sealevel_v2_LtHash_t *fd_org_solana_sealevel_v2_LtHash_assign_from_pe(fd_org_solana_sealevel_v2_LtHash_t *p, const uint16_t v0[1024]) +{ flatbuffers_uint16_array_copy_from_pe(p->hash, v0, 1024); + return p; } +static inline fd_org_solana_sealevel_v2_LtHash_t *fd_org_solana_sealevel_v2_LtHash_copy_from_pe(fd_org_solana_sealevel_v2_LtHash_t *p, const fd_org_solana_sealevel_v2_LtHash_t *p2) +{ flatbuffers_uint16_array_copy_from_pe(p->hash, p2->hash, 1024); + return p; } +__flatbuffers_build_struct(flatbuffers_, fd_org_solana_sealevel_v2_LtHash, 2048, 2, fd_org_solana_sealevel_v2_LtHash_file_identifier, fd_org_solana_sealevel_v2_LtHash_type_identifier) +__flatbuffers_define_fixed_array_primitives(flatbuffers_, fd_org_solana_sealevel_v2_LtHash, fd_org_solana_sealevel_v2_LtHash_t) + +static const flatbuffers_voffset_t __fd_org_solana_sealevel_v2_FeatureSet_required[] = { 0 }; +typedef flatbuffers_ref_t fd_org_solana_sealevel_v2_FeatureSet_ref_t; +static fd_org_solana_sealevel_v2_FeatureSet_ref_t fd_org_solana_sealevel_v2_FeatureSet_clone(flatbuffers_builder_t *B, fd_org_solana_sealevel_v2_FeatureSet_table_t t); +__flatbuffers_build_table(flatbuffers_, fd_org_solana_sealevel_v2_FeatureSet, 1) + +static const flatbuffers_voffset_t __fd_org_solana_sealevel_v2_Account_required[] = { 0, 2, 4, 0 }; +typedef flatbuffers_ref_t fd_org_solana_sealevel_v2_Account_ref_t; +static fd_org_solana_sealevel_v2_Account_ref_t fd_org_solana_sealevel_v2_Account_clone(flatbuffers_builder_t *B, fd_org_solana_sealevel_v2_Account_table_t t); +__flatbuffers_build_table(flatbuffers_, fd_org_solana_sealevel_v2_Account, 5) + +static const flatbuffers_voffset_t __fd_org_solana_sealevel_v2_VoteAccount_required[] = { 0, 0 }; +typedef flatbuffers_ref_t fd_org_solana_sealevel_v2_VoteAccount_ref_t; +static fd_org_solana_sealevel_v2_VoteAccount_ref_t fd_org_solana_sealevel_v2_VoteAccount_clone(flatbuffers_builder_t *B, fd_org_solana_sealevel_v2_VoteAccount_table_t t); +__flatbuffers_build_table(flatbuffers_, fd_org_solana_sealevel_v2_VoteAccount, 2) + +#define __fd_org_solana_sealevel_v2_FeatureSet_formal_args , flatbuffers_uint64_vec_ref_t v0 +#define __fd_org_solana_sealevel_v2_FeatureSet_call_args , v0 +static inline fd_org_solana_sealevel_v2_FeatureSet_ref_t fd_org_solana_sealevel_v2_FeatureSet_create(flatbuffers_builder_t *B __fd_org_solana_sealevel_v2_FeatureSet_formal_args); +__flatbuffers_build_table_prolog(flatbuffers_, fd_org_solana_sealevel_v2_FeatureSet, fd_org_solana_sealevel_v2_FeatureSet_file_identifier, fd_org_solana_sealevel_v2_FeatureSet_type_identifier) + +#define __fd_org_solana_sealevel_v2_Account_formal_args ,\ + fd_org_solana_sealevel_v2_Pubkey_t *v0, uint64_t v1, flatbuffers_uint8_vec_ref_t v2, flatbuffers_bool_t v3, fd_org_solana_sealevel_v2_Pubkey_t *v4 +#define __fd_org_solana_sealevel_v2_Account_call_args ,\ + v0, v1, v2, v3, v4 +static inline fd_org_solana_sealevel_v2_Account_ref_t fd_org_solana_sealevel_v2_Account_create(flatbuffers_builder_t *B __fd_org_solana_sealevel_v2_Account_formal_args); +__flatbuffers_build_table_prolog(flatbuffers_, fd_org_solana_sealevel_v2_Account, fd_org_solana_sealevel_v2_Account_file_identifier, fd_org_solana_sealevel_v2_Account_type_identifier) + +#define __fd_org_solana_sealevel_v2_VoteAccount_formal_args , fd_org_solana_sealevel_v2_Account_ref_t v0, uint64_t v1 +#define __fd_org_solana_sealevel_v2_VoteAccount_call_args , v0, v1 +static inline fd_org_solana_sealevel_v2_VoteAccount_ref_t fd_org_solana_sealevel_v2_VoteAccount_create(flatbuffers_builder_t *B __fd_org_solana_sealevel_v2_VoteAccount_formal_args); +__flatbuffers_build_table_prolog(flatbuffers_, fd_org_solana_sealevel_v2_VoteAccount, fd_org_solana_sealevel_v2_VoteAccount_file_identifier, fd_org_solana_sealevel_v2_VoteAccount_type_identifier) + +__flatbuffers_build_vector_field(0, flatbuffers_, fd_org_solana_sealevel_v2_FeatureSet_features, flatbuffers_uint64, uint64_t, fd_org_solana_sealevel_v2_FeatureSet) + +static inline fd_org_solana_sealevel_v2_FeatureSet_ref_t fd_org_solana_sealevel_v2_FeatureSet_create(flatbuffers_builder_t *B __fd_org_solana_sealevel_v2_FeatureSet_formal_args) +{ + if (fd_org_solana_sealevel_v2_FeatureSet_start(B) + || fd_org_solana_sealevel_v2_FeatureSet_features_add(B, v0)) { + return 0; + } + return fd_org_solana_sealevel_v2_FeatureSet_end(B); +} + +static fd_org_solana_sealevel_v2_FeatureSet_ref_t fd_org_solana_sealevel_v2_FeatureSet_clone(flatbuffers_builder_t *B, fd_org_solana_sealevel_v2_FeatureSet_table_t t) +{ + __flatbuffers_memoize_begin(B, t); + if (fd_org_solana_sealevel_v2_FeatureSet_start(B) + || fd_org_solana_sealevel_v2_FeatureSet_features_pick(B, t)) { + return 0; + } + __flatbuffers_memoize_end(B, t, fd_org_solana_sealevel_v2_FeatureSet_end(B)); +} + +__flatbuffers_build_struct_field(0, flatbuffers_, fd_org_solana_sealevel_v2_Account_address, fd_org_solana_sealevel_v2_Pubkey, 32, 1, fd_org_solana_sealevel_v2_Account) +__flatbuffers_build_scalar_field(1, flatbuffers_, fd_org_solana_sealevel_v2_Account_lamports, flatbuffers_uint64, uint64_t, 8, 8, UINT64_C(0), fd_org_solana_sealevel_v2_Account) +__flatbuffers_build_vector_field(2, flatbuffers_, fd_org_solana_sealevel_v2_Account_data, flatbuffers_uint8, uint8_t, fd_org_solana_sealevel_v2_Account) +__flatbuffers_build_scalar_field(3, flatbuffers_, fd_org_solana_sealevel_v2_Account_executable, flatbuffers_bool, flatbuffers_bool_t, 1, 1, UINT8_C(0), fd_org_solana_sealevel_v2_Account) +__flatbuffers_build_struct_field(4, flatbuffers_, fd_org_solana_sealevel_v2_Account_owner, fd_org_solana_sealevel_v2_Pubkey, 32, 1, fd_org_solana_sealevel_v2_Account) + +static inline fd_org_solana_sealevel_v2_Account_ref_t fd_org_solana_sealevel_v2_Account_create(flatbuffers_builder_t *B __fd_org_solana_sealevel_v2_Account_formal_args) +{ + if (fd_org_solana_sealevel_v2_Account_start(B) + || fd_org_solana_sealevel_v2_Account_lamports_add(B, v1) + || fd_org_solana_sealevel_v2_Account_data_add(B, v2) + || fd_org_solana_sealevel_v2_Account_address_add(B, v0) + || fd_org_solana_sealevel_v2_Account_executable_add(B, v3) + || fd_org_solana_sealevel_v2_Account_owner_add(B, v4)) { + return 0; + } + return fd_org_solana_sealevel_v2_Account_end(B); +} + +static fd_org_solana_sealevel_v2_Account_ref_t fd_org_solana_sealevel_v2_Account_clone(flatbuffers_builder_t *B, fd_org_solana_sealevel_v2_Account_table_t t) +{ + __flatbuffers_memoize_begin(B, t); + if (fd_org_solana_sealevel_v2_Account_start(B) + || fd_org_solana_sealevel_v2_Account_lamports_pick(B, t) + || fd_org_solana_sealevel_v2_Account_data_pick(B, t) + || fd_org_solana_sealevel_v2_Account_address_pick(B, t) + || fd_org_solana_sealevel_v2_Account_executable_pick(B, t) + || fd_org_solana_sealevel_v2_Account_owner_pick(B, t)) { + return 0; + } + __flatbuffers_memoize_end(B, t, fd_org_solana_sealevel_v2_Account_end(B)); +} + +__flatbuffers_build_table_field(0, flatbuffers_, fd_org_solana_sealevel_v2_VoteAccount_vote_account, fd_org_solana_sealevel_v2_Account, fd_org_solana_sealevel_v2_VoteAccount) +__flatbuffers_build_scalar_field(1, flatbuffers_, fd_org_solana_sealevel_v2_VoteAccount_stake, flatbuffers_uint64, uint64_t, 8, 8, UINT64_C(0), fd_org_solana_sealevel_v2_VoteAccount) + +static inline fd_org_solana_sealevel_v2_VoteAccount_ref_t fd_org_solana_sealevel_v2_VoteAccount_create(flatbuffers_builder_t *B __fd_org_solana_sealevel_v2_VoteAccount_formal_args) +{ + if (fd_org_solana_sealevel_v2_VoteAccount_start(B) + || fd_org_solana_sealevel_v2_VoteAccount_stake_add(B, v1) + || fd_org_solana_sealevel_v2_VoteAccount_vote_account_add(B, v0)) { + return 0; + } + return fd_org_solana_sealevel_v2_VoteAccount_end(B); +} + +static fd_org_solana_sealevel_v2_VoteAccount_ref_t fd_org_solana_sealevel_v2_VoteAccount_clone(flatbuffers_builder_t *B, fd_org_solana_sealevel_v2_VoteAccount_table_t t) +{ + __flatbuffers_memoize_begin(B, t); + if (fd_org_solana_sealevel_v2_VoteAccount_start(B) + || fd_org_solana_sealevel_v2_VoteAccount_stake_pick(B, t) + || fd_org_solana_sealevel_v2_VoteAccount_vote_account_pick(B, t)) { + return 0; + } + __flatbuffers_memoize_end(B, t, fd_org_solana_sealevel_v2_VoteAccount_end(B)); +} + +#include "flatcc/flatcc_epilogue.h" +#endif /* CONTEXT_BUILDER_H */ + +#pragma GCC diagnostic pop diff --git a/src/flamenco/runtime/tests/flatbuffers/generated/context_reader.h b/src/flamenco/runtime/tests/flatbuffers/generated/context_reader.h new file mode 100644 index 00000000000..6b569882e52 --- /dev/null +++ b/src/flamenco/runtime/tests/flatbuffers/generated/context_reader.h @@ -0,0 +1,280 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmisleading-indentation" + +#ifndef CONTEXT_READER_H +#define CONTEXT_READER_H + +/* Generated by flatcc 0.6.2 FlatBuffers schema compiler for C by dvide.com */ + +#ifndef FLATBUFFERS_COMMON_READER_H +#include "flatbuffers_common_reader.h" +#endif +#include "flatcc/flatcc_flatbuffers.h" +#ifndef __alignas_is_defined +#include +#endif +#include "flatcc/flatcc_prologue.h" +#ifndef flatbuffers_identifier +#define flatbuffers_identifier 0 +#endif +#ifndef flatbuffers_extension +#define flatbuffers_extension "bin" +#endif + +typedef struct fd_org_solana_sealevel_v2_Pubkey fd_org_solana_sealevel_v2_Pubkey_t; +typedef const fd_org_solana_sealevel_v2_Pubkey_t *fd_org_solana_sealevel_v2_Pubkey_struct_t; +typedef fd_org_solana_sealevel_v2_Pubkey_t *fd_org_solana_sealevel_v2_Pubkey_mutable_struct_t; +typedef const fd_org_solana_sealevel_v2_Pubkey_t *fd_org_solana_sealevel_v2_Pubkey_vec_t; +typedef fd_org_solana_sealevel_v2_Pubkey_t *fd_org_solana_sealevel_v2_Pubkey_mutable_vec_t; +typedef struct fd_org_solana_sealevel_v2_Signature fd_org_solana_sealevel_v2_Signature_t; +typedef const fd_org_solana_sealevel_v2_Signature_t *fd_org_solana_sealevel_v2_Signature_struct_t; +typedef fd_org_solana_sealevel_v2_Signature_t *fd_org_solana_sealevel_v2_Signature_mutable_struct_t; +typedef const fd_org_solana_sealevel_v2_Signature_t *fd_org_solana_sealevel_v2_Signature_vec_t; +typedef fd_org_solana_sealevel_v2_Signature_t *fd_org_solana_sealevel_v2_Signature_mutable_vec_t; +typedef struct fd_org_solana_sealevel_v2_XXHash fd_org_solana_sealevel_v2_XXHash_t; +typedef const fd_org_solana_sealevel_v2_XXHash_t *fd_org_solana_sealevel_v2_XXHash_struct_t; +typedef fd_org_solana_sealevel_v2_XXHash_t *fd_org_solana_sealevel_v2_XXHash_mutable_struct_t; +typedef const fd_org_solana_sealevel_v2_XXHash_t *fd_org_solana_sealevel_v2_XXHash_vec_t; +typedef fd_org_solana_sealevel_v2_XXHash_t *fd_org_solana_sealevel_v2_XXHash_mutable_vec_t; +typedef struct fd_org_solana_sealevel_v2_Hash fd_org_solana_sealevel_v2_Hash_t; +typedef const fd_org_solana_sealevel_v2_Hash_t *fd_org_solana_sealevel_v2_Hash_struct_t; +typedef fd_org_solana_sealevel_v2_Hash_t *fd_org_solana_sealevel_v2_Hash_mutable_struct_t; +typedef const fd_org_solana_sealevel_v2_Hash_t *fd_org_solana_sealevel_v2_Hash_vec_t; +typedef fd_org_solana_sealevel_v2_Hash_t *fd_org_solana_sealevel_v2_Hash_mutable_vec_t; +typedef struct fd_org_solana_sealevel_v2_LtHash fd_org_solana_sealevel_v2_LtHash_t; +typedef const fd_org_solana_sealevel_v2_LtHash_t *fd_org_solana_sealevel_v2_LtHash_struct_t; +typedef fd_org_solana_sealevel_v2_LtHash_t *fd_org_solana_sealevel_v2_LtHash_mutable_struct_t; +typedef const fd_org_solana_sealevel_v2_LtHash_t *fd_org_solana_sealevel_v2_LtHash_vec_t; +typedef fd_org_solana_sealevel_v2_LtHash_t *fd_org_solana_sealevel_v2_LtHash_mutable_vec_t; + +typedef const struct fd_org_solana_sealevel_v2_FeatureSet_table *fd_org_solana_sealevel_v2_FeatureSet_table_t; +typedef struct fd_org_solana_sealevel_v2_FeatureSet_table *fd_org_solana_sealevel_v2_FeatureSet_mutable_table_t; +typedef const flatbuffers_uoffset_t *fd_org_solana_sealevel_v2_FeatureSet_vec_t; +typedef flatbuffers_uoffset_t *fd_org_solana_sealevel_v2_FeatureSet_mutable_vec_t; +typedef const struct fd_org_solana_sealevel_v2_Account_table *fd_org_solana_sealevel_v2_Account_table_t; +typedef struct fd_org_solana_sealevel_v2_Account_table *fd_org_solana_sealevel_v2_Account_mutable_table_t; +typedef const flatbuffers_uoffset_t *fd_org_solana_sealevel_v2_Account_vec_t; +typedef flatbuffers_uoffset_t *fd_org_solana_sealevel_v2_Account_mutable_vec_t; +typedef const struct fd_org_solana_sealevel_v2_VoteAccount_table *fd_org_solana_sealevel_v2_VoteAccount_table_t; +typedef struct fd_org_solana_sealevel_v2_VoteAccount_table *fd_org_solana_sealevel_v2_VoteAccount_mutable_table_t; +typedef const flatbuffers_uoffset_t *fd_org_solana_sealevel_v2_VoteAccount_vec_t; +typedef flatbuffers_uoffset_t *fd_org_solana_sealevel_v2_VoteAccount_mutable_vec_t; +#ifndef fd_org_solana_sealevel_v2_Pubkey_file_identifier +#define fd_org_solana_sealevel_v2_Pubkey_file_identifier 0 +#endif +/* deprecated, use fd_org_solana_sealevel_v2_Pubkey_file_identifier */ +#ifndef fd_org_solana_sealevel_v2_Pubkey_identifier +#define fd_org_solana_sealevel_v2_Pubkey_identifier 0 +#endif +#define fd_org_solana_sealevel_v2_Pubkey_type_hash ((flatbuffers_thash_t)0xc898bc4) +#define fd_org_solana_sealevel_v2_Pubkey_type_identifier "\xc4\x8b\x89\x0c" +#ifndef fd_org_solana_sealevel_v2_Pubkey_file_extension +#define fd_org_solana_sealevel_v2_Pubkey_file_extension "bin" +#endif +#ifndef fd_org_solana_sealevel_v2_Signature_file_identifier +#define fd_org_solana_sealevel_v2_Signature_file_identifier 0 +#endif +/* deprecated, use fd_org_solana_sealevel_v2_Signature_file_identifier */ +#ifndef fd_org_solana_sealevel_v2_Signature_identifier +#define fd_org_solana_sealevel_v2_Signature_identifier 0 +#endif +#define fd_org_solana_sealevel_v2_Signature_type_hash ((flatbuffers_thash_t)0xaa168124) +#define fd_org_solana_sealevel_v2_Signature_type_identifier "\x24\x81\x16\xaa" +#ifndef fd_org_solana_sealevel_v2_Signature_file_extension +#define fd_org_solana_sealevel_v2_Signature_file_extension "bin" +#endif +#ifndef fd_org_solana_sealevel_v2_XXHash_file_identifier +#define fd_org_solana_sealevel_v2_XXHash_file_identifier 0 +#endif +/* deprecated, use fd_org_solana_sealevel_v2_XXHash_file_identifier */ +#ifndef fd_org_solana_sealevel_v2_XXHash_identifier +#define fd_org_solana_sealevel_v2_XXHash_identifier 0 +#endif +#define fd_org_solana_sealevel_v2_XXHash_type_hash ((flatbuffers_thash_t)0x21f13112) +#define fd_org_solana_sealevel_v2_XXHash_type_identifier "\x12\x31\xf1\x21" +#ifndef fd_org_solana_sealevel_v2_XXHash_file_extension +#define fd_org_solana_sealevel_v2_XXHash_file_extension "bin" +#endif +#ifndef fd_org_solana_sealevel_v2_Hash_file_identifier +#define fd_org_solana_sealevel_v2_Hash_file_identifier 0 +#endif +/* deprecated, use fd_org_solana_sealevel_v2_Hash_file_identifier */ +#ifndef fd_org_solana_sealevel_v2_Hash_identifier +#define fd_org_solana_sealevel_v2_Hash_identifier 0 +#endif +#define fd_org_solana_sealevel_v2_Hash_type_hash ((flatbuffers_thash_t)0x44eea8d2) +#define fd_org_solana_sealevel_v2_Hash_type_identifier "\xd2\xa8\xee\x44" +#ifndef fd_org_solana_sealevel_v2_Hash_file_extension +#define fd_org_solana_sealevel_v2_Hash_file_extension "bin" +#endif +#ifndef fd_org_solana_sealevel_v2_LtHash_file_identifier +#define fd_org_solana_sealevel_v2_LtHash_file_identifier 0 +#endif +/* deprecated, use fd_org_solana_sealevel_v2_LtHash_file_identifier */ +#ifndef fd_org_solana_sealevel_v2_LtHash_identifier +#define fd_org_solana_sealevel_v2_LtHash_identifier 0 +#endif +#define fd_org_solana_sealevel_v2_LtHash_type_hash ((flatbuffers_thash_t)0x6c51545a) +#define fd_org_solana_sealevel_v2_LtHash_type_identifier "\x5a\x54\x51\x6c" +#ifndef fd_org_solana_sealevel_v2_LtHash_file_extension +#define fd_org_solana_sealevel_v2_LtHash_file_extension "bin" +#endif +#ifndef fd_org_solana_sealevel_v2_FeatureSet_file_identifier +#define fd_org_solana_sealevel_v2_FeatureSet_file_identifier 0 +#endif +/* deprecated, use fd_org_solana_sealevel_v2_FeatureSet_file_identifier */ +#ifndef fd_org_solana_sealevel_v2_FeatureSet_identifier +#define fd_org_solana_sealevel_v2_FeatureSet_identifier 0 +#endif +#define fd_org_solana_sealevel_v2_FeatureSet_type_hash ((flatbuffers_thash_t)0x6ed64be0) +#define fd_org_solana_sealevel_v2_FeatureSet_type_identifier "\xe0\x4b\xd6\x6e" +#ifndef fd_org_solana_sealevel_v2_FeatureSet_file_extension +#define fd_org_solana_sealevel_v2_FeatureSet_file_extension "bin" +#endif +#ifndef fd_org_solana_sealevel_v2_Account_file_identifier +#define fd_org_solana_sealevel_v2_Account_file_identifier 0 +#endif +/* deprecated, use fd_org_solana_sealevel_v2_Account_file_identifier */ +#ifndef fd_org_solana_sealevel_v2_Account_identifier +#define fd_org_solana_sealevel_v2_Account_identifier 0 +#endif +#define fd_org_solana_sealevel_v2_Account_type_hash ((flatbuffers_thash_t)0xc7851391) +#define fd_org_solana_sealevel_v2_Account_type_identifier "\x91\x13\x85\xc7" +#ifndef fd_org_solana_sealevel_v2_Account_file_extension +#define fd_org_solana_sealevel_v2_Account_file_extension "bin" +#endif +#ifndef fd_org_solana_sealevel_v2_VoteAccount_file_identifier +#define fd_org_solana_sealevel_v2_VoteAccount_file_identifier 0 +#endif +/* deprecated, use fd_org_solana_sealevel_v2_VoteAccount_file_identifier */ +#ifndef fd_org_solana_sealevel_v2_VoteAccount_identifier +#define fd_org_solana_sealevel_v2_VoteAccount_identifier 0 +#endif +#define fd_org_solana_sealevel_v2_VoteAccount_type_hash ((flatbuffers_thash_t)0x2385ecbd) +#define fd_org_solana_sealevel_v2_VoteAccount_type_identifier "\xbd\xec\x85\x23" +#ifndef fd_org_solana_sealevel_v2_VoteAccount_file_extension +#define fd_org_solana_sealevel_v2_VoteAccount_file_extension "bin" +#endif + + +struct fd_org_solana_sealevel_v2_Pubkey { + alignas(1) uint8_t address[32]; +}; +static_assert(sizeof(fd_org_solana_sealevel_v2_Pubkey_t) == 32, "struct size mismatch"); + +static inline const fd_org_solana_sealevel_v2_Pubkey_t *fd_org_solana_sealevel_v2_Pubkey__const_ptr_add(const fd_org_solana_sealevel_v2_Pubkey_t *p, size_t i) { return p + i; } +static inline fd_org_solana_sealevel_v2_Pubkey_t *fd_org_solana_sealevel_v2_Pubkey__ptr_add(fd_org_solana_sealevel_v2_Pubkey_t *p, size_t i) { return p + i; } +static inline fd_org_solana_sealevel_v2_Pubkey_struct_t fd_org_solana_sealevel_v2_Pubkey_vec_at(fd_org_solana_sealevel_v2_Pubkey_vec_t vec, size_t i) +__flatbuffers_struct_vec_at(vec, i) +static inline size_t fd_org_solana_sealevel_v2_Pubkey__size(void) { return 32; } +static inline size_t fd_org_solana_sealevel_v2_Pubkey_vec_len(fd_org_solana_sealevel_v2_Pubkey_vec_t vec) +__flatbuffers_vec_len(vec) +__flatbuffers_struct_as_root(fd_org_solana_sealevel_v2_Pubkey) + +__flatbuffers_define_struct_scalar_fixed_array_field(fd_org_solana_sealevel_v2_Pubkey, address, flatbuffers_uint8, uint8_t, 32) + +struct fd_org_solana_sealevel_v2_Signature { + alignas(1) uint8_t signature[64]; +}; +static_assert(sizeof(fd_org_solana_sealevel_v2_Signature_t) == 64, "struct size mismatch"); + +static inline const fd_org_solana_sealevel_v2_Signature_t *fd_org_solana_sealevel_v2_Signature__const_ptr_add(const fd_org_solana_sealevel_v2_Signature_t *p, size_t i) { return p + i; } +static inline fd_org_solana_sealevel_v2_Signature_t *fd_org_solana_sealevel_v2_Signature__ptr_add(fd_org_solana_sealevel_v2_Signature_t *p, size_t i) { return p + i; } +static inline fd_org_solana_sealevel_v2_Signature_struct_t fd_org_solana_sealevel_v2_Signature_vec_at(fd_org_solana_sealevel_v2_Signature_vec_t vec, size_t i) +__flatbuffers_struct_vec_at(vec, i) +static inline size_t fd_org_solana_sealevel_v2_Signature__size(void) { return 64; } +static inline size_t fd_org_solana_sealevel_v2_Signature_vec_len(fd_org_solana_sealevel_v2_Signature_vec_t vec) +__flatbuffers_vec_len(vec) +__flatbuffers_struct_as_root(fd_org_solana_sealevel_v2_Signature) + +__flatbuffers_define_struct_scalar_fixed_array_field(fd_org_solana_sealevel_v2_Signature, signature, flatbuffers_uint8, uint8_t, 64) + +struct fd_org_solana_sealevel_v2_XXHash { + alignas(1) uint8_t hash[8]; +}; +static_assert(sizeof(fd_org_solana_sealevel_v2_XXHash_t) == 8, "struct size mismatch"); + +static inline const fd_org_solana_sealevel_v2_XXHash_t *fd_org_solana_sealevel_v2_XXHash__const_ptr_add(const fd_org_solana_sealevel_v2_XXHash_t *p, size_t i) { return p + i; } +static inline fd_org_solana_sealevel_v2_XXHash_t *fd_org_solana_sealevel_v2_XXHash__ptr_add(fd_org_solana_sealevel_v2_XXHash_t *p, size_t i) { return p + i; } +static inline fd_org_solana_sealevel_v2_XXHash_struct_t fd_org_solana_sealevel_v2_XXHash_vec_at(fd_org_solana_sealevel_v2_XXHash_vec_t vec, size_t i) +__flatbuffers_struct_vec_at(vec, i) +static inline size_t fd_org_solana_sealevel_v2_XXHash__size(void) { return 8; } +static inline size_t fd_org_solana_sealevel_v2_XXHash_vec_len(fd_org_solana_sealevel_v2_XXHash_vec_t vec) +__flatbuffers_vec_len(vec) +__flatbuffers_struct_as_root(fd_org_solana_sealevel_v2_XXHash) + +__flatbuffers_define_struct_scalar_fixed_array_field(fd_org_solana_sealevel_v2_XXHash, hash, flatbuffers_uint8, uint8_t, 8) + +struct fd_org_solana_sealevel_v2_Hash { + alignas(1) uint8_t hash[32]; +}; +static_assert(sizeof(fd_org_solana_sealevel_v2_Hash_t) == 32, "struct size mismatch"); + +static inline const fd_org_solana_sealevel_v2_Hash_t *fd_org_solana_sealevel_v2_Hash__const_ptr_add(const fd_org_solana_sealevel_v2_Hash_t *p, size_t i) { return p + i; } +static inline fd_org_solana_sealevel_v2_Hash_t *fd_org_solana_sealevel_v2_Hash__ptr_add(fd_org_solana_sealevel_v2_Hash_t *p, size_t i) { return p + i; } +static inline fd_org_solana_sealevel_v2_Hash_struct_t fd_org_solana_sealevel_v2_Hash_vec_at(fd_org_solana_sealevel_v2_Hash_vec_t vec, size_t i) +__flatbuffers_struct_vec_at(vec, i) +static inline size_t fd_org_solana_sealevel_v2_Hash__size(void) { return 32; } +static inline size_t fd_org_solana_sealevel_v2_Hash_vec_len(fd_org_solana_sealevel_v2_Hash_vec_t vec) +__flatbuffers_vec_len(vec) +__flatbuffers_struct_as_root(fd_org_solana_sealevel_v2_Hash) + +__flatbuffers_define_struct_scalar_fixed_array_field(fd_org_solana_sealevel_v2_Hash, hash, flatbuffers_uint8, uint8_t, 32) + +struct fd_org_solana_sealevel_v2_LtHash { + alignas(2) uint16_t hash[1024]; +}; +static_assert(sizeof(fd_org_solana_sealevel_v2_LtHash_t) == 2048, "struct size mismatch"); + +static inline const fd_org_solana_sealevel_v2_LtHash_t *fd_org_solana_sealevel_v2_LtHash__const_ptr_add(const fd_org_solana_sealevel_v2_LtHash_t *p, size_t i) { return p + i; } +static inline fd_org_solana_sealevel_v2_LtHash_t *fd_org_solana_sealevel_v2_LtHash__ptr_add(fd_org_solana_sealevel_v2_LtHash_t *p, size_t i) { return p + i; } +static inline fd_org_solana_sealevel_v2_LtHash_struct_t fd_org_solana_sealevel_v2_LtHash_vec_at(fd_org_solana_sealevel_v2_LtHash_vec_t vec, size_t i) +__flatbuffers_struct_vec_at(vec, i) +static inline size_t fd_org_solana_sealevel_v2_LtHash__size(void) { return 2048; } +static inline size_t fd_org_solana_sealevel_v2_LtHash_vec_len(fd_org_solana_sealevel_v2_LtHash_vec_t vec) +__flatbuffers_vec_len(vec) +__flatbuffers_struct_as_root(fd_org_solana_sealevel_v2_LtHash) + +__flatbuffers_define_struct_scalar_fixed_array_field(fd_org_solana_sealevel_v2_LtHash, hash, flatbuffers_uint16, uint16_t, 1024) + + +struct fd_org_solana_sealevel_v2_FeatureSet_table { uint8_t unused__; }; + +static inline size_t fd_org_solana_sealevel_v2_FeatureSet_vec_len(fd_org_solana_sealevel_v2_FeatureSet_vec_t vec) +__flatbuffers_vec_len(vec) +static inline fd_org_solana_sealevel_v2_FeatureSet_table_t fd_org_solana_sealevel_v2_FeatureSet_vec_at(fd_org_solana_sealevel_v2_FeatureSet_vec_t vec, size_t i) +__flatbuffers_offset_vec_at(fd_org_solana_sealevel_v2_FeatureSet_table_t, vec, i, 0) +__flatbuffers_table_as_root(fd_org_solana_sealevel_v2_FeatureSet) + +__flatbuffers_define_vector_field(0, fd_org_solana_sealevel_v2_FeatureSet, features, flatbuffers_uint64_vec_t, 0) + +struct fd_org_solana_sealevel_v2_Account_table { uint8_t unused__; }; + +static inline size_t fd_org_solana_sealevel_v2_Account_vec_len(fd_org_solana_sealevel_v2_Account_vec_t vec) +__flatbuffers_vec_len(vec) +static inline fd_org_solana_sealevel_v2_Account_table_t fd_org_solana_sealevel_v2_Account_vec_at(fd_org_solana_sealevel_v2_Account_vec_t vec, size_t i) +__flatbuffers_offset_vec_at(fd_org_solana_sealevel_v2_Account_table_t, vec, i, 0) +__flatbuffers_table_as_root(fd_org_solana_sealevel_v2_Account) + +__flatbuffers_define_struct_field(0, fd_org_solana_sealevel_v2_Account, address, fd_org_solana_sealevel_v2_Pubkey_struct_t, 1) +__flatbuffers_define_scalar_field(1, fd_org_solana_sealevel_v2_Account, lamports, flatbuffers_uint64, uint64_t, UINT64_C(0)) +__flatbuffers_define_vector_field(2, fd_org_solana_sealevel_v2_Account, data, flatbuffers_uint8_vec_t, 1) +__flatbuffers_define_scalar_field(3, fd_org_solana_sealevel_v2_Account, executable, flatbuffers_bool, flatbuffers_bool_t, UINT8_C(0)) +__flatbuffers_define_struct_field(4, fd_org_solana_sealevel_v2_Account, owner, fd_org_solana_sealevel_v2_Pubkey_struct_t, 1) + +struct fd_org_solana_sealevel_v2_VoteAccount_table { uint8_t unused__; }; + +static inline size_t fd_org_solana_sealevel_v2_VoteAccount_vec_len(fd_org_solana_sealevel_v2_VoteAccount_vec_t vec) +__flatbuffers_vec_len(vec) +static inline fd_org_solana_sealevel_v2_VoteAccount_table_t fd_org_solana_sealevel_v2_VoteAccount_vec_at(fd_org_solana_sealevel_v2_VoteAccount_vec_t vec, size_t i) +__flatbuffers_offset_vec_at(fd_org_solana_sealevel_v2_VoteAccount_table_t, vec, i, 0) +__flatbuffers_table_as_root(fd_org_solana_sealevel_v2_VoteAccount) + +__flatbuffers_define_table_field(0, fd_org_solana_sealevel_v2_VoteAccount, vote_account, fd_org_solana_sealevel_v2_Account_table_t, 1) +__flatbuffers_define_scalar_field(1, fd_org_solana_sealevel_v2_VoteAccount, stake, flatbuffers_uint64, uint64_t, UINT64_C(0)) + + +#include "flatcc/flatcc_epilogue.h" +#endif /* CONTEXT_READER_H */ + +#pragma GCC diagnostic pop diff --git a/src/flamenco/runtime/tests/flatbuffers/generated/context_verifier.h b/src/flamenco/runtime/tests/flatbuffers/generated/context_verifier.h new file mode 100644 index 00000000000..2f158ba7bce --- /dev/null +++ b/src/flamenco/runtime/tests/flatbuffers/generated/context_verifier.h @@ -0,0 +1,368 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmisleading-indentation" + +#ifndef CONTEXT_VERIFIER_H +#define CONTEXT_VERIFIER_H + +/* Generated by flatcc 0.6.2 FlatBuffers schema compiler for C by dvide.com */ + +#ifndef CONTEXT_READER_H +#include "context_reader.h" +#endif +#include "flatcc/flatcc_verifier.h" +#include "flatcc/flatcc_prologue.h" + +static int fd_org_solana_sealevel_v2_FeatureSet_verify_table(flatcc_table_verifier_descriptor_t *td); +static int fd_org_solana_sealevel_v2_Account_verify_table(flatcc_table_verifier_descriptor_t *td); +static int fd_org_solana_sealevel_v2_VoteAccount_verify_table(flatcc_table_verifier_descriptor_t *td); + +static inline int fd_org_solana_sealevel_v2_Pubkey_verify_as_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_Pubkey_identifier, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_Pubkey_verify_as_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_Pubkey_identifier, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_Pubkey_verify_as_typed_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_typed_root(buf, bufsiz, fd_org_solana_sealevel_v2_Pubkey_type_hash, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_Pubkey_verify_as_typed_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_typed_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_Pubkey_type_hash, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_Pubkey_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_struct_as_typed_root(buf, bufsiz, thash, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_Pubkey_verify_as_root_with_type_hash_and_size(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_struct_as_typed_root_with_size(buf, bufsiz, thash, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_Pubkey_verify_as_root_with_identifier(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_struct_as_root(buf, bufsiz, fid, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_Pubkey_verify_as_root_with_identifier_and_size(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_struct_as_root_with_size(buf, bufsiz, fid, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_Signature_verify_as_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_Signature_identifier, 64, 1); +} + +static inline int fd_org_solana_sealevel_v2_Signature_verify_as_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_Signature_identifier, 64, 1); +} + +static inline int fd_org_solana_sealevel_v2_Signature_verify_as_typed_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_typed_root(buf, bufsiz, fd_org_solana_sealevel_v2_Signature_type_hash, 64, 1); +} + +static inline int fd_org_solana_sealevel_v2_Signature_verify_as_typed_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_typed_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_Signature_type_hash, 64, 1); +} + +static inline int fd_org_solana_sealevel_v2_Signature_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_struct_as_typed_root(buf, bufsiz, thash, 64, 1); +} + +static inline int fd_org_solana_sealevel_v2_Signature_verify_as_root_with_type_hash_and_size(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_struct_as_typed_root_with_size(buf, bufsiz, thash, 64, 1); +} + +static inline int fd_org_solana_sealevel_v2_Signature_verify_as_root_with_identifier(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_struct_as_root(buf, bufsiz, fid, 64, 1); +} + +static inline int fd_org_solana_sealevel_v2_Signature_verify_as_root_with_identifier_and_size(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_struct_as_root_with_size(buf, bufsiz, fid, 64, 1); +} + +static inline int fd_org_solana_sealevel_v2_XXHash_verify_as_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_XXHash_identifier, 8, 1); +} + +static inline int fd_org_solana_sealevel_v2_XXHash_verify_as_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_XXHash_identifier, 8, 1); +} + +static inline int fd_org_solana_sealevel_v2_XXHash_verify_as_typed_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_typed_root(buf, bufsiz, fd_org_solana_sealevel_v2_XXHash_type_hash, 8, 1); +} + +static inline int fd_org_solana_sealevel_v2_XXHash_verify_as_typed_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_typed_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_XXHash_type_hash, 8, 1); +} + +static inline int fd_org_solana_sealevel_v2_XXHash_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_struct_as_typed_root(buf, bufsiz, thash, 8, 1); +} + +static inline int fd_org_solana_sealevel_v2_XXHash_verify_as_root_with_type_hash_and_size(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_struct_as_typed_root_with_size(buf, bufsiz, thash, 8, 1); +} + +static inline int fd_org_solana_sealevel_v2_XXHash_verify_as_root_with_identifier(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_struct_as_root(buf, bufsiz, fid, 8, 1); +} + +static inline int fd_org_solana_sealevel_v2_XXHash_verify_as_root_with_identifier_and_size(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_struct_as_root_with_size(buf, bufsiz, fid, 8, 1); +} + +static inline int fd_org_solana_sealevel_v2_Hash_verify_as_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_Hash_identifier, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_Hash_verify_as_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_Hash_identifier, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_Hash_verify_as_typed_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_typed_root(buf, bufsiz, fd_org_solana_sealevel_v2_Hash_type_hash, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_Hash_verify_as_typed_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_typed_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_Hash_type_hash, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_Hash_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_struct_as_typed_root(buf, bufsiz, thash, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_Hash_verify_as_root_with_type_hash_and_size(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_struct_as_typed_root_with_size(buf, bufsiz, thash, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_Hash_verify_as_root_with_identifier(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_struct_as_root(buf, bufsiz, fid, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_Hash_verify_as_root_with_identifier_and_size(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_struct_as_root_with_size(buf, bufsiz, fid, 32, 1); +} + +static inline int fd_org_solana_sealevel_v2_LtHash_verify_as_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_LtHash_identifier, 2048, 2); +} + +static inline int fd_org_solana_sealevel_v2_LtHash_verify_as_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_LtHash_identifier, 2048, 2); +} + +static inline int fd_org_solana_sealevel_v2_LtHash_verify_as_typed_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_typed_root(buf, bufsiz, fd_org_solana_sealevel_v2_LtHash_type_hash, 2048, 2); +} + +static inline int fd_org_solana_sealevel_v2_LtHash_verify_as_typed_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_struct_as_typed_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_LtHash_type_hash, 2048, 2); +} + +static inline int fd_org_solana_sealevel_v2_LtHash_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_struct_as_typed_root(buf, bufsiz, thash, 2048, 2); +} + +static inline int fd_org_solana_sealevel_v2_LtHash_verify_as_root_with_type_hash_and_size(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_struct_as_typed_root_with_size(buf, bufsiz, thash, 2048, 2); +} + +static inline int fd_org_solana_sealevel_v2_LtHash_verify_as_root_with_identifier(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_struct_as_root(buf, bufsiz, fid, 2048, 2); +} + +static inline int fd_org_solana_sealevel_v2_LtHash_verify_as_root_with_identifier_and_size(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_struct_as_root_with_size(buf, bufsiz, fid, 2048, 2); +} + +static int fd_org_solana_sealevel_v2_FeatureSet_verify_table(flatcc_table_verifier_descriptor_t *td) +{ + int ret; + if ((ret = flatcc_verify_vector_field(td, 0, 0, 8, 8, INT64_C(536870911)) /* features */)) return ret; + return flatcc_verify_ok; +} + +static inline int fd_org_solana_sealevel_v2_FeatureSet_verify_as_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_FeatureSet_identifier, &fd_org_solana_sealevel_v2_FeatureSet_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_FeatureSet_verify_as_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_FeatureSet_identifier, &fd_org_solana_sealevel_v2_FeatureSet_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_FeatureSet_verify_as_typed_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_FeatureSet_type_identifier, &fd_org_solana_sealevel_v2_FeatureSet_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_FeatureSet_verify_as_typed_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_FeatureSet_type_identifier, &fd_org_solana_sealevel_v2_FeatureSet_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_FeatureSet_verify_as_root_with_identifier(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fid, &fd_org_solana_sealevel_v2_FeatureSet_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_FeatureSet_verify_as_root_with_identifier_and_size(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fid, &fd_org_solana_sealevel_v2_FeatureSet_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_FeatureSet_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &fd_org_solana_sealevel_v2_FeatureSet_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_FeatureSet_verify_as_root_with_type_hash_and_size(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_table_as_typed_root_with_size(buf, bufsiz, thash, &fd_org_solana_sealevel_v2_FeatureSet_verify_table); +} + +static int fd_org_solana_sealevel_v2_Account_verify_table(flatcc_table_verifier_descriptor_t *td) +{ + int ret; + if ((ret = flatcc_verify_field(td, 0, 32, 1) /* address */)) return ret; + if ((ret = flatcc_verify_field(td, 1, 8, 8) /* lamports */)) return ret; + if ((ret = flatcc_verify_vector_field(td, 2, 1, 1, 1, INT64_C(4294967295)) /* data */)) return ret; + if ((ret = flatcc_verify_field(td, 3, 1, 1) /* executable */)) return ret; + if ((ret = flatcc_verify_field(td, 4, 32, 1) /* owner */)) return ret; + return flatcc_verify_ok; +} + +static inline int fd_org_solana_sealevel_v2_Account_verify_as_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_Account_identifier, &fd_org_solana_sealevel_v2_Account_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_Account_verify_as_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_Account_identifier, &fd_org_solana_sealevel_v2_Account_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_Account_verify_as_typed_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_Account_type_identifier, &fd_org_solana_sealevel_v2_Account_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_Account_verify_as_typed_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_Account_type_identifier, &fd_org_solana_sealevel_v2_Account_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_Account_verify_as_root_with_identifier(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fid, &fd_org_solana_sealevel_v2_Account_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_Account_verify_as_root_with_identifier_and_size(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fid, &fd_org_solana_sealevel_v2_Account_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_Account_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &fd_org_solana_sealevel_v2_Account_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_Account_verify_as_root_with_type_hash_and_size(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_table_as_typed_root_with_size(buf, bufsiz, thash, &fd_org_solana_sealevel_v2_Account_verify_table); +} + +static int fd_org_solana_sealevel_v2_VoteAccount_verify_table(flatcc_table_verifier_descriptor_t *td) +{ + int ret; + if ((ret = flatcc_verify_table_field(td, 0, 1, &fd_org_solana_sealevel_v2_Account_verify_table) /* vote_account */)) return ret; + if ((ret = flatcc_verify_field(td, 1, 8, 8) /* stake */)) return ret; + return flatcc_verify_ok; +} + +static inline int fd_org_solana_sealevel_v2_VoteAccount_verify_as_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_VoteAccount_identifier, &fd_org_solana_sealevel_v2_VoteAccount_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_VoteAccount_verify_as_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_VoteAccount_identifier, &fd_org_solana_sealevel_v2_VoteAccount_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_VoteAccount_verify_as_typed_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_VoteAccount_type_identifier, &fd_org_solana_sealevel_v2_VoteAccount_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_VoteAccount_verify_as_typed_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_VoteAccount_type_identifier, &fd_org_solana_sealevel_v2_VoteAccount_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_VoteAccount_verify_as_root_with_identifier(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fid, &fd_org_solana_sealevel_v2_VoteAccount_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_VoteAccount_verify_as_root_with_identifier_and_size(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fid, &fd_org_solana_sealevel_v2_VoteAccount_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_VoteAccount_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &fd_org_solana_sealevel_v2_VoteAccount_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_VoteAccount_verify_as_root_with_type_hash_and_size(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_table_as_typed_root_with_size(buf, bufsiz, thash, &fd_org_solana_sealevel_v2_VoteAccount_verify_table); +} + +#include "flatcc/flatcc_epilogue.h" +#endif /* CONTEXT_VERIFIER_H */ + +#pragma GCC diagnostic pop diff --git a/src/flamenco/runtime/tests/flatbuffers/generated/elf_builder.h b/src/flamenco/runtime/tests/flatbuffers/generated/elf_builder.h new file mode 100644 index 00000000000..c380f05ebc6 --- /dev/null +++ b/src/flamenco/runtime/tests/flatbuffers/generated/elf_builder.h @@ -0,0 +1,154 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmisleading-indentation" + +#ifndef ELF_BUILDER_H +#define ELF_BUILDER_H + +/* Generated by flatcc 0.6.2 FlatBuffers schema compiler for C by dvide.com */ + +#ifndef ELF_READER_H +#include "elf_reader.h" +#endif +#ifndef FLATBUFFERS_COMMON_BUILDER_H +#include "flatbuffers_common_builder.h" +#endif +#ifndef CONTEXT_BUILDER_H +#include "context_builder.h" +#endif +#ifndef METADATA_BUILDER_H +#include "metadata_builder.h" +#endif +#include "flatcc/flatcc_prologue.h" +#ifndef flatbuffers_identifier +#define flatbuffers_identifier 0 +#endif +#ifndef flatbuffers_extension +#define flatbuffers_extension "bin" +#endif + +static const flatbuffers_voffset_t __fd_org_solana_sealevel_v2_ELFLoaderCtx_required[] = { 0, 1, 0 }; +typedef flatbuffers_ref_t fd_org_solana_sealevel_v2_ELFLoaderCtx_ref_t; +static fd_org_solana_sealevel_v2_ELFLoaderCtx_ref_t fd_org_solana_sealevel_v2_ELFLoaderCtx_clone(flatbuffers_builder_t *B, fd_org_solana_sealevel_v2_ELFLoaderCtx_table_t t); +__flatbuffers_build_table(flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderCtx, 3) + +static const flatbuffers_voffset_t __fd_org_solana_sealevel_v2_ELFLoaderEffects_required[] = { 0 }; +typedef flatbuffers_ref_t fd_org_solana_sealevel_v2_ELFLoaderEffects_ref_t; +static fd_org_solana_sealevel_v2_ELFLoaderEffects_ref_t fd_org_solana_sealevel_v2_ELFLoaderEffects_clone(flatbuffers_builder_t *B, fd_org_solana_sealevel_v2_ELFLoaderEffects_table_t t); +__flatbuffers_build_table(flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderEffects, 6) + +static const flatbuffers_voffset_t __fd_org_solana_sealevel_v2_ELFLoaderFixture_required[] = { 0, 1, 2, 0 }; +typedef flatbuffers_ref_t fd_org_solana_sealevel_v2_ELFLoaderFixture_ref_t; +static fd_org_solana_sealevel_v2_ELFLoaderFixture_ref_t fd_org_solana_sealevel_v2_ELFLoaderFixture_clone(flatbuffers_builder_t *B, fd_org_solana_sealevel_v2_ELFLoaderFixture_table_t t); +__flatbuffers_build_table(flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderFixture, 3) + +#define __fd_org_solana_sealevel_v2_ELFLoaderCtx_formal_args , flatbuffers_uint8_vec_ref_t v0, fd_org_solana_sealevel_v2_FeatureSet_ref_t v1, flatbuffers_bool_t v2 +#define __fd_org_solana_sealevel_v2_ELFLoaderCtx_call_args , v0, v1, v2 +static inline fd_org_solana_sealevel_v2_ELFLoaderCtx_ref_t fd_org_solana_sealevel_v2_ELFLoaderCtx_create(flatbuffers_builder_t *B __fd_org_solana_sealevel_v2_ELFLoaderCtx_formal_args); +__flatbuffers_build_table_prolog(flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderCtx, fd_org_solana_sealevel_v2_ELFLoaderCtx_file_identifier, fd_org_solana_sealevel_v2_ELFLoaderCtx_type_identifier) + +#define __fd_org_solana_sealevel_v2_ELFLoaderEffects_formal_args ,\ + uint8_t v0, fd_org_solana_sealevel_v2_XXHash_t *v1, uint64_t v2, uint64_t v3, uint64_t v4, fd_org_solana_sealevel_v2_XXHash_t *v5 +#define __fd_org_solana_sealevel_v2_ELFLoaderEffects_call_args ,\ + v0, v1, v2, v3, v4, v5 +static inline fd_org_solana_sealevel_v2_ELFLoaderEffects_ref_t fd_org_solana_sealevel_v2_ELFLoaderEffects_create(flatbuffers_builder_t *B __fd_org_solana_sealevel_v2_ELFLoaderEffects_formal_args); +__flatbuffers_build_table_prolog(flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderEffects, fd_org_solana_sealevel_v2_ELFLoaderEffects_file_identifier, fd_org_solana_sealevel_v2_ELFLoaderEffects_type_identifier) + +#define __fd_org_solana_sealevel_v2_ELFLoaderFixture_formal_args , fd_org_solana_sealevel_v2_FixtureMetadata_ref_t v0, fd_org_solana_sealevel_v2_ELFLoaderCtx_ref_t v1, fd_org_solana_sealevel_v2_ELFLoaderEffects_ref_t v2 +#define __fd_org_solana_sealevel_v2_ELFLoaderFixture_call_args , v0, v1, v2 +static inline fd_org_solana_sealevel_v2_ELFLoaderFixture_ref_t fd_org_solana_sealevel_v2_ELFLoaderFixture_create(flatbuffers_builder_t *B __fd_org_solana_sealevel_v2_ELFLoaderFixture_formal_args); +__flatbuffers_build_table_prolog(flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderFixture, fd_org_solana_sealevel_v2_ELFLoaderFixture_file_identifier, fd_org_solana_sealevel_v2_ELFLoaderFixture_type_identifier) + +__flatbuffers_build_vector_field(0, flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderCtx_elf_data, flatbuffers_uint8, uint8_t, fd_org_solana_sealevel_v2_ELFLoaderCtx) +__flatbuffers_build_table_field(1, flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderCtx_features, fd_org_solana_sealevel_v2_FeatureSet, fd_org_solana_sealevel_v2_ELFLoaderCtx) +__flatbuffers_build_scalar_field(2, flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderCtx_deploy_checks, flatbuffers_bool, flatbuffers_bool_t, 1, 1, UINT8_C(0), fd_org_solana_sealevel_v2_ELFLoaderCtx) + +static inline fd_org_solana_sealevel_v2_ELFLoaderCtx_ref_t fd_org_solana_sealevel_v2_ELFLoaderCtx_create(flatbuffers_builder_t *B __fd_org_solana_sealevel_v2_ELFLoaderCtx_formal_args) +{ + if (fd_org_solana_sealevel_v2_ELFLoaderCtx_start(B) + || fd_org_solana_sealevel_v2_ELFLoaderCtx_elf_data_add(B, v0) + || fd_org_solana_sealevel_v2_ELFLoaderCtx_features_add(B, v1) + || fd_org_solana_sealevel_v2_ELFLoaderCtx_deploy_checks_add(B, v2)) { + return 0; + } + return fd_org_solana_sealevel_v2_ELFLoaderCtx_end(B); +} + +static fd_org_solana_sealevel_v2_ELFLoaderCtx_ref_t fd_org_solana_sealevel_v2_ELFLoaderCtx_clone(flatbuffers_builder_t *B, fd_org_solana_sealevel_v2_ELFLoaderCtx_table_t t) +{ + __flatbuffers_memoize_begin(B, t); + if (fd_org_solana_sealevel_v2_ELFLoaderCtx_start(B) + || fd_org_solana_sealevel_v2_ELFLoaderCtx_elf_data_pick(B, t) + || fd_org_solana_sealevel_v2_ELFLoaderCtx_features_pick(B, t) + || fd_org_solana_sealevel_v2_ELFLoaderCtx_deploy_checks_pick(B, t)) { + return 0; + } + __flatbuffers_memoize_end(B, t, fd_org_solana_sealevel_v2_ELFLoaderCtx_end(B)); +} + +__flatbuffers_build_scalar_field(0, flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderEffects_err_code, flatbuffers_uint8, uint8_t, 1, 1, UINT8_C(0), fd_org_solana_sealevel_v2_ELFLoaderEffects) +__flatbuffers_build_struct_field(1, flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderEffects_rodata_hash, fd_org_solana_sealevel_v2_XXHash, 8, 1, fd_org_solana_sealevel_v2_ELFLoaderEffects) +__flatbuffers_build_scalar_field(2, flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderEffects_text_cnt, flatbuffers_uint64, uint64_t, 8, 8, UINT64_C(0), fd_org_solana_sealevel_v2_ELFLoaderEffects) +__flatbuffers_build_scalar_field(3, flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderEffects_text_off, flatbuffers_uint64, uint64_t, 8, 8, UINT64_C(0), fd_org_solana_sealevel_v2_ELFLoaderEffects) +__flatbuffers_build_scalar_field(4, flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderEffects_entry_pc, flatbuffers_uint64, uint64_t, 8, 8, UINT64_C(0), fd_org_solana_sealevel_v2_ELFLoaderEffects) +__flatbuffers_build_struct_field(5, flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderEffects_calldests_hash, fd_org_solana_sealevel_v2_XXHash, 8, 1, fd_org_solana_sealevel_v2_ELFLoaderEffects) + +static inline fd_org_solana_sealevel_v2_ELFLoaderEffects_ref_t fd_org_solana_sealevel_v2_ELFLoaderEffects_create(flatbuffers_builder_t *B __fd_org_solana_sealevel_v2_ELFLoaderEffects_formal_args) +{ + if (fd_org_solana_sealevel_v2_ELFLoaderEffects_start(B) + || fd_org_solana_sealevel_v2_ELFLoaderEffects_text_cnt_add(B, v2) + || fd_org_solana_sealevel_v2_ELFLoaderEffects_text_off_add(B, v3) + || fd_org_solana_sealevel_v2_ELFLoaderEffects_entry_pc_add(B, v4) + || fd_org_solana_sealevel_v2_ELFLoaderEffects_err_code_add(B, v0) + || fd_org_solana_sealevel_v2_ELFLoaderEffects_rodata_hash_add(B, v1) + || fd_org_solana_sealevel_v2_ELFLoaderEffects_calldests_hash_add(B, v5)) { + return 0; + } + return fd_org_solana_sealevel_v2_ELFLoaderEffects_end(B); +} + +static fd_org_solana_sealevel_v2_ELFLoaderEffects_ref_t fd_org_solana_sealevel_v2_ELFLoaderEffects_clone(flatbuffers_builder_t *B, fd_org_solana_sealevel_v2_ELFLoaderEffects_table_t t) +{ + __flatbuffers_memoize_begin(B, t); + if (fd_org_solana_sealevel_v2_ELFLoaderEffects_start(B) + || fd_org_solana_sealevel_v2_ELFLoaderEffects_text_cnt_pick(B, t) + || fd_org_solana_sealevel_v2_ELFLoaderEffects_text_off_pick(B, t) + || fd_org_solana_sealevel_v2_ELFLoaderEffects_entry_pc_pick(B, t) + || fd_org_solana_sealevel_v2_ELFLoaderEffects_err_code_pick(B, t) + || fd_org_solana_sealevel_v2_ELFLoaderEffects_rodata_hash_pick(B, t) + || fd_org_solana_sealevel_v2_ELFLoaderEffects_calldests_hash_pick(B, t)) { + return 0; + } + __flatbuffers_memoize_end(B, t, fd_org_solana_sealevel_v2_ELFLoaderEffects_end(B)); +} + +__flatbuffers_build_table_field(0, flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderFixture_metadata, fd_org_solana_sealevel_v2_FixtureMetadata, fd_org_solana_sealevel_v2_ELFLoaderFixture) +__flatbuffers_build_table_field(1, flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderFixture_input, fd_org_solana_sealevel_v2_ELFLoaderCtx, fd_org_solana_sealevel_v2_ELFLoaderFixture) +__flatbuffers_build_table_field(2, flatbuffers_, fd_org_solana_sealevel_v2_ELFLoaderFixture_output, fd_org_solana_sealevel_v2_ELFLoaderEffects, fd_org_solana_sealevel_v2_ELFLoaderFixture) + +static inline fd_org_solana_sealevel_v2_ELFLoaderFixture_ref_t fd_org_solana_sealevel_v2_ELFLoaderFixture_create(flatbuffers_builder_t *B __fd_org_solana_sealevel_v2_ELFLoaderFixture_formal_args) +{ + if (fd_org_solana_sealevel_v2_ELFLoaderFixture_start(B) + || fd_org_solana_sealevel_v2_ELFLoaderFixture_metadata_add(B, v0) + || fd_org_solana_sealevel_v2_ELFLoaderFixture_input_add(B, v1) + || fd_org_solana_sealevel_v2_ELFLoaderFixture_output_add(B, v2)) { + return 0; + } + return fd_org_solana_sealevel_v2_ELFLoaderFixture_end(B); +} + +static fd_org_solana_sealevel_v2_ELFLoaderFixture_ref_t fd_org_solana_sealevel_v2_ELFLoaderFixture_clone(flatbuffers_builder_t *B, fd_org_solana_sealevel_v2_ELFLoaderFixture_table_t t) +{ + __flatbuffers_memoize_begin(B, t); + if (fd_org_solana_sealevel_v2_ELFLoaderFixture_start(B) + || fd_org_solana_sealevel_v2_ELFLoaderFixture_metadata_pick(B, t) + || fd_org_solana_sealevel_v2_ELFLoaderFixture_input_pick(B, t) + || fd_org_solana_sealevel_v2_ELFLoaderFixture_output_pick(B, t)) { + return 0; + } + __flatbuffers_memoize_end(B, t, fd_org_solana_sealevel_v2_ELFLoaderFixture_end(B)); +} + +#include "flatcc/flatcc_epilogue.h" +#endif /* ELF_BUILDER_H */ + +#pragma GCC diagnostic pop diff --git a/src/flamenco/runtime/tests/flatbuffers/generated/elf_reader.h b/src/flamenco/runtime/tests/flatbuffers/generated/elf_reader.h new file mode 100644 index 00000000000..5a003a1f043 --- /dev/null +++ b/src/flamenco/runtime/tests/flatbuffers/generated/elf_reader.h @@ -0,0 +1,125 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmisleading-indentation" + +#ifndef ELF_READER_H +#define ELF_READER_H + +/* Generated by flatcc 0.6.2 FlatBuffers schema compiler for C by dvide.com */ + +#ifndef FLATBUFFERS_COMMON_READER_H +#include "flatbuffers_common_reader.h" +#endif +#ifndef CONTEXT_READER_H +#include "context_reader.h" +#endif +#ifndef METADATA_READER_H +#include "metadata_reader.h" +#endif +#include "flatcc/flatcc_flatbuffers.h" +#ifndef __alignas_is_defined +#include +#endif +#include "flatcc/flatcc_prologue.h" +#ifndef flatbuffers_identifier +#define flatbuffers_identifier 0 +#endif +#ifndef flatbuffers_extension +#define flatbuffers_extension "bin" +#endif + + +typedef const struct fd_org_solana_sealevel_v2_ELFLoaderCtx_table *fd_org_solana_sealevel_v2_ELFLoaderCtx_table_t; +typedef struct fd_org_solana_sealevel_v2_ELFLoaderCtx_table *fd_org_solana_sealevel_v2_ELFLoaderCtx_mutable_table_t; +typedef const flatbuffers_uoffset_t *fd_org_solana_sealevel_v2_ELFLoaderCtx_vec_t; +typedef flatbuffers_uoffset_t *fd_org_solana_sealevel_v2_ELFLoaderCtx_mutable_vec_t; +typedef const struct fd_org_solana_sealevel_v2_ELFLoaderEffects_table *fd_org_solana_sealevel_v2_ELFLoaderEffects_table_t; +typedef struct fd_org_solana_sealevel_v2_ELFLoaderEffects_table *fd_org_solana_sealevel_v2_ELFLoaderEffects_mutable_table_t; +typedef const flatbuffers_uoffset_t *fd_org_solana_sealevel_v2_ELFLoaderEffects_vec_t; +typedef flatbuffers_uoffset_t *fd_org_solana_sealevel_v2_ELFLoaderEffects_mutable_vec_t; +typedef const struct fd_org_solana_sealevel_v2_ELFLoaderFixture_table *fd_org_solana_sealevel_v2_ELFLoaderFixture_table_t; +typedef struct fd_org_solana_sealevel_v2_ELFLoaderFixture_table *fd_org_solana_sealevel_v2_ELFLoaderFixture_mutable_table_t; +typedef const flatbuffers_uoffset_t *fd_org_solana_sealevel_v2_ELFLoaderFixture_vec_t; +typedef flatbuffers_uoffset_t *fd_org_solana_sealevel_v2_ELFLoaderFixture_mutable_vec_t; +#ifndef fd_org_solana_sealevel_v2_ELFLoaderCtx_file_identifier +#define fd_org_solana_sealevel_v2_ELFLoaderCtx_file_identifier 0 +#endif +/* deprecated, use fd_org_solana_sealevel_v2_ELFLoaderCtx_file_identifier */ +#ifndef fd_org_solana_sealevel_v2_ELFLoaderCtx_identifier +#define fd_org_solana_sealevel_v2_ELFLoaderCtx_identifier 0 +#endif +#define fd_org_solana_sealevel_v2_ELFLoaderCtx_type_hash ((flatbuffers_thash_t)0x25b834d) +#define fd_org_solana_sealevel_v2_ELFLoaderCtx_type_identifier "\x4d\x83\x5b\x02" +#ifndef fd_org_solana_sealevel_v2_ELFLoaderCtx_file_extension +#define fd_org_solana_sealevel_v2_ELFLoaderCtx_file_extension "bin" +#endif +#ifndef fd_org_solana_sealevel_v2_ELFLoaderEffects_file_identifier +#define fd_org_solana_sealevel_v2_ELFLoaderEffects_file_identifier 0 +#endif +/* deprecated, use fd_org_solana_sealevel_v2_ELFLoaderEffects_file_identifier */ +#ifndef fd_org_solana_sealevel_v2_ELFLoaderEffects_identifier +#define fd_org_solana_sealevel_v2_ELFLoaderEffects_identifier 0 +#endif +#define fd_org_solana_sealevel_v2_ELFLoaderEffects_type_hash ((flatbuffers_thash_t)0xd0834c16) +#define fd_org_solana_sealevel_v2_ELFLoaderEffects_type_identifier "\x16\x4c\x83\xd0" +#ifndef fd_org_solana_sealevel_v2_ELFLoaderEffects_file_extension +#define fd_org_solana_sealevel_v2_ELFLoaderEffects_file_extension "bin" +#endif +#ifndef fd_org_solana_sealevel_v2_ELFLoaderFixture_file_identifier +#define fd_org_solana_sealevel_v2_ELFLoaderFixture_file_identifier 0 +#endif +/* deprecated, use fd_org_solana_sealevel_v2_ELFLoaderFixture_file_identifier */ +#ifndef fd_org_solana_sealevel_v2_ELFLoaderFixture_identifier +#define fd_org_solana_sealevel_v2_ELFLoaderFixture_identifier 0 +#endif +#define fd_org_solana_sealevel_v2_ELFLoaderFixture_type_hash ((flatbuffers_thash_t)0xf82b3931) +#define fd_org_solana_sealevel_v2_ELFLoaderFixture_type_identifier "\x31\x39\x2b\xf8" +#ifndef fd_org_solana_sealevel_v2_ELFLoaderFixture_file_extension +#define fd_org_solana_sealevel_v2_ELFLoaderFixture_file_extension "bin" +#endif + + + +struct fd_org_solana_sealevel_v2_ELFLoaderCtx_table { uint8_t unused__; }; + +static inline size_t fd_org_solana_sealevel_v2_ELFLoaderCtx_vec_len(fd_org_solana_sealevel_v2_ELFLoaderCtx_vec_t vec) +__flatbuffers_vec_len(vec) +static inline fd_org_solana_sealevel_v2_ELFLoaderCtx_table_t fd_org_solana_sealevel_v2_ELFLoaderCtx_vec_at(fd_org_solana_sealevel_v2_ELFLoaderCtx_vec_t vec, size_t i) +__flatbuffers_offset_vec_at(fd_org_solana_sealevel_v2_ELFLoaderCtx_table_t, vec, i, 0) +__flatbuffers_table_as_root(fd_org_solana_sealevel_v2_ELFLoaderCtx) + +__flatbuffers_define_vector_field(0, fd_org_solana_sealevel_v2_ELFLoaderCtx, elf_data, flatbuffers_uint8_vec_t, 1) +__flatbuffers_define_table_field(1, fd_org_solana_sealevel_v2_ELFLoaderCtx, features, fd_org_solana_sealevel_v2_FeatureSet_table_t, 1) +__flatbuffers_define_scalar_field(2, fd_org_solana_sealevel_v2_ELFLoaderCtx, deploy_checks, flatbuffers_bool, flatbuffers_bool_t, UINT8_C(0)) + +struct fd_org_solana_sealevel_v2_ELFLoaderEffects_table { uint8_t unused__; }; + +static inline size_t fd_org_solana_sealevel_v2_ELFLoaderEffects_vec_len(fd_org_solana_sealevel_v2_ELFLoaderEffects_vec_t vec) +__flatbuffers_vec_len(vec) +static inline fd_org_solana_sealevel_v2_ELFLoaderEffects_table_t fd_org_solana_sealevel_v2_ELFLoaderEffects_vec_at(fd_org_solana_sealevel_v2_ELFLoaderEffects_vec_t vec, size_t i) +__flatbuffers_offset_vec_at(fd_org_solana_sealevel_v2_ELFLoaderEffects_table_t, vec, i, 0) +__flatbuffers_table_as_root(fd_org_solana_sealevel_v2_ELFLoaderEffects) + +__flatbuffers_define_scalar_field(0, fd_org_solana_sealevel_v2_ELFLoaderEffects, err_code, flatbuffers_uint8, uint8_t, UINT8_C(0)) +__flatbuffers_define_struct_field(1, fd_org_solana_sealevel_v2_ELFLoaderEffects, rodata_hash, fd_org_solana_sealevel_v2_XXHash_struct_t, 0) +__flatbuffers_define_scalar_field(2, fd_org_solana_sealevel_v2_ELFLoaderEffects, text_cnt, flatbuffers_uint64, uint64_t, UINT64_C(0)) +__flatbuffers_define_scalar_field(3, fd_org_solana_sealevel_v2_ELFLoaderEffects, text_off, flatbuffers_uint64, uint64_t, UINT64_C(0)) +__flatbuffers_define_scalar_field(4, fd_org_solana_sealevel_v2_ELFLoaderEffects, entry_pc, flatbuffers_uint64, uint64_t, UINT64_C(0)) +__flatbuffers_define_struct_field(5, fd_org_solana_sealevel_v2_ELFLoaderEffects, calldests_hash, fd_org_solana_sealevel_v2_XXHash_struct_t, 0) + +struct fd_org_solana_sealevel_v2_ELFLoaderFixture_table { uint8_t unused__; }; + +static inline size_t fd_org_solana_sealevel_v2_ELFLoaderFixture_vec_len(fd_org_solana_sealevel_v2_ELFLoaderFixture_vec_t vec) +__flatbuffers_vec_len(vec) +static inline fd_org_solana_sealevel_v2_ELFLoaderFixture_table_t fd_org_solana_sealevel_v2_ELFLoaderFixture_vec_at(fd_org_solana_sealevel_v2_ELFLoaderFixture_vec_t vec, size_t i) +__flatbuffers_offset_vec_at(fd_org_solana_sealevel_v2_ELFLoaderFixture_table_t, vec, i, 0) +__flatbuffers_table_as_root(fd_org_solana_sealevel_v2_ELFLoaderFixture) + +__flatbuffers_define_table_field(0, fd_org_solana_sealevel_v2_ELFLoaderFixture, metadata, fd_org_solana_sealevel_v2_FixtureMetadata_table_t, 1) +__flatbuffers_define_table_field(1, fd_org_solana_sealevel_v2_ELFLoaderFixture, input, fd_org_solana_sealevel_v2_ELFLoaderCtx_table_t, 1) +__flatbuffers_define_table_field(2, fd_org_solana_sealevel_v2_ELFLoaderFixture, output, fd_org_solana_sealevel_v2_ELFLoaderEffects_table_t, 1) + + +#include "flatcc/flatcc_epilogue.h" +#endif /* ELF_READER_H */ + +#pragma GCC diagnostic pop diff --git a/src/flamenco/runtime/tests/flatbuffers/generated/elf_verifier.h b/src/flamenco/runtime/tests/flatbuffers/generated/elf_verifier.h new file mode 100644 index 00000000000..ee054abf105 --- /dev/null +++ b/src/flamenco/runtime/tests/flatbuffers/generated/elf_verifier.h @@ -0,0 +1,178 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmisleading-indentation" + +#ifndef ELF_VERIFIER_H +#define ELF_VERIFIER_H + +/* Generated by flatcc 0.6.2 FlatBuffers schema compiler for C by dvide.com */ + +#ifndef ELF_READER_H +#include "elf_reader.h" +#endif +#include "flatcc/flatcc_verifier.h" +#ifndef CONTEXT_VERIFIER_H +#include "context_verifier.h" +#endif +#ifndef METADATA_VERIFIER_H +#include "metadata_verifier.h" +#endif +#include "flatcc/flatcc_prologue.h" + +static int fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_table(flatcc_table_verifier_descriptor_t *td); +static int fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_table(flatcc_table_verifier_descriptor_t *td); +static int fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_table(flatcc_table_verifier_descriptor_t *td); + +static int fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_table(flatcc_table_verifier_descriptor_t *td) +{ + int ret; + if ((ret = flatcc_verify_vector_field(td, 0, 1, 1, 1, INT64_C(4294967295)) /* elf_data */)) return ret; + if ((ret = flatcc_verify_table_field(td, 1, 1, &fd_org_solana_sealevel_v2_FeatureSet_verify_table) /* features */)) return ret; + if ((ret = flatcc_verify_field(td, 2, 1, 1) /* deploy_checks */)) return ret; + return flatcc_verify_ok; +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_as_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_ELFLoaderCtx_identifier, &fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_as_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_ELFLoaderCtx_identifier, &fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_as_typed_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_ELFLoaderCtx_type_identifier, &fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_as_typed_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_ELFLoaderCtx_type_identifier, &fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_as_root_with_identifier(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fid, &fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_as_root_with_identifier_and_size(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fid, &fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_as_root_with_type_hash_and_size(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_table_as_typed_root_with_size(buf, bufsiz, thash, &fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_table); +} + +static int fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_table(flatcc_table_verifier_descriptor_t *td) +{ + int ret; + if ((ret = flatcc_verify_field(td, 0, 1, 1) /* err_code */)) return ret; + if ((ret = flatcc_verify_field(td, 1, 8, 1) /* rodata_hash */)) return ret; + if ((ret = flatcc_verify_field(td, 2, 8, 8) /* text_cnt */)) return ret; + if ((ret = flatcc_verify_field(td, 3, 8, 8) /* text_off */)) return ret; + if ((ret = flatcc_verify_field(td, 4, 8, 8) /* entry_pc */)) return ret; + if ((ret = flatcc_verify_field(td, 5, 8, 1) /* calldests_hash */)) return ret; + return flatcc_verify_ok; +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_as_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_ELFLoaderEffects_identifier, &fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_as_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_ELFLoaderEffects_identifier, &fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_as_typed_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_ELFLoaderEffects_type_identifier, &fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_as_typed_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_ELFLoaderEffects_type_identifier, &fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_as_root_with_identifier(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fid, &fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_as_root_with_identifier_and_size(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fid, &fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_as_root_with_type_hash_and_size(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_table_as_typed_root_with_size(buf, bufsiz, thash, &fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_table); +} + +static int fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_table(flatcc_table_verifier_descriptor_t *td) +{ + int ret; + if ((ret = flatcc_verify_table_field(td, 0, 1, &fd_org_solana_sealevel_v2_FixtureMetadata_verify_table) /* metadata */)) return ret; + if ((ret = flatcc_verify_table_field(td, 1, 1, &fd_org_solana_sealevel_v2_ELFLoaderCtx_verify_table) /* input */)) return ret; + if ((ret = flatcc_verify_table_field(td, 2, 1, &fd_org_solana_sealevel_v2_ELFLoaderEffects_verify_table) /* output */)) return ret; + return flatcc_verify_ok; +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_as_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_ELFLoaderFixture_identifier, &fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_as_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_ELFLoaderFixture_identifier, &fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_as_typed_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_ELFLoaderFixture_type_identifier, &fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_as_typed_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_ELFLoaderFixture_type_identifier, &fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_as_root_with_identifier(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fid, &fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_as_root_with_identifier_and_size(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fid, &fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_as_root_with_type_hash_and_size(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_table_as_typed_root_with_size(buf, bufsiz, thash, &fd_org_solana_sealevel_v2_ELFLoaderFixture_verify_table); +} + +#include "flatcc/flatcc_epilogue.h" +#endif /* ELF_VERIFIER_H */ + +#pragma GCC diagnostic pop diff --git a/src/flamenco/runtime/tests/flatbuffers/generated/flatbuffers_common_builder.h b/src/flamenco/runtime/tests/flatbuffers/generated/flatbuffers_common_builder.h new file mode 100644 index 00000000000..22a2ef84e02 --- /dev/null +++ b/src/flamenco/runtime/tests/flatbuffers/generated/flatbuffers_common_builder.h @@ -0,0 +1,690 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmisleading-indentation" + +#ifndef FLATBUFFERS_COMMON_BUILDER_H +#define FLATBUFFERS_COMMON_BUILDER_H + +/* Generated by flatcc 0.6.2 FlatBuffers schema compiler for C by dvide.com */ + +/* Common FlatBuffers build functionality for C. */ + +#include "flatcc/flatcc_prologue.h" +#ifndef FLATBUILDER_H +#include "flatcc/flatcc_builder.h" +#endif +typedef flatcc_builder_t flatbuffers_builder_t; +typedef flatcc_builder_ref_t flatbuffers_ref_t; +typedef flatcc_builder_ref_t flatbuffers_vec_ref_t; +typedef flatcc_builder_union_ref_t flatbuffers_union_ref_t; +typedef flatcc_builder_union_vec_ref_t flatbuffers_union_vec_ref_t; +/* integer return code (ref and ptr always fail on 0) */ +#define flatbuffers_failed(x) ((x) < 0) +typedef flatbuffers_ref_t flatbuffers_root_t; +#define flatbuffers_root(ref) ((flatbuffers_root_t)(ref)) + +#define __flatbuffers_memoize_begin(B, src)\ +do { flatcc_builder_ref_t _ref; if ((_ref = flatcc_builder_refmap_find((B), (src)))) return _ref; } while (0) +#define __flatbuffers_memoize_end(B, src, op) do { return flatcc_builder_refmap_insert((B), (src), (op)); } while (0) +#define __flatbuffers_memoize(B, src, op) do { __flatbuffers_memoize_begin(B, src); __flatbuffers_memoize_end(B, src, op); } while (0) + +#define __flatbuffers_build_buffer(NS)\ +typedef NS ## ref_t NS ## buffer_ref_t;\ +static inline int NS ## buffer_start(NS ## builder_t *B, const NS ##fid_t fid)\ +{ return flatcc_builder_start_buffer(B, fid, 0, 0); }\ +static inline int NS ## buffer_start_with_size(NS ## builder_t *B, const NS ##fid_t fid)\ +{ return flatcc_builder_start_buffer(B, fid, 0, flatcc_builder_with_size); }\ +static inline int NS ## buffer_start_aligned(NS ## builder_t *B, NS ##fid_t fid, uint16_t block_align)\ +{ return flatcc_builder_start_buffer(B, fid, block_align, 0); }\ +static inline int NS ## buffer_start_aligned_with_size(NS ## builder_t *B, NS ##fid_t fid, uint16_t block_align)\ +{ return flatcc_builder_start_buffer(B, fid, block_align, flatcc_builder_with_size); }\ +static inline NS ## buffer_ref_t NS ## buffer_end(NS ## builder_t *B, NS ## ref_t root)\ +{ return flatcc_builder_end_buffer(B, root); } + +#define __flatbuffers_build_table_root(NS, N, FID, TFID)\ +static inline int N ## _start_as_root(NS ## builder_t *B)\ +{ return NS ## buffer_start(B, FID) ? -1 : N ## _start(B); }\ +static inline int N ## _start_as_root_with_size(NS ## builder_t *B)\ +{ return NS ## buffer_start_with_size(B, FID) ? -1 : N ## _start(B); }\ +static inline int N ## _start_as_typed_root(NS ## builder_t *B)\ +{ return NS ## buffer_start(B, TFID) ? -1 : N ## _start(B); }\ +static inline int N ## _start_as_typed_root_with_size(NS ## builder_t *B)\ +{ return NS ## buffer_start_with_size(B, TFID) ? -1 : N ## _start(B); }\ +static inline NS ## buffer_ref_t N ## _end_as_root(NS ## builder_t *B)\ +{ return NS ## buffer_end(B, N ## _end(B)); }\ +static inline NS ## buffer_ref_t N ## _end_as_typed_root(NS ## builder_t *B)\ +{ return NS ## buffer_end(B, N ## _end(B)); }\ +static inline NS ## buffer_ref_t N ## _create_as_root(NS ## builder_t *B __ ## N ## _formal_args)\ +{ if (NS ## buffer_start(B, FID)) return 0; return NS ## buffer_end(B, N ## _create(B __ ## N ## _call_args)); }\ +static inline NS ## buffer_ref_t N ## _create_as_root_with_size(NS ## builder_t *B __ ## N ## _formal_args)\ +{ if (NS ## buffer_start_with_size(B, FID)) return 0; return NS ## buffer_end(B, N ## _create(B __ ## N ## _call_args)); }\ +static inline NS ## buffer_ref_t N ## _create_as_typed_root(NS ## builder_t *B __ ## N ## _formal_args)\ +{ if (NS ## buffer_start(B, TFID)) return 0; return NS ## buffer_end(B, N ## _create(B __ ## N ## _call_args)); }\ +static inline NS ## buffer_ref_t N ## _create_as_typed_root_with_size(NS ## builder_t *B __ ## N ## _formal_args)\ +{ if (NS ## buffer_start_with_size(B, TFID)) return 0; return NS ## buffer_end(B, N ## _create(B __ ## N ## _call_args)); }\ +static inline NS ## buffer_ref_t N ## _clone_as_root(NS ## builder_t *B, N ## _table_t t)\ +{ if (NS ## buffer_start(B, FID)) return 0; return NS ## buffer_end(B, N ## _clone(B, t)); }\ +static inline NS ## buffer_ref_t N ## _clone_as_root_with_size(NS ## builder_t *B, N ## _table_t t)\ +{ if (NS ## buffer_start_with_size(B, FID)) return 0; return NS ## buffer_end(B, N ## _clone(B, t)); }\ +static inline NS ## buffer_ref_t N ## _clone_as_typed_root(NS ## builder_t *B, N ## _table_t t)\ +{ if (NS ## buffer_start(B, TFID)) return 0;return NS ## buffer_end(B, N ## _clone(B, t)); }\ +static inline NS ## buffer_ref_t N ## _clone_as_typed_root_with_size(NS ## builder_t *B, N ## _table_t t)\ +{ if (NS ## buffer_start_with_size(B, TFID)) return 0; return NS ## buffer_end(B, N ## _clone(B, t)); } + +#define __flatbuffers_build_table_prolog(NS, N, FID, TFID)\ +__flatbuffers_build_table_vector_ops(NS, N ## _vec, N)\ +__flatbuffers_build_table_root(NS, N, FID, TFID) + +#define __flatbuffers_build_struct_root(NS, N, A, FID, TFID)\ +static inline N ## _t *N ## _start_as_root(NS ## builder_t *B)\ +{ return NS ## buffer_start(B, FID) ? 0 : N ## _start(B); }\ +static inline N ## _t *N ## _start_as_root_with_size(NS ## builder_t *B)\ +{ return NS ## buffer_start_with_size(B, FID) ? 0 : N ## _start(B); }\ +static inline N ## _t *N ## _start_as_typed_root(NS ## builder_t *B)\ +{ return NS ## buffer_start(B, TFID) ? 0 : N ## _start(B); }\ +static inline N ## _t *N ## _start_as_typed_root_with_size(NS ## builder_t *B)\ +{ return NS ## buffer_start_with_size(B, TFID) ? 0 : N ## _start(B); }\ +static inline NS ## buffer_ref_t N ## _end_as_root(NS ## builder_t *B)\ +{ return NS ## buffer_end(B, N ## _end(B)); }\ +static inline NS ## buffer_ref_t N ## _end_as_typed_root(NS ## builder_t *B)\ +{ return NS ## buffer_end(B, N ## _end(B)); }\ +static inline NS ## buffer_ref_t N ## _end_pe_as_root(NS ## builder_t *B)\ +{ return NS ## buffer_end(B, N ## _end_pe(B)); }\ +static inline NS ## buffer_ref_t N ## _end_pe_as_typed_root(NS ## builder_t *B)\ +{ return NS ## buffer_end(B, N ## _end_pe(B)); }\ +static inline NS ## buffer_ref_t N ## _create_as_root(NS ## builder_t *B __ ## N ## _formal_args)\ +{ return flatcc_builder_create_buffer(B, FID, 0,\ + N ## _create(B __ ## N ## _call_args), A, 0); }\ +static inline NS ## buffer_ref_t N ## _create_as_root_with_size(NS ## builder_t *B __ ## N ## _formal_args)\ +{ return flatcc_builder_create_buffer(B, FID, 0,\ + N ## _create(B __ ## N ## _call_args), A, flatcc_builder_with_size); }\ +static inline NS ## buffer_ref_t N ## _create_as_typed_root(NS ## builder_t *B __ ## N ## _formal_args)\ +{ return flatcc_builder_create_buffer(B, TFID, 0,\ + N ## _create(B __ ## N ## _call_args), A, 0); }\ +static inline NS ## buffer_ref_t N ## _create_as_typed_root_with_size(NS ## builder_t *B __ ## N ## _formal_args)\ +{ return flatcc_builder_create_buffer(B, TFID, 0,\ + N ## _create(B __ ## N ## _call_args), A, flatcc_builder_with_size); }\ +static inline NS ## buffer_ref_t N ## _clone_as_root(NS ## builder_t *B, N ## _struct_t p)\ +{ return flatcc_builder_create_buffer(B, FID, 0, N ## _clone(B, p), A, 0); }\ +static inline NS ## buffer_ref_t N ## _clone_as_root_with_size(NS ## builder_t *B, N ## _struct_t p)\ +{ return flatcc_builder_create_buffer(B, FID, 0, N ## _clone(B, p), A, flatcc_builder_with_size); }\ +static inline NS ## buffer_ref_t N ## _clone_as_typed_root(NS ## builder_t *B, N ## _struct_t p)\ +{ return flatcc_builder_create_buffer(B, TFID, 0, N ## _clone(B, p), A, 0); }\ +static inline NS ## buffer_ref_t N ## _clone_as_typed_root_with_size(NS ## builder_t *B, N ## _struct_t p)\ +{ return flatcc_builder_create_buffer(B, TFID, 0, N ## _clone(B, p), A, flatcc_builder_with_size); } + +#define __flatbuffers_build_nested_table_root(NS, N, TN, FID, TFID)\ +static inline int N ## _start_as_root(NS ## builder_t *B)\ +{ return NS ## buffer_start(B, FID) ? -1 : TN ## _start(B); }\ +static inline int N ## _start_as_typed_root(NS ## builder_t *B)\ +{ return NS ## buffer_start(B, TFID) ? -1 : TN ## _start(B); }\ +static inline int N ## _end_as_root(NS ## builder_t *B)\ +{ return N ## _add(B, NS ## buffer_end(B, TN ## _end(B))); }\ +static inline int N ## _end_as_typed_root(NS ## builder_t *B)\ +{ return N ## _add(B, NS ## buffer_end(B, TN ## _end(B))); }\ +static inline int N ## _nest(NS ## builder_t *B, void *data, size_t size, uint16_t align)\ +{ return N ## _add(B, flatcc_builder_create_vector(B, data, size, 1,\ + align ? align : 8, FLATBUFFERS_COUNT_MAX(1))); }\ +static inline int N ## _typed_nest(NS ## builder_t *B, void *data, size_t size, uint16_t align)\ +{ return N ## _add(B, flatcc_builder_create_vector(B, data, size, 1,\ + align ? align : 8, FLATBUFFERS_COUNT_MAX(1))); }\ +static inline int N ## _clone_as_root(NS ## builder_t *B, TN ## _table_t t)\ +{ return N ## _add(B, TN ## _clone_as_root(B, t)); }\ +static inline int N ## _clone_as_typed_root(NS ## builder_t *B, TN ## _table_t t)\ +{ return N ## _add(B, TN ## _clone_as_typed_root(B, t)); } + +#define __flatbuffers_build_nested_struct_root(NS, N, TN, A, FID, TFID)\ +static inline TN ## _t *N ## _start_as_root(NS ## builder_t *B)\ +{ return NS ## buffer_start(B, FID) ? 0 : TN ## _start(B); }\ +static inline TN ## _t *N ## _start_as_typed_root(NS ## builder_t *B)\ +{ return NS ## buffer_start(B, FID) ? 0 : TN ## _start(B); }\ +static inline int N ## _end_as_root(NS ## builder_t *B)\ +{ return N ## _add(B, NS ## buffer_end(B, TN ## _end(B))); }\ +static inline int N ## _end_as_typed_root(NS ## builder_t *B)\ +{ return N ## _add(B, NS ## buffer_end(B, TN ## _end(B))); }\ +static inline int N ## _end_pe_as_root(NS ## builder_t *B)\ +{ return N ## _add(B, NS ## buffer_end(B, TN ## _end_pe(B))); }\ +static inline int N ## _create_as_root(NS ## builder_t *B __ ## TN ## _formal_args)\ +{ return N ## _add(B, flatcc_builder_create_buffer(B, FID, 0,\ + TN ## _create(B __ ## TN ## _call_args), A, flatcc_builder_is_nested)); }\ +static inline int N ## _create_as_typed_root(NS ## builder_t *B __ ## TN ## _formal_args)\ +{ return N ## _add(B, flatcc_builder_create_buffer(B, TFID, 0,\ + TN ## _create(B __ ## TN ## _call_args), A, flatcc_builder_is_nested)); }\ +static inline int N ## _nest(NS ## builder_t *B, void *data, size_t size, uint16_t align)\ +{ return N ## _add(B, flatcc_builder_create_vector(B, data, size, 1,\ + align < A ? A : align, FLATBUFFERS_COUNT_MAX(1))); }\ +static inline int N ## _typed_nest(NS ## builder_t *B, void *data, size_t size, uint16_t align)\ +{ return N ## _add(B, flatcc_builder_create_vector(B, data, size, 1,\ + align < A ? A : align, FLATBUFFERS_COUNT_MAX(1))); }\ +static inline int N ## _clone_as_root(NS ## builder_t *B, TN ## _struct_t p)\ +{ return N ## _add(B, TN ## _clone_as_root(B, p)); }\ +static inline int N ## _clone_as_typed_root(NS ## builder_t *B, TN ## _struct_t p)\ +{ return N ## _add(B, TN ## _clone_as_typed_root(B, p)); } + +#define __flatbuffers_build_vector_ops(NS, V, N, TN, T)\ +static inline T *V ## _extend(NS ## builder_t *B, size_t len)\ +{ return (T *)flatcc_builder_extend_vector(B, len); }\ +static inline T *V ## _append(NS ## builder_t *B, const T *data, size_t len)\ +{ return (T *)flatcc_builder_append_vector(B, data, len); }\ +static inline int V ## _truncate(NS ## builder_t *B, size_t len)\ +{ return flatcc_builder_truncate_vector(B, len); }\ +static inline T *V ## _edit(NS ## builder_t *B)\ +{ return (T *)flatcc_builder_vector_edit(B); }\ +static inline size_t V ## _reserved_len(NS ## builder_t *B)\ +{ return flatcc_builder_vector_count(B); }\ +static inline T *V ## _push(NS ## builder_t *B, const T *p)\ +{ T *_p; return (_p = (T *)flatcc_builder_extend_vector(B, 1)) ? (memcpy(_p, p, TN ## __size()), _p) : 0; }\ +static inline T *V ## _push_copy(NS ## builder_t *B, const T *p)\ +{ T *_p; return (_p = (T *)flatcc_builder_extend_vector(B, 1)) ? TN ## _copy(_p, p) : 0; }\ +static inline T *V ## _push_clone(NS ## builder_t *B, const T *p)\ +{ T *_p; return (_p = (T *)flatcc_builder_extend_vector(B, 1)) ? TN ## _copy(_p, p) : 0; }\ +static inline T *V ## _push_create(NS ## builder_t *B __ ## TN ## _formal_args)\ +{ T *_p; return (_p = (T *)flatcc_builder_extend_vector(B, 1)) ? TN ## _assign(_p __ ## TN ## _call_args) : 0; } + +#define __flatbuffers_build_vector(NS, N, T, S, A)\ +typedef NS ## ref_t N ## _vec_ref_t;\ +static inline int N ## _vec_start(NS ## builder_t *B)\ +{ return flatcc_builder_start_vector(B, S, A, FLATBUFFERS_COUNT_MAX(S)); }\ +static inline N ## _vec_ref_t N ## _vec_end_pe(NS ## builder_t *B)\ +{ return flatcc_builder_end_vector(B); }\ +static inline N ## _vec_ref_t N ## _vec_end(NS ## builder_t *B)\ +{ if (!NS ## is_native_pe()) { size_t i, n; T *p = (T *)flatcc_builder_vector_edit(B);\ + for (i = 0, n = flatcc_builder_vector_count(B); i < n; ++i)\ + { N ## _to_pe(N ## __ptr_add(p, i)); }} return flatcc_builder_end_vector(B); }\ +static inline N ## _vec_ref_t N ## _vec_create_pe(NS ## builder_t *B, const T *data, size_t len)\ +{ return flatcc_builder_create_vector(B, data, len, S, A, FLATBUFFERS_COUNT_MAX(S)); }\ +static inline N ## _vec_ref_t N ## _vec_create(NS ## builder_t *B, const T *data, size_t len)\ +{ if (!NS ## is_native_pe()) { size_t i; T *p; int ret = flatcc_builder_start_vector(B, S, A, FLATBUFFERS_COUNT_MAX(S)); if (ret) { return ret; }\ + p = (T *)flatcc_builder_extend_vector(B, len); if (!p) return 0;\ + for (i = 0; i < len; ++i) { N ## _copy_to_pe(N ## __ptr_add(p, i), N ## __const_ptr_add(data, i)); }\ + return flatcc_builder_end_vector(B); } else return flatcc_builder_create_vector(B, data, len, S, A, FLATBUFFERS_COUNT_MAX(S)); }\ +static inline N ## _vec_ref_t N ## _vec_clone(NS ## builder_t *B, N ##_vec_t vec)\ +{ __flatbuffers_memoize(B, vec, flatcc_builder_create_vector(B, vec, N ## _vec_len(vec), S, A, FLATBUFFERS_COUNT_MAX(S))); }\ +static inline N ## _vec_ref_t N ## _vec_slice(NS ## builder_t *B, N ##_vec_t vec, size_t index, size_t len)\ +{ size_t n = N ## _vec_len(vec); if (index >= n) index = n; n -= index; if (len > n) len = n;\ + return flatcc_builder_create_vector(B, N ## __const_ptr_add(vec, index), len, S, A, FLATBUFFERS_COUNT_MAX(S)); }\ +__flatbuffers_build_vector_ops(NS, N ## _vec, N, N, T) + +#define __flatbuffers_build_union_vector_ops(NS, V, N, TN)\ +static inline TN ## _union_ref_t *V ## _extend(NS ## builder_t *B, size_t len)\ +{ return flatcc_builder_extend_union_vector(B, len); }\ +static inline TN ## _union_ref_t *V ## _append(NS ## builder_t *B, const TN ## _union_ref_t *data, size_t len)\ +{ return flatcc_builder_append_union_vector(B, data, len); }\ +static inline int V ## _truncate(NS ## builder_t *B, size_t len)\ +{ return flatcc_builder_truncate_union_vector(B, len); }\ +static inline TN ## _union_ref_t *V ## _edit(NS ## builder_t *B)\ +{ return (TN ## _union_ref_t *) flatcc_builder_union_vector_edit(B); }\ +static inline size_t V ## _reserved_len(NS ## builder_t *B)\ +{ return flatcc_builder_union_vector_count(B); }\ +static inline TN ## _union_ref_t *V ## _push(NS ## builder_t *B, const TN ## _union_ref_t ref)\ +{ return flatcc_builder_union_vector_push(B, ref); }\ +static inline TN ## _union_ref_t *V ## _push_clone(NS ## builder_t *B, TN ## _union_t u)\ +{ return TN ## _vec_push(B, TN ## _clone(B, u)); } + +#define __flatbuffers_build_union_vector(NS, N)\ +static inline int N ## _vec_start(NS ## builder_t *B)\ +{ return flatcc_builder_start_union_vector(B); }\ +static inline N ## _union_vec_ref_t N ## _vec_end(NS ## builder_t *B)\ +{ return flatcc_builder_end_union_vector(B); }\ +static inline N ## _union_vec_ref_t N ## _vec_create(NS ## builder_t *B, const N ## _union_ref_t *data, size_t len)\ +{ return flatcc_builder_create_union_vector(B, data, len); }\ +__flatbuffers_build_union_vector_ops(NS, N ## _vec, N, N)\ +/* Preserves DAG structure separately for type and value vector, so a type vector could be shared for many value vectors. */\ +static inline N ## _union_vec_ref_t N ## _vec_clone(NS ## builder_t *B, N ##_union_vec_t vec)\ +{ N ## _union_vec_ref_t _uvref, _ret = { 0, 0 }; NS ## union_ref_t _uref; size_t _i, _len;\ + if (vec.type == 0) return _ret;\ + _uvref.type = flatcc_builder_refmap_find(B, vec.type); _uvref.value = flatcc_builder_refmap_find(B, vec.value);\ + _len = N ## _union_vec_len(vec); if (_uvref.type == 0) {\ + _uvref.type = flatcc_builder_refmap_insert(B, vec.type, (flatcc_builder_create_type_vector(B, vec.type, _len))); }\ + if (_uvref.type == 0) { return _ret; } if (_uvref.value == 0) {\ + if (flatcc_builder_start_offset_vector(B)) return _ret;\ + for (_i = 0; _i < _len; ++_i) { _uref = N ## _clone(B, N ## _union_vec_at(vec, _i));\ + if (!_uref.value || !(flatcc_builder_offset_vector_push(B, _uref.value))) return _ret; }\ + _uvref.value = flatcc_builder_refmap_insert(B, vec.value, flatcc_builder_end_offset_vector(B));\ + if (_uvref.value == 0) return _ret; } return _uvref; } + +#define __flatbuffers_build_string_vector_ops(NS, N)\ +static inline int N ## _push_start(NS ## builder_t *B)\ +{ return NS ## string_start(B); }\ +static inline NS ## string_ref_t *N ## _push_end(NS ## builder_t *B)\ +{ return NS ## string_vec_push(B, NS ## string_end(B)); }\ +static inline NS ## string_ref_t *N ## _push_create(NS ## builder_t *B, const char *s, size_t len)\ +{ return NS ## string_vec_push(B, NS ## string_create(B, s, len)); }\ +static inline NS ## string_ref_t *N ## _push_create_str(NS ## builder_t *B, const char *s)\ +{ return NS ## string_vec_push(B, NS ## string_create_str(B, s)); }\ +static inline NS ## string_ref_t *N ## _push_create_strn(NS ## builder_t *B, const char *s, size_t max_len)\ +{ return NS ## string_vec_push(B, NS ## string_create_strn(B, s, max_len)); }\ +static inline NS ## string_ref_t *N ## _push_clone(NS ## builder_t *B, NS ## string_t string)\ +{ return NS ## string_vec_push(B, NS ## string_clone(B, string)); }\ +static inline NS ## string_ref_t *N ## _push_slice(NS ## builder_t *B, NS ## string_t string, size_t index, size_t len)\ +{ return NS ## string_vec_push(B, NS ## string_slice(B, string, index, len)); } + +#define __flatbuffers_build_table_vector_ops(NS, N, TN)\ +static inline int N ## _push_start(NS ## builder_t *B)\ +{ return TN ## _start(B); }\ +static inline TN ## _ref_t *N ## _push_end(NS ## builder_t *B)\ +{ return N ## _push(B, TN ## _end(B)); }\ +static inline TN ## _ref_t *N ## _push_create(NS ## builder_t *B __ ## TN ##_formal_args)\ +{ return N ## _push(B, TN ## _create(B __ ## TN ## _call_args)); } + +#define __flatbuffers_build_offset_vector_ops(NS, V, N, TN)\ +static inline TN ## _ref_t *V ## _extend(NS ## builder_t *B, size_t len)\ +{ return flatcc_builder_extend_offset_vector(B, len); }\ +static inline TN ## _ref_t *V ## _append(NS ## builder_t *B, const TN ## _ref_t *data, size_t len)\ +{ return flatcc_builder_append_offset_vector(B, data, len); }\ +static inline int V ## _truncate(NS ## builder_t *B, size_t len)\ +{ return flatcc_builder_truncate_offset_vector(B, len); }\ +static inline TN ## _ref_t *V ## _edit(NS ## builder_t *B)\ +{ return (TN ## _ref_t *)flatcc_builder_offset_vector_edit(B); }\ +static inline size_t V ## _reserved_len(NS ## builder_t *B)\ +{ return flatcc_builder_offset_vector_count(B); }\ +static inline TN ## _ref_t *V ## _push(NS ## builder_t *B, const TN ## _ref_t ref)\ +{ return ref ? flatcc_builder_offset_vector_push(B, ref) : 0; } + +#define __flatbuffers_build_offset_vector(NS, N)\ +typedef NS ## ref_t N ## _vec_ref_t;\ +static inline int N ## _vec_start(NS ## builder_t *B)\ +{ return flatcc_builder_start_offset_vector(B); }\ +static inline N ## _vec_ref_t N ## _vec_end(NS ## builder_t *B)\ +{ return flatcc_builder_end_offset_vector(B); }\ +static inline N ## _vec_ref_t N ## _vec_create(NS ## builder_t *B, const N ## _ref_t *data, size_t len)\ +{ return flatcc_builder_create_offset_vector(B, data, len); }\ +__flatbuffers_build_offset_vector_ops(NS, N ## _vec, N, N)\ +static inline N ## _vec_ref_t N ## _vec_clone(NS ## builder_t *B, N ##_vec_t vec)\ +{ int _ret; N ## _ref_t _e; size_t _i, _len; __flatbuffers_memoize_begin(B, vec);\ + _len = N ## _vec_len(vec); if (flatcc_builder_start_offset_vector(B)) return 0;\ + for (_i = 0; _i < _len; ++_i) { if (!(_e = N ## _clone(B, N ## _vec_at(vec, _i)))) return 0;\ + if (!flatcc_builder_offset_vector_push(B, _e)) return 0; }\ + __flatbuffers_memoize_end(B, vec, flatcc_builder_end_offset_vector(B)); }\ + +#define __flatbuffers_build_string_ops(NS, N)\ +static inline char *N ## _append(NS ## builder_t *B, const char *s, size_t len)\ +{ return flatcc_builder_append_string(B, s, len); }\ +static inline char *N ## _append_str(NS ## builder_t *B, const char *s)\ +{ return flatcc_builder_append_string_str(B, s); }\ +static inline char *N ## _append_strn(NS ## builder_t *B, const char *s, size_t len)\ +{ return flatcc_builder_append_string_strn(B, s, len); }\ +static inline size_t N ## _reserved_len(NS ## builder_t *B)\ +{ return flatcc_builder_string_len(B); }\ +static inline char *N ## _extend(NS ## builder_t *B, size_t len)\ +{ return flatcc_builder_extend_string(B, len); }\ +static inline char *N ## _edit(NS ## builder_t *B)\ +{ return flatcc_builder_string_edit(B); }\ +static inline int N ## _truncate(NS ## builder_t *B, size_t len)\ +{ return flatcc_builder_truncate_string(B, len); } + +#define __flatbuffers_build_string(NS)\ +typedef NS ## ref_t NS ## string_ref_t;\ +static inline int NS ## string_start(NS ## builder_t *B)\ +{ return flatcc_builder_start_string(B); }\ +static inline NS ## string_ref_t NS ## string_end(NS ## builder_t *B)\ +{ return flatcc_builder_end_string(B); }\ +static inline NS ## ref_t NS ## string_create(NS ## builder_t *B, const char *s, size_t len)\ +{ return flatcc_builder_create_string(B, s, len); }\ +static inline NS ## ref_t NS ## string_create_str(NS ## builder_t *B, const char *s)\ +{ return flatcc_builder_create_string_str(B, s); }\ +static inline NS ## ref_t NS ## string_create_strn(NS ## builder_t *B, const char *s, size_t len)\ +{ return flatcc_builder_create_string_strn(B, s, len); }\ +static inline NS ## string_ref_t NS ## string_clone(NS ## builder_t *B, NS ## string_t string)\ +{ __flatbuffers_memoize(B, string, flatcc_builder_create_string(B, string, NS ## string_len(string))); }\ +static inline NS ## string_ref_t NS ## string_slice(NS ## builder_t *B, NS ## string_t string, size_t index, size_t len)\ +{ size_t n = NS ## string_len(string); if (index >= n) index = n; n -= index; if (len > n) len = n;\ + return flatcc_builder_create_string(B, string + index, len); }\ +__flatbuffers_build_string_ops(NS, NS ## string)\ +__flatbuffers_build_offset_vector(NS, NS ## string) + +#define __flatbuffers_copy_from_pe(P, P2, N) (*(P) = N ## _read_from_pe(P2), (P)) +#define __flatbuffers_from_pe(P, N) (*(P) = N ## _read_from_pe(P), (P)) +#define __flatbuffers_copy_to_pe(P, P2, N) (N ## _write_to_pe((P), *(P2)), (P)) +#define __flatbuffers_to_pe(P, N) (N ## _write_to_pe((P), *(P)), (P)) +#define __flatbuffers_define_fixed_array_primitives(NS, N, T)\ +static inline T *N ## _array_copy(T *p, const T *p2, size_t n)\ +{ memcpy(p, p2, n * sizeof(T)); return p; }\ +static inline T *N ## _array_copy_from_pe(T *p, const T *p2, size_t n)\ +{ size_t i; if (NS ## is_native_pe()) memcpy(p, p2, n * sizeof(T)); else {\ + for (i = 0; i < n; ++i) N ## _copy_from_pe(&p[i], &p2[i]); } return p; }\ +static inline T *N ## _array_copy_to_pe(T *p, const T *p2, size_t n)\ +{ size_t i; if (NS ## is_native_pe()) memcpy(p, p2, n * sizeof(T)); else {\ + for (i = 0; i < n; ++i) N ## _copy_to_pe(&p[i], &p2[i]); } return p; } +#define __flatbuffers_define_scalar_primitives(NS, N, T)\ +static inline T *N ## _from_pe(T *p) { return __ ## NS ## from_pe(p, N); }\ +static inline T *N ## _to_pe(T *p) { return __ ## NS ## to_pe(p, N); }\ +static inline T *N ## _copy(T *p, const T *p2) { *p = *p2; return p; }\ +static inline T *N ## _copy_from_pe(T *p, const T *p2)\ +{ return __ ## NS ## copy_from_pe(p, p2, N); }\ +static inline T *N ## _copy_to_pe(T *p, const T *p2) \ +{ return __ ## NS ## copy_to_pe(p, p2, N); }\ +static inline T *N ## _assign(T *p, const T v0) { *p = v0; return p; }\ +static inline T *N ## _assign_from_pe(T *p, T v0)\ +{ *p = N ## _read_from_pe(&v0); return p; }\ +static inline T *N ## _assign_to_pe(T *p, T v0)\ +{ N ## _write_to_pe(p, v0); return p; } +#define __flatbuffers_build_scalar(NS, N, T)\ +__ ## NS ## define_scalar_primitives(NS, N, T)\ +__ ## NS ## define_fixed_array_primitives(NS, N, T)\ +__ ## NS ## build_vector(NS, N, T, sizeof(T), sizeof(T)) +/* Depends on generated copy_to/from_pe functions, and the type. */ +#define __flatbuffers_define_struct_primitives(NS, N)\ +static inline N ## _t *N ##_to_pe(N ## _t *p)\ +{ if (!NS ## is_native_pe()) { N ## _copy_to_pe(p, p); }; return p; }\ +static inline N ## _t *N ##_from_pe(N ## _t *p)\ +{ if (!NS ## is_native_pe()) { N ## _copy_from_pe(p, p); }; return p; }\ +static inline N ## _t *N ## _clear(N ## _t *p) { return (N ## _t *)memset(p, 0, N ## __size()); } + +/* Depends on generated copy/assign_to/from_pe functions, and the type. */ +#define __flatbuffers_build_struct(NS, N, S, A, FID, TFID)\ +__ ## NS ## define_struct_primitives(NS, N)\ +typedef NS ## ref_t N ## _ref_t;\ +static inline N ## _t *N ## _start(NS ## builder_t *B)\ +{ return (N ## _t *)flatcc_builder_start_struct(B, S, A); }\ +static inline N ## _ref_t N ## _end(NS ## builder_t *B)\ +{ if (!NS ## is_native_pe()) { N ## _to_pe((N ## _t *)flatcc_builder_struct_edit(B)); }\ + return flatcc_builder_end_struct(B); }\ +static inline N ## _ref_t N ## _end_pe(NS ## builder_t *B)\ +{ return flatcc_builder_end_struct(B); }\ +static inline N ## _ref_t N ## _create(NS ## builder_t *B __ ## N ## _formal_args)\ +{ N ## _t *_p = N ## _start(B); if (!_p) return 0; N ##_assign_to_pe(_p __ ## N ## _call_args);\ + return N ## _end_pe(B); }\ +static inline N ## _ref_t N ## _clone(NS ## builder_t *B, N ## _struct_t p)\ +{ N ## _t *_p; __flatbuffers_memoize_begin(B, p); _p = N ## _start(B); if (!_p) return 0;\ + N ## _copy(_p, p); __flatbuffers_memoize_end(B, p, N ##_end_pe(B)); }\ +__flatbuffers_build_vector(NS, N, N ## _t, S, A)\ +__flatbuffers_build_struct_root(NS, N, A, FID, TFID)\ + +#define __flatbuffers_struct_clear_field(p) memset((p), 0, sizeof(*(p))) +#define __flatbuffers_build_table(NS, N, K)\ +static inline int N ## _start(NS ## builder_t *B)\ +{ return flatcc_builder_start_table(B, K); }\ +static inline N ## _ref_t N ## _end(NS ## builder_t *B)\ +{ FLATCC_ASSERT(flatcc_builder_check_required(B, __ ## N ## _required,\ + sizeof(__ ## N ## _required) / sizeof(__ ## N ## _required[0]) - 1));\ + return flatcc_builder_end_table(B); }\ +__flatbuffers_build_offset_vector(NS, N) + +#define __flatbuffers_build_table_field(ID, NS, N, TN, TT)\ +static inline int N ## _add(NS ## builder_t *B, TN ## _ref_t ref)\ +{ TN ## _ref_t *_p; return (ref && (_p = flatcc_builder_table_add_offset(B, ID))) ?\ + ((*_p = ref), 0) : -1; }\ +static inline int N ## _start(NS ## builder_t *B)\ +{ return TN ## _start(B); }\ +static inline int N ## _end(NS ## builder_t *B)\ +{ return N ## _add(B, TN ## _end(B)); }\ +static inline TN ## _ref_t N ## _create(NS ## builder_t *B __ ## TN ##_formal_args)\ +{ return N ## _add(B, TN ## _create(B __ ## TN ## _call_args)); }\ +static inline int N ## _clone(NS ## builder_t *B, TN ## _table_t p)\ +{ return N ## _add(B, TN ## _clone(B, p)); }\ +static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\ +{ TN ## _table_t _p = N ## _get(t); return _p ? N ## _clone(B, _p) : 0; } + +#define __flatbuffers_build_union_field(ID, NS, N, TN, TT)\ +static inline int N ## _add(NS ## builder_t *B, TN ## _union_ref_t uref)\ +{ NS ## ref_t *_p; TN ## _union_type_t *_pt; if (uref.type == TN ## _NONE) return 0; if (uref.value == 0) return -1;\ + if (!(_pt = (TN ## _union_type_t *)flatcc_builder_table_add(B, ID - 1, sizeof(*_pt), sizeof(*_pt)))) return -1;\ + *_pt = uref.type; if (!(_p = flatcc_builder_table_add_offset(B, ID))) return -1; *_p = uref.value; return 0; }\ +static inline int N ## _add_type(NS ## builder_t *B, TN ## _union_type_t type)\ +{ TN ## _union_type_t *_pt; if (type == TN ## _NONE) return 0; return (_pt = (TN ## _union_type_t *)flatcc_builder_table_add(B, ID - 1,\ + sizeof(*_pt), sizeof(*_pt))) ? ((*_pt = type), 0) : -1; }\ +static inline int N ## _add_value(NS ## builder_t *B, TN ## _union_ref_t uref)\ +{ NS ## ref_t *p; if (uref.type == TN ## _NONE) return 0; return (p = flatcc_builder_table_add_offset(B, ID)) ?\ + ((*p = uref.value), 0) : -1; }\ +static inline int N ## _clone(NS ## builder_t *B, TN ## _union_t p)\ +{ return N ## _add(B, TN ## _clone(B, p)); }\ +static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\ +{ TN ## _union_t _p = N ## _union(t); return _p.type ? N ## _clone(B, _p) : 0; } + +/* M is the union value name and T is its type, i.e. the qualified name. */ +#define __flatbuffers_build_union_table_value_field(NS, N, NU, M, T)\ +static inline int N ## _ ## M ## _add(NS ## builder_t *B, T ## _ref_t ref)\ +{ return N ## _add(B, NU ## _as_ ## M (ref)); }\ +static inline int N ## _ ## M ## _start(NS ## builder_t *B)\ +{ return T ## _start(B); }\ +static inline int N ## _ ## M ## _end(NS ## builder_t *B)\ +{ T ## _ref_t ref = T ## _end(B);\ + return ref ? N ## _ ## M ## _add(B, ref) : -1; }\ +static inline int N ## _ ## M ## _create(NS ## builder_t *B __ ## T ##_formal_args)\ +{ T ## _ref_t ref = T ## _create(B __ ## T ## _call_args);\ + return ref ? N ## _add(B, NU ## _as_ ## M(ref)) : -1; }\ +static inline int N ## _ ## M ## _clone(NS ## builder_t *B, T ## _table_t t)\ +{ T ## _ref_t ref = T ## _clone(B, t);\ + return ref ? N ## _add(B, NU ## _as_ ## M(ref)) : -1; } + +/* M is the union value name and T is its type, i.e. the qualified name. */ +#define __flatbuffers_build_union_struct_value_field(NS, N, NU, M, T)\ +static inline int N ## _ ## M ## _add(NS ## builder_t *B, T ## _ref_t ref)\ +{ return N ## _add(B, NU ## _as_ ## M (ref)); }\ +static inline T ## _t *N ## _ ## M ## _start(NS ## builder_t *B)\ +{ return T ## _start(B); }\ +static inline int N ## _ ## M ## _end(NS ## builder_t *B)\ +{ T ## _ref_t ref = T ## _end(B);\ + return ref ? N ## _ ## M ## _add(B, ref) : -1; }\ +static inline int N ## _ ## M ## _create(NS ## builder_t *B __ ## T ##_formal_args)\ +{ T ## _ref_t ref = T ## _create(B __ ## T ## _call_args);\ + return ref ? N ## _add(B, NU ## _as_ ## M(ref)) : -1; }\ +static inline int N ## _ ## M ## _end_pe(NS ## builder_t *B)\ +{ T ## _ref_t ref = T ## _end_pe(B);\ + return ref ? N ## _add(B, NU ## _as_ ## M(ref)) : -1; }\ +static inline int N ## _ ## M ## _clone(NS ## builder_t *B, T ## _struct_t p)\ +{ T ## _ref_t ref = T ## _clone(B, p);\ + return ref ? N ## _add(B, NU ## _as_ ## M(ref)) : -1; } +#define __flatbuffers_build_union_string_value_field(NS, N, NU, M)\ +static inline int N ## _ ## M ## _add(NS ## builder_t *B, NS ## string_ref_t ref)\ +{ return N ## _add(B, NU ## _as_ ## M (ref)); }\ +__flatbuffers_build_string_field_ops(NS, N ## _ ## M) + +/* NS: common namespace, ID: table field id (not offset), TN: name of type T, TT: name of table type + * S: sizeof of scalar type, A: alignment of type T, default value V of type T. */ +#define __flatbuffers_build_scalar_field(ID, NS, N, TN, T, S, A, V, TT)\ +static inline int N ## _add(NS ## builder_t *B, const T v)\ +{ T *_p; if (v == V) return 0; if (!(_p = (T *)flatcc_builder_table_add(B, ID, S, A))) return -1;\ + TN ## _assign_to_pe(_p, v); return 0; }\ +static inline int N ## _force_add(NS ## builder_t *B, const T v)\ +{ T *_p; if (!(_p = (T *)flatcc_builder_table_add(B, ID, S, A))) return -1;\ + TN ## _assign_to_pe(_p, v); return 0; }\ +/* Clone does not skip default values and expects pe endian content. */\ +static inline int N ## _clone(NS ## builder_t *B, const T *p)\ +{ return 0 == flatcc_builder_table_add_copy(B, ID, p, S, A) ? -1 : 0; }\ +/* Transferring a missing field is a nop success with 0 as result. */\ +static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\ +{ const T *_p = N ## _get_ptr(t); return _p ? N ## _clone(B, _p) : 0; } + +/* NS: common namespace, ID: table field id (not offset), TN: name of type T, TT: name of table type + * S: sizeof of scalar type, A: alignment of type T. */ +#define __flatbuffers_build_scalar_optional_field(ID, NS, N, TN, T, S, A, TT)\ +static inline int N ## _add(NS ## builder_t *B, const T v)\ +{ T *_p; if (!(_p = (T *)flatcc_builder_table_add(B, ID, S, A))) return -1;\ + TN ## _assign_to_pe(_p, v); return 0; }\ +/* Clone does not skip default values and expects pe endian content. */\ +static inline int N ## _clone(NS ## builder_t *B, const T *p)\ +{ return 0 == flatcc_builder_table_add_copy(B, ID, p, S, A) ? -1 : 0; }\ +/* Transferring a missing field is a nop success with 0 as result. */\ +static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\ +{ const T *_p = N ## _get_ptr(t); return _p ? N ## _clone(B, _p) : 0; } + +#define __flatbuffers_build_struct_field(ID, NS, N, TN, S, A, TT)\ +static inline TN ## _t *N ## _start(NS ## builder_t *B)\ +{ return (TN ## _t *)flatcc_builder_table_add(B, ID, S, A); }\ +static inline int N ## _end(NS ## builder_t *B)\ +{ if (!NS ## is_native_pe()) { TN ## _to_pe((TN ## _t *)flatcc_builder_table_edit(B, S)); } return 0; }\ +static inline int N ## _end_pe(NS ## builder_t *B) { return 0; }\ +static inline int N ## _create(NS ## builder_t *B __ ## TN ## _formal_args)\ +{ TN ## _t *_p = N ## _start(B); if (!_p) return -1; TN ##_assign_to_pe(_p __ ## TN ## _call_args);\ + return 0; }\ +static inline int N ## _add(NS ## builder_t *B, const TN ## _t *p)\ +{ TN ## _t *_p = N ## _start(B); if (!_p) return -1; TN ##_copy_to_pe(_p, p); return 0; }\ +static inline int N ## _clone(NS ## builder_t *B, TN ## _struct_t p)\ +{ return 0 == flatcc_builder_table_add_copy(B, ID, p, S, A) ? -1 : 0; }\ +static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\ +{ TN ## _struct_t _p = N ## _get(t); return _p ? N ## _clone(B, _p) : 0; } + +#define __flatbuffers_build_vector_field(ID, NS, N, TN, T, TT)\ +static inline int N ## _add(NS ## builder_t *B, TN ## _vec_ref_t ref)\ +{ TN ## _vec_ref_t *_p; return (ref && (_p = flatcc_builder_table_add_offset(B, ID))) ? ((*_p = ref), 0) : -1; }\ +static inline int N ## _start(NS ## builder_t *B)\ +{ return TN ## _vec_start(B); }\ +static inline int N ## _end_pe(NS ## builder_t *B)\ +{ return N ## _add(B, TN ## _vec_end_pe(B)); }\ +static inline int N ## _end(NS ## builder_t *B)\ +{ return N ## _add(B, TN ## _vec_end(B)); }\ +static inline int N ## _create_pe(NS ## builder_t *B, const T *data, size_t len)\ +{ return N ## _add(B, TN ## _vec_create_pe(B, data, len)); }\ +static inline int N ## _create(NS ## builder_t *B, const T *data, size_t len)\ +{ return N ## _add(B, TN ## _vec_create(B, data, len)); }\ +static inline int N ## _slice(NS ## builder_t *B, TN ## _vec_t vec, size_t index, size_t len)\ +{ return N ## _add(B, TN ## _vec_slice(B, vec, index, len)); }\ +static inline int N ## _clone(NS ## builder_t *B, TN ## _vec_t vec)\ +{ return N ## _add(B, TN ## _vec_clone(B, vec)); }\ +static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\ +{ TN ## _vec_t _p = N ## _get(t); return _p ? N ## _clone(B, _p) : 0; }\ +__flatbuffers_build_vector_ops(NS, N, N, TN, T)\ + +#define __flatbuffers_build_offset_vector_field(ID, NS, N, TN, TT)\ +static inline int N ## _add(NS ## builder_t *B, TN ## _vec_ref_t ref)\ +{ TN ## _vec_ref_t *_p; return (ref && (_p = flatcc_builder_table_add_offset(B, ID))) ? ((*_p = ref), 0) : -1; }\ +static inline int N ## _start(NS ## builder_t *B)\ +{ return flatcc_builder_start_offset_vector(B); }\ +static inline int N ## _end(NS ## builder_t *B)\ +{ return N ## _add(B, flatcc_builder_end_offset_vector(B)); }\ +static inline int N ## _create(NS ## builder_t *B, const TN ## _ref_t *data, size_t len)\ +{ return N ## _add(B, flatcc_builder_create_offset_vector(B, data, len)); }\ +__flatbuffers_build_offset_vector_ops(NS, N, N, TN)\ +static inline int N ## _clone(NS ## builder_t *B, TN ## _vec_t vec)\ +{ return N ## _add(B, TN ## _vec_clone(B, vec)); }\ +static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\ +{ TN ## _vec_t _p = N ## _get(t); return _p ? N ## _clone(B, _p) : 0; } + +/* depends on N ## _add which differs for union member fields and ordinary fields */\ +#define __flatbuffers_build_string_field_ops(NS, N)\ +static inline int N ## _start(NS ## builder_t *B)\ +{ return flatcc_builder_start_string(B); }\ +static inline int N ## _end(NS ## builder_t *B)\ +{ return N ## _add(B, flatcc_builder_end_string(B)); }\ +static inline int N ## _create(NS ## builder_t *B, const char *s, size_t len)\ +{ return N ## _add(B, flatcc_builder_create_string(B, s, len)); }\ +static inline int N ## _create_str(NS ## builder_t *B, const char *s)\ +{ return N ## _add(B, flatcc_builder_create_string_str(B, s)); }\ +static inline int N ## _create_strn(NS ## builder_t *B, const char *s, size_t max_len)\ +{ return N ## _add(B, flatcc_builder_create_string_strn(B, s, max_len)); }\ +static inline int N ## _clone(NS ## builder_t *B, NS ## string_t string)\ +{ return N ## _add(B, NS ## string_clone(B, string)); }\ +static inline int N ## _slice(NS ## builder_t *B, NS ## string_t string, size_t index, size_t len)\ +{ return N ## _add(B, NS ## string_slice(B, string, index, len)); }\ +__flatbuffers_build_string_ops(NS, N) + +#define __flatbuffers_build_string_field(ID, NS, N, TT)\ +static inline int N ## _add(NS ## builder_t *B, NS ## string_ref_t ref)\ +{ NS ## string_ref_t *_p; return (ref && (_p = flatcc_builder_table_add_offset(B, ID))) ? ((*_p = ref), 0) : -1; }\ +__flatbuffers_build_string_field_ops(NS, N)\ +static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\ +{ NS ## string_t _p = N ## _get(t); return _p ? N ## _clone(B, _p) : 0; } + +#define __flatbuffers_build_table_vector_field(ID, NS, N, TN, TT)\ +__flatbuffers_build_offset_vector_field(ID, NS, N, TN, TT)\ +__flatbuffers_build_table_vector_ops(NS, N, TN) + +#define __flatbuffers_build_union_vector_field(ID, NS, N, TN, TT)\ +static inline int N ## _add(NS ## builder_t *B, TN ## _union_vec_ref_t uvref)\ +{ NS ## vec_ref_t *_p; if (!uvref.type || !uvref.value) return uvref.type == uvref.value ? 0 : -1;\ + if (!(_p = flatcc_builder_table_add_offset(B, ID - 1))) return -1; *_p = uvref.type;\ + if (!(_p = flatcc_builder_table_add_offset(B, ID))) return -1; *_p = uvref.value; return 0; }\ +static inline int N ## _start(NS ## builder_t *B)\ +{ return flatcc_builder_start_union_vector(B); }\ +static inline int N ## _end(NS ## builder_t *B)\ +{ return N ## _add(B, flatcc_builder_end_union_vector(B)); }\ +static inline int N ## _create(NS ## builder_t *B, const TN ## _union_ref_t *data, size_t len)\ +{ return N ## _add(B, flatcc_builder_create_union_vector(B, data, len)); }\ +__flatbuffers_build_union_vector_ops(NS, N, N, TN)\ +static inline int N ## _clone(NS ## builder_t *B, TN ## _union_vec_t vec)\ +{ return N ## _add(B, TN ## _vec_clone(B, vec)); }\ +static inline int N ## _pick(NS ## builder_t *B, TT ## _table_t t)\ +{ TN ## _union_vec_t _p = N ## _union(t); return _p.type ? N ## _clone(B, _p) : 0; } + +#define __flatbuffers_build_union_table_vector_value_field(NS, N, NU, M, T)\ +static inline int N ## _ ## M ## _push_start(NS ## builder_t *B)\ +{ return T ## _start(B); }\ +static inline NU ## _union_ref_t *N ## _ ## M ## _push_end(NS ## builder_t *B)\ +{ return NU ## _vec_push(B, NU ## _as_ ## M (T ## _end(B))); }\ +static inline NU ## _union_ref_t *N ## _ ## M ## _push(NS ## builder_t *B, T ## _ref_t ref)\ +{ return NU ## _vec_push(B, NU ## _as_ ## M (ref)); }\ +static inline NU ## _union_ref_t *N ## _ ## M ## _push_create(NS ## builder_t *B __ ## T ##_formal_args)\ +{ return NU ## _vec_push(B, NU ## _as_ ## M(T ## _create(B __ ## T ## _call_args))); }\ +static inline NU ## _union_ref_t *N ## _ ## M ## _push_clone(NS ## builder_t *B, T ## _table_t t)\ +{ return NU ## _vec_push(B, NU ## _as_ ## M(T ## _clone(B, t))); } + +#define __flatbuffers_build_union_struct_vector_value_field(NS, N, NU, M, T)\ +static inline T ## _t *N ## _ ## M ## _push_start(NS ## builder_t *B)\ +{ return T ## _start(B); }\ +static inline NU ## _union_ref_t *N ## _ ## M ## _push_end(NS ## builder_t *B)\ +{ return NU ## _vec_push(B, NU ## _as_ ## M (T ## _end(B))); }\ +static inline NU ## _union_ref_t *N ## _ ## M ## _push(NS ## builder_t *B, T ## _ref_t ref)\ +{ return NU ## _vec_push(B, NU ## _as_ ## M (ref)); }\ +static inline NU ## _union_ref_t *N ## _ ## M ## _push_create(NS ## builder_t *B __ ## T ##_formal_args)\ +{ return NU ## _vec_push(B, NU ## _as_ ## M(T ## _create(B __ ## T ## _call_args))); }\ +static inline NU ## _union_ref_t *N ## _ ## M ## _push_clone(NS ## builder_t *B, T ## _struct_t p)\ +{ return NU ## _vec_push(B, NU ## _as_ ## M(T ## _clone(B, p))); } + +#define __flatbuffers_build_union_string_vector_value_field(NS, N, NU, M)\ +static inline NU ## _union_ref_t *N ## _ ## M ## _push(NS ## builder_t *B, NS ## string_ref_t ref)\ +{ return NU ## _vec_push(B, NU ## _as_ ## M (ref)); }\ +static inline int N ## _ ## M ## _push_start(NS ## builder_t *B)\ +{ return NS ## string_start(B); }\ +static inline NU ## _union_ref_t *N ## _ ## M ## _push_end(NS ## builder_t *B)\ +{ return NU ## _vec_push(B, NU ## _as_ ## M(NS ## string_end(B))); }\ +static inline NU ## _union_ref_t *N ## _ ## M ## _push_create(NS ## builder_t *B, const char *s, size_t len)\ +{ return NU ## _vec_push(B, NU ## _as_ ## M(NS ## string_create(B, s, len))); }\ +static inline NU ## _union_ref_t *N ## _ ## M ## _push_create_str(NS ## builder_t *B, const char *s)\ +{ return NU ## _vec_push(B, NU ## _as_ ## M(NS ## string_create_str(B, s))); }\ +static inline NU ## _union_ref_t *N ## _ ## M ## _push_create_strn(NS ## builder_t *B, const char *s, size_t max_len)\ +{ return NU ## _vec_push(B, NU ## _as_ ## M(NS ## string_create_strn(B, s, max_len))); }\ +static inline NU ## _union_ref_t *N ## _ ## M ## _push_clone(NS ## builder_t *B, NS ## string_t string)\ +{ return NU ## _vec_push(B, NU ## _as_ ## M(NS ## string_clone(B, string))); }\ +static inline NU ## _union_ref_t *N ## _ ## M ## _push_slice(NS ## builder_t *B, NS ## string_t string, size_t index, size_t len)\ +{ return NU ## _vec_push(B, NU ## _as_ ## M(NS ## string_slice(B, string, index, len))); } + +#define __flatbuffers_build_string_vector_field(ID, NS, N, TT)\ +__flatbuffers_build_offset_vector_field(ID, NS, N, NS ## string, TT)\ +__flatbuffers_build_string_vector_ops(NS, N) + +#define __flatbuffers_char_formal_args , char v0 +#define __flatbuffers_char_call_args , v0 +#define __flatbuffers_uint8_formal_args , uint8_t v0 +#define __flatbuffers_uint8_call_args , v0 +#define __flatbuffers_int8_formal_args , int8_t v0 +#define __flatbuffers_int8_call_args , v0 +#define __flatbuffers_bool_formal_args , flatbuffers_bool_t v0 +#define __flatbuffers_bool_call_args , v0 +#define __flatbuffers_uint16_formal_args , uint16_t v0 +#define __flatbuffers_uint16_call_args , v0 +#define __flatbuffers_uint32_formal_args , uint32_t v0 +#define __flatbuffers_uint32_call_args , v0 +#define __flatbuffers_uint64_formal_args , uint64_t v0 +#define __flatbuffers_uint64_call_args , v0 +#define __flatbuffers_int16_formal_args , int16_t v0 +#define __flatbuffers_int16_call_args , v0 +#define __flatbuffers_int32_formal_args , int32_t v0 +#define __flatbuffers_int32_call_args , v0 +#define __flatbuffers_int64_formal_args , int64_t v0 +#define __flatbuffers_int64_call_args , v0 +#define __flatbuffers_float_formal_args , float v0 +#define __flatbuffers_float_call_args , v0 +#define __flatbuffers_double_formal_args , double v0 +#define __flatbuffers_double_call_args , v0 + +__flatbuffers_build_scalar(flatbuffers_, flatbuffers_char, char) +__flatbuffers_build_scalar(flatbuffers_, flatbuffers_uint8, uint8_t) +__flatbuffers_build_scalar(flatbuffers_, flatbuffers_int8, int8_t) +__flatbuffers_build_scalar(flatbuffers_, flatbuffers_bool, flatbuffers_bool_t) +__flatbuffers_build_scalar(flatbuffers_, flatbuffers_uint16, uint16_t) +__flatbuffers_build_scalar(flatbuffers_, flatbuffers_uint32, uint32_t) +__flatbuffers_build_scalar(flatbuffers_, flatbuffers_uint64, uint64_t) +__flatbuffers_build_scalar(flatbuffers_, flatbuffers_int16, int16_t) +__flatbuffers_build_scalar(flatbuffers_, flatbuffers_int32, int32_t) +__flatbuffers_build_scalar(flatbuffers_, flatbuffers_int64, int64_t) +__flatbuffers_build_scalar(flatbuffers_, flatbuffers_float, float) +__flatbuffers_build_scalar(flatbuffers_, flatbuffers_double, double) + +__flatbuffers_build_string(flatbuffers_) + +__flatbuffers_build_buffer(flatbuffers_) +#include "flatcc/flatcc_epilogue.h" +#endif /* FLATBUFFERS_COMMON_BUILDER_H */ + +#pragma GCC diagnostic pop diff --git a/src/flamenco/runtime/tests/flatbuffers/generated/flatbuffers_common_reader.h b/src/flamenco/runtime/tests/flatbuffers/generated/flatbuffers_common_reader.h new file mode 100644 index 00000000000..899b44978e2 --- /dev/null +++ b/src/flamenco/runtime/tests/flatbuffers/generated/flatbuffers_common_reader.h @@ -0,0 +1,583 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmisleading-indentation" + +#ifndef FLATBUFFERS_COMMON_READER_H +#define FLATBUFFERS_COMMON_READER_H + +/* Generated by flatcc 0.6.2 FlatBuffers schema compiler for C by dvide.com */ + +/* Common FlatBuffers read functionality for C. */ + +#include "flatcc/flatcc_prologue.h" +#include "flatcc/flatcc_flatbuffers.h" + + +#define __flatbuffers_read_scalar_at_byteoffset(N, p, o) N ## _read_from_pe((uint8_t *)(p) + (o)) +#define __flatbuffers_read_scalar(N, p) N ## _read_from_pe(p) +#define __flatbuffers_read_vt(ID, offset, t)\ +flatbuffers_voffset_t offset = 0;\ +{ flatbuffers_voffset_t id__tmp, *vt__tmp;\ + FLATCC_ASSERT(t != 0 && "null pointer table access");\ + id__tmp = ID;\ + vt__tmp = (flatbuffers_voffset_t *)((uint8_t *)(t) -\ + __flatbuffers_soffset_read_from_pe(t));\ + if (__flatbuffers_voffset_read_from_pe(vt__tmp) >= sizeof(vt__tmp[0]) * (id__tmp + 3u)) {\ + offset = __flatbuffers_voffset_read_from_pe(vt__tmp + id__tmp + 2);\ + }\ +} +#define __flatbuffers_field_present(ID, t) { __flatbuffers_read_vt(ID, offset__tmp, t) return offset__tmp != 0; } +#define __flatbuffers_scalar_field(T, ID, t)\ +{\ + __flatbuffers_read_vt(ID, offset__tmp, t)\ + if (offset__tmp) {\ + return (const T *)((uint8_t *)(t) + offset__tmp);\ + }\ + return 0;\ +} +#define __flatbuffers_define_scalar_field(ID, N, NK, TK, T, V)\ +static inline T N ## _ ## NK ## _get(N ## _table_t t__tmp)\ +{ __flatbuffers_read_vt(ID, offset__tmp, t__tmp)\ + return offset__tmp ? __flatbuffers_read_scalar_at_byteoffset(TK, t__tmp, offset__tmp) : V;\ +}\ +static inline T N ## _ ## NK(N ## _table_t t__tmp)\ +{ __flatbuffers_read_vt(ID, offset__tmp, t__tmp)\ + return offset__tmp ? __flatbuffers_read_scalar_at_byteoffset(TK, t__tmp, offset__tmp) : V;\ +}\ +static inline const T *N ## _ ## NK ## _get_ptr(N ## _table_t t__tmp)\ +__flatbuffers_scalar_field(T, ID, t__tmp)\ +static inline int N ## _ ## NK ## _is_present(N ## _table_t t__tmp)\ +__flatbuffers_field_present(ID, t__tmp)\ +__flatbuffers_define_scan_by_scalar_field(N, NK, T) +#define __flatbuffers_define_scalar_optional_field(ID, N, NK, TK, T, V)\ +__flatbuffers_define_scalar_field(ID, N, NK, TK, T, V)\ +static inline TK ## _option_t N ## _ ## NK ## _option(N ## _table_t t__tmp)\ +{ TK ## _option_t ret; __flatbuffers_read_vt(ID, offset__tmp, t__tmp)\ + ret.is_null = offset__tmp == 0; ret.value = offset__tmp ?\ + __flatbuffers_read_scalar_at_byteoffset(TK, t__tmp, offset__tmp) : V;\ + return ret; } +#define __flatbuffers_struct_field(T, ID, t, r)\ +{\ + __flatbuffers_read_vt(ID, offset__tmp, t)\ + if (offset__tmp) {\ + return (T)((uint8_t *)(t) + offset__tmp);\ + }\ + FLATCC_ASSERT(!(r) && "required field missing");\ + return 0;\ +} +#define __flatbuffers_offset_field(T, ID, t, r, adjust)\ +{\ + flatbuffers_uoffset_t *elem__tmp;\ + __flatbuffers_read_vt(ID, offset__tmp, t)\ + if (offset__tmp) {\ + elem__tmp = (flatbuffers_uoffset_t *)((uint8_t *)(t) + offset__tmp);\ + /* Add sizeof so C api can have raw access past header field. */\ + return (T)((uint8_t *)(elem__tmp) + adjust +\ + __flatbuffers_uoffset_read_from_pe(elem__tmp));\ + }\ + FLATCC_ASSERT(!(r) && "required field missing");\ + return 0;\ +} +#define __flatbuffers_vector_field(T, ID, t, r) __flatbuffers_offset_field(T, ID, t, r, sizeof(flatbuffers_uoffset_t)) +#define __flatbuffers_table_field(T, ID, t, r) __flatbuffers_offset_field(T, ID, t, r, 0) +#define __flatbuffers_define_struct_field(ID, N, NK, T, r)\ +static inline T N ## _ ## NK ## _get(N ## _table_t t__tmp)\ +__flatbuffers_struct_field(T, ID, t__tmp, r)\ +static inline T N ## _ ## NK(N ## _table_t t__tmp)\ +__flatbuffers_struct_field(T, ID, t__tmp, r)\ +static inline int N ## _ ## NK ## _is_present(N ## _table_t t__tmp)\ +__flatbuffers_field_present(ID, t__tmp) +#define __flatbuffers_define_vector_field(ID, N, NK, T, r)\ +static inline T N ## _ ## NK ## _get(N ## _table_t t__tmp)\ +__flatbuffers_vector_field(T, ID, t__tmp, r)\ +static inline T N ## _ ## NK(N ## _table_t t__tmp)\ +__flatbuffers_vector_field(T, ID, t__tmp, r)\ +static inline int N ## _ ## NK ## _is_present(N ## _table_t t__tmp)\ +__flatbuffers_field_present(ID, t__tmp) +#define __flatbuffers_define_table_field(ID, N, NK, T, r)\ +static inline T N ## _ ## NK ## _get(N ## _table_t t__tmp)\ +__flatbuffers_table_field(T, ID, t__tmp, r)\ +static inline T N ## _ ## NK(N ## _table_t t__tmp)\ +__flatbuffers_table_field(T, ID, t__tmp, r)\ +static inline int N ## _ ## NK ## _is_present(N ## _table_t t__tmp)\ +__flatbuffers_field_present(ID, t__tmp) +#define __flatbuffers_define_string_field(ID, N, NK, r)\ +static inline flatbuffers_string_t N ## _ ## NK ## _get(N ## _table_t t__tmp)\ +__flatbuffers_vector_field(flatbuffers_string_t, ID, t__tmp, r)\ +static inline flatbuffers_string_t N ## _ ## NK(N ## _table_t t__tmp)\ +__flatbuffers_vector_field(flatbuffers_string_t, ID, t__tmp, r)\ +static inline int N ## _ ## NK ## _is_present(N ## _table_t t__tmp)\ +__flatbuffers_field_present(ID, t__tmp)\ +__flatbuffers_define_scan_by_string_field(N, NK) +#define __flatbuffers_vec_len(vec)\ +{ return (vec) ? (size_t)__flatbuffers_uoffset_read_from_pe((flatbuffers_uoffset_t *)vec - 1) : 0; } +#define __flatbuffers_string_len(s) __flatbuffers_vec_len(s) +static inline size_t flatbuffers_vec_len(const void *vec) +__flatbuffers_vec_len(vec) +#define __flatbuffers_scalar_vec_at(N, vec, i)\ +{ FLATCC_ASSERT(flatbuffers_vec_len(vec) > (i) && "index out of range");\ + return __flatbuffers_read_scalar(N, &(vec)[i]); } +#define __flatbuffers_struct_vec_at(vec, i)\ +{ FLATCC_ASSERT(flatbuffers_vec_len(vec) > (i) && "index out of range"); return (vec) + (i); } +/* `adjust` skips past the header for string vectors. */ +#define __flatbuffers_offset_vec_at(T, vec, i, adjust)\ +{ const flatbuffers_uoffset_t *elem__tmp = (vec) + (i);\ + FLATCC_ASSERT(flatbuffers_vec_len(vec) > (i) && "index out of range");\ + return (T)((uint8_t *)(elem__tmp) + (size_t)__flatbuffers_uoffset_read_from_pe(elem__tmp) + (adjust)); } +#define __flatbuffers_define_scalar_vec_len(N)\ +static inline size_t N ## _vec_len(N ##_vec_t vec__tmp)\ +{ return flatbuffers_vec_len(vec__tmp); } +#define __flatbuffers_define_scalar_vec_at(N, T) \ +static inline T N ## _vec_at(N ## _vec_t vec__tmp, size_t i__tmp)\ +__flatbuffers_scalar_vec_at(N, vec__tmp, i__tmp) +typedef const char *flatbuffers_string_t; +static inline size_t flatbuffers_string_len(flatbuffers_string_t s) +__flatbuffers_string_len(s) +typedef const flatbuffers_uoffset_t *flatbuffers_string_vec_t; +typedef flatbuffers_uoffset_t *flatbuffers_string_mutable_vec_t; +static inline size_t flatbuffers_string_vec_len(flatbuffers_string_vec_t vec) +__flatbuffers_vec_len(vec) +static inline flatbuffers_string_t flatbuffers_string_vec_at(flatbuffers_string_vec_t vec, size_t i) +__flatbuffers_offset_vec_at(flatbuffers_string_t, vec, i, sizeof(vec[0])) +typedef const void *flatbuffers_generic_t; +typedef void *flatbuffers_mutable_generic_t; +static inline flatbuffers_string_t flatbuffers_string_cast_from_generic(const flatbuffers_generic_t p) +{ return p ? ((const char *)p) + __flatbuffers_uoffset__size() : 0; } +typedef const flatbuffers_uoffset_t *flatbuffers_generic_vec_t; +typedef flatbuffers_uoffset_t *flatbuffers_generic_table_mutable_vec_t; +static inline size_t flatbuffers_generic_vec_len(flatbuffers_generic_vec_t vec) +__flatbuffers_vec_len(vec) +static inline flatbuffers_generic_t flatbuffers_generic_vec_at(flatbuffers_generic_vec_t vec, size_t i) +__flatbuffers_offset_vec_at(flatbuffers_generic_t, vec, i, 0) +static inline flatbuffers_generic_t flatbuffers_generic_vec_at_as_string(flatbuffers_generic_vec_t vec, size_t i) +__flatbuffers_offset_vec_at(flatbuffers_generic_t, vec, i, sizeof(vec[0])) +typedef struct flatbuffers_union { + flatbuffers_union_type_t type; + flatbuffers_generic_t value; +} flatbuffers_union_t; +typedef struct flatbuffers_union_vec { + const flatbuffers_union_type_t *type; + const flatbuffers_uoffset_t *value; +} flatbuffers_union_vec_t; +typedef struct flatbuffers_mutable_union { + flatbuffers_union_type_t type; + flatbuffers_mutable_generic_t value; +} flatbuffers_mutable_union_t; +typedef struct flatbuffers_mutable_union_vec { + flatbuffers_union_type_t *type; + flatbuffers_uoffset_t *value; +} flatbuffers_mutable_union_vec_t; +static inline flatbuffers_mutable_union_t flatbuffers_mutable_union_cast(flatbuffers_union_t u__tmp)\ +{ flatbuffers_mutable_union_t mu = { u__tmp.type, (flatbuffers_mutable_generic_t)u__tmp.value };\ + return mu; } +static inline flatbuffers_mutable_union_vec_t flatbuffers_mutable_union_vec_cast(flatbuffers_union_vec_t uv__tmp)\ +{ flatbuffers_mutable_union_vec_t muv =\ + { (flatbuffers_union_type_t *)uv__tmp.type, (flatbuffers_uoffset_t *)uv__tmp.value }; return muv; } +#define __flatbuffers_union_type_field(ID, t)\ +{\ + __flatbuffers_read_vt(ID, offset__tmp, t)\ + return offset__tmp ? __flatbuffers_read_scalar_at_byteoffset(__flatbuffers_utype, t, offset__tmp) : 0;\ +} +static inline flatbuffers_string_t flatbuffers_string_cast_from_union(const flatbuffers_union_t u__tmp)\ +{ return flatbuffers_string_cast_from_generic(u__tmp.value); } +#define __flatbuffers_define_union_field(NS, ID, N, NK, T, r)\ +static inline T ## _union_type_t N ## _ ## NK ## _type_get(N ## _table_t t__tmp)\ +__## NS ## union_type_field(((ID) - 1), t__tmp)\ +static inline NS ## generic_t N ## _ ## NK ## _get(N ## _table_t t__tmp)\ +__## NS ## table_field(NS ## generic_t, ID, t__tmp, r)\ +static inline T ## _union_type_t N ## _ ## NK ## _type(N ## _table_t t__tmp)\ +__## NS ## union_type_field(((ID) - 1), t__tmp)\ +static inline NS ## generic_t N ## _ ## NK(N ## _table_t t__tmp)\ +__## NS ## table_field(NS ## generic_t, ID, t__tmp, r)\ +static inline int N ## _ ## NK ## _is_present(N ## _table_t t__tmp)\ +__## NS ## field_present(ID, t__tmp)\ +static inline T ## _union_t N ## _ ## NK ## _union(N ## _table_t t__tmp)\ +{ T ## _union_t u__tmp = { 0, 0 }; u__tmp.type = N ## _ ## NK ## _type_get(t__tmp);\ + if (u__tmp.type == 0) { return u__tmp; } u__tmp.value = N ## _ ## NK ## _get(t__tmp); return u__tmp; }\ +static inline NS ## string_t N ## _ ## NK ## _as_string(N ## _table_t t__tmp)\ +{ return NS ## string_cast_from_generic(N ## _ ## NK ## _get(t__tmp)); }\ + +#define __flatbuffers_define_union_vector_ops(NS, T)\ +static inline size_t T ## _union_vec_len(T ## _union_vec_t uv__tmp)\ +{ return NS ## vec_len(uv__tmp.type); }\ +static inline T ## _union_t T ## _union_vec_at(T ## _union_vec_t uv__tmp, size_t i__tmp)\ +{ T ## _union_t u__tmp = { 0, 0 }; size_t n__tmp = NS ## vec_len(uv__tmp.type);\ + FLATCC_ASSERT(n__tmp > (i__tmp) && "index out of range"); u__tmp.type = uv__tmp.type[i__tmp];\ + /* Unknown type is treated as NONE for schema evolution. */\ + if (u__tmp.type == 0) return u__tmp;\ + u__tmp.value = NS ## generic_vec_at(uv__tmp.value, i__tmp); return u__tmp; }\ +static inline NS ## string_t T ## _union_vec_at_as_string(T ## _union_vec_t uv__tmp, size_t i__tmp)\ +{ return (NS ## string_t) NS ## generic_vec_at_as_string(uv__tmp.value, i__tmp); }\ + +#define __flatbuffers_define_union_vector(NS, T)\ +typedef NS ## union_vec_t T ## _union_vec_t;\ +typedef NS ## mutable_union_vec_t T ## _mutable_union_vec_t;\ +static inline T ## _mutable_union_vec_t T ## _mutable_union_vec_cast(T ## _union_vec_t u__tmp)\ +{ return NS ## mutable_union_vec_cast(u__tmp); }\ +__## NS ## define_union_vector_ops(NS, T) +#define __flatbuffers_define_union(NS, T)\ +typedef NS ## union_t T ## _union_t;\ +typedef NS ## mutable_union_t T ## _mutable_union_t;\ +static inline T ## _mutable_union_t T ## _mutable_union_cast(T ## _union_t u__tmp)\ +{ return NS ## mutable_union_cast(u__tmp); }\ +__## NS ## define_union_vector(NS, T) +#define __flatbuffers_define_union_vector_field(NS, ID, N, NK, T, r)\ +__## NS ## define_vector_field(ID - 1, N, NK ## _type, T ## _vec_t, r)\ +__## NS ## define_vector_field(ID, N, NK, flatbuffers_generic_vec_t, r)\ +static inline T ## _union_vec_t N ## _ ## NK ## _union(N ## _table_t t__tmp)\ +{ T ## _union_vec_t uv__tmp; uv__tmp.type = N ## _ ## NK ## _type_get(t__tmp);\ + uv__tmp.value = N ## _ ## NK(t__tmp);\ + FLATCC_ASSERT(NS ## vec_len(uv__tmp.type) == NS ## vec_len(uv__tmp.value)\ + && "union vector type length mismatch"); return uv__tmp; } +#include +static const size_t flatbuffers_not_found = (size_t)-1; +static const size_t flatbuffers_end = (size_t)-1; +#define __flatbuffers_identity(n) (n) +#define __flatbuffers_min(a, b) ((a) < (b) ? (a) : (b)) +/* Subtraction doesn't work for unsigned types. */ +#define __flatbuffers_scalar_cmp(x, y, n) ((x) < (y) ? -1 : (x) > (y)) +static inline int __flatbuffers_string_n_cmp(flatbuffers_string_t v, const char *s, size_t n) +{ size_t nv = flatbuffers_string_len(v); int x = strncmp(v, s, nv < n ? nv : n); + return x != 0 ? x : nv < n ? -1 : nv > n; } +/* `n` arg unused, but needed by string find macro expansion. */ +static inline int __flatbuffers_string_cmp(flatbuffers_string_t v, const char *s, size_t n) { (void)n; return strcmp(v, s); } +/* A = identity if searching scalar vectors rather than key fields. */ +/* Returns lowest matching index or not_found. */ +#define __flatbuffers_find_by_field(A, V, E, L, K, Kn, T, D)\ +{ T v__tmp; size_t a__tmp = 0, b__tmp, m__tmp; if (!(b__tmp = L(V))) { return flatbuffers_not_found; }\ + --b__tmp;\ + while (a__tmp < b__tmp) {\ + m__tmp = a__tmp + ((b__tmp - a__tmp) >> 1);\ + v__tmp = A(E(V, m__tmp));\ + if ((D(v__tmp, (K), (Kn))) < 0) {\ + a__tmp = m__tmp + 1;\ + } else {\ + b__tmp = m__tmp;\ + }\ + }\ + if (a__tmp == b__tmp) {\ + v__tmp = A(E(V, a__tmp));\ + if (D(v__tmp, (K), (Kn)) == 0) {\ + return a__tmp;\ + }\ + }\ + return flatbuffers_not_found;\ +} +#define __flatbuffers_find_by_scalar_field(A, V, E, L, K, T)\ +__flatbuffers_find_by_field(A, V, E, L, K, 0, T, __flatbuffers_scalar_cmp) +#define __flatbuffers_find_by_string_field(A, V, E, L, K)\ +__flatbuffers_find_by_field(A, V, E, L, K, 0, flatbuffers_string_t, __flatbuffers_string_cmp) +#define __flatbuffers_find_by_string_n_field(A, V, E, L, K, Kn)\ +__flatbuffers_find_by_field(A, V, E, L, K, Kn, flatbuffers_string_t, __flatbuffers_string_n_cmp) +#define __flatbuffers_define_find_by_scalar_field(N, NK, TK)\ +static inline size_t N ## _vec_find_by_ ## NK(N ## _vec_t vec__tmp, TK key__tmp)\ +__flatbuffers_find_by_scalar_field(N ## _ ## NK, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, TK) +#define __flatbuffers_define_scalar_find(N, T)\ +static inline size_t N ## _vec_find(N ## _vec_t vec__tmp, T key__tmp)\ +__flatbuffers_find_by_scalar_field(__flatbuffers_identity, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T) +#define __flatbuffers_define_find_by_string_field(N, NK) \ +/* Note: find only works on vectors sorted by this field. */\ +static inline size_t N ## _vec_find_by_ ## NK(N ## _vec_t vec__tmp, const char *s__tmp)\ +__flatbuffers_find_by_string_field(N ## _ ## NK, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp)\ +static inline size_t N ## _vec_find_n_by_ ## NK(N ## _vec_t vec__tmp, const char *s__tmp, size_t n__tmp)\ +__flatbuffers_find_by_string_n_field(N ## _ ## NK, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp, n__tmp) +#define __flatbuffers_define_default_find_by_scalar_field(N, NK, TK)\ +static inline size_t N ## _vec_find(N ## _vec_t vec__tmp, TK key__tmp)\ +{ return N ## _vec_find_by_ ## NK(vec__tmp, key__tmp); } +#define __flatbuffers_define_default_find_by_string_field(N, NK) \ +static inline size_t N ## _vec_find(N ## _vec_t vec__tmp, const char *s__tmp)\ +{ return N ## _vec_find_by_ ## NK(vec__tmp, s__tmp); }\ +static inline size_t N ## _vec_find_n(N ## _vec_t vec__tmp, const char *s__tmp, size_t n__tmp)\ +{ return N ## _vec_find_n_by_ ## NK(vec__tmp, s__tmp, n__tmp); } +/* A = identity if searching scalar vectors rather than key fields. */ +/* Returns lowest matching index or not_found. */ +#define __flatbuffers_scan_by_field(b, e, A, V, E, L, K, Kn, T, D)\ +{ T v__tmp; size_t i__tmp;\ + for (i__tmp = b; i__tmp < e; ++i__tmp) {\ + v__tmp = A(E(V, i__tmp));\ + if (D(v__tmp, (K), (Kn)) == 0) {\ + return i__tmp;\ + }\ + }\ + return flatbuffers_not_found;\ +} +#define __flatbuffers_rscan_by_field(b, e, A, V, E, L, K, Kn, T, D)\ +{ T v__tmp; size_t i__tmp = e;\ + while (i__tmp-- > b) {\ + v__tmp = A(E(V, i__tmp));\ + if (D(v__tmp, (K), (Kn)) == 0) {\ + return i__tmp;\ + }\ + }\ + return flatbuffers_not_found;\ +} +#define __flatbuffers_scan_by_scalar_field(b, e, A, V, E, L, K, T)\ +__flatbuffers_scan_by_field(b, e, A, V, E, L, K, 0, T, __flatbuffers_scalar_cmp) +#define __flatbuffers_scan_by_string_field(b, e, A, V, E, L, K)\ +__flatbuffers_scan_by_field(b, e, A, V, E, L, K, 0, flatbuffers_string_t, __flatbuffers_string_cmp) +#define __flatbuffers_scan_by_string_n_field(b, e, A, V, E, L, K, Kn)\ +__flatbuffers_scan_by_field(b, e, A, V, E, L, K, Kn, flatbuffers_string_t, __flatbuffers_string_n_cmp) +#define __flatbuffers_rscan_by_scalar_field(b, e, A, V, E, L, K, T)\ +__flatbuffers_rscan_by_field(b, e, A, V, E, L, K, 0, T, __flatbuffers_scalar_cmp) +#define __flatbuffers_rscan_by_string_field(b, e, A, V, E, L, K)\ +__flatbuffers_rscan_by_field(b, e, A, V, E, L, K, 0, flatbuffers_string_t, __flatbuffers_string_cmp) +#define __flatbuffers_rscan_by_string_n_field(b, e, A, V, E, L, K, Kn)\ +__flatbuffers_rscan_by_field(b, e, A, V, E, L, K, Kn, flatbuffers_string_t, __flatbuffers_string_n_cmp) +#define __flatbuffers_define_scan_by_scalar_field(N, NK, T)\ +static inline size_t N ## _vec_scan_by_ ## NK(N ## _vec_t vec__tmp, T key__tmp)\ +__flatbuffers_scan_by_scalar_field(0, N ## _vec_len(vec__tmp), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T)\ +static inline size_t N ## _vec_scan_ex_by_ ## NK(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, T key__tmp)\ +__flatbuffers_scan_by_scalar_field(begin__tmp, __flatbuffers_min(end__tmp, N ## _vec_len(vec__tmp)), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T)\ +static inline size_t N ## _vec_rscan_by_ ## NK(N ## _vec_t vec__tmp, T key__tmp)\ +__flatbuffers_rscan_by_scalar_field(0, N ## _vec_len(vec__tmp), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T)\ +static inline size_t N ## _vec_rscan_ex_by_ ## NK(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, T key__tmp)\ +__flatbuffers_rscan_by_scalar_field(begin__tmp, __flatbuffers_min(end__tmp, N ## _vec_len(vec__tmp)), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T) +#define __flatbuffers_define_scalar_scan(N, T)\ +static inline size_t N ## _vec_scan(N ## _vec_t vec__tmp, T key__tmp)\ +__flatbuffers_scan_by_scalar_field(0, N ## _vec_len(vec__tmp), __flatbuffers_identity, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T)\ +static inline size_t N ## _vec_scan_ex(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, T key__tmp)\ +__flatbuffers_scan_by_scalar_field(begin__tmp, __flatbuffers_min(end__tmp, N ## _vec_len(vec__tmp)), __flatbuffers_identity, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T)\ +static inline size_t N ## _vec_rscan(N ## _vec_t vec__tmp, T key__tmp)\ +__flatbuffers_rscan_by_scalar_field(0, N ## _vec_len(vec__tmp), __flatbuffers_identity, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T)\ +static inline size_t N ## _vec_rscan_ex(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, T key__tmp)\ +__flatbuffers_rscan_by_scalar_field(begin__tmp, __flatbuffers_min(end__tmp, N ## _vec_len(vec__tmp)), __flatbuffers_identity, vec__tmp, N ## _vec_at, N ## _vec_len, key__tmp, T) +#define __flatbuffers_define_scan_by_string_field(N, NK) \ +static inline size_t N ## _vec_scan_by_ ## NK(N ## _vec_t vec__tmp, const char *s__tmp)\ +__flatbuffers_scan_by_string_field(0, N ## _vec_len(vec__tmp), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp)\ +static inline size_t N ## _vec_scan_n_by_ ## NK(N ## _vec_t vec__tmp, const char *s__tmp, size_t n__tmp)\ +__flatbuffers_scan_by_string_n_field(0, N ## _vec_len(vec__tmp), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp, n__tmp)\ +static inline size_t N ## _vec_scan_ex_by_ ## NK(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp)\ +__flatbuffers_scan_by_string_field(begin__tmp, __flatbuffers_min(end__tmp, N ## _vec_len(vec__tmp)), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp)\ +static inline size_t N ## _vec_scan_ex_n_by_ ## NK(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp, size_t n__tmp)\ +__flatbuffers_scan_by_string_n_field(begin__tmp, __flatbuffers_min( end__tmp, N ## _vec_len(vec__tmp)), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp, n__tmp)\ +static inline size_t N ## _vec_rscan_by_ ## NK(N ## _vec_t vec__tmp, const char *s__tmp)\ +__flatbuffers_rscan_by_string_field(0, N ## _vec_len(vec__tmp), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp)\ +static inline size_t N ## _vec_rscan_n_by_ ## NK(N ## _vec_t vec__tmp, const char *s__tmp, size_t n__tmp)\ +__flatbuffers_rscan_by_string_n_field(0, N ## _vec_len(vec__tmp), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp, n__tmp)\ +static inline size_t N ## _vec_rscan_ex_by_ ## NK(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp)\ +__flatbuffers_rscan_by_string_field(begin__tmp, __flatbuffers_min(end__tmp, N ## _vec_len(vec__tmp)), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp)\ +static inline size_t N ## _vec_rscan_ex_n_by_ ## NK(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp, size_t n__tmp)\ +__flatbuffers_rscan_by_string_n_field(begin__tmp, __flatbuffers_min( end__tmp, N ## _vec_len(vec__tmp)), N ## _ ## NK ## _get, vec__tmp, N ## _vec_at, N ## _vec_len, s__tmp, n__tmp) +#define __flatbuffers_define_default_scan_by_scalar_field(N, NK, TK)\ +static inline size_t N ## _vec_scan(N ## _vec_t vec__tmp, TK key__tmp)\ +{ return N ## _vec_scan_by_ ## NK(vec__tmp, key__tmp); }\ +static inline size_t N ## _vec_scan_ex(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, TK key__tmp)\ +{ return N ## _vec_scan_ex_by_ ## NK(vec__tmp, begin__tmp, end__tmp, key__tmp); }\ +static inline size_t N ## _vec_rscan(N ## _vec_t vec__tmp, TK key__tmp)\ +{ return N ## _vec_rscan_by_ ## NK(vec__tmp, key__tmp); }\ +static inline size_t N ## _vec_rscan_ex(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, TK key__tmp)\ +{ return N ## _vec_rscan_ex_by_ ## NK(vec__tmp, begin__tmp, end__tmp, key__tmp); } +#define __flatbuffers_define_default_scan_by_string_field(N, NK) \ +static inline size_t N ## _vec_scan(N ## _vec_t vec__tmp, const char *s__tmp)\ +{ return N ## _vec_scan_by_ ## NK(vec__tmp, s__tmp); }\ +static inline size_t N ## _vec_scan_n(N ## _vec_t vec__tmp, const char *s__tmp, size_t n__tmp)\ +{ return N ## _vec_scan_n_by_ ## NK(vec__tmp, s__tmp, n__tmp); }\ +static inline size_t N ## _vec_scan_ex(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp)\ +{ return N ## _vec_scan_ex_by_ ## NK(vec__tmp, begin__tmp, end__tmp, s__tmp); }\ +static inline size_t N ## _vec_scan_ex_n(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp, size_t n__tmp)\ +{ return N ## _vec_scan_ex_n_by_ ## NK(vec__tmp, begin__tmp, end__tmp, s__tmp, n__tmp); }\ +static inline size_t N ## _vec_rscan(N ## _vec_t vec__tmp, const char *s__tmp)\ +{ return N ## _vec_rscan_by_ ## NK(vec__tmp, s__tmp); }\ +static inline size_t N ## _vec_rscan_n(N ## _vec_t vec__tmp, const char *s__tmp, size_t n__tmp)\ +{ return N ## _vec_rscan_n_by_ ## NK(vec__tmp, s__tmp, n__tmp); }\ +static inline size_t N ## _vec_rscan_ex(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp)\ +{ return N ## _vec_rscan_ex_by_ ## NK(vec__tmp, begin__tmp, end__tmp, s__tmp); }\ +static inline size_t N ## _vec_rscan_ex_n(N ## _vec_t vec__tmp, size_t begin__tmp, size_t end__tmp, const char *s__tmp, size_t n__tmp)\ +{ return N ## _vec_rscan_ex_n_by_ ## NK(vec__tmp, begin__tmp, end__tmp, s__tmp, n__tmp); } +#define __flatbuffers_heap_sort(N, X, A, E, L, TK, TE, D, S)\ +static inline void __ ## N ## X ## __heap_sift_down(\ + N ## _mutable_vec_t vec__tmp, size_t start__tmp, size_t end__tmp)\ +{ size_t child__tmp, root__tmp; TK v1__tmp, v2__tmp, vroot__tmp;\ + root__tmp = start__tmp;\ + while ((root__tmp << 1) <= end__tmp) {\ + child__tmp = root__tmp << 1;\ + if (child__tmp < end__tmp) {\ + v1__tmp = A(E(vec__tmp, child__tmp));\ + v2__tmp = A(E(vec__tmp, child__tmp + 1));\ + if (D(v1__tmp, v2__tmp) < 0) {\ + child__tmp++;\ + }\ + }\ + vroot__tmp = A(E(vec__tmp, root__tmp));\ + v1__tmp = A(E(vec__tmp, child__tmp));\ + if (D(vroot__tmp, v1__tmp) < 0) {\ + S(vec__tmp, root__tmp, child__tmp, TE);\ + root__tmp = child__tmp;\ + } else {\ + return;\ + }\ + }\ +}\ +static inline void __ ## N ## X ## __heap_sort(N ## _mutable_vec_t vec__tmp)\ +{ size_t start__tmp, end__tmp, size__tmp;\ + size__tmp = L(vec__tmp); if (size__tmp == 0) return; end__tmp = size__tmp - 1; start__tmp = size__tmp >> 1;\ + do { __ ## N ## X ## __heap_sift_down(vec__tmp, start__tmp, end__tmp); } while (start__tmp--);\ + while (end__tmp > 0) { \ + S(vec__tmp, 0, end__tmp, TE);\ + __ ## N ## X ## __heap_sift_down(vec__tmp, 0, --end__tmp); } } +#define __flatbuffers_define_sort_by_field(N, NK, TK, TE, D, S)\ + __flatbuffers_heap_sort(N, _sort_by_ ## NK, N ## _ ## NK ## _get, N ## _vec_at, N ## _vec_len, TK, TE, D, S)\ +static inline void N ## _vec_sort_by_ ## NK(N ## _mutable_vec_t vec__tmp)\ +{ __ ## N ## _sort_by_ ## NK ## __heap_sort(vec__tmp); } +#define __flatbuffers_define_sort(N, TK, TE, D, S)\ +__flatbuffers_heap_sort(N, , __flatbuffers_identity, N ## _vec_at, N ## _vec_len, TK, TE, D, S)\ +static inline void N ## _vec_sort(N ## _mutable_vec_t vec__tmp) { __ ## N ## __heap_sort(vec__tmp); } +#define __flatbuffers_scalar_diff(x, y) ((x) < (y) ? -1 : (x) > (y)) +#define __flatbuffers_string_diff(x, y) __flatbuffers_string_n_cmp((x), (const char *)(y), flatbuffers_string_len(y)) +#define __flatbuffers_value_swap(vec, a, b, TE) { TE x__tmp = vec[b]; vec[b] = vec[a]; vec[a] = x__tmp; } +#define __flatbuffers_uoffset_swap(vec, a, b, TE)\ +{ TE ta__tmp, tb__tmp, d__tmp;\ + d__tmp = (TE)((a - b) * sizeof(vec[0]));\ + ta__tmp = __flatbuffers_uoffset_read_from_pe(vec + b) - d__tmp;\ + tb__tmp = __flatbuffers_uoffset_read_from_pe(vec + a) + d__tmp;\ + __flatbuffers_uoffset_write_to_pe(vec + a, ta__tmp);\ + __flatbuffers_uoffset_write_to_pe(vec + b, tb__tmp); } +#define __flatbuffers_scalar_swap(vec, a, b, TE) __flatbuffers_value_swap(vec, a, b, TE) +#define __flatbuffers_string_swap(vec, a, b, TE) __flatbuffers_uoffset_swap(vec, a, b, TE) +#define __flatbuffers_struct_swap(vec, a, b, TE) __flatbuffers_value_swap(vec, a, b, TE) +#define __flatbuffers_table_swap(vec, a, b, TE) __flatbuffers_uoffset_swap(vec, a, b, TE) +#define __flatbuffers_define_struct_sort_by_scalar_field(N, NK, TK, TE)\ + __flatbuffers_define_sort_by_field(N, NK, TK, TE, __flatbuffers_scalar_diff, __flatbuffers_struct_swap) +#define __flatbuffers_define_table_sort_by_scalar_field(N, NK, TK)\ + __flatbuffers_define_sort_by_field(N, NK, TK, flatbuffers_uoffset_t, __flatbuffers_scalar_diff, __flatbuffers_table_swap) +#define __flatbuffers_define_table_sort_by_string_field(N, NK)\ + __flatbuffers_define_sort_by_field(N, NK, flatbuffers_string_t, flatbuffers_uoffset_t, __flatbuffers_string_diff, __flatbuffers_table_swap) +#define __flatbuffers_define_scalar_sort(N, T) __flatbuffers_define_sort(N, T, T, __flatbuffers_scalar_diff, __flatbuffers_scalar_swap) +#define __flatbuffers_define_string_sort() __flatbuffers_define_sort(flatbuffers_string, flatbuffers_string_t, flatbuffers_uoffset_t, __flatbuffers_string_diff, __flatbuffers_string_swap) +#define __flatbuffers_sort_vector_field(N, NK, T, t)\ +{ T ## _mutable_vec_t v__tmp = (T ## _mutable_vec_t) N ## _ ## NK ## _get(t);\ + if (v__tmp) T ## _vec_sort(v__tmp); } +#define __flatbuffers_sort_table_field(N, NK, T, t)\ +{ T ## _sort((T ## _mutable_table_t)N ## _ ## NK ## _get(t)); } +#define __flatbuffers_sort_union_field(N, NK, T, t)\ +{ T ## _sort(T ## _mutable_union_cast(N ## _ ## NK ## _union(t))); } +#define __flatbuffers_sort_table_vector_field_elements(N, NK, T, t)\ +{ T ## _vec_t v__tmp = N ## _ ## NK ## _get(t); size_t i__tmp, n__tmp;\ + n__tmp = T ## _vec_len(v__tmp); for (i__tmp = 0; i__tmp < n__tmp; ++i__tmp) {\ + T ## _sort((T ## _mutable_table_t)T ## _vec_at(v__tmp, i__tmp)); }} +#define __flatbuffers_sort_union_vector_field_elements(N, NK, T, t)\ +{ T ## _union_vec_t v__tmp = N ## _ ## NK ## _union(t); size_t i__tmp, n__tmp;\ + n__tmp = T ## _union_vec_len(v__tmp); for (i__tmp = 0; i__tmp < n__tmp; ++i__tmp) {\ + T ## _sort(T ## _mutable_union_cast(T ## _union_vec_at(v__tmp, i__tmp))); }} +#define __flatbuffers_define_scalar_vector(N, T)\ +typedef const T *N ## _vec_t;\ +typedef T *N ## _mutable_vec_t;\ +__flatbuffers_define_scalar_vec_len(N)\ +__flatbuffers_define_scalar_vec_at(N, T)\ +__flatbuffers_define_scalar_find(N, T)\ +__flatbuffers_define_scalar_scan(N, T)\ +__flatbuffers_define_scalar_sort(N, T) + +#define __flatbuffers_define_integer_type(N, T, W)\ +__flatcc_define_integer_accessors(N, T, W, flatbuffers_endian)\ +__flatbuffers_define_scalar_vector(N, T) +__flatbuffers_define_scalar_vector(flatbuffers_bool, flatbuffers_bool_t) +__flatbuffers_define_scalar_vector(flatbuffers_char, char) +__flatbuffers_define_scalar_vector(flatbuffers_uint8, uint8_t) +__flatbuffers_define_scalar_vector(flatbuffers_int8, int8_t) +__flatbuffers_define_scalar_vector(flatbuffers_uint16, uint16_t) +__flatbuffers_define_scalar_vector(flatbuffers_int16, int16_t) +__flatbuffers_define_scalar_vector(flatbuffers_uint32, uint32_t) +__flatbuffers_define_scalar_vector(flatbuffers_int32, int32_t) +__flatbuffers_define_scalar_vector(flatbuffers_uint64, uint64_t) +__flatbuffers_define_scalar_vector(flatbuffers_int64, int64_t) +__flatbuffers_define_scalar_vector(flatbuffers_float, float) +__flatbuffers_define_scalar_vector(flatbuffers_double, double) +__flatbuffers_define_scalar_vector(flatbuffers_union_type, flatbuffers_union_type_t) +static inline size_t flatbuffers_string_vec_find(flatbuffers_string_vec_t vec, const char *s) +__flatbuffers_find_by_string_field(__flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s) +static inline size_t flatbuffers_string_vec_find_n(flatbuffers_string_vec_t vec, const char *s, size_t n) +__flatbuffers_find_by_string_n_field(__flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s, n) +static inline size_t flatbuffers_string_vec_scan(flatbuffers_string_vec_t vec, const char *s) +__flatbuffers_scan_by_string_field(0, flatbuffers_string_vec_len(vec), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s) +static inline size_t flatbuffers_string_vec_scan_n(flatbuffers_string_vec_t vec, const char *s, size_t n) +__flatbuffers_scan_by_string_n_field(0, flatbuffers_string_vec_len(vec), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s, n) +static inline size_t flatbuffers_string_vec_scan_ex(flatbuffers_string_vec_t vec, size_t begin, size_t end, const char *s) +__flatbuffers_scan_by_string_field(begin, __flatbuffers_min(end, flatbuffers_string_vec_len(vec)), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s) +static inline size_t flatbuffers_string_vec_scan_ex_n(flatbuffers_string_vec_t vec, size_t begin, size_t end, const char *s, size_t n) +__flatbuffers_scan_by_string_n_field(begin, __flatbuffers_min(end, flatbuffers_string_vec_len(vec)), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s, n) +static inline size_t flatbuffers_string_vec_rscan(flatbuffers_string_vec_t vec, const char *s) +__flatbuffers_rscan_by_string_field(0, flatbuffers_string_vec_len(vec), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s) +static inline size_t flatbuffers_string_vec_rscan_n(flatbuffers_string_vec_t vec, const char *s, size_t n) +__flatbuffers_rscan_by_string_n_field(0, flatbuffers_string_vec_len(vec), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s, n) +static inline size_t flatbuffers_string_vec_rscan_ex(flatbuffers_string_vec_t vec, size_t begin, size_t end, const char *s) +__flatbuffers_rscan_by_string_field(begin, __flatbuffers_min(end, flatbuffers_string_vec_len(vec)), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s) +static inline size_t flatbuffers_string_vec_rscan_ex_n(flatbuffers_string_vec_t vec, size_t begin, size_t end, const char *s, size_t n) +__flatbuffers_rscan_by_string_n_field(begin, __flatbuffers_min(end, flatbuffers_string_vec_len(vec)), __flatbuffers_identity, vec, flatbuffers_string_vec_at, flatbuffers_string_vec_len, s, n) +__flatbuffers_define_string_sort() +#define __flatbuffers_define_struct_scalar_fixed_array_field(N, NK, TK, T, L)\ +static inline T N ## _ ## NK ## _get(N ## _struct_t t__tmp, size_t i__tmp)\ +{ if (!t__tmp || i__tmp >= L) return 0;\ + return __flatbuffers_read_scalar(TK, &(t__tmp->NK[i__tmp])); }\ +static inline const T *N ## _ ## NK ## _get_ptr(N ## _struct_t t__tmp)\ +{ return t__tmp ? t__tmp->NK : 0; }\ +static inline size_t N ## _ ## NK ## _get_len(void) { return L; }\ +static inline T N ## _ ## NK (N ## _struct_t t__tmp, size_t i__tmp)\ +{ return N ## _ ## NK ## _get(t__tmp, i__tmp); } +#define __flatbuffers_define_struct_struct_fixed_array_field(N, NK, T, L)\ +static inline T N ## _ ## NK ## _get(N ## _struct_t t__tmp, size_t i__tmp)\ +{ if (!t__tmp || i__tmp >= L) return 0; return t__tmp->NK + i__tmp; }static inline T N ## _ ## NK ## _get_ptr(N ## _struct_t t__tmp)\ +{ return t__tmp ? t__tmp->NK : 0; }\ +static inline size_t N ## _ ## NK ## _get_len(void) { return L; }\ +static inline T N ## _ ## NK(N ## _struct_t t__tmp, size_t i__tmp)\ +{ if (!t__tmp || i__tmp >= L) return 0; return t__tmp->NK + i__tmp; } +#define __flatbuffers_define_struct_scalar_field(N, NK, TK, T)\ +static inline T N ## _ ## NK ## _get(N ## _struct_t t__tmp)\ +{ return t__tmp ? __flatbuffers_read_scalar(TK, &(t__tmp->NK)) : 0; }\ +static inline const T *N ## _ ## NK ## _get_ptr(N ## _struct_t t__tmp)\ +{ return t__tmp ? &(t__tmp->NK) : 0; }\ +static inline T N ## _ ## NK (N ## _struct_t t__tmp)\ +{ return t__tmp ? __flatbuffers_read_scalar(TK, &(t__tmp->NK)) : 0; }\ +__flatbuffers_define_scan_by_scalar_field(N, NK, T) +#define __flatbuffers_define_struct_struct_field(N, NK, T)\ +static inline T N ## _ ## NK ## _get(N ## _struct_t t__tmp) { return t__tmp ? &(t__tmp->NK) : 0; }\ +static inline T N ## _ ## NK (N ## _struct_t t__tmp) { return t__tmp ? &(t__tmp->NK) : 0; } +/* If fid is null, the function returns true without testing as buffer is not expected to have any id. */ +static inline int flatbuffers_has_identifier(const void *buffer, const char *fid) +{ flatbuffers_thash_t id, id2 = 0; if (fid == 0) { return 1; }; + id2 = flatbuffers_type_hash_from_string(fid); + id = __flatbuffers_thash_read_from_pe(((flatbuffers_uoffset_t *)buffer) + 1); + return id2 == 0 || id == id2; } +static inline int flatbuffers_has_type_hash(const void *buffer, flatbuffers_thash_t thash) +{ return thash == 0 || (__flatbuffers_thash_read_from_pe((flatbuffers_uoffset_t *)buffer + 1) == thash); } + +static inline flatbuffers_thash_t flatbuffers_get_type_hash(const void *buffer) +{ return __flatbuffers_thash_read_from_pe((flatbuffers_uoffset_t *)buffer + 1); } + +#define flatbuffers_verify_endian() flatbuffers_has_identifier("\x00\x00\x00\x00" "1234", "1234") +static inline void *flatbuffers_read_size_prefix(void *b, size_t *size_out) +{ if (size_out) { *size_out = (size_t)__flatbuffers_uoffset_read_from_pe(b); } + return (uint8_t *)b + sizeof(flatbuffers_uoffset_t); } +/* Null file identifier accepts anything, otherwise fid should be 4 characters. */ +#define __flatbuffers_read_root(T, K, buffer, fid)\ + ((!buffer || !flatbuffers_has_identifier(buffer, fid)) ? 0 :\ + ((T ## _ ## K ## t)(((uint8_t *)buffer) +\ + __flatbuffers_uoffset_read_from_pe(buffer)))) +#define __flatbuffers_read_typed_root(T, K, buffer, thash)\ + ((!buffer || !flatbuffers_has_type_hash(buffer, thash)) ? 0 :\ + ((T ## _ ## K ## t)(((uint8_t *)buffer) +\ + __flatbuffers_uoffset_read_from_pe(buffer)))) +#define __flatbuffers_nested_buffer_as_root(C, N, T, K)\ +static inline T ## _ ## K ## t C ## _ ## N ## _as_root_with_identifier(C ## _ ## table_t t__tmp, const char *fid__tmp)\ +{ const uint8_t *buffer__tmp = C ## _ ## N(t__tmp); return __flatbuffers_read_root(T, K, buffer__tmp, fid__tmp); }\ +static inline T ## _ ## K ## t C ## _ ## N ## _as_typed_root(C ## _ ## table_t t__tmp)\ +{ const uint8_t *buffer__tmp = C ## _ ## N(t__tmp); return __flatbuffers_read_root(T, K, buffer__tmp, C ## _ ## type_identifier); }\ +static inline T ## _ ## K ## t C ## _ ## N ## _as_root(C ## _ ## table_t t__tmp)\ +{ const char *fid__tmp = T ## _file_identifier;\ + const uint8_t *buffer__tmp = C ## _ ## N(t__tmp); return __flatbuffers_read_root(T, K, buffer__tmp, fid__tmp); } +#define __flatbuffers_buffer_as_root(N, K)\ +static inline N ## _ ## K ## t N ## _as_root_with_identifier(const void *buffer__tmp, const char *fid__tmp)\ +{ return __flatbuffers_read_root(N, K, buffer__tmp, fid__tmp); }\ +static inline N ## _ ## K ## t N ## _as_root_with_type_hash(const void *buffer__tmp, flatbuffers_thash_t thash__tmp)\ +{ return __flatbuffers_read_typed_root(N, K, buffer__tmp, thash__tmp); }\ +static inline N ## _ ## K ## t N ## _as_root(const void *buffer__tmp)\ +{ const char *fid__tmp = N ## _file_identifier;\ + return __flatbuffers_read_root(N, K, buffer__tmp, fid__tmp); }\ +static inline N ## _ ## K ## t N ## _as_typed_root(const void *buffer__tmp)\ +{ return __flatbuffers_read_typed_root(N, K, buffer__tmp, N ## _type_hash); } +#define __flatbuffers_struct_as_root(N) __flatbuffers_buffer_as_root(N, struct_) +#define __flatbuffers_table_as_root(N) __flatbuffers_buffer_as_root(N, table_) + +#include "flatcc/flatcc_epilogue.h" +#endif /* FLATBUFFERS_COMMON_H */ + +#pragma GCC diagnostic pop diff --git a/src/flamenco/runtime/tests/flatbuffers/generated/metadata_builder.h b/src/flamenco/runtime/tests/flatbuffers/generated/metadata_builder.h new file mode 100644 index 00000000000..9ddc16c66b2 --- /dev/null +++ b/src/flamenco/runtime/tests/flatbuffers/generated/metadata_builder.h @@ -0,0 +1,57 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmisleading-indentation" + +#ifndef METADATA_BUILDER_H +#define METADATA_BUILDER_H + +/* Generated by flatcc 0.6.2 FlatBuffers schema compiler for C by dvide.com */ + +#ifndef METADATA_READER_H +#include "metadata_reader.h" +#endif +#ifndef FLATBUFFERS_COMMON_BUILDER_H +#include "flatbuffers_common_builder.h" +#endif +#include "flatcc/flatcc_prologue.h" +#ifndef flatbuffers_identifier +#define flatbuffers_identifier 0 +#endif +#ifndef flatbuffers_extension +#define flatbuffers_extension "bin" +#endif + +static const flatbuffers_voffset_t __fd_org_solana_sealevel_v2_FixtureMetadata_required[] = { 0, 0 }; +typedef flatbuffers_ref_t fd_org_solana_sealevel_v2_FixtureMetadata_ref_t; +static fd_org_solana_sealevel_v2_FixtureMetadata_ref_t fd_org_solana_sealevel_v2_FixtureMetadata_clone(flatbuffers_builder_t *B, fd_org_solana_sealevel_v2_FixtureMetadata_table_t t); +__flatbuffers_build_table(flatbuffers_, fd_org_solana_sealevel_v2_FixtureMetadata, 1) + +#define __fd_org_solana_sealevel_v2_FixtureMetadata_formal_args , flatbuffers_string_ref_t v0 +#define __fd_org_solana_sealevel_v2_FixtureMetadata_call_args , v0 +static inline fd_org_solana_sealevel_v2_FixtureMetadata_ref_t fd_org_solana_sealevel_v2_FixtureMetadata_create(flatbuffers_builder_t *B __fd_org_solana_sealevel_v2_FixtureMetadata_formal_args); +__flatbuffers_build_table_prolog(flatbuffers_, fd_org_solana_sealevel_v2_FixtureMetadata, fd_org_solana_sealevel_v2_FixtureMetadata_file_identifier, fd_org_solana_sealevel_v2_FixtureMetadata_type_identifier) + +__flatbuffers_build_string_field(0, flatbuffers_, fd_org_solana_sealevel_v2_FixtureMetadata_fn_entrypoint, fd_org_solana_sealevel_v2_FixtureMetadata) + +static inline fd_org_solana_sealevel_v2_FixtureMetadata_ref_t fd_org_solana_sealevel_v2_FixtureMetadata_create(flatbuffers_builder_t *B __fd_org_solana_sealevel_v2_FixtureMetadata_formal_args) +{ + if (fd_org_solana_sealevel_v2_FixtureMetadata_start(B) + || fd_org_solana_sealevel_v2_FixtureMetadata_fn_entrypoint_add(B, v0)) { + return 0; + } + return fd_org_solana_sealevel_v2_FixtureMetadata_end(B); +} + +static fd_org_solana_sealevel_v2_FixtureMetadata_ref_t fd_org_solana_sealevel_v2_FixtureMetadata_clone(flatbuffers_builder_t *B, fd_org_solana_sealevel_v2_FixtureMetadata_table_t t) +{ + __flatbuffers_memoize_begin(B, t); + if (fd_org_solana_sealevel_v2_FixtureMetadata_start(B) + || fd_org_solana_sealevel_v2_FixtureMetadata_fn_entrypoint_pick(B, t)) { + return 0; + } + __flatbuffers_memoize_end(B, t, fd_org_solana_sealevel_v2_FixtureMetadata_end(B)); +} + +#include "flatcc/flatcc_epilogue.h" +#endif /* METADATA_BUILDER_H */ + +#pragma GCC diagnostic pop diff --git a/src/flamenco/runtime/tests/flatbuffers/generated/metadata_reader.h b/src/flamenco/runtime/tests/flatbuffers/generated/metadata_reader.h new file mode 100644 index 00000000000..e4c8bc19d73 --- /dev/null +++ b/src/flamenco/runtime/tests/flatbuffers/generated/metadata_reader.h @@ -0,0 +1,58 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmisleading-indentation" + +#ifndef METADATA_READER_H +#define METADATA_READER_H + +/* Generated by flatcc 0.6.2 FlatBuffers schema compiler for C by dvide.com */ + +#ifndef FLATBUFFERS_COMMON_READER_H +#include "flatbuffers_common_reader.h" +#endif +#include "flatcc/flatcc_flatbuffers.h" +#ifndef __alignas_is_defined +#include +#endif +#include "flatcc/flatcc_prologue.h" +#ifndef flatbuffers_identifier +#define flatbuffers_identifier 0 +#endif +#ifndef flatbuffers_extension +#define flatbuffers_extension "bin" +#endif + + +typedef const struct fd_org_solana_sealevel_v2_FixtureMetadata_table *fd_org_solana_sealevel_v2_FixtureMetadata_table_t; +typedef struct fd_org_solana_sealevel_v2_FixtureMetadata_table *fd_org_solana_sealevel_v2_FixtureMetadata_mutable_table_t; +typedef const flatbuffers_uoffset_t *fd_org_solana_sealevel_v2_FixtureMetadata_vec_t; +typedef flatbuffers_uoffset_t *fd_org_solana_sealevel_v2_FixtureMetadata_mutable_vec_t; +#ifndef fd_org_solana_sealevel_v2_FixtureMetadata_file_identifier +#define fd_org_solana_sealevel_v2_FixtureMetadata_file_identifier 0 +#endif +/* deprecated, use fd_org_solana_sealevel_v2_FixtureMetadata_file_identifier */ +#ifndef fd_org_solana_sealevel_v2_FixtureMetadata_identifier +#define fd_org_solana_sealevel_v2_FixtureMetadata_identifier 0 +#endif +#define fd_org_solana_sealevel_v2_FixtureMetadata_type_hash ((flatbuffers_thash_t)0xcb81df9e) +#define fd_org_solana_sealevel_v2_FixtureMetadata_type_identifier "\x9e\xdf\x81\xcb" +#ifndef fd_org_solana_sealevel_v2_FixtureMetadata_file_extension +#define fd_org_solana_sealevel_v2_FixtureMetadata_file_extension "bin" +#endif + + + +struct fd_org_solana_sealevel_v2_FixtureMetadata_table { uint8_t unused__; }; + +static inline size_t fd_org_solana_sealevel_v2_FixtureMetadata_vec_len(fd_org_solana_sealevel_v2_FixtureMetadata_vec_t vec) +__flatbuffers_vec_len(vec) +static inline fd_org_solana_sealevel_v2_FixtureMetadata_table_t fd_org_solana_sealevel_v2_FixtureMetadata_vec_at(fd_org_solana_sealevel_v2_FixtureMetadata_vec_t vec, size_t i) +__flatbuffers_offset_vec_at(fd_org_solana_sealevel_v2_FixtureMetadata_table_t, vec, i, 0) +__flatbuffers_table_as_root(fd_org_solana_sealevel_v2_FixtureMetadata) + +__flatbuffers_define_string_field(0, fd_org_solana_sealevel_v2_FixtureMetadata, fn_entrypoint, 1) + + +#include "flatcc/flatcc_epilogue.h" +#endif /* METADATA_READER_H */ + +#pragma GCC diagnostic pop diff --git a/src/flamenco/runtime/tests/flatbuffers/generated/metadata_verifier.h b/src/flamenco/runtime/tests/flatbuffers/generated/metadata_verifier.h new file mode 100644 index 00000000000..b31eef4a66a --- /dev/null +++ b/src/flamenco/runtime/tests/flatbuffers/generated/metadata_verifier.h @@ -0,0 +1,67 @@ +#pragma GCC diagnostic push +#pragma GCC diagnostic ignored "-Wmisleading-indentation" + +#ifndef METADATA_VERIFIER_H +#define METADATA_VERIFIER_H + +/* Generated by flatcc 0.6.2 FlatBuffers schema compiler for C by dvide.com */ + +#ifndef METADATA_READER_H +#include "metadata_reader.h" +#endif +#include "flatcc/flatcc_verifier.h" +#include "flatcc/flatcc_prologue.h" + +static int fd_org_solana_sealevel_v2_FixtureMetadata_verify_table(flatcc_table_verifier_descriptor_t *td); + +static int fd_org_solana_sealevel_v2_FixtureMetadata_verify_table(flatcc_table_verifier_descriptor_t *td) +{ + int ret; + if ((ret = flatcc_verify_string_field(td, 0, 1) /* fn_entrypoint */)) return ret; + return flatcc_verify_ok; +} + +static inline int fd_org_solana_sealevel_v2_FixtureMetadata_verify_as_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_FixtureMetadata_identifier, &fd_org_solana_sealevel_v2_FixtureMetadata_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_FixtureMetadata_verify_as_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_FixtureMetadata_identifier, &fd_org_solana_sealevel_v2_FixtureMetadata_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_FixtureMetadata_verify_as_typed_root(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fd_org_solana_sealevel_v2_FixtureMetadata_type_identifier, &fd_org_solana_sealevel_v2_FixtureMetadata_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_FixtureMetadata_verify_as_typed_root_with_size(const void *buf, size_t bufsiz) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fd_org_solana_sealevel_v2_FixtureMetadata_type_identifier, &fd_org_solana_sealevel_v2_FixtureMetadata_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_FixtureMetadata_verify_as_root_with_identifier(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_table_as_root(buf, bufsiz, fid, &fd_org_solana_sealevel_v2_FixtureMetadata_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_FixtureMetadata_verify_as_root_with_identifier_and_size(const void *buf, size_t bufsiz, const char *fid) +{ + return flatcc_verify_table_as_root_with_size(buf, bufsiz, fid, &fd_org_solana_sealevel_v2_FixtureMetadata_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_FixtureMetadata_verify_as_root_with_type_hash(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_table_as_typed_root(buf, bufsiz, thash, &fd_org_solana_sealevel_v2_FixtureMetadata_verify_table); +} + +static inline int fd_org_solana_sealevel_v2_FixtureMetadata_verify_as_root_with_type_hash_and_size(const void *buf, size_t bufsiz, flatbuffers_thash_t thash) +{ + return flatcc_verify_table_as_typed_root_with_size(buf, bufsiz, thash, &fd_org_solana_sealevel_v2_FixtureMetadata_verify_table); +} + +#include "flatcc/flatcc_epilogue.h" +#endif /* METADATA_VERIFIER_H */ + +#pragma GCC diagnostic pop