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

Commit faa257ee authored by Sandeep Patil's avatar Sandeep Patil
Browse files

fiemap_writer: First cut implementation with write() support.



The library is meant to help write to a file using its FIEMAP and the
raw block device.

Bug: 121211685
Test: fiemap_writer_test /data/local/tmp/foo.raw /dev/block/sda21
Test: fiemap_writer_test /data/local/tmp/foo.raw /dev/block/sda21 1073741824
Test: fiemap_writer_test /data/local/tmp/foo.raw /dev/block/sda21 \
      --gtest_filter=FiemapWriter.CheckBlockDevicePath
Test: fiemap_writer_test /data/local/tmp/foo.raw /dev/block/sda21 32768 \
      --gtest_filter=FiemapWriter.CheckWriteError
Test: fiemap_writer_test /data/local/tmp/foo.raw /dev/block/sda21 \
      --gtest_filter=VerifyBlockWritesExt4.CheckWrites
Test: fiemap_writer_test /data/local/tmp/foo.raw /dev/block/sda21 \
      --gtest_filter=VerifyBlockWritesF2fs.CheckWrites

Change-Id: I7b580afddc829c1064ebb52b7a6c7600a2fb2772
Signed-off-by: default avatarSandeep Patil <sspatil@google.com>
parent d1ff11b9
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
../../.clang-format-4
 No newline at end of file
+56 −0
Original line number Diff line number Diff line
//
// Copyright (C) 2018 The Android Open Source Project
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//      http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

cc_library_static {
    name: "libfiemap_writer",
    defaults: ["fs_mgr_defaults"],
    recovery_available: true,
    export_include_dirs: ["include"],
    cflags: [
        // TODO(b/121211685): Allows us to create a skeleton of required classes
        "-Wno-unused-private-field",
        "-Wno-unused-parameter",
    ],

    srcs: [
        "fiemap_writer.cpp",
    ],

    header_libs: [
        "libbase_headers",
        "liblog_headers",
    ],
}

cc_test {
    name: "fiemap_writer_test",
    static_libs: [
        "libbase",
        "libdm",
        "libfiemap_writer",
        "liblog",
    ],

    data: [
        "testdata/unaligned_file",
        "testdata/file_4k",
        "testdata/file_32k",
    ],

    srcs: [
        "fiemap_writer_test.cpp",
    ],
}
+637 −0

File added.

Preview size limit exceeded, changes collapsed.

+360 −0

File added.

Preview size limit exceeded, changes collapsed.

+104 −0

File added.

Preview size limit exceeded, changes collapsed.

Loading