1ef456c07c1738f624e95259878d41305129e64d9Brian Duddie// automatically generated by the FlatBuffers compiler, do not modify 2ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 3ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 4ef456c07c1738f624e95259878d41305129e64d9Brian Duddie#ifndef FLATBUFFERS_GENERATED_HOSTMESSAGES_CHRE_FBS_H_ 5ef456c07c1738f624e95259878d41305129e64d9Brian Duddie#define FLATBUFFERS_GENERATED_HOSTMESSAGES_CHRE_FBS_H_ 6ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 7ef456c07c1738f624e95259878d41305129e64d9Brian Duddie#include "flatbuffers/flatbuffers.h" 8ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 9ef456c07c1738f624e95259878d41305129e64d9Brian Duddienamespace chre { 10ef456c07c1738f624e95259878d41305129e64d9Brian Duddienamespace fbs { 11ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 12ef456c07c1738f624e95259878d41305129e64d9Brian Duddiestruct NanoappMessage; 13ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 147621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddiestruct HubInfoRequest; 157621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie 167621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddiestruct HubInfoResponse; 177621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie 18a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddiestruct NanoappListRequest; 19a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie 20a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddiestruct NanoappListEntry; 21a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie 22a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddiestruct NanoappListResponse; 23a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie 2447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddiestruct LoadNanoappRequest; 2547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie 2647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddiestruct LoadNanoappResponse; 2747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie 28f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddiestruct HostAddress; 29f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie 30ef456c07c1738f624e95259878d41305129e64d9Brian Duddiestruct MessageContainer; 31ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 32ef456c07c1738f624e95259878d41305129e64d9Brian Duddie/// A union that joins together all possible messages. Note that in FlatBuffers, 33ef456c07c1738f624e95259878d41305129e64d9Brian Duddie/// unions have an implicit type 34ef456c07c1738f624e95259878d41305129e64d9Brian Duddieenum class ChreMessage : uint8_t { 35ef456c07c1738f624e95259878d41305129e64d9Brian Duddie NONE = 0, 36ef456c07c1738f624e95259878d41305129e64d9Brian Duddie NanoappMessage = 1, 377621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie HubInfoRequest = 2, 387621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie HubInfoResponse = 3, 39a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie NanoappListRequest = 4, 40a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie NanoappListResponse = 5, 4147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie LoadNanoappRequest = 6, 4247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie LoadNanoappResponse = 7, 43ef456c07c1738f624e95259878d41305129e64d9Brian Duddie MIN = NONE, 4447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie MAX = LoadNanoappResponse 45ef456c07c1738f624e95259878d41305129e64d9Brian Duddie}; 46ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 47ef456c07c1738f624e95259878d41305129e64d9Brian Duddieinline const char **EnumNamesChreMessage() { 48ef456c07c1738f624e95259878d41305129e64d9Brian Duddie static const char *names[] = { 49ef456c07c1738f624e95259878d41305129e64d9Brian Duddie "NONE", 50ef456c07c1738f624e95259878d41305129e64d9Brian Duddie "NanoappMessage", 517621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie "HubInfoRequest", 527621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie "HubInfoResponse", 53a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie "NanoappListRequest", 54a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie "NanoappListResponse", 5547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie "LoadNanoappRequest", 5647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie "LoadNanoappResponse", 57ef456c07c1738f624e95259878d41305129e64d9Brian Duddie nullptr 58ef456c07c1738f624e95259878d41305129e64d9Brian Duddie }; 59ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return names; 60ef456c07c1738f624e95259878d41305129e64d9Brian Duddie} 61ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 62ef456c07c1738f624e95259878d41305129e64d9Brian Duddieinline const char *EnumNameChreMessage(ChreMessage e) { 63ef456c07c1738f624e95259878d41305129e64d9Brian Duddie const size_t index = static_cast<int>(e); 64ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return EnumNamesChreMessage()[index]; 65ef456c07c1738f624e95259878d41305129e64d9Brian Duddie} 66ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 67ef456c07c1738f624e95259878d41305129e64d9Brian Duddietemplate<typename T> struct ChreMessageTraits { 68ef456c07c1738f624e95259878d41305129e64d9Brian Duddie static const ChreMessage enum_value = ChreMessage::NONE; 69ef456c07c1738f624e95259878d41305129e64d9Brian Duddie}; 70ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 71ef456c07c1738f624e95259878d41305129e64d9Brian Duddietemplate<> struct ChreMessageTraits<NanoappMessage> { 72ef456c07c1738f624e95259878d41305129e64d9Brian Duddie static const ChreMessage enum_value = ChreMessage::NanoappMessage; 73ef456c07c1738f624e95259878d41305129e64d9Brian Duddie}; 74ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 757621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddietemplate<> struct ChreMessageTraits<HubInfoRequest> { 767621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie static const ChreMessage enum_value = ChreMessage::HubInfoRequest; 777621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie}; 787621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie 797621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddietemplate<> struct ChreMessageTraits<HubInfoResponse> { 807621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie static const ChreMessage enum_value = ChreMessage::HubInfoResponse; 817621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie}; 827621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie 83a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddietemplate<> struct ChreMessageTraits<NanoappListRequest> { 84a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie static const ChreMessage enum_value = ChreMessage::NanoappListRequest; 85a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie}; 86a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie 87a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddietemplate<> struct ChreMessageTraits<NanoappListResponse> { 88a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie static const ChreMessage enum_value = ChreMessage::NanoappListResponse; 89a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie}; 90a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie 9147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddietemplate<> struct ChreMessageTraits<LoadNanoappRequest> { 9247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie static const ChreMessage enum_value = ChreMessage::LoadNanoappRequest; 9347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie}; 9447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie 9547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddietemplate<> struct ChreMessageTraits<LoadNanoappResponse> { 9647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie static const ChreMessage enum_value = ChreMessage::LoadNanoappResponse; 9747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie}; 9847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie 99ef456c07c1738f624e95259878d41305129e64d9Brian Duddiebool VerifyChreMessage(flatbuffers::Verifier &verifier, const void *obj, ChreMessage type); 100ef456c07c1738f624e95259878d41305129e64d9Brian Duddiebool VerifyChreMessageVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types); 101ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 102f685db3a6b34f8dd6942964ae99836bda87c8134Brian DuddieMANUALLY_ALIGNED_STRUCT(2) HostAddress FLATBUFFERS_FINAL_CLASS { 103f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie private: 104f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie uint16_t client_id_; 105f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie 106f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie public: 107f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie HostAddress() { 108f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie memset(this, 0, sizeof(HostAddress)); 109f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie } 110f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie HostAddress(const HostAddress &_o) { 111f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie memcpy(this, &_o, sizeof(HostAddress)); 112f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie } 113f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie HostAddress(uint16_t _client_id) 114f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie : client_id_(flatbuffers::EndianScalar(_client_id)) { 115f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie } 116f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie uint16_t client_id() const { 117f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie return flatbuffers::EndianScalar(client_id_); 118f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie } 119f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie}; 120f685db3a6b34f8dd6942964ae99836bda87c8134Brian DuddieSTRUCT_END(HostAddress, 2); 121f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie 122ef456c07c1738f624e95259878d41305129e64d9Brian Duddie/// Represents a message sent to/from a nanoapp from/to a client on the host 123ef456c07c1738f624e95259878d41305129e64d9Brian Duddiestruct NanoappMessage FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 124ef456c07c1738f624e95259878d41305129e64d9Brian Duddie enum { 125ef456c07c1738f624e95259878d41305129e64d9Brian Duddie VT_APP_ID = 4, 126ef456c07c1738f624e95259878d41305129e64d9Brian Duddie VT_MESSAGE_TYPE = 6, 127ef456c07c1738f624e95259878d41305129e64d9Brian Duddie VT_HOST_ENDPOINT = 8, 128ef456c07c1738f624e95259878d41305129e64d9Brian Duddie VT_MESSAGE = 10 129ef456c07c1738f624e95259878d41305129e64d9Brian Duddie }; 130ef456c07c1738f624e95259878d41305129e64d9Brian Duddie uint64_t app_id() const { 131ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return GetField<uint64_t>(VT_APP_ID, 0); 132ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 133ef456c07c1738f624e95259878d41305129e64d9Brian Duddie uint32_t message_type() const { 134ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return GetField<uint32_t>(VT_MESSAGE_TYPE, 0); 135ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 1362b46a6783ca5dab54c7bbea0b8cac98ee0e712fcBrian Duddie /// Identifies the host-side endpoint on the host that sent or should receive 1372b46a6783ca5dab54c7bbea0b8cac98ee0e712fcBrian Duddie /// this message. The default value is a special value defined in the HAL and 1382b46a6783ca5dab54c7bbea0b8cac98ee0e712fcBrian Duddie /// elsewhere that indicates that the endpoint is unspecified. 139ef456c07c1738f624e95259878d41305129e64d9Brian Duddie uint16_t host_endpoint() const { 1402b46a6783ca5dab54c7bbea0b8cac98ee0e712fcBrian Duddie return GetField<uint16_t>(VT_HOST_ENDPOINT, 65534); 141ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 142ef456c07c1738f624e95259878d41305129e64d9Brian Duddie /// Vector containing arbitrary application-specific message data 143ef456c07c1738f624e95259878d41305129e64d9Brian Duddie const flatbuffers::Vector<uint8_t> *message() const { 144ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_MESSAGE); 145ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 146ef456c07c1738f624e95259878d41305129e64d9Brian Duddie bool Verify(flatbuffers::Verifier &verifier) const { 147ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return VerifyTableStart(verifier) && 148ef456c07c1738f624e95259878d41305129e64d9Brian Duddie VerifyField<uint64_t>(verifier, VT_APP_ID) && 149ef456c07c1738f624e95259878d41305129e64d9Brian Duddie VerifyField<uint32_t>(verifier, VT_MESSAGE_TYPE) && 150ef456c07c1738f624e95259878d41305129e64d9Brian Duddie VerifyField<uint16_t>(verifier, VT_HOST_ENDPOINT) && 15172833b2fba97751b31b27422d117b05f718760fdBrian Duddie VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_MESSAGE) && 152ef456c07c1738f624e95259878d41305129e64d9Brian Duddie verifier.Verify(message()) && 153ef456c07c1738f624e95259878d41305129e64d9Brian Duddie verifier.EndTable(); 154ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 155ef456c07c1738f624e95259878d41305129e64d9Brian Duddie}; 156ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 157ef456c07c1738f624e95259878d41305129e64d9Brian Duddiestruct NanoappMessageBuilder { 158ef456c07c1738f624e95259878d41305129e64d9Brian Duddie flatbuffers::FlatBufferBuilder &fbb_; 159ef456c07c1738f624e95259878d41305129e64d9Brian Duddie flatbuffers::uoffset_t start_; 160ef456c07c1738f624e95259878d41305129e64d9Brian Duddie void add_app_id(uint64_t app_id) { 161ef456c07c1738f624e95259878d41305129e64d9Brian Duddie fbb_.AddElement<uint64_t>(NanoappMessage::VT_APP_ID, app_id, 0); 162ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 163ef456c07c1738f624e95259878d41305129e64d9Brian Duddie void add_message_type(uint32_t message_type) { 164ef456c07c1738f624e95259878d41305129e64d9Brian Duddie fbb_.AddElement<uint32_t>(NanoappMessage::VT_MESSAGE_TYPE, message_type, 0); 165ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 166ef456c07c1738f624e95259878d41305129e64d9Brian Duddie void add_host_endpoint(uint16_t host_endpoint) { 1672b46a6783ca5dab54c7bbea0b8cac98ee0e712fcBrian Duddie fbb_.AddElement<uint16_t>(NanoappMessage::VT_HOST_ENDPOINT, host_endpoint, 65534); 168ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 169ef456c07c1738f624e95259878d41305129e64d9Brian Duddie void add_message(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> message) { 170ef456c07c1738f624e95259878d41305129e64d9Brian Duddie fbb_.AddOffset(NanoappMessage::VT_MESSAGE, message); 171ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 172ef456c07c1738f624e95259878d41305129e64d9Brian Duddie NanoappMessageBuilder(flatbuffers::FlatBufferBuilder &_fbb) 173ef456c07c1738f624e95259878d41305129e64d9Brian Duddie : fbb_(_fbb) { 174ef456c07c1738f624e95259878d41305129e64d9Brian Duddie start_ = fbb_.StartTable(); 175ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 176ef456c07c1738f624e95259878d41305129e64d9Brian Duddie NanoappMessageBuilder &operator=(const NanoappMessageBuilder &); 177ef456c07c1738f624e95259878d41305129e64d9Brian Duddie flatbuffers::Offset<NanoappMessage> Finish() { 178ef456c07c1738f624e95259878d41305129e64d9Brian Duddie const auto end = fbb_.EndTable(start_, 4); 179ef456c07c1738f624e95259878d41305129e64d9Brian Duddie auto o = flatbuffers::Offset<NanoappMessage>(end); 18072833b2fba97751b31b27422d117b05f718760fdBrian Duddie fbb_.Required(o, NanoappMessage::VT_MESSAGE); 181ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return o; 182ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 183ef456c07c1738f624e95259878d41305129e64d9Brian Duddie}; 184ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 185ef456c07c1738f624e95259878d41305129e64d9Brian Duddieinline flatbuffers::Offset<NanoappMessage> CreateNanoappMessage( 186ef456c07c1738f624e95259878d41305129e64d9Brian Duddie flatbuffers::FlatBufferBuilder &_fbb, 187ef456c07c1738f624e95259878d41305129e64d9Brian Duddie uint64_t app_id = 0, 188ef456c07c1738f624e95259878d41305129e64d9Brian Duddie uint32_t message_type = 0, 1892b46a6783ca5dab54c7bbea0b8cac98ee0e712fcBrian Duddie uint16_t host_endpoint = 65534, 190ef456c07c1738f624e95259878d41305129e64d9Brian Duddie flatbuffers::Offset<flatbuffers::Vector<uint8_t>> message = 0) { 191ef456c07c1738f624e95259878d41305129e64d9Brian Duddie NanoappMessageBuilder builder_(_fbb); 192ef456c07c1738f624e95259878d41305129e64d9Brian Duddie builder_.add_app_id(app_id); 193ef456c07c1738f624e95259878d41305129e64d9Brian Duddie builder_.add_message(message); 194ef456c07c1738f624e95259878d41305129e64d9Brian Duddie builder_.add_message_type(message_type); 195ef456c07c1738f624e95259878d41305129e64d9Brian Duddie builder_.add_host_endpoint(host_endpoint); 196ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return builder_.Finish(); 197ef456c07c1738f624e95259878d41305129e64d9Brian Duddie} 198ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 199ef456c07c1738f624e95259878d41305129e64d9Brian Duddieinline flatbuffers::Offset<NanoappMessage> CreateNanoappMessageDirect( 200ef456c07c1738f624e95259878d41305129e64d9Brian Duddie flatbuffers::FlatBufferBuilder &_fbb, 201ef456c07c1738f624e95259878d41305129e64d9Brian Duddie uint64_t app_id = 0, 202ef456c07c1738f624e95259878d41305129e64d9Brian Duddie uint32_t message_type = 0, 2032b46a6783ca5dab54c7bbea0b8cac98ee0e712fcBrian Duddie uint16_t host_endpoint = 65534, 204ef456c07c1738f624e95259878d41305129e64d9Brian Duddie const std::vector<uint8_t> *message = nullptr) { 205ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return chre::fbs::CreateNanoappMessage( 206ef456c07c1738f624e95259878d41305129e64d9Brian Duddie _fbb, 207ef456c07c1738f624e95259878d41305129e64d9Brian Duddie app_id, 208ef456c07c1738f624e95259878d41305129e64d9Brian Duddie message_type, 209ef456c07c1738f624e95259878d41305129e64d9Brian Duddie host_endpoint, 210ef456c07c1738f624e95259878d41305129e64d9Brian Duddie message ? _fbb.CreateVector<uint8_t>(*message) : 0); 211ef456c07c1738f624e95259878d41305129e64d9Brian Duddie} 212ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 2137621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddiestruct HubInfoRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 2147621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie bool Verify(flatbuffers::Verifier &verifier) const { 2157621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return VerifyTableStart(verifier) && 2167621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie verifier.EndTable(); 2177621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 2187621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie}; 2197621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie 2207621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddiestruct HubInfoRequestBuilder { 2217621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie flatbuffers::FlatBufferBuilder &fbb_; 2227621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie flatbuffers::uoffset_t start_; 2237621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie HubInfoRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) 2247621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie : fbb_(_fbb) { 2257621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie start_ = fbb_.StartTable(); 2267621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 2277621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie HubInfoRequestBuilder &operator=(const HubInfoRequestBuilder &); 2287621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie flatbuffers::Offset<HubInfoRequest> Finish() { 2297621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie const auto end = fbb_.EndTable(start_, 0); 2307621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie auto o = flatbuffers::Offset<HubInfoRequest>(end); 2317621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return o; 2327621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 2337621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie}; 2347621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie 2357621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddieinline flatbuffers::Offset<HubInfoRequest> CreateHubInfoRequest( 2367621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie flatbuffers::FlatBufferBuilder &_fbb) { 2377621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie HubInfoRequestBuilder builder_(_fbb); 2387621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return builder_.Finish(); 2397621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie} 2407621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie 2417621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddiestruct HubInfoResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 2427621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie enum { 2437621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VT_NAME = 4, 2447621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VT_VENDOR = 6, 2457621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VT_TOOLCHAIN = 8, 2467621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VT_PLATFORM_VERSION = 10, 2477621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VT_TOOLCHAIN_VERSION = 12, 2487621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VT_PEAK_MIPS = 14, 2497621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VT_STOPPED_POWER = 16, 2507621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VT_SLEEP_POWER = 18, 2517621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VT_PEAK_POWER = 20, 2527621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VT_MAX_MSG_LEN = 22, 2537621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VT_PLATFORM_ID = 24, 2547621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VT_CHRE_PLATFORM_VERSION = 26 2557621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie }; 2567621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie /// The name of the hub. Nominally a UTF-8 string, but note that we're not 2577621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie /// using the built-in "string" data type from FlatBuffers here, because the 2587621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie /// generated C++ uses std::string which is not well-supported in CHRE. This 2597621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie /// applies for vendor and toolchain as well. 2607621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie const flatbuffers::Vector<int8_t> *name() const { 2617621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return GetPointer<const flatbuffers::Vector<int8_t> *>(VT_NAME); 2627621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 2637621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie const flatbuffers::Vector<int8_t> *vendor() const { 2647621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return GetPointer<const flatbuffers::Vector<int8_t> *>(VT_VENDOR); 2657621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 2667621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie const flatbuffers::Vector<int8_t> *toolchain() const { 2677621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return GetPointer<const flatbuffers::Vector<int8_t> *>(VT_TOOLCHAIN); 2687621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 2697621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie /// Legacy platform version reported in the HAL; semantics not strictly 2707621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie /// defined 2717621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie uint32_t platform_version() const { 2727621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return GetField<uint32_t>(VT_PLATFORM_VERSION, 0); 2737621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 2747621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie /// Toolchain version reported in the HAL; semantics not strictly defined 2757621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie uint32_t toolchain_version() const { 2767621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return GetField<uint32_t>(VT_TOOLCHAIN_VERSION, 0); 2777621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 2787621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie float peak_mips() const { 2797621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return GetField<float>(VT_PEAK_MIPS, 0.0f); 2807621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 2817621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie float stopped_power() const { 2827621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return GetField<float>(VT_STOPPED_POWER, 0.0f); 2837621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 2847621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie float sleep_power() const { 2857621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return GetField<float>(VT_SLEEP_POWER, 0.0f); 2867621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 2877621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie float peak_power() const { 2887621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return GetField<float>(VT_PEAK_POWER, 0.0f); 2897621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 2907621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie /// Maximum size message that can be sent to a nanoapp 2917621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie uint32_t max_msg_len() const { 2927621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return GetField<uint32_t>(VT_MAX_MSG_LEN, 0); 2937621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 2947621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie /// @see chreGetPlatformId() 2957621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie uint64_t platform_id() const { 2967621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return GetField<uint64_t>(VT_PLATFORM_ID, 0); 2977621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 2987621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie /// @see chreGetVersion() 2997621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie uint32_t chre_platform_version() const { 3007621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return GetField<uint32_t>(VT_CHRE_PLATFORM_VERSION, 0); 3017621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3027621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie bool Verify(flatbuffers::Verifier &verifier) const { 3037621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return VerifyTableStart(verifier) && 3047621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VerifyField<flatbuffers::uoffset_t>(verifier, VT_NAME) && 3057621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie verifier.Verify(name()) && 3067621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VerifyField<flatbuffers::uoffset_t>(verifier, VT_VENDOR) && 3077621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie verifier.Verify(vendor()) && 3087621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VerifyField<flatbuffers::uoffset_t>(verifier, VT_TOOLCHAIN) && 3097621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie verifier.Verify(toolchain()) && 3107621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VerifyField<uint32_t>(verifier, VT_PLATFORM_VERSION) && 3117621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VerifyField<uint32_t>(verifier, VT_TOOLCHAIN_VERSION) && 3127621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VerifyField<float>(verifier, VT_PEAK_MIPS) && 3137621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VerifyField<float>(verifier, VT_STOPPED_POWER) && 3147621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VerifyField<float>(verifier, VT_SLEEP_POWER) && 3157621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VerifyField<float>(verifier, VT_PEAK_POWER) && 3167621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VerifyField<uint32_t>(verifier, VT_MAX_MSG_LEN) && 3177621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VerifyField<uint64_t>(verifier, VT_PLATFORM_ID) && 3187621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VerifyField<uint32_t>(verifier, VT_CHRE_PLATFORM_VERSION) && 3197621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie verifier.EndTable(); 3207621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3217621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie}; 3227621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie 3237621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddiestruct HubInfoResponseBuilder { 3247621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie flatbuffers::FlatBufferBuilder &fbb_; 3257621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie flatbuffers::uoffset_t start_; 3267621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie void add_name(flatbuffers::Offset<flatbuffers::Vector<int8_t>> name) { 3277621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie fbb_.AddOffset(HubInfoResponse::VT_NAME, name); 3287621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3297621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie void add_vendor(flatbuffers::Offset<flatbuffers::Vector<int8_t>> vendor) { 3307621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie fbb_.AddOffset(HubInfoResponse::VT_VENDOR, vendor); 3317621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3327621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie void add_toolchain(flatbuffers::Offset<flatbuffers::Vector<int8_t>> toolchain) { 3337621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie fbb_.AddOffset(HubInfoResponse::VT_TOOLCHAIN, toolchain); 3347621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3357621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie void add_platform_version(uint32_t platform_version) { 3367621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie fbb_.AddElement<uint32_t>(HubInfoResponse::VT_PLATFORM_VERSION, platform_version, 0); 3377621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3387621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie void add_toolchain_version(uint32_t toolchain_version) { 3397621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie fbb_.AddElement<uint32_t>(HubInfoResponse::VT_TOOLCHAIN_VERSION, toolchain_version, 0); 3407621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3417621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie void add_peak_mips(float peak_mips) { 3427621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie fbb_.AddElement<float>(HubInfoResponse::VT_PEAK_MIPS, peak_mips, 0.0f); 3437621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3447621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie void add_stopped_power(float stopped_power) { 3457621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie fbb_.AddElement<float>(HubInfoResponse::VT_STOPPED_POWER, stopped_power, 0.0f); 3467621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3477621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie void add_sleep_power(float sleep_power) { 3487621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie fbb_.AddElement<float>(HubInfoResponse::VT_SLEEP_POWER, sleep_power, 0.0f); 3497621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3507621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie void add_peak_power(float peak_power) { 3517621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie fbb_.AddElement<float>(HubInfoResponse::VT_PEAK_POWER, peak_power, 0.0f); 3527621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3537621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie void add_max_msg_len(uint32_t max_msg_len) { 3547621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie fbb_.AddElement<uint32_t>(HubInfoResponse::VT_MAX_MSG_LEN, max_msg_len, 0); 3557621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3567621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie void add_platform_id(uint64_t platform_id) { 3577621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie fbb_.AddElement<uint64_t>(HubInfoResponse::VT_PLATFORM_ID, platform_id, 0); 3587621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3597621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie void add_chre_platform_version(uint32_t chre_platform_version) { 3607621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie fbb_.AddElement<uint32_t>(HubInfoResponse::VT_CHRE_PLATFORM_VERSION, chre_platform_version, 0); 3617621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3627621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie HubInfoResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) 3637621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie : fbb_(_fbb) { 3647621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie start_ = fbb_.StartTable(); 3657621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3667621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie HubInfoResponseBuilder &operator=(const HubInfoResponseBuilder &); 3677621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie flatbuffers::Offset<HubInfoResponse> Finish() { 3687621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie const auto end = fbb_.EndTable(start_, 12); 3697621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie auto o = flatbuffers::Offset<HubInfoResponse>(end); 3707621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return o; 3717621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 3727621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie}; 3737621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie 3747621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddieinline flatbuffers::Offset<HubInfoResponse> CreateHubInfoResponse( 3757621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie flatbuffers::FlatBufferBuilder &_fbb, 3767621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie flatbuffers::Offset<flatbuffers::Vector<int8_t>> name = 0, 3777621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie flatbuffers::Offset<flatbuffers::Vector<int8_t>> vendor = 0, 3787621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie flatbuffers::Offset<flatbuffers::Vector<int8_t>> toolchain = 0, 3797621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie uint32_t platform_version = 0, 3807621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie uint32_t toolchain_version = 0, 3817621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie float peak_mips = 0.0f, 3827621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie float stopped_power = 0.0f, 3837621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie float sleep_power = 0.0f, 3847621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie float peak_power = 0.0f, 3857621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie uint32_t max_msg_len = 0, 3867621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie uint64_t platform_id = 0, 3877621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie uint32_t chre_platform_version = 0) { 3887621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie HubInfoResponseBuilder builder_(_fbb); 3897621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie builder_.add_platform_id(platform_id); 3907621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie builder_.add_chre_platform_version(chre_platform_version); 3917621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie builder_.add_max_msg_len(max_msg_len); 3927621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie builder_.add_peak_power(peak_power); 3937621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie builder_.add_sleep_power(sleep_power); 3947621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie builder_.add_stopped_power(stopped_power); 3957621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie builder_.add_peak_mips(peak_mips); 3967621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie builder_.add_toolchain_version(toolchain_version); 3977621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie builder_.add_platform_version(platform_version); 3987621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie builder_.add_toolchain(toolchain); 3997621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie builder_.add_vendor(vendor); 4007621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie builder_.add_name(name); 4017621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return builder_.Finish(); 4027621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie} 4037621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie 4047621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddieinline flatbuffers::Offset<HubInfoResponse> CreateHubInfoResponseDirect( 4057621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie flatbuffers::FlatBufferBuilder &_fbb, 4067621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie const std::vector<int8_t> *name = nullptr, 4077621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie const std::vector<int8_t> *vendor = nullptr, 4087621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie const std::vector<int8_t> *toolchain = nullptr, 4097621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie uint32_t platform_version = 0, 4107621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie uint32_t toolchain_version = 0, 4117621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie float peak_mips = 0.0f, 4127621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie float stopped_power = 0.0f, 4137621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie float sleep_power = 0.0f, 4147621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie float peak_power = 0.0f, 4157621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie uint32_t max_msg_len = 0, 4167621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie uint64_t platform_id = 0, 4177621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie uint32_t chre_platform_version = 0) { 4187621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return chre::fbs::CreateHubInfoResponse( 4197621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie _fbb, 4207621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie name ? _fbb.CreateVector<int8_t>(*name) : 0, 4217621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie vendor ? _fbb.CreateVector<int8_t>(*vendor) : 0, 4227621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie toolchain ? _fbb.CreateVector<int8_t>(*toolchain) : 0, 4237621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie platform_version, 4247621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie toolchain_version, 4257621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie peak_mips, 4267621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie stopped_power, 4277621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie sleep_power, 4287621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie peak_power, 4297621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie max_msg_len, 4307621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie platform_id, 4317621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie chre_platform_version); 4327621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie} 4337621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie 434a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddiestruct NanoappListRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 435a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie bool Verify(flatbuffers::Verifier &verifier) const { 436a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return VerifyTableStart(verifier) && 437a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie verifier.EndTable(); 438a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 439a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie}; 440a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie 441a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddiestruct NanoappListRequestBuilder { 442a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie flatbuffers::FlatBufferBuilder &fbb_; 443a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie flatbuffers::uoffset_t start_; 444a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie NanoappListRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) 445a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie : fbb_(_fbb) { 446a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie start_ = fbb_.StartTable(); 447a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 448a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie NanoappListRequestBuilder &operator=(const NanoappListRequestBuilder &); 449a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie flatbuffers::Offset<NanoappListRequest> Finish() { 450a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie const auto end = fbb_.EndTable(start_, 0); 451a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie auto o = flatbuffers::Offset<NanoappListRequest>(end); 452a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return o; 453a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 454a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie}; 455a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie 456a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddieinline flatbuffers::Offset<NanoappListRequest> CreateNanoappListRequest( 457a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie flatbuffers::FlatBufferBuilder &_fbb) { 458a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie NanoappListRequestBuilder builder_(_fbb); 459a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return builder_.Finish(); 460a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie} 461a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie 462a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddiestruct NanoappListEntry FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 463a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie enum { 464a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie VT_APP_ID = 4, 465a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie VT_VERSION = 6, 466a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie VT_ENABLED = 8, 467a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie VT_IS_SYSTEM = 10 468a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie }; 469a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie uint64_t app_id() const { 470a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return GetField<uint64_t>(VT_APP_ID, 0); 471a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 472a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie uint32_t version() const { 473a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return GetField<uint32_t>(VT_VERSION, 0); 474a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 475a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie bool enabled() const { 476a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return GetField<uint8_t>(VT_ENABLED, 1) != 0; 477a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 478a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie /// Whether the nanoapp is a pre-loaded "system" nanoapp, i.e. one that should 479a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie /// not show up in the list of nanoapps in the context hub HAL. System 480a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie /// nanoapps are typically used to leverage CHRE for some device functionality 481a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie /// and do not interact via the context hub HAL. 482a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie bool is_system() const { 483a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return GetField<uint8_t>(VT_IS_SYSTEM, 0) != 0; 484a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 485a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie bool Verify(flatbuffers::Verifier &verifier) const { 486a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return VerifyTableStart(verifier) && 487a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie VerifyField<uint64_t>(verifier, VT_APP_ID) && 488a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie VerifyField<uint32_t>(verifier, VT_VERSION) && 489a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie VerifyField<uint8_t>(verifier, VT_ENABLED) && 490a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie VerifyField<uint8_t>(verifier, VT_IS_SYSTEM) && 491a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie verifier.EndTable(); 492a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 493a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie}; 494a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie 495a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddiestruct NanoappListEntryBuilder { 496a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie flatbuffers::FlatBufferBuilder &fbb_; 497a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie flatbuffers::uoffset_t start_; 498a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie void add_app_id(uint64_t app_id) { 499a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie fbb_.AddElement<uint64_t>(NanoappListEntry::VT_APP_ID, app_id, 0); 500a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 501a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie void add_version(uint32_t version) { 502a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie fbb_.AddElement<uint32_t>(NanoappListEntry::VT_VERSION, version, 0); 503a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 504a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie void add_enabled(bool enabled) { 505a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie fbb_.AddElement<uint8_t>(NanoappListEntry::VT_ENABLED, static_cast<uint8_t>(enabled), 1); 506a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 507a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie void add_is_system(bool is_system) { 508a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie fbb_.AddElement<uint8_t>(NanoappListEntry::VT_IS_SYSTEM, static_cast<uint8_t>(is_system), 0); 509a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 510a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie NanoappListEntryBuilder(flatbuffers::FlatBufferBuilder &_fbb) 511a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie : fbb_(_fbb) { 512a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie start_ = fbb_.StartTable(); 513a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 514a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie NanoappListEntryBuilder &operator=(const NanoappListEntryBuilder &); 515a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie flatbuffers::Offset<NanoappListEntry> Finish() { 516a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie const auto end = fbb_.EndTable(start_, 4); 517a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie auto o = flatbuffers::Offset<NanoappListEntry>(end); 518a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return o; 519a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 520a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie}; 521a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie 522a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddieinline flatbuffers::Offset<NanoappListEntry> CreateNanoappListEntry( 523a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie flatbuffers::FlatBufferBuilder &_fbb, 524a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie uint64_t app_id = 0, 525a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie uint32_t version = 0, 526a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie bool enabled = true, 527a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie bool is_system = false) { 528a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie NanoappListEntryBuilder builder_(_fbb); 529a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie builder_.add_app_id(app_id); 530a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie builder_.add_version(version); 531a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie builder_.add_is_system(is_system); 532a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie builder_.add_enabled(enabled); 533a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return builder_.Finish(); 534a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie} 535a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie 536a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddiestruct NanoappListResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 537a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie enum { 538a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie VT_NANOAPPS = 4 539a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie }; 540a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie const flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>> *nanoapps() const { 541a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return GetPointer<const flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>> *>(VT_NANOAPPS); 542a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 543a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie bool Verify(flatbuffers::Verifier &verifier) const { 544a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return VerifyTableStart(verifier) && 545a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_NANOAPPS) && 546a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie verifier.Verify(nanoapps()) && 547a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie verifier.VerifyVectorOfTables(nanoapps()) && 548a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie verifier.EndTable(); 549a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 550a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie}; 551a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie 552a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddiestruct NanoappListResponseBuilder { 553a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie flatbuffers::FlatBufferBuilder &fbb_; 554a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie flatbuffers::uoffset_t start_; 555a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie void add_nanoapps(flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>>> nanoapps) { 556a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie fbb_.AddOffset(NanoappListResponse::VT_NANOAPPS, nanoapps); 557a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 558a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie NanoappListResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) 559a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie : fbb_(_fbb) { 560a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie start_ = fbb_.StartTable(); 561a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 562a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie NanoappListResponseBuilder &operator=(const NanoappListResponseBuilder &); 563a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie flatbuffers::Offset<NanoappListResponse> Finish() { 564a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie const auto end = fbb_.EndTable(start_, 1); 565a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie auto o = flatbuffers::Offset<NanoappListResponse>(end); 566a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie fbb_.Required(o, NanoappListResponse::VT_NANOAPPS); 567a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return o; 568a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 569a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie}; 570a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie 571a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddieinline flatbuffers::Offset<NanoappListResponse> CreateNanoappListResponse( 572a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie flatbuffers::FlatBufferBuilder &_fbb, 573a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie flatbuffers::Offset<flatbuffers::Vector<flatbuffers::Offset<NanoappListEntry>>> nanoapps = 0) { 574a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie NanoappListResponseBuilder builder_(_fbb); 575a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie builder_.add_nanoapps(nanoapps); 576a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return builder_.Finish(); 577a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie} 578a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie 579a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddieinline flatbuffers::Offset<NanoappListResponse> CreateNanoappListResponseDirect( 580a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie flatbuffers::FlatBufferBuilder &_fbb, 581a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie const std::vector<flatbuffers::Offset<NanoappListEntry>> *nanoapps = nullptr) { 582a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return chre::fbs::CreateNanoappListResponse( 583a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie _fbb, 584a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie nanoapps ? _fbb.CreateVector<flatbuffers::Offset<NanoappListEntry>>(*nanoapps) : 0); 585a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie} 586a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie 58747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddiestruct LoadNanoappRequest FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 58847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie enum { 58947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie VT_TRANSACTION_ID = 4, 59047a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie VT_APP_ID = 6, 59147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie VT_APP_VERSION = 8, 59247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie VT_TARGET_API_VERSION = 10, 59347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie VT_APP_BINARY = 12 59447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie }; 59547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie uint32_t transaction_id() const { 59647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return GetField<uint32_t>(VT_TRANSACTION_ID, 0); 59747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 59847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie uint64_t app_id() const { 59947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return GetField<uint64_t>(VT_APP_ID, 0); 60047a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 60147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie uint32_t app_version() const { 60247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return GetField<uint32_t>(VT_APP_VERSION, 0); 60347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 60447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie uint32_t target_api_version() const { 60547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return GetField<uint32_t>(VT_TARGET_API_VERSION, 0); 60647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 60747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie const flatbuffers::Vector<uint8_t> *app_binary() const { 60847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return GetPointer<const flatbuffers::Vector<uint8_t> *>(VT_APP_BINARY); 60947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 61047a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie bool Verify(flatbuffers::Verifier &verifier) const { 61147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return VerifyTableStart(verifier) && 61247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie VerifyField<uint32_t>(verifier, VT_TRANSACTION_ID) && 61347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie VerifyField<uint64_t>(verifier, VT_APP_ID) && 61447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie VerifyField<uint32_t>(verifier, VT_APP_VERSION) && 61547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie VerifyField<uint32_t>(verifier, VT_TARGET_API_VERSION) && 61647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_APP_BINARY) && 61747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie verifier.Verify(app_binary()) && 61847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie verifier.EndTable(); 61947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 62047a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie}; 62147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie 62247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddiestruct LoadNanoappRequestBuilder { 62347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie flatbuffers::FlatBufferBuilder &fbb_; 62447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie flatbuffers::uoffset_t start_; 62547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie void add_transaction_id(uint32_t transaction_id) { 62647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie fbb_.AddElement<uint32_t>(LoadNanoappRequest::VT_TRANSACTION_ID, transaction_id, 0); 62747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 62847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie void add_app_id(uint64_t app_id) { 62947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie fbb_.AddElement<uint64_t>(LoadNanoappRequest::VT_APP_ID, app_id, 0); 63047a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 63147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie void add_app_version(uint32_t app_version) { 63247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie fbb_.AddElement<uint32_t>(LoadNanoappRequest::VT_APP_VERSION, app_version, 0); 63347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 63447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie void add_target_api_version(uint32_t target_api_version) { 63547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie fbb_.AddElement<uint32_t>(LoadNanoappRequest::VT_TARGET_API_VERSION, target_api_version, 0); 63647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 63747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie void add_app_binary(flatbuffers::Offset<flatbuffers::Vector<uint8_t>> app_binary) { 63847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie fbb_.AddOffset(LoadNanoappRequest::VT_APP_BINARY, app_binary); 63947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 64047a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie LoadNanoappRequestBuilder(flatbuffers::FlatBufferBuilder &_fbb) 64147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie : fbb_(_fbb) { 64247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie start_ = fbb_.StartTable(); 64347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 64447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie LoadNanoappRequestBuilder &operator=(const LoadNanoappRequestBuilder &); 64547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie flatbuffers::Offset<LoadNanoappRequest> Finish() { 64647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie const auto end = fbb_.EndTable(start_, 5); 64747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie auto o = flatbuffers::Offset<LoadNanoappRequest>(end); 64847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie fbb_.Required(o, LoadNanoappRequest::VT_APP_BINARY); 64947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return o; 65047a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 65147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie}; 65247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie 65347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddieinline flatbuffers::Offset<LoadNanoappRequest> CreateLoadNanoappRequest( 65447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie flatbuffers::FlatBufferBuilder &_fbb, 65547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie uint32_t transaction_id = 0, 65647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie uint64_t app_id = 0, 65747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie uint32_t app_version = 0, 65847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie uint32_t target_api_version = 0, 65947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie flatbuffers::Offset<flatbuffers::Vector<uint8_t>> app_binary = 0) { 66047a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie LoadNanoappRequestBuilder builder_(_fbb); 66147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie builder_.add_app_id(app_id); 66247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie builder_.add_app_binary(app_binary); 66347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie builder_.add_target_api_version(target_api_version); 66447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie builder_.add_app_version(app_version); 66547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie builder_.add_transaction_id(transaction_id); 66647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return builder_.Finish(); 66747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie} 66847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie 66947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddieinline flatbuffers::Offset<LoadNanoappRequest> CreateLoadNanoappRequestDirect( 67047a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie flatbuffers::FlatBufferBuilder &_fbb, 67147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie uint32_t transaction_id = 0, 67247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie uint64_t app_id = 0, 67347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie uint32_t app_version = 0, 67447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie uint32_t target_api_version = 0, 67547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie const std::vector<uint8_t> *app_binary = nullptr) { 67647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return chre::fbs::CreateLoadNanoappRequest( 67747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie _fbb, 67847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie transaction_id, 67947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie app_id, 68047a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie app_version, 68147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie target_api_version, 68247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie app_binary ? _fbb.CreateVector<uint8_t>(*app_binary) : 0); 68347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie} 68447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie 68547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddiestruct LoadNanoappResponse FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 68647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie enum { 68747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie VT_TRANSACTION_ID = 4, 68847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie VT_SUCCESS = 6 68947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie }; 69047a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie uint32_t transaction_id() const { 69147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return GetField<uint32_t>(VT_TRANSACTION_ID, 0); 69247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 69347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie bool success() const { 69447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return GetField<uint8_t>(VT_SUCCESS, 0) != 0; 69547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 69647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie bool Verify(flatbuffers::Verifier &verifier) const { 69747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return VerifyTableStart(verifier) && 69847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie VerifyField<uint32_t>(verifier, VT_TRANSACTION_ID) && 69947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie VerifyField<uint8_t>(verifier, VT_SUCCESS) && 70047a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie verifier.EndTable(); 70147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 70247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie}; 70347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie 70447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddiestruct LoadNanoappResponseBuilder { 70547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie flatbuffers::FlatBufferBuilder &fbb_; 70647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie flatbuffers::uoffset_t start_; 70747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie void add_transaction_id(uint32_t transaction_id) { 70847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie fbb_.AddElement<uint32_t>(LoadNanoappResponse::VT_TRANSACTION_ID, transaction_id, 0); 70947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 71047a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie void add_success(bool success) { 71147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie fbb_.AddElement<uint8_t>(LoadNanoappResponse::VT_SUCCESS, static_cast<uint8_t>(success), 0); 71247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 71347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie LoadNanoappResponseBuilder(flatbuffers::FlatBufferBuilder &_fbb) 71447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie : fbb_(_fbb) { 71547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie start_ = fbb_.StartTable(); 71647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 71747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie LoadNanoappResponseBuilder &operator=(const LoadNanoappResponseBuilder &); 71847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie flatbuffers::Offset<LoadNanoappResponse> Finish() { 71947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie const auto end = fbb_.EndTable(start_, 2); 72047a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie auto o = flatbuffers::Offset<LoadNanoappResponse>(end); 72147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return o; 72247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 72347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie}; 72447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie 72547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddieinline flatbuffers::Offset<LoadNanoappResponse> CreateLoadNanoappResponse( 72647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie flatbuffers::FlatBufferBuilder &_fbb, 72747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie uint32_t transaction_id = 0, 72847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie bool success = false) { 72947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie LoadNanoappResponseBuilder builder_(_fbb); 73047a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie builder_.add_transaction_id(transaction_id); 73147a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie builder_.add_success(success); 73247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return builder_.Finish(); 73347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie} 73447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie 735ef456c07c1738f624e95259878d41305129e64d9Brian Duddie/// The top-level container that encapsulates all possible messages. Note that 736ef456c07c1738f624e95259878d41305129e64d9Brian Duddie/// per FlatBuffers requirements, we can't use a union as the top-level structure 737ef456c07c1738f624e95259878d41305129e64d9Brian Duddie/// (root type), so we must wrap it in a table. 738ef456c07c1738f624e95259878d41305129e64d9Brian Duddiestruct MessageContainer FLATBUFFERS_FINAL_CLASS : private flatbuffers::Table { 739ef456c07c1738f624e95259878d41305129e64d9Brian Duddie enum { 740ef456c07c1738f624e95259878d41305129e64d9Brian Duddie VT_MESSAGE_TYPE = 4, 741f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie VT_MESSAGE = 6, 742f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie VT_HOST_ADDR = 8 743ef456c07c1738f624e95259878d41305129e64d9Brian Duddie }; 744ef456c07c1738f624e95259878d41305129e64d9Brian Duddie ChreMessage message_type() const { 745ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return static_cast<ChreMessage>(GetField<uint8_t>(VT_MESSAGE_TYPE, 0)); 746ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 747ef456c07c1738f624e95259878d41305129e64d9Brian Duddie const void *message() const { 748ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return GetPointer<const void *>(VT_MESSAGE); 749ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 750f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie /// The originating or destination client ID on the host side, used to direct 751f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie /// responses only to the client that sent the request. Although initially 752f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie /// populated by the requesting client, this is enforced to be the correct 753f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie /// value by the entity guarding access to CHRE. 754f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie /// This is wrapped in a struct to ensure that it is always included when 755f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie /// encoding the message, so it can be mutated by the host daemon. 756f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie const HostAddress *host_addr() const { 757f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie return GetStruct<const HostAddress *>(VT_HOST_ADDR); 758f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie } 759ef456c07c1738f624e95259878d41305129e64d9Brian Duddie bool Verify(flatbuffers::Verifier &verifier) const { 760ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return VerifyTableStart(verifier) && 761ef456c07c1738f624e95259878d41305129e64d9Brian Duddie VerifyField<uint8_t>(verifier, VT_MESSAGE_TYPE) && 7627621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie VerifyFieldRequired<flatbuffers::uoffset_t>(verifier, VT_MESSAGE) && 763ef456c07c1738f624e95259878d41305129e64d9Brian Duddie VerifyChreMessage(verifier, message(), message_type()) && 764f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie VerifyFieldRequired<HostAddress>(verifier, VT_HOST_ADDR) && 765ef456c07c1738f624e95259878d41305129e64d9Brian Duddie verifier.EndTable(); 766ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 767ef456c07c1738f624e95259878d41305129e64d9Brian Duddie}; 768ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 769ef456c07c1738f624e95259878d41305129e64d9Brian Duddiestruct MessageContainerBuilder { 770ef456c07c1738f624e95259878d41305129e64d9Brian Duddie flatbuffers::FlatBufferBuilder &fbb_; 771ef456c07c1738f624e95259878d41305129e64d9Brian Duddie flatbuffers::uoffset_t start_; 772ef456c07c1738f624e95259878d41305129e64d9Brian Duddie void add_message_type(ChreMessage message_type) { 773ef456c07c1738f624e95259878d41305129e64d9Brian Duddie fbb_.AddElement<uint8_t>(MessageContainer::VT_MESSAGE_TYPE, static_cast<uint8_t>(message_type), 0); 774ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 775ef456c07c1738f624e95259878d41305129e64d9Brian Duddie void add_message(flatbuffers::Offset<void> message) { 776ef456c07c1738f624e95259878d41305129e64d9Brian Duddie fbb_.AddOffset(MessageContainer::VT_MESSAGE, message); 777ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 778f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie void add_host_addr(const HostAddress *host_addr) { 779f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie fbb_.AddStruct(MessageContainer::VT_HOST_ADDR, host_addr); 780f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie } 781ef456c07c1738f624e95259878d41305129e64d9Brian Duddie MessageContainerBuilder(flatbuffers::FlatBufferBuilder &_fbb) 782ef456c07c1738f624e95259878d41305129e64d9Brian Duddie : fbb_(_fbb) { 783ef456c07c1738f624e95259878d41305129e64d9Brian Duddie start_ = fbb_.StartTable(); 784ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 785ef456c07c1738f624e95259878d41305129e64d9Brian Duddie MessageContainerBuilder &operator=(const MessageContainerBuilder &); 786ef456c07c1738f624e95259878d41305129e64d9Brian Duddie flatbuffers::Offset<MessageContainer> Finish() { 787f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie const auto end = fbb_.EndTable(start_, 3); 788ef456c07c1738f624e95259878d41305129e64d9Brian Duddie auto o = flatbuffers::Offset<MessageContainer>(end); 7897621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie fbb_.Required(o, MessageContainer::VT_MESSAGE); 790f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie fbb_.Required(o, MessageContainer::VT_HOST_ADDR); 791ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return o; 792ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 793ef456c07c1738f624e95259878d41305129e64d9Brian Duddie}; 794ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 795ef456c07c1738f624e95259878d41305129e64d9Brian Duddieinline flatbuffers::Offset<MessageContainer> CreateMessageContainer( 796ef456c07c1738f624e95259878d41305129e64d9Brian Duddie flatbuffers::FlatBufferBuilder &_fbb, 797ef456c07c1738f624e95259878d41305129e64d9Brian Duddie ChreMessage message_type = ChreMessage::NONE, 798f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie flatbuffers::Offset<void> message = 0, 799f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie const HostAddress *host_addr = 0) { 800ef456c07c1738f624e95259878d41305129e64d9Brian Duddie MessageContainerBuilder builder_(_fbb); 801f685db3a6b34f8dd6942964ae99836bda87c8134Brian Duddie builder_.add_host_addr(host_addr); 802ef456c07c1738f624e95259878d41305129e64d9Brian Duddie builder_.add_message(message); 803ef456c07c1738f624e95259878d41305129e64d9Brian Duddie builder_.add_message_type(message_type); 804ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return builder_.Finish(); 805ef456c07c1738f624e95259878d41305129e64d9Brian Duddie} 806ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 807ef456c07c1738f624e95259878d41305129e64d9Brian Duddieinline bool VerifyChreMessage(flatbuffers::Verifier &verifier, const void *obj, ChreMessage type) { 808ef456c07c1738f624e95259878d41305129e64d9Brian Duddie switch (type) { 809ef456c07c1738f624e95259878d41305129e64d9Brian Duddie case ChreMessage::NONE: { 810ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return true; 811ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 812ef456c07c1738f624e95259878d41305129e64d9Brian Duddie case ChreMessage::NanoappMessage: { 813ef456c07c1738f624e95259878d41305129e64d9Brian Duddie auto ptr = reinterpret_cast<const NanoappMessage *>(obj); 814ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return verifier.VerifyTable(ptr); 815ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 8167621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie case ChreMessage::HubInfoRequest: { 8177621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie auto ptr = reinterpret_cast<const HubInfoRequest *>(obj); 8187621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return verifier.VerifyTable(ptr); 8197621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 8207621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie case ChreMessage::HubInfoResponse: { 8217621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie auto ptr = reinterpret_cast<const HubInfoResponse *>(obj); 8227621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie return verifier.VerifyTable(ptr); 8237621b3267fd2ff1068d7aa7d75441d68646226abBrian Duddie } 824a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie case ChreMessage::NanoappListRequest: { 825a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie auto ptr = reinterpret_cast<const NanoappListRequest *>(obj); 826a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return verifier.VerifyTable(ptr); 827a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 828a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie case ChreMessage::NanoappListResponse: { 829a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie auto ptr = reinterpret_cast<const NanoappListResponse *>(obj); 830a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie return verifier.VerifyTable(ptr); 831a2f5add27054c406f36528cf8a5cbc6d4c79d246Brian Duddie } 83247a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie case ChreMessage::LoadNanoappRequest: { 83347a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie auto ptr = reinterpret_cast<const LoadNanoappRequest *>(obj); 83447a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return verifier.VerifyTable(ptr); 83547a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 83647a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie case ChreMessage::LoadNanoappResponse: { 83747a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie auto ptr = reinterpret_cast<const LoadNanoappResponse *>(obj); 83847a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie return verifier.VerifyTable(ptr); 83947a99dc3cacacb0418548609c0e2d3b2b70d821eBrian Duddie } 840ef456c07c1738f624e95259878d41305129e64d9Brian Duddie default: return false; 841ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 842ef456c07c1738f624e95259878d41305129e64d9Brian Duddie} 843ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 844ef456c07c1738f624e95259878d41305129e64d9Brian Duddieinline bool VerifyChreMessageVector(flatbuffers::Verifier &verifier, const flatbuffers::Vector<flatbuffers::Offset<void>> *values, const flatbuffers::Vector<uint8_t> *types) { 845ef456c07c1738f624e95259878d41305129e64d9Brian Duddie if (values->size() != types->size()) return false; 846ef456c07c1738f624e95259878d41305129e64d9Brian Duddie for (flatbuffers::uoffset_t i = 0; i < values->size(); ++i) { 847ef456c07c1738f624e95259878d41305129e64d9Brian Duddie if (!VerifyChreMessage( 848ef456c07c1738f624e95259878d41305129e64d9Brian Duddie verifier, values->Get(i), types->GetEnum<ChreMessage>(i))) { 849ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return false; 850ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 851ef456c07c1738f624e95259878d41305129e64d9Brian Duddie } 852ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return true; 853ef456c07c1738f624e95259878d41305129e64d9Brian Duddie} 854ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 855ef456c07c1738f624e95259878d41305129e64d9Brian Duddieinline const chre::fbs::MessageContainer *GetMessageContainer(const void *buf) { 856ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return flatbuffers::GetRoot<chre::fbs::MessageContainer>(buf); 857ef456c07c1738f624e95259878d41305129e64d9Brian Duddie} 858ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 859ef456c07c1738f624e95259878d41305129e64d9Brian Duddieinline bool VerifyMessageContainerBuffer( 860ef456c07c1738f624e95259878d41305129e64d9Brian Duddie flatbuffers::Verifier &verifier) { 861ef456c07c1738f624e95259878d41305129e64d9Brian Duddie return verifier.VerifyBuffer<chre::fbs::MessageContainer>(nullptr); 862ef456c07c1738f624e95259878d41305129e64d9Brian Duddie} 863ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 864ef456c07c1738f624e95259878d41305129e64d9Brian Duddieinline void FinishMessageContainerBuffer( 865ef456c07c1738f624e95259878d41305129e64d9Brian Duddie flatbuffers::FlatBufferBuilder &fbb, 866ef456c07c1738f624e95259878d41305129e64d9Brian Duddie flatbuffers::Offset<chre::fbs::MessageContainer> root) { 867ef456c07c1738f624e95259878d41305129e64d9Brian Duddie fbb.Finish(root); 868ef456c07c1738f624e95259878d41305129e64d9Brian Duddie} 869ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 870ef456c07c1738f624e95259878d41305129e64d9Brian Duddie} // namespace fbs 871ef456c07c1738f624e95259878d41305129e64d9Brian Duddie} // namespace chre 872ef456c07c1738f624e95259878d41305129e64d9Brian Duddie 873ef456c07c1738f624e95259878d41305129e64d9Brian Duddie#endif // FLATBUFFERS_GENERATED_HOSTMESSAGES_CHRE_FBS_H_ 874