1/* 2** Copyright 2003, Axel Dörfler, axeld@pinc-software.de. All rights reserved. 3** Distributed under the terms of the OpenBeOS License. 4*/ 5 6 7#include "fatfs.h" 8 9#include <boot/partitions.h> 10#include <boot/platform.h> 11#include <util/kernel_cpp.h> 12 13#include <string.h> 14#include <unistd.h> 15#include <fcntl.h> 16#include <stdio.h> 17#include <stdlib.h> 18 19 20using namespace FATFS; 21 22#if 0 23status_t 24FATFS::get_root_block(int fDevice, char *buffer, int32 blockSize, off_t partitionSize) 25{ 26 // calculate root block position (it depends on the block size) 27 28 // ToDo: get the number of reserved blocks out of the disk_environment structure?? 29 // (from the amiga_rdb module) 30 int32 reservedBlocks = 2; 31 off_t offset = (((partitionSize / blockSize) - 1 - reservedBlocks) / 2) + reservedBlocks; 32 // ToDo: this calculation might be incorrect for certain cases. 33 34 if (read_pos(fDevice, offset * blockSize, buffer, blockSize) < B_OK) 35 return B_ERROR; 36 37 RootBlock root(buffer, blockSize); 38 if (root.ValidateCheckSum() < B_OK) 39 return B_BAD_DATA; 40 41 //printf("primary = %ld, secondary = %ld\n", root.PrimaryType(), root.SecondaryType()); 42 if (!root.IsRootBlock()) 43 return B_BAD_TYPE; 44 45 return B_OK; 46} 47 48#endif 49 50