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

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

release-request-ccd04736-6e66-4825-a227-ecd69d8b5337-for-git_oc-mr1-release-41...

release-request-ccd04736-6e66-4825-a227-ecd69d8b5337-for-git_oc-mr1-release-4163697 snap-temp-L79500000080559163

Change-Id: I86c6e606ec11c6d64cc7f5f459a08916c73fb3ab
parents bed1e559 4080ab23
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -189,6 +189,7 @@ V2_0::StatusCode EmulatedVehicleHal::fillObd2DtcInfo(V2_0::VehiclePropValue* out
        timestamps.push_back(freezeFrame.timestamp);
    }
    outValue->value.int64Values = timestamps;
    outValue->prop = OBD2_FREEZE_FRAME_INFO;
    return V2_0::StatusCode::OK;
}

+12 −6
Original line number Diff line number Diff line
@@ -16,8 +16,8 @@

#include "bluetooth_address.h"

#include <android-base/logging.h>
#include <cutils/properties.h>
#include <errno.h>
#include <fcntl.h>
#include <utils/Log.h>

@@ -54,19 +54,25 @@ bool BluetoothAddress::get_local_address(uint8_t* local_addr) {

    addr_fd = open(property, O_RDONLY);
    if (addr_fd != -1) {
      int bytes_read = read(addr_fd, property, kStringLength);
      CHECK(bytes_read == kStringLength);
      char address[kStringLength + 1] = {0};
      int bytes_read = read(addr_fd, address, kStringLength);
      if (bytes_read == -1) {
        ALOGE("%s: Error reading address from %s: %s", __func__, property,
              strerror(errno));
      }
      close(addr_fd);

      // Null terminate the string.
      property[kStringLength] = '\0';
      address[kStringLength] = '\0';

      // If the address is not all zeros, then use it.
      const uint8_t zero_bdaddr[kBytes] = {0, 0, 0, 0, 0, 0};
      if ((string_to_bytes(property, local_addr)) &&
      if ((string_to_bytes(address, local_addr)) &&
          (memcmp(local_addr, zero_bdaddr, kBytes) != 0)) {
        valid_bda = true;
        ALOGD("%s: Got Factory BDA %s", __func__, property);
        ALOGD("%s: Got Factory BDA %s", __func__, address);
      } else {
        ALOGE("%s: Got Invalid BDA '%s' from %s", __func__, address, property);
      }
    }
  }
+33 −12
Original line number Diff line number Diff line
@@ -17,9 +17,11 @@
#include "h4_protocol.h"

#define LOG_TAG "android.hardware.bluetooth-hci-h4"
#include <android-base/logging.h>
#include <assert.h>

#include <errno.h>
#include <fcntl.h>
#include <log/log.h>
#include <sys/uio.h>

namespace android {
namespace hardware {
@@ -27,11 +29,20 @@ namespace bluetooth {
namespace hci {

size_t H4Protocol::Send(uint8_t type, const uint8_t* data, size_t length) {
  int rv = WriteSafely(uart_fd_, &type, sizeof(type));
  if (rv == sizeof(type)) {
    rv = WriteSafely(uart_fd_, data, length);
  struct iovec iov[] = {{&type, sizeof(type)},
                        {const_cast<uint8_t*>(data), length}};
  ssize_t ret = 0;
  do {
    ret = TEMP_FAILURE_RETRY(writev(uart_fd_, iov, sizeof(iov) / sizeof(iov[0])));
  } while (-1 == ret && EAGAIN == errno);

  if (ret == -1) {
    ALOGE("%s error writing to UART (%s)", __func__, strerror(errno));
  } else if (ret < static_cast<ssize_t>(length + 1)) {
    ALOGE("%s: %d / %d bytes written - something went wrong...", __func__,
          static_cast<int>(ret), static_cast<int>(length + 1));
  }
  return rv;
  return ret;
}

void H4Protocol::OnPacketReady() {
@@ -45,10 +56,9 @@ void H4Protocol::OnPacketReady() {
    case HCI_PACKET_TYPE_SCO_DATA:
      sco_cb_(hci_packetizer_.GetPacket());
      break;
    default: {
      bool bad_packet_type = true;
      CHECK(!bad_packet_type);
    }
    default:
      LOG_ALWAYS_FATAL("%s: Unimplemented packet type %d", __func__,
                       static_cast<int>(hci_packet_type_));
  }
  // Get ready for the next type byte.
  hci_packet_type_ = HCI_PACKET_TYPE_UNKNOWN;
@@ -57,8 +67,19 @@ void H4Protocol::OnPacketReady() {
void H4Protocol::OnDataReady(int fd) {
  if (hci_packet_type_ == HCI_PACKET_TYPE_UNKNOWN) {
    uint8_t buffer[1] = {0};
    size_t bytes_read = TEMP_FAILURE_RETRY(read(fd, buffer, 1));
    CHECK(bytes_read == 1);
    ssize_t bytes_read = TEMP_FAILURE_RETRY(read(fd, buffer, 1));
    if (bytes_read != 1) {
      if (bytes_read == 0) {
        LOG_ALWAYS_FATAL("%s: Unexpected EOF reading the packet type!",
                         __func__);
      } else if (bytes_read < 0) {
        LOG_ALWAYS_FATAL("%s: Read packet type error: %s", __func__,
                         strerror(errno));
      } else {
        LOG_ALWAYS_FATAL("%s: More bytes read than expected (%u)!", __func__,
                         static_cast<unsigned int>(bytes_read));
      }
    }
    hci_packet_type_ = static_cast<HciPacketType>(buffer[0]);
  } else {
    hci_packetizer_.OnDataReady(fd, hci_packet_type_);
+20 −7
Original line number Diff line number Diff line
@@ -17,11 +17,11 @@
#include "hci_packetizer.h"

#define LOG_TAG "android.hardware.bluetooth.hci_packetizer"
#include <android-base/logging.h>
#include <utils/Log.h>

#include <dlfcn.h>
#include <errno.h>
#include <fcntl.h>
#include <utils/Log.h>

namespace {

@@ -45,15 +45,22 @@ namespace hardware {
namespace bluetooth {
namespace hci {

const hidl_vec<uint8_t>& HciPacketizer::GetPacket() const { return packet_; }
const hidl_vec<uint8_t>& HciPacketizer::GetPacket() const {
  return packet_;
}

void HciPacketizer::OnDataReady(int fd, HciPacketType packet_type) {
  switch (state_) {
    case HCI_PREAMBLE: {
      size_t bytes_read = TEMP_FAILURE_RETRY(
      ssize_t bytes_read = TEMP_FAILURE_RETRY(
          read(fd, preamble_ + bytes_read_,
               preamble_size_for_type[packet_type] - bytes_read_));
      CHECK(bytes_read > 0);
      if (bytes_read <= 0) {
        LOG_ALWAYS_FATAL_IF((bytes_read == 0),
                            "%s: Unexpected EOF reading the header!", __func__);
        LOG_ALWAYS_FATAL("%s: Read header error: %s", __func__,
                         strerror(errno));
      }
      bytes_read_ += bytes_read;
      if (bytes_read_ == preamble_size_for_type[packet_type]) {
        size_t packet_length =
@@ -68,11 +75,17 @@ void HciPacketizer::OnDataReady(int fd, HciPacketType packet_type) {
    }

    case HCI_PAYLOAD: {
      size_t bytes_read = TEMP_FAILURE_RETRY(read(
      ssize_t bytes_read = TEMP_FAILURE_RETRY(read(
          fd,
          packet_.data() + preamble_size_for_type[packet_type] + bytes_read_,
          bytes_remaining_));
      CHECK(bytes_read > 0);
      if (bytes_read <= 0) {
        LOG_ALWAYS_FATAL_IF((bytes_read == 0),
                            "%s: Unexpected EOF reading the payload!",
                            __func__);
        LOG_ALWAYS_FATAL("%s: Read payload error: %s", __func__,
                         strerror(errno));
      }
      bytes_remaining_ -= bytes_read;
      bytes_read_ += bytes_read;
      if (bytes_remaining_ == 0) {
+1 −2
Original line number Diff line number Diff line
@@ -19,7 +19,6 @@
#include <assert.h>

#define LOG_TAG "android.hardware.bluetooth-hci-mct"
#include <android-base/logging.h>
#include <utils/Log.h>

#include <fcntl.h>
@@ -45,7 +44,7 @@ size_t MctProtocol::Send(uint8_t type, const uint8_t* data, size_t length) {
    return WriteSafely(uart_fds_[CH_CMD], data, length);
  if (type == HCI_PACKET_TYPE_ACL_DATA)
    return WriteSafely(uart_fds_[CH_ACL_OUT], data, length);
  CHECK(type == HCI_PACKET_TYPE_COMMAND || type == HCI_PACKET_TYPE_ACL_DATA);
  LOG_ALWAYS_FATAL("%s: Unimplemented packet type = %d", __func__, type);
  return 0;
}

Loading