Commit Graph
100 Commits
Author SHA1 Message Date
Axel Dörfler b1c3e6a9f0 Added "echo" to the image.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15821 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 14:27:02 +00:00
Axel Dörfler 0d5dea62de * Setting the window title via "-t" now works.
* Improved error message in case the initial shell couldn't be executed.
* Disabled setting the colors via arguments, mostly because it just did quit
  the app in case there were any arguments and no /etc/rgb.txt file. This
  allows Terminal to be used by the debug_server instead of MiniTerminal.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15820 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 14:24:43 +00:00
Axel Dörfler cf48970b0f Initial workspace is a bad idea after all - why should debug alerts always open
on workspace 1 just because the system booted in that workspace? :-)
Now modal windows are opened on the current workspace.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15813 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 11:55:15 +00:00
Axel Dörfler e97863686f Added "alert" to the image.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15812 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 11:39:24 +00:00
Axel Dörfler 843bc3cd0d * Introduced an initial application workspace - should be retrieved differently,
though (ideally when launched).
* B_MODAL_APP_WINDOW_FEEL windows are now visible on the initial app workspace
  in case it has no other window visible. This fixes the missing BAlerts in
  the debug_server or just the "alert" command. Thanks to Stephan for pointing
  this out.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15811 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 11:39:03 +00:00
Axel Dörfler 574af5597c Floating windows start with 0 workspaces - probably didn't matter, though, as
freshly added windows are hidden anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15810 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 11:36:45 +00:00
Axel Dörfler 5edcfe9619 Cleanup!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15806 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 09:23:08 +00:00
Axel Dörfler a31ddcb397 Forgot to include this in the last commit: added big endian support to R5 format.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15805 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 09:22:27 +00:00
Axel Dörfler 5c7f87685e Added big endian support for R5 messages, minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15804 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 09:21:35 +00:00
Axel Dörfler f4a73641e0 Imported current OpenTracker Deskbar: it can now start apps (and show the
"About Haiku" window) without having Tracker running.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15803 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-03 08:38:28 +00:00
Axel Dörfler 37675ea580 Deleted ranges were never removed from the ranges hash... this could have finally
nailed down bug #77.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15791 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-02 13:09:42 +00:00
Axel Dörfler 4faa23ccb3 Minor fix, closes bug #81.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15788 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-02 12:17:14 +00:00
Axel Dörfler 7da062312a Imported Deskbar from OpenTracker-current.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15774 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-01-01 23:40:49 +00:00
Axel Dörfler e075b5a32e Added some debug helper. Hopefully they give more insight to Stephan's problem (bug #77/#78).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15767 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-31 14:31:31 +00:00
Axel Dörfler 7d61d305c6 Some minor fixes and cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15765 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-31 13:15:15 +00:00
Axel Dörfler a615ec8f86 Imported OpenTracker-current.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15764 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-31 12:34:37 +00:00
Axel Dörfler aa9196b83e Speedup scrolling with the scroll wheel: this seems to vary from app to app,
BeMail uses 2, Terminal (under Dano) 4, and Tracker as well as pe 3 - so 3 seems
to be a good compromise.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15763 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-31 11:35:59 +00:00
Axel Dörfler 456d0d082b We now have mouse wheel support for all views that have scroll bars. Should
probably increase the values we got from BScrollBar::GetSteps(), though, as
it's a bit slow.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15755 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-30 21:02:33 +00:00
Axel Dörfler 9aad1a5754 Fixed some problems of the EventDispatcher I introduced since I've played
with the "EventMask" test app the last time:
* The focus view didn't get any mouse messages anymore if there was a permanent
  B_POINTER_EVENTS view.
* B_KEYBOARD_EVENTS now works again.
* B_MOUSE_WHEEL_CHANGED messages no do arrive their targets without prior
  keyboard input.
* Added TODO item that other focus messages don't go through to the app without
  keyboard input (fix only works for B_MOUSE_WHEEL_CHANGED).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15754 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-30 20:59:14 +00:00
Axel Dörfler 8ea9eaa1cb * Resize the placement controls to their preferred height, make them a little
wider, so that they completely fill up the space they have (making them nicely
  aligned to the surrounding border).
* the placement controls now accept up to 5 bytes (for things like "-1000").


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15751 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-30 19:20:24 +00:00
Axel Dörfler 6e2cf48b9f * The X/Y placement text controls are now lined up with the bottom of the
color picker.
* Renamed message constants by considering our style guide.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15750 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-30 19:11:45 +00:00
Axel Dörfler 140dd51293 cache_abort_transaction() could let cached_block::parent_data have the same value
as cached_block::data - which led to a crash as block_cache::FreeBlock() tried to
free both later.
Since neither cached_block::parent_data nor cached_block::original are supposed
to be != NULL in block_cache::FreeBlock(), they are no longer freed, but the system
panics if one of them is not NULL.
This should fix bug #77.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15749 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-30 18:47:16 +00:00
Axel Dörfler c77be36230 * Now makes sure the boxes/window is large enough for the BColorControl.
* The left and right box should now always look aligned horizontally
  (at least under Haiku).
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15748 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-30 18:26:11 +00:00
Axel Dörfler f17cfabc82 * Fixed BBox resizing when not attached.
* Less flickering when drawing the label: the area of the label is now
  clipped, so there is no need to fill the background again.
* Consumed the last reserved member for the bounding box of the label.
* More or less rewrote the header.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15747 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-30 18:23:48 +00:00
Axel Dörfler 47c1e3d9a9 * Now writes the background info message as B_MESSAGE_TYPE attribute (instead of 0).
* Better error reporting when writing the attributes.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15744 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-30 15:36:14 +00:00
Axel Dörfler 509798f986 Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15743 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-30 15:30:42 +00:00
Axel Dörfler 6e5e7fa996 It's allowed to write attributes with type 0 - for some reason, our Backgrounds
preferences app writes its info with this type (instead of B_MESSAGE_TYPE as
Be's does).
It's now possible to set the background image for Tracker under Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15742 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-30 15:24:33 +00:00
Axel Dörfler 7b73023562 * Fixed the attribute string error in other places as well.
* Now always returns B_BAD_DATA in case of attributes with the wrong size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15741 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-30 13:59:54 +00:00
Axel Dörfler 762eb2233b * NodeInfo::GetType() now returns B_BAD_DATA instead of B_BAD_VALUE if the
attribute is longer than B_MIME_TYPE_LENGTH.
* NodeInfo::GetType() now null terminates the attribute; you cannot expect
  that strings in attributes are null terminated (it already wrote the null
  byte to B_MIME_TYPE_LENGTH - 1 for safety, but why not do it right?).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-30 13:53:34 +00:00
Axel Dörfler 2494fda73a The resolution and image type now span over the whole width of the file
panel window (and thus the text is no longer cut off under Haiku).
Instead of only writing "JPEG Image" for JPEG images, and nothing for
all other image types, the MIME types short description is now displayed
(or the MIME type itself if no such description exists).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15733 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 21:10:17 +00:00
Axel Dörfler c016311bca No longer annoys the user if there was no settings file (it asked to configure
the settings in that case...).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15728 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 18:30:35 +00:00
Axel Dörfler 8f9ab4d1a3 Fixed client side AS_SET_DESKTOP_COLOR - did send a uint32 as int32.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15725 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 18:14:35 +00:00
Axel Dörfler fc6ec91732 Implemented AS_SET_DESKTOP_COLOR - the desktop is not redrawn yet, but freshly exposed
areas will be filled with the new color.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15724 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 18:09:07 +00:00
Axel Dörfler 55fd3336b6 * Fixed a bug in ServerApp: when a ServerWindow would take too long to quit,
it could crashed the server.
* ViewLayer now deletes the view bitmap on destruction, if any.
* BitmapManager::Delete() now also accepts NULL bitmaps.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15723 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 17:40:18 +00:00
Axel Dörfler b773ffdd9f Fixed build of fake_app_server (ServerBitmap destructor is now protected).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15721 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 16:59:11 +00:00
Axel Dörfler 4c66abd6f2 Implemented basic server side BView::SetViewBitmap() support. Things like B_TILE_BITMAP
or even the resizing mode isn't done yet, though. See TODOs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15720 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 16:46:02 +00:00
Axel Dörfler 7cc0dec4a2 Got rid of the remaining SERVER_TRUE constants.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15719 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 15:57:24 +00:00
Axel Dörfler 4acb99b60f Implemented reference counting of ServerBitmaps, made constructor and destructor private,
as only the BitmapManager class is allowed to call them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15718 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 15:36:18 +00:00
Axel Dörfler 93052717b0 Renamed AS_LAYER_GET_{DRAW|BLEND}_MODE to *_{DRAWING|BLENDING}_MODE.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15717 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 15:06:24 +00:00
Axel Dörfler e351ecb78d Renamed BView::_SetViewImage() to _SetViewBitmap(), and AS_LAYER_SET_VIEW_IMAGE
to AS_LAYER_SET_VIEW_BITMAP.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 14:52:43 +00:00
Axel Dörfler 9f8f6275f6 Fixed shutting down apps with file panels - no more hang:
* if file panels shouldn't be quit, we no longer call QuitRequested() for
  them and stop quitting windows (which left normal windows open, because
  file panels always return "false" in QuitRequested())


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15715 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 14:49:28 +00:00
Axel Dörfler 6c5611a064 BFilePanel::Show() is now virtual, so my previous change didn't work -
ImageFilePanel::Show() must be called explicetely.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15713 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 13:47:03 +00:00
Axel Dörfler cd2d1ffdda * Renamed BGView to BackgroundsView, etc.
* Moved ImageFilePanel code to its own file, so that it can be reused easily.
* Moved BGWindow stuff into Backgrounds.cpp.
* Cleanup to match our style guide better.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15712 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 13:37:52 +00:00
Axel Dörfler a4513d1c7c Enabled building Backgrounds under BeOS, and added it to the test environment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15711 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 11:55:23 +00:00
Axel Dörfler 2642bdee5c The multi-monitor settings now also look okay. Still needs some work, though, and
a new layout as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15710 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-29 11:21:22 +00:00
Axel Dörfler ca8fc8c47c The aspect ratio of the monitor is now independent of the size of the MonitorView's bounds.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-28 23:50:16 +00:00
Axel Dörfler 5a78744bed First baby steps into a font sensitive interface. At least it now looks good when
runnning under Haiku :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-28 23:36:39 +00:00
Axel Dörfler 99383764f6 Enabled building under BeOS, and fixed the build under R5.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15702 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-28 23:27:32 +00:00
Axel Dörfler 6f9dddcb72 libgame.so can now be compiled again in the test environment (libbe_test).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15701 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-28 21:53:13 +00:00
Axel Dörfler 529bf1c6d7 block_range::Delete() did not remove the block_range from the free list,
and thus, it could be used again which led to a crash.
Changed the free ranges list from a singly linked list to a doubly linked
list so that not all free ranges have to be searched for the one to be
freed anymore.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15696 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-28 16:40:05 +00:00
Axel Dörfler 3dcaf063c2 Cleaned up locking and fixed a related bug: put_cached_block() could have been called without holding the cache lock.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-28 16:24:09 +00:00
Axel Dörfler a31b66b768 Added tracing for calling the init routines.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15694 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-28 14:47:51 +00:00
Axel Dörfler 5e796c3bb3 A couple of endian fixes, inspired by Ingo - there might be some more left, though,
it's untested yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15693 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-28 14:03:10 +00:00
Axel Dörfler c004406e92 * Fixed a stupid bug in vm_page_write_modified() I introduced recently: if pages having
the modified bit set were written back (that's the case when they weren't put into
  the modified pages queue yet), they were enqueued into the active queue twice, messing
  up the page lists with various effects - this little thing took me busy for the last
  few days :-/
* Improved the "page" debugger command: it now prints out much more info, and also lets
  you lookup pages via physical address.
* The dump commands are now using kprintf() instead of dprintf().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15692 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-28 13:29:25 +00:00
Axel Dörfler 447308b363 Enabled on-screen KDL by default.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15681 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-27 20:49:28 +00:00
Axel Dörfler 6aeb59944d Fixed printing stack trace of crashed apps.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15680 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-27 11:28:03 +00:00
Axel Dörfler 032a2d2805 Added "bt" to print a stack crawl to get less confused by gdb :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15660 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-22 23:54:51 +00:00
Axel Dörfler bdf1da4d6e Slightly improved debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15656 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-22 18:21:37 +00:00
Axel Dörfler 78f2557c8f Found and fixed number one app_server crashing bug: our Hoard backend didn't
support unsbrk(), and that is actually called quite often in Hoard, resulting
in out of memory quite fast.
We don't shrink the heap (yet), but at least we can reuse the memory that
was freed by Hoard (it doesn't just remove bytes from the end, it will also
free up smaller parts in the middle).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15655 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-22 11:42:02 +00:00
Axel Dörfler 0c19920751 Improved debug output, added missing owner info to _dump_area().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15653 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-22 01:08:51 +00:00
Axel Dörfler 7a3e1b6979 Slightly improved debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15652 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-22 00:47:37 +00:00
Axel Dörfler f31dc4dd08 Improved tabulator for the on screen KDL.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15651 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-22 00:43:21 +00:00
Axel Dörfler ebe5949e61 The debugger command "areas" can now restrict the list by team ID.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15650 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-22 00:40:34 +00:00
Axel Dörfler c1b5724035 My last commit broken vm_clone_area(): it didn't grab a reference to its
cache, and therefore, let the kernel crash easily.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-22 00:04:28 +00:00
Axel Dörfler db39fa281e Moved the headers of the different store implementations into the VM source
directory; they are not used outside the VM.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15648 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-21 20:08:49 +00:00
Axel Dörfler 16cfe613cd Fixed vfs_lookup_vnode() - it's not called with the mutex already locked anymore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15647 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-21 20:07:33 +00:00
Axel Dörfler 14e132e2bc Reactivated check for failed semaphore creation - after kernel startup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15644 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-21 17:58:49 +00:00
Axel Dörfler a8a13a0ae5 During early boot, there are no semaphores - but vm_cache_ref are already created...
Must be further investigated (if the locks are created later or not...)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15643 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-21 17:47:50 +00:00
Axel Dörfler 1e12fe8e5d A vm_cache can no longer be created with a NULL vm_store (nobody did it before,
but it would have worked - and crashed soon after).
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15642 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-21 17:05:50 +00:00
Axel Dörfler ea2cd27e57 * Fixed the strange vm_cache_ref reference count mechanism: now, a fresh
vm_cache_ref starts with a reference count of 1. When acquiring a vm_cache,
  you no longer need to worry if that should go through the vm_store, or not;
  as it now always does.
* map_backing_store() no longer needs to play with the vm_cache_ref
  references.
* that simplified some code.
* vfs_get_vnode_cache() now grabs a reference to the cache, if successful.
* better balanced vnode ownership on vnode_store creation (vnode_store
  released the vnode before if its creation failed).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15641 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-21 17:00:03 +00:00
Axel Dörfler d5abe15e84 The name elf_load_user_image() chooses for the area is now actually limited
to B_OS_NAME_LENGTH bytes, instead of 64. Also, it will now only consider
the leaf name for the area.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15640 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-21 16:47:46 +00:00
Axel Dörfler 79f73dbc56 * vm_page::offset is now called cache_offset and is now an uint32 instead of off_t;
this saves 4 bytes per page. To compensate the loss of bytes, the offset is now
  stored in page size units, that's enough to address 2^44 or 16 TB (which is now
  the maximal supported file size!).
* Renamed vm_page::ppn to physical_page_number.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-21 12:38:31 +00:00
Axel Dörfler 77b1fd2243 Renamed the tests/kernel/core directory like the main directory tests/system/kernel
and adapted all Jamfiles.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15630 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-21 00:30:29 +00:00
Axel Dörfler 35cf51550c Replaced arch/thread_struct.h with arch/thread_types.h, and renamed
arch/*/thread_struct.h to arch_thread_types.h, so that it can directly
be included without having to specify the architecure.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15616 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-20 16:07:27 +00:00
Axel Dörfler d608540b67 Separated vm_address_space.h from vm.h.
Some more cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15614 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-20 15:54:45 +00:00
Axel Dörfler c4c68e3305 Fixed build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15611 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-20 13:37:04 +00:00
Axel Dörfler 4318316c65 This should fix PPC build after recent changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15610 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-20 13:31:38 +00:00
Axel Dörfler 96e01a27bf * Merged vm_virtual_map with vm_address_space - there was no reason to have
them apart (this even saves a pointer from vm_virtual_map to its address space)
* aspace -> address_space
* vm_create_address_space() did not check if creating the semaphore succeeded
* Removed team::kaspace - was not really needed (introduced a new vm_kernel_address_space()
  function that doesn't grab a reference to the address space)
* Removed vm_address_space::name - it was just a copy of the team name, anyway,
  and there is always only one address space per team
* Removed aspace_id - the address space is now using the team_id
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15609 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-20 13:29:11 +00:00
Axel Dörfler 9d845483cf Got rid of two ToDo-items: instead of clearing the PAGE_MODIFIED flag after having
written the page, we now do it before, so that it cannot lose any changed data
anymore; it doesn't matter if the page is written to while writing it back, the
worst thing that can happen is that we write the same page twice. Also, we don't
rely on the PAGE_MODIFIED bit anymore, we now check all mappings of that page
to find all modified pages, no matter how far the (currently disabled) page
daemon had come.
Also, destroying an area will now result in writing back changed pages - this
is only really important for memory mapped files, though, and should probably
be avoided for other vm_store types.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15597 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 23:01:11 +00:00
Axel Dörfler 39cc80346c * Implemented automatic font_directory creation for font_mappings.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15584 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 12:02:17 +00:00
Axel Dörfler 7a3fa7d368 * Followed Ingo's suggestion and removed the now superfluous "length" correction
in ConsoleHandle::WriteAt().
* Updated license.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15581 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 09:44:52 +00:00
Axel Dörfler 1bd3bb1d58 * Added fallback mappings for the default fonts - since we don't save the
mappings yet, that's a good way to test this functionality.
* Turns out the directory of the mappings must be known already - they
  should be added automatically, but I've added them manually for now
  (which is okay for the default system directory).
* Having more than one style with the same family in the mappings didn't
  work as planned - it now does.
* On my current system, time spend in the font manager constructor went
  down from 1.5 secs to around 12000 usecs (and I have only a moderate
  number of fonts installed, or so I thought - looks like the mappings
  were a good idea :-)) - and that directly cuts down the boot time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15580 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-19 01:01:04 +00:00
Axel Dörfler 89f5f72a15 * Added debug output to vm_low_memory.cpp.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15568 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 17:35:03 +00:00
Axel Dörfler 2058e6c1d4 Refactored MTRR code a bit: there is now a generic base that is used by
all CPU specific implementations as much as possible.
AMD and Intel are now separated again, even though they are currently
equivalent besides the CPU vendor detection.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15567 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 17:16:22 +00:00
Axel Dörfler d0d37bdfd1 * vfs_init() is now called later in the startup sequence - since no core kernel
service depends on it, it doesn't make any sense to call it that early in the
  game.
* The VFS now has a low memory handler for vnodes as well. If there is enough
  memory left, it won't free any vnodes anymore.
* Potential crashing bug fix: some functions did not check if the FD passed
  in belonged to the right type; they just assumed it had a valid vnode, but
  it could have had a mount structure associated as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 16:11:36 +00:00
Axel Dörfler 4c0f46e2a3 The block_cache::LowMemoryHandler() must check if it could acquire the cache's lock;
it might have been deleted in the mean time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15565 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 15:50:13 +00:00
Axel Dörfler 182f88dda1 * block_cache_delete() now deletes the cache with with its lock held.
* the link were not initialized in cached_block, as its constructor were never called
  (was using malloc/free instead of new/delete).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15564 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 15:45:00 +00:00
Axel Dörfler 005108a262 Forget to remove debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15563 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 14:33:10 +00:00
Axel Dörfler 37bd67edb8 Now also flushes dirty blocks correctly (cannot happen if transactions are used,
ie. never happens with BFS).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15562 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 13:53:34 +00:00
Axel Dörfler 41e866f3ae The block cache now registers and uses a low memory handler that will flush
unused blocks when needed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15561 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 13:49:23 +00:00
Axel Dörfler af01805834 Implemented VIA specific MTRR functionality - untested, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15560 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 13:08:35 +00:00
Axel Dörfler 7d7f4675bb * Added some cpuid eax == 1 feature definitions to arch_cpu.h
* Renamed IA32_MTR_WRITE_COMBINED to IA32_MTR_WRITE_COMBINING.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15559 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 12:25:49 +00:00
Axel Dörfler 348c7214f5 Improved processor identification for some VIA C3 models.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15558 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-16 11:55:01 +00:00
Axel Dörfler ebdb9dfebf Blocks are now put into an unused list when they aren't used.
When memory gets low, the blocks on that list are also freed - but right now,
that only happens when a block is put back (not directly on demand, ie. via
a low memory handler).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15552 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 21:35:19 +00:00
Axel Dörfler 1534aa236c Added new function vm_low_memory_state() that returns the current low
memory status.
Added new B_NO_LOW_MEMORY constant for the usual case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15551 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 21:30:28 +00:00
Axel Dörfler d0abcc6fd2 Windows now receive B_WORKSPACE_ACTIVATED and B_WORKSPACES_CHANGED messages again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15547 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 16:42:12 +00:00
Axel Dörfler b3e26f5b8f Documented the block cache allocator a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15546 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-15 16:23:30 +00:00
Axel Dörfler e0e9a3e69f * We now support the global page feature of x86 processors that prevents
kernel TLBs from being flushed on context switch.
* new arch_cpu_user_TLB_invalidate() that now does what arch_cpu_global_TLB_invalidate()
  did before.
* arch_cpu_global_TLB_invalidate() will now flush all TLBs, even those from the
  kernel.
* some cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15535 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-14 17:07:37 +00:00
Axel Dörfler 484c80abd0 * Added missing prototypes for get_eflags() and set_eflags() to arch_system_info.h
* The boot loader now checks the CPU for the cpuid and rdtsc features, which we
  currently both rely on.
* Removed old and no longer used stage2_priv.h header


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15534 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-14 10:43:28 +00:00
Axel Dörfler f104fa77bd Did not compile with tracing turned off.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15529 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-13 17:05:47 +00:00