Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b71742f6 authored by android-build-team Robot's avatar android-build-team Robot
Browse files

Snap for 5912542 from b93a604e to rvc-release

Change-Id: I34c4434975c405c770c572b09d6839356c283298
parents d6969aaf b93a604e
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1867,7 +1867,7 @@ packet ReadLocalVersionInformation : CommandPacket (op_code = READ_LOCAL_VERSION
}

enum HciVersion : 8 {
  V_1_0b = 0x00,
  V_1_0B = 0x00,
  V_1_1 = 0x01,
  V_1_2 = 0x02,
  V_2_0 = 0x03, //  + EDR
@@ -1881,7 +1881,7 @@ enum HciVersion : 8 {
}

enum LmpVersion : 8 {
  V_1_0b = 0x00, // withdrawn
  V_1_0B = 0x00, // withdrawn
  V_1_1 = 0x01, // withdrawn
  V_1_2 = 0x02, // withdrawn
  V_2_0 = 0x03, //  + EDR
+2 −0
Original line number Diff line number Diff line
@@ -20,6 +20,7 @@ cc_binary_host {
        "fields/scalar_field.cc",
        "fields/size_field.cc",
        "fields/struct_field.cc",
        "fields/variable_length_struct_field.cc",
        "checksum_def.cc",
        "custom_field_def.cc",
        "enum_def.cc",
@@ -27,6 +28,7 @@ cc_binary_host {
        "packet_def.cc",
        "parent_def.cc",
        "struct_def.cc",
        "struct_parser_generator.cc",
        "main.cc",
        "language_y.yy",
        "language_l.ll",
+3 −0
Original line number Diff line number Diff line
@@ -25,6 +25,9 @@
EnumDef::EnumDef(std::string name, int size) : TypeDef(name, size) {}

void EnumDef::AddEntry(std::string name, uint32_t value) {
  if (!util::IsEnumCase(name)) {
    ERROR() << __func__ << ": Enum " << name << "(" << value << ") should be all uppercase with underscores";
  }
  if (value > util::GetMaxValueForBits(size_)) {
    ERROR() << __func__ << ": Value of " << name << "(" << value << ") is greater than the max possible value for enum "
            << name_ << "(" << util::GetMaxValueForBits(size_) << ")\n";
+1 −0
Original line number Diff line number Diff line
@@ -32,4 +32,5 @@
#include "fields/scalar_field.h"
#include "fields/size_field.h"
#include "fields/struct_field.h"
#include "fields/variable_length_struct_field.h"
#include "fields/vector_field.h"
+23 −2
Original line number Diff line number Diff line
@@ -16,6 +16,8 @@

#include "fields/array_field.h"

#include "fields/custom_field.h"
#include "fields/scalar_field.h"
#include "util.h"

const std::string ArrayField::kFieldType = "ArrayField";
@@ -52,6 +54,10 @@ Size ArrayField::GetSize() const {
Size ArrayField::GetBuilderSize() const {
  if (!element_size_.empty() && !element_size_.has_dynamic()) {
    return GetSize();
  } else if (element_field_->BuilderParameterMustBeMoved()) {
    std::string ret = "[this](){ size_t length = 0; for (const auto& elem : " + GetName() +
                      "_) { length += elem->size() * 8; } return length; }()";
    return ret;
  } else {
    std::string ret = "[this](){ size_t length = 0; for (const auto& elem : " + GetName() +
                      "_) { length += elem.size() * 8; } return length; }()";
@@ -73,8 +79,15 @@ void ArrayField::GenExtractor(std::ostream& s, int num_leading_bits) const {
    s << "while (" << element_field_->GetName() << "_it.NumBytesRemaining() > 0 ";
    s << " && ret_it < " << GetName() << "_ptr->end()) {";
  }
  if (element_field_->BuilderParameterMustBeMoved()) {
    s << element_field_->GetDataType() << " " << element_field_->GetName() << "_ptr;";
  } else {
    s << element_field_->GetDataType() << "* " << element_field_->GetName() << "_ptr = ret_it;";
  }
  element_field_->GenExtractor(s, num_leading_bits);
  if (element_field_->BuilderParameterMustBeMoved()) {
    s << "*ret_it = std::move(" << element_field_->GetName() << "_ptr);";
  }
  s << "ret_it++;";
  s << "}";
}
@@ -96,10 +109,18 @@ void ArrayField::GenGetter(std::ostream& s, Size start_offset, Size end_offset)
}

bool ArrayField::GenBuilderParameter(std::ostream& s) const {
  if (element_field_->BuilderParameterMustBeMoved()) {
    s << "std::array<" << element_field_->GetDataType() << "," << array_size_ << "> " << GetName();
  } else {
    s << "const std::array<" << element_field_->GetDataType() << "," << array_size_ << ">& " << GetName();
  }
  return true;
}

bool ArrayField::BuilderParameterMustBeMoved() const {
  return element_field_->BuilderParameterMustBeMoved();
}

bool ArrayField::GenBuilderMember(std::ostream& s) const {
  s << "std::array<" << element_field_->GetDataType() << "," << array_size_ << "> " << GetName();
  return true;
Loading