Adrien Destugues a5061ecec5 Generate developer docs with Sphinx
An effort was started some time ago to consolidate all internal
documentation in the git tree. However, this was just an accumulation of
files in various formats without any strucutre or way to browse it,
which results in no one even knowing that we have docs here.

This converts most of the files to restructuredtext and uses Sphinx to
generate an HTML browsable user manual (with a table of content and a
first attempt to put things in a global hierarchy).

There are almost no changes to the documentation content in this commit
(some obviously obsolete things were removed). The plan is to get the
toolchain up and running to make these docs easily available, and only
then see about improving the content. We can migrate some things off the
wiki and website, and rework the table of contents to have some more
hierarchy levels because currently it's a bit messy.

Change-Id: I924ac9dc6e753887ab56f18a09bdb0a1e1793bfd
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4370
Reviewed-by: Niels Sascha Reedijk <niels.reedijk@gmail.com>
2021-08-27 11:41:17 +00:00

54 lines
1.5 KiB
ReStructuredText

Disk driver ioctls
==================
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.