[host] Remove calls to fbl::AutoCall
fbl::AutoCall is deprecated in host/userspace in favor of fit::defer.
Calls to fbl::AutoCall could not be removed from kernel or system code
since they may not have the C++ standard library included.
TEST=runtests
CP-146: #progress
Change-Id: Ief2f908430c17851f9f40e4bbabbe122005033d6
diff --git a/system/host/blobfs/blobfs.h b/system/host/blobfs/blobfs.h
index 7dd11fd..ddbee37 100644
--- a/system/host/blobfs/blobfs.h
+++ b/system/host/blobfs/blobfs.h
@@ -2,14 +2,16 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
+#pragma once
+
#include <vector>
#include <blobfs/host.h>
#include <digest/digest.h>
-#include <fbl/auto_call.h>
#include <fbl/array.h>
#include <fbl/vector.h>
#include <fs-host/common.h>
+#include <lib/fit/defer.h>
// Merkle Tree information associated with a file.
struct MerkleInfo {
@@ -24,7 +26,8 @@
class BlobfsCreator : public FsCreator {
public:
- BlobfsCreator() : FsCreator(blobfs::kStartBlockMinimum) {}
+ BlobfsCreator()
+ : FsCreator(blobfs::kStartBlockMinimum) {}
private:
// Parent overrides:
@@ -50,10 +53,10 @@
// A comparison function used to quickly compare MerkleInfo.
struct DigestCompare {
- inline bool operator() (const MerkleInfo& lhs, const MerkleInfo& rhs) const {
+ inline bool operator()(const MerkleInfo& lhs, const MerkleInfo& rhs) const {
const uint8_t* lhs_bytes = lhs.digest.AcquireBytes();
const uint8_t* rhs_bytes = rhs.digest.AcquireBytes();
- auto auto_release = fbl::MakeAutoCall([&]() {
+ auto auto_release = fit::defer([&]() {
lhs.digest.ReleaseBytes();
rhs.digest.ReleaseBytes();
});
@@ -73,3 +76,4 @@
// A list of Merkle Information for blobs in |blob_list_|.
std::vector<MerkleInfo> merkle_list_;
};
+
diff --git a/system/host/blobfs/rules.mk b/system/host/blobfs/rules.mk
index 0046753..3e82718 100644
--- a/system/host/blobfs/rules.mk
+++ b/system/host/blobfs/rules.mk
@@ -31,6 +31,7 @@
-Isystem/ulib/zxcpp/include \
-Isystem/ulib/fdio/include \
-Isystem/ulib/fbl/include \
+ -Isystem/ulib/fit/include \
-Isystem/ulib/fs/include \
-Isystem/ulib/fs-host/include \
diff --git a/system/host/fvm/container/fvm.cpp b/system/host/fvm/container/fvm.cpp
index 1c84089..72ca4df 100644
--- a/system/host/fvm/container/fvm.cpp
+++ b/system/host/fvm/container/fvm.cpp
@@ -8,6 +8,8 @@
#include <fvm/fvm.h>
+#include <lib/fit/defer.h>
+
#include "fvm/container.h"
#if defined(__APPLE__)
@@ -126,7 +128,7 @@
}
const void* backup = reinterpret_cast<void*>(
- reinterpret_cast<uintptr_t>(old_metadata.get()) + old_metadata_size);
+ reinterpret_cast<uintptr_t>(old_metadata.get()) + old_metadata_size);
const void* primary = nullptr;
if (fvm_validate_header(old_metadata.get(), backup, old_metadata_size, &primary) == ZX_OK) {
if (primary != old_metadata.get()) {
@@ -231,7 +233,7 @@
end += slice_size_;
if (slice->Vslice() == last_vslice + 1) {
- extent_lengths[extent_lengths.size()-1] += slice_size_;
+ extent_lengths[extent_lengths.size() - 1] += slice_size_;
} else {
extent_lengths.push_back(slice_size_);
}
@@ -290,7 +292,7 @@
return ZX_ERR_IO;
}
- auto cleanup = fbl::MakeAutoCall([path]() {
+ auto cleanup = fit::defer([path]() {
if (unlink(path) < 0) {
fprintf(stderr, "Failed to unlink path %s\n", path);
}
@@ -515,8 +517,7 @@
}
// If allocated metadata is too small, grow it to an appropriate size
- size_t required_size = fvm::kAllocTableOffset + (pslice_hint_ + slice_count)
- * sizeof(fvm::slice_entry_t);
+ size_t required_size = fvm::kAllocTableOffset + (pslice_hint_ + slice_count) * sizeof(fvm::slice_entry_t);
if ((status = GrowMetadata(required_size)) != ZX_OK) {
return status;
}
@@ -660,7 +661,7 @@
uintptr_t metadata_start = reinterpret_cast<uintptr_t>(metadata_.get());
uintptr_t offset = static_cast<uintptr_t>(fvm::kVPartTableOffset +
- index * sizeof(fvm::vpart_entry_t));
+ index * sizeof(fvm::vpart_entry_t));
*out = reinterpret_cast<fvm::vpart_entry_t*>(metadata_start + offset);
return ZX_OK;
}
@@ -751,8 +752,7 @@
return ZX_ERR_OUT_OF_RANGE;
}
- if (lseek(fd_.get(), disk_offset_ + fvm::SliceStart(disk_size_, slice_size_, pslice) +
- block_offset * block_size, SEEK_SET) < 0) {
+ if (lseek(fd_.get(), disk_offset_ + fvm::SliceStart(disk_size_, slice_size_, pslice) + block_offset * block_size, SEEK_SET) < 0) {
return ZX_ERR_BAD_STATE;
}
diff --git a/system/host/fvm/rules.mk b/system/host/fvm/rules.mk
index 2850b03..aa46747 100644
--- a/system/host/fvm/rules.mk
+++ b/system/host/fvm/rules.mk
@@ -22,16 +22,17 @@
-Wstrict-prototypes -Wwrite-strings \
-Ithird_party/ulib/lz4/include \
-Isystem/uapp/fvm/include \
- -Isystem/ulib/fbl/include \
- -Isystem/ulib/fvm/include \
- -Isystem/ulib/digest/include \
- -Isystem/ulib/gpt/include \
- -Isystem/ulib/blobfs/include \
- -Isystem/ulib/fs/include \
- -Isystem/ulib/fzl/include \
-Isystem/ulib/bitmap/include \
+ -Isystem/ulib/blobfs/include \
+ -Isystem/ulib/digest/include \
+ -Isystem/ulib/fbl/include \
-Isystem/ulib/fdio/include \
+ -Isystem/ulib/fit/include \
+ -Isystem/ulib/fs/include \
-Isystem/ulib/fs-management/include \
+ -Isystem/ulib/fvm/include \
+ -Isystem/ulib/fzl/include \
+ -Isystem/ulib/gpt/include \
-Isystem/ulib/minfs/include \
MODULE_HOST_LIBS := \
diff --git a/system/host/xdc-server/rules.mk b/system/host/xdc-server/rules.mk
index 2e7d07c..d335f19 100644
--- a/system/host/xdc-server/rules.mk
+++ b/system/host/xdc-server/rules.mk
@@ -16,6 +16,7 @@
-Werror-implicit-function-declaration \
-Wstrict-prototypes -Wwrite-strings \
-Isystem/ulib/fbl/include \
+ -Isystem/ulib/fit/include \
-Isystem/ulib/xdc-host-utils/include \
-Isystem/ulib/xdc-server-utils/include \
diff --git a/system/host/xdc-server/xdc-server.cpp b/system/host/xdc-server/xdc-server.cpp
index 1cd2b1f..f3b1d7a 100644
--- a/system/host/xdc-server/xdc-server.cpp
+++ b/system/host/xdc-server/xdc-server.cpp
@@ -2,7 +2,7 @@
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
-#include <fbl/auto_call.h>
+#include <lib/fit/defer.h>
#include <xdc-host-utils/conn.h>
#include <xdc-server-utils/msg.h>
#include <xdc-server-utils/packet.h>
@@ -11,12 +11,12 @@
#include <cassert>
#include <errno.h>
#include <fcntl.h>
+#include <poll.h>
#include <stdio.h>
#include <sys/file.h>
#include <sys/socket.h>
#include <sys/types.h>
#include <sys/un.h>
-#include <poll.h>
#include <unistd.h>
#include "usb-handler.h"
@@ -25,7 +25,7 @@
namespace xdc {
static constexpr uint32_t MAX_PENDING_CONN_BACKLOG = 128;
-static const char* XDC_LOCK_PATH = "/tmp/xdc.lock";
+static const char* XDC_LOCK_PATH = "/tmp/xdc.lock";
void Client::SetStreamId(uint32_t stream_id) {
registered_ = true;
@@ -39,7 +39,7 @@
return;
}
printf("client with stream id %u is now %s to the xdc device stream.\n",
- stream_id(), connected ? "connected" : "disconnected");
+ stream_id(), connected ? "connected" : "disconnected");
connected_ = connected;
}
@@ -63,7 +63,7 @@
}
void Client::ProcessCompletedReads(const std::unique_ptr<UsbHandler>& usb_handler) {
- for (auto iter = completed_reads_.begin(); iter != completed_reads_.end(); ) {
+ for (auto iter = completed_reads_.begin(); iter != completed_reads_.end();) {
std::unique_ptr<UsbHandler::Transfer>& transfer = *iter;
unsigned char* data = transfer->data() + transfer->offset();
@@ -134,7 +134,7 @@
}
// Remove the socket file if it exists.
unlink(XDC_SOCKET_PATH);
- if (bind(socket_fd_.get(), (sockaddr *)&addr, sizeof(addr)) != 0) {
+ if (bind(socket_fd_.get(), (sockaddr*)&addr, sizeof(addr)) != 0) {
fprintf(stderr, "Could not bind socket with pathname: %s, err: %s\n",
XDC_SOCKET_PATH, strerror(errno));
return false;
@@ -176,17 +176,17 @@
short events = iter.second;
auto match = std::find_if(poll_fds_.begin(), poll_fds_.end(),
- [&fd](auto& pollfd) { return pollfd.fd == fd; } );
+ [&fd](auto& pollfd) { return pollfd.fd == fd; });
if (match != poll_fds_.end()) {
fprintf(stderr, "already have usb handler fd: %d\n", fd);
continue;
}
- poll_fds_.push_back(pollfd { fd, events, 0 });
+ poll_fds_.push_back(pollfd{fd, events, 0});
printf("usb handler added fd: %d\n", fd);
}
for (auto fd : removed_fds) {
auto match = std::remove_if(poll_fds_.begin(), poll_fds_.end(),
- [&fd](auto& pollfd) { return pollfd.fd == fd; } );
+ [&fd](auto& pollfd) { return pollfd.fd == fd; });
if (match == poll_fds_.end()) {
fprintf(stderr, "could not find usb handler fd: %d to delete\n", fd);
continue;
@@ -200,13 +200,13 @@
printf("Waiting for connections on: %s\n", XDC_SOCKET_PATH);
// Listen for new client connections.
- poll_fds_.push_back(pollfd{ socket_fd_.get(), POLLIN, 0 });
+ poll_fds_.push_back(pollfd{socket_fd_.get(), POLLIN, 0});
// Initialize to true as we want to get the initial usb handler fds.
bool update_usb_handler_fds = true;
for (;;) {
- if (update_usb_handler_fds) {
+ if (update_usb_handler_fds) {
UpdateUsbHandlerFds();
update_usb_handler_fds = false;
}
@@ -283,7 +283,7 @@
struct sockaddr_un addr;
socklen_t len = sizeof(addr);
// Most of the time we want non-blocking transfers, so we can handle other clients / libusb.
- int client_fd = accept(socket_fd_.get(), (struct sockaddr *)&addr, &len);
+ int client_fd = accept(socket_fd_.get(), (struct sockaddr*)&addr, &len);
if (client_fd < 0) {
fprintf(stderr, "Socket accept failed, err: %s\n", strerror(errno));
return;
@@ -306,16 +306,16 @@
}
printf("Client connected, socket fd: %d\n", client_fd);
clients_[client_fd] = std::make_shared<Client>(client_fd);
- poll_fds_.push_back(pollfd{ client_fd, POLLIN, 0 });
+ poll_fds_.push_back(pollfd{client_fd, POLLIN, 0});
}
bool XdcServer::RegisterStream(std::shared_ptr<Client> client) {
RegisterStreamRequest stream_id;
ssize_t n = recv(client->fd(), &stream_id, sizeof(stream_id), MSG_WAITALL);
if (n != sizeof(stream_id)) {
- fprintf(stderr, "failed to read stream id from client fd: %d, got len: %ld, got err: %s\n",
- client->fd(), n, strerror(errno));
- return false;
+ fprintf(stderr, "failed to read stream id from client fd: %d, got len: %ld, got err: %s\n",
+ client->fd(), n, strerror(errno));
+ return false;
}
// Client has disconnected. This will be handled in the main poll thread.
if (n == 0) {
@@ -353,7 +353,7 @@
}
void XdcServer::UsbReadComplete(std::unique_ptr<UsbHandler::Transfer> transfer) {
- auto requeue = fbl::MakeAutoCall([&]() { usb_handler_->RequeueRead(std::move(transfer)); });
+ auto requeue = fit::defer([&]() { usb_handler_->RequeueRead(std::move(transfer)); });
bool is_new_packet;
uint32_t stream_id;
@@ -426,8 +426,7 @@
xdc_msg_t msg = {
.opcode = XDC_NOTIFY_STREAM_STATE,
.notify_stream_state.stream_id = stream_id,
- .notify_stream_state.online = online
- };
+ .notify_stream_state.online = online};
queued_ctrl_msgs_.push_back(msg);
SendQueuedCtrlMsgs();
}
@@ -439,7 +438,7 @@
}
zx_status_t res = transfer->FillData(DEBUG_STREAM_ID_RESERVED,
reinterpret_cast<unsigned char*>(&msg), sizeof(msg));
- assert(res == ZX_OK); // Should not fail.
+ assert(res == ZX_OK); // Should not fail.
usb_handler_->QueueWriteTransfer(std::move(transfer));
return true;
}
@@ -457,7 +456,7 @@
}
}
-} // namespace xdc
+} // namespace xdc
int main(int argc, char** argv) {
printf("Starting XHCI Debug Capability server...\n");
diff --git a/system/utest/fvm-host/rules.mk b/system/utest/fvm-host/rules.mk
index 3d06447..759629d 100644
--- a/system/utest/fvm-host/rules.mk
+++ b/system/utest/fvm-host/rules.mk
@@ -26,6 +26,7 @@
-Isystem/uapp/lz4/include \
-Isystem/host/fvm/include \
-Isystem/ulib/fbl/include \
+ -Isystem/ulib/fit/include \
-Isystem/ulib/fvm/include \
-Isystem/ulib/digest/include \
-Ithird_party/ulib/uboringssl/include \