History log of /haiku-fatelf/headers/private/kernel/disk_device_manager/ddm_modules.h
Revision Date Author Comments
# 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


# 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


# 1da9f5ce 10-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Added BDiskSystem::ShortName() and everything needed to get it there.
* Added BDiskDeviceRoster::GetDiskSystem() method, that can get a disk system
by short/pretty/module name - since they should all be unique, I put them
in a single namespace, please complain if you don't like that :-)
* Cleaned up DiskSystem.h and DiskDeviceRoster.h according to the updated
header guidelines.
* Renamed ntfs pretty name from "ntfs File System" to "Windows NT File System".


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


# 76a8ec23 22-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added disk system flags for whether a partition name and partition
content name are supported.
* Added file_system_module_info::flags (analogously to
partition_module_info::flags) which indicate which disk device
features the FS supports.
* Replaced the
file_system_module_info/partition_module_info::supports_*()
hooks by a get_supported_operations() hook and for partitioning
systems additionally a get_supported_child_operations() hook.
* Updated file and partitioning systems accordingly.
* Updated fs_shell accordingly.
* Updated the DDM accordingly. The syscall interface remains unchanged,
though.
* _user_supports_initializing_partition() also checks whether the parent
partitioning system is content now.


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


# 47f39c93 23-May-2005 Axel Dörfler <axeld@pinc-software.de>

Merged the disk device manager module interface for file systems with the
VFS's interface, so that a file system only has to implement one interface.
As a side effect, the automatic file system detection may now work (not yet
tested, though).


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


# ee1ebe37 24-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added ShadowPartitionChanged() to KDiskSystem and respective hooks
to the module interfaces. So the disk system will be informed, when a
shadow partition has changed and it is allowed to do necessary
adjustions (e.g. adjusting the cookie, the parameters, or on
partitioning system initialization even creating special child
partitions (apple partitioning system)).
* Added `int32 *index' parameter to ValidateCreateChild(). So the
partitioning system can report at which index the new child shall be
inserted.


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


# f985036e 21-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Reordered for aesthetical reasons. :-)


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


# 3ee6c178 20-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Some fixes of/changes to the API. Shortened names where possible.


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


# 708a31ba 19-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Added SupportsSetting[Content]Parameters() to the KDiskSystem interface and respective functions to the module interface. Some re-ordering of methods/functions for aesthetical reasons. :-)


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


# 18b90323 18-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Added flags for disk systems.


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


# 3f60a013 16-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Added "name" parameter to KDiskSystem::[Validate]Initialize() and the respective module API functions.


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


# 1f3f1294 16-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a IsSubSystemFor() method to the KDiskSystem interface and respective calls for the module interfaces.


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


# 0fbb290f 15-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Some changes to/fixes of the KDiskSystem interface and the disk system module interface.


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


# 3ec225ba 22-Jun-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Some smaller changes to the module interfaces.


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


# 3ffe9138 10-Jun-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Turned the loose set of functions into partition and FS module interfaces.


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


# 4c212afe 09-Jun-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Headers for the disk device manager. Very early state.


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


# 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


# 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


# 1da9f5cea5ea4d32c539a01cd94a7b605e941beb 10-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Added BDiskSystem::ShortName() and everything needed to get it there.
* Added BDiskDeviceRoster::GetDiskSystem() method, that can get a disk system
by short/pretty/module name - since they should all be unique, I put them
in a single namespace, please complain if you don't like that :-)
* Cleaned up DiskSystem.h and DiskDeviceRoster.h according to the updated
header guidelines.
* Renamed ntfs pretty name from "ntfs File System" to "Windows NT File System".


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


# 76a8ec23db391176bac91f33c5f1fc6e8e41866c 22-Aug-2007 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added disk system flags for whether a partition name and partition
content name are supported.
* Added file_system_module_info::flags (analogously to
partition_module_info::flags) which indicate which disk device
features the FS supports.
* Replaced the
file_system_module_info/partition_module_info::supports_*()
hooks by a get_supported_operations() hook and for partitioning
systems additionally a get_supported_child_operations() hook.
* Updated file and partitioning systems accordingly.
* Updated fs_shell accordingly.
* Updated the DDM accordingly. The syscall interface remains unchanged,
though.
* _user_supports_initializing_partition() also checks whether the parent
partitioning system is content now.


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


# 47f39c93cbd7db06e72642b047f1fc327852684c 23-May-2005 Axel Dörfler <axeld@pinc-software.de>

Merged the disk device manager module interface for file systems with the
VFS's interface, so that a file system only has to implement one interface.
As a side effect, the automatic file system detection may now work (not yet
tested, though).


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


# ee1ebe375c693d182c224ee71770db13fc446ddf 24-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added ShadowPartitionChanged() to KDiskSystem and respective hooks
to the module interfaces. So the disk system will be informed, when a
shadow partition has changed and it is allowed to do necessary
adjustions (e.g. adjusting the cookie, the parameters, or on
partitioning system initialization even creating special child
partitions (apple partitioning system)).
* Added `int32 *index' parameter to ValidateCreateChild(). So the
partitioning system can report at which index the new child shall be
inserted.


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


# f985036e31cf4bd77efdc864ad0975e9eb2a42b6 21-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Reordered for aesthetical reasons. :-)


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


# 3ee6c178d5e7a11a759fb0963bb991a39bad1faf 20-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Some fixes of/changes to the API. Shortened names where possible.


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


# 708a31badf9c4dcdd45a70ad7f11edd5ad6238ee 19-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Added SupportsSetting[Content]Parameters() to the KDiskSystem interface and respective functions to the module interface. Some re-ordering of methods/functions for aesthetical reasons. :-)


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


# 18b90323d9f2b302f2083a0758a398075000d8db 18-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Added flags for disk systems.


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


# 3f60a0136937cf3288d0e730aa84efa3cf4a90cc 16-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Added "name" parameter to KDiskSystem::[Validate]Initialize() and the respective module API functions.


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


# 1f3f1294a80fce3af96644308de32d0c1c67b315 16-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Added a IsSubSystemFor() method to the KDiskSystem interface and respective calls for the module interfaces.


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


# 0fbb290f51b950366fc992907e3a3973a7e7c65e 15-Jul-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Some changes to/fixes of the KDiskSystem interface and the disk system module interface.


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


# 3ec225ba22a350a70cbe482161a1fc1a3eb6d749 22-Jun-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Some smaller changes to the module interfaces.


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


# 3ffe913826765504e535f1526c33a066d65662c3 10-Jun-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Turned the loose set of functions into partition and FS module interfaces.


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


# 4c212afefb9c1800bd32243d52a59dcccfecaaa2 09-Jun-2003 Ingo Weinhold <ingo_weinhold@gmx.de>

Headers for the disk device manager. Very early state.


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