/* * Copyright (c) 2020, Liav A. * * SPDX-License-Identifier: BSD-2-Clause */ #include #ifndef KERNEL # include # include #endif namespace Partition { #ifdef KERNEL PartitionTable::PartitionTable(Kernel::StorageDevice& device) : m_device(device) , m_block_size(device.block_size()) { } #else PartitionTable::PartitionTable(NonnullRefPtr device_file) : m_device_file(device_file) { VERIFY(ioctl(m_device_file->leak_fd(), STORAGE_DEVICE_GET_BLOCK_SIZE, &m_block_size) >= 0); } #endif Optional PartitionTable::partition(unsigned index) const { if (index > partitions_count()) return {}; return m_partitions[index]; } }