History log of /haiku/src/add-ons/kernel/partitioning_systems/intel/write_support.cpp
Revision Date Author Comments
# af435dd1 09-Dec-2020 X512 <danger_mail@list.ru>

libroot: remove delete_driver_settings

It is not present in BeOS R5 and it just call unload_driver_settings.

Replace delete_driver_settings usages with unload_driver_settings.
Keep the symbol on x86 for binary compatibility.

Change-Id: I1382710e3a4cb5c65d1249ea0e5880891e6800e4
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3485
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 9274ca84 11-Mar-2021 Adrien Destugues <pulkomandy@pulkomandy.tk>

intel partition map: implement changing the active partition

Implement the needed parts in both the userland add-on (loaded in
DriveSetup) and the kernel side one (used by disk system manager in the
kernel).

This allows changing the active partition in DriveSetup.

Change-Id: Ia65768b5f8f11d626ef24621ae7735723dcbc39d
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3771
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 7f7e76e4 20-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

64-bit compilation fixes for write_overlay and intel partitioning system modules.


# 0b7fe5cb 12-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

partition_module_info::uninitialize(): Added block size parameter for
convenience.


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


# 285f4cf4 12-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added optional partition_module_info::uninitialize() hook. It is supposed to
destroy the partitioning system's on-disk structure.
* Adjusted the existing partitioning system implementations accordingly.
Actually implemented the hook for the intel partitioning system.
* Added Uninitialize() method to KDiskSystem and KPartitioningSystem. The latter
implements the method calling the new module hook.
* _user_uninitialize_partition(): Also let the disk system uninitialize the
on-disk structure.

This fixes the failure to initialize a disk device with BFS, when it contains a
valid partition map with at least one partition.


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


# 2d5c8bde 28-Dec-2010 Michael Lotz <mmlr@mlotz.ch>

CID 10552: Fix double free in error case.


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


# cdb58cbb 14-Aug-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fix a possible NULL dereference. CID 1582


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


# b1477985 29-Jun-2010 Wim van der Meer <wpjvandermeer@gmail.com>

Add parentheses to get rid of 'suggest parentheses around && within ||' warnings.

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


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

* Remove kernel/disk_device_manager from Jamfiles (the add-ons now need to
specify the path).
* Minor cleanup.


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


# d0f743e7 21-Aug-2009 Bryce Groff <bgroff@hawaii.edu>

* Added parameter passing to/from the kernel to userland.
* Removed dependency on deprecated ep_validate_create_child()
* Removed hard coded sector size.
* Style cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32590 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


# 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


# 63d557f0 15-Jul-2009 Michael Lotz <mmlr@mlotz.ch>

Fixing random GCC4 warnings. Mostly missing consts, some parentheses, some braces... Should all be harmless and not change anything.

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


# 1cc5e469 08-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added offset and size parameters to create_child_partition() and
KPartition::CreateChild(). CreateChild() calls AddChild(), which publishes
the new partition, though at that point offset and size were not set, so that
the published devices would not be usable.


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


# 311206ee 14-Apr-2009 Jérôme Duval <korli@users.berlios.de>

gcc4 build fix


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30163 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


# caf98086 14-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

Added a TODO, because I spotted a problem when moving partitions.


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


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

* Only renamed a few variables to fit our style guide.


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


# bdff2c82 12-Sep-2008 Michael Lotz <mmlr@mlotz.ch>

* CID 1044: Add more explicit NULL check before dereferencing in TRACE statement.
* Whitespace cleanup.


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


# 30c37990 09-Sep-2008 Stephan Aßmus <superstippi@gmx.de>

* Added some TODO comments about possible problems I have spotted during
review with regards to the offset range that the PartitionMapWriter is
allowed to write to.


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


# 70c85956 05-Feb-2008 Stephan Aßmus <superstippi@gmx.de>

Spotted a leak while trying to understand what's happening.


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


# 8354dac7 01-Nov-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Folded KPhysicalPartition into KPartition. Removed the notion of shadow
partitions from the disk device manager.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22800 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


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

Moved the write support code into a separate source file.


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


# 7f7e76e4615a652686e68102907732d114968b58 20-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

64-bit compilation fixes for write_overlay and intel partitioning system modules.


# 0b7fe5cbe27f67b14944f2b6b8e9cfaba9c56e30 12-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

partition_module_info::uninitialize(): Added block size parameter for
convenience.


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


# 285f4cf441dbc269553bee753d151cbf0074f232 12-Jun-2011 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added optional partition_module_info::uninitialize() hook. It is supposed to
destroy the partitioning system's on-disk structure.
* Adjusted the existing partitioning system implementations accordingly.
Actually implemented the hook for the intel partitioning system.
* Added Uninitialize() method to KDiskSystem and KPartitioningSystem. The latter
implements the method calling the new module hook.
* _user_uninitialize_partition(): Also let the disk system uninitialize the
on-disk structure.

This fixes the failure to initialize a disk device with BFS, when it contains a
valid partition map with at least one partition.


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


# 2d5c8bdea34440a04bc73b643987620f9f59225a 28-Dec-2010 Michael Lotz <mmlr@mlotz.ch>

CID 10552: Fix double free in error case.


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


# cdb58cbb69b2e9faf50dd5723cc75be970bb7753 14-Aug-2010 Stefano Ceccherini <stefano.ceccherini@gmail.com>

Fix a possible NULL dereference. CID 1582


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


# b1477985ef52d4728aebde8b3ff20661b55a9e21 29-Jun-2010 Wim van der Meer <wpjvandermeer@gmail.com>

Add parentheses to get rid of 'suggest parentheses around && within ||' warnings.

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


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

* Remove kernel/disk_device_manager from Jamfiles (the add-ons now need to
specify the path).
* Minor cleanup.


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


# d0f743e7405b9b723f6488fb8963c0d698fbb20d 21-Aug-2009 Bryce Groff <bgroff@hawaii.edu>

* Added parameter passing to/from the kernel to userland.
* Removed dependency on deprecated ep_validate_create_child()
* Removed hard coded sector size.
* Style cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32590 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


# 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


# 63d557f06f41c0aef30f8a0fcc5b8d2c47981b33 15-Jul-2009 Michael Lotz <mmlr@mlotz.ch>

Fixing random GCC4 warnings. Mostly missing consts, some parentheses, some braces... Should all be harmless and not change anything.

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


# 1cc5e46925a7e64708d7565fe2c1ac3f448c9d58 08-Jul-2009 Ingo Weinhold <ingo_weinhold@gmx.de>

Added offset and size parameters to create_child_partition() and
KPartition::CreateChild(). CreateChild() calls AddChild(), which publishes
the new partition, though at that point offset and size were not set, so that
the published devices would not be usable.


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


# 311206eed729ddb8f41846dd7763aac4b7b809ea 14-Apr-2009 Jérôme Duval <korli@users.berlios.de>

gcc4 build fix


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30163 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


# caf98086152c264a29d06ac3f2d0c83fcb9ad902 14-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

Added a TODO, because I spotted a problem when moving partitions.


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


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

* Only renamed a few variables to fit our style guide.


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


# bdff2c8222b3804cf0e733a0c9fe1197c450f0f0 12-Sep-2008 Michael Lotz <mmlr@mlotz.ch>

* CID 1044: Add more explicit NULL check before dereferencing in TRACE statement.
* Whitespace cleanup.


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


# 30c37990b453384b3db4f402018a44a2d4308334 09-Sep-2008 Stephan Aßmus <superstippi@gmx.de>

* Added some TODO comments about possible problems I have spotted during
review with regards to the offset range that the PartitionMapWriter is
allowed to write to.


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


# 70c85956033cf381c0d6c71fc7656f34bfcd8dca 05-Feb-2008 Stephan Aßmus <superstippi@gmx.de>

Spotted a leak while trying to understand what's happening.


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


# 8354dac78e2ce5da2e5ee1826c37dbc12cacbd18 01-Nov-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

Folded KPhysicalPartition into KPartition. Removed the notion of shadow
partitions from the disk device manager.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22800 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


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

Moved the write support code into a separate source file.


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