History log of /haiku/headers/private/kernel/boot/partitions.h
Revision Date Author Comments
# 495efc38 06-Dec-2013 François Revol <revol@free.fr>

loader: Drop the HashMap for partition lookup by id

The HashMap constructor was called before the heap is initialized,
ending up calling malloc from the OpenHashMap constructor.

Oddly it was still working on x86 but broke other platforms.

Instead we add a Lookup() static method to Partition,
which by default walks gPartitions for the id,
and recursively calls itself on the children lists.

This means we must add a partition even temporarily to gPartitions
before Scan()ing it though.

Signed-off-by: François Revol <revol@free.fr>


# 245df7ab 09-Feb-2011 Jérôme Duval <korli@users.berlios.de>

added exFAT partition type


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40410 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 01929b0c 23-Oct-2010 Jérôme Duval <korli@users.berlios.de>

added a mapping for 0x83 to BTRFS


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39069 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2cf4975b 15-Oct-2008 François Revol <revol@free.fr>

Add FAT32 support. This allows the bootloader to find a BFS image file (currently named BEOS\IMAGE.BE) and start booting for it, until the kernel tries to mount the boot partition.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28156 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 88212335 26-Dec-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Added more debugging code. The partition code appears to be using objects that have been destroyed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23165 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 67486592 04-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added an identify_file_system() hook to the FS modules. The boot loader
does no longer give partitioning systems precedence over file systems.
The one with the greater identification priority wins. ATM, if a file
system wins, we still mount the first file system that recognized the
partition at all, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22446 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eef8417e 30-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

* Added (non-working) EFI module to the boot loader and its test application.
* Fixed a warning in efi_gpt.cpp.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21532 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e3fcb58e 14-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

The boot loader now has special support for being booted from a boot image
like floppy or CD boot.
This allows it to reduce the number of scans needed to identify the boot
partition - when booted from a real floppy, this speeds up the boot
process by a magnitude.
Also, the loader now has a fall back in case there were no "boot" links
on the disk - the current boot floppy script doesn't create them.
With these changes, I was able to boot into a HD based Haiku installation
from a floppy disk. It's not yet enough to boot from CD (as the boot
device selection is a bit too simplistic right now), but it will eventually
come next. Testing is a lot slower here, though, as neither qemu nor
Bochs support multi-session CDs (at least I have no idea how to get them
to do this).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14380 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 83333bf2 10-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

Missed those with the previous commit: added tarfs to the boot loader build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14345 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d832aa7e 31-Mar-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

We must just the same naming as in DiskDeviceTypes.cpp for the intel partition types, since the implementation relies on it.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12186 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ab78c7cb 10-Feb-2005 Axel Dörfler <axeld@pinc-software.de>

Added partition type constants for HFS/HFS+ file systems.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11332 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0c3888b9 15-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

Add a method to get the partition's file descriptor.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9955 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec5d7064 02-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

SetParent() is now a public function (could be made private again and friend of
add_partitions_for(), though).
The partition now also tracks if it refers to a partitioning system or not.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9745 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7765cbf6 15-Jun-2004 Axel Dörfler <axeld@pinc-software.de>

file_system_module_info now contains the module name as well.
The Partition class now maintains a module name, accessible via the new
method ModuleName().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7983 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c3e36ff4 13-Oct-2003 Axel Dörfler <axeld@pinc-software.de>

Now uses the DoublyLinked::List class instead of the C list stuff.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5016 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b337ddf6 30-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Added a new method Mount() to Partition, Scan() now takes a parameter to
decide if it should mount file systems on the partition or not.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4877 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69a8a407 15-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Forgot to commit this: defines the AmigaFFS module info structure.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4703 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da42afdf 14-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Made the Partition class public again - it's handy to use for some file
systems in order to retrieve some parameters.
Changed the get_file_system() call to accept a Partition instead of just
a node.
Introduced the namespace boot to the public headers; I guess I should
put all classes in there (compilation of the intel partitioning system
fails without the namespace, because it defines a class Partition itself).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4674 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd5b59d2 08-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Added initial support for file systems. Not tested yet, but compiles.
New Directory class for use in file systems; file systems need to publish
their root directory as a subclass of this class.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4587 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e5d542ba 07-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Moved the Partition class declaration to the source file.
Added some partition types.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4551 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f7c2dc6 02-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Missing boot loader headers.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4462 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 245df7abd37e25abfbb4735d1caaf57cdcd43c22 09-Feb-2011 Jérôme Duval <korli@users.berlios.de>

added exFAT partition type


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40410 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 01929b0c9421c4b37c45e04c45129ab5fbe45dd2 23-Oct-2010 Jérôme Duval <korli@users.berlios.de>

added a mapping for 0x83 to BTRFS


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39069 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2cf4975b4b706bcfb741d06d0e8deb8a4783a3f6 15-Oct-2008 François Revol <revol@free.fr>

Add FAT32 support. This allows the bootloader to find a BFS image file (currently named BEOS\IMAGE.BE) and start booting for it, until the kernel tries to mount the boot partition.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28156 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 882123356b4727ee42f569a7d2bf42fe6fad962c 26-Dec-2007 Marcus Overhagen <marcusoverhagen@gmail.com>

Added more debugging code. The partition code appears to be using objects that have been destroyed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23165 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6748659272e95419925e7c7b84d7f98b48182075 04-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added an identify_file_system() hook to the FS modules. The boot loader
does no longer give partitioning systems precedence over file systems.
The one with the greater identification priority wins. ATM, if a file
system wins, we still mount the first file system that recognized the
partition at all, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22446 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eef8417e272495ca9e026a9298167ed4180a1edb 30-Jun-2007 Axel Dörfler <axeld@pinc-software.de>

* Added (non-working) EFI module to the boot loader and its test application.
* Fixed a warning in efi_gpt.cpp.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21532 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e3fcb58ebb7497340ed016d1a5ac4d4f13564d90 14-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

The boot loader now has special support for being booted from a boot image
like floppy or CD boot.
This allows it to reduce the number of scans needed to identify the boot
partition - when booted from a real floppy, this speeds up the boot
process by a magnitude.
Also, the loader now has a fall back in case there were no "boot" links
on the disk - the current boot floppy script doesn't create them.
With these changes, I was able to boot into a HD based Haiku installation
from a floppy disk. It's not yet enough to boot from CD (as the boot
device selection is a bit too simplistic right now), but it will eventually
come next. Testing is a lot slower here, though, as neither qemu nor
Bochs support multi-session CDs (at least I have no idea how to get them
to do this).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14380 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 83333bf237fce576098c96b08dc76126f5bd33c7 10-Oct-2005 Axel Dörfler <axeld@pinc-software.de>

Missed those with the previous commit: added tarfs to the boot loader build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14345 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d832aa7efcaddbd720bfa846403aed7fa05c97ef 31-Mar-2005 Ingo Weinhold <ingo_weinhold@gmx.de>

We must just the same naming as in DiskDeviceTypes.cpp for the intel partition types, since the implementation relies on it.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12186 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ab78c7cbc5d276ede9cd40419476c3c17c621da7 10-Feb-2005 Axel Dörfler <axeld@pinc-software.de>

Added partition type constants for HFS/HFS+ file systems.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11332 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0c3888b965e1e460d2bb0be168bec2b30d96bc57 15-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

Add a method to get the partition's file descriptor.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9955 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ec5d7064928d6e309f6c3465c30006c21ccda7e5 02-Nov-2004 Axel Dörfler <axeld@pinc-software.de>

SetParent() is now a public function (could be made private again and friend of
add_partitions_for(), though).
The partition now also tracks if it refers to a partitioning system or not.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9745 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7765cbf6f45efe9d894df192d1224a0ed24ef505 15-Jun-2004 Axel Dörfler <axeld@pinc-software.de>

file_system_module_info now contains the module name as well.
The Partition class now maintains a module name, accessible via the new
method ModuleName().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7983 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c3e36ff4983b6abc397e66ef4a6c8f3b88fe21f2 13-Oct-2003 Axel Dörfler <axeld@pinc-software.de>

Now uses the DoublyLinked::List class instead of the C list stuff.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5016 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b337ddf60aefcfbcecc5f5a163018c0266c706cc 30-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Added a new method Mount() to Partition, Scan() now takes a parameter to
decide if it should mount file systems on the partition or not.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4877 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 69a8a407703cffacc299969a70e494bd5350c887 15-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Forgot to commit this: defines the AmigaFFS module info structure.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4703 a95241bf-73f2-0310-859d-f6bbb57e9c96


# da42afdf6285aa78fa50947c0cdbd5421d84017b 14-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Made the Partition class public again - it's handy to use for some file
systems in order to retrieve some parameters.
Changed the get_file_system() call to accept a Partition instead of just
a node.
Introduced the namespace boot to the public headers; I guess I should
put all classes in there (compilation of the intel partitioning system
fails without the namespace, because it defines a class Partition itself).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4674 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd5b59d2271d433bf42e9d5d677435c2ff25e24b 08-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Added initial support for file systems. Not tested yet, but compiles.
New Directory class for use in file systems; file systems need to publish
their root directory as a subclass of this class.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4587 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e5d542ba54bff1c62271ccffdac49eca59f90bd8 07-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Moved the Partition class declaration to the source file.
Added some partition types.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4551 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6f7c2dc67727c81c614d4905d98b8c2183e6114b 02-Sep-2003 Axel Dörfler <axeld@pinc-software.de>

Missing boot loader headers.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4462 a95241bf-73f2-0310-859d-f6bbb57e9c96