blob: 3017511cdf4f74bc87036c2e6c95907c405d3b4b [file] [log] [blame]
// Copyright 2019 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.
#ifndef SRC_LIB_STORAGE_VFS_CPP_JOURNAL_DISK_STRUCT_H_
#define SRC_LIB_STORAGE_VFS_CPP_JOURNAL_DISK_STRUCT_H_
#include <disk_inspector/disk_struct.h>
#include "src/lib/storage/vfs/cpp/journal/format.h"
namespace fs {
// Free functions to get journal struct layouts from <fs/journal/format.h> into
// disk_inspector::DiskStructs to support parsing structs and their fields into strings and editing
// structs from string fields and values.
// Creates a DiskStruct object representing a JournalInfo struct.
std::unique_ptr<disk_inspector::DiskStruct> GetJournalSuperblockStruct();
// Creates a DiskStruct object representing a JournalPrefix struct.
std::unique_ptr<disk_inspector::DiskStruct> GetJournalPrefixStruct();
// Creates a DiskStruct object representing a JournalHeaderBlock struct.
// |index| represents the index of the journal entry block and is stored as part of the name of the
// DiskStruct.
std::unique_ptr<disk_inspector::DiskStruct> GetJournalHeaderBlockStruct(uint64_t index);
// Creates a DiskStruct object representing a JournalCommitBlock struct.
// |index| represents the index of the journal entry block and is stored as part of the name of the
// DiskStruct.
std::unique_ptr<disk_inspector::DiskStruct> GetJournalCommitBlockStruct(uint64_t index);
} // namespace fs
#endif // SRC_LIB_STORAGE_VFS_CPP_JOURNAL_DISK_STRUCT_H_