History log of /haiku/src/add-ons/kernel/drivers/disk/scsi/scsi_cd/scsi_cd.cpp
Revision Date Author Comments
# 425ac1b6 20-Jun-2023 Alexander von Gluck IV <kallisti5@unixzen.com>

refactor: Swap %Ld for %lld in all format usages

* %Ld is an undocumented alias for %lld in glibc.
* muslc doesn't implement it for this reason.
* While we will likely never drop %Ld support,
lets clean house and set a better example.

Change-Id: Id46dad3104abae483e80cc5c05d1464d3ecd8030
Reviewed-on: https://review.haiku-os.org/c/haiku/+/6636
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 103c671e 27-Apr-2023 Augustin Cavalier <waddlesplash@gmail.com>

AbstractModuleDevice: Add generic read/write hooks via "io" hook.

This substitutes for the already-existing behavior of scsi_cd, scsi_disk,
and virtio_block, so we can delete their hooks and let them use
these new generic fallbacks.

Some other drivers perform clamping, and so using these fallbacks would
constitute a behavioral change.

Change-Id: I9a2e503f2e03abc276bdfc02d1cff1565a9742e9


# f64b0991 27-Apr-2023 Augustin Cavalier <waddlesplash@gmail.com>

scsi & virtio: Clean up IORequest usage.

* Use TransferredBytes() instead of assuming length.
* Consolidate checks and invoke io hook instead of scheduler directly.


# 215b685f 11-Dec-2022 X512 <danger_mail@list.ru>

kernel: Drop non-standard GNU inline assignment syntax

* We needed this previously due to our gcc2 compiled kernel.
* Now that our kernel is always latest gcc, we can move to the
c++20 syntax for inline assignment.
* Improves compatibility with clang, less GNU-specific stuff

Change-Id: Ib7272a0a52554a31e9a0e788fd3f031db9049795
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5898
Reviewed-by: Alex von Gluck IV <kallisti5@unixzen.com>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 688acf41 15-Sep-2022 Jérôme Duval <jerome.duval@gmail.com>

add physical_block_size field where applicable

only scsi_disk checks the actual value, other drivers take the logical block size.

This change reports the physical block size from the disk rather than the block
size used by IDE/SATA/SCSI commands. On typical modern SATA disks, the SATA
commands will use 512 byte blocks, but the disk will actually read and write
4K blocks internally. This is only of importance for partition alignment for DriveSetup,
and is independant of file systems or partitioning systems. This could also influence
the recommended block size for some file systems.

Change-Id: Id0f2e22659e89fcef64c1f8d04f81cd68995e01f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5667
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# fb25e734 07-Dec-2021 Augustin Cavalier <waddlesplash@gmail.com>

scsi_cd: Remove unused code.


# dad52bdd 10-Nov-2020 X512 <danger_mail@list.ru>

drivers/scsi_cd: set device name

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


# ff38df48 16-Jul-2019 Adrien Destugues <pulkomandy@pulkomandy.tk>

PVS V568: strange uses of sizeof

Change-Id: I4c4e0395f579cf3b5ec4db2c30bbe2dc2d866de7
Reviewed-on: https://review.haiku-os.org/c/1608
Reviewed-by: Stephan Aßmus <superstippi@gmx.de>


# 061236d4 27-May-2019 Jérôme Duval <jerome.duval@gmail.com>

scsi_cd: reset io_scheduler and dma_resource on uninit.

it seems possible that a file descriptor is still opened after the device
is uninited. at least handle properly the situation.
help with #15089

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


# ef36e92c 26-Sep-2014 Lioncash <mathew1800@gmail.com>

scsi_cd: Use the size of a data buffer and not its pointer size


# 9b9cb227 08-Oct-2012 Axel Dörfler <axeld@pinc-software.de>

Consolidated and fixed device_geometry computation.

* The only implementation that would accept more than 2 TB was the one in
scsi_disk. But even that one was limited to 63 TB.
* Now there is a new utility function devfs_compute_geometry_size() which
does it correctly for sizes up to 2^64 which should be good enough for
quite some time :-)
* This fixes bug #8992.


# 0063d2ba 20-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Various 64-bit fixes to SCSI and ATA bus managers/drivers.

Mostly compilation fixes, as well as a few 64-bit safety fixes. I've
briefly looked through everything for any obvious issues and fixed
the ones I've found, and it seems like they're working properly, though
there could be some more well hidden ones that I've missed.


# 5c76afb0 27-Sep-2010 Axel Dörfler <axeld@pinc-software.de>

* We need to ignore the result of update_capacity() in cd_init_device(), or else
one cannot open the device anymore if no media is present - this did also let
the disk device manager ignore CD-ROMs in case there was no media present
during boot. This fixes bug #6130.
* Disabled debug output again.
* Fixed missing newline in debug output.


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


# 32ebe87c 04-Jun-2010 Axel Dörfler <axeld@pinc-software.de>

* Enabled debug output for now.


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


# 435c43f5 02-Jun-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Introduced type generic_io_vec, which is similar to iovec, but uses types
that are wide enough for both virtual and physical addresses.
* DMABuffer, IORequest, IOScheduler,... and code using them: Use
generic_io_vec and generic_{addr,size}_t where necessary.


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


# 8b5a01bb 01-Jun-2010 Axel Dörfler <axeld@pinc-software.de>

* The adjusted capacity was one block too short.
* Added debug output to test_capacity().
* Minor other cleanup.


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


# 8e8739eb 01-Jun-2010 Axel Dörfler <axeld@pinc-software.de>

* Try at solving bug #6036; similar to Linux, we now try to cut down the
capacity by trying to read at the end of the medium.
* Not tested at all yet.


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


# 8825d45d 31-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Minor cleanup.


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


# 03768a40 31-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Introduced IOScheduler::MediaChanged() - this is now called by scsi_cd instead
of having the logic be triggered by IOScheduler::SetDeviceCapacity(), as that
one might actually be called more often (for each call to update_capacity(),
ie. each B_GET_GEOMETRY/B_GET_DEVICE_SIZE will trigger it), and there is no
reason to throw away the cache every time (will make a difference during
partition/file system detection).
* In cd_init_device() just call update_capacity() instead of duplicating its
code.


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


# e76856a4 26-Apr-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Enabled the IOCache depending on the amount of free pages. Currently the
limit is 180 MB.


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


# 0715529b 26-Apr-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Renamed IOScheduler to IOSchedulerSimple and pulled an interface IOScheduler
out of it.


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


# 574e5742 23-Apr-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Optionally use the IOCache instead of the IOScheduler (specified by
USE_IO_CACHE macro in the header). Currently disabled, though. It works fine,
if the machine has a good deal of RAM. I tested with the anyboot CD -- the
boot and installation times drop dramatically. On machines with little RAM
there are issues, though. Apparently the cache isn't drained fast enough, so
that other allocations can fail.


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


# 533cba7e 28-Jul-2009 Axel Dörfler <axeld@pinc-software.de>

bonefish + axeld:
* Reverted r31809 as it introduced a race condition; if the I/O request had been
notified, it could already been deleted at that point.
* Instead, we need to notify the request in each file system/driver that uses
it. Added new notify_io_request() function that does that exactly.
* Added a TODO comment to the userlandfs where the request notification needs
a bit more thought.


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


# 04428553 01-Feb-2009 Stephan Aßmus <superstippi@gmx.de>

Specify direction flag in all calls of simple_exec(). Thanks, Marcus!


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


# 887be580 27-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Don't try to update the DMAResource in case there is no medium (also saves
a panic when ejecting a disc, since updating DMAResource isn't implemented
yet...).


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


# bba1a2b1 27-Sep-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Check for 0 capacity in the read(), write(), and io() hooks. In this
case the cd_driver_info::io_scheduler field is not initialized and we
shouldn't try to access it. No idea why, but this only crashed with
the gcc4 build.
* Fixed warning with tracing enabled.


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


# 025f7c32 24-Aug-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

A DMABuffer doesn't have a fixed bounce buffer assigned anymore. We do
dynamically assign one when needed. Under the assumption that in most
cases a bounce buffer isn't needed, we can thus prepare a lot more
operations.


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


# 58f14b4c 17-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Changed scsi_disk/scsi_cd to return FreeDesktop.org compatible icon names,
see http://www.freedesktop.org/wiki/Specifications/icon-naming-spec for more
info.


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


# 06ba3f0a 17-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Added two new ways to retrieve an icon from a device:
- B_GET_ICON_NAME: returns the name of an icon. This will then be read from
a predefined location on disk (not yet implemented). This would also allow
to add specifiers like "-boot", or "-fat|bfs|ntfs|...", and have special
icons for those.
- B_GET_VECTOR_ICON: retrieves the vector icon of a device, if any.
* get_device_icon(BBitmap*, ...) now supports other color spaces than B_CMAP8.
* Added get_device_icon(), BPartition::GetIcon(), and BVolume::GetIcon()
variants that can also retrieve the icon data directly (like
BNodeInfo::GetIcon()).
* Reenabled the previous BPartition::GetIcon(), based on a patch by
Justin O'Dell - this fixes #1391.
* Tracker's MountMenu class now uses B_RGBA32 icons, instead of B_CMAP8.
* Added vector icon to scsi_disk, and scsi_cd. The former doesn't have any
special removable icon, though.
* Header cleanup, added/updated license, whitespace cleanup.
* Marked deprecated/obsolete driver ioctls in Drivers.h.
* Removed OpenBeOS namespace in the headers I touched that still had them.


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


# 70e2d4ac 14-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Replaced the B_BLOCK_DEVICE_* defines with B_DMA_* defines that better match
our dma_restrictions structure (but we're using blocks instead of bytes,
since unlike the block size, the restrictions attributes are constant).
* We might want to use blocks for the dma_restrictions structure as well in
the future...
* Fixed another bug in the device_node variant of DMAResource::Init(): the max
segment size was specified in blocks as well.
* Removed the "hardcode" block_io module and header.


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


# 61b1a536 14-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Fixed the mix of bufferCount vs. max_segment_count with regards to
B_BLOCK_DEVICE_MAX_SG_BLOCKS as pointed out by Ingo.


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


# 72ebbe42 07-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Forgot to allocate the dma_resource before using it. Now scsi_cd works again.


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


# 65f1e8ec 05-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Ported scsi_cd, too, still untested.
* This should have been part of r26828, although it did not break the build :-)


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


# 3736cb7d 31-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Ported scsi_cd to the new driver architecture.
* Added legacy_sata and scsi_cd back to the image.
* Minor cleanup in scsi_disk.


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


# ef36e92c057300bf4c278b4350b7c3a3831a3373 26-Sep-2014 Lioncash <mathew1800@gmail.com>

scsi_cd: Use the size of a data buffer and not its pointer size


# 9b9cb227c7835fa55076dafac035a25e30b089ff 08-Oct-2012 Axel Dörfler <axeld@pinc-software.de>

Consolidated and fixed device_geometry computation.

* The only implementation that would accept more than 2 TB was the one in
scsi_disk. But even that one was limited to 63 TB.
* Now there is a new utility function devfs_compute_geometry_size() which
does it correctly for sizes up to 2^64 which should be good enough for
quite some time :-)
* This fixes bug #8992.


# 0063d2ba513ddb6bd54c329aa0d16c7e184862da 20-Jul-2012 Alex Smith <alex@alex-smith.me.uk>

Various 64-bit fixes to SCSI and ATA bus managers/drivers.

Mostly compilation fixes, as well as a few 64-bit safety fixes. I've
briefly looked through everything for any obvious issues and fixed
the ones I've found, and it seems like they're working properly, though
there could be some more well hidden ones that I've missed.


# 5c76afb02530b031fee0b4b00b1bf43c28a9942a 27-Sep-2010 Axel Dörfler <axeld@pinc-software.de>

* We need to ignore the result of update_capacity() in cd_init_device(), or else
one cannot open the device anymore if no media is present - this did also let
the disk device manager ignore CD-ROMs in case there was no media present
during boot. This fixes bug #6130.
* Disabled debug output again.
* Fixed missing newline in debug output.


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


# 32ebe87c01ec420386f8c3f3196ef1d741921955 04-Jun-2010 Axel Dörfler <axeld@pinc-software.de>

* Enabled debug output for now.


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


# 435c43f5912b109e7d5cf682865d2061e62fad8c 02-Jun-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

* Introduced type generic_io_vec, which is similar to iovec, but uses types
that are wide enough for both virtual and physical addresses.
* DMABuffer, IORequest, IOScheduler,... and code using them: Use
generic_io_vec and generic_{addr,size}_t where necessary.


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


# 8b5a01bb4dff7982711aea6c42c2b8c5d9716941 01-Jun-2010 Axel Dörfler <axeld@pinc-software.de>

* The adjusted capacity was one block too short.
* Added debug output to test_capacity().
* Minor other cleanup.


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


# 8e8739eb3c59881308a38cce2dcf6fc3e91a768e 01-Jun-2010 Axel Dörfler <axeld@pinc-software.de>

* Try at solving bug #6036; similar to Linux, we now try to cut down the
capacity by trying to read at the end of the medium.
* Not tested at all yet.


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


# 8825d45d5766fd67320dff0db20ac5a260dce7d3 31-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Minor cleanup.


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


# 03768a405289a006f256465ea93a87faed5ea339 31-May-2010 Axel Dörfler <axeld@pinc-software.de>

* Introduced IOScheduler::MediaChanged() - this is now called by scsi_cd instead
of having the logic be triggered by IOScheduler::SetDeviceCapacity(), as that
one might actually be called more often (for each call to update_capacity(),
ie. each B_GET_GEOMETRY/B_GET_DEVICE_SIZE will trigger it), and there is no
reason to throw away the cache every time (will make a difference during
partition/file system detection).
* In cd_init_device() just call update_capacity() instead of duplicating its
code.


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


# e76856a4a5d2d03d6bf6bc21362de534a1e774a0 26-Apr-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Enabled the IOCache depending on the amount of free pages. Currently the
limit is 180 MB.


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


# 0715529b59a3965beea04288a564458225d6f470 26-Apr-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Renamed IOScheduler to IOSchedulerSimple and pulled an interface IOScheduler
out of it.


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


# 574e5742ad3b11557f717e2bc18c042f00e338b3 23-Apr-2010 Ingo Weinhold <ingo_weinhold@gmx.de>

Optionally use the IOCache instead of the IOScheduler (specified by
USE_IO_CACHE macro in the header). Currently disabled, though. It works fine,
if the machine has a good deal of RAM. I tested with the anyboot CD -- the
boot and installation times drop dramatically. On machines with little RAM
there are issues, though. Apparently the cache isn't drained fast enough, so
that other allocations can fail.


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


# 533cba7eff7465e14de98036c8a2a0aeeba2bdf9 28-Jul-2009 Axel Dörfler <axeld@pinc-software.de>

bonefish + axeld:
* Reverted r31809 as it introduced a race condition; if the I/O request had been
notified, it could already been deleted at that point.
* Instead, we need to notify the request in each file system/driver that uses
it. Added new notify_io_request() function that does that exactly.
* Added a TODO comment to the userlandfs where the request notification needs
a bit more thought.


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


# 04428553b19c93b02777bac2eca50c0c357c5adf 01-Feb-2009 Stephan Aßmus <superstippi@gmx.de>

Specify direction flag in all calls of simple_exec(). Thanks, Marcus!


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


# 887be5801abef3b2d914bc58c70b2f608d47d22e 27-Oct-2008 Axel Dörfler <axeld@pinc-software.de>

* Don't try to update the DMAResource in case there is no medium (also saves
a panic when ejecting a disc, since updating DMAResource isn't implemented
yet...).


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


# bba1a2b132481aab328f97e3cba93899639d1a7a 27-Sep-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Check for 0 capacity in the read(), write(), and io() hooks. In this
case the cd_driver_info::io_scheduler field is not initialized and we
shouldn't try to access it. No idea why, but this only crashed with
the gcc4 build.
* Fixed warning with tracing enabled.


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


# 025f7c3289220e25bc02d546d9f3acbcf605ae50 24-Aug-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

A DMABuffer doesn't have a fixed bounce buffer assigned anymore. We do
dynamically assign one when needed. Under the assumption that in most
cases a bounce buffer isn't needed, we can thus prepare a lot more
operations.


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


# 58f14b4cc7059b81eb37ca44273f5be0a121bffd 17-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Changed scsi_disk/scsi_cd to return FreeDesktop.org compatible icon names,
see http://www.freedesktop.org/wiki/Specifications/icon-naming-spec for more
info.


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


# 06ba3f0acb06fd0a5818f2609886fe1d35fbfbd3 17-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Added two new ways to retrieve an icon from a device:
- B_GET_ICON_NAME: returns the name of an icon. This will then be read from
a predefined location on disk (not yet implemented). This would also allow
to add specifiers like "-boot", or "-fat|bfs|ntfs|...", and have special
icons for those.
- B_GET_VECTOR_ICON: retrieves the vector icon of a device, if any.
* get_device_icon(BBitmap*, ...) now supports other color spaces than B_CMAP8.
* Added get_device_icon(), BPartition::GetIcon(), and BVolume::GetIcon()
variants that can also retrieve the icon data directly (like
BNodeInfo::GetIcon()).
* Reenabled the previous BPartition::GetIcon(), based on a patch by
Justin O'Dell - this fixes #1391.
* Tracker's MountMenu class now uses B_RGBA32 icons, instead of B_CMAP8.
* Added vector icon to scsi_disk, and scsi_cd. The former doesn't have any
special removable icon, though.
* Header cleanup, added/updated license, whitespace cleanup.
* Marked deprecated/obsolete driver ioctls in Drivers.h.
* Removed OpenBeOS namespace in the headers I touched that still had them.


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


# 70e2d4ac43aa54d8c567ec12e6b24155d3171dd9 14-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Replaced the B_BLOCK_DEVICE_* defines with B_DMA_* defines that better match
our dma_restrictions structure (but we're using blocks instead of bytes,
since unlike the block size, the restrictions attributes are constant).
* We might want to use blocks for the dma_restrictions structure as well in
the future...
* Fixed another bug in the device_node variant of DMAResource::Init(): the max
segment size was specified in blocks as well.
* Removed the "hardcode" block_io module and header.


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


# 61b1a536e8e346af6559e8353786091b85629a9d 14-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Fixed the mix of bufferCount vs. max_segment_count with regards to
B_BLOCK_DEVICE_MAX_SG_BLOCKS as pointed out by Ingo.


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


# 72ebbe42447f39942528f912c2d84410e8423833 07-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Forgot to allocate the dma_resource before using it. Now scsi_cd works again.


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


# 65f1e8eceb585263436db23748f6207bea0e3a3b 05-Aug-2008 Axel Dörfler <axeld@pinc-software.de>

* Ported scsi_cd, too, still untested.
* This should have been part of r26828, although it did not break the build :-)


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


# 3736cb7d04eaeea66d7d272c038de2d0fad52d06 31-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Ported scsi_cd to the new driver architecture.
* Added legacy_sata and scsi_cd back to the image.
* Minor cleanup in scsi_disk.


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