13 #include "drv/disk/dpm.h"
18 int initrd_tarfs(uint32_t start, uint32_t end) {
19 qemu_log(
"[TarFS] Init...\n * Start: %x\n * End: %x\n * Size: %d",start,end,end-start);
21 size_t initrd_size = end - start;
25 void* initrd_data = (
void*)start;
27 qemu_warn(
"Initrd occupies %d pages", ALIGN(initrd_size, 4096) / 4096);
29 TarFS_ROOT* l_initrd = fs_tarfs_init((uint32_t) initrd_data, initrd_size, 1);
31 if (l_initrd->Ready == 0)
36 dpm_reg(
'R',
"RamDisk",
"TARFS", 2, initrd_size, 0, 0, 2,
"TAR0-FSV1", initrd_data);
37 dpm_metadata_write(
'R', (uint32_t) l_initrd);
int dpm_reg(char Letter, char *Name, char *FS, int Status, size_t Size, size_t Sectors, size_t SectorSize, int AddrMode, char *Serial, void *Point)
[DPM] Регистрация дискового раздела