Commit Graph

19868 Commits

Author SHA1 Message Date
François Revol
d5e76d2b5b Fix Haiku build, sorry ;)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23962 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-15 02:38:39 +00:00
Michael Lotz
aabef40563 * Add a "stats" argument to the kernel heap leak checker to only print the
total count of allocations and bytes.
* Also add a few more bin sizes (for 8, 24 and 48 bytes) turns out especially
  allocations of 20-24 bytes are pretty common. And as it only wastes a few
  bytes per page this doesn't hurt at all.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23961 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-14 23:16:50 +00:00
Michael Lotz
4f045f9cba Turns out the only thing we didn't do in bfs_free_cookie was - actually
free the cookie. One memory leak less...

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23960 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-14 22:55:02 +00:00
François Revol
608aae69a1 * make sure an url mime type is registered before using it.
* lines and cols are 1-based.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23959 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-14 22:53:34 +00:00
Oliver Ruiz Dorantes
f72093d929 Make the driver almost build for target R5. How is the best way in the Jamfile to compile it together with src/system/kernel/util/list.c only for target R5?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23957 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-13 20:07:51 +00:00
Michael Lotz
cf2687e48f Only clear 0xdeadbeef if there is 0xdeadbeef present. The size field of the
heap leak check info would otherwise be overwritten for allocations that still
fit the 16 byte bin (i.e. allocations of 0-4 bytes).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23956 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-12 22:25:18 +00:00
Oliver Ruiz Dorantes
e6b529a362 Build the device path in devfs from the configuration file
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23955 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-12 21:08:43 +00:00
Oliver Ruiz Dorantes
485b82bace Thanks pointing this out Axel, my commits mails were arriving to a dead mail and I did not read until now. My apologiesfor delay
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23954 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-12 20:56:29 +00:00
Michael Lotz
4af6cd5f38 Adding two debug features to the new heap implementation:
* Tracing of allocations, reallocations and frees
* Leak checking infrastructure to dump allocations

The leak checking code records the team and thread id when an allocation is
made as well as stores the originally requested size. It also adds the
"allocations" debugger command that can dump all current allocations (usually
a huge list) or filter by either a team or thread id. This way it's easily
possible to find leftover allocations of no more active teams/threads.
Combined with the tracing support one might be able to track down the time and
reason of an allocation and possibly find the corresponding leak if it is one.
Note that kernel heap leak checking has to be enabled manually by setting the
KERNEL_HEAP_LEAK_CHECK define to 1.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23953 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-12 20:20:35 +00:00
Michael Lotz
d9b0e6addd Two very small changes that help compiling Haiku under Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-12 00:54:04 +00:00
Ithamar R. Adema
f2f3c67292 Use new transport callbacks from printer preference.... transport addons now choose what to publish in the printers pref add printer dialog...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23946 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-11 23:48:05 +00:00
François Revol
d9dea4ae01 Fix build after mmlr's heap change. Thanks René!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23945 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-11 23:09:56 +00:00
Marcus Overhagen
bc3318b640 Rewrote mapping of domains and busses into a virtual bus number to
allow arbitrary bus numbers. Disabled domain support for __INTEL__.
This should fix bug #1774


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23944 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-10 23:39:35 +00:00
François Revol
3ecd55ed65 Handle command line args. It still opens an empty window though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23943 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-10 22:29:42 +00:00
Michael Lotz
75fe8391f9 Fix the build. Apparently this file wasn't recompiled on my end before.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23942 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-10 21:53:53 +00:00
François Revol
6eafd65d00 Fix freeing uninitialized pointer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23941 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-10 21:52:05 +00:00
Jérôme Duval
6c1399c4b0 fixed looping mode, and bug #1730
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23940 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-10 21:03:34 +00:00
Michael Lotz
5c4d1c5e21 Complete rework of the heap implementation. Freelists are now part of the pages
and pages are now kept in lists as well. This allows to return free pages once
a bin does not need them anymore. Partially filled pages are kept in a sorted
linked list so that allocation will always happen on the fullest page - this
favours having full pages and makes it more likely lightly used pages will get
completely empty so they can be returned. Generally this now goes more in the
direction of a slab allocator.
The allocation logic has been extracted, so a heap is now simply attachable to
a region of memory. This allows for multiple heaps and for dynamic growing. In
case the allocator runs out of free pages, an asynchronous growing thread is
notified to create a new area and attach a new heap to it.
By default the kernel heap is now set to 16MB and grows by 8MB each time all
heaps run full.
This should solve quite a few issues, like certain bins just claiming all pages
so that even if there is free space nothing can be allocated. Also it obviously
does aways with filling the heap page by page until it overgrows.
I think this is now a well performing and scalable allocator we can live with
for quite some time. It is well tested under emulation and real hardware and
performs as expected. If problems come up there is an extensive sanity checker
that can be enabled by PARANOID_VALIDATION that covers most aspects of the
allocator. For normal operation this is not necessary though and is therefore
disabled by default.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23939 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-10 21:00:13 +00:00
Jérôme Duval
a0c4a29faf added B_RGBA15 colorspace, and explicitly print which colorspce is unsupported
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23938 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-09 18:08:34 +00:00
Jérôme Duval
cad9eceb7a added missing api_version
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23937 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-09 17:55:11 +00:00
Jérôme Duval
cbc337d925 have libilmimf built with libstdc++v2
added EXRTranslator to the image


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23936 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-09 17:48:10 +00:00
Jonas Sundström
cd6b83ddc1 The title of the (primary) window of (non-document) apps and preferences should be the filename of the executable. File and window names should be changed in tandem in the future. All IMO. Sorry, Marcus, for changing TV-O-Rama. :/ We may want to consider using more proper language, e.g. 'Screensaver' or 'Screen Saver' instead of 'ScreenSaver'. DeskCalc or 'Desk Calculator' should be just Calculator. We should avoid clinging to BeOS history, like with the name CodyCam, which hardly makes any sense anymore, even if you happen to be one of the few BeOS oldtimers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23935 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-09 13:26:28 +00:00
Stefano Ceccherini
2614ac772b Moved call to SetSteps() from SetTermSize() to FrameResized(), where it
makes more sense (and also completes the fix for bug #1759). Retrieve 
the command from the message archive.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-08 12:16:49 +00:00
Ingo Weinhold
6918dbf421 Normalize the given image path in load_container(). Just constructing
some absolute path was not enough to always recognize a library as
already loaded. This fixes problems with Perl where loading an add-on
would cause another instance of libperl.so to be loaded, which would
lead to crashes due to uninitialized static vars in the new instance.
Perl builds now and the tests run, but quite a few do fail.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23930 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-08 03:18:26 +00:00
Ingo Weinhold
2c986936df Added new syscall _kern_normalize_path() to normalize a path.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23929 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-08 03:06:14 +00:00
Ithamar R. Adema
eb5a25ca41 Slight rework of my previous commit... now ports can be asked too ;)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23928 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-08 02:00:08 +00:00
Ithamar R. Adema
62cb58a8ef Make print_server track Transport addons too. This is because some of the NewTransportAddOns(tm) can also autodetect devices, e.g. USB printers. For this, the print_server needs to keep those transport addons loaded at all times. This code now also enables dynamic Transport discovery for the Printer prefs, e.g. 'hey print_server GET Transport 0' or 'hey print_server GET Transport 'USB Port'' will now work too ;)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23927 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-08 00:34:53 +00:00
Michael Lotz
cfc9593fa8 Fix possible though unlikely SMP issue reported by Robert Szeleney. One must
not use a single static variable to synchronize CPUs at two points. In an
environment where CPUs do not really run concurently (in emulation or with
logical processors) it would be possible for CPUs to get trapped in the first
synchronization while another CPU might just do its thing and change the
sync variable again. These CPUs would then never leave the first loop as the
exit condition has already passed again. The key is to use two different sync
variables like it is done in early kernel initialization. As I didn't manage
to trigger this code though I am not sure if this is gonna work.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 23:19:28 +00:00
Jérôme Duval
2836442b70 window is not zoomable, bug #1761
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23925 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 20:21:32 +00:00
Jérôme Duval
4bbe697365 fix warning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23923 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 19:33:53 +00:00
Jérôme Duval
6be75ff237 fix gcc4 build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23922 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 19:31:49 +00:00
Ingo Weinhold
7486b72dd1 Added some kernel tracing to the runtime loader.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 19:22:39 +00:00
Ingo Weinhold
0c221f53a3 Also check the syscall number to avoid problems.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23920 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 19:07:26 +00:00
Ingo Weinhold
3d779beaa3 Don't invalidate the syscall number, since that's not handled graciously
in the syscall handler.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23919 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 19:06:03 +00:00
Ingo Weinhold
3832c7ec7f Always clear the THREAD_FLAGS_64_BIT_SYSCALL_RETURN flag, even when
using the int 99 syscall method. Otherwise it would remain set e.g.
after _kern_restore_signal_frame() and the next syscall would look like
one returning a 64 bit value.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23918 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 19:04:38 +00:00
Ingo Weinhold
385627911c Debug code. From time to time I still see 64 bit return values when they
should be 32 bit only.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23917 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 16:04:24 +00:00
Ingo Weinhold
ed854de770 Also include info about the syscall return type in the
extended_syscall_info structure.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23916 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 16:03:00 +00:00
Axel Dörfler
6f58064f10 * Added flags field in net_protocol_module_info; there is currently a single
defined flag: NET_PROTOCOL_ATOMIC_MESSAGES.
* socket_send() now honours NET_PROTOCOL_ATOMIC_MESSAGES and returns either
  EMSGSIZE if the data to be send is larger than net_socket::send::buffer_size,
  or divides the data in appropriately sized chunks.
* This fixes sending >=64K over a TCP socket at once (TCP would just have
  returned an error in that case).
* TCP now overrides the default send buffer size (to 32768 for now).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23915 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 15:09:19 +00:00
Stefano Ceccherini
032f765603 Also set the scrollbar steps when the terminal size changes.
Moved SetFlags() from _InitObject() to unarchiving constructor as other 
constructors already set the flags.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23914 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 15:06:30 +00:00
Stefano Ceccherini
1d7596167d Call BScrollBar::SetSteps() with the correct values also on font change,
and when a scrollbar is attached. Fixes bug #1759


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23913 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 14:52:16 +00:00
Stefano Ceccherini
ffa3002c15 We don't need TermView.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23912 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 14:38:10 +00:00
Stefano Ceccherini
4882883b6f AppearPrefView was mixing up flags and resizing mode. Fixed.
Also set the flag B_PULSE_NEEDED (for the blinking cursor) in TermView.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23911 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 14:14:02 +00:00
Stefano Ceccherini
a2186f4a81 print also the view name in case it mixes up flags and resizing mode.
Helps identifying it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23910 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 14:12:49 +00:00
Stefano Ceccherini
e4f975d47a Set the low and view color on construction, and set the B_WILL_DRAW flag
too, since we can't do anything without it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23909 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 13:30:39 +00:00
Stefano Ceccherini
c9aadc4f63 Added a pretty useless test app to show that embedding a TermView in
another apps works correctly (minus the blinking cursor, we'll see why 
it doesn't)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23908 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 13:29:41 +00:00
Ingo Weinhold
397a6cee6a Use thread_yield(false) instead of snooze(100) for reseeding. This makes
the driver actually usuable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23907 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 11:42:18 +00:00
Ingo Weinhold
9835c090a6 Added a boolean "force" parameter to thread_yield(). When true, the
function has the old behavior. When false, it just calls the scheduler
without any priority adjustment or other stuff.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23906 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 11:40:31 +00:00
Stefano Ceccherini
d082779211 Rewrote Input.h, adjusted Input.cpp accordingly, added nothrow on
allocations.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23905 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 10:50:39 +00:00
Ingo Weinhold
f38b49f162 Added small test program that opens and reads a few bytes from
/dev/urandom. It verifies that Haiku's dev/urandom is performance-wise
totally unusable -- it takes several seconds.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23904 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 02:22:48 +00:00
Ingo Weinhold
7025a0386d Added cc and c++ wrapper scripts.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23903 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 00:26:02 +00:00