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

Commit 4300572d authored by David Anderson's avatar David Anderson
Browse files

liblp: Export WriteToImageFile given a file descriptor.

This exports an internal variant of WriteToImageFile, since lpadd needs
to call it on an open descriptor. While we're here, switch "int" to
"borrowed_fd".

Bug: 144468779
Test: m lpadd
Change-Id: I2dd35b8a872f8a72a704230d0382398b8982cb0b
parent 40239389
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -110,7 +110,7 @@ std::unique_ptr<LpMetadata> ReadFromImageFile(const std::string& image_file) {
    return ReadFromImageFile(fd);
}

bool WriteToImageFile(int fd, const LpMetadata& input) {
bool WriteToImageFile(borrowed_fd fd, const LpMetadata& input) {
    std::string geometry = SerializeGeometry(input.geometry);
    std::string metadata = SerializeMetadata(input);

+0 −2
Original line number Diff line number Diff line
@@ -29,8 +29,6 @@ namespace fs_mgr {
// Helper function to serialize geometry and metadata to a normal file, for
// flashing or debugging.
std::unique_ptr<LpMetadata> ReadFromImageFile(int fd);
bool WriteToImageFile(const char* file, const LpMetadata& metadata);
bool WriteToImageFile(int fd, const LpMetadata& metadata);

// We use an object to build the image file since it requires that data
// pointers be held alive until the sparse file is destroyed. It's easier
+6 −3
Original line number Diff line number Diff line
@@ -76,12 +76,15 @@ std::unique_ptr<LpMetadata> ReadMetadata(const std::string& super_partition, uin
// supported). It is a format specifically for storing only metadata.
bool IsEmptySuperImage(const std::string& file);

// Read/Write logical partition metadata to an image file, for diagnostics or
// flashing. If no partition images are specified, the file will be in the
// empty format.
// Read/Write logical partition metadata and contents to an image file, for
// flashing.
bool WriteToImageFile(const std::string& file, const LpMetadata& metadata, uint32_t block_size,
                      const std::map<std::string, std::string>& images, bool sparsify);

// Read/Write logical partition metadata to an image file, for producing a
// super_empty.img (for fastboot wipe-super/update-super) or for diagnostics.
bool WriteToImageFile(const std::string& file, const LpMetadata& metadata);
bool WriteToImageFile(android::base::borrowed_fd fd, const LpMetadata& metadata);
std::unique_ptr<LpMetadata> ReadFromImageFile(const std::string& image_file);
std::unique_ptr<LpMetadata> ReadFromImageBlob(const void* data, size_t bytes);