History log of /haiku/headers/os/drivers/device_manager.h
Revision Date Author Comments
# 08bc0cc9 15-Mar-2020 Jérôme Duval <jerome.duval@gmail.com>

device_manager: add find_child_node

to find a node in the hierarchy.

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


# 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


# 902559ce 23-Jul-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added a mutex to IORequest. It doesn't look like we can get around
using a lock and I'm not very much in favor of a global one.
* Added "finished" callback to IORequest.
* IOOperation::Finish() no longer invokes its parent request's
ChunkFinished(). The finisher does this instead. ChunkFinished()
can optionally remove the chunk from the parent.
* Added IORequest::Wait() which waits for the completion of the request.
* Introduced IORequestChunk::ResetStatus() to make setting the status to
"pending" somewhat more explicit.
* Implemented the missing IOScheduler::SetCallback() methods.
* The NotifyAll() calls on the IOScheduler's condition variables were
missing, so it just waited forever.
* Added some more debug output.


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


# 44b6c0f4 28-May-2008 Axel Dörfler <axeld@pinc-software.de>

Oops, this shouldn't have been part of this file, forgot to delete it when
copying from the playground.


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


# 5bd8987f 29-May-2008 François Revol <revol@free.fr>

fix C++ linkage of global var... it shouldn't be here anyway, but I suppose it's temporary.
This should fix the (gcc4 at least) build.


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


# 368167ed 26-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Integration of the new driver architecture.
* Moved devfs from fs/ to device_manager/, and separated the legacy driver
support from it.
* Removed fast_log module.
* There are a couple of (temporary) regressions, though:
- legacy SATA and ISA IDE support is disabled, the drivers haven't been
ported yet.
- The not yet used ATA bus manager hasn't been ported yet, either.
- AHCI changes have not been tested.
- the listdev command has been removed from the build (as it currently
doesn't work anymore).
- device manager generated IDs currently are not freed anymore when a device
node is removed.
- generic drivers can't yet use the new driver architecture.
- simple busses that do not support device types won't work yet.
- legacy driver publishing/unpublishing (ie. what USB needs) has not been
tested, and may be broken.


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


# 3277aade 06-Feb-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added get_root() to device_manager_info. Surprisingly enough, it
returns the root device node. Now its actually possible to
traverse the device node tree without a node to start with.
* Fixed execution order problem in dm_get_next_child_node(). The
supplied node was put first (which could cause its immediate
deletion), but was still accessed thereafter.


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


# 6094d89f 11-May-2005 Axel Dörfler <axeld@pinc-software.de>

Merged branches/developer/axeld/driver_recognition changed r12307:12637 into trunk.


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


# 1a270688 18-Jan-2005 Axel Dörfler <axeld@pinc-software.de>

Renamed the probe() hook to register_device() (might not yet match the
functionality as good as probe(), but that will change soon).


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


# b83a8af4 11-Jan-2005 Axel Dörfler <axeld@pinc-software.de>

First roll of renames: pnp_node_hamdle is now device_node_handle, pnp_node_attr
is now device_attr, pnp_bus_info bus_module_info, pnp_driver_info driver_module_info, ...
Small cleanup (more would be needed, but this has time).


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


# 87611252 10-May-2004 Axel Dörfler <axeld@pinc-software.de>

Temporarily merged former pnp_driver.h and pnp_bus.h into device_manager.h.
This will be changed at a later time.


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


# 0d7f2390 03-May-2004 Axel Dörfler <axeld@pinc-software.de>

The main header for the device_manager - work in progress.


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


# 902559ce32c16724ad24cfa90582097ba8d6fd43 23-Jul-2008 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added a mutex to IORequest. It doesn't look like we can get around
using a lock and I'm not very much in favor of a global one.
* Added "finished" callback to IORequest.
* IOOperation::Finish() no longer invokes its parent request's
ChunkFinished(). The finisher does this instead. ChunkFinished()
can optionally remove the chunk from the parent.
* Added IORequest::Wait() which waits for the completion of the request.
* Introduced IORequestChunk::ResetStatus() to make setting the status to
"pending" somewhat more explicit.
* Implemented the missing IOScheduler::SetCallback() methods.
* The NotifyAll() calls on the IOScheduler's condition variables were
missing, so it just waited forever.
* Added some more debug output.


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


# 44b6c0f4b6c7facb88dcb6a1b0755b277423ff1c 28-May-2008 Axel Dörfler <axeld@pinc-software.de>

Oops, this shouldn't have been part of this file, forgot to delete it when
copying from the playground.


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


# 5bd8987ff09b7f2edc8bc1587dd613f9900dca1f 29-May-2008 François Revol <revol@free.fr>

fix C++ linkage of global var... it shouldn't be here anyway, but I suppose it's temporary.
This should fix the (gcc4 at least) build.


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


# 368167ede8118f72da8c9ac5bb98ce9b46a8a639 26-May-2008 Axel Dörfler <axeld@pinc-software.de>

* Integration of the new driver architecture.
* Moved devfs from fs/ to device_manager/, and separated the legacy driver
support from it.
* Removed fast_log module.
* There are a couple of (temporary) regressions, though:
- legacy SATA and ISA IDE support is disabled, the drivers haven't been
ported yet.
- The not yet used ATA bus manager hasn't been ported yet, either.
- AHCI changes have not been tested.
- the listdev command has been removed from the build (as it currently
doesn't work anymore).
- device manager generated IDs currently are not freed anymore when a device
node is removed.
- generic drivers can't yet use the new driver architecture.
- simple busses that do not support device types won't work yet.
- legacy driver publishing/unpublishing (ie. what USB needs) has not been
tested, and may be broken.


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


# 3277aade49d84f4562a8bd20d165927104c802fb 06-Feb-2006 Ingo Weinhold <ingo_weinhold@gmx.de>

* Added get_root() to device_manager_info. Surprisingly enough, it
returns the root device node. Now its actually possible to
traverse the device node tree without a node to start with.
* Fixed execution order problem in dm_get_next_child_node(). The
supplied node was put first (which could cause its immediate
deletion), but was still accessed thereafter.


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


# 6094d89f2f0db00588b30428810e3cddc6b22731 11-May-2005 Axel Dörfler <axeld@pinc-software.de>

Merged branches/developer/axeld/driver_recognition changed r12307:12637 into trunk.


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


# 1a2706886513c20507af7346ee1d07c7b48ff8e3 18-Jan-2005 Axel Dörfler <axeld@pinc-software.de>

Renamed the probe() hook to register_device() (might not yet match the
functionality as good as probe(), but that will change soon).


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


# b83a8af4e0129415c27a1d12fd38ec145caebaf2 11-Jan-2005 Axel Dörfler <axeld@pinc-software.de>

First roll of renames: pnp_node_hamdle is now device_node_handle, pnp_node_attr
is now device_attr, pnp_bus_info bus_module_info, pnp_driver_info driver_module_info, ...
Small cleanup (more would be needed, but this has time).


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


# 87611252cb05567942e28a4dd937cd546d75888b 10-May-2004 Axel Dörfler <axeld@pinc-software.de>

Temporarily merged former pnp_driver.h and pnp_bus.h into device_manager.h.
This will be changed at a later time.


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


# 0d7f2390a4d13279ef8de31dd68405f8464e3b62 03-May-2004 Axel Dörfler <axeld@pinc-software.de>

The main header for the device_manager - work in progress.


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