remove them all in RemoveView().
* Also, previously, the wrong LayoutItem could be removed if there was any
view that had more than one item around.
* IOW using BView::RemoveSelf()/RemoveChild() yourself would have leaked
memory in the best case, and would otherwise crash your app if there was
any view with more than one LayoutItem.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25024 a95241bf-73f2-0310-859d-f6bbb57e9c96
more important DataSources from less important ones.
* Made the popup less crowded based on that info.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25021 a95241bf-73f2-0310-859d-f6bbb57e9c96
items for the history and the legend, causing the history parts of all
views to be of equal size if used (which ActivityWindow now does, of course).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25020 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Minor cleanup - I haven't written SystemInfoHandler, François did.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25017 a95241bf-73f2-0310-859d-f6bbb57e9c96
that does not rely on the Be API TLS anymore, and is also more compliant
with respect to the lifespan of the key specific values.
* It supports up to 256 different keys, which is equivalent of the solution
that FreeBSD offers.
* The main thread now also gets a pthread_thread structure.
* Reenabled the POSIX suite test pthread_key_delete_2-1 as we now pass it.
* This also fixes bug #1642.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25000 a95241bf-73f2-0310-859d-f6bbb57e9c96
why the latter is then even added, but we do the same thing as BeOS now.
* This fixes bug #2075.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24997 a95241bf-73f2-0310-859d-f6bbb57e9c96
into the full thing, and will then be adapted to the kernel.
* Doesn't do a lot at this point - it can be built as a test app under BeOS
and Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24973 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Enabled testing the checksum of the EDID info.
* Added a version check of the EDID info.
* Added more debug output.
* In the ModeList class, changes were made to how the refresh rate is
computed and used. Previously, some of the basic VESA modes were not
added to the mode list because the computed and specified refresh rates
did not exactly match. Now if the computed refresh rate is within 1.2%
of the specified rate, the mode is added. With this change, all basic
VESA modes selected by the EDID info are now added to the mode list.
* The "additional video modes" shown in the EDID dump are now added to
the mode list. Previously, this mode data was setup but not added to
the mode list. Code was also added here to set the vertical &
horizontal sync polarity according the EDID info. The sync polarities
are set according to a VESA document that I have.
* Fixed copy_str() warning, broken removal of trailing spaces, and null
termination.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24959 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added legend.
* Added network receiving/sending DataSource.
* Now uses the new layout engine.
* Added support for per CPU DataSources, and added a per CPU CPU usage
DataSource.
* The DataSources can now be turned on and off via popup menu.
* You can now add more than one view to the window.
* The DataSources of the ActivityViews are now remembered.
* Now uses an offscreen bitmap to reduce flicker (it should now no longer
flicker with accelerated graphics).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24955 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Reordered to have the constructor/destructor first.
* Two blanks between functions.
* Removed superfluous constructor calls.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24953 a95241bf-73f2-0310-859d-f6bbb57e9c96
sMountMutex lock when calling sync() on a file system. This fixes a potential
deadlock (I just encountered for the first time).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24915 a95241bf-73f2-0310-859d-f6bbb57e9c96
* get_dir_path_and_leaf() now removes trailing slashes from the path.
* This fixes bug #2016, thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24913 a95241bf-73f2-0310-859d-f6bbb57e9c96
to ignore a trailing null byte, which the code now didn't do anymore.
* This caused bug #2054.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24888 a95241bf-73f2-0310-859d-f6bbb57e9c96
it's a no-op, and I removed the prototype from KernelExport.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24875 a95241bf-73f2-0310-859d-f6bbb57e9c96
suffix. You can use this to verify the version of a module_info structure.
* Made module_info::std_ops optional.
* Minor cleanup in module.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24873 a95241bf-73f2-0310-859d-f6bbb57e9c96
API, uses the _PRINTFLIKE macro where appropriate.
* Got rid of the "qent" structure, struct timer now contains everything we
need. This makes the affected code in sem.cpp, signal.cpp, and timer.c much
cleaner, and resolves a few TODOs.
* Minor cleanup in vfs.cpp.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24871 a95241bf-73f2-0310-859d-f6bbb57e9c96
This fixes a potential problem where a volume would be left marked dirty on
a clean reboot as reported by Vasilis; no harm would have been done to the
data on the volume, though (it would just replay a log entry that it didn't
need to).
* Unified the naming of the notifier/writer thread: renamed the thread to "block
notifier/writer", and the variable holding the thread ID to
sNotifierWriterThread.
* Added a few more doxygen descriptions to the private functions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24870 a95241bf-73f2-0310-859d-f6bbb57e9c96
_init_interface_kit_() in there.
* Moved private get_mode_parameter() into the BPrivate namespace.
* Renamed interface_misc.h to InterfacePrivate.h.
* Minor other cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24869 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Since we use a 1:1 mapping, they don't do anything besides remembering the
level set, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24855 a95241bf-73f2-0310-859d-f6bbb57e9c96
was asked to. Unfortunately, it also removed the TRANSACTION_WRITTEN
listeners (that were added before notifying other listeners), so that BFS
could never free up space in the log. Now, it will only remove the listeners
it may remove. This fixes bug #2024.
* Rearranged functions a bit, moved notification/listener related private
functions together.
* Added tracing entry for written transactions as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24853 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Made all debugging functions endian-safe.
* Added tracing for log entries.
* Added new KDL command "bfs_journal" to dump all pending log entries.
* When BFS_DEBUGGER_COMMANDS is defined, the LogEntry class will also track
the transaction ID it belonged to.
* The "bfs" KDL command now sets some useful debugger variables.
* The "bfs_allocator" KDL command now accepts the group index as 3rd argument.
* Renamed Journal::_TransactionListener() to _TransactionIdle(), as that's
all it is for.
* Removed TODO comment in Volume::WriteSuperBlock(), as it's actually not true.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24852 a95241bf-73f2-0310-859d-f6bbb57e9c96
right now, but it's already working (and shows that we better compute our
system_info::cached_pages field directly).
* I am not sure if we want to keep this app here, merge it with
ProcessController, or have it as a separate (3rdparty) app. Opinions welcome.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24846 a95241bf-73f2-0310-859d-f6bbb57e9c96
if the volume is read-only. This should help with #2028.
* Removed unused bfs_[de]select() functions.
* Removed most paranoia checks - now that we control both sides of code,
this would just hide eventual problems in the VFS code.
* Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24809 a95241bf-73f2-0310-859d-f6bbb57e9c96
within the notifier/writer thread, and will then flush the notifications
directly. This should fix#2008 again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24806 a95241bf-73f2-0310-859d-f6bbb57e9c96
MMU code reserves for the kernel, and we hit that limit recently with the
addition of the boot splash code.
* This fixes the boot crash as triggered by Stippi's recent changes to the
splash image.
* Cleanup (doxygen comments, line length).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24805 a95241bf-73f2-0310-859d-f6bbb57e9c96
volumes with a broken log. It will only allow the volume read-only then,
though (unlike Be's BFS), as your disk could be corrupt.
* Added InitCheck() method to the RecursiveLock class, and now only check
this one in Journal::InitCheck() instead of also replaying the log there;
this is now done directly in Volume::Mount().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24795 a95241bf-73f2-0310-859d-f6bbb57e9c96
space left for the new log entry, it did call cache_sync_transaction(), and
then just assumed the space would be ready. But since the transaction could
have been written before that call by the block writer, and since the
_TransactionWritten() hook is now called asynchronously,
cache_sync_transaction() actually has to flush all pending TRANSACTION_WRITTEN
notifications before returning to the caller.
* To implement this, block_cache now publishs a condition variable, and
wait_for_notifications() adds a fake notification that signals that one.
Since the notifications are handled in FIFO order, this guarantees that
the previous TRANSACTION_WRITTEN hook is done.
* notify_transaction_listeners() could accidently delete notifications that
still had pending signals. Now, it will defer the deletion to the notification
thread instead in that case. This should fix bug #2008.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24792 a95241bf-73f2-0310-859d-f6bbb57e9c96
wrote the super block, so there was a race condition with what
_WriteTransactionToLog() assumed was already written there (if it managed to
write the log entry before the super block was written by
_TransactionWritten(), and a reboot happened just then, the log start could
point to an invalid log entry). Not very likely, but it could happen.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24791 a95241bf-73f2-0310-859d-f6bbb57e9c96
Haiku code, they work around buggy BeOS code not present on Haiku.
* If this code turns out to be problematic under Haiku (Bruno, did your changes
make any difference at all?), then please fix the problems in the Storage
Kit, don't enable work-arounds for BeOS.
* Simplified the macro check as suggested by Ingo.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24790 a95241bf-73f2-0310-859d-f6bbb57e9c96
of r24768 (block cache notification mechanism rewrite).
Thanks for the note, Vasilis!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24772 a95241bf-73f2-0310-859d-f6bbb57e9c96
PackageInstaller, ZipOMatic, and the Expander now all have the same
icon (instead of none, resp. a BeOS bitmap icon).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24771 a95241bf-73f2-0310-859d-f6bbb57e9c96
called without having the cache's lock held.
* The only downside to this approach is that ending a transaction now needs
additional memory, and might therefore fail - that could be fixed by
allocating that memory upfront with the start of the new transaction,
though.
* Therefore, I reverted the cache lock to a benaphore, as the recursive
lock is no longer needed.
* The block writer thread is now a block writer and notifier thread: it will
wait for up to 2 seconds on the sEventSemaphore, and if nothing comes in,
it will continue with its previously sole job.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24768 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Introduced a new publish_node() which then actually publishs the node,
similar to the VFS's new_vnode(), and publish_vnode() semantics.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24762 a95241bf-73f2-0310-859d-f6bbb57e9c96
patch by Philippe Saint-Pierre that is part of ticket #2006.
* Added sniffer rule.
* For now, added package icon without any flags.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24753 a95241bf-73f2-0310-859d-f6bbb57e9c96
idle notification. We should rework the cache notifications to work
asynchronously.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24752 a95241bf-73f2-0310-859d-f6bbb57e9c96
block_writer() as well as notify_transaction_listeners() must update their
data or quit. This fixes newly introduced bug #2008.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24749 a95241bf-73f2-0310-859d-f6bbb57e9c96
a TODO comment that find_directory() won't return the correct directory in
a multi-user environment. This fixes bug #2003.
* Some cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24747 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Prettyfied memory info in the sysinfo app.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24746 a95241bf-73f2-0310-859d-f6bbb57e9c96
overcommitting stores:
- has_precommitted was incorrectly set to true in the constructor
- when a precommitted page was committed, vm_store::committed_size
was still changed.
- unreserving memory did not update vm_store::committed_size.
- when precommitted pages were committed, their page count instead of their
size was reserved.
* All this lead to bug #1970 which should be fixed now.
* Cleanup of vm_cache.cpp, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24742 a95241bf-73f2-0310-859d-f6bbb57e9c96
* BFS now uses a transaction listener that flushes the current transaction
in case it is idle; before, transactions would always be kept open when
they weren't large, so that the block writer could not write back the blocks
(they were busy from its POV).
* This solves the described problem of the screen resolution not being written
back even after minutes of inactivity.
* Renamed _TransactionNotify() to _TransactionWritten() to differentiate it
a bit more from the new _TransactionListener().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24738 a95241bf-73f2-0310-859d-f6bbb57e9c96
hasn't been used for more than 2 seconds.
* Replaced the block_cache::lock benaphore with a recursive lock, so that
you can call cache functions from within the notification listeners.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24737 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Imported FreeBSD driver "sk" as syskonnect into the Haiku tree, and
wrote the necessary glue code to let it run.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24723 a95241bf-73f2-0310-859d-f6bbb57e9c96
* No longer checks for the path delimiter twice.
* Now also checks if the first part of the path is a directory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24722 a95241bf-73f2-0310-859d-f6bbb57e9c96
first loop - the vnode passed in would still need to be checked, though.
Eventually, it would be nice to move the check to the top, though, so that
we don't need to search for the patch delimiter twice.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24721 a95241bf-73f2-0310-859d-f6bbb57e9c96
detached. We would need to have a hash that contains the thread data to
be able to comply with the specs AFAICT.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24718 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Not sure if it works as intended, as the specs are a bit vague.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24717 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implemented pthread_setcanceltype(), pthread_setcancelstate(), and
pthread_testcancel().
* In the previous commit, I also made pthread_private.h self-contained.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24710 a95241bf-73f2-0310-859d-f6bbb57e9c96
structure that is attached (via TLS) to each pthread.
* Implemented support for pthread_cleanup_{push|pop}().
* I haven't really been able to test these changes, yet, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24704 a95241bf-73f2-0310-859d-f6bbb57e9c96
item entry.
* The bios_ia32 video platform code now stores the available VESA modes in
the new vesa_modes kernel_args field.
* When configuring a VESA mode via settings file, it's no longer needed to
specify the exact mode - the closest available mode is now used. This should
help with bug #1962.
* frame_buffer_console_init() now also creates a boot_item for the VESA modes
in the kernel_args.
* The VESA accelerant now filters the mode list to only contain modes that
are actually supported.
* Moved non-shared vesa driver data into its own file vesa_private.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24675 a95241bf-73f2-0310-859d-f6bbb57e9c96
* screen_mode will not make a difference between 32 and 24 bit anymore in the
equally operator.
* Some cards only support 24 bit instead of 32, for example Qemu VESA mode.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24674 a95241bf-73f2-0310-859d-f6bbb57e9c96
int32 fields "be:delta_x", and "be:delta_y".
* This way, you can discover if the mouse is moved against an edge or corner
of the screen.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24662 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Refined the way how the default resolution is chosen: it now prefers the
above with hi/true color over a width of 800 in hi/true color over the
same order including palette modes.
* If no suitable mode could be found, it now chooses the first mode from the
list, if any, so that a VESA mode is always used when possible.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24648 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed warnings in Message.cpp and Messenger.cpp when building with GCC 4.
* Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24643 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Shuffled functions around to separate the private from the public API.
* Renamed global static io_vectors to sVectors.
* Rearranged includes, replaced deprecated malloc.h with stdlib.h.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24640 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Adds mode 1152x864 @60 Hz
* Adds mode 1400x1050 @75 Hz
* Adds a blank line between each of the different resolutions to make
the list more readable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24638 a95241bf-73f2-0310-859d-f6bbb57e9c96
workspaces.
* It uses the Haiku-specific B_SAME_POSITION_IN_ALL_WORKSPACES to behave
in the same way as before (which I couldn't really test, though).
* Some cleanup, removed extraneous white space.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24633 a95241bf-73f2-0310-859d-f6bbb57e9c96
the current workspace.
* This should fix bug #1765 as far as the app_server is concerned.
* Cleanup, removed extraneous white space.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24632 a95241bf-73f2-0310-859d-f6bbb57e9c96
command line.
* Using this, you can easily reproduce #1765 on BeOS, too. Ie. while it's also
a bug in Haiku, this also shows a conceptional problem with the way LaunchBox
switches to the current workspace. Stipp, any reason why it doesn't just let
the window appear on all workspaces?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24630 a95241bf-73f2-0310-859d-f6bbb57e9c96
and bails out early.
* InitCheck() now actually returns an error if something went wrong during
initialization.
* Cleanup, part III.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24627 a95241bf-73f2-0310-859d-f6bbb57e9c96
longer return on failure.
* Also, it will now retrieve the global format from the audio device
afterwards always and uses that.
* Cleanup of MultiAudioNode, part II.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24626 a95241bf-73f2-0310-859d-f6bbb57e9c96
replicant failed as pointed out by Mark Hellegers.
* Clarified ownership of the passed in message in TReplicantTray::AddIcon()
as well as BShelf::_AddReplicant().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24621 a95241bf-73f2-0310-859d-f6bbb57e9c96
that they are ordered by size.
* This actually doesn't seem to be the case for all cards. Hence, we now
search for an appropriate mode only after we've collected all modes.
* Extended find_video_mode() to be able to ignore the height of a video mode;
that way, we can prefer a horizontal resolution of 800 without having to
care about the aspect ratio.
* This fixes bug #1975.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24619 a95241bf-73f2-0310-859d-f6bbb57e9c96
true color resolutions, the second pass that also takes those into account
will only be run if no mode could be found before.
* I hope this will improve Urias boot screen experience.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24609 a95241bf-73f2-0310-859d-f6bbb57e9c96
vnode from the hash before putting it caused all sorts of problems.
* For example, BFS would trim its preallocations when the vnode is put;
if someone would read that same vnode after it had been removed, but
before BFS could trim it, it would read the old vnode which still
seemed to own the blocks which would subsequently be freed.
* This fixes bug #1914, and should also fix bug #1956.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24607 a95241bf-73f2-0310-859d-f6bbb57e9c96
not referenced and clean (is no longer part of a transaction).
This finally gets memory consumption to a moderate level; even
unpacking a large archive will no longer eat all memory.
* The "block_cache" KDL command will now print the number of unused
blocks as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24606 a95241bf-73f2-0310-859d-f6bbb57e9c96
a call chain contains a specific symbol (or address).
* Added a new KDL command "calling" that you can use to get a list of
threads that have a specific function in their call chain.
* Removed extraneous white space.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24594 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Use parse_expression() where appropriate.
* Removed extraneous white space.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24593 a95241bf-73f2-0310-859d-f6bbb57e9c96
matches the specified pattern in all loaded kernel images.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24592 a95241bf-73f2-0310-859d-f6bbb57e9c96
set the actual pattern as "%d", "%x", and "%s" of the expression
after '#' respectively. They are very slow, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24591 a95241bf-73f2-0310-859d-f6bbb57e9c96