Commit Graph

33217 Commits

Author SHA1 Message Date
Michael Lotz
cc83a8213b The wlan part uses a very specific way to update multicast addresses for the
parent interface. It calls if_addmulti() on it but temporarily sets the ioctl
hook to NULL. We need to account for that so we don't crash on multicast setup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34699 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-19 03:26:28 +00:00
François Revol
2b97d9a98c Patch by mmadia from #4915:
- add the url to the empty image as a comment,
- add a .vmx for the nightly build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34698 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-19 00:14:44 +00:00
François Revol
5a19f90372 Add link to User Guide to the Desktop. Fixes #4537.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34697 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-18 22:43:07 +00:00
Colin Günther
db1ee3078d Partially undoing r34965, as pcivar.h should not have been part of it. Sorry
for the noise.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34696 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-18 21:32:33 +00:00
Colin Günther
250affd447 Whitespace cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-18 21:11:20 +00:00
Colin Günther
8f1951519e Whitespace cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34694 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-18 20:59:10 +00:00
Colin Günther
92d96f0105 * Whitespace cleanup. No functional change.
* Use C++ comment styles.
* Use a common pointer orientation throughout the code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34693 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-18 20:03:23 +00:00
Colin Günther
fafb321062 * Removed code duplication by merging destruct_pkt_mbuf and mb_free_ext.
This gets rid of one layer of indirection, too.
  Also, this removed a potential memory leakage, when deleting external memory 
  in destruct_pkt_mbuf. In the case where memory of type EXT_JUMBO9 was
  previously allocated, this would have been wrongly catched by the condition 
  (ext_type & EXT_CLUSTER) != 0.
* Renamed some variables to more human readable style.
* Commented some constants in mbuf.h to make more clear what they indicate and
  to show that they should not be treatet as flags, as it was the case one
  some locations before.
* Removed the EXT_PACKET constant, as it requests the same cache as
  EXT_CLUSTER. EXT_PACKET is a optimizing technique from BSD, where a cache 
  exists holding some preallocated mbuf + cluster memory. Such a thing is not
  implemented in the compat layer, at all. Though EXT_CLUSTER tells more
  clearly what the size of the external data buffer is.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34692 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-18 19:18:58 +00:00
Michael Lotz
de86f3421c Also call construct_mbuf() from m_getjcl() as it initializes the mbuf fields. It
also handles the M_PKTHDR flag. Before, the uninitialized fields could be left over
from earlier freed mbufs and on m_freem previous m_next fields could be returned
resulting in random mbufs being freed. This makes the iprowifi4965 work and fixes
#5089.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34691 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-18 18:00:11 +00:00
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