15af32e75SAxel Dörfler /*
2*4b723e3fSAxel Dörfler * Copyright 2005-2013, Axel Dörfler, axeld@pinc-software.de.
35af32e75SAxel Dörfler * Distributed under the terms of the MIT License.
45af32e75SAxel Dörfler */
55af32e75SAxel Dörfler
65af32e75SAxel Dörfler
75af32e75SAxel Dörfler #include "hfs_plus.h"
85af32e75SAxel Dörfler
95af32e75SAxel Dörfler #include <boot/partitions.h>
105af32e75SAxel Dörfler #include <boot/platform.h>
115af32e75SAxel Dörfler
125af32e75SAxel Dörfler #include <string.h>
135af32e75SAxel Dörfler #include <unistd.h>
145af32e75SAxel Dörfler #include <fcntl.h>
155af32e75SAxel Dörfler #include <stdio.h>
165af32e75SAxel Dörfler #include <stdlib.h>
175af32e75SAxel Dörfler
185af32e75SAxel Dörfler
195af32e75SAxel Dörfler using namespace HFSPlus;
205af32e75SAxel Dörfler
215af32e75SAxel Dörfler #if 0
225af32e75SAxel Dörfler status_t
235af32e75SAxel Dörfler HFSPlus::get_root_block(int fDevice, char *buffer, int32 blockSize, off_t partitionSize)
245af32e75SAxel Dörfler {
255af32e75SAxel Dörfler hfs_volume_header header;
265af32e75SAxel Dörfler if (read_pos(fDevice, 1024, &header, sizeof(header)) < B_OK)
275af32e75SAxel Dörfler return B_ERROR;
285af32e75SAxel Dörfler
295af32e75SAxel Dörfler
305af32e75SAxel Dörfler return B_OK;
315af32e75SAxel Dörfler }
325af32e75SAxel Dörfler #endif
335af32e75SAxel Dörfler
345af32e75SAxel Dörfler // #pragma mark -
355af32e75SAxel Dörfler
365af32e75SAxel Dörfler
375af32e75SAxel Dörfler static status_t
hfs_plus_get_file_system(boot::Partition * partition,::Directory ** _root)385af32e75SAxel Dörfler hfs_plus_get_file_system(boot::Partition *partition, ::Directory **_root)
395af32e75SAxel Dörfler {
4082029bdaSMarcus Overhagen /* Volume *volume = new(nothrow) Volume(partition);
415af32e75SAxel Dörfler if (volume == NULL)
425af32e75SAxel Dörfler return B_NO_MEMORY;
435af32e75SAxel Dörfler
445af32e75SAxel Dörfler if (volume->InitCheck() < B_OK) {
455af32e75SAxel Dörfler delete volume;
465af32e75SAxel Dörfler return B_ERROR;
475af32e75SAxel Dörfler }
485af32e75SAxel Dörfler
495af32e75SAxel Dörfler *_root = volume->Root();
505af32e75SAxel Dörfler */ return B_OK;
515af32e75SAxel Dörfler }
525af32e75SAxel Dörfler
535af32e75SAxel Dörfler
545af32e75SAxel Dörfler file_system_module_info gAmigaFFSFileSystemModule = {
555af32e75SAxel Dörfler "file_systems/hfs_plus/v1",
565af32e75SAxel Dörfler kPartitionTypeHFSPlus,
5767486592SIngo Weinhold NULL,
585af32e75SAxel Dörfler hfs_plus_get_file_system
595af32e75SAxel Dörfler };
605af32e75SAxel Dörfler
61