Commit Graph

23842 Commits

Author SHA1 Message Date
Stephan Aßmus
99c69d9a2b More coding style cleanups.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 16:28:45 +00:00
Stephan Aßmus
03d0e639fc * Fixed more coding style issues.
* White space cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28432 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 16:08:57 +00:00
Jérôme Duval
280e43b1f7 maintain our own copy of direct_buffer_info as it can change without notice
fixed bug #3001


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28430 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 15:07:38 +00:00
Stephan Aßmus
802b633082 * Fixed some of the weirdly changed define names.
* A few more style cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28429 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 15:02:35 +00:00
Ingo Weinhold
8d41d0ee72 Spotted by "daste": When unlocking the mutex owner must be set to -1
also for error check mutexes, otherwise the next pthread_mutex_lock()
will fail.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28428 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 14:30:09 +00:00
Stephan Aßmus
1ecbbd9c27 Darn, SVN checked only modified stamps of the files, not the content.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 13:22:29 +00:00
Stephan Aßmus
c3a113e4b4 ps2_mouse.c was refactored into ps2_standard_mouse.c, but I applied the
patch wrongly. This should hopefully fix it. Only my coding style cleanup
history should be "lost" this way.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28426 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 13:11:53 +00:00
Stephan Aßmus
5bb8f08567 * standart -> standard
* Hopefully fixed most of the coding style violations
* ps2_trackpoint.h had the wrong header guard


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28425 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 13:00:00 +00:00
Axel Dörfler
617fdc096a * Added "progress bars".
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 12:51:20 +00:00
Axel Dörfler
2395e3a496 * Don't traverse symlinks.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28423 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 12:35:28 +00:00
Karsten Heimrich
e9a7a65fd7 * gcc4 build fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28422 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 11:58:03 +00:00
Stephan Aßmus
287f426f6a * Coding style cleanup
* Applied the changes that were done to MouseInputDevice:
	- use BObjectList,
	- take adventage of BPathMonitor node monitor message fieds
	- remove the device in the polling thread upon ioctl() error
* Added TODOs about refactoring the code together with MouseInputDevice.
Untested, but the code is so similar, I am pretty confident it still works.
(famous last words... will test soon anyways)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28421 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 11:40:48 +00:00
Stephan Aßmus
239fd643df * Added Clemens Zeidler to list of authors of the Touchpad add-on.
* Added myself to Mouse and Keyboard add-ons for my recent work on them.
* Small cleanup in KeyboardInputDevice.h-


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28420 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 11:09:28 +00:00
Axel Dörfler
5bc160ddb0 * The AdaptiveBuffering::_Write() method was exiting early, causing the possibly
random SHA hashes.
* Moved AdaptiveBuffering into its own file.
* Fixed updating a hash file.
* Implemented the "consistency_check" app that checks if a file has changed,
  and prints warnings if there are any.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28419 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 10:54:51 +00:00
Stephan Aßmus
8b0dc5ae13 Added Clemens Zeidler to the list of contributors for his
Synaptics Touchpad driver patch. Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28418 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 10:53:58 +00:00
Stephan Aßmus
6849a22864 Patch by Clemens Zeilder:
* Implemented Synaptics touchpad support in the PS2 bus_manager by
  refactoring/splitting the structure some and adding touchpad device
  handling.
* Implemented Touchpad input_server device add-on
* Created Touchpad preflet for configuring advances Synaptics touchpad
  options like scroll region (both horizontal and vertical) as well
  as other neat stuff

Thanks a lot, Clemens!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28416 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-11-01 10:48:35 +00:00
David McPaul
4dc9c4a55e added a possible todo
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28415 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 22:36:49 +00:00
David McPaul
da9b0b46ed split or combine decoder buffers to match mixer buffer size.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 22:34:56 +00:00
Axel Dörfler
91af3542a4 * Now writes and updates the hash file.
* Unfortunately, there still seems to be a problem in the hash generation...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28412 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 22:30:41 +00:00
Jérôme Duval
f2a5c5714d cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28411 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 19:25:42 +00:00
Stephan Aßmus
125ec81512 r28258 (adapting BScrollView to be usable in layout management) exposed a
problem in TextSearch. After the change, the scrollbar and child view layout
would be messed up there. The reason is that TextSearch calls
scrollview->ResizeToPreferred() prior to adding it to the window. In this
situation, the child views (scrollbars, target view) do not follow the parent
view. Before r28258, ResizeToPreferred() would not change the size of the
view (calling it in TextSearch is stupid anyways, since it is layouted later
in the code). I have thought about how to best fix this. I know 100% that there
is code out there that will mess with scrollbar layout. So it wouldn't be a
good option to refactor the layout out of BScrollView::DoLayout() and calling
that method from AttachedToWindow(), although that seems like the cleanest
option. Instead, I opted to simply reject resizing in ResizeToPreferred()
when the scroll view is not yet attached to a window. What do others think?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28409 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 18:51:13 +00:00
Alexandre Deckner
fc7b01b188 * fix coding style
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28408 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 18:01:55 +00:00
Stephan Aßmus
a6b4486702 * Do not continue in the loop when encountering B_INTERRUPTED from
acquire_sem_etc(), but treat it as an error instead. This allows
  to kill device polling threads in the input_server and prevents
  a busy loop in the kernel then. Before the input_server was shutting
  down devices upon quit (happens only when restarting it), this
  busy loop could also be observed, since then polling threads would
  be quit on exit of the team.
* Supply B_INFINITE_TIMEOUT for the MouseDevice instead of 0. Does not
  change anything, but was probably not intended.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28407 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 17:31:21 +00:00
Axel Dörfler
d6013f6096 Work-in-progress:
* Started a file consistency checker; right now, it will just compute a SHA256
  hash value for every file, and dump it to stdout.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28406 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 17:05:49 +00:00
Alexandre Deckner
e3bcc1dc09 * Combine the two calls to ScrollBy into one.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28405 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 15:59:00 +00:00
Ingo Weinhold
210553573f Patch by Artur Wyszynski: Added support for partitions in Darwin.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28404 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 15:56:33 +00:00
François Revol
0478070254 - use a lookup table for control char to drawable UTF-8 strings
- added a glyph for B_HOME


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28403 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 15:36:41 +00:00
Alexandre Deckner
e984242155 * On date format change, remove the need for the synchronous call to
DrawViewCommon(), simply invalidate since the logic is simplified now,
 see below.
* Reworked the way TimeAttributeText was updated when date format is 
changed. Got rid of the recalculatText flag propagation, it was broken 
since forever anyway (was here on r5 max4.1): It was only updating 
visible poses and wasn't robust in certain cases. Besides, it was 
cluttering the code on several layers upfront only for date format changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28402 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 15:07:06 +00:00
Axel Dörfler
9aec3dd627 * Complete rename of randomread to random_read.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 14:51:27 +00:00
Axel Dörfler
144d884dad * Moved "randomread" out of the bfs directory, as it's not BFS specific.
* Also renamed it to random_read, but SVN needs two revisions for that...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 14:49:43 +00:00
Axel Dörfler
a8cecea091 * As suggested by Gerald, we now ignore the EDID information on VBE2 graphics
chips due to possible timing issues.
* This means you will now get a 1024x768 boot screen on older hardware instead
  of the one of your native resolution. If that always worked great for you,
  and you want to be able to turn on using EDID information again, please yell.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 13:35:09 +00:00
Axel Dörfler
39c7faa460 * vesa_set_mode() now gets another parameter that specifies whether or not
the mode timing should be used.
* Apparently, some VBE3 implementations don't implement the CRTC support, and
  they seem to fail when the SET_MODE_SPECIFY_CRTC bit is set.
* Therefore, we'll first try with timing, and if that fails, we'll try again
  without it. This should bring back the boot screen for all those who had
  problems with it before.
* Added tracing output of the CRTC to be used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 13:14:07 +00:00
Ingo Weinhold
3a39905b59 Implemented __freading(), __fpurge(), and fpurge().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 13:02:40 +00:00
Axel Dörfler
f37b0b4f09 * The Audio:Album was not set from the CD-Text. Thanks to Edwin for the note!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 12:14:05 +00:00
Stephan Aßmus
04910d5d52 Fixed various problems that caused the scrollbars and the group view to be
layouted incorrectly:
* Only remove the insets if there are any when no tabview is needed.
* Use Bounds() when creating the scrollbars, not Frame() (this probably
  worked correctly only when the DynamicScrollView was the only child in a
  window...)
* Simplify layouting the scrollbars and target view, always do so, since it
  isn't clear if the host window uses the old style view follow modes, the
  target view had no follow mode anyways, so we need to layout it for sure.
* Correct the "edged in" effect of the TitleView drawing.

This fixes the bad drawing artifacts in the Media preflet when scrollbars
are needed to embed a larger parameter web view.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 11:43:05 +00:00
Axel Dörfler
ebf6c5de78 * 15 and 16 bit KDL consoles now have nice colors, too.
* For 8 bit, the palette is pretty messed up during the boot process
  (thanks to the boot loader image), so that we might want to change
  how the colors are set then.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 10:39:50 +00:00
Axel Dörfler
3a5a677501 * print_demangled_call() now brings some color into your Haiku life (ie. to
the KDL sessions).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28392 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 10:22:46 +00:00
Axel Dörfler
d5a9a2d118 * Made the KDL colors a bit more eye friendly in 24/32 bit modes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28391 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 10:17:04 +00:00
Axel Dörfler
b4c8ccc372 * The boot loader now creates a CRTCInfoBlock structure when detailed EDID
mode informations are available.
* This is passed to the graphics card when the mode is set in the hopes that it
  will be more conforming.
* Not yet tested on real hardware, though, therefore the VESA driver doesn't
  do anything like this yet. I will test next, but please report any problems
  with this nonetheless.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28390 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-31 09:52:57 +00:00
François Revol
48ccb49ab0 Added TODO on SetTitle... the rect gets invalidated even when nothing is visible... flickers apps on top with TitleSpectrumAnalyzer in SoundPlay for ex...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28388 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-30 23:04:40 +00:00
François Revol
29ac46e843 - missing space between sentenses
- fix BeOS build


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28387 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-30 19:41:43 +00:00
Axel Dörfler
97ba3fb358 * Instead of faulting when trying to print an invalid string pointer,
print_demangled_call() will now use user_strlcpy() to copy the string
  first (if that fails, it will printf '???' to show this).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28386 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-30 18:29:49 +00:00
Axel Dörfler
9cd2430ee0 * Namespaces of argument names are now also handled properly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28385 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-30 18:16:21 +00:00
Axel Dörfler
2e04b65212 * Added test application for the GCC2 demangler.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28384 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-30 18:12:20 +00:00
Axel Dörfler
61791eda0c * count_namespaces() did not work correctly when there were more than one but
less than 10 namespaces.
* 'const' object methods are now properly handled.
* Template classes are now ignored as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28383 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-30 17:38:03 +00:00
Axel Dörfler
6179ce7957 * Removed the DEBUG_DEBUGGER_COMMANDS define again, and followed Ingo's
suggestion by adding a "faults" command that now sets the
  gInvokeCommandDirectly variable as wished.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-30 16:29:37 +00:00
Axel Dörfler
082466120e * The identify algorithm will no longer accept compressions it doesn't know
anything about (fix for ticket #2628).
* Fixed TReadHelper::ReadShorts() which only read half of the data.
* Disabled the stuff for the old Canon format for now (didn't work yet anyway).
* Tried to add RAW unpacked mode, but it doesn't seem to work yet (tried with
  an Olympus RAW image) (and is therefore disabled, too).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-30 15:15:14 +00:00
David McPaul
45d40b75b9 uint8 Fillbuffer should use sizeof(uint8) for divisor
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-30 12:00:57 +00:00
David McPaul
d0b2b559f5 match default buffer size to Mixer default
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-30 11:59:14 +00:00
David McPaul
593356d280 correct spelling error
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28378 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-30 11:57:43 +00:00
Axel Dörfler
b643734ad7 * Now handles function pointers as arguments correctly.
* Added optional tracing output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28377 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-30 11:36:05 +00:00
Axel Dörfler
9521c5abb6 * If DEBUG_DEBUGGER_COMMANDS is 1, invoke_debugger_command() will no longer
install a fault handler, allowing to debug KDL commands better.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28376 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-30 11:33:15 +00:00
Axel Dörfler
cca9f05114 * debug_demangle_symbol() did not set _isObjectMethod when there was no
demangle module (yet). This could cause a read fault in x86's
  print_demangled_call() (as it assumed there must be a ':' when this is true).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28375 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-30 11:16:01 +00:00
Axel Dörfler
225c0ed641 * Reverted parts of r28370:
- the check for compression when counting valid images was wrong, and
    broke all RAW formats that weren't using this compression.
  - COMPRESSION_PACKBITS was defined twice.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28374 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-30 09:29:14 +00:00
Rene Gollent
1d43a131ea Remove extra pixel constants that were always added to the total item height when calculating the vertical scrollbar proportions. This fixes the empty space that was always added to the end of the CLV (ticket 2980).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28373 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-29 23:46:28 +00:00
Jérôme Duval
3c17902449 missing tabs
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28372 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-29 23:04:42 +00:00
Jérôme Duval
2c558054fe supports double clicking column title separator to preferred column size
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28371 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-29 22:50:52 +00:00
Jérôme Duval
3ebfe9b245 make sure we support the compression, it could be a tiff image
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28370 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-29 22:40:48 +00:00
Jérôme Duval
8824242b84 added some error output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28369 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-29 22:33:17 +00:00
Stephan Aßmus
9d42ec70c9 Several problems prevented USB HIDs to be opened, closed and reopened:
* The first problem was introduced by myself, when I added deleting the
  transfer semaphore in HIDDevice::Close(). Obviously, I should (re)create it
  in Open() then, or it won't work another time. (Open() is now the only place
  where it's created.)
* The second problem was when transfers have already been scheduled the
  last time the device was open, but never triggered yet. We need to reset the
  fTransferUnprocessed flag, or we won't schedule another transfer but
  wait on the transfer semaphore anyways in Control(). I also added
  canceling the usb transfers with the stack in Close().
* The remaining problems were specific to the KeyboardDevice, the repeat
  key stuff needs to be reset in Open(). I also added unsetting the repeat
  key when the key release is detected, but this should have already worked,
  because the semaphore timeout was reset to B_INFINITE_TIMEOUT.

One can now "/system/servers/input_server -q" and everything will be back
in working order. There may be some remaining problems in the Wacom driver
which I have not yet looked at.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-29 21:23:19 +00:00
Jérôme Duval
7ea4cf085e remove debug output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28367 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-29 18:39:58 +00:00
Gerasim Troeglazov
31aa96d87f first changes for new FS API support
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28365 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-29 03:06:32 +00:00
Rene Gollent
a4f9a2b8c5 Fix various errors in handling specifiers and/or scripting messages. This
makes the Get, Count and Delete Replicant scripting directives work correctly,
and consequently fixes the Remove BSnow button (ticket #1897), as well as
commands like: hey Tracker Get Replicant BSnow of Shelf of View PoseView of Window 1



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-28 23:18:59 +00:00
Karsten Heimrich
072403a553 * fix the build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-28 22:40:53 +00:00
Jérôme Duval
5d8c417782 Use a ColumnListView
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28359 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-28 22:05:33 +00:00
Maurice Kalinowski
3feea27945 whitespace and style cleanup, no functional changes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28358 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-28 19:54:43 +00:00
Jérôme Duval
58b80f0913 updated libpng to 1.2.32
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28357 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-28 19:35:14 +00:00
Rudolf Cornelissen
ddcb4e528c es1370 compiles on haiku now. no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-28 18:23:46 +00:00
Axel Dörfler
6e036f0479 * Updated glob.h and its implementation to FreeBSD current (1.10, 1.27),
adapted them to work on Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28355 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-28 14:13:30 +00:00
Ingo Weinhold
f20ccdc461 Fixed some incorrect behavior pointed out in #2990:
* The pthread_mutex_*lock() family should return EDEADLK when re-locking
  an error-checked mutex.
* pthread_mutex_trylock() is supposed to return EBUSY, not
  B_WOULD_BLOCK.
* pthread_mutex_unlock() should return EPERM when the caller is not the
  owner. It used to print a message and try to unlock anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-28 12:04:51 +00:00
Stephan Aßmus
e01a043190 Sorry for the confusing patch...
* Made KeyboardInputDevice more similar to MouseInputDevice, the object to
  track individual keyboards has become the class KeyboardDevice. Moved
  much functionality that used to be in KeyboardInputDevice into
  KeyboardDevice.
  Functionally, it should still be the same, but there are two important
  changes:
  - Each KeyboardDevice now has it's own Keymap. At first, it is not
    visible by the user, since all KeyboardDevices still adopt the keymap
    if the user reconfigures it. But it will make it easier to assign
    individual keymaps to each attached keyboard (and perhaps associate them
    with a vendor/product or some other means). The more immediate side effect
    is that there is no longer a confusion about the keyboard locks. If
    you press NumLock on your external keyboard, it will no longer enable
    NumLock on your notebooks internal keyboard.
  - KeyboardDevice now has a Stop() method, which it will call in it's
    destructor. This will make sure that the control thread is cleanly
    exited and does not end up invoking methods on a deleted object.
* Rewrote the tracing implementation in MouseInputDevice.cpp. At least it
  helped track me down the following problem:
* Both KeyboardDevice and MouseDevice now set fActive to "false" *before*
  closing the device. Since the control threads run at high priority, chances
  are high that rescheduling happens as soon as the device unblocks in
  ioctl() and returns an error. In that case, the control threads would
  check fActive and it would still be "true" and the whole idea of bailing
  out because we're already in Stop() would not work, causing a double free
  in the end.

All of this is nice and more correct, but input_server is still crashing
when restarting it via "input_server -q"... :-(


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28352 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-27 22:40:03 +00:00
Stephan Aßmus
393f282c79 * Mark InputDeviceListItems only as running if calling Start() for the
device returned B_OK.
* In the InputServer destructor, don't check the fAddOnManager pointer,
  but check the success of calling Lock() on it instead, which should
  be much safer.
* In StartStopDevices(), really start or stop all published devices for
  the given BInputServerDevice, not only the first one found. Simplify
  the check whether anything needs to be done.
* Change a bit the return codes of StartStopDevices(). Especially the
  version that's supposed to start or stop all devices will still try
  to do it for the rest of them.
* Removed no longer needed _FindInputDeviceListItem().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28351 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-27 22:19:55 +00:00
Stephan Aßmus
dab68c33ed * When a device closes, delete the transfer semaphore, so that threads blocking
on it are unblocked and get an error.
* Make fOpen volatile to prevent unwanted caching effects when checking it from
  different threads. (?)
* Check IsOpen() in the KeyboardDevice class in more acquire_sem_etc() return
  cases, analogous to the MouseDevice class.

I am still getting a problem when relaunching input_server with the input_server
add-on thread that ioctl()s on a USB keyboard fd, which should have never fired
because it's a fake device from a KVM. After the first input_server instance is
gone, this thread keeps on busy looping in acquire_sem_etc()->switch_sem() from
within the ioctl() of the KeyboardDevice usb_hid driver. Still on it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28350 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-27 16:52:39 +00:00
Stephan Aßmus
dae439fe60 Init the ref_count with 1, since the first AddPath() would leave it
at 0. A single AddPath()+RemovePath() would therefore leave a not
anymore needed path_entry(), while a AddPath()+AddPath()+RemovePath()
would remove/delete the path_entry while it was actually still used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28349 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-27 16:44:58 +00:00
Axel Dörfler
887be5801a * 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
2008-10-27 16:00:43 +00:00
Axel Dörfler
34034cf61b * _UnmountAndEjectVolume() now actually ejects the media, if configured, and
possible, ie. if no other volumes are mounted on the device.
* Fixed a operator precedence bug in GetSettings() when retrieving the mounted
  volume flags.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28347 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-27 15:42:00 +00:00
Axel Dörfler
a58e2ed8f8 * Added functions FindPartitionByVolume() and FindPartitionByMountPoint()
that conveniently bridge BVolumes/mount points with BPartitions.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28346 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-27 15:33:37 +00:00
Axel Dörfler
2ec100b72e * Implemented Eject().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28345 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-27 15:30:58 +00:00
Axel Dörfler
67804f25ed * fs_unmount() removed the vnodes of the fs_mount twice since r28215,
triggering an assert.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28344 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-27 14:33:58 +00:00
Stephan Aßmus
9dd2d40e39 Fixed a race condition and resulting deadlock I introduced, which
resulted in the keyboard not working (at least on my Lenovo/IBM T60).
The device control thread could become aware of a dead device
at the time another thread (for example the add-on manager thread)
is already waiting for it. Then it tried to remove the device and
got stuck on locks that the other thread already holds (InputDeviceItem
list lock). Now the control threads check the "active" flag before
trying to remove the devices themselves, which, when set, is a sure
sign that the devices are already being removed and they don't need
to take care of it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28342 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-27 11:28:25 +00:00
Stephan Aßmus
0d2fb32f12 As pointed out by Axel, this TODO is invalid.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-27 10:55:41 +00:00
Axel Dörfler
1998abd8ea * Fixed off by one bug... math can be so hard ;-)
* This fixes bug #2880, ie. make the ide_adapter write the IDE task file
  correctly to the command register, CD-ROMs are working again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28339 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-26 18:27:54 +00:00
Ingo Weinhold
fad11a1c88 Strongly typed languages ftw.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28338 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-26 16:29:39 +00:00
Ingo Weinhold
801e9bd9f1 Always return what we've got from the socket module (error or number of
bytes received), but not B_OK on success.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28337 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-26 15:52:46 +00:00
Rene Gollent
3cead3c68e Make this check a bit more general purpose: in the case where the dragger is a child of the target view (probably the most common use case), we now verify that the dragger's frame is completely within the target, otherwise we reset it to a default position of the lower right corner. I'm not sure how to do similar validy checking in the case of the other relationships (or if that's even feasible) though. Comments welcome as always :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28336 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-26 15:22:02 +00:00
Ingo Weinhold
e360230ecd _user_xsi_msgrcv():
* Fixed some places that set an error return value but didn't actually
  return.
* Fixed success case return value. The number of bytes received must be
  returned, not B_OK.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28335 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-26 12:36:24 +00:00
Ingo Weinhold
4534a38441 stack_interface_recvfrom(): Incorrect return value check. It's a
ssize_t, not a status_t, so the following setting of the address length
was never invoked, causing recvfrom() to always return the passed in
size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28334 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-26 11:52:04 +00:00
Ingo Weinhold
e967b93ab6 * vfs_stat_node_ref(): Added missing initialization of
stat::st_{dev,ino}.
* stat::st_rdev is unused, but at least initialize it with some
  deterministing value. This makes Perl's lib/File/stat.t test happy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28333 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-26 11:49:48 +00:00
Michael Lotz
a0d69d7dac Also add the border overlap on both sides to the available space of the initial
tab width. This fixes the initially wrong tab width for windows where the title
does not fit and previously there would be 10 pixels waste on the right.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28331 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-26 10:53:13 +00:00
Rene Gollent
1bbf044eeb In various apps such as ActivityMonitor, BDraggers are instantiated with
invalid rects (in ActivityView's case in particular, (-7, -7, 0, 0)). BDragger
would happily accept these, and preserve them when being archived/unarchived,
which led to its position being completely messed up in the target shelf.
We now compensate for this when determining our relationship with the target
view. This fixes the problems with missing replicant handles in BSnow,
ActivityMonitor and probably others replicants. The solution used here might
not be ideal though, so comments welcome.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28330 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-26 04:50:50 +00:00
Alexandre Deckner
f05f4fcb53 * Added support to show tracker preferences via scripting. This will allow accessing
tracker prefs via the preferences menu using a one line script: 'hey Tracker DO 
Preferences'. Not sure how to set the icon of the script with the build system, feel 
free to do it. See enhancement #2365


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28329 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-26 00:09:47 +00:00
Alexandre Deckner
ccbb95ba82 * Enable keyboard navigation on the long description BTextView.
* Use a derived text view that filters the tab key to avoid interupting tab 
navigation while in focus/editing. Closes #2321


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28328 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-25 23:09:06 +00:00
Axel Dörfler
b4743cca80 * Make the kernel (and boot loader) version of vsnprintf() (that backs up all
formatted printing) aware of '%%', closing bug #2953.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28323 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-25 12:28:53 +00:00
Stephan Aßmus
c5555ad3c0 * Ignore B_ENTRY_REMOVED node monitor messages.
* When the device watcher/control thread encounteres an error when
  read()ing or ioctl()ing the device, don't just quit the thread and
  leave a stale device add-on hanging there, but instead trigger
  _RemoveDevice() to exit this cleanly. This also takes care of calling
  _RemoveDevice() only from one thread. However, it adds a race condition
  should a mouse or keyboard be unplugged and plugged at the same time.
  I need to think about how to fix that cleanly, although the situation
  may be theoretical only... This fix seems to fix another problem with
  hot-plugging USB mice, before this change, the first mouse entry in
  /dev/input/mouse/usb/ was never gone and I got two entries after unplugging
  and replugging.
* When using BObjectList configured to own the entries - don't delete the
  entries! Also don't call RemoveItem() before still using the item. Took
  me all day to find this one, because the code looked so... correct. :-}
* In _AddDevice() call _RemoveDevice() just for the sake of it. It is really
  important that no device with the same name is published twice. The PS/2
  driver behaves strange in that it publishes device more than once, if
  I understand correctly, until it decides that there is no device.
* Only StartMonitoringDevice() /after/ having performed the initial device
  scan! Or else we may get ourselves confused. I don't know if this was
  an actual problem, but the code was like that before and it seems saner
  to me. Seeing there is no locking in the device add-on itself, we may
  already enter the code from the node monitor thread.

This should fix #2894.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 21:46:36 +00:00
Stephan Aßmus
3363dbce1f Small coding style correction.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28320 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 21:34:14 +00:00
Stephan Aßmus
740d899004 * InputDeviceListItem::fDevice was not maintaining it's own memory for the
device path, but instead pointing to memory owned by some device addon
  instance.
* Added TODO in the AddOnManager init code about a possible race condition
  which I have not varified yet.
* Check the return code of BList::RemoveItem() before deleting the item...
  pure defensive programming.
* For the time being, print a warning into the syslog when a device name is
  registered twice.
* When failing to Unflatten() an event, don't continue in the code after
  deleting it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 21:33:46 +00:00
Stephan Aßmus
1a1a4f955c * Updated the license header.
* Use new(nothrow) to allocate the MethodReplicant.
* fSignature needs to be free()d, not deleted.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28318 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 21:29:35 +00:00
Stephan Aßmus
944bc06060 * The way subdirectories for the input_server add-ons were defined was a bit
weird.
* Set fHandler to NULL in _UnregisterAddOns(), just in case it is called
  twice (which it probably never is... but be defensive).
* If a B_NODE_MONITOR message does not contain all the necessary fields,
  drop into the debugger when compiling in DEBUG mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28317 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 21:28:21 +00:00
Michael Pfeiffer
2643c0dddd Show size of partition. This should work even if the FS module is not on the image..
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28316 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 20:46:50 +00:00
Stephan Aßmus
c2006b1a52 Don't skip over device items when re-scanning the watched folders for the
devices that were removed. Should use the BPathMonitor anyways...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28315 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 20:36:42 +00:00
Alexandre Deckner
97893f16af * Removed the enclosing box to gain some space and enlarged the listviews. Should be
rethought and reimplemented with the layout system and my keymap management patch, but 
the intent was to make it more usable in the mean time.
* Don't change the focus on keydown so that we can naviguate the list with the 
keyboard.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28314 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 13:17:07 +00:00
Alexandre Deckner
7a249e96f5 Few fixes to the keymap preflet to make it good enough for the alpha 1. Lots of
things could be rewritten in a cleaner way but i'd rather finish my keymap 
management patch as i rewrote the preflet for it anyway. For example the '(Current)' 
item shouldn't be needed anymore but is still there in case the keymap:name attribute 
read fails or if the original keymap file doesn't exist anymore (for example, applying 
a user keymap, quiting the preflet, deleting the keymap file, and reloading the 
preflet)  

* Revert/apply data wasn't correctly loaded when the first load was on a system 
keymap. This would allow revert/apply right after starting the preflet. That was the 
cause of #2659.
* fCurrentMapName wasn't updated after a Revert or Apply
* Select the active keymap in the lists after reverting.

Quick cosmetical fix follows.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28313 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 11:50:45 +00:00
Axel Dörfler
500d847a1d * Enlarged the arbitrary maximum image size to 4 GB which still works just
fine.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28312 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 11:14:49 +00:00
Axel Dörfler
528b69d508 * Fixed bug #2727: symlinks usually "abuse" the data stream part of a
bfs_inode to store the link path (up to a certain length). If this was long
  enough to clobber the data_stream::size field (which luckily was the last
  field of struct data_stream), Inode::Free() would mistakenly assume this to
  be a valid data stream to be freed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 10:36:43 +00:00
Axel Dörfler
0982317bea * Workaround for bug #2273 - not pretty but works for now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28310 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 10:15:39 +00:00
Axel Dörfler
85dbe55d9b * r28281 accidently added the B_NORMAL_WINDOW_FEEL (0) to the list of special
feels. This caused floating/modal app and subset windows to not work anymore.
* This fixes bug #2914.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28309 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 10:02:12 +00:00
Axel Dörfler
e2040be893 * Applied patch by Romain Picard: added support for the GNU extension dladdr(),
thanks!
* This closes ticket #2818.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28308 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 09:53:48 +00:00
Stephan Aßmus
2d265d2a5b * Removed some no longer used testing code.
* Fixed unloading the add-on image twice in error case of failing to
  add the add-on info to the list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-24 09:20:00 +00:00
Ingo Weinhold
bc3955fea5 Preparations for removing __BEOS__ from the compiler defines.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28305 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 21:46:26 +00:00
Jérôme Duval
bdb1d3ac7c * BMediaRoster::GetAudio*() should return B_NAME_NOT_FOUND when nothing is set
* In this case, SoundRecorder shows a different error message, more informative, confer bug #134


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28303 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 21:30:19 +00:00
Jérôme Duval
88fef303b1 adapt the record format with the input format
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28302 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 19:02:08 +00:00
Stephan Aßmus
2469a6f427 * Rewrote the UpdateQueue class. It actually works now and would perform screen
updates during the vertical refresh, but it causes flickering again since
  there is no guarantee that screen regions will stay clean from the time that
  they were scheduled with the UpdateQueue until the UpdateQueue thread
  transfers them. Therefor it is still disabled.
* Refactored a bit the distinction between Invalidate() and CopyToFront().
  Invalidate() used to be virtual, but now CopyToFront() is. This was mainly
  needed for the app_server test environment, because the host window needs
  to call Invalidate() when the front buffer bitmap is clean. When the
  UpdateQueue is used, this needs to be CopyToFront(). Now the separation is
  cleaner in combination with the UpdateQueue.
* Fixed a problem in HWInterface::CopyToFront(): When separating the region
  outside the cursor and the region with the cursor during a transfer, it
  needs to hold the fFloatingOverlay lock to make sure the cursor is not
  moved in the meantime. This fixes graphics glitches with remnants of the
  cursor staying on screen. These could very rarely be observed, but much more
  often with the accelerated double-buffer mode.
* Enabled the accelerated double buffered mode, since it works now very well.
  I was able to test it with the nVidea driver on an nVideo 7300. It works by
  allocating a frame buffer twice the height of the configured screen mode.
  Then all drawing goes into the offscreen portion, including accelerated
  driver functions. AccelerantHWInterface::_CopyToFront() then uses acceleration
  to blit the clean regions in the offscreen portion of the frame buffer into
  the visible part. Please tell me if there are problems, for example when
  if there is too few video memory, or if a driver does not handle it correctly.
  To disable it, see src/servers/app/drawing/AccelerantHWInterface.cpp line 511.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28301 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 17:15:39 +00:00
Stephan Aßmus
8b8e062daa * DrawingEngine::CopyBits() was invalidating the wrong region (without offset)
when the HWInterface was using acceleration and at the same time double
  buffering.
* _CopyToFront() should always be used, since it calls a protected virtual that
  derived classes of HWInterface depend on. This fixes some graphics glitches
  in certain situations.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28300 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 17:02:46 +00:00
Stephan Aßmus
c92e0a11c0 Fixed locations of binaries and some output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28299 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 16:56:14 +00:00
Stephan Aßmus
3f3c9fdd04 Fixes to make the app_server test env compile, but I have various other
fixes in my tree to make it compile on R5 still. I don't really want to
check this in, I'd rather adopt the buildsystem to make it run on Haiku
itself...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 16:55:17 +00:00
Stephan Aßmus
39f3b70eaa Simplification.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28297 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 16:52:44 +00:00
Ingo Weinhold
b2cfc2b1c0 * Added kernel tracing for page faults.
* vm_clone_area() does now set the B_SHARED_AREA flag on both the source
  and the cloned area. This is necessary, since it would no longer be
  guaranteed that areas are backed by leaf caches only (after
  fork()ing), which doesn't work with our cache merging strategy.
  Fixes #2605.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28296 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 16:15:07 +00:00
Rene Gollent
1ad73b3187 Always call Radeon_InitCP ; it explicitly checks if acc_dma is set and skips
parts of the init sequence if that's not the case anyways. This correctly
initializes the engine lock and a few other things, fixing the deadlock in
ticket #2893. This also seems to result in somewhat improved graphics
performance, at least on my X800.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28295 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 13:59:05 +00:00
Ingo Weinhold
02e577f99a When going to load a library also check whether the last path component
matches the program's image name. This is a special case for add-ons
that link against the application, with the application not having a
soname set. The concerned Pe add-ons (HeaderHeader and others) work now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28294 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 12:11:24 +00:00
Ingo Weinhold
209c0f495e 0 is a valid semaphore ID.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28292 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 08:49:25 +00:00
Stefano Ceccherini
4cc3ec9fdd Moved _joystick_info definition to JoystickTweaker.h, since there is no point to keep it public. Removed default parameter in the second version of Open(), otherwise the two functions can't be used unambiguously. Should fix bug #2904
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-23 08:18:48 +00:00
Axel Dörfler
68f6bdfbc8 * Added shortcut Command+Shift+T to open a Terminal. For compatiblity with BeOS :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28289 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-22 18:42:21 +00:00
Ingo Weinhold
9a42ad7a77 When switching to a kernel thread we no longer set the page directory.
This is not necessary, since userland teams' page directories also
contain the kernel mappings, and avoids unnecessary TLB flushes. To make
that possible the vm_translation_map_arch_info objects are reference
counted now.

This optimization reduces the kernel time of the Haiku build on my
machine with SMP disabled a few percent, but interestingly the total
time decreases only marginally. Haven't tested with SMP yet, but for
full impact CPU affinity would be needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28287 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-22 15:12:32 +00:00
Ingo Weinhold
204b1f011b Added boolean "syslogOutput" parameter to flush_pending_repeats() so
that dprintf_no_syslog() can avoid sending something to the syslog.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28286 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-22 14:55:33 +00:00
Ingo Weinhold
412319e8eb * Use a singly linked list for the deferred free entries.
* Added deferred_delete() that takes a DeferredDeletable and deletes it
  asynchronously.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28285 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-22 14:46:20 +00:00
Rene Gollent
950eeadd92 Factor out a ValidateDest() function that checks if the destination is valid
and throws up a BAlert if not. Reuse this when the user clicks expand to check
for and grab the destination path. This fixes the problem that if the user
manually types in or pastes a destination path and then immediately clicks
Expand, the actual destination path used is never updated. Thanks to Daniel
Teixeira for reporting.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28283 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-22 13:54:30 +00:00
Axel Dörfler
4932bc5ea8 * Added the BeOS feature that Command-~ (with American keymap) will switch
workspaces between this and the previous one.
* Note that this is mapped to a specific key on the keyboard (key 17), so
  it will differ with the keymap, but will usually be the key below the escape
  key.
* This closes ticket #2766.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28282 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-22 12:02:49 +00:00
Axel Dörfler
89b1afd16c * Added a new window feel kPasswordWindowFeel that is above all other feels.
* Changed the password window to use this feel.
* Later, the screen saver itself should use this feel whenever the password
  mode is enabled. The password window should then use a modal-app feel, but
  this doesn't work yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28281 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-22 11:51:23 +00:00
Axel Dörfler
18ad0f1b8a * Added a new kernel setting "syslog_buffer_size" to change the size of the
internal syslog ring buffer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28280 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-22 10:41:31 +00:00
Axel Dörfler
8d805b68a5 * Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28279 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-22 10:29:54 +00:00
Axel Dörfler
210b7fe013 * Applied patch by Adrian Panasiuk (Adek336) to fix the syslog output to insert
the <DROP> marker at the place data was dropped, not somewhere else. See
  ticket #156; this might already fix this bug.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28278 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-22 10:22:26 +00:00
Axel Dörfler
ab869c3c27 * The ref_count member should definitely be initialized - thanks Stefano!
* This might fix bug #2894.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28277 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-22 09:04:41 +00:00
Alexandre Deckner
6dee6b8c17 * Do the locking and lock check in an outer 'if', the window could be left
unlocked if the whole condition wasn't true. Thanks stippi!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28276 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-22 09:02:17 +00:00
Michael Pfeiffer
380699bf25 Fixed wrong condition in assertion.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28275 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-22 04:18:52 +00:00
Alexandre Deckner
369ad66d92 * Lock the window when saving windows states in Tracker::QuitRequested.
This was the cause of #2571 and duplicate #2888 although the bug wasn't 
 triggered anymore since r28205.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28274 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 23:00:13 +00:00
Ingo Weinhold
8f06357d66 Style changes:
* Renamed static variables.
* Enforced 80 columns limit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28273 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 21:48:56 +00:00
Maurice Kalinowski
65b27c0e43 - Add option to stick Magnify to a certain coordinate.
- Keep updating on this area
- Fixes #2831



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28272 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 21:37:31 +00:00
François Revol
d4dcbf95f6 - Fix build.
- make system_time() return something sensible until platform code works.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 21:23:55 +00:00
Maurice Kalinowski
5430c032f4 Whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28270 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 20:57:27 +00:00
Karsten Heimrich
9a321797d9 * fix wrong cast
* fix r5 target build



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 20:21:16 +00:00
François Revol
5b89d754a5 shut up complaining for something not even Linux supports.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 19:01:44 +00:00
Axel Dörfler
154fe8497c * AcpiOsReadPciConfiguration() always return AE_ERROR as all "break"s were
missing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28263 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 12:38:00 +00:00
Ingo Weinhold
53892c92a0 * Replaced scheduler_remove_from_run_queue() by
scheduler_set_thread_priority(). Setting the thread priority was the
  only situation in which it was used.
* Renamed scheduler.cpp to scheduler_simple.cpp.
* The scheduler functions are no longer called directly. Instead there's
  an operation vector now, which is initialized at kernel init time.
  This allows for picking the most suitable scheduler for the machine
  (e.g. a non-SMP scheduler on a non-SMP machine).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28262 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 12:37:13 +00:00
Axel Dörfler
997c3d8afb * Renamed TMWindow to TeamMonitorWindow, TMListItem to TeamListItem, TMDescView
to TeamDescriptionView.
* Renamed files accordingly.
* Minor cleanup (made TeamListItem::fFound private, and added accessor methods).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28261 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 12:30:25 +00:00
Axel Dörfler
4d34c4eba6 * The description shown in the team monitor is now actually true: if you keep
ctrl-alt-del pressed for 4 seconds, the system will reboot.
* Not sure if this makes any sense, though, as the button can be selected via
  the keyboard as well (in BeOS, the reboot is triggered in the device, so it
  will also work if the input_server hangs).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28260 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 12:15:19 +00:00
Axel Dörfler
5ab489bfea * Made the team monitor use the layout engine.
* This is actually a work in progress, but the functionality of the former
  version should be preserved.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28259 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 11:16:41 +00:00
Axel Dörfler
9e163a7a93 * Made BScrollView work when using it with the layout system.
* Added a layout friendly constructor - it's not so nice to use, though, since
  the original one already doesn't get a BRect (we just don't need the
  resizing mode, and have to set the B_SUPPORTS_LAYOUT flag).
* Refactored size/frame computation a bit.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28258 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 10:14:24 +00:00
Ingo Weinhold
aa12f6f8fc Fixed broken assert.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28257 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 10:13:07 +00:00
Karsten Heimrich
7cbd3ce5d8 * fix broken interface caused due to our changes to BMenuField, BTextControl
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28256 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 06:58:26 +00:00
Rene Gollent
a325faf93f Omitted change in 28244, the handle wasn't passed. Thanks thotypous!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28255 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-21 03:06:33 +00:00
Ingo Weinhold
1d1eb06e15 "lastTime" wasn't updated correctly when the thread was unscheduled.
"scheduler" would therefore print incorrect latencies.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28254 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-20 23:12:06 +00:00
Ingo Weinhold
768036bb6e Moved scheduler.cpp into new subdirectory scheduler/. Moved the
scheduler tracing and scheduler analysis code into separate source
files.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28253 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-20 22:57:40 +00:00
Jérôme Duval
4dafc175e9 takes into account the offset used in realpath(). see bug #2895. Thanks kaliber!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-20 21:41:30 +00:00
Jérôme Duval
7cf856daef acpi_get_object can be called with a null path
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-20 19:03:19 +00:00
Ingo Weinhold
59dbd26f5f * Moved more debug macros to kernel_debug_config.h.
* Turned the checks for all those macros to "#if"s instead of "#ifdef"s.
* Introduced macro KDEBUG_LEVEL which serves as a master setting.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-20 14:24:46 +00:00
Ingo Weinhold
1894a0a98b Consistently use KDEBUG. It is always defined and therefore must be
checked with "#if".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28247 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-20 13:06:04 +00:00
Ingo Weinhold
b2568a30b1 Patch by romain: Fixed FD leak after opening an image that has already
been loaded.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28246 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-20 11:42:14 +00:00
Ingo Weinhold
05fd6d79fe Fixed bug introduced in r28223: The counter whose modulo was used as
index into the sLastCaller array is vint32, so after overflowing the
modulo operation would yield negative indices. This would cause the
256 bytes before the array to be overwritten. Might also be the cause of
#2866.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28245 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-20 11:04:24 +00:00
Ingo Weinhold
47c40a10a1 * Prefixed memset_physical() and memcpy_to_physical() with "vm_",
added vm_memcpy_from_physical() and vm_memcpy_physical_page(), and
  added respective functions to the vm_translation_map operations. The
  architecture specific implementation can now decide how to implement
  them most efficiently. Added generic implementations that can be used,
  though.
* Changed vm_{get,put}_physical_page(). The former no longer accepts
  flags (the only flag PHYSICAL_PAGE_DONT_WAIT wasn't needed anymore).
  Instead it returns an implementation-specific handle that has to be
  passed to the latter. Added vm_{get,put}_physical_page_current_cpu()
  and *_debug() variants, that work only for the current CPU,
  respectively when in the kernel debugger. Also adjusted the
  vm_translation_map operations accordingly.
* Made consequent use of the physical memory operations in the source
  tree.
* Also adjusted the m68k and ppc implementations with respect to the
  vm_translation_map operation changes, but they are probably broken,
  nevertheless.
* For x86 the generic physical page mapper isn't used anymore. It is
  suboptimal in any case. For systems with small memory it is too much
  overhead, since one can just map the complete physical memory (that's
  not done yet, though). For systems with large memory it counteracts
  the VM strategy to reuse the least recently used pages. Since those
  pages will most likely not be mapped by the page mapper anymore, it
  will keep remapping chunks. This was also the reason why building
  Haiku in Haiku was significantly faster with only 256 MB RAM (since
  that much could be kept mapped all the time).
  Now we're using a different strategy: We have small pools of virtual
  page slots per CPU that are used for the physical page operations
  (memset_physical(), memcpy_*_physical()) with CPU-pinned thread.
  Furthermore we have four slots per translation map, which are used to
  map page tables.

These changes speed up the Haiku image build in Haiku significantly. On
my Core2 Duo 2.2 GHz 2 GB machine about 40% to 20 min 40 s (KDEBUG
disabled, block cache debug disabled). Still more than factor 3 slower
than FreeBSD and Linux, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-20 00:06:09 +00:00
Ingo Weinhold
ef8a9c3074 Removed tests from the implementation directory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28243 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-19 23:56:48 +00:00
Axel Dörfler
b6a7b20419 * Removed the log file stuff; debug output is now using debug_printf() instead.
* Removed an inconsistency: both mouse and keyboad input device add-ons would
  scan /dev/input/keyboard respectively /dev/input/mouse when loaded, but then
  only monitor certain subdirectories from it. Now they monitor all.
* Made KeyboardInputDevice::InitCheck() do what the name says, ie. nothing
  else.
* Now uses BObjectList instead of BList, which also simplifies the code a bit.
* Make use of the new BPathMonitor messages: as those contain a path, they
  greatly simplify their handling.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28242 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-19 15:59:23 +00:00
Axel Dörfler
23debb05d0 * Rewrote InputServerDevice.h header.
* Renamed _BDeviceAddOn_ to DeviceAddOn, and put it into the BPrivate namespace.
* Moved the DeviceManager functionality into the AddOnManager - this also
  solves a locking issue, as BInputServerDevice::Control() was called in the
  context of the DeviceManager before.
* The AddOnManager now uses the BPathMonitor to monitor the devices that
  BInputServerDevices ask for - this greatly simplifies the code.
* Got rid of TList.h, and use ObjectList.h instead.
* Added PathList class that has a list of paths with reference count, used by
  DeviceAddOn and the AddOnManager.
* DeviceAddOn got an actual implementation that lives in InputServerDevice.cpp.
* Added an experimental BInputServerDevice::AddDevices() that could be used
  instead of recursing over devices manually. It replaces the functionality
  that was found in the DeviceManager before (this was done implicitely for
  all monitored devices).
* Greatly cleaned up and simplified the AddOnManager.
* Also fixed lots of potential errors/leaks when things go wrong.
* Removed the extra locker in AddOnManager - its BLooper lock is now used
  instead.
* Replaced PRINT()/PRINTERR() macros in the AddOnManager with TRACE(), and
  ERROR(), both now use debug_printf().
* Hopefully this fixes the problem that I don't have keyboard under VirtualBox
  from time to time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28241 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-19 15:48:34 +00:00
Axel Dörfler
bfc4ee026d * Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-19 13:16:34 +00:00
Axel Dörfler
310a9c9e21 * Setting to the saver full screen and back is no longer needed when the
password window shows up (this avoids getting the Deskbar to front when
  the password window shows up).
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-19 13:15:58 +00:00
Axel Dörfler
c1e7c02d9e * If only files are watched, PathHandler::_AddFile() will now notify the target
when it was called from a notification function.
* This means you'll no longer have to watch (and scan) directories when you're
  interested in new files alone. Maybe this functionality could be used for
  other cases as well, or be activated only via an additional flag.
  Opinions? Stippi? :-)
* TRACE() no goes to /dev/dprintf by default, added a bit more trace output.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-19 13:13:51 +00:00
Karsten Heimrich
d751323939 * reintroduce member fOffscreen which got removed in r2917
* check if locking the offscreen window succeeds before calling delete on it
* don't return offscreen windows in CountWindows and WindowAt (works now as on R5)

  fixes ticket 1522, 1591, 1946, 2318 and propably more

  While creating an BBitmap in BApplication the bitmaps window looper would
  be added to the applications gLooperList, thus calling Quit() on that window
  and later delete on a stale window pointer in BBitmaps dtor. The Lock() check
  would fix the problem, but tests on R5 have shown that BApplication hides the
  offscreen window in CountWindows() and WindowAt().



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28236 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-19 12:23:18 +00:00
Karsten Heimrich
a02979bb3f * cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28235 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-19 12:05:37 +00:00
Michael Lotz
cde552bdcb Don't select anything in type ahead mode when no match is found anymore. This
makes sure that the best match just stays selected instead of always selecting
the topmost pose.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28234 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-18 23:43:18 +00:00
Michael Lotz
aa22e8db2e Changed the score calculation for type ahead in the Tracker. Previously if there
was at least one character matching at the start of any file it would have
gotten a score >= 1. This rendered the substring matching completely useless
as soon as this happened, because it would always get a score < 1 depending on
the position of the occurance. Now substring matching is the first (and without
word mode, the only) score to get. Since the score depends on the position of
the match, this doesn't change anything for exact matches at the beginning, but
it does allow for substring matches even if there is a file starting with the
same letter as the search string. Also use strcasestr() instead of strstr() to
make the search case insensitive.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28233 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-18 20:12:09 +00:00
Michael Lotz
3b839d857b The fs_mount structure now has a constructor/destructor and is used with new and
delete. Therefore the constructor/destructor of the contained EntryCache is also
called. The manual call of the destructor to the OpenHashTable inside the
EntryCache was therefore superflous and the destructor would be called twice,
leading to bug #2869.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28232 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-18 18:22:33 +00:00
Alexandre Deckner
842cd2b8cc * Removed the call to Refresh() when switching to scaled icon mode as it
would scroll to (0, 0), and screw the now always-in-sync fViewState.
  After testing every possible mode transition, there seem to be no side
  effect as the comment would suggest. Stippi, do you remember why it 
  was necessary? See r18699. 
* This enabled me to do my previously added TODO's. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28231 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-18 16:32:10 +00:00
Axel Dörfler
8f2be9ef82 * Cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28229 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-18 13:53:03 +00:00
Axel Dörfler
0f32f7ddeb * Added an ASSERT() and a check to make sure the workspace that Backmost() and
Frontmost() are using is valid.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28228 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-18 11:59:02 +00:00
Axel Dörfler
955307393f * Reworked EventDispatcher::SendFakeMouseMoved() after an idea by Stephan
that solves most app_server locking headaches: it now works asynchronously,
  and therefore doesn't need to lock the EventDispatcher anymore.
* EventStreams now allow to inject messages into the stream to allow the above
  functionality.
* InputServerStream::GetNextEvent() no longer returns when there is no event.
* Desktop::ActivateWindow() now locks all windows before checking the
  workspaces of the windows, fixing a race condition that could lead to
  Window::Foremost() being called for a window that isn't on the current
  workspace, leading to a crash.
* I currently cannot access Trac, but I recall there should be an open bug
  report about this.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28224 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 21:37:10 +00:00
Ingo Weinhold
7ab39de989 * Removed unused SMP_MSG_RESCHEDULE ICI message.
* Introduced flag "invoke_scheduler" in the per CPU structure. It is
  evaluated in hardware_interrupt() (x86 only ATM).
* Introduced SMP_MSG_RESCHEDULE_IF_IDLE message, which enters the
  scheduler when the CPU currently runs an idle thread.
* Don't do dprintf() "CPU x halted!" when handling a SMP_MSG_CPU_HALT
  ICI message. It uses nested spinlocks and could thus potentially
  deadlock itself (acquire_spinlock() processes ICI messages, so it
  could already hold one of the locks). This is a pretty likely scenario
  on machines with more than two CPUs, but is also possible when the
  panic()ing thread holds the threads spinlock. Probably fixes #2572.
* Reworked the way the kernel debugger is entered and added a "cpu"
  command that allows switching the CPU once in KDL. It is thus possible
  to get a stack trace of the thread not on the panic()ing CPU.
* When a thread is added to the run queue, we do now check, if another
  CPU is idle and ask it to reschedule, if it is. Before this change, the
  CPU was continuing to idle until the quantum of the idle thread
  expired. Speeds up the libbe.so build about 8% on my machine (haven't
  tested the full Haiku image build yet).
* When spinlock debugging is enabled (DEBUG_SPINLOCKS) we also record
  the spinlock acquirer on non-smp machines. Added "spinlock" debugger
  command to get the info.
* Added debugger commands "ici" and "ici_message", printing info on
  pending ICI message respectively on a given one.
* Process not only a single ICI message in acquire_spinlock() and other
  places, but all pending ones.
* Also process ICI messages when waiting for a free one -- avoids a
  potential deadlock.
* Mask out non-existing CPUs in send_multicast_ici(). panic() instead of
  just returning when there's no target CPU left.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28223 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 18:14:08 +00:00
Ingo Weinhold
b7b7ca0fc3 * Removed debug check.
* "iospace p" should only print the entries for actually existing
  memory.
* Fixed output of "iospace v".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28222 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 16:59:24 +00:00
Ingo Weinhold
78c90d44ca Moved definition of the PAUSE macro to <cpu.h>, respectively
<arch/cpu.h>.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 16:53:31 +00:00
Ingo Weinhold
7b8683b252 Updated write_to_cache() to use physical pages for I/O and the new
{memset,memcpy_to}_physical() functions.
Mapping lots of physical pages at once as done before was an actual
problem on systems with enough RAM, as the physical page mapper can map
only 64 chunks at a time. So multiple threads could play dining
philosophers, each getting only one of two chopsticks, waiting for
another one to be freed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 16:45:14 +00:00
Ingo Weinhold
901f1930e1 * Moved memset_physical() to vm.cpp and made it available in the kernel.
* Added memcpy_to_physical().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28219 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 16:32:12 +00:00
Ingo Weinhold
808de9c700 * The undertaker was not locking when enqueuing the thread structure in
the free queue.
* "thread" also prints the thread's I/O priority.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28218 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 16:28:02 +00:00
Axel Dörfler
c2a8fd9b70 * AS_ACTIVATE_WINDOW must not hold a window lock when calling
Desktop::ActivateWindow(), or Desktop::SendWindowBehind().
* This fixes a potential deadlock.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28217 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 15:48:29 +00:00
Axel Dörfler
c3657d1abd stippi+axeld:
* Made the StressTest app into a real stress test for the app_server, as the
  windows are now randomly changed, ie. moved, resized, hidden, activated, ...
* This already helped identifying two long-hiding bugs in the app_server code!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28216 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 15:46:45 +00:00
Axel Dörfler
703aecaaa5 * Instead of having the mount_link, struct vnode now subclasses from
DoublyLinkedListLinkImpl, and fs_mount now uses a DoublyLinkedList instead
  of a typeless struct list.
* Also added a constructor/destructor to fs_mount which simplifies and cleans
  some code.
* This should not contain any functional changes :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28215 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 15:44:13 +00:00
Michael Lotz
2bb834901c Fix two bugs related to the use of the entry cache for parent entries in BFS:
* The parent entry ("..") of a directory was not removed from the cache when its
  directory was removed.
* When moving a directory to a new parent, it's cached parent entry wasn't
  updated.

Those would lead to stale cache entries for directory parents. If a certain inode
would be reused to create a new directory after removing another, this would lead
to an invalid inode being returned when looking up the parent of the new
directory. This was easily reproducible by unzipping some directory structure,
deleting it and unzipping it again. You would end up with many "inode already
deleted" messages.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 13:42:48 +00:00
Axel Dörfler
218f8c8632 * Give a more detailed error message in case someone just tried to access a
deleted inode (which might always happen when accessing an inode by ID),
  for example by using the BDirectory(node_ref&) constructor.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 09:56:57 +00:00
Axel Dörfler
552c8edcd1 * fs_sync() now holds the sVnodeMutex while iterating over the mount list.
* This has the advantage that we no longer need to call get_vnode(), and
  instead can use lookup_vnode().
* This means at least most of the "corrupted BFS inode" messages should be
  gone; they were produced when fs_sync() tried to get already deleted vnodes.
  This was actually harmless, but doesn't really help in trusting your system :-)
* Also, it no longer tries to write back removed vnodes.
* And finally, it now uses a marker vnode when iterating over the list, so
  that it doesn't need to break out of the loop anymore, and can always sync
  all willing vnodes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28212 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 09:55:34 +00:00
Alexandre Deckner
3704f31d73 * AddPosesCompleted could be called actually before all the poses were added.
The method was called after _sending_ all the messages, not after receiving
  them all. This fixes the scroll validity check in AddPosesCompleted in list
  mode (bug mentioned in my last commit).

 We can now close #2441, tracker windows should now be completely persistant
with regard to scrolling now, in all modes (spatial mode, single window 
mode in list or icon mode). \o/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28210 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 09:52:09 +00:00
Alexandre Deckner
e85ca56c7d * Style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28209 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 08:57:24 +00:00
Stefano Ceccherini
6bda235a59 some gcc4 warning fixes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28207 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 08:08:20 +00:00
Rene Gollent
4a4355bd7d app_server was not storing its settings when the workspace count was changed.
As a consequence this setting was lost unless another setting was also altered
that affected the workspace configuration in some way.
Fixes #2849.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28206 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 01:56:44 +00:00
Alexandre Deckner
3d7584da5c * Rewrote the way BViewState checks if changes needs to be saved on quiting a navigation window (icon mode and
list mode) or switching dir in single window navigation. Fixes the other half of the problem in #2441. Left some 
todos.
  I discovered an other bug that can add a random offset after finishing adding poses.  


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28205 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 01:41:43 +00:00
Axel Dörfler
64ba396fa7 * When changing the workspace of a window, it's workspace position will now be
set to its current position if that is the only workspace it's in.
* This fixes missing windows on other workspaces in the Workspaces app after
  boot, ie. before you had visited that workspace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 01:31:44 +00:00
Axel Dörfler
4e59d9c7b4 * Use a good default "yellow" in case there is no decorator (otherwise yellow
isn't initialized, but also not really used currently).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 01:30:06 +00:00
Bruno G. Albuquerque
2cb8652f55 - The Trash context menu was using a checkmark to keep track of the last
selected item which does not make much sense. Disabled the checkmark.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-17 00:33:38 +00:00
Michael Lotz
bba5ce5afe * Add a mapping of interrupt handler data and remove the panic on installing
the interrupt handler. There can be more than one interrupt handler installed
  on the same interrupt number with different data, so we also need the data
  pointer when removing the handler (to remove the right one). But since ACPI
  doesn't supply it to us, we have to do the mapping ourselfs. Fixes #2848.
* Renamed acpi_root to sACPIRoot.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-16 22:25:04 +00:00
Michael Lotz
85c66f1c22 * Disable ACPI by default for now as it currently introduces problems with
interrupts (UHCI/EHCI not working).
* Add missing line break in debug output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-16 22:06:27 +00:00
Ingo Weinhold
51f837ae42 Dynamically adjust the page writer's I/O priority depending on how many
pages have to be written and how tight the memory situation is.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-16 22:02:55 +00:00
Ingo Weinhold
d52718a5f8 Fixed serious race condition: If the thread waiting for a request was
interrupted, another thread closing the other end of the pipe could
invoke thread_unblock() while the first thread already entered
mutex_lock(). This would make the first thread think it successfully
locked the mutex, without removing its (on-stack) wait entry from the
mutex queue, thus leading to crashes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28195 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-16 21:40:32 +00:00
Oliver Tappe
9f3fce1eac Stippi + zooey:
* fixed LineHeight() for the case when the textview does not yet contain
  anything - instead of returning 0 we now return the lineheight of the
  default style (or the textview's font).
Fixes #2231


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28194 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-16 21:40:12 +00:00
Ingo Weinhold
8a05bb865f Added TODO regarding serious locking problem.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28192 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-10-16 21:32:14 +00:00