1 /*
2 * Copyright (c) 2022, Arm Limited and Contributors. All rights reserved.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7 #include <media/volume/index/volume_index.h>
8 #include <media/volume/base_io_dev/base_io_dev.h>
9 #include "disk_formatter.h"
10
disk_formatter_clone(uintptr_t dev_handle,uintptr_t io_spec,const uint8_t * source_image,size_t source_image_size)11 int disk_formatter_clone(
12 uintptr_t dev_handle,
13 uintptr_t io_spec,
14 const uint8_t *source_image,
15 size_t source_image_size)
16 {
17 uintptr_t volume_handle;
18 int result;
19
20 result = io_open(dev_handle, io_spec, &volume_handle);
21 if (result != 0)
22 return result;
23
24 result = io_seek(volume_handle, IO_SEEK_SET, 0);
25
26 if (result == 0) {
27
28 size_t length_written = 0;
29
30 result = io_write(volume_handle,
31 (const uintptr_t)source_image,
32 source_image_size,
33 &length_written);
34 }
35
36 io_close(volume_handle);
37 return result;
38 }