blob: 71c99a5ed5335489145a461d86835d087fb7c3fe [file] [log] [blame]
// Copyright 2021 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
#include "src/storage/fshost/nand-device.h"
#include <fcntl.h>
#include <fidl/fuchsia.device/cpp/wire.h>
#include <lib/fdio/cpp/caller.h>
#include <lib/syslog/cpp/macros.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include "src/storage/fshost/block-device.h"
namespace fshost {
zx::status<std::unique_ptr<BlockDeviceInterface>> NandDevice::OpenBlockDevice(
const char* topological_path) const {
fbl::unique_fd fd(::open(topological_path, O_RDWR, S_IFBLK));
if (!fd) {
FX_LOGS(WARNING) << "Failed to open block device " << topological_path << ": "
<< strerror(errno);
return zx::error(ZX_ERR_INVALID_ARGS);
}
return zx::ok(
std::unique_ptr<NandDevice>(new NandDevice(mounter_, std::move(fd), device_config_)));
}
} // namespace fshost