happens in the I/O scheduler thread, we need to use unlock_memory_etc().
Changed the IOBuffer::{Lock,Unlock}Memory() methods accordingly.
The test driver seems to be working stable, now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26609 a95241bf-73f2-0310-859d-f6bbb57e9c96
completed operations queue. That doesn't need to happen synchronously
either. So we have to restart the loop.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26607 a95241bf-73f2-0310-859d-f6bbb57e9c96
helps to avoid stupid mistakes. The driver works again, though things
are still not stable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26605 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Factored an _UnmountAndEjectVolume() method that takes a partition and mount
path out of the method with the same name that gets a BMessage.
* Remove the mount point only if it's in rootfs.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26604 a95241bf-73f2-0310-859d-f6bbb57e9c96
Something is still fishy though: Opening the dma_resources_test device
in DiskProbe, the wrong data is shown. do_io() seems to be invoked with
the correct physical address, vm_get_physical_page() succeeds, and after
memcpy() the correct data are in the virtual address it returned, but
db in the kernel debugger shows that the data in the physical page have
not been changed. When quitting DiskProbe the "page still has mappings"
assert is triggered for the page.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26602 a95241bf-73f2-0310-859d-f6bbb57e9c96
the scheduler thread doing that has no direct access to the
destination team's address space.
* Improved some debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26601 a95241bf-73f2-0310-859d-f6bbb57e9c96
get_memory_map(), but has a saner semantics and allows specifying a
team.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26600 a95241bf-73f2-0310-859d-f6bbb57e9c96
- rewrote early_query() to use the TT0 mapping to remove the page_hole stuff.
- fixed natfeat, using a page set up from the bootloader for now as it wants physical address. At least it's enough to see from the debugger:
load kernel...
kernel entry at 8003711a
Welcome to kernel debugger output!
Haiku revision: 26582
PANIC: unknown cpu_type 68040
Welcome to Kernel Debugging Land...
Running on CPU 0
kdebug>
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26599 a95241bf-73f2-0310-859d-f6bbb57e9c96
driver name didn't work here.
* Enabled using the I/O scheduler in the read() and write() hooks.
Something's still broken, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26598 a95241bf-73f2-0310-859d-f6bbb57e9c96
using a lock and I'm not very much in favor of a global one.
* Added "finished" callback to IORequest.
* IOOperation::Finish() no longer invokes its parent request's
ChunkFinished(). The finisher does this instead. ChunkFinished()
can optionally remove the chunk from the parent.
* Added IORequest::Wait() which waits for the completion of the request.
* Introduced IORequestChunk::ResetStatus() to make setting the status to
"pending" somewhat more explicit.
* Implemented the missing IOScheduler::SetCallback() methods.
* The NotifyAll() calls on the IOScheduler's condition variables were
missing, so it just waited forever.
* Added some more debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26597 a95241bf-73f2-0310-859d-f6bbb57e9c96
thread. Interrupting a thread only works when it is already waiting.
We do now use a flag to indicate whether the scheduler thread is
waiting (avoids thread_interrupt() calls when the thread is in driver
code). Furthermore before starting to wait, we check whether any
finisher work has to be done -- we do that (and the addition of the
entry to the condition variable) with the finisher lock being held to
avoid the race condition.
* Moved waiting for and getting the next unscheduled request into new
method _GetNextUnscheduledRequest().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26594 a95241bf-73f2-0310-859d-f6bbb57e9c96
* as on darwin platform we cannot use resources for the boot sector data. Instead use attributes to store the data.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26589 a95241bf-73f2-0310-859d-f6bbb57e9c96
* additional includes for cygwin
* some automatic whitespace cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26588 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Cygwin does not have regex support, so we use the one we already have in our glibc.
* Keymap.h has a automatic forward declaration of re_registers, which causes a compile break on Cygwin, but not on other platforms. So add a include for regex.h in the header and remove it in the source file.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26587 a95241bf-73f2-0310-859d-f6bbb57e9c96
* rc uses a global instance of BResources. On destruction it calls Unset() of the BFile member fFile. BNode::Unset then calls close_fd(), which parses the static global DescriptorMap to actually close the descriptor. However on Cygwin the DescriptorMap has been destroyed already for some reason, thus accessing it is invalid. The "fix" is to put the map on the heap and delete it as soon as it gets empty. This way the global BResources instance can be freed without a crash.
* If someone likes to review, feel free to, it didn't cause any issues here
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26585 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Cygwin needs some additional defines compared to other platforms
* Additionally stpcpy and strcasestr are unknown on Cygwin. Thus we need to use the one from our posix library.
* ECANCELED is not defined on Cygwin, so only add error in case it is.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26584 a95241bf-73f2-0310-859d-f6bbb57e9c96
* As this was the last user of the READ_COUNT/WRITE_COUNT definitions in
vm_priv.h, I removed those as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26582 a95241bf-73f2-0310-859d-f6bbb57e9c96
It does its job by using part of libsupc++, with fake malloc and friends to make sure it won't double fault.
Works here, but cp-demangle must be extracted by hand from the lib, can't get the rule to work as I want, Ingo ?
Maybe using it directly without malloc hack would be ok with 16KB buffer, but I'm not sure of that.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26581 a95241bf-73f2-0310-859d-f6bbb57e9c96
fs_vnode_ops::write_pages() to be called with fsReenter = true. Since
this is no longer the case, the argument has become superfluous. For
read_pages() it always was. Removed the argument from the functions
and all functions that propagated it.
* Some whitespace at the end of lines was removed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26579 a95241bf-73f2-0310-859d-f6bbb57e9c96
will take care of the locking.
* Use new(std::nothrow) over new, and malloc (only in kernel_interface.cpp);
the kernel_cpp.h header isn't really necessary anymore, so there is no reason
BFS should continue to use it.
* Removed superfluous NULL checks.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26574 a95241bf-73f2-0310-859d-f6bbb57e9c96
introduces the following relevant changes:
* VMCache:
- Renamed vm_cache to VMCache, merged it with vm_store and made it a
C++ class with virtual methods (replacing the store operations).
Turned the different store implementations into subclasses.
- Introduced MergeStore() callback, changed semantics of Commit().
- Changed locking and referencing semantics. A reference can only be
acquired/released with the cache locked. An unreferenced cache is
deleted and a mergeable cache merged when it is unlocked. This
removes the "busy" state of a cache and simplifies the page fault
code.
* Added VMAnonymousCache, which will implement swap support (work by
Zhao Shuai). It is not integrated and used yet, though.
* Enabled the mutex/recursive lock holder asserts.
* Fixed DoublyLinkedList::Swap().
* Generalized the low memory handler to a low resource handler. And made
semaphores and reserved memory handled resources. Made
vm_try_resource_memory() optionally wait (with timeout), and used that
feature to reserve memory for areas.
...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26572 a95241bf-73f2-0310-859d-f6bbb57e9c96
* move libprint headers into libs headers folder accordingly
* merge all shared folders sources into kits print, we might build later on a
real print kit, propably also to access cups from an nicely API, atm static
* move all shared headers into private print, also pr_server.h from interface
* adjust build to work with the changed folder layout
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26570 a95241bf-73f2-0310-859d-f6bbb57e9c96
really work yet (there are some bits missing in the IORequest and IOScheduler
to able to use them this way).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26565 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed crash when it couldn't find the device.
* Added a "-l|--list-types" option that list all file systems that support
initializing (currently only BFS).
* Added a "-q|--dont-ask" option that prevents mkfs from questioning your
command :-)
* Fixed return value - would return failure to the shell when it actually
succeeded and vice versa.
* Improved/clarified some output and fixed spelling errors.
* Errors now have the command name as prefix, as that's how it is usually
done (and very useful for batch processing).
* Cleanup, though I kept the FsCreator class which is kinda superfluous.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26564 a95241bf-73f2-0310-859d-f6bbb57e9c96
did not set the "devicesOnly" flag to false when calling RegisterDevice().
* ddm_userland_interface.cpp incorrectly wrote to userland memory when it
assigned "neededSize" in several places.
* Replaced on-stack path with the UserStringParameter class where appropriate.
* Made the UserStringParameter class castable to char*.
* Minor cleanup in KDiskDeviceManager.cpp.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26563 a95241bf-73f2-0310-859d-f6bbb57e9c96
sub menu and quit menu tracking. This closes#1826. I tested a bit with
various different menu situations and there seem to be no negative side
effects.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26561 a95241bf-73f2-0310-859d-f6bbb57e9c96
This makes the kernel loadable by the bootloader, which does load it, and all the modules \o/
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26558 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Moved data buffer creation to a TestSuiteContext class.
* Added checks if the I/O operation does the correct thing, ie. reads/writes
the data to the right offset.
* Rearranged DMA translation: we now handle the partial write case correctly
(bounce buffer must always span over the whole block), and are able to join
adjacent bounce buffers together.
* The new _AddBounceBuffer() method also respects boundary and segment size
restrictions for bounce buffers.
* IOOperation now prepares the outgoing vecs/offset/length to contain the
right data for the current phase (partial read begin/end/do-all); it will
also make sure that the lengths of the vecs are of the same size than the
whole request.
* All tests are now passed, the I/O request implementation seems to be ready
for integration now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26556 a95241bf-73f2-0310-859d-f6bbb57e9c96
Hide USB errors better from the upper layers: Only try the "clear feature"
command if the error is B_DEV_STALLED. On other errors, the clear feature
was likely to fail, as it should only be used on stalled devices. Errors
intended to be ignored were thus not ignored because of the "clear feature"
failure.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26555 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Don't spam the syslog when the device was not a Wacom.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26553 a95241bf-73f2-0310-859d-f6bbb57e9c96
behind highspeed hubs with multiple transaction translators not to work.
* The parent hub isn't necessarily the one providing the transaction translator
for a full- or lowspeed device. Therefore we need to inherit the hub/port
addresses to lower devices unless we are a highspeed hub that might be the
actual provider of the transaction translator. This logic error caused full-
and lowspeed devices not to work if they were behind a fullspeed hub that
itself was behind a highspeed hub.
This fixes bugs #1889 and #2501.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26552 a95241bf-73f2-0310-859d-f6bbb57e9c96
automounter already mounted these partitions. Since this happens asynchronously,
it sometimes worked and sometimes not. The very simply and non-hacky fix for this
problem is to send a message from the automounter to the application looper to
have it open the previous windows after the initial mount scan is done.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26549 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed mounting previously mounted partitions. fSettings was never initialized when restoring
the settings. The code I removed earlier didn't do that either.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26548 a95241bf-73f2-0310-859d-f6bbb57e9c96
from the settings message just after having restored it. This should fix
restoring the previously mounted partitions, but I have not tested it yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26547 a95241bf-73f2-0310-859d-f6bbb57e9c96
It works by adjusting the display_mode to have twice the virtual height to
cause the graphics driver to allocate enough frame buffer. Since hardware
acceleration calls are based on geometry locations instead of memory locations,
accelerated calls can work in the offscreen buffer with this method.
Similarily, the new CopyBackToFront() method copies the back buffer into the
front buffer with hardware acceleration. The code is currently disabled, since
not all graphics drivers handle the virtual versus display size correctly,
for example the intel_extreme driver. It works for example with the radeon
driver, but another problem prevents me to judge the benefit of this method.
Most types of screen redraws are flicker free, though, which is the whole point
of the excercise. :-)
Another problem with the current code is the initial mode switch. It does
not try again to double the frame buffer in the fall back code paths. It could
also check the frame buffer memory at all, before even trying to save some
cycles.
To see it in action, uncomment the code at line 508.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26545 a95241bf-73f2-0310-859d-f6bbb57e9c96
hardware accelerated functions could be double buffered.
* Align the rectangle used for arc drawing like those for ellipsis.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26544 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added a flag "fIsOffscreenBuffer", which is used to shift the frame buffer
pointer to the position after the visible frame buffer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26543 a95241bf-73f2-0310-859d-f6bbb57e9c96
the front buffer so that derived classes could override it.
* Minor coding style changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26542 a95241bf-73f2-0310-859d-f6bbb57e9c96
parameters. This caused ticket #1732 for me. At another place in the code,
the native resolution is added to the supported mode list and there it is
hardcoded to the first flatpanel info.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26540 a95241bf-73f2-0310-859d-f6bbb57e9c96
Either of the two should work when the native resolution is 1368x768.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26539 a95241bf-73f2-0310-859d-f6bbb57e9c96
bootloader's smp init and into its own unit.
ACPI tables can now generally be found with acpi_find_table(signature).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26538 a95241bf-73f2-0310-859d-f6bbb57e9c96
- disable tracing mmu
- make scratch buffer 8k as it's declared as such... that makes things much better indeed :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26537 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed build: round_up() has been renamed to key_align().
* Whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26532 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Fixed a bug that could easily corrupt your disks (yeah, one of those
again): bfs_get_file_map() truncated the last vec incorrectly and
would potentially return a too large file size -- which was later
happily overwritten with file data, but could have belonged to
anything but that file (like inodes, B+trees, etc.).
* Renamed previous round_up() function to key_align().
* Added round_up() template function, and used it where appropriate.
* The latter actually fixed two bugs where the and mask was computed in
32 bit where it should have been in 64 bit.
* Inode::FindBlockRun() should have checked the max indirect size
instead of the direct size - this didn't cause any problems, though.
* White space cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26531 a95241bf-73f2-0310-859d-f6bbb57e9c96
- bitfield definitions of page dirs were reversed... 040 is still wrong though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26528 a95241bf-73f2-0310-859d-f6bbb57e9c96
- move part of mmu handling to mmu-dependant files and extend ops
- implemented 040 mmu init. doing so I spotted a bug in ARAnyM which ignored [ID]TT0. Linux likely doesn't use them but I was too lazy touse temporary page tables. I also noticed bitfields were in wrong order, to be fixed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26527 a95241bf-73f2-0310-859d-f6bbb57e9c96
contained in the inode object when available (ie. when you don't use the
'-b' option).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26524 a95241bf-73f2-0310-859d-f6bbb57e9c96
* FileMap::_InvalidateAfter():
- Off-by-one error. The last extend (which normally should be kept)
was thrown away, too, but still accessed afterwards. Worst case
could be a write to free()d memory.
- Drop the last extend when it would be truncated to zero size.
* FileMap::Translate():
- Incorrect handling of B_BUFFER_OVERFLOW case in the
vfs_get_file_map() loop. After the loop the function would return
incorrectly, making the caller think all vectors in the provided
array had been initialized correctly. This could cause a file system
implementation using the file map to read from or write to random
disk locations, in the latter case possibly corrupting the file
system.
- Some readability improvements in the final loop. Removed incorrect
check.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26523 a95241bf-73f2-0310-859d-f6bbb57e9c96
it can actually be used (that should have been part of an earlier commit,
but didn't break the build this time).
* dump_modules() must use kprintf() instead of dprintf().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26522 a95241bf-73f2-0310-859d-f6bbb57e9c96
More work on the I/O scheduler, more precisely mainly the DMAResource class:
* When splitting requests into operations, we're now able to flexibly mix
bounce buffer segments and the given physical vectors in a single
operation. This reduces the number of operations.
* Squashed several TODO and fleshed out more of the implementation.
* Added a test driver running unit tests. There are only a few tests yet,
but those pass.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26519 a95241bf-73f2-0310-859d-f6bbb57e9c96
that is neither correct (source and destination are ok as they are)
nor does it have any effect (since those values are clobbered by the
domain module afterwards)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26516 a95241bf-73f2-0310-859d-f6bbb57e9c96
Fixed more controls to handle a B_TRANSPARENT_COLOR as view coloe of the
parent view. Some controls would not initialize their LowColor() at all
if they were the only control in a window.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26515 a95241bf-73f2-0310-859d-f6bbb57e9c96
AttachedToWindow(). Maybe there are more non-BControls yet, I didn't
have a look.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26511 a95241bf-73f2-0310-859d-f6bbb57e9c96
fallback to ui_color(B_PANEL_BACKGROUND_COLOR) in AttachedToWindow(). Most
controls don't paint their background and rely on the app_server painting it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26510 a95241bf-73f2-0310-859d-f6bbb57e9c96
pressed a shortcut that should result in a terminal action
(e.g. Shift-Left/Right -- Shift-Left generated a Ctrl-\).
* Removed spaces at the end of lines.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26509 a95241bf-73f2-0310-859d-f6bbb57e9c96
8 byte request header. It was included in the case of outgoing request
transfers before. In fact we always just want the length of the data phase,
which for non-requests just happens to be the whole transfer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26508 a95241bf-73f2-0310-859d-f6bbb57e9c96
previously did never shrink the slider horizontally. This broke a couple
apps, so I added it back, although I don't quite agree that this is the correct
behavior. Apps using the new layout system are not affected though, so I
guess it is alright. Should fix#2530, although I didn't test it yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26502 a95241bf-73f2-0310-859d-f6bbb57e9c96
too. Removed the check in Frame() accordingly, because that uses Bounds().
Removed some code left overs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26501 a95241bf-73f2-0310-859d-f6bbb57e9c96
though until we use ACPI for proper PCI IRQ routing through the IO APIC.
Therefore the IO APIC code path is not yet enabled and the IO APIC isn't used.
ISA interrupts would work though, as would PCI interrupts if you'd hardcode
them for your specific configuration.
Note that this change also modifies some parts in the bootloader and in the PIC
setup to make local APICs available even on non-SMP systems. This causes APIC
timers to be used instead the normal PIT if it is available (also on non-SMP
configurations).
Also fixes some general errors in SMP and PIC code as well as some code cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26492 a95241bf-73f2-0310-859d-f6bbb57e9c96
while "be:view_where" is in view coordinates. We made the mistake of having
them both be in view coordinates. This caused a problem for example in Vision.
(#2460)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26491 a95241bf-73f2-0310-859d-f6bbb57e9c96
* If init_driver() fails, the device manager now prints a message to syslog.
* device_node::CompareTo() was broken: it never correctly compared the last
attribute. This could cause duplicate nodes.
* Removed superfluous white space.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26489 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Moved the old I/O scheduler code into the device manager, and replaced its
contents completely :-)
* Implemented the DMA and I/O requests/scheduler framework - for now in C++
only. It's a work in progress and not used anywhere yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26488 a95241bf-73f2-0310-859d-f6bbb57e9c96
- calculate ram ranges, 1 for st ram, one for fast ram if available. The kernel won't differentiate yet though, we'll have problems with DMA later on...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26480 a95241bf-73f2-0310-859d-f6bbb57e9c96
In my last row of changes I removed a call to ResizeToPreferred()
in SetLimitLabels(). It is confirmed that the BeOS implementation
is doing it and some applications rely on it, like our own Mouse preflet.
This closes#2526.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26479 a95241bf-73f2-0310-859d-f6bbb57e9c96
- shuffle memory map
- set up transparent translations: first 32MB of RAM and last 16MB for IO space.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26478 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Rename event structures to be consistent with another remaining ones
- Fix typos
by Mika & Oliver
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26476 a95241bf-73f2-0310-859d-f6bbb57e9c96
Fix kernel printing of unsigned 64bit datatypes with the highest bit set. They
would previously be converted to a signed type and were then handled wrongly.
Use the sign flag to properly decide when to use casting to a singed type.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26473 a95241bf-73f2-0310-859d-f6bbb57e9c96
using it.
* IOW cache_prefetch_vnode() should work again now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26468 a95241bf-73f2-0310-859d-f6bbb57e9c96
parameter panel... Doh!
* Force update the disk view when rescanning the disks (a newly initialized
partition will now also show the correct name in the DiskView).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26465 a95241bf-73f2-0310-859d-f6bbb57e9c96
so tracking the modification preparations is both unnecessary and
as canceling is performed on a stale pointer...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26464 a95241bf-73f2-0310-859d-f6bbb57e9c96
cause all kinds of trouble when finally trying to initialize a partition.
In various situations, the disk would already be prepared for modifications
in which case PrepareModifications() will return an error when called again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26462 a95241bf-73f2-0310-859d-f6bbb57e9c96
* 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
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
* 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
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
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
* 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
* 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