Commit Graph

33008 Commits

Author SHA1 Message Date
Axel Dörfler 861f2ade03 * Rewrote header.
* Cleaned up private method names as much as possible (it's probably not a good
  idea to rename BStatable::set_stat() for compatibility reasons).
* Cleaned up sources.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-18 15:05:37 +00:00
Axel Dörfler dbf4cd6df1 * Added test application written by Krzysztof Ćwiertnia for the BPushGameSound
that shows that something is obviously broken right now (I fixed some coding
  style violations, though).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-17 16:06:31 +00:00
Axel Dörfler 505e5a0b57 * Put the old BeOS R3 media kit symbols back to fix #5135. They are no longer
built for GCC4, though.
* Deleted the completely unused OldSoundFile.{cpp|h} files.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-17 15:56:11 +00:00
Ingo Weinhold 410ba11f8c read_port_etc():
* Also check whether the port is closed after waiting.
* Don't increment read_count after waiting failed. That should have been the
  cause of #5119.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34687 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-17 12:21:05 +00:00
Ingo Weinhold c3bc71d6e2 Removed superfluous ConditionVariableEntry::WaitStatus() checks. Wait() always
returns the correct value.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34686 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-17 11:06:16 +00:00
Ingo Weinhold 3ffeff0770 port_writev_etc(): Missing check whether the port has been closed after
waiting.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34685 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-17 10:51:05 +00:00
Ingo Weinhold f887c7059e Try to detect whether the stream's DMA position is broken and switch to using
the LPIB, if it is.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34684 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-16 20:39:54 +00:00
Ingo Weinhold 9c3ad4fbb0 * Use TimeComputer to get smoother performance times.
* SetParameterValue(): Don't do anything, if the new output frequency value
  is the same as before. This avoids hickups when switching between the pages
  in the Media preflet.
* _FillNextBuffer(): Compare BBuffer and stream buffer size. They might
  differ directly after setting another output frequency, which could cause
  a crash.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-16 20:13:14 +00:00
Ingo Weinhold cb00754227 Added support class TimeComputer to compute smoother performance times.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34682 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-16 20:04:58 +00:00
Axel Dörfler 7d592ec4d2 * Fixed the bug that led to #5119. There was a race condition in the read path
as soon as a second thread got into the game: if a thread was notified that
  a message is ready, another thread could call read_port() and steal it before
  the previous thread could claim it. The "Extensions" menu still doesn't seem
  to work, but I would guess that is unrelated.
* The threads of the test app never exited, as read_port() returns the number
  of bytes it read, not just a status.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34681 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-16 12:51:26 +00:00
Axel Dörfler 697255873e * Added test that has multiple readers on a single port, and that drops into the
same panic as #5119.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34680 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-16 11:45:45 +00:00
Fredrik Holmqvist 118fa8936e Make sure settings isn't null. Not my finest day apparently.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34679 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 22:19:08 +00:00
Fredrik Holmqvist 0f6b7a8cad Unload driver settings as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34678 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 22:05:45 +00:00
Stephan Aßmus 0d61e4883f Updated the TypeMatrix 2030 keyboard layout to show the leds (the real one has
one more led, though), and the keys to be darker. I took this from the current
layout at the order page. The image on the main website is out of date. The
layout apparently was already up2date.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34677 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 21:03:29 +00:00
Stephan Aßmus 53ed733a36 Patch by Humdinger:
Renamed OpenTerminal to Open Terminal, since it sounds much more like a phrase
than a label for an add-on. Fixes #4434.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34676 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 20:46:49 +00:00
Siarzhuk Zharski 97df980335 Add vt612x NIC driver (VIA VT6122) into trunk HaikuImage.
This driver was confirmed as working stable for a week by Algirdas Buckus.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34675 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 20:25:07 +00:00
Siarzhuk Zharski bfd856102c - Lithuanian (Baltic) keymap correctd;
- Lithuanian Standard and Ergonomic keymaps added;

Patch by Algirdas Buckus. Thank you!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34674 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 20:19:56 +00:00
Ingo Weinhold 37e514b64c Fixed unintended operator precedence.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34673 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 18:41:08 +00:00
Ingo Weinhold 3a58749c5d Automatic whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34672 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 18:39:04 +00:00
Ingo Weinhold e0a187dd59 * stream_handle_interrupt():
- Round the DMA position for the buffer cycle computation. Apparently some
    chipsets trigger the interrupt before the position has been updated.
  - Don't just assume that stream->buffer_length frames have been processed
    at that time. Use the exact stream position at that time. This makes the
    performance time computation more precise and immune to the interrupt
    being delayed.
* Init hda_stream::frames_count.

Audio skips on I/O seem to be gone for me, now. Not obviously motivated skips
still happen.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34671 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 18:38:00 +00:00
Ingo Weinhold cd803f23e1 * Disabled tracing.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34670 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 18:21:04 +00:00
Axel Dörfler f8288ec75c * Made sure the sockaddr::sa_len field is set correctly for sendto(), and
connect().
* This fixes not working connections whenever the incoming sa_len field happened
  to be zero.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34669 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 17:40:14 +00:00
Fredrik Holmqvist d403ff624f Style fix:
* static variables should start with s.
 * function blocks should start on new line.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34668 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 17:00:03 +00:00
Fredrik Holmqvist 7afaadfbb7 If we get a overflow read the data.
This probably fixes #2801 and is what the FreeBSD driver does.  


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34667 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 16:46:44 +00:00
Fredrik Holmqvist 5e972c0f3d Implemented TODO about not loading symbols at boot.
This saves ~0.5s of boot time here, but I suspect it might be better for CD.
Enabled loadSymbols in kernel settings so the behavior should be the same as before this change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34666 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 15:55:16 +00:00
David McPaul 5868901fda Activate some test code to use large constant chunk sizes instead of small mp3 frame sizes. Improves I/O
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34665 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 12:08:36 +00:00
Ingo Weinhold 4673f145a3 * stream_handle_interrupt(): Fixed a misunderstanding of the SDnLPIB (stream
descriptor n link position in buffer) registers. They contain "the number
  of bytes that have been received off the link", which is not to be confused
  with the number of bytes that have been transferred by the DMA engine.
  The interrupt is triggered when the last byte of the buffer has been fetched
  by the DMA engine, at which point the stream's LPIB is still somewhere in
  the last buffer. So the interrupt handler could compute the wrong buffer
  index, which would lead to the multi audio add-on filling the wrong
  (currently being transferred) buffer, resulting in noisy sound. Now we use
  the DMA position. Should fix #4072.
* Also removed the not (always) working hack-around for the "wrong" buffer
  positions in the interrupt handler.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34664 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-15 00:21:43 +00:00
Colin Günther bfe69c5264 * The ralinkwifi driver links now.
* There is firmware needed, which can be distributed with Haiku:
  a) Get the firmware from www.ralinktech.com -> Software -> Linux
     -> Firmware RT2501(RT2561/RT2661)
  b) Extract the three binaries to /system/data/firmware/ralinkwifi/
  c) Rename them by removing the '.bin' ending and append fw instead
     (e.g.: rt2561.bin -> rt2561fw)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34663 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-14 23:00:33 +00:00
Colin Günther b4f369b8a5 * Removed superflous header inclusion statement.
* Also note: the firmware needs to be installed in /system/data/firmware/marvell88w8335
  and not malo8335 as I stated in commit r34661.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34662 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-14 15:56:28 +00:00
Colin Günther e863cb774a * The marvell88w8335 links now, too.
* This driver requires a firmware, which is not publicly available, and
  therefor cannot distributed with Haiku. To retrieve and install the firmware
  nonetheless following steps are required:
  a) Download the firmware from http://www.nazgul.ch/malo/malo-firmware-1.4.tgz
  b) Copy the included firmware files malo8335-h and malo8335-m to /system/data/firmware/malo8335/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34661 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-14 15:38:01 +00:00
Axel Dörfler 5503097733 * Also show the tool tip in case there is no monitor info, but still info about
the device.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34660 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-14 08:44:39 +00:00
Axel Dörfler 61c5c89b6d * Added info about the graphics device as suggested in #5112. However, it's
currently only shown in the monitor tool tip, that is now feels a bit crowded,
  so a better solution would be nice. I'm hesitant to give it a more prominent
  position, though, unless one has proof-read what the accelerants actually
  return here.
* Added missing space between the serial number of the monitor and the date it
  has been produced.
* Renamed fTempScreenMode to fUndoScreenMode, as it's only used to deliver that
  functionality.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34659 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-14 08:08:57 +00:00
Jérôme Duval 996953e91c use directly AcpiReset() for acpi reboot
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34658 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 23:01:28 +00:00
Ingo Weinhold 0338371f26 * All scheduler implementations:
- enqueue_in_run_queue() no longer returns whether rescheduling is supposed
    to happen. Instead is sets cpu_ent::invoke_scheduler on the current CPU.
  - reschedule() does now handle cpu_ent::invoke_scheduler_if_idle(). No need
    to let all callers do that.
* thread_unblock[_locked]() no longer return whether rescheduling is supposed
  to happen.
* Got rid of the B_INVOKE_SCHEDULER handling. The interrupt hooks really
  can't know, when it makes sense to reschedule or not.
* Introduced scheduler_reschedule_if_necessary[_locked]() functions for
  checking+invoking the scheduler.
* Some semaphore functions (e.g. delete_sem()) invoke the scheduler now, if
  they wake up anything with greater priority.
  I've also tried to add scheduler invocations in the condition variable and
  mutex/rw_lock code, but that actually has a negative impact on performance,
  probably because it causes too much ping-ponging between threads when
  multiple locking primitives are involved.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34657 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 21:18:27 +00:00
Ingo Weinhold 89e87505cf Improved panic() message.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34656 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 21:03:48 +00:00
Ingo Weinhold 2f7eb9b546 Fixed a stupid race condition between IORequest finishing and
IORequest::Wait(). Wait() immediately returned when IsFinished() returned
true, but this is the case as soon as the last IOOperation has finished. The
I/O scheduler is not done with the request at this point, though, since it
will still be sitting in at least one of three doubly linked lists. Since the
usual procedure to issue synchronous I/O requests is to create an IORequest
on the stack, pass it to the I/O scheduler, and Wait() on it, Wait()
returning early might cause the IORequest object to be destroyed while it is
still in use, leading to invalid memory access in the I/O scheduler,
corruption of its list structures, as well as later corruption of the issuing
thread's stack.
Related tickets:
* #4431: The request issuing thread returned and already deleted the area the
  request was writing to before NotifyFinished() was called.
* #3048, #4883: Caused by the on stack IORequest being overwritten with other
  data while being handled by the I/O scheduler thread.
* #4517: Hard to say, but I've seen a such a problem too, after a thread
  scheduling related change. An explanation would be a list structure
  corruption in the I/O scheduler causing an infinite loop with disabled
  interrupts.
* #2845, #3428, #3429: The block notifier/writer is I/O heavy and as such
  quite likely to run into the stack corruption issue.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34655 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 19:28:33 +00:00
Jérôme Duval fe69204315 added more missing prototypes in math.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34654 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 16:35:25 +00:00
Jérôme Duval 0270440a97 added missing prototypes for fmin, fma, fmax functions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34653 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 16:22:56 +00:00
Jérôme Duval d0c1951713 added fmin, fma, fmax from glibc (ticket #5114).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34652 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 14:22:13 +00:00
Jérôme Duval 63a275889b gcc4 build fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34651 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 13:28:28 +00:00
David McPaul 2a9896ce47 switch to use STL containers, limit to 10 cache entries, don't clear cache on findkeyframe, removed inflight list as it was not needed, report error conditions better. This makes video work again
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34650 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 12:09:17 +00:00
Jérôme Duval 42ee486389 Use B_OP_OVER instead of B_OP_COPY on Haiku (bug #4815)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-13 00:23:07 +00:00
Jérôme Duval 0b604ab644 Some simplifications (thanks Axel):
* Don't watch for moved entries
* Ask the network stack to delete the named interface 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34648 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 20:22:10 +00:00
Axel Dörfler a195cce7b5 * Added a bit more missing info about user_threads.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34647 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 19:08:04 +00:00
Ingo Weinhold c062f1a56d Moved the definition of WaitObjectsTreeModel into it's outer class. Ugly, but
pacifies gcc 2.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 18:37:26 +00:00
Ingo Weinhold 1ff6076985 Added check box to further group the wait objects by name. This allows to
easily see how wait times for similar objects add up.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34645 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 18:25:20 +00:00
Ingo Weinhold 2754b722f1 Added ThreadModel::WaitObjectGroup::Object() getter.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34644 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 18:17:35 +00:00
Ingo Weinhold 4c06f2b600 Added boolean deleteIfOwning parameter to MakeEmpty().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34643 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 18:17:15 +00:00
Jérôme Duval b1b74111f5 * free buffer on ioctl failures
* monitors /dev/net for added or removed devices and handles events 
	by configuring or unconfiguring interfaces. When plugged a usb 
	network device, it now appears correcly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34642 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 15:30:26 +00:00
Axel Dörfler adf9b14ed6 * Applied r34634 to the simple SMP scheduler as well (Rene was right, I just
overlooked it).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34641 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-12 15:02:30 +00:00