cef80a1fb7
Fixes bfs part of #10336. Untested on SATA (don't have a testing drive to sacrifice) but working fine on SD/MMC. This requires moving the copy from kernel to userland into the devfs. As a result the code in the disk drivers becomes a bit simpler. Also add some documentation for the common ioctls to implement for a disk device. Change-Id: Ie84b6a1d293828d33902a64b3c9d4b19aa6eacb1 Reviewed-on: https://review.haiku-os.org/c/haiku/+/3640 Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
43 lines
1.3 KiB
Plaintext
43 lines
1.3 KiB
Plaintext
Here is a list of ioctls usually implemented by disk devices.
|
|
|
|
B_GET_DEVICE_SIZE
|
|
|
|
The parameter is a size_t and is filled with the disk size in bytes.
|
|
This is limited to 4GB and not very useful. B_GET_GEOMETRY is used instead.
|
|
|
|
B_GET_GEOMETRY
|
|
|
|
The parameter is a device_geometry structure to be filled with the device geometry.
|
|
|
|
B_GET_ICON_NAME
|
|
|
|
Deprecated. Get the name of an icon to use. The icons are hardcoded in Tracker.
|
|
|
|
B_GET_VECTOR_ICON
|
|
|
|
The parameter is a device_icon structure to be populated with the icon data in HVIF format.
|
|
This icon is then used to show the disk in Tracker, for example.
|
|
|
|
B_EJECT_DEVICE
|
|
|
|
Eject the device (for removable devices).
|
|
|
|
B_LOAD_MEDIA
|
|
|
|
Load the device (reverse of eject) if possible.
|
|
|
|
B_FLUSH_DRIVE_CACHE
|
|
|
|
Make sure all data is stored on persistent storage and not in caches (including any caching inside
|
|
the device)
|
|
|
|
B_TRIM_DEVICE
|
|
|
|
The parameter is an fs_trim_data structure. It is guaranteed to be in kernel memory because
|
|
the partition manager pre-processes requests coming from userland and makes sure no sectors
|
|
are outside the partition range for a specific partition device.
|
|
|
|
Mark the listed areas on disk as unused, allowing future reads to these areas to return
|
|
random data or read errors. Flash memory devices (SSD, MMC, ...) may use this information
|
|
to optimize their internal storage.
|