History log of /haiku/src/add-ons/kernel/partitioning_systems/intel/PartitionMap.h
Revision Date Author Comments
# 30cf9c3c 09-Oct-2016 Adrien Destugues <pulkomandy@pulkomandy.tk>

MBR: Mark CHS value as invalid, not unused

As reported in #6301, some BIOSes rely on these byte to detect an unused
partition entry (set to 0) from an used one (set to some other value),
and only later notice that the CHS is invalid and LBA should be used.

Apply the patch that Ingo had attached to the ticket back then.

As far as I can tell, the protective MBR in GPT only happens to use the
same way to mark the partition as used (in case you try to plug a GPT
drive to a BIOS that does only CHS). So, using the same value should not
lead to the MBR being identified as a protective MBR by GPT aware
systems (that is detected using the partition type and partition size).

Fixes #6301.


# c2069a9a 18-May-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by "starsseed" (with style fixes by myself):
PartitionMapWriter::WriteMBR(): Also read the old MBR from disk when the boot
code shall be overwritten. Prevents overwriting of the disk ID. Closes ticket
#7507.


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


# e4c0070f 28-Feb-2010 Michael Lotz <mmlr@mlotz.ch>

Added a bit of logic to possibly fall back to a fixed 512 block MBR in case
certain conditions indicate that we might deal with a fixed 512 bytes MBR on
a non 512 byte block size medium. One condition is that at least one partition
had to be shrunk to fit the available size (which usually happens with larger
block sizes). We retry with a fixed 512 block size once and compare the result
if it didn't improve the situation it is reverted again. This is mostly a
preparation for the upcoming "anyboot" hybrid MBR/ISO images.


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


# a0973602 30-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Apparently, a drive's size is not always reported the same; at least I have
a drive (which had its MBR created on Linux) report a smaller size than the
size of its first partition.
* Since other operating systems seem to ignore this, we now relax our validity
checks and always adjust the size of a child partition to fit into its parent.


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


# d6778355 30-Sep-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* <DiskDeviceTypes.h>: Removed kPartitionTypeIntel{Primary,Logical} constants.
* Added new header headers/private/system/disk_device_types.h, which defines
the <DiskDeviceTypes.h> constants as macros and which can be used where the
constants cannot be used. The constants are defined using the macros, so now
there's only one place where the string literals should be specified.
* Use the macros in the partitioning systems. I was too lazy to also adjust the
file systems -- most of them seem to hard-code the string literal yet.



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


# eea7b730 24-Sep-2009 Michael Lotz <mmlr@mlotz.ch>

When writing a fresh MBR on initialization, also write boot code to it. It uses
the combined PMBR/MBR bootloader from FreeBSD done by André Braga. It will
chainload either a Haiku GUID partition or fallback to the partition marked
active in the MBR.


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


# 9142bf34 15-Sep-2009 Michael Lotz <mmlr@mlotz.ch>

* Just use memset instead of a custom loop to clear the code area.
* Also rename it from pad1 to code_area as that's what it is.


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


# 1987b05a 10-Aug-2009 Bryce Groff <bgroff@hawaii.edu>

* Added open_partition to disk_device_manager
* Rewrote PartitionMapWriter
* Updated style to match current style guide for the intel partitioning system.


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


# a8d54837 22-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Bryce Groff: Use the same name for BFS as <DiskDeviceTypes.h> does.


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


# 7f96148c 20-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Bryce Groff with changes by myself:
* Added missing name parameter to the partitioning system module child creation
and child creation validation hooks. Pass the name to them.
* Added BPartitionParameterEditor interface, which is/will be used for editing
disk system specific parameters.
* Implemented partition parameter editors for BFS initialization and Intel
partition map child creation.
* Fixed the incorrect supported child partition type iteration in the Intel
partition map add-on. It does now return actual types.
* Handle the "active" flag parameter in the Intel partitioning system module.
* DriveSetup:
- Replaced the "Create" submenu by a simple menu item. The type can now by
chosen in the dialog.
- Make use of initialization and child creation parameter editors. Some
non-generic code has been moved to the respective editor implementations
(BFS, intel partitioning system).


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


# 199f3324 13-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed SECTOR_SIZE in the read-only part of the intel partition scanner;
however, it's still used in the write part.
* Made the read-only code block size agnostic. Only tested with an Apple
iPod so far, and it recognizes its partition fine now. Next test on real
hardware.
* Cleanup.


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


# b41bbb4a 14-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Renamed partition_table_sector to partition_table, and PTS* to
PartitionTable*; the sector is not really a sector, but only the first
512 bytes of it.
* Cleanup.


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


# aecd884e 18-Sep-2008 Stephan Aßmus <superstippi@gmx.de>

* Added some hopefully helpful comments.
* Replaced my bogus comment that Ingo pointed out with a description that
mentions LogicalPartitions also being used to describe so called "inner
extended" partitions, which are only needed to point to the next PTS.


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


# 260bb9a2 13-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a few handy methods. The PartitionType::Set*() methods return bool
(valid), now.


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


# bf95c9ae 07-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* The shadow_changed() FS and partitioning system hooks take an
additional partition_data* child parameter now.
* _user_get_partitionable_spaces() doesn't need to copy the buffer into
the kernel, since it is no input parameter. It also copies back the
actual partitionable spaces count on error, now -- B_BUFFER_OVERFLOW
is returned when the buffer was too small, but then the count must be
returned too.
* Fixed several instances of syscall implementations that unloaded a disk
system, although they didn't load it in the first place. This screwed
up the load count with undesirable consequences.
* _user_create_child_partition() would set the size to the supplied
offset.
* Fixed broken loop in KPhysicalPartition::CreateShadowPartition().
* KPartition::RemoveChild() notified the listeners about the wrong
event.
* Intel partitioning module:
- The *_get_partitionable_spaces() correctly return B_BUFFER_OVERFLOW
now, if the supplied buffer is too small.
- Implemented a part of pm_shadow_changed(), which creates and updates
the PartitionMap, so that the validate_*() hooks have a chance to
work at all.



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


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

* Added the partition size as parameter to the file and partitioning
system initialize() hooks. It's often the only info about the
partition one needs and thus locking the partition just to get it is
no longer necessary.
* intel partitioning system:
- Removed passing around block sizes. We require 512 byte sectors
anyway. In fact using the parent partition's block size was even
wrong.
- Simplified writing the partition map sector.
- Simplified and corrected the partition map initialization.
- We don't fail identifying a partition anymore, if the partition map
contains no partitions. We would never identify a freshly
initialized partition map before.
- Made pm_identify() more intelligent: It determines the priority to
return depending on whether the partition is the device itself and
whether we have recognized child partitions.


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


# c6aab459 12-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Small readability changes to the supported types functions.
* Moved the module definition to the end of the source file, so that the
lengthy prototype could be be removed.
* Fixed the *_supports_initializing() hooks.


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


# 288102e6 26-Jul-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Style cleanup.
* Moved method documentation from headers to source files.
* Removed test code.
* Added TODOs where I spotted problems.


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


# 92b8ea1d 24-Jul-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Write support for the Intel partitioning system module. Courtesy of
Tomas Kucera.


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


# 0e9f724c 02-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

* When run as part of the boot loader, it will now adjust the size of partitions
to fit into the session - this should help bug #238 to disappear.
* Minor cleanup.


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


# deeb2f39 29-Jan-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

A bit of #ifdef'ing to make the stuff edible for userland compilation
with gcc 4.


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


# 311049d7 04-Apr-2005 Axel Dörfler <axeld@pinc-software.de>

Added a new PartitionMap::CountNonEmptyPartitions() - now, a partition map
is only accepted when there is at least one valid partition in it.
Before, the module would accept even the BFS boot loader which is now less
likely (IOW you can now boot with Bochs again).
Also, if there was one invalid partition, the partitions that come after
it are no longer ignored.


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


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

* More debug output.
* We apparently cannot use constants like kPartitionTypeIntelExtended
in static array initializers in the kernel.
* Fixed misunderstanding between Axel (boot loader) and me (Intel
partitioning system module) how to deal with the cookie the
identify() hook returns. We switch to a someone cleaner method by
always invoking free_identify_cookie() for it, even if it were passed
to scan(). Since we want to keep the cookie, we add a reference
counter to it.
This should fix a couple of issues with recognizing the boot partition.


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


# da2082ab 11-Jun-2004 Axel Dörfler <axeld@pinc-software.de>

Added missing <util/kernel_cpp.h>.


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


# 852d12ef 13-Jun-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Ported the intel partitioning system module to the new interface
(disk device manager) and moved it to a nicer place.
First tests look good, though my hard disk structure doesn't even
have extended partitions. Going to install Linux now...


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


# c2069a9a2eb3cf118190de46c39ce2b532abcd51 18-May-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by "starsseed" (with style fixes by myself):
PartitionMapWriter::WriteMBR(): Also read the old MBR from disk when the boot
code shall be overwritten. Prevents overwriting of the disk ID. Closes ticket
#7507.


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


# e4c0070fe64f204140fdd96ffef71e0ce7d36ba6 28-Feb-2010 Michael Lotz <mmlr@mlotz.ch>

Added a bit of logic to possibly fall back to a fixed 512 block MBR in case
certain conditions indicate that we might deal with a fixed 512 bytes MBR on
a non 512 byte block size medium. One condition is that at least one partition
had to be shrunk to fit the available size (which usually happens with larger
block sizes). We retry with a fixed 512 block size once and compare the result
if it didn't improve the situation it is reverted again. This is mostly a
preparation for the upcoming "anyboot" hybrid MBR/ISO images.


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


# a0973602c3d27c22f3d97252e2bb854bb2af606e 30-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Apparently, a drive's size is not always reported the same; at least I have
a drive (which had its MBR created on Linux) report a smaller size than the
size of its first partition.
* Since other operating systems seem to ignore this, we now relax our validity
checks and always adjust the size of a child partition to fit into its parent.


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


# d6778355eea7f86c9418dec7572f12804b0150ff 30-Sep-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

* <DiskDeviceTypes.h>: Removed kPartitionTypeIntel{Primary,Logical} constants.
* Added new header headers/private/system/disk_device_types.h, which defines
the <DiskDeviceTypes.h> constants as macros and which can be used where the
constants cannot be used. The constants are defined using the macros, so now
there's only one place where the string literals should be specified.
* Use the macros in the partitioning systems. I was too lazy to also adjust the
file systems -- most of them seem to hard-code the string literal yet.



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


# eea7b7309ffdff764c7f8fc38704c140a86ddeb0 24-Sep-2009 Michael Lotz <mmlr@mlotz.ch>

When writing a fresh MBR on initialization, also write boot code to it. It uses
the combined PMBR/MBR bootloader from FreeBSD done by André Braga. It will
chainload either a Haiku GUID partition or fallback to the partition marked
active in the MBR.


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


# 9142bf340420ebd06920e66ee0825181b1b4d77b 15-Sep-2009 Michael Lotz <mmlr@mlotz.ch>

* Just use memset instead of a custom loop to clear the code area.
* Also rename it from pad1 to code_area as that's what it is.


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


# 1987b05aa02e2c9b2ff9f852cff73a249af7175a 10-Aug-2009 Bryce Groff <bgroff@hawaii.edu>

* Added open_partition to disk_device_manager
* Rewrote PartitionMapWriter
* Updated style to match current style guide for the intel partitioning system.


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


# a8d54837a8457dbcda5a080e5d4934f9ad4488b5 22-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Bryce Groff: Use the same name for BFS as <DiskDeviceTypes.h> does.


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


# 7f96148cacdbf4ed476c22e6e8148b7f44a91d9e 20-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Patch by Bryce Groff with changes by myself:
* Added missing name parameter to the partitioning system module child creation
and child creation validation hooks. Pass the name to them.
* Added BPartitionParameterEditor interface, which is/will be used for editing
disk system specific parameters.
* Implemented partition parameter editors for BFS initialization and Intel
partition map child creation.
* Fixed the incorrect supported child partition type iteration in the Intel
partition map add-on. It does now return actual types.
* Handle the "active" flag parameter in the Intel partitioning system module.
* DriveSetup:
- Replaced the "Create" submenu by a simple menu item. The type can now by
chosen in the dialog.
- Make use of initialization and child creation parameter editors. Some
non-generic code has been moved to the respective editor implementations
(BFS, intel partitioning system).


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


# 199f33248dcde6cb2803ee4bd5938817ed30239e 13-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Removed SECTOR_SIZE in the read-only part of the intel partition scanner;
however, it's still used in the write part.
* Made the read-only code block size agnostic. Only tested with an Apple
iPod so far, and it recognizes its partition fine now. Next test on real
hardware.
* Cleanup.


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


# b41bbb4a46e75fd526ea9e02bab0c5685ddad403 14-Apr-2009 Axel Dörfler <axeld@pinc-software.de>

* Renamed partition_table_sector to partition_table, and PTS* to
PartitionTable*; the sector is not really a sector, but only the first
512 bytes of it.
* Cleanup.


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


# aecd884e05eb4900c35b98d9a745f5bf9b5f065e 18-Sep-2008 Stephan Aßmus <superstippi@gmx.de>

* Added some hopefully helpful comments.
* Replaced my bogus comment that Ingo pointed out with a description that
mentions LogicalPartitions also being used to describe so called "inner
extended" partitions, which are only needed to point to the next PTS.


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


# 260bb9a2a1e855f9933532f033a1de49444e4329 13-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a few handy methods. The PartitionType::Set*() methods return bool
(valid), now.


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


# bf95c9aee6c36516e5e98a4f8953659c402bbf74 07-Oct-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* The shadow_changed() FS and partitioning system hooks take an
additional partition_data* child parameter now.
* _user_get_partitionable_spaces() doesn't need to copy the buffer into
the kernel, since it is no input parameter. It also copies back the
actual partitionable spaces count on error, now -- B_BUFFER_OVERFLOW
is returned when the buffer was too small, but then the count must be
returned too.
* Fixed several instances of syscall implementations that unloaded a disk
system, although they didn't load it in the first place. This screwed
up the load count with undesirable consequences.
* _user_create_child_partition() would set the size to the supplied
offset.
* Fixed broken loop in KPhysicalPartition::CreateShadowPartition().
* KPartition::RemoveChild() notified the listeners about the wrong
event.
* Intel partitioning module:
- The *_get_partitionable_spaces() correctly return B_BUFFER_OVERFLOW
now, if the supplied buffer is too small.
- Implemented a part of pm_shadow_changed(), which creates and updates
the PartitionMap, so that the validate_*() hooks have a chance to
work at all.



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


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

* Added the partition size as parameter to the file and partitioning
system initialize() hooks. It's often the only info about the
partition one needs and thus locking the partition just to get it is
no longer necessary.
* intel partitioning system:
- Removed passing around block sizes. We require 512 byte sectors
anyway. In fact using the parent partition's block size was even
wrong.
- Simplified writing the partition map sector.
- Simplified and corrected the partition map initialization.
- We don't fail identifying a partition anymore, if the partition map
contains no partitions. We would never identify a freshly
initialized partition map before.
- Made pm_identify() more intelligent: It determines the priority to
return depending on whether the partition is the device itself and
whether we have recognized child partitions.


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


# c6aab4598bd9fa9dcca6f930b0906d25f6df867a 12-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Small readability changes to the supported types functions.
* Moved the module definition to the end of the source file, so that the
lengthy prototype could be be removed.
* Fixed the *_supports_initializing() hooks.


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


# 288102e6c3dedbc9a4fbb295fc9234ec06c7aa18 26-Jul-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Style cleanup.
* Moved method documentation from headers to source files.
* Removed test code.
* Added TODOs where I spotted problems.


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


# 92b8ea1d4406a8743e60ef420d8684255316202f 24-Jul-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Write support for the Intel partitioning system module. Courtesy of
Tomas Kucera.


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


# 0e9f724cf848a82b76a65ea6c5144d197c554495 02-Oct-2006 Axel Dörfler <axeld@pinc-software.de>

* When run as part of the boot loader, it will now adjust the size of partitions
to fit into the session - this should help bug #238 to disappear.
* Minor cleanup.


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


# deeb2f399a15572234d802bb1ea4cfa0de61d2a6 29-Jan-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

A bit of #ifdef'ing to make the stuff edible for userland compilation
with gcc 4.


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


# 311049d75104d6ff977feb56c5eb76c0761a8dde 04-Apr-2005 Axel Dörfler <axeld@pinc-software.de>

Added a new PartitionMap::CountNonEmptyPartitions() - now, a partition map
is only accepted when there is at least one valid partition in it.
Before, the module would accept even the BFS boot loader which is now less
likely (IOW you can now boot with Bochs again).
Also, if there was one invalid partition, the partitions that come after
it are no longer ignored.


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


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

* More debug output.
* We apparently cannot use constants like kPartitionTypeIntelExtended
in static array initializers in the kernel.
* Fixed misunderstanding between Axel (boot loader) and me (Intel
partitioning system module) how to deal with the cookie the
identify() hook returns. We switch to a someone cleaner method by
always invoking free_identify_cookie() for it, even if it were passed
to scan(). Since we want to keep the cookie, we add a reference
counter to it.
This should fix a couple of issues with recognizing the boot partition.


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


# da2082abba8297c1861229e6c127f38bde882e06 11-Jun-2004 Axel Dörfler <axeld@pinc-software.de>

Added missing <util/kernel_cpp.h>.


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


# 852d12ef4ce8c211ebb201900500f2c018634545 13-Jun-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Ported the intel partitioning system module to the new interface
(disk device manager) and moved it to a nicer place.
First tests look good, though my hard disk structure doesn't even
have extended partitions. Going to install Linux now...


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