5308 Commits

Author SHA1 Message Date
Salvatore Benedetto
acf9124f1b * Added definition for the hash related methods (not implemented)
* Continue working in the _FinishTransfer thread
* added next_done_descriptor in ohci_[general|isochronous]_td structure in order to handle
collisions.
* added next_logical_descriptor to ohci_isochronous_td structure



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23594 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 22:25:47 +00:00
Salvatore Benedetto
4cfc1fee3e * Added hash function and related data in order to find the virtual address
of the descriptor from its physical address returned by the controller.

NOTE: As stated in the commented code, when the controller has finished processing
some descriptors, it returns the first element physical address of an heterogeneous list
(general + isochronous) and there is not way to tell the descriptor type.
This solution, which implementes two hash tables (one for generic descriptors and
one for isochronous) is the one adopted from *BSD.
If somebody has better idea, please let me know. :)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23589 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 18:02:26 +00:00
Axel Dörfler
9e7511601a * Deactivated the IDs for the 8xxx chips - they are not supported.
* Removed ID 0x0141 for the FX 6600 as well until it's fixed, see ticket #1530
  for details.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23579 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 08:15:50 +00:00
Jérôme Duval
a75118d464 some cleanup
better error handling in setup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23572 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 23:31:34 +00:00
Stephan Aßmus
b91634cbea * extended the jpeg_error_mgr structure to hold the jmp_buf that we need
in the critical error handler. In the high level function, the jmp_buf is
  now allocated on the stack and placed in the "cinfo->err" structure. This
  should make the mechanism thread-safe. Unfortunately, we don't use the
  original libjpeg anymore as is, but this seems to be frozen code since a
  few years anyways. If you have any better suggestions, please don't
  hesitate to mention them! :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23560 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 15:52:36 +00:00
Stephan Aßmus
dbc936ac13 * it was a really bad idea to invoke exit() on critical errors from an add-on
that only loads bitmaps and is supposed to return a status_t error from
  the Translate() function, especially for people using this in mission
  critical applications.
  The requirements on the error handler that is
  to be installed for the jpeg library are not to return to the calling
  function for critical errors. C++ exceptions seem like the
  natural solution to the problem, but unfortunately, they simply don't
  seem to work, possibly because we are inside an add-on. Ingo had the idea
  to use setjmp() and longjmp() to go directly from the error handler back
  to the top level code and this works. I have implemented this from what
  I understand from reading the opengroup spec, but the compiler currently
  issues a warning. Feel free to fix. The desired effects are achieved though, 
  the translator recovers correctly from broken jpg files now.
  Also, I don't know if the translator should somehow "uninstall" the
  breakpoint. Again, feel free to fix or tell me.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23559 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 13:28:28 +00:00
Axel Dörfler
09c46ea8bd * Fixed bug in the BlockAllocator::Allocate() function which did not
compute the bit offsets correctly if the last block of the whole
  bitmap was only a partial block.
* Added new bfs_allocator KDL command.
* Renamed the KDL command bfsinode to bfs_inode.
* Added "--help" argument to bfs_inode and bfs KDL commands.
* Added more tracing in the block allocator.
* Turned on the ASSERT() macro in non-debug builds.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23534 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 15:18:02 +00:00
François Revol
d93062a0ad * Style cleanup
* warning
* implement --help


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23523 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-14 21:43:09 +00:00
Ithamar R. Adema
993976312b Make (S)ATA(PI) drives publish under /dev/disk/ata[pi] again
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23497 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 20:46:32 +00:00
Axel Dörfler
42ef796e50 Added a bit more tracing output to the block allocations.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23496 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 20:08:43 +00:00
Axel Dörfler
4fc4f2c8ae * Added a transaction listener mechanism to be notified when a
transaction ends or has been aborted.
* BFS now listens for transactions when it created an inode to see if 
  the transaction will be aborted without freeing the inode (in which 
  case it will panic for now).
* Started implementing tracing support, but it's not working yet.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23492 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 17:18:29 +00:00
Jérôme Duval
4ff60cbae8 check the allocation of the name list
use a macro get_handle


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23490 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 13:45:34 +00:00
Jérôme Duval
9cdfebb447 Fixed removing from device list with only one device info present
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23488 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 12:35:08 +00:00
Jérôme Duval
5671893fc0 Fixed removing from device list with only one device info present
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23487 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 12:34:27 +00:00
Marcus Overhagen
c4bf6940f5 Fixed timeouts, they were too small.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23485 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 12:02:13 +00:00
Marcus Overhagen
df0e96bcef fixed a crash during device identification
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23482 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 09:41:40 +00:00
Axel Dörfler
8e43ece8b8 Some more work on the tracing API:
* Added function to allocate space in the buffer.
* Dump() now fills a buffer instead of printing its data directly.
* This allows the new "#pattern" argument of the "traced" command to 
  work. When you're using that, the index of the trace entry is printed
  out, too, so that you can then get a full dump around the hits.
* Added an AddDump() method to the AbstractTraceEntry class so that 
  there is no need to call the inherited function anymore.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23479 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 02:50:32 +00:00
Marcus Overhagen
a5ec34950d Allow ata_request_set_sense and ata_request_set_status to be called with NULL request pointer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23478 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 02:42:19 +00:00
Marcus Overhagen
02193d0df5 improved timeout handling
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23475 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 01:54:08 +00:00
Marcus Overhagen
d5c05044c6 ATAPI fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23474 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 01:50:58 +00:00
Jérôme Duval
98456ae281 check the allocation of the name list
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23467 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 00:58:27 +00:00
Axel Dörfler
d7477802b8 * Made the additions of the KDL debugger commands independant from the
DEBUG macro; they are now added only if BFS_DEBUGGER_COMMANDS is 
  defined (which is now done by default in the Jamfile).
* Added "bfs" KDL command which dumps volume information and the super
  block.
* Made use of the new tracing API to trace block and inode actions
  (and the new AbstractTraceEntry class I forgot to mention in the last
  commit). Is compiled in only when BFS_TRACING is enabled (defaults to
  off in the standard builds).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23464 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 00:03:53 +00:00
Marcus Overhagen
f44927fccb Do a shorter wait during identify command, and retry it once to find atapi drives that report a wrong signature
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23463 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 00:00:58 +00:00
Axel Dörfler
d1ba9c8adc Fixed warnings when building the bfs_shell.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23462 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 23:58:56 +00:00
Marcus Overhagen
cf3c203afa improved PIO transfer speed and system responsiveness.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23448 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 21:58:33 +00:00
Jérôme Duval
751232fbe0 update from Jerome Leveque
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23444 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 17:05:13 +00:00
Michael Lotz
215772237b * Fixed removing from device list with only one device info present
* Removed now unnecessary devfs calls again
* Add an explanation in device_removed()

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23442 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 16:13:01 +00:00
Marcus Overhagen
38d1ee9587 Removed debug output in the read/write path, and added it to other functions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23435 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 10:32:10 +00:00
Marcus Overhagen
afb50bcdc0 fixed timeout and crash
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23434 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 01:58:30 +00:00
Marcus Overhagen
c85a921b70 fixed multi block data transfer
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 01:56:33 +00:00
Marcus Overhagen
9c67580a9f removed/disabled some debug output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23428 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 00:52:57 +00:00
Marcus Overhagen
f03e236672 Implemented PIO transfers again. Haiku starts in vmware now with this stack.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23425 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 23:13:27 +00:00
Stephan Aßmus
8d2dd6d32f * small style cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23422 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 22:25:41 +00:00
Stephan Aßmus
45f11ce801 * at least with the BeOS input_server it is important that the last
B_MOUSE_MOVED message does not already contain the same buttons as a
  following B_MOUSE_DOWN message... fixes mouse clicks being ignored
  when you are moving the mouse at the same time when clicking
  (using Haiku's mouse input_server device on BeOS or ZETA)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23421 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 22:25:08 +00:00
Ithamar R. Adema
fac155d491 Fix problem of accept() not accepting a bigger buffer for the sockaddr then required (cupsd exposed this bug)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23420 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 22:12:50 +00:00
Michael Lotz
b8859c2a29 * Add handling for B_INTERRUPTED so USB keyboards can work again
* Beginnings of devfs interaction to properly publish/unpublish under Haiku

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23412 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 18:53:39 +00:00
Marcus Overhagen
795beb75d2 Converted check_output() into ata_finish_request().
Moved timeout from device_info int ata_request-.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23411 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 18:49:12 +00:00
Stephan Aßmus
fc404a9f7e * renamed remove_device() to delete_device()
* handle one more allocation failure in device_added
* improved style consistency in a few places


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23409 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 18:14:51 +00:00
Michael Lotz
b004f6291c Reset the control count so the hmulti_audio does not try to read them. Fixes crash when using hda with hmulti_audio under R5.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23405 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 17:06:27 +00:00
Ithamar R. Adema
e7d7efa1c7 Some minor fixes; lots of debugging output still in there; not perfect yet
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23404 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 16:50:53 +00:00
Stephan Aßmus
c2a6cd96bc * init the repeat timer values, if the timeout happend to be low enough
and you never pressed any key on the usb keyboard, you could suddenly
  be flooded with a random key...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23403 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 16:13:01 +00:00
Jérôme Duval
5e53d38a62 style cleanup
should fix detection of Audigy2 Value (it was trying to check the revision id instead of the device id)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 14:17:17 +00:00
Marcus Overhagen
3d424d5c73 Replaced most true and false with named flags.
Made all timeouts use bigtime_t.
Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23392 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 13:25:38 +00:00
Michael Lotz
cc2bf27596 * Deactivate the device when both the transfers and the clear feature fail
* Some restructuring and cleanup

This keeps the input_server from polling a removed device continuously.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23388 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 11:37:18 +00:00
Michael Lotz
20c43b026d * Add support for low/full speed interrupt transfers over USB 2.0 hubs
* Actually enable the periodic schedule so that any interrupts work over EHCI

For those who wait for OHCI: You can now attach your USB 1.1 mouse or keyboard
to a USB 2.0 hub and it should work.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 01:58:01 +00:00
Marcus Overhagen
ddb73d9f46 fix bugs exposed by ASSERT
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23377 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 01:33:10 +00:00
Marcus Overhagen
e3c8f43645 implemented basic atapi support framework.
improved device detection.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23373 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 01:10:00 +00:00
Marcus Overhagen
3831b73445 fixed bugs
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23350 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-10 20:50:24 +00:00
Marcus Overhagen
1cdfe7f991 some cleanup to make it compile again
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23349 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-10 20:39:30 +00:00
Marcus Overhagen
c40a87f8d4 Removed finish_* functions and converted to new ata_request_* functions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23346 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-10 16:40:42 +00:00