Commit Graph

22264 Commits

Author SHA1 Message Date
Stephan Aßmus
3cd9fb7518 * Calculate correct invalidation rect in SetBarThickness()
* Improved ThumbFrame() for B_TRIANGLE_THUMB, too high horizontal slider
  had the thumb along the bottom and not on the bar.
* Improved triangel thumb drawing, the vertical drawing did look so good
  yet, I also put the triangle on the right side, it looked weird on the
  left and it reverted the hashmark meaning too.
* Small code cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26458 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 23:49:28 +00:00
Axel Dörfler
50baef55f2 * Removed some old working_set/page daemon stuff from the address space.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 23:36:25 +00:00
Axel Dörfler
6db6b628d6 * Added B_PHYSICAL_BASE_ADDRESS address specification for anonymous areas.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26456 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 23:32:25 +00:00
Axel Dörfler
736352dcf5 * Added [un]lock_memory_etc() versions that accept a team_id as first argument.
This allows drivers to lock the memory outside of the original team context.
* create_area_etc() got a struct team as first argument, but that should have
  been a team_id.
* Removed delete_area_etc() - there is already vm_delete_area() doing the same
  thing.
* Renamed vm_get_address_space_by_id() to vm_get_address_space(), as there is
  no other method of getting an address space.
* Removed erroneous white space.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26455 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 22:55:17 +00:00
Axel Dörfler
cb9191556c bonefish + axeld:
* Removed the superfluous "flags" parameter from ConditionVariable::Add()
  that we forgot there when we moved the flags field from
  ConditionVariableEntry::Add() to Wait().
* Using this method was therefore not a good idea - only UnixFifo did, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26454 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 22:43:50 +00:00
Michael Lotz
2293ed6941 Add missing string.h that would otherwise soon break the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26453 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 22:17:29 +00:00
Oliver Ruiz Dorantes
6e82afcc18 -Update copyright
-whitespaces cleanups 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26452 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 19:30:45 +00:00
Oliver Ruiz Dorantes
7434b76048 Add to the command manager the connection accept and reject commands
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26451 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 19:25:44 +00:00
Oliver Ruiz Dorantes
870ae24a6d Resolve allocation of multiple Messengers,(Mika Lindqvist)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26449 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 19:04:53 +00:00
Stephan Aßmus
fe5d1557e4 Also test the UpdateText() behavior.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26448 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 18:42:37 +00:00
Stephan Aßmus
1ae794159a * Changed the signature of UpdateText() to return a "const char*" (char*
really makes no sense if the pointer belongs to the derived class and
  only confuses). Note this change does not affect binary compatibility.
* Introduced a new MaxUpdateTextWidth() virtual method which is really
  necessary to handle the update text correctly in the layout.
* Introduced a new UpdateTextChanged() method which can be called to
  notify the control of a changed update text. Internally, SetValue()
  also uses it.
* Handle the width or height of the UpdateText() correctly in the layout.
  For horizontal layout, the width was forgotten to be included in
  GetPreferredSize(), for vertical layout, it was completely broken before.
* Handle invalidation correctly when the UpdateText() changes.
* Remove the arbitrary insets for labels from the border the control. This
  makes it easier to align the control's labels with other controls.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26447 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 18:37:44 +00:00
Jérôme Duval
06688259b6 fix alignment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26446 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 17:36:27 +00:00
Stephan Aßmus
8995071f07 The vertical slider is now at least functionally working, although the rendering
code needs some love.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26444 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 15:55:58 +00:00
Stephan Aßmus
f898f8af47 If the user specified a hashmark location other than B_HASH_MARKS_NONE, draw
at least two hash marks, even if the hash mark count has never been configured.
Also means the minimum hashmark count is 2 instead of 1 as before. I think this
behavior is more what one would expect, I turned on hashmarks and wondered
why nothing happened until I realized I needed to configure the count as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26443 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 15:15:24 +00:00
Stephan Aßmus
58ecd48c0f Added a test for BSlider
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26442 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 15:06:13 +00:00
Stephan Aßmus
423b124450 First round of BSlider fixes to be more layout friendly:
* Improve the minimum size calculation and cache it.
* Invalidate the layout on various property changes that require it.

Vertical BSliders are very broken... that's up next.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26441 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 14:41:10 +00:00
Stephan Aßmus
cdcfa5945d * Added layout friendly constructor
* Use constructor lists for initializing members
* Simplified initial SetBarColor()
* Update the offscreen view with ViewColor() and LowColor(), someone might
  have changed it after AttachedToWindow() was called.
* Cleanup here and there


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26440 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-16 13:46:05 +00:00
Rene Gollent
2cfee16a9e Build fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26438 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 18:26:40 +00:00
Stephan Aßmus
4c28a7375d mmlr + stippi:
Use B_RGBA32 if you mean that instead of B_RGB32. The IconUtils could be
changed to either refuse B_RGB32 or give them an invalid alpha channel
with just B_TRANSPARENT_MAGIC_RGBA32. That would make that mistake more
obvious.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26437 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 18:20:01 +00:00
Stephan Aßmus
f01b70d098 mmlr + stippi:
Found an incompatibility with BeOS, where Haiku behaves correctly, though,
after our changes: The alpha channel of B_RGB32 bitmaps is ignored, but
B_TRANSPARENT_MAGIC_RGBA32 pixels are considered fully transparent. In BeOS,
B_RGB32 are simply treated as B_RGBA32, but only in B_OP_ALPHA. We have
added a comment as well as the code that would enabled the BeOS behavior.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26436 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 18:18:07 +00:00
Axel Dörfler
d421644512 * Offloaded the data source retrieval into another thread for more accuracy.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26434 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 17:10:52 +00:00
Axel Dörfler
46fa06b554 * Made the network I/O byte per second computation more accurate.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 17:09:08 +00:00
Stephan Aßmus
0634c42f2c Small code and comment cleanups as well as clarifications.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26432 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 17:06:14 +00:00
Stephan Aßmus
96c7800295 Rearrange Painter::_DrawBitmap() so that the optimized codepaths for unscaled
drawings are used for bitmaps that needed to be converted to B_RGBA32.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26431 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 16:46:39 +00:00
Axel Dörfler
706b0852bd * Fixed a possible overflow issue - for some reason, the page (and other)
counter are int32 in system_info.
* This fixes the new issue Bruno saw after the previous fix of bug #2140.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26430 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 15:59:26 +00:00
Axel Dörfler
84e23a5d08 * DataHistory::ValueAt() now interpolates between two values in case the time
doesn't match exactly one data item (before, it would have returned the
  value of the closest but earlier value).
* This almost removes the effect that the older values seem to change with
  every refresh (because the time did not always match exactly)).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26429 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 15:55:28 +00:00
Stephan Aßmus
fe71730a9c Add one more optimization for an often used case of bitmap rendering.
B_RGBA32 and B_RGB32 in B_OP_OVER no longer go through the generic AGG code
path, but have an optimized version now, as long as the bitmap is not scaled.
B_RGB32 needs to handle B_TRANSPARENT_MAGIC_RGBA32, while B_RGBA32 works just
like regular alpha blending.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 15:41:03 +00:00
Oliver Tappe
b0387fe2bb Fix problem with openssh failing to connect to OpenSolaris and Zeta servers:
* we need to initialize c_ospeed and c_ispeed, as a value of 0 means 
  'hangup' - which is not a good default, I suppose


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26426 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 15:09:32 +00:00
Stephan Aßmus
e87506af4d * Implement SetFont() and invalidate the layout. More controls should probably
do this.
* Fix build, appearantly I made a last minute change in Draw()...

BTW, confirmed that adding virtuals declared in the base class is ok for
binary compatibility.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26425 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 13:55:44 +00:00
Stephan Aßmus
4d2baf30df * Small coding style improvements.
* fPreferredSize was not initialized for the archive constructor.
* Added comment to archive constructor, because I was wondering how
  the default button status was reconstructed or the archive code path.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 13:23:29 +00:00
Stephan Aßmus
ee2a347385 Minor cleanup again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26423 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 13:22:29 +00:00
Stephan Aßmus
d3fe87ce70 * Cache a fPreferredSize following the example of BButton. Changed
GetPreferredSize() accordingly.
* No longer adds margins to the left/right side and top/bottom. These will
  make it difficult to make exact visual alignments with other controls and
  labels.
* Invalidate the layout in SetText().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26422 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 13:20:26 +00:00
Stephan Aßmus
52daa631a5 Added comment about possibly invalidating the layout when changing the font.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26421 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 13:17:52 +00:00
Stephan Aßmus
2a739c3115 Insignificant cleanup and comment typo fixes...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26420 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 13:17:20 +00:00
Ingo Weinhold
0629fe02b3 Properly round the partition size in
get_default_partition_content_name().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26417 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-15 11:28:18 +00:00
Axel Dörfler
8c121d2ca1 * Fixed the bug described by Salvatore: since we let BFS open directories with
read/write access, we shouldn't let it truncate the directory B+tree...
* Also fixed allowing truncation in read-only mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26416 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-14 23:23:16 +00:00
Stephan Aßmus
eb91d0058d * Whether an audio and/or video node is used is now more explicit. The audio
node can now also be turned off for videos that don't have audio.
* The PlaybackManager currently has the "no audio" support added in a not
  quite so nice way, will have to think about something, this is just quick
  and dirty to get it going. There is just two places where the audio time
  needs to be ignored, because it remains at zero.
  
-> Especially when using OSS, the seeking latency will be much reduced when
  playing videos that have no sound.

* The Controller now maintains the frame it wanted to seek to and does not
  forward "position changed" to other listeners as long as the seek frame
  has not been reached. This fixes the slider jumping back to the old position
  for a bit until jumping back to the seek frame. It also fixes another
  problem when switching to the next file. Because the total duration is
  already adopted while the old clip is still playing within the seek latency,
  the current position jumped to the new relative position, while it is
  still refering to the position within the old clip. So both seeking and
  switching clips looks much smoother now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26415 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-14 21:58:07 +00:00
Fredrik Modeen
67ca609fdc small updates
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-14 19:53:39 +00:00
Fredrik Modeen
574759641e BJoystick test app. A updated Stickit demo app the original article included
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26413 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-14 19:14:23 +00:00
Axel Dörfler
badcd9dbc7 * Popup menu is now sticky - this should probably be the default of all menus
when "sticky menus" is selected in the menu preferences (just in case we still
  have that setting...). Oh, this also fixes bug #2315.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26411 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-14 17:33:10 +00:00
Axel Dörfler
51591198d6 * Now use two views when starting (one memory, one CPU usage). The third view
that is added to the window is a networking monitor, all later views default
  to CPU usage again.
* DataSources can now share a single adaptive scale, so that they become
  comparable in a single view.
* The networking in/out sources are now using this feature.
* DataHistory::ValueAt() now uses binary search to find the right data_item;
  this also fixes bug #2140, and makes it possible to change the refresh rate
  (which is not yet implemented, though).
* Zooming the timeline now also works by clicking the first mouse button and
  dragging the mouse around (instead of only via the scroll wheel, in case you
  hadn't noticed yet :-)).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26409 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-14 17:29:02 +00:00
Ryan Leavengood
d4a18674e3 CHANGED the MidiPlayer GUI to use the layout system, mostly for the purposes of
the article I am writing, though it really did need this change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26408 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-14 16:41:21 +00:00
Karsten Heimrich
9b41970442 * hide the license key field as it is only supported in the commercial pdflib version
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26407 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-13 21:47:20 +00:00
Karsten Heimrich
99939029b3 * only delete the popupmenu if we running the async version of BPopUpMenu
This fixes part 3 of task #1987, TaskManager was using the syncronous version of
  of BPopUpMenu wrapped in it's own class to run asyncronous. It did set SetAsyncAutoDestruct
  to true and afterwards calling delete an the already deleted menu.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26406 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-13 20:42:14 +00:00
Oliver Tappe
49a22456dd Overhauled BNetEndpoint implementation (and BNetAddress, too):
* added NetEndpointTest that exposed a couple of bugs
* fixed several bugs in the implementation of BNetEndpoint, some of which kept 
  NetPenguin from working
* fixed a couple of constness issues in BNetEndpoint and BNetAddress


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26405 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-13 19:58:35 +00:00
Ingo Weinhold
0af6c60b15 Use the new get_default_partition_content_name() to construct a useful
volume name -- ReiserFS volumes don't support names.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26404 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-13 12:52:05 +00:00
Ingo Weinhold
f9f2d81621 Added helper function get_default_partition_content_name() that can be
used by file systems to get a useful name, if the file system (or just
that specific volume) doesn't have one.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26403 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-13 12:50:35 +00:00
Ingo Weinhold
64789466f1 Calmed down some debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26402 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-13 12:47:36 +00:00
Ingo Weinhold
60f2ef17be * Added "partition_id partition" field to fs_volume, so that file
systems can get the partition they reside on easily.
* Updated TODO.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-13 12:47:08 +00:00
Karsten Heimrich
d903f7e019 * fix some longjump warnings
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-13 11:16:15 +00:00
Karsten Heimrich
0ef072a3f9 * missing include, remove some whitespaces
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-13 11:13:50 +00:00
Karsten Heimrich
a80e05e225 * fixes for ticket #2378
* adjust ui code to be more font sensitive
* add/ rename some of the utils message manipulation functions
* use ReadAttrString instead of ReadAttr to get the printer name



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-13 11:11:43 +00:00
Ingo Weinhold
3be7d0090c Don't fail, when no userland add-on could be found for partition. We
won't be able to edit the partition in any way, but we shouldn't cause
the whole BDiskDevice::PrepareModifications() to fail. Should fix bug
#2470 -- haven't tested this, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-12 22:28:04 +00:00
Karsten Heimrich
4db0488ead * reordered MarinView.h, MarginView.cpp
* rename private functions to use underscore
* rename some public functions to match the usual style
* adjust pdf/ preview driver to use the renamed functions
* we where leaking a single message in _ConstructGui, otherwise no functional change
  


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26396 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-12 21:09:49 +00:00
Stephan Aßmus
fc53a63149 * On some systems, switching the resolution in VESA mode during
runtime did not work and gave a "General System Error".
  Jan Kloetzke provided a temporary work around, the area
  which the BIOS can access is enlarged, although according to
  specs, this should not be needed.
* After switching modes in the VESA driver, turn on write
  combining for the frame buffer area. This gives a huge speed
  boost for all graphics drawing. Only people for which mode
  changes did not work were using the full speed since the
  VESA mode switching support was added.
* Cleanup in the Jamfile, some header directories were included
  multiple times.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-12 19:33:03 +00:00
Stephan Aßmus
44e302192f The info window is not zoomable. (Fixes #2436.)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-12 17:50:05 +00:00
Fredrik Modeen
6942537437 cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26392 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-12 11:01:38 +00:00
Fredrik Modeen
326767870b unsuccessfully effort to move emuxkigamport to the emuxki audio driver where it belongs. The sound got distorted when the joystick was used.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26391 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-12 10:55:44 +00:00
Fredrik Modeen
0996e64efd Driver for USB Joystick SBLive and audigy. Work in progress. Right now the USB driver don't work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26390 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-12 10:31:24 +00:00
Ingo Weinhold
fca1417369 Fixed small selection problems:
* When selecting character-wise backwards the initially selected char
  was deselected.
* When first extending a selection and then moving the mouse back into
  the initial selection region (char, word, or line), the previously
  selected additional char/word/line would not be deselected (only when
  moving the mouse in the other direction out of the initial selection).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26389 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-12 02:36:26 +00:00
Ingo Weinhold
975d43b433 Incorrect selection line end enforcement -- the selection end is
exclusive. Fixes bug #2516.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26388 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-12 01:39:45 +00:00
Ingo Weinhold
bb69160b48 Changed GetStringFromRegion() to not insert '\n' for soft line breaks.
Fixes bug #2515.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26387 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-12 01:28:57 +00:00
Karsten Heimrich
731b9ac77c * If a handler goes away that has an looper, we should remove us from the
loppers fHandlers list, otherwise we might end up with a dangeling pointer.

  This should fix the crashes seen in Cortex and Icon-O-Matic on app close.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26383 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-11 20:07:00 +00:00
Oliver Ruiz Dorantes
674e234e11 - Reorder and fix the uninitialization of a device.
- Fix some null pointer bugs
- Mark the removed device to avoid killing it twice in the uninit hook (Mika Lindqvist)
* More things might be still missing in the uninit context 



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-11 18:18:43 +00:00
Stephan Aßmus
e4f6d30d1c The scrollbar down-button was hidden behind the window resize handle in the
Playlist window.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-11 15:00:58 +00:00
Stephan Aßmus
7992eb9f4b Added methods for (un)archiving. (yet unused and untested.)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-11 14:13:10 +00:00
Stephan Aßmus
ea1b25f5d1 Calling BStatusBar::Update() with NULL as either string argument should
keep the current string. (Untested)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-11 11:38:51 +00:00
Stephan Aßmus
2cbb2916a7 * _DoAppend() no longer checks the string and the string length, which resulted
in duplicate work/checks. Instead the length is checked in the calling
  functions.
* operator=(const char*) now checks if the passed pointer is the strings
  own data pointer. I think it would have freed the memory before, not
  sure though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26378 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-11 11:32:07 +00:00
Oliver Tappe
aebcc506e2 Corrected by previous assumption, since gethostbyname() has nothing to do with
struct sockaddr_in - the real culprits were BNetAddress::GetAddr(sockaddr_in&)
and BNetAddress::SetTo(const sockaddr_in&):
* moved check_r5_compatibility() into r5_compatibility.h to make that function
  available to BNetAddress, too
* adjusted sockaddr_in-handling methods of BNetAddress to deal with R5-addresses
  if in compatibility mode
* removed is_r5_sockaddr() again, since it is no longer needed

With this less hacky solution, Beam, NetPositive, NetworkTime and Vision still work. So, there's hope that the R5 compatibility layer is now complete.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26377 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 21:25:19 +00:00
Axel Dörfler
bd2509c549 * Desktop::_UpdateFloating() and Desktop::_UpdateSubsetWorkspaces() both
assumed that there was only a single window that was responsible for the
  workspaces of a floating/subset window. Of course, any number of windows
  can make up the workspaces of those. This fixes bug #2506.
* Added a Window::InSubsetWorkspace() method to complement SubsetWorkspaces().
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26371 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 14:17:23 +00:00
Stephan Aßmus
d24ece5186 * I have experiemented with a different method of countering the colored edges
problem of subpixel-anti-alised font rendering. Personally I find the method
better than filtering the subpixels, since it is a straighter transition
between unfiltered subpixel aa and grayscale aa. There is no added blur
affecting also innocent neighboring pixels. The filter method is better at
hiding jagged diagonal lines though, so Andrej and I agreed to move this to
a general discussion on the mailing list. Screenshots forthcomming...

* Some additional coding style improvements.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26370 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 12:59:20 +00:00
Axel Dörfler
9082b7f4ed * Completed module watching mechanism.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26369 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 12:42:02 +00:00
Axel Dörfler
b4147ed317 * RescanDiskSystems() now locks the disk device manager, as it clobbers the
disk system lists.
* Added module watching; on module changes, it will now automatically rescan
  the disk systems.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 12:21:05 +00:00
Axel Dörfler
b5753dd7c9 * Added a __swap_int32() function to the runtime_loader - this fixes the build,
since KMessage needs it now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26366 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 11:52:57 +00:00
Axel Dörfler
a120934388 * Moved KMessage field printing from vfs_boot.cpp::get_boot_partitions() into
KMessage::Dump().
* Improved message dump output a bit (more concise).
* get_boot_partitions() now simply calls KMessage::Dump() instead.
* Added a KMessage::IsEmpty() method.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26365 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 10:06:17 +00:00
Stephan Aßmus
66058774c8 Patch by Andrej Spielmann (GSOC):
* Extend the Fonts preflet to offer the new subpixel rendering and hinting
  options in a new "Advanced Settings" tab.
* Remove trailing white space.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26364 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:33:15 +00:00
Stephan Aßmus
1d6aab3303 Patch by Andrej Spielmann (GSOC):
* Add a private BFont API that sets/gets the subpixel and hinting configuration
  of the app_server. Currently, the options are boolean, but may be changed
  to modes later.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26363 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:31:48 +00:00
Stephan Aßmus
b09e2f6f4b Patch by Andrej Spielmann (GSOC):
* Extend the app_server protocol by configuration options to turn
  subpixel font rendering on/off and also make the glyph hinting optional
  (aligning of glyph shapes to the pixel grid).
* Implement the setting in the app_server and also handle the persistency.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26362 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:29:50 +00:00
Stephan Aßmus
fa6a00c628 Patch by Andrej Spielmann (GSOC):
* Integrate the subpixel rendering with the existing drawing backend and
  the font rendering.
* The font cache has got an additional rendering type for extracting and
  caching glyph bitmaps that store subpixel coverage values.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:26:38 +00:00
Stephan Aßmus
73b44a6aae Patch by Andrej Spielmann (GSOC):
* Extend the existing agg_renderer_region with the two new subpixel methods.
* Remove trailing whitespace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:22:41 +00:00
Stephan Aßmus
829453f678 Patch by Andrej Spielmann (GSOC):
Sorry, actually this third AGG class is also needed to handle subpixel scanline
coverage.

NOTE: I am trying to break up the large patch into digestable pieces. The
comments come from me not from Andrej, so I am to blame for any confusion! :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26359 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:19:22 +00:00
Stephan Aßmus
185d13d5de Patch by Andrej Spielmann (GSOC):
Two new AGG classes were needed to handle subpixel scanline coverage values.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26358 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:15:59 +00:00
Stephan Aßmus
0a0622a6de patch by Andrej Spielmann (GSOC):
Removed trailing whitespace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26357 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:12:38 +00:00
Stephan Aßmus
c816464287 patch by Andrej Spielmann (GSOC):
Added complementary functions to the set of functions that implement a
drawing_mode, these new functions interpret the coverage values passed
from the AGG rasterizer or another scanline storage as subpixel triplets.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26355 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:08:59 +00:00
Stephan Aßmus
60d98a49ed patch by Andrej Spielmann (GSOC):
* Added marco definitions for subpixel based blending of two 32 bit pixels.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 08:06:59 +00:00
Stephan Aßmus
674c8bc8bb Added TODO about a problem that the late mouse moved message dropping code
may have.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26353 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 07:35:47 +00:00
Stephan Aßmus
dde9faab86 * Made the mouse moved message dropping code slightly nicer to read.
* Don't drop messages which carry an important transit value. (Thanks, Axel!)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26352 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-10 07:21:16 +00:00
Jérôme Duval
6d3c6e761a reduced buffer size: with 4096, no buffer is received by the multiaudio addon
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26349 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 23:14:57 +00:00
Ingo Weinhold
f937627dc8 Blue screen pagination:
* Changed prompt and keys: Now it's 'q' to quit (abort) the debugger
  command and 's' to skip the following output.
* Don't offer or try to quit a command in the boot debug output.
* Cleanup the prompt and go to the next line also when aborting the
  command.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26348 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 22:59:45 +00:00
Axel Dörfler
8d79c7db81 * Made Dump() const.
* Removed superfluous whitespace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26347 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 21:32:37 +00:00
Jérôme Duval
14f3368d36 fix warning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26346 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 18:26:16 +00:00
Oliver Ruiz Dorantes
d04eb939af -Move the launching of the Local Device to an IOCTL from the open hook to be more compatible with the net_stack
-Implement Launch method in the accesors regarding previous comment
-Fix KDL at removing device



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26345 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 17:01:30 +00:00
Ingo Weinhold
383a9ac435 * Added an explicit boot_splash_uninit(). Not really needed, but makes
it clear when boot_splash_set_stage() must no longer be used.
* Free the memory associated with the kernel args before starting the
  init process. Unlike the original TODO stated there are quite a few
  more users of the kernel args (including the boot splash screen),
  hence we can't really do that earlier, unless we decide to copy the
  data over to the kernel heap. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26344 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 15:25:01 +00:00
Ingo Weinhold
fa0a5cd0e8 insert_preloaded_image() now copies the debug symbols and string table
over to the kernel heap. This allows us to simply free them in
unload_elf_image(). Now we no longer leak the memory for non-preloaded
images. On my T61 this amounted to more than 10 MB of kernel heap after
booting.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26343 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 15:17:39 +00:00
Axel Dörfler
daa861bc29 Work-in-progress of the module notification implementation:
* Most things are working, it just doesn't notify the listeners on changes yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26342 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 14:23:29 +00:00
Stephan Aßmus
bb73c05fd7 * Introduced a new view event mask flag: B_FULL_POINTER_HISTORY which,
when set, prevents any old mouse moved message discarding.
* BWindow::DispatchMessage(B_MOUSE_MOVED) checks the event time of the
  message and discards too old events, but only if there is another event
  in the queue and the view does not specify B_FULL_POINTER_HISTORY.
* BView::GetMouse() ignores the checkHistory flag passed to the function
  in case the event mask specifies B_NO_POINTER_HISTORY.
  B_FULL_POINTER_HISTORY on the other hand prevents the dropping of old
  messages.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 14:13:03 +00:00
Axel Dörfler
191a03fd11 * {add|remove}_node_listener() erroneously had "dev_t" as type of "node".
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26340 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 13:04:54 +00:00
Axel Dörfler
9c5c79ad86 * Made DIR definition private, and moved it into the new dirent_private.h
header.
* Added fields necessary to make it possible to retrieve more than one
  dirent from the underlying file system.
* Unless some app creates a DIR on its own to it to feed readdir(), this
  change should be binary compatible. If we find an application misbehaving,
  we can still make it a GCC4 only thing.
* fs_attr/fs_index/fs_query now all use readdir() directly (as that one
  contains the logic to iterate through a number of dirents in userspace).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26339 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 11:16:00 +00:00
Axel Dörfler
6ad2f357dc * Both, rootfs, and devfs did not correctly report the number of entries
returned by fs_read_dir().
* Removed superfluous white space.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26338 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 10:59:02 +00:00
Stephan Aßmus
fe3d5b3083 Implemented a simple fix for the message-pile-up problem of
BView::GetMouse( , ,useHistory = true) in case the application
calls GetMouse() in a loop with a longer delay then mouse
messages arrive at the queue. The "when" field of the messages
is used to discard old mouse moved messages. This also fixes
the possible problem of finding the same message over and over
in case it is not removed from the queue for other reasons.
This fix makes selecting text in Pe for example usable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26337 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 10:03:28 +00:00
Ingo Weinhold
74d5c1e499 * Fixed serious memory leak in team_create_thread_start(). The
destructor of the automatic KPath variable was never invoked, since
  normally arch_thread_enter_userspace() would not return and thus the
  function scope never be left. After a standard "jam @image" almost
  42 MB of kernel heap were lost this way.
* Added a few warning comments in functions that shouldn't use automatic
  variables with a destructor in the function scope either.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26336 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 03:58:38 +00:00
Ingo Weinhold
d1d7044ed1 Added TODO regarding memory leak. Too tired ATM to solve it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26335 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 03:04:39 +00:00
Ingo Weinhold
b64e66fbd0 Changes related to the "caches" command:
* The table used for sorting the caches could be too small for the
  number of caches in the system. We never checked that, which could
  cause a crash or triple faults when invoking the command.
* We now allocate the table as an area. Also increased the table size to
  102400 entries.
* Also print the committed memory for non-RAM caches, if they are the
  root cache of a cache tree that has committed memory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26333 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-09 01:56:58 +00:00
Marcus Overhagen
0cd4d5fa02 Report SCSI_STATUS_GOOD after successful ATAPI commands. This makes CDDA-fs work with AHCI.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26332 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 22:39:03 +00:00
Stephan Aßmus
f3312751b9 honor 80 char limit in comment
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26331 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 22:31:26 +00:00
Jérôme Duval
3787196a5a * some methods to access stream registers were defined with wrong types
* use HDAC_BIDIR_STREAM_OFFSET and HDAC_OUTPUT_STREAM_OFFSET when applicable
* use a PAGE_ALIGN macro


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26330 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 21:48:50 +00:00
Jérôme Duval
f67bbdb2a6 fixed warnings
use playback rate as preferred rate (instead of record)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26329 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 21:31:14 +00:00
Stephan Aßmus
264df95726 All input device add-ons should already do this, but make sure that
mouse messages have a "when" field with the event system time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26328 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 20:29:18 +00:00
Stephan Aßmus
d36ae78cc6 Added two tests:
* statusbar was used to test and improve some BStatusBar behavior
* lagging_get_mouse demonstrates what the problem is with older
  applications using synchronous GetMouse() calls without specifying
  that they actually don't care about mouse history.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26327 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 20:01:31 +00:00
Oliver Ruiz Dorantes
48cca06a81 Add new virtual method in the delegates to launch the device, Instantiation meant only to open/register the localdevice
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26326 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 18:39:41 +00:00
Stephan Aßmus
6be60b2d19 Applied patch by Jan Kloetzke:
The PUSHF/POPF instructions were not emulated correctly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26325 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 18:25:45 +00:00
Stephan Aßmus
fc8e77f863 When a BBitmap is drawn with scale, but also only partly, the inverse
image scan generator matrix was calculated wrongly. The part of the offset
that lies within the bitmap bounds needs to have the scale applied as well.
Maybe this code can be simplified. Appearantly there is not a lot of code
that uses BBitmap drawing this way, perhaps because the R5 version has had
issues with rounding. But MediaPlayer uses this feature for drawing the peak
levels and this is fixed by this change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26324 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 17:48:30 +00:00
Stephan Aßmus
93016537eb Check if the Painter even has a clipping region set before trying to take the
short cut when no text needs to be rendered. I've seen a crash yesterday in
the app_server test environment when the decorater was drawing something,
although it may also have been because I had a screwed up objects folder
where some objects were not recompiled because I am switching back and forth
between two app_server code folders.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26323 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 17:41:15 +00:00
Stephan Aßmus
bafcc63bcc This is either a fix or a workaround for a problem in Pe, where the
application modifies the scrollbars one by one and the changes would
have some weird cyclic effect where the constrains of one scrollbar
affected the scrolling already while they would be lifted afterwards.
It sounds weird, but maybe it is simply a resulting behavior of the
BeOS implementation which does not check the scrollbar restrictions
in the BView code. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26322 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 17:21:39 +00:00
Jérôme Duval
81a7dedd6b init buffer_cycle
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 16:41:52 +00:00
Ingo Weinhold
65748dc8d9 Remove() was moving an additional array element. Mostly harmless, but
would cause a crash when the array end was page-aligned and the next
page was not accessible. Happened to me during a "rm -rf ...".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26320 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 16:15:41 +00:00
Axel Dörfler
1bde8b03e7 * Replaced BFS's ReadWriteLock implementation with the kernel's rw_lock.
* The BlockAllocator now uses the new mutex_transfer_lock() function instead
  of clobbering the mutex directly.
* Removed Lock.h - it's no longer needed.
* Minor white space cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26317 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 08:04:37 +00:00
Axel Dörfler
78b32dd026 * The rw_lock is now able to nest read/write locks when you have a write lock.
It follows the semantics of the BFS R/W lock, though, that is, if you unlock
  your write lock before the read locks, the read locks effectively become
  write locks, too.
* Added a mutex_transfer_lock() function that will allow you to unlock a mutex
  in a different thread than the one which locked it (only matters if KDEBUG
  is enabled, though).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26316 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-08 07:56:49 +00:00
Michael Lotz
f90a5e346d Adding bus_barrier macro to compatibility layer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26312 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 21:52:40 +00:00
Oliver Tappe
a042907733 * removed debuggin leftover
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 21:06:04 +00:00
Jérôme Duval
b5f75a7ec8 forgot to close the stream before deletion
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26310 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 20:45:54 +00:00
Karsten Heimrich
685483eada * set the what field to okok on success, as the epson returns 'Good' for some reason
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26309 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 20:04:03 +00:00
Karsten Heimrich
c5ea3d591d * rearranged header a bit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26308 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 20:01:46 +00:00
Karsten Heimrich
a836d47d56 * cleanup, no functional change
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 19:39:10 +00:00
Karsten Heimrich
30cf4e6a54 * revert the last change as we can get stop etc. also
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26306 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 19:23:40 +00:00
Karsten Heimrich
7630cacab6 * check against baad as e.g. the epson addon does not return okok on success
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26305 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 19:14:08 +00:00
Karsten Heimrich
f56301c9e8 * maintain our own rect while printing, this makes it possible to print all pages e.g. syslog from StyledEdit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26304 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 19:10:39 +00:00
Oliver Tappe
3ad86c7ff5 Fixed R5 compatibility "layer" in libnetwork:
* instead of always converting from the expected r5_sockaddr_in to haiku's own,
  we now explicitly check whether or not the given sockaddr is an r5_sockaddr_in
  or not, naturally doing the conversion only if it is. This is necessary since
  even R5 applications may not always pass in r5_sockaddr_in structs (as for
  instance gethostbyname() will return a native [haiku-]sockaddr_in)
* cleaned up the confusion between the name r5addr and it's actual meaning
  (holding a haiku sockaddr_in) - renaming it to haikuAddr instead
* undid the part of Ingo's r25489 described as: "Extended R5 compatibility 
  check to also consider calls from libbnetapi" - as I fail to see why this
  would be desirable and in fact it stops at least Beam from working.
  Ingo: if you can remember, please enlighten me what was the reason behind 
  this change.
This finally makes Beam "work" (well: connect to servers and download mails ;-)
Vision, NetworkTime and NetPositive are still working, too, so hopefully there
are no regressions.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26303 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 18:53:01 +00:00
Axel Dörfler
06d5e1b3b6 * Added ReadLocker/WriteLocker classes to auto lock an rw_lock.
* Added *_init_etc() functions to the fs_shell.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26302 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 18:12:33 +00:00
Axel Dörfler
846f4fa2ab * Work-around for the KDEBUG "holder" mechanism; we actually want to lock the
mutex in another thread here than we will unlock it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26300 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 16:34:38 +00:00
Axel Dörfler
03fa417b70 * Removed the home-brewn locking classes in BFS besides the read/write lock
(for now).
* Inode::fSmallDataLock is now a recursive_lock, Journal::fLock is now
  a recursive_lock, too, Journal::fEntriesLock is now a mutex, as is
  BPlusTree::fIteratorLock.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 16:21:00 +00:00
Axel Dörfler
af370c702a * Added a recursive_lock_trylock() function.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26297 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 16:17:34 +00:00
Axel Dörfler
589f1a9133 * Made the private kernel locking primitives available to file systems as well.
* Applied Korli's mutex_unlock() fix to block_cache.cpp.
* Removed block_cache_priv.h, as it's no longer needed (moved its definitions
  into block_cache.cpp, as in the kernel file).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26296 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 15:19:19 +00:00
Axel Dörfler
36bf05cac9 * Added a lock to FileMap - since the map is retrieved lazily, and file
systems like BFS only hold a read lock when reading the map, accessing the
  file map wasn't safe.
* Made FileMap::Free() private, and renamed it to _Free().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26295 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 12:53:53 +00:00
Axel Dörfler
92c3ae2b69 * Reverted r26293 again, as that "subtle" change also prevented any device I/O
from happening...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26294 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 12:45:38 +00:00
Axel Dörfler
bed8516acc * file_{read|write}() now only accept regular files, and will return either
B_BAD_VALUE or B_IS_A_DIRECTORY depending on the vnode type.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26293 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 12:27:37 +00:00
Axel Dörfler
469c26e738 * Since we now have a vnode::type field, several calls of read_stat() were no
longer necessary.
* Optimized file_seek() using this field, too; reading the stat is now only done
  when necessary.
* file_read() and file_write() will now return B_IS_A_DIRECTORY so that not
  every file system has to care about that particular error code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26292 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 12:24:24 +00:00
Axel Dörfler
52ecda6ecf * Added some optional KDL command and statistics to the file map implementation.
* Turned them on for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 12:02:24 +00:00
François Revol
0cd3ea3e50 ...and the correct struct name.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26290 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 11:31:40 +00:00
François Revol
30145fa1fd - handle the supervisor bit from SR correctly on iframes
- various notes on 060 vs others:
	- 060 has 040 compatible mmu, except pgtables must *not* be on copyback memory
	- 060 has a processor control reg which has a revision number to use in system_info
- notes on ctx switch:
	- must be kept in sync with asm code
	- fsave generate variable size frames, so reserve space and use non-predecrementing EA.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26288 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 11:22:26 +00:00
Axel Dörfler
9dcc2929fa * Made a class FileMap from struct file_map.
* Added two TODO comments to the start of the file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26287 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 11:16:50 +00:00
Stephan Aßmus
62bf33df96 Don't reset the window size when playing a new file if it isn't necessary.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26286 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 08:33:03 +00:00
Stephan Aßmus
591f4c05bc Remove the negative delay that was supposed to account for client->app_server
delay. The audio is later than the calculated realtime anyways, I suspect
the OSS Node does not advertise it's latency 100% correctly yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26285 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 08:32:17 +00:00
Michael Lotz
432e3df3c7 * Change the fixed bin list to a generated one based on a few constraining
factors per heap class. The previous bin sizes would in many cases just have
  wasted memory by not fully using up the available space while not providing
  any more elements than a bigger size. The computed bins ensure that the best
  sizes are used based on a min count, min size, alignment and max waste per
  page. Also changed the heap sizes to more reasonable values and renamed them
  to small, medium and large.
* Remove the shouldGrow parameter from heap_memalign() and just check it using
  heap_should_grow() where appropriate.
* Fix readding a nun-full area to the area list, the added page count can be
  bigger than one, therefore the check must be free_page_count == pageCount.
* Simplify ensuring correct alignment, just aligning the size instead of
  checking each candidate bin for alignment is enough.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26284 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-07 01:09:41 +00:00
François Revol
1308815ba3 Fix scope for gcc4.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26283 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-06 20:23:25 +00:00
Jérôme Duval
df709516a0 moved stateStatus read/write out of the interrupt handler
added some error verbose


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26282 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-06 19:20:03 +00:00
Stephan Aßmus
4a684bb832 That is more likely to give the right realtime...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26281 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-06 18:32:28 +00:00
Stephan Aßmus
9282400ff4 * The SeekSlider did not update the knob when it was resized.
* Subtile visual improvements to the SeekSlider.
* Added a PeakView for displaying the audio peaks that are produced by
  the AudioProducer.
* A MessageEvent can now directly take a custom BMessage for delivery.
* The peak notification mechanism is a bit separate from the rest of the
  Controller notification design, since the notification delivery should
  be delayed until the audio is actually audible. I may change this
  quick and dirty design though, since it is not so nice. The target
  time could also be part of the message and be handled at a different
  stage, but that would make it less efficient.
* Layout improvements to the playback controls.
* Code cleanup here and there, changed some license statements.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26280 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-06 18:29:42 +00:00
Ingo Weinhold
e146a7bf2f Also print the indices of stack frames. This makes the "call" command
more convenient to use.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26279 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-06 15:32:40 +00:00
Karsten Heimrich
ba18b05b5d * Fixed broken archive functionality, before we would not archive subitems
and store the archived items in the wrong message field. Verified on R5.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26278 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-06 14:46:06 +00:00
Oliver Tappe
7da7c45951 * when finding out whether or not R5 compatibility mode is required, we may have
to scan loaded libraries, too, as the dependency on network libraries may not
  be present in the executable image, but may be "hidden" in one of those
  library images (as is the case with Beam).
  


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26277 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-06 13:50:28 +00:00
Karsten Heimrich
d2805ca9aa * Archive the thread priority as well, it can be found in an R5 archive if Run() was called.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26276 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-06 10:34:47 +00:00
Karsten Heimrich
cd6265ec4d * don't leak fTrack
* fixed broken while loop
* call _InitObject also from the archive constructor
* just noticed while trying to load the R5 epson printer driver, still not working...



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26275 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-06 10:26:14 +00:00
Karsten Heimrich
f589ec0229 * remove whitespaces, no functional change
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26274 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-06 10:21:41 +00:00
Michael Pfeiffer
504092a4de Patch by JiSheng Zhang to fix firewire gcc4 build instability.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26272 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-06 07:45:09 +00:00
Oliver Tappe
1aa3d2e3f3 Resolved a couple of problems in BNetAddress implementation:
* fixed several byte order inconsistencies, it does not make sense to always
  convert the byte order input/output values - no we convert where it can
  be expected and leave it where it is confusing
* fixed size inconsistencies with respect to family and port, both of which
  were sometimes handled as int8, as int16 and as int32 in different places
  (now they are always int16)
These fixes make Beam connect to the correct address and port, but it still doesn't work, as it seems to be using UDP instead of TCP (doh!). Will look into that tomorrow.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26269 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-05 22:37:06 +00:00
Oliver Tappe
49cdfc106f * added a test for BNetAddress that exposes a couple of problems with the
current implementation (especially byte-order problems)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-05 22:27:05 +00:00
Jérôme Duval
43eab982cf reads now returns B_IS_A_DIRECTORY instead of B_BAD_VALUE for directories
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-05 22:26:21 +00:00
Stefano Ceccherini
6e29a04d36 Patch by Dustin Howett which 'modularizes' timers. The best timer is
automatically selected at boot time. Pit and Apic timers are implemented
for now. Thanks Dustin!



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-05 20:40:06 +00:00
Stephan Aßmus
34ff70da4f * Added "Randomize" feature to Playlist window (Edit menu). It randomizes
either the selected items, or the entire list if nothing is selected.
* Small cleanups here and there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26264 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-05 19:21:38 +00:00
Stephan Aßmus
0ff21997d1 Small clean up.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26263 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-05 19:19:39 +00:00
Stephan Aßmus
ad5756bf3d * Accidentally left some dirt when removing debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26262 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-05 18:23:52 +00:00
Stephan Aßmus
e6ac2ec43e * The window would not reset the audio/video track to 0 on a new file if
the Controller would keep the last audio/video track index across files
  (which would be nice for certain situations).
* Better error message for unsupported files, especially for the
  B_MEDIA_NO_HANDLER error.
* In the Controller, try to obtain the track duration and ignore tracks that
  return a bogus duration. I have some MP3 files on ZETA that are obviously
  not handled correctly by the ZETA mp3 decoder. Previously, the player would
  just sit there and appeared to have some other internal error.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26261 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-05 18:22:37 +00:00
Axel Dörfler
9b74b9cda8 Vastly improved the file map implementation:
* adjacent vecs are now joined.
* partial invalidation no longer frees all cached extents.
* the array can now be larger than the needed number of entries, allowing
  for a saner array allocation policy.
* it does no longer read the whole file map when the first translation is
  requested, but only as much as required (it will still ask the file system
  for the maximum file size, but it won't traverse further as long as the
  initial request is fulfilled).
* This should help a lot with the ext2 file system that doesn't support real
  file extents (but keeps a list of blocks).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26260 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-05 17:58:47 +00:00
Axel Dörfler
609865fd21 * Implemented binary search for the disk offsets.
* Moved the file_extent array into its own structure (unnamed union problem
  with GCC4), and added max_count field (currently unused).
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26259 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-05 13:38:38 +00:00
Michael Lotz
dde0ba6223 Make the all_areas list ordered by base and take advantage of this ordering
when looking up the target area on free(). This makes free() scale better with
large area counts, as the lookup can abort early when it knows that no area
below the only candidate can contain the address.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26258 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-05 01:12:34 +00:00
Michael Lotz
a8f9741c8c * Removed -Wno-unused from all KernelMergeObjects in kernel Jamfiles.
* Fixed most of the warnings resulting from that by removing actually not used
  variables or moving declaration into the #IF. Left unused functions there
  though, as I wouldn't know if they are supposed to be used again.
* Fixed two statements with no effect (clamping to MAX_ANCILLARY_DATA_LEN in
  socket.cpp and unsetting fCounterSem in MessagingService.cpp).
* Some style cleanups.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26253 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-04 23:14:19 +00:00
Michael Lotz
4d9151c499 * Give the heaps a name so the grow heap can be distinguished from the small one.
* Rename sHeapList[] to sHeaps[], as there are no heap lists anymore.
* Rename the debug defines to be even more obvious.
* Also initialize allocations by area with non-null values when being paranoid.
* Disabled some debug output.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-04 21:05:46 +00:00
Michael Lotz
0ea16d8b5b Fix missing newline.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-04 17:38:34 +00:00
Michael Lotz
e5f7642ca8 Remove a few unused variables.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-04 16:10:25 +00:00
Ingo Weinhold
b8a6621507 fault_find_page(): When the source of the top cache is busy, we may
find our own dummy page. This is equivalent to not finding a page at
all. Fixes #2471.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-04 15:46:27 +00:00
Ingo Weinhold
063a092f93 Test to quickly reproduce bug #2471.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26247 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-04 15:20:43 +00:00
Michael Lotz
af637076ad * Avoid calling vm_unreserve_memory() if there is no change in the commited
size. Removes a bit of overhead (call and mutex_lock / mutex_unlock).
* Don't fail if there is exactly enough memory available to satisfy the
  reserve request. Not that it would really matter as it's rather an edge case...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26246 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-04 14:49:25 +00:00
Michael Lotz
45b309e39d Spotted this while reading through page code. The usage_count would be set for
wrong pages when allocating a page run unless the run started at page 0 as the
start offset was missing.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26245 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-04 14:41:17 +00:00
Michael Lotz
e511f726ea * Implement freeing of empty heap areas. When a heap_area becomes completely
empty and there is another empty area already, it is now removed from the
  heap and the underlying area is deleted.
* Fix grow suggestions to be based on 20% of a grow size instead of 10% of the
  current page count, as the current page count obviously gets larger over time
  making 10% of it larger than the grow size itself.
* Fix non-urgent grow request handling so that not two areas at once get added.
* Made some of the debug output more useful, turned off some other and fixed
  some comments.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-03 22:57:27 +00:00
Ingo Weinhold
71dffe8b84 The stack layout changed in r23983. Since then user_debug_post_syscall()
wouldn't be passed the syscall start time anymore. Fixes weird syscall
timings when using strace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26243 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-03 21:14:54 +00:00
Axel Dörfler
dcdf3137e1 * Unnamed volumes now get the disk size instead of "unnamed" in their mount
menu name, ie. "(unnamed Ext2 File System)" could become "(12.5 GB Ext2 File System)".
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26242 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-03 20:44:57 +00:00
Axel Dörfler
c4d5cef0c6 * Now prints the disk size as part of the default name so that different
volumes are easier to differentiate.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26241 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-03 20:41:31 +00:00
Ingo Weinhold
dc27129332 stippi + bonefish:
* Missing backslash in UPDATE_THREAD_KERNEL_TIME() macro. Caused the
  thread's kernel time never to be updated when the thread left the
  kernel. The time would be added to the user time instead.
* Changed semantics of thread_at_kernel_exit(). It leaves interrupts
  disabled when returning, now. All code using it would disable
  interrupts afterwards anyway, and inbetween the thread could be
  interrupted causing two more time updates (or actually not causing
  them erroneously).
* The code in x86's interrupt handler entry (int_bottom) also checks
  thread::in_kernel now, to determine whether the thread was already
  considered to be in userland. This is necessary since the sysexit
  instruction doesn't reenable interrupts, so that we have to do that
  with the preceeding instruction. Hence an interrupt can occur
  inbetween, which would incorrectly add the interrupt's kernel time
  to the thread's user time.
* For userland threads team_create_thread_start() didn't invoke
  thread_at_kernel_exit() or any equivalent. We do that in 
  arch_thread_enter_userspace() now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26240 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-03 20:37:08 +00:00
Axel Dörfler
0875ae984f * Preparations for a module listener API - this will be used in the (disk)
device managers.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-03 11:52:36 +00:00
Stephan Aßmus
9380c00233 Tweaked the default preferred apps for some text mime types. The chances
are high that Pe is installed, if not, StyledEdit is used anyways. Also
Firefox is more likely to be present on these days images than NetPositive.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-03 11:36:28 +00:00
Michael Lotz
85ebbd1318 Another partial rewrite of the kernel heap. There are no heap lists anymore,
there is only one heap_allocator for each heap class. Instead of adding
complete allocators, individual areas can now be added to existing allocators.
This removes a lot of complexity in the frontend code and avoids the previous
duplications wasting resources (allocator lock, bin sizes, bin list).
The pages are now managed in heap_area structures that are attached to areas.
They store the page table, page free lists and local variables. The same
mechanism as used for heap_pages is now used for heap_areas too, i.e. they
are kept in a sorted list where the fullest but not yet completely full area
is always at the top. This favors areas to become completely full and other,
not as frequently used areas, to become completely empty over time so they can
be freed. Full areas are removed from the list, so they do not need to be
looked at/skipped when allocating new pages. Through this mechanism and as
there are no allocator lists anymore that grow bigger over time, allocations
should be far more scalable. Note that actually removing areas once they are
not needed anymore is still not implemented, but it is now a relatively easy
addition whereas previously it would have killed the whole design.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-03 01:44:35 +00:00
Axel Dörfler
bb956ce2ea * Fixed coding style.
* Since there is no "Haiku license", I replaced that with a reference to the
  MIT license as usual.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26236 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 22:03:04 +00:00
Oliver Ruiz Dorantes
5d7bf42195 Fix EOL
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26230 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 21:09:04 +00:00
Oliver Ruiz Dorantes
848c65ab3e Fix EOL
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26229 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 20:59:57 +00:00
Oliver Ruiz Dorantes
9bfe62f9aa Cleapups, Fix memory leaks,
Patch by Mika Lindqvist. Could we give give him Commit access? 
I am getting daily patches from him with fixes and new features.
 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26227 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 19:41:45 +00:00
Jérôme Duval
765ae3a785 Applied patch from Mika Lindqvist: This patch implements both strlwr() and strupr() functions in libroot and includes strupr() in kernel build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26226 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 19:30:46 +00:00
Jérôme Duval
72401b8f9e PAGE_SIZE is defined in Haiku limits.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26225 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 19:13:13 +00:00
Oliver Ruiz Dorantes
b94e17518b Implement RemoteDevice contructor by String
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26224 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 18:28:00 +00:00
Stephan Aßmus
22e2241763 * Fixed a race condition where the interrupt for a command happened before
the thread issuing the command called acquire_sem_etc() on the semaphore
  that the interrupt handler would otherwise release. The semaphore is now
  released unconditionally, but to prevent the race condition that the
  B_RELEASE_IF_WAITING_ONLY was trying to avoid, it is released with the
  spinlock held.
* The error interrupt handler did not reset the fCommandsActive flag, but
  it seemed to us like it should do that.
* WaitForTransfer now also acquires the spinlock to reset fCommandsActive,
  which may be unnecessary but does not harm either.
* Cleanup of some long lines, sorry for mixing that with the actual fix.

Fixes bug #2359 (long pauses when accessing the disk).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26223 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 15:37:35 +00:00
Axel Dörfler
119b7dccf0 Patch by David Powell:
* Turn off text cursor when switching to text mode.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26222 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 15:04:10 +00:00
Michael Lotz
321ee820ea * Fix the broken size/alignment computations for area allocations by replacing
them with the ROUNDUP macro that was specifically made for this task so that
  too tired developers do not mess up the calculations...
* Don't use area allocation during kernel startup (not that it really happened).
* Minor simplification of similar calculations in heap_attach().

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 13:00:13 +00:00
Michael Lotz
84c54473eb Added grow request tracking again. In case an allocation fails due to lack of
contiguous pages, it will request growing even if there are still more than
10% free pages available. Previously that case was not handled anymore and the
allocation would have just failed. Note that this is a pretty rare case, as
there are no "large" allocations happening in either the small or large heap
classes, but only in the huge one for allocations between 128KB and 1MB.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 11:42:35 +00:00
Stephan Aßmus
96a152f90d Applied patch by Urias McCullough:
Fixed Big Endian build of ReiserFS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26219 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 11:20:47 +00:00
Axel Dörfler
bac6cc8ad7 * Fixed a few problems reported by Marcus - thanks for proofreading!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26218 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 10:38:27 +00:00
Axel Dörfler
3b83493b10 * Cast block before shifting, as suggested by Marcus; it shouldn't have any
actual consequences but looks more correct.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26217 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 10:33:38 +00:00
Michael Lotz
883f9063ef Implement transparent allocation by area for huge allocations (> 1MB). This
does in fact happen, as there are objects used in the kernel that allocate
with new, which in turn uses the heap. The OpenHashTable used from the slab
allocator hit this case during an svn checkout here, because it grows it's new
allocated list by doubling the list size. Added some unconditional debug
output for those cases to monitor the usage for now. All of that not yet really
tested though.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26216 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 10:29:02 +00:00
Michael Lotz
7431b5241e Fix subtle logic error that would always cause a needless large allocation if an alignment was given.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26215 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 09:50:58 +00:00
Axel Dörfler
b7cb8f8c30 * Seems like GCC4 does not like declaring structures inside unnamed unions;
that looks like a compiler bug to me, though.
* Pulled struct data_stream out of the union (now called ext2_data_stream),
  based on a patch by Maurice, thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 09:43:12 +00:00
Axel Dörfler
13de3d0767 * Fixed wrong group block offset computation: the
ext2_super_block::first_data_block must be used; the superblock offset
  doesn't matter if the block size is greater than 2KB.
* Fixed block access beyond the 4GB limit - we need to cast the block to
  a 64 bit type in ext2_get_file_map() before shifting it.
* Tested with various larger ext3 disks, and everything seems to work fine.
* Added some optional debug output.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 09:15:04 +00:00
Michael Lotz
0aad734230 The simple alignment trick used before doesn't work with the new heap classes
(it didn't really work previously anyway). The only alignment really used seems
to be B_PAGE_SIZE, which happened to always work out before, because anything
larger would have been allocated using individual pages anyway. Since larger
bins are now available and with kernel heap leak checking enabled an allocation
of B_PAGE_SIZE with B_PAGE_SIZE alignment is actually a bit bigger than
B_PAGE_SIZE, it got into the 5KB bin, which didn't guarantee the alignment
anymore. This would have caused a tripple fault on boot when kernel heap leak
checking was enabled. The alignment is now taken into account when picking
the bin for the allocation. Added a more detailed TODO as to why this isn't
the best thing (wastes space) and how it could be changed if deemed necessary.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26212 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-02 00:59:32 +00:00
Stephan Aßmus
396f6e29ee bonefish+stippi:
Implemented the needed fs API hooks to support identifying partitions 
(so ReiserFS partitions appear in the Tracker Mount menu now).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26211 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 23:54:08 +00:00
Michael Lotz
b1f4df4a62 Implement heap classes that each have their own range of allocation sizes they
serve, bin sizes and page size. This minimizes the amount of "large"
allocations made in heaps that don't have a bin for the allocation size
(combining multiple pages). This is desirable as such large allocations
are generally pretty inefficient, and also because it separates larger from
smaller allocations better, making the chance of a heap becoming empty higher.
For now there are three heap classes "small", "large" and "huge", with a
predefined set of bin sizes for each. This might need some finetuning later on.
Reduce the grow size to 4MB though as the allocations should now be spread
across heap classes which each grow on their own.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26210 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 23:19:35 +00:00
Stephan Aßmus
e8679dcdc7 Merge Ingo's reiserfs changes which he accidentally commited to his branch: Adopted reiserfs add-on to the new fs API and added it to the image.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26209 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 22:46:54 +00:00
Marcus Overhagen
d7c321236f Set transfer length when doing ATAPI transfers.
Dump ATAPI command packet on error.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26205 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 22:04:33 +00:00
Jérôme Duval
af206cf2d6 gcc4 build fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 20:56:23 +00:00
Michael Lotz
8c57aefdf8 Remove the B_PAGE_SIZE page size and replace it by a heap->page_size. This
allows for dynamic (heap)page sizes. It's currently just set to B_PAGE_SIZE
but I'm expermienting with the creation of differently sized heaps that could
use dynamic page sizes with that.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26203 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 20:44:43 +00:00
Oliver Ruiz Dorantes
b42c202a65 Fix typos reported by Mika, and remove whitespaces
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26202 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 20:28:12 +00:00
Oliver Ruiz Dorantes
d0651ae6ac Add entity to handle the available LocalDevices from KL
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 20:25:08 +00:00
Michael Lotz
86a38aedf4 Take a shortcut when freeing in heap_realloc(), we already know the address belongs to our heap.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 20:18:02 +00:00
Oliver Ruiz Dorantes
291e114333 Fix EOL
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 19:43:37 +00:00
Oliver Ruiz Dorantes
480cccf67b Fix a serious TODO,
Report the index where the event opcode pair has been found.
Currently server was expecting them to be the first entry of the request 



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 19:35:10 +00:00
Michael Lotz
5c5b7a5760 While the comment was correct with regards to collecting the semaphore after
the cancel, it wasn't actually done. This could bring a device out of sync in
the case timeouts actually happened (which shouldn't be a commen case).
Fixed that and increased the timeout to 2 seconds in favor of slower devices.
Might need some fine tuning later still.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26197 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 19:21:59 +00:00
Oliver Ruiz Dorantes
18dbcd22a0 Handle the command status sent before the arrival of a remote name request.
Avoid unhandled event in the bluetooth_server
	by Mika Lindqvist
  


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 19:15:15 +00:00
Oliver Ruiz Dorantes
ab563fc0a5 Fix mail in header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26195 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 19:00:39 +00:00
Rene Gollent
78163ba34d That should've been eol-style :/
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26194 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 17:31:11 +00:00
Stephan Aßmus
f592fcef43 stippi + bonefish:
Fixed race conditions when a ServerApp or ServerWindow is created. The 
reply to the client that the object has been created successfully was 
sent in the thread creating it. Preempted at the wrong time (right after 
writing the message to the port) could lead to the object's thread using 
the link at the same time, which would screw up all subsequent 
communication via that link.
This fixes the problem that mimeset would sometimes fail when building 
Haiku in Haiku (can't find the ticket). It probably also fixes #2331, 
and the bug that sometimes when a window is opened (Terminal, crash 
alert, shutdown window, etc.) it would come up with huge width/height 
and tiny other dimension (can't find the ticket).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26192 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 15:47:56 +00:00
Axel Dörfler
0c48c43777 * Fixed the bfs_write() error code for directories as suggested by Jerome.
* Removed a few superfluous checks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 11:42:51 +00:00
Axel Dörfler
6450897685 * Fixed a pretty dumb copy&paste error that prevented (/double/triple) indirect
blocks from working.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 11:24:48 +00:00
Axel Dörfler
0680840ad1 * Added support for files larger than 4GB - not yet tested, though.
* The stat::st_nlink value is now correctly reported.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26188 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 10:39:39 +00:00
Axel Dörfler
63db34c816 * Implemented a read-only ext2 file system.
* It's not yet complete, doesn't support some ext2 stuff (like files over 4 GB),
  and might have some other bugs (I only tested it with a single 20 MB ext2
  image).
* To have a read/write ext2 file system, it would probably make more sense to
  port GNU sources (like ext2fs lib), and use that. But a small read-only ext2
  file sytem doesn't hurt, I think, and I don't know if ext2fs lib would be
  feasible for kernel use (porting the file system from Linux directly would
  also be an alternative, but probably more work).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26187 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-07-01 10:12:19 +00:00
Jérôme Duval
fdf3fa9fe1 read() expects B_IS_A_DIRECTORY on directories that can't be read.
This fixes grep misbehavior with directories.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 23:06:41 +00:00
Philippe Houdoin
774e87aac9 Removed mention of Haiku, a generic "system" sounds both better and distro name independent.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 22:35:01 +00:00
Philippe Houdoin
eb0a51d2f2 Applied patch by David Powell: fix missing and existing bootloader options menu items help texts.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 22:25:19 +00:00
Oliver Ruiz Dorantes
5e53139393 Make the BWindows die in a proper way as suggested by mmu & stippi
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26183 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 22:16:23 +00:00
Jérôme Duval
45e9de08d5 merging acpica-20080609 into trunk, changes some types in os code
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26181 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 21:06:24 +00:00
Axel Dörfler
d5157b61d2 * Reverted r26128 again; it should not be necessary after r26177 anymore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26178 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 10:41:55 +00:00
Axel Dörfler
8531599a27 * KDiskDeviceManager::RescanDiskSystems() now also rescans all partitions with
the newly found disk systems.
* _ScanPartition() now allows to restrict the disk systems to a predefined set.
* _ScanPartition() now even scans partitions that already have a disk system
  assigned; if a better one is found, the existing one is replaced. It will
  ignore mounted or partitions with children, though.
* KPartition now also stores the priority of the disk system assigned to it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26177 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 10:36:47 +00:00
Rene Gollent
781420cc0e Don't include the easter egg decor menu in Haiku builds since it does nothing anyhow.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26176 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-30 02:51:08 +00:00
Ingo Weinhold
9f130719f5 Fixed the layout of the "aspaces" command output and added the number of
areas and the total area size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 23:17:41 +00:00
François Revol
ff41eb66a3 Fix build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26171 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 21:08:12 +00:00
Michael Lotz
d0b2c3e1b8 Remove locking when drawing the decorator buttons. This is most probably not
correct, but it prevents a deadlock that could sometimes be seen right after
booting when the Terminal was supposed to draw the decorator buttons. It
doesn't seem to cause any problems with locking removed (the original drawing
code didn't lock either). Added a TODO to investigate and eventually fix that
though.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26170 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 21:03:34 +00:00
François Revol
81c9dc3dd5 The file was changed to C++...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26169 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 20:59:46 +00:00
Jérôme Duval
bf48050249 setup register cache after the codec id is known
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26168 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 20:47:01 +00:00
Rene Gollent
fa366cbe40 Accidentally broke CountItemsUnder() for invalid items with previous commit. This fixes
VLC, which for some reason calls CountItemsUnder(NULL) quite a few times on startup.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26167 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 18:54:28 +00:00
François Revol
f41c3a5bcd - Move Atari platform class out to a platform file.
- Use the platform object to determine the platform type in system_info.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26166 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 18:22:34 +00:00
Ingo Weinhold
d9a109d8dc "caches" also prints the total number of pages assigned to caches and
the total amount of committed memory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26165 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 15:16:34 +00:00
Ingo Weinhold
478c7fe7e5 Also print free() info when wall checking is disabled.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26164 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 14:47:08 +00:00
Axel Dörfler
ccdad945c6 * Applied patch by Donn Cave: channel_set() was missing, causing bug #2284.
Thanks!
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26163 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 10:24:40 +00:00
François Revol
931a9e2b88 Fix build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26162 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 09:35:50 +00:00
Ingo Weinhold
9e1ea0e7d4 Don't leak the buffer allocated at the beginning of the function.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26161 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-29 00:13:03 +00:00
Ingo Weinhold
e1b630c55d * Replaced the global cache pages hash table by an IteratableSplayTree
per cache.
* Changed the strategy vm_cache_acquire_page_cache_ref() uses to ensure
  that the cache isn't deleted while trying to get a reference. Instead
  of the global cache pages hash table lock, it holds the global cache
  list lock now. We acquire + release this lock in delete_cache() after
  removing all pages and just before deleting the object.
* Some small optimizations using the property that the cache's pages are
  ordered, now (vm_cache_resize(), vm_page_write_modified_page_range(),
  vm_page_schedule_write_page_range()).
* Replaced some code counting a cache's pages by simply using
  vm_cache::page_count.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26160 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-28 23:42:41 +00:00
Michael Lotz
a5db16fc79 * Implement counting free pages in kernel heaps.
* Suggest growing when there are less than 10% free pages in the last heap.
  Previously it would suggest growing when there were less than three free
  pages, which wasn't really any good measure. In quite a few cases this could
  have lead to too late growing and running out of heap space.
* Only panic when memory allocation fails while growing kernel heaps. Otherwise
  just output a message and return NULL. Even this panic is not really
  necessary and should be continueable, but for now I'd like to see if this
  situation actually happens.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26157 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-28 20:03:23 +00:00
Michael Lotz
0a7531ac0d We don't have a "working strerror_r" as far as grep configuration is concerned.
Grep declares it "working" when strerror_r returns a string, while POSIX says
it should return int (as we do). Don't know where this config define came from,
as we do not have any headers advertizing it wrongly. This fixes bug #2450.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26156 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-28 18:30:16 +00:00
Michael Lotz
f4ccccb1f0 Patch by Monni that fixes a warning caused by a missing # prefix. This fixes
bug #2463, thanks!

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26155 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-28 17:44:42 +00:00
Axel Dörfler
bcd307089b * Fixed a deadlock found by Salvatore; the volume lock is now only used to
protect the bfs_read_fs_stat() and bfs_write_fs_stat() functions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26154 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-28 16:08:38 +00:00
Axel Dörfler
08aba34e74 * Removed a now unnecessary stat() on the device to be mounted.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26153 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-28 16:01:16 +00:00
Axel Dörfler
ef098c9099 * Removed volume lock from bfs_get_vnode() - it's not necessary on Haiku.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26152 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-28 13:48:11 +00:00
Axel Dörfler
541270efa5 * Wrote a "screenmode" application that can be used to get and set the current
screen mode from the command line.
* With its "--fall-back" parameter, it's also thought to be called from BWindow
  when a specific shortcut has been pressed (similar to screenshots) - this
  part is not implemented yet. Anyone against <Command><Control>-<Escape>?
* Added it to the image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26150 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-28 11:37:06 +00:00
Rene Gollent
84d75fa444 Rewrote SwapItems() so as to not fail in various cases.
Fixed logic error in CountItemsUnder() that would sometimes 
return the wrong count. This would result in issues such as
Vision's network reordering failing to reorder down due to
retrieving the wrong item based on the count.

This fixes ticket #2447.
 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26149 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-28 03:03:56 +00:00
Philippe Houdoin
e221c09e50 Moved rc from <build> tools to target standard command tools.
Updated rules to build the <build>rc platform version.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26146 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-27 20:44:01 +00:00
Axel Dörfler
01f28a0ae3 * Ported CDDA file system to the current FS API.
* Fixed warnings.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26145 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-27 13:11:07 +00:00
Stephan Aßmus
e9246c710e Implemented Playlist->Edit->Make Empty (undoable).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-26 22:42:20 +00:00
Stephan Aßmus
3b057d9fad Minor changes to debug output, I was trying to track something down, actually
a problem in the OSS media node which also affects at least the ZETA 1.2
MediaPlayer on ZETA.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26143 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-26 22:41:30 +00:00
Stephan Aßmus
992a8afd5d Resolved small TODO about detaching the scrollbar while doing bigger
changes to the list in order to speed those up.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26142 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-26 22:40:00 +00:00
Stephan Aßmus
b9b511dc4f * Small cleanup.
* RealTimeForTime() did not work without VideoProducer. Maybe it is never
  used though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26141 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-26 22:39:02 +00:00
Stephan Aßmus
585d5a26d3 Removed a no longer used method.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26140 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-26 22:37:07 +00:00
Axel Dörfler
6c63e7a548 * Fixed network boot: stack_interface_recvfrom() crashed when _addressLength
was NULL; now it only dereferences it when "address" is non NULL.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-26 19:38:43 +00:00
Ingo Weinhold
bd434c17ab When CTRL-H is pressed send the CTRL-H char not the backspace char.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26138 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-26 13:14:15 +00:00
Ingo Weinhold
cdb5a85e80 Ignore ^?. That's what xterm seems to do.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26137 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-26 13:12:36 +00:00
Ingo Weinhold
84f0cb1ab4 VERASE is ^?.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-26 13:11:54 +00:00
Ingo Weinhold
66b9ba2a0b * The VERASE char (the one generated by backspace) is 0x7f.
* With output processing enabled, replace the VERASE char by
  BS SPACE BS instead of VERASE SPACE VERASE.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26135 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-26 13:11:17 +00:00
François Revol
3899803680 Made buildable under Dano.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-26 00:32:15 +00:00
Alexandre Deckner
8a588970c7 - HiliteDropTarget was broken, it used a trick to avoid unselecting already selected items but assumed every
call to HiliteDropTarget(true) and HiliteDropTarget(false) would come in pair on the same target.

 Fixes #2453 and #1793


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26131 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-25 16:46:03 +00:00
Axel Dörfler
81b4a3051a * "uname" now reports the operating system as "Haiku".
* This fixes a part of bug #2451.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26130 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-25 12:09:46 +00:00
Axel Dörfler
42fe8ffbd2 * This fixes the stupid compiler warning reported by Vasilis.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26129 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-25 11:45:03 +00:00
Michael Lotz
ea538ecee8 If the intel partitioning system doesn't detect any children and is not
directly on a device (i.e. has a parent), then don't indicate that we want to
support it at all, but just return -1. Most probably it is actually a
filesystem and not a partition. Indicating that we might support it a bit
could lead to the situation that the partition was associated with the intel
partitioning system in the end because the module for the actually present
filesystem wasn't yet loaded in the first initial device scan (during early
boot when looking for the boot partition).
The later rescan wouldn't touch that partition anymore as it was already
(wrongly) associated with the intel partitioning system, therefore leading to
unrecognized partitions as seen in bug #2424. By not pretending to support the
partition when we most probably don't, a later rescan that has all filesystems
available therefore has a chance of identifying that partition correctly.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-24 22:49:34 +00:00
Ingo Weinhold
276aa463ef * Replaced the useless InitCheck() method in {Open,Multi}HashTable (it
always returned B_OK) by a Init() method, which sets the initial size
  and returns an error, if that fails.
* Adjusted code using the classes accordingly. Replaced a few
  InitCheck() methods in the network code by Init().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26127 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-24 22:23:57 +00:00
Stephan Aßmus
5ff7609dce * Cache the silence buffer instead of allocating a new one each time and
writing zeros into it in a real time thread.
* Use a different method to calculate the drift. The old method would generate
  a stable drift value after some time, but somehow the drift gave problems
  after a while. For example on Haiku, the MediaPlayer would stop playing
  stuff after several hours of uptime. The new method calculates the drift
  for just the last written buffer, like the Multi-Audio node does, but
  averages the result over the last 64 drift values in order to smooth out
  sudden changes. Seems to work well on Haiku, on BeOS, the sound quality seems
  to be a bit worse (the BeOS mixer actually resamples each buffer according
  to current drift).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-24 21:06:45 +00:00
Axel Dörfler
285b754fa7 * dec_vnode_ref_count() can now also directly free the vnode if requested
(and if it isn't used anymore).
* vnode_low_memory_handler() now just calls it this way, so it doesn't have
  to use two passes anymore, and can always write back vnodes without having
  the busy flag set.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-24 20:59:59 +00:00
Michael Lotz
192232b395 This copy and paste error sneaked in when syncing roothub debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26123 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-24 18:48:49 +00:00
François Revol
27fc711986 Fix gcc4 build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26122 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-24 16:10:57 +00:00
Alexandre Deckner
96f8dfaec8 - Some view mode transitions had to be handled specially: kScaleIconMode -> kScaleIconMode,
kMiniIconMode -> kScaleIconMode, kIconMode -> kScaleIconMode.

  Switching the mode to kScaleIconMode uses a special code path that resets the view origin, 
which wouldn't get a chance to be stored/restored. Other icon mode don't need to save/restore 
their origin except when going to or coming from kListMode.

This fixes #2441, although i just discovered the same problem when using SwitchDir() (single 
window navigation)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26121 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-24 11:19:12 +00:00
Ingo Weinhold
2965c99fea * Changed the _kern_exec() and _kern_load_image() syscalls. They expect
a flattened argument/environment buffer now. This simplifies the work
  for the kernel a bit, since it can just copy the buffer and check
  whether it looks OK instead of messing around with individual strings.
  The runtime loader also gets a flattened array.
* Set the maximum size of the arguments/environment buffer to 128 KB.
  When more arguments are passed, we fail with a proper error code
  (instead of just truncating the arguments as before).
* On exec*() the first argument was silently replaced by the given path
  name, which is not correct.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-24 03:37:07 +00:00
François Revol
42d85ff725 Extend copyright years to 2008 for the boot menu.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 23:50:23 +00:00
François Revol
8df3441d64 - Add 040 mmu support
- Set global mmu ops depending on mmu type.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26116 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 23:13:07 +00:00
François Revol
ac00c6372d Add mmu-specific code, WIP.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 22:25:43 +00:00
Axel Dörfler
57ba13c507 * Added shortcut "command-shift-q" that, analogously to "command-shift-w", quits
the app, and keeps the status of all open mails untouched.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26114 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 21:51:46 +00:00
Axel Dörfler
8905dde820 * Changed the window cascading to be more useful with more windows.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 21:24:38 +00:00
Axel Dörfler
8f0dc0c0d8 The "Show Header" option is no longer persistent, and will only affect the
currently shown mail when checked.
It just didn't make any sense the way it was before, and was inconsistent, too,
as it only affected mails opened after the current one.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 21:00:48 +00:00
Ingo Weinhold
40bbe4ecf9 Added Command-1...9 as shortcuts for switching tabs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26111 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 20:44:02 +00:00
Salvatore Benedetto
7b67df9c06 * Fix cache reference leak
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26110 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 20:13:25 +00:00
François Revol
b75f915a2e Some fixed...
Stack grows downward on m68k!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26109 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 19:43:12 +00:00
François Revol
a474ef4c38 Seems the atari VT52 emulation doesn't wrap lines, so really send a LF before clearing the 2nd help line.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 19:38:24 +00:00
François Revol
753ef08150 Fix menu item help display: it was used as index in the line buffer when it actually is an index into the whole string, so on 2nd line it was outbound... That was segfaulting some items on Atari.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26107 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 19:29:30 +00:00
François Revol
14fbb88f10 stubbed out makebootable for atari. It should be doable the same way as on x86, but the emulator doesn't scan hdds for bootsector.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 15:52:44 +00:00
François Revol
c9a9fe0f74 enable arch specific config manager, to allow hardcoding devices.
On x86 we might want to publish isa devices like PS/2 ports if they aren't found via ACPI.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26105 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 15:37:30 +00:00
François Revol
7e60c269dc m68k runtime loader code, not sure it works.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 15:31:51 +00:00
François Revol
ee679412f7 Add missing s_fabs* from glibc-2.3.5.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26102 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 15:21:05 +00:00
François Revol
94b31b08db Don't check for not-intel when you mean ppc!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26101 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 14:13:42 +00:00
François Revol
b9f1ded35e revert to a simple counter for system_time, using _hz_200 seems to get it stuck.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26100 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 13:35:27 +00:00
François Revol
b45b3d7dcb - move prg ldscript where it belongs.
- added rule for boot .prg, no need to do it by hand :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 13:32:28 +00:00
François Revol
a85b351d4e Use the x86 kernel.ld as model instead of ppc. Thsi makes kernel_m68k link \o/
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26098 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 11:01:46 +00:00
Axel Dörfler
45a237d7f4 * Changed Vnode to be more flexible to use, and reduced its memory footprint
a bit.
* This also fixes a bug Salvatore pointed me to: Vnode would also call
  put_vnode() on destruction if get_vnode() failed earlier.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26097 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 09:55:04 +00:00
François Revol
1fd024be6a - missing ppc stub
- kernel_m68K almost links now, jsut bails out on the linker script...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 03:28:18 +00:00
François Revol
38ff098d80 Just return ok and be done with it, we can just ignore it for the time being.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26095 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 01:57:02 +00:00
François Revol
f0c5a3da4b - Add missing globals
- stubbed commpage stuff.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26094 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 01:54:18 +00:00
François Revol
826e403de5 Stubbed commpage stuff for ppc. Someone writeme please...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 01:53:36 +00:00
François Revol
4237dbd0fc kernel compiles but doesn't link yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 01:23:16 +00:00
Rene Gollent
4079af86ca gcc4 build fixes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26091 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 00:54:54 +00:00
François Revol
7f0e4c8577 move cpu-specific objects out of source list to other objects list.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26090 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 00:23:40 +00:00
François Revol
30629f410c - move atari platform subclass to platform/atari_m68k/
- fix exception handling, at least it builds now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26089 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 00:16:23 +00:00
François Revol
c21157b9cb Change to C++ (shrug :p)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26088 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 00:00:39 +00:00
François Revol
4b8885d500 Missing include.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26087 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-22 21:35:23 +00:00
François Revol
1654ce1468 - Add some useful TOS variables.
- Spice up cpu and machine detection.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-22 21:23:36 +00:00
Rene Gollent
fa83a2a121 These files were in CR/LF newline format for some reason.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26084 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-22 19:49:08 +00:00
Michael Lotz
6cf7524447 Add comment explaining the reason for retrying capacity reads.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-22 18:32:02 +00:00
Michael Lotz
27b95d52b8 Impose a one second timeout on all usb_disk data transfers. This should avoid
hanging systems on boot, but probably just hides a problem somewhere else, as
the transfers should timeout on their own if the device doesn't respond.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-22 15:07:49 +00:00
Michael Lotz
717b5b78ce Retry reading the capacity up to three times. The first try might only yield a
unit attention telling us that the device or media status changed, which is
expected.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26081 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-22 15:02:35 +00:00
Michael Lotz
57e81ac7d8 Properly initialize the device_hooks in the null and console drivers to include
the select/deselect/readv/writev hooks. Not that it would matter as the static
memory there is cleared to 0 anyway.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26080 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-22 13:37:08 +00:00
Michael Lotz
a47ceb2aec * Only set the select hook on the device module if we actually got a select
hook from the legacy driver.
* Add note explaining why it is set to an arbitrary invalid value (~0) and why
  it still works by redirecting in the virtual Select() of LegacyDevice.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26079 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-22 13:30:56 +00:00
David McPaul
d1b297a928 Implement FindKeyFrame
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26078 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-22 06:38:56 +00:00
David McPaul
bd9b4bd9d1 Implement FindKeyFrame
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26077 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-22 06:38:35 +00:00
David McPaul
1a1204316a Implement FindKeyFrame
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-22 06:38:04 +00:00
Michael Lotz
61ed28ee13 * All drawing modes except for B_OP_COPY should respect transparent pixels in
source bitmaps. The destination is preserved now when encountering such
  transparent pixels in the source bitmaps.
* B_OP_ERASE is supposed to replace with the low color whereever a source
  bitmap has a non-transparent pixel.
* The B_OP_MIN and B_OP_MAX drawing modes are supposed to select either the
  source or destination pixel based on their brightness, not combine the two
  pixels' color components into a new pixel. The brightness_for() function is
  taken from ColorConversion.cpp in the interface kit. Probably a simpler
  algorithm would do as well.
* Handle B_TRANSPARENT_MAGIC_* in all cases when drawing bitmaps with non-alpha
  source bitmaps, as all modes except B_OP_COPY are sensitive to transparency.

This should make all drawing modes behave as documented in the BeBook. Except
for B_OP_SELECT, which seems broken under R5, the results compare nicely now.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-22 02:34:15 +00:00
Michael Lotz
3d75dfbb4a Adding a DrawingModes test application that uses the different drawing modes
to draw a bitmap and a B_MIXED_COLORS pattern. This shows that most of the
Haiku drawing modes are off of what the BeBook documents them to be and also
shows that B_OP_SELECT is actually broken under R5.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26074 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-22 02:18:16 +00:00
François Revol
35471ac53e - add fpu states
- add needed asm_offsets
- start of exception handling


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26073 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-22 01:36:52 +00:00
Michael Lotz
00c81869c5 Fix obviously swapped if statement checking for a solid pattern.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26071 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 23:51:37 +00:00
François Revol
ffa2f65116 Let's use asm offset instead of hardcoded values...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26070 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 23:41:36 +00:00
Ingo Weinhold
0b4dac74e0 * Added kernel tracing for insertion and removal of cache pages (tracing
level 2).
* merge_cache_with_only_consumer() marked the source cache unbusy when
  it was done, which caused a race condition with the page fault code.
  I accidentally introduced this problem in r25716. Fixes #2326.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26068 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 21:08:07 +00:00
Michael Lotz
efec339946 Take the source alpha into account when doing a B_OP_INVERT so that drawing
bitmaps in B_OP_INVERT mode does not affect pixels where the source bitmap
was transparent, as noted in the BeBook. Not really sure I'm doing that right
though and probably needs looking into for B_OP_ERASE and B_OP_SELECT too.
Fixes bug #2421 though.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26067 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 19:38:56 +00:00
Stephan Aßmus
50450a0053 Implemented an AudioReader subclass "AudioVolumeConverter" which applies
a volume to the audio data. It ramps between a previous and the current volume
if necessary to smooth out the changes. The volume slider functionality is
thereby restored.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26066 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 18:15:48 +00:00
Michael Lotz
bdc47b1f97 Remove transparent magic handling for B_CMAP8, ImportBits() takes care of that already.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26065 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 14:48:06 +00:00
Michael Lotz
f24652cba6 Fix two wrong debug output messages and add one for AS_SYNC.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26063 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 13:45:58 +00:00
Stephan Aßmus
4e913061bb Make the buffer latency less agressive for Haiku, this makes audio playback
perfect in Haiku for me (HD Audio), while it adds a very noticable latency.
On C-Media, the difference between "policy 4" and "policy 5" is 2048 versus
32768 bytes, which is 16 times the latency. I added a note on why the same
policy on Haiku might give me troubles (C-Media versus HD Audio means
16 bits/sample versus 32 bits/sample) and if OSS does not double the buffer
size then I can see where the trouble is comming from. I should probably
figure out a more fine grained way of influencing the driver buffer size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26062 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 13:13:21 +00:00
François Revol
2e314c0993 Fix build for Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26061 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 12:49:56 +00:00
Stephan Aßmus
773ead235b Added note about the remaining playback problem for using OSS in BeOS.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26060 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 12:19:55 +00:00
Stephan Aßmus
d3ebd7843a Victory! With these changes, playback is nearly perfect under BeOS (tested with
C-Media based sound card). In Haiku, I could test with HD Audio, and playback
has clicks. It doesn't seem to have to do with the "drift", which is now
correctly published, I am not sure what exactly is causing it, I would like to
test on different hardware yet.
* I have modified the buffering policy (4 will give about 2048 bytes internal
  OSS buffer), which decreases the latency of the node to an acceptable value.
* I completely replaced the timesource publishing algo to be more reliable.
* Removed now unnecessary methods from OpenSoundDeviceEngine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 12:14:26 +00:00
François Revol
1f5afb2e36 Add to the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26058 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 12:12:17 +00:00
Stephan Aßmus
188ba2f72a * SetTarget((BView*)NULL) needs to unset the previous target's pointer to
the scrollbar.
* Added notes about BeOS behavior to SetTarget(const char*).
* Reuse SetTarget(NULL) in the destructor.
* Initialize fTarget and fTargetName in the archive constructor.
* Added TODO about possibly restoring the target in the archive constructor.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26057 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 08:39:14 +00:00
François Revol
1e4285015c Better handle incorrect io ranges, it should only be fixed for PC (around 0x3f0).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26055 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 00:35:07 +00:00
François Revol
71c84a02ee Rename floppy target to pc_floppy, add to the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26053 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 23:14:18 +00:00
François Revol
476618a00e Move the floppy driver to disk/floppy/pc_floppy, it will be named pc_floppy, as it handles PC-style controllers, but not only PCs have those, so it doesn't belong to arch anymore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26052 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 23:05:19 +00:00
François Revol
01cf5d4907 Prepare for move.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26051 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 23:01:16 +00:00
François Revol
8942de6c0d Make the floppy driver buildable again... even under Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26050 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 22:58:15 +00:00
Alexandre Deckner
1c4b7e9e01 - revert my last changes to ScrollBy, this temporarily bring back #2312
and the previously mentioned ResizeToFit issue.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26047 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 20:04:10 +00:00
Ingo Weinhold
2fd41f637c Also scroll to the cursor when pasting something.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26046 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 12:38:52 +00:00
Ingo Weinhold
644470be68 Use the preferred history size. It's not settable via GUI yet, but one
can edit the settings file. The default are 10000 lines BTW.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26045 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 12:35:42 +00:00
Ingo Weinhold
a5e61a10eb Fixed mouse copy'n'paste support. We use a separate clipboard for mouse
selection which we update whenever the first mouse button is released.
This also enables copy'n'paste between Terminals.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26044 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 12:22:52 +00:00
Alexandre Deckner
d511a89a8a - Since r21336, BView::ScrollBy was checking the values against the ScrollBar ranges but ScrollBy is often called before
updating the scroll range (ie: in ContainerWindow.cpp). IMO, the programatic ScrollBy method shouldn't depend on the 
ScrollBars ranges or state. The original fix in r21336 was apparently hiding other BScrollBar or BView bugs that have been 
fixed in the mean time.
  The content was offseted when going back to list mode after moving icons on the left/up in icon mode. This fixes Tracker bug 
#2312.

- Revert and fix changes to ContainerWindow.cpp in r18481 (cvs 1.37). The condition was broken, but it wouldn't ScrollBy() 
anyway due to the previous problem. Fixing BView made the content autoscroll even if the lefttop corner of the extent was 
already visible.

- Probably unrelated, fix changes to ContainerWindow.cpp in r18993 (cvs 1.38). PoseView()->Bounds().left/top < 0 is expected, 
if for example in icon mode you move an icon close or crossing the left side of the window and then scroll left to adjust. 
This fix ResizeToFit that wouldn't scroll the view correctly in some cases.

So we had a Tracker Bug uncovering a BView fix that was hiding another Tracker bug, everything is fixed hopefully, phew :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26043 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 02:39:33 +00:00
François Revol
04390361b5 - comment
- fix building arch_debug. Misses many regs still.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26042 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 02:22:26 +00:00
François Revol
a3dc7ef06c - some cpu and platform fixes.
- we'll just use decimal chip number (68030, ...) to identify cpu, fpu, and mmu for simplicity.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26041 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 02:11:45 +00:00
François Revol
7d5d19dfab bviously M68KPlatform makes more sense here :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26040 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 01:40:58 +00:00
Ingo Weinhold
769b9b3c40 * Generate the same escape sequence when pressing control or command and
the left/right cursor keys.
* Normalized the Ctrl-<cursor> escape sequences. Makes word navigation
  in vim work.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26038 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 01:33:18 +00:00
François Revol
194846c6a4 Remove another OF leftover. If we ever support hades or milan we'll add something else there.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26037 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 01:24:27 +00:00
François Revol
616c19c359 Remove leftover OF header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26036 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 01:23:20 +00:00
François Revol
22531ab80f Fix building the pci bus manager. Still quite stubbed out though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26035 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 01:20:29 +00:00
Ingo Weinhold
10a01828a1 The main thread was used as BApplication thread and a new thread as
worker thread. That sounds somehow reasonable, but has the problem that
signals to the process hit a thread that doesn't know how to handle
them. Fortunately the author already prepared the code to switch the
thread tasks. In the Terminal vim does now correctly react on window
resizes. Probably also fixes #2393.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26034 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 00:56:05 +00:00
Ingo Weinhold
b43255b9f7 Squashed TODO: When writing a character in the last column of a line we
wrapped to the next line and a subsequent LF would advance another line.
We behave like xterm now, i.e. visually the cursor stays on the same
line (on the last character), but the next character will be wrapped to
the next line.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26033 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 00:30:13 +00:00
Ingo Weinhold
f9428b3ecd Also clear the selection when invalidating all.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26032 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-19 22:23:59 +00:00