keyboards due to buttons being padded by non-data arrays. The keys wouldn't
actually be used later, but a (useless) keyboard device would still be
published.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35797 a95241bf-73f2-0310-859d-f6bbb57e9c96
handlers may be added to a single device if it provides more than one report
for a kind of device. Should fix#5549 where two mouse reports are present
and only the first one was picked up and made available as device.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35796 a95241bf-73f2-0310-859d-f6bbb57e9c96
problems iterating over a B+tree (due to corruption).
* For now, it will stop the check process when this happens, but we definitely
need to be able to fix broken B+trees in the future.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35794 a95241bf-73f2-0310-859d-f6bbb57e9c96
isn't set. I'd tend to say that's a rather odd interpretation of the specified
protocol if a BIOS goes mad if the sem is written to while it doesn't actually
own the controller (it should just be a no-op in that case and directly set the
sem state). But it seems this is what others do as well (FreeBSD, Linux) so we
follow. Thanks to vegardw in #2083 for researching into this and proposing this
fix. Minor other cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35780 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Extended BTime, BDate and BDateTime with archiving functionality.
* Adjusted code which uses these classes, since including DateTime.h
already imports the classes from the BPrivate namespace.
* Moved DateTime.h into Support Kit. It is still in the BPrivate namespace,
as I am uncertain what to do with time_type and diff_type. I'd favor
moving the constants into the classes itself. Possibly removing the B_
prefix from them. Feedback welcome.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35772 a95241bf-73f2-0310-859d-f6bbb57e9c96
no time left, but I didn't want to lose them either.
* This fixes bug #5536, sorry for the inconvenience.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35770 a95241bf-73f2-0310-859d-f6bbb57e9c96
There are a few small changes from myself, such as adding a copyright for
Maxime in files with bigger changes. Also because this patch was so old I had
to do some manual patching, and added back the title and description on the TGA
and TIFF translators.
I think this improves things a lot, though there is still some work to do to
improve the consistency of the translator settings views.
I think this mostly fixes#2117, though I may leave the ticket open until a few
more things are resolved.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35769 a95241bf-73f2-0310-859d-f6bbb57e9c96
check to avoid a division by zero when scanning my partition map in order to be
able to boot. I cannot spot any regressions, I can still access all my partitions
just fine.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35757 a95241bf-73f2-0310-859d-f6bbb57e9c96
support for some of the newer 9k chipsets. For example my Eee PC 1005 HA can
now be used with WiFi.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35747 a95241bf-73f2-0310-859d-f6bbb57e9c96
a stupid idea. Instead, the already existing fCheckCookie member is used.
* bfs_ioctl() now accesses all userland buffers safely, this should help with
#3264, and move the crash where it belongs.
* Changes not yet tested; they only affect checkfs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35743 a95241bf-73f2-0310-859d-f6bbb57e9c96
whether to extract the firmware archive onto Haiku Image or to simply copy
it intact. This allows the ipw2100 and iprowifi2200 firmware archives to be
copied onto the default images. Fixes#5523
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35738 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added iprowifi4965 driver to the image.
* Add the firmware for the Wifi drivers that need it to the image.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35687 a95241bf-73f2-0310-859d-f6bbb57e9c96
certain conditions indicate that we might deal with a fixed 512 bytes MBR on
a non 512 byte block size medium. One condition is that at least one partition
had to be shrunk to fit the available size (which usually happens with larger
block sizes). We retry with a fixed 512 block size once and compare the result
if it didn't improve the situation it is reverted again. This is mostly a
preparation for the upcoming "anyboot" hybrid MBR/ISO images.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35664 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Add file map and cache and do reads through the file_cache for file ICBs.
* Move the private _Read() backend from the header to the implementation file.
* Read() is now only used for directory iteration.
* Turned off the verbose debug output.
* Minor cleanup.
This fixes the abuse of the block_cache, should allow executables on UDF and
won't panic on protected content.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35652 a95241bf-73f2-0310-859d-f6bbb57e9c96
multiple blocks at a time which it doesn't do as it always only returns one
block (and actually completely ignores the provided offset and length).
It only didn't crash after that because it would in the end always only memcpy
length >> block shift bytes which ends up being pretty small in most cases.
Since it does block wise mapping it can't do multiple blocks anyway, and really
using the block cache for this is all wrong because this should really use a
file map to resolve the block mapping and then use the file cache instead.
Still this at least gets it working. Beware though that protected DVD content
will make the block cache panic, as reading these blocks without prior setting
the drive up correctly will fail (the drive will stall the reads).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35651 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Set the _type as well, this gets file listings work.
* Some cleanup and debug output moves/fixes/additions.
Yet crashes when accessing files though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35647 a95241bf-73f2-0310-859d-f6bbb57e9c96
The code is in a part of the ACPI code we import, so using its code style and is based on similar code a
few lines above.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35592 a95241bf-73f2-0310-859d-f6bbb57e9c96
ReaderLocker::AcquireReader() before starting to wait. This could lead to
busy waiting in loops in certain situations.
* Got rid of the ReaderLocker::AcquireReader(bool) version to avoid confusion.
* Cleaned up and fixed the code introduced in r25408 (VMIN, VTIME support):
- Gave the second ReaderLocker::AcquireReader() parameter the same name as
the corresponding one of WriterLocker::AcquireWriter() and fixed its weird
semantics (one less than the desired number of bytes -- huh?). Since it was
not set on the request, it didn't work correctly anyway.
- tty_input_read(): The O_NONBLOCK return code was broken. It returned B_OK
instead of B_WOULD_BLOCK. The O_NONBLOCK mode overrides VMIN/VTIME now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35580 a95241bf-73f2-0310-859d-f6bbb57e9c96
Changes from ACPI include:
* eliminate unnecessary invocations of the _STA method, which in turn can improve boot times.
* Implemented an additional repair for predefined method return values.
* Removed the obsolete ACPI_INTEGER data type.
* Removed the unused UINT32_STRUCT type, and the obsolete Integer64 field in the parse tree object.
* Added additional warning options for the gcc-4 generation.
* Enhanced automatic data type conversions for predefined name repairs.
* Implemented automatic removal of null package elements during predefined name repairs.
* Implemented a repair for the predefined _FDE and _GTM names.
* Implemented additional module-level code support.
* Fixed possible mutex acquisition errors when running _REG methods.
* Fixed a possible memory leak during module-level code execution.
* Removed messages for successful predefined repair(s).
* Implemented a post-order callback to AcpiWalkNamespace.
* Modified the behavior of the operation region memory mapping cache for SystemMemory.
* Implemented an automatic repair for predefined methods that must return sorted lists.
* Fixed a possible fault during predefined name validation if a return Package object contains NULL elements.
* Implemented additional module-level executable AML code support.
* Fixed a problem where an Operation Region _REG method could be executed more than once.
* Fixed a possible memory leak for the Scope() ASL operator.
* Implemented a run-time repair for the _MAT predefined method.
* Implemented a run-time repair for the _BIF and _BIX predefined methods.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35559 a95241bf-73f2-0310-859d-f6bbb57e9c96
field is empty. This is part of ticket #4123.
* The message constants should be moved into their own shared
header, though; added a TODO for this.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35524 a95241bf-73f2-0310-859d-f6bbb57e9c96
needs to be or'ed to the address specification), "uncached" is assumed.
* Set the memory type for the "BIOS" and "DMA" areas to write-back. Not sure, if
that's correct, but that's what was effectively used on my machines before.
* Changed x86_set_mtrrs() and the CPU module hook to also set the default memory
type.
* Rewrote the MTRR computation once more:
- Now we know all used memory ranges, so we are free to extend used ranges
into unused ones in order to simplify them for MTRR setup.
- Leverage the subtractive properties of uncached and write-through ranges to
simplify ranges of any other respectively write-back type.
- Set the default memory type to write-back, so we don't need MTRRs for the
RAM ranges.
- If a new range intersects with an existing one, we no longer just fail.
Instead we use the strictest requirements implied by the ranges. This fixes
#5383.
Overall the new algorithm should be sufficient with far less MTRRs than before
(on my desktop machine 4 are used at maximum, while 8 didn't quite suffice
before). A drawback of the current implementation is that it doesn't deal with
the case of running out of MTRRs at all, which might result in some ranges
having weaker caching/memory ordering properties than requested.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35515 a95241bf-73f2-0310-859d-f6bbb57e9c96
That costs 12 more bytes per inode on 32 bit platforms, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35491 a95241bf-73f2-0310-859d-f6bbb57e9c96
Unset() the header in Allocate() before calling it. This fixes bug #5410.
* CachedNode::Allocate() does not need to revert its changes; the transaction
will take care of that. However, BPlusTree::fHeader is currently not correctly
maintained if a transaction fails (working on that now).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35490 a95241bf-73f2-0310-859d-f6bbb57e9c96
a copy of its structure. CachedNode is only used to write to the header, now.
This should cause the block_cache to no longer have any referenced blocks
outside of any I/O.
* Coding style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35473 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added a few KDL commands to improve your debugging experience.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35469 a95241bf-73f2-0310-859d-f6bbb57e9c96
bytes restriction is only a soft limit. This fixes stalling TCP connections
because everything received would be out of window once this happened.
* Added a TODO to look into TCP's window management - it doesn't seem to be
right.
* Fixed build with tracing turned on.
* Made the fNumber member of tcp_sequence private.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35468 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added vm_clear_page_mapping_accessed_flags() and
vm_remove_all_page_mappings_if_unaccessed(), which combine the functionality
of vm_test_map_activation(), vm_clear_map_flags(), and
vm_remove_all_page_mappings(), thus saving lots of calls to translation map
methods. The backend is the new method
VMTranslationMap::ClearAccessedAndModified().
* Started to make use of the cached page queue and changed the meaning of the
other non-free queues slightly:
- Active queue: Contains mapped pages that have been used recently.
- Inactive queue: Contains mapped pages that have not been used recently. Also
contains unmapped temporary pages.
- Modified queue: Contains unmapped modified pages.
- Cached queue: Contains unmapped unmodified pages (LRU sorted).
Unless we're actually low on memory and actively do paging, modified and
cached queues only contain non-temporary pages. Cached pages are considered
quasi free. They still belong to a cache, but since they are unmodified and
unmapped, they can be freed immediately. And this is what
vm_page_[try_]reserve_pages() do now when there are no more actually free
pages at hand. Essentially this means that pages storing cached file data,
unless mmap()ped, no longer are considered used and don't contribute to page
pressure. Paging will not happen as long there are enough free + cached pages
available.
* Reimplemented the page daemon. It no longer scans all pages, but instead works
the page queues. As long as the free pages situation is harmless, it only
iterates through the active queue and deactivates pages that have not been
used recently. When paging occurs it additionally scans the inactive queue and
frees pages that have not been used recently.
* Changed the page reservation/allocation interface:
vm_page_[try_]reserve_pages(), vm_page_unreserve_pages(), and
vm_page_allocate_page() now take a vm_page_reservation structure pointer.
The reservation functions initialize the structure -- currently consisting
only of a count member for the number of still reserved pages.
vm_page_allocate_page() decrements the count and vm_page_unreserve_pages()
unreserves the remaining pages (if any). Advantages are that reservation/
unreservation mismatches cannot occur anymore, that vm_page_allocate_page()
can verify that the caller has indeed a reserved page left, and that there's
no unnecessary pressure on the free page pool anymore. The only disadvantage
is that the vm_page_reservation object needs to be passed around a bit.
* Reworked the page reservation implementation:
- Got rid of sSystemReservedPages and sPageDeficit. Instead
sUnreservedFreePages now actually contains the number of free pages that
have not yet been reserved (it cannot become negative anymore) and the new
sUnsatisfiedPageReservations contains the number of pages that are still
needed for reservation.
- Threads waiting for reservations do now add themselves to a waiter queue,
which is ordered by descending priority (VM priority and thread priority).
High priority waiters are served first when pages become available.
Fixes#5328.
* cache_prefetch_vnode(): Would reserve one less page than allocated later, if
the size wasn't page aligned.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35393 a95241bf-73f2-0310-859d-f6bbb57e9c96
general "flags" parameter. It encodes the target state of the page -- so
that the page isn't unnecessarily put in the wrong page queue first -- a
flag whether the page should be cleared, and one to indicate whether the
page should be marked busy.
* Added page state PAGE_STATE_CACHED. Not used yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35333 a95241bf-73f2-0310-859d-f6bbb57e9c96
flag. The obvious advantage is that one can still see what state a page is in
and even move it between states while being marked busy.
* Removed the vm_page::is_dummy flag. Instead we mark marker pages busy, which
in all cases has the same effect. Introduced a vm_page_is_dummy() that can
still check whether a given page is a dummy page.
* vm_page_unreserve_pages(): Before adding to the system reserve make sure
sUnreservedFreePages is non-negative. Otherwise we'd make nonexisting pages
available for allocation. steal_pages() still has the same problem and it
can't be solved that easily.
* map_page(): No longer changes the page state/mark the page unbusy. That's the
caller's responsibility.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35331 a95241bf-73f2-0310-859d-f6bbb57e9c96
That usually indicates keyboard-like usage and one of my keyboards uses this
type for multimedia keys.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35311 a95241bf-73f2-0310-859d-f6bbb57e9c96
memory and page reservation functions have a new "priority" parameter that
indicates how deep the function may tap into that reserve. The currently
existing priority levels are "user", "system", and "VIP". The idea is that
user programs should never be able to cause a state that gets the kernel into
trouble due to heavy battling for memory. The "VIP" level (not really used
yet) is intended for allocations that are required to free memory eventually
(in the page writer). More levels are thinkable in the future, like "user real
time" or "user system server".
* Added "priority" parameters to several VMCache methods.
* Replaced the map_backing_store() "unmapAddressRange" parameter by a "flags"
parameter.
* Added area creation flag CREATE_AREA_PRIORITY_VIP and slab allocator flag
CACHE_PRIORITY_VIP indicating the importance of the request.
* Changed most code to pass the right priorities/flags.
These changes already significantly improve the behavior in low memory
situations. I've tested a bit with 64 MB (virtual) RAM and, while not
particularly fast and responsive, the system remains at least usable under high
memory pressure.
As a side effect the slab allocator can now be used as general memory allocator.
Not done by default yet, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35295 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Applied a minor style update to them. There are many many more violations in
there, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35274 a95241bf-73f2-0310-859d-f6bbb57e9c96
should be allocated.
* Inode::InitCheck() now fails if a file cache couldn't be allocated.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35272 a95241bf-73f2-0310-859d-f6bbb57e9c96
retrieved before a volume is actually mounted and this fixes#4602. I have
applied the patch as is, although it contains some minor coding style violations,
since these have been there before.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35262 a95241bf-73f2-0310-859d-f6bbb57e9c96
would get us is that the allocations could fail when they wouldn't need to.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35242 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Implemented a more elaborated raw memory allocation backend (MemoryManager).
We allocate 8 MB areas whose pages we allocate and map when needed. An area is
divided into equally-sized chunks which form the basic units of allocation. We
have areas with three possible chunk sizes (small, medium, large), which is
basically what the ObjectCache implementations were using anyway.
* Added "uint32 flags" parameter to several of the slab allocator's object
cache and object depot functions. E.g. object_depot_store() potentially wants
to allocate memory for a magazine. But also in pure freeing functions it
might eventually become useful to have those flags, since they could end up
deleting an area, which might not be allowable in all situations. We should
introduce specific flags to indicate that.
* Reworked the block allocator. Since the MemoryManager allocates block-aligned
areas, maintains a hash table for lookup, and maps chunks to object caches,
we can quickly find out which object cache a to be freed allocation belongs
to and thus don't need the boundary tags anymore.
* Reworked the slab boot strap process. We allocate from the initial area only
when really necessary, i.e. when the object cache for the respective
allocation size has not been created yet. A single page is thus sufficient.
other:
* vm_allocate_early(): Added boolean "blockAlign" parameter. If true, the
semantics is the same as for B_ANY_KERNEL_BLOCK_ADDRESS.
* Use an object cache for page mappings. This significantly reduces the
contention on the heap bin locks.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35232 a95241bf-73f2-0310-859d-f6bbb57e9c96
layer(s) and logs a timestamp, the thread id, the super volume or super vnode
and interesting bits about call arguments/results to a file (in /var/log). This
can be used for example to debug filesystems without having to manually add
debug output to all the calls, or to analyze access patterns. To add the logging
layer just mount the layer with whatever actual filesystem you have:
mount -t "bfs:log_overlay" /dev/disk/usb/0/0/0 /mountpoint
This would then create the logfile /var/log/log_overlay_dev_disk_usb_0_0_0.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35194 a95241bf-73f2-0310-859d-f6bbb57e9c96
output size, if not it will not show up in the dynamically generated
translator list. Folow up on ticket #4874.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35186 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Removing the respective settings files, as they are no longer needed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35171 a95241bf-73f2-0310-859d-f6bbb57e9c96
background.
* Renamed NetFSServerPrefs to netfs_server_prefs.
* Fixed copyright years in authentication_server.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35169 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Updated application signature (I couldn't find a place outside the server's
code where it is used).
* Added .rdef with icon and making the app run as background service.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35167 a95241bf-73f2-0310-859d-f6bbb57e9c96
to be copied to /home/config/settings/kernel/drivers with omitting the file
endings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35158 a95241bf-73f2-0310-859d-f6bbb57e9c96
the Intel provided firmware archive in /system/data/firmware/ipw2100/ with out
the need of any renaming.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35157 a95241bf-73f2-0310-859d-f6bbb57e9c96
accept() is supposed to return B_WOULD_BLOCK when SO_NONBLOCK is set.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35154 a95241bf-73f2-0310-859d-f6bbb57e9c96
old userlandfs and the BReferenceable now in use by netfs. So better explicitly
set that to avoid nasty surprises (like crashes left and right).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35152 a95241bf-73f2-0310-859d-f6bbb57e9c96
got as a result from read_vnode. The joys of void pointers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35149 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Use sentence case in PrimaryPartitionEditor.
* Fixed double spacing in InitializeBFSEditor view. Since we are going
to embed it anyway, don't put some extra spacing arround it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35144 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Also remove and add some debug output to try to spot the problem without getting flooded with too much messages
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35143 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Move functionality for assembling ACL/events packets of the driver to this module
- Move h2generic driver to c++ (not style)
- Pass checkstyle.py to all commited files.
Fixes:
- Wrong condition for finishing l2cap packet segmentation.
- Place NetBuffersPrependers in a inner scope to avoid Sycing twice in destructor.
- Avoid keeping trace of l2cap responses of any other kind of thread.
- Do not free net_buffers of for Frame containers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35117 a95241bf-73f2-0310-859d-f6bbb57e9c96
interrupt could be triggered early in the boot process where the ATA channel
might not yet be fully set up leading to KDLs accessing uninitialized memory.
* Automatic whitespace cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35087 a95241bf-73f2-0310-859d-f6bbb57e9c96
at ~/config/settings/netfs/NetFSServer would come into being, but NetFSServer
will fall back to ~/config/settings/kernel/drivers/netfs-server, which works
if that file is there (see src/add-ons/kernel/file_systems/netfs/netfs-server
for an example settings file).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35086 a95241bf-73f2-0310-859d-f6bbb57e9c96
to be read/acknowledged (new) and the status to be read (like before in that
case) which helps discarding spurious interrupts on one controller I have that
would otherwise cause an interrupt storm as the bus master interrupt would never
be acknowledged. The ATA stack will discard the interrupt if it's not expecting
a transfer, so no real harm done.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35083 a95241bf-73f2-0310-859d-f6bbb57e9c96
more visible and ported it to the current UserlandFS server (and GCC4). It still
uses the R5 file system API, which the UserlandFS conveniently still provides
support for. It compiles and links, but is otherwise still untested. The changes
I am alsmost confident that I didn't change any semantics. That is unless
HashMap, HashString and DoublyLinkedList work differently enough to make any of
the netfs code break.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35081 a95241bf-73f2-0310-859d-f6bbb57e9c96
idea. Splitting large buffers no longer causes KDL.
* merge_buffer() now maintains the size of the source buffer while removing its
nodes.
* The paranoia checks run through again now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35073 a95241bf-73f2-0310-859d-f6bbb57e9c96
the enabled interrupts to check if there's anything of interest. This obviously
couldn't really work when clearing the enabled interrupts in the glue code.
This gets broadcom43xx working for me, tested with a Linksys WMP54GS-EU (PCI).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35060 a95241bf-73f2-0310-859d-f6bbb57e9c96
sure if Solaris uses this type for boot partitions only.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35052 a95241bf-73f2-0310-859d-f6bbb57e9c96
Changed strings in add-ons to sentence case. This is case-add-ons.diff
from #5169.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35046 a95241bf-73f2-0310-859d-f6bbb57e9c96
Changed various labels in audio drivers to sentence case. This is
case-audio-drivers.diff from #5169.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35045 a95241bf-73f2-0310-859d-f6bbb57e9c96
It still miss at least some checks about packet sizes and frame termination and probably some more error handling.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35022 a95241bf-73f2-0310-859d-f6bbb57e9c96
I had to uptade the catkeys as Travis tool has trouble keeping up with changes in the repository (most importantly, cpufrequency fixes and mail sentance casing). I hope nothing was lost in the process.
Travis, if you read this, I had to load the catkey files in vim and save them back to get them linked correctly by the buildtools. I suspect some line ending problem or something alike. Also, your fingerprint computation seemed wrong in most cases.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34994 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Haiku doesn't like the ethernet maximal frame size to be set to 0. This drops the CPU usage and some calls to read/write are now occuring.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34993 a95241bf-73f2-0310-859d-f6bbb57e9c96
default address of the outgoing interface as a side-effect
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34989 a95241bf-73f2-0310-859d-f6bbb57e9c96
access to a vm_page. It is basically an atomically accessed thread ID field
in the vm_page structure, which is explicitly set by macros marking the
critical sections. As a first positive effect I had to review quite a bit of
code and found several issues.
* Added several TODOs and comments. Some harmless ones, but also a few
troublesome ones in vm.cpp regarding page unmapping.
* file_cache: PrecacheIO::Prepare()/read_into_cache: Removed superfluous
vm_page_allocate_page() return value checks. It cannot fail anymore.
* Removed the heavily contended "pages" lock. We use different policies now:
- sModifiedTemporaryPages is accessed atomically.
- sPageDeficitLock and sFreePageCondition are protected by a new mutex.
- The page queues have individual locks (mutexes).
- Renamed set_page_state_nolock() to set_page_state(). Unless the caller says
otherwise, it does now lock the affected pages queues itself. Also changed
the return value to void -- we panic() anyway.
* set_page_state(): Add free/clear pages to the beginning of their respective
queues as this is more cache-friendly.
* Pages with the states PAGE_STATE_WIRED or PAGE_STATE_UNUSED are no longer
in any queue. They were in the "active" queue, but there's no good reason
to have them there. In case we decide to let the page daemon work the queues
(like FreeBSD) they would just be in the way.
* Pulled the common part of vm_page_allocate_page_run[_no_base]() into a helper
function. Also fixed a bug I introduced previously: The functions must not
vm_page_unreserve_pages() on success, since they remove the pages from the
free/clear queue without decrementing sUnreservedFreePages.
* vm_page_set_state(): Changed return type to void. The function cannot really
fail and no-one was checking it anyway.
* vm_page_free(), vm_page_set_state(): Added assertion: The page must not be
free/clear before. This is implied by the policy that no-one is allowed to
access free/clear pages without holding the respective queue's lock, which is
not the case at this point. This found the bug fixed in r34912.
* vm_page_requeue(): Added general assertions. panic() when requeuing of
free/clear pages is requested. Same reason as above.
* vm_clone_area(), B_FULL_LOCK case: Don't map busy pages. The implementation is
still not correct, though.
My usual -j8 Haiku build test runs another 10% faster, now. The total kernel
time drops about 18%. As hoped the new locks have only a fraction of the old
"pages" lock contention. Other locks lead the "most wanted list" now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34933 a95241bf-73f2-0310-859d-f6bbb57e9c96
canceled status, so we need to collect the corresponding sem release. Otherwise
we would run directly into the old cancel status the next time we schedule.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34932 a95241bf-73f2-0310-859d-f6bbb57e9c96
performance tests, but I wrote this code before David got around to improve
his color space assembler code and didn't want to throw it away. Turned
off for the time being, since David's version works fine.
* Supply a codec sub_id in the media_codec_info. This allows matching
decoders to encoders, which comes in handy for Smart Rendering in Clockwerk.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34931 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Use the configured source color space when converting instead of hardcoding
B_RGB32. (Resolved TODO)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34929 a95241bf-73f2-0310-859d-f6bbb57e9c96
a timeout leaks these transfers. In the end this would at least lead to a flood
of canceled transfers on device unplug or, worse yet, exhaust the USB memory
pool stalling all further transfers as seen in #4604. Probably fixes both
issues, can't test though as I don't have the hardware.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34915 a95241bf-73f2-0310-859d-f6bbb57e9c96
spacing and insets).
* Added a check box for disalbling the index generation on BFS volumes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34908 a95241bf-73f2-0310-859d-f6bbb57e9c96
sure that the kernel's frame buffer console points to the right data.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34835 a95241bf-73f2-0310-859d-f6bbb57e9c96
so that it can make use of the firmware installed by the OptionalPackage
Wifi-ipw2100+fw.
* Updating OptionalPackages to use the latest Wifi-ipw2100+fw package.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34833 a95241bf-73f2-0310-859d-f6bbb57e9c96
the function shall nevertheless return the length of the string that would
be written, if the buffer were large enough.
Added a touch of C++ while doing that. :-)
* Fixed the instances in boot loader, kernel, and kernel modules where the
wrong semantics were expected. The majority of uses actually.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34826 a95241bf-73f2-0310-859d-f6bbb57e9c96
ensure interrupts are disabled only once per interrupt event.
* Coding style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34819 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Using conditional compiliation instead of just deleting original code
to easen future driver updates.
* Coding style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34816 a95241bf-73f2-0310-859d-f6bbb57e9c96
per interrupt. Moreover the interrupt is disabled only once now too.
* Using atomic_{set|get} operations for synchronizing the interrupt status
as proposed by Axel.
* Coding style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34812 a95241bf-73f2-0310-859d-f6bbb57e9c96
and ath_intr function. Those are faster than the HAIKU_INTR* macros.
* Some variable renaming to stick with common naming conventions of the other
wlan drivers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34811 a95241bf-73f2-0310-859d-f6bbb57e9c96
I don't know about such hardware, it is better to be cautious here.
* Code style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34809 a95241bf-73f2-0310-859d-f6bbb57e9c96
wpi_intr function. This should fix firmware timeouts, which occure due to the
second read just returns wrong values.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34805 a95241bf-73f2-0310-859d-f6bbb57e9c96
iwn_intr function. This should fix firmware timeouts, which occure due to
the second read just returns wrong values.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34804 a95241bf-73f2-0310-859d-f6bbb57e9c96
WinDecorator:
* Now compilable
* Windows are drawing properly
* The window title is still missing for some reason
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34762 a95241bf-73f2-0310-859d-f6bbb57e9c96
I see no other bug now, but testing welcome.
You can change the decorator using the setdecor command, but you have to add MacDecorator in /home/config/add-ons/decorators first.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34761 a95241bf-73f2-0310-859d-f6bbb57e9c96
-Draw the text in the titlebar
-Fix the buttons (they now are shaded like the DefaultDecorator one, that is, better than in original Mac OS)
-Draw the decorator all grey with no buttons when not focused
-Fix the border
There are some minor bugs left, but basically the decorator is now usable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34760 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Style cleanup and sync with DefaultDecorator to some extent
- Don't draw a titlebar and border around menus
- Allow the client to draw something inside the window by returning the correct BRegion. (still not perfect, but it is useable, at least)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34756 a95241bf-73f2-0310-859d-f6bbb57e9c96
-Some updates to the DecoratorManager to try to make it working. The add-on is not identified properly but I can't find out why...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34749 a95241bf-73f2-0310-859d-f6bbb57e9c96
* the last valid index should be written in HDAC_STREAM_LAST_VALID instead of the fragment count.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34730 a95241bf-73f2-0310-859d-f6bbb57e9c96
be run again or generated/build/BuildConfig needs to be adjusted manually.
* Removed bochs debug hack.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34721 a95241bf-73f2-0310-859d-f6bbb57e9c96
is not tested, though, as I don't own the hardware.
* Note: This wifi driver is special, as it doesn't require the FBSD_WLAN flag
set in the glue.c. This is due to the driver making little use of the
wlan stack. Thus no initialization of wlan stuff is needed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34710 a95241bf-73f2-0310-859d-f6bbb57e9c96
weren't terminated orderly.
* IOScheduler now stores its name and gets a unique ID.
* Added IOSchedulerRoster singleton which registers all IOSchedulers. It also
provides a notification service. We generate interesting events for
IOSchedulers, IORequests, and IOOperations.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34702 a95241bf-73f2-0310-859d-f6bbb57e9c96
* SetParameterValue(): Don't do anything, if the new output frequency value
is the same as before. This avoids hickups when switching between the pages
in the Media preflet.
* _FillNextBuffer(): Compare BBuffer and stream buffer size. They might
differ directly after setting another output frequency, which could cause
a crash.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34683 a95241bf-73f2-0310-859d-f6bbb57e9c96
Renamed OpenTerminal to Open Terminal, since it sounds much more like a phrase
than a label for an add-on. Fixes#4434.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34676 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Round the DMA position for the buffer cycle computation. Apparently some
chipsets trigger the interrupt before the position has been updated.
- Don't just assume that stream->buffer_length frames have been processed
at that time. Use the exact stream position at that time. This makes the
performance time computation more precise and immune to the interrupt
being delayed.
* Init hda_stream::frames_count.
Audio skips on I/O seem to be gone for me, now. Not obviously motivated skips
still happen.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34671 a95241bf-73f2-0310-859d-f6bbb57e9c96
connect().
* This fixes not working connections whenever the incoming sa_len field happened
to be zero.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34669 a95241bf-73f2-0310-859d-f6bbb57e9c96
This probably fixes#2801 and is what the FreeBSD driver does.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34667 a95241bf-73f2-0310-859d-f6bbb57e9c96
descriptor n link position in buffer) registers. They contain "the number
of bytes that have been received off the link", which is not to be confused
with the number of bytes that have been transferred by the DMA engine.
The interrupt is triggered when the last byte of the buffer has been fetched
by the DMA engine, at which point the stream's LPIB is still somewhere in
the last buffer. So the interrupt handler could compute the wrong buffer
index, which would lead to the multi audio add-on filling the wrong
(currently being transferred) buffer, resulting in noisy sound. Now we use
the DMA position. Should fix#4072.
* Also removed the not (always) working hack-around for the "wrong" buffer
positions in the interrupt handler.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34664 a95241bf-73f2-0310-859d-f6bbb57e9c96
* There is firmware needed, which can be distributed with Haiku:
a) Get the firmware from www.ralinktech.com -> Software -> Linux
-> Firmware RT2501(RT2561/RT2661)
b) Extract the three binaries to /system/data/firmware/ralinkwifi/
c) Rename them by removing the '.bin' ending and append fw instead
(e.g.: rt2561.bin -> rt2561fw)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34663 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Also note: the firmware needs to be installed in /system/data/firmware/marvell88w8335
and not malo8335 as I stated in commit r34661.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34662 a95241bf-73f2-0310-859d-f6bbb57e9c96
* This driver requires a firmware, which is not publicly available, and
therefor cannot distributed with Haiku. To retrieve and install the firmware
nonetheless following steps are required:
a) Download the firmware from http://www.nazgul.ch/malo/malo-firmware-1.4.tgz
b) Copy the included firmware files malo8335-h and malo8335-m to /system/data/firmware/malo8335/
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34661 a95241bf-73f2-0310-859d-f6bbb57e9c96
returning B_INVOKE_SCHEDULER from the interrupt handler, causing
latencies up to a full quantum for the multi audio output thread. This
change improves audio clicks quite a bit on my machine. Though they still
happen from time to time and particulary on FS activity.
* Automatic whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34633 a95241bf-73f2-0310-859d-f6bbb57e9c96
setting the input frequency, but I'm too lazy and not interested in the feature
to actually implement it.
For some reason the setting is not persistent. But the other parameters don't
seem to be persistent either, so this is apparently a general problem.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34630 a95241bf-73f2-0310-859d-f6bbb57e9c96
FreeBSD 8 (r199625) and thus adding the FreeBSD license header.
* Implementing the glue code to make the wavelanwifi driver linking.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34626 a95241bf-73f2-0310-859d-f6bbb57e9c96
Both are compiling, but not linking yet. Only for compilation of pci support
has been taken care of, as neither ISA nor PCMCIA are usable within Haiku
anyway.
* Enhancing the FreeBSD compat layer so that the above drivers are compiling.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34621 a95241bf-73f2-0310-859d-f6bbb57e9c96
sys/condvar.h and as such the kernel_c++_structs.h file in their souces.
As Ingo pointed out when introducing the "C++ structs in C only code" feature,
this dependency needs to be put on every target that includes
kernel_c++_structs.h directly and indirectly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34586 a95241bf-73f2-0310-859d-f6bbb57e9c96
outside of Haiku's repository, only.
* Also this fixes the build break that arose when the Haiku repo was checked
out with something different than svn (git for example:), due to a hardcoded
reference to the svn entries file.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34529 a95241bf-73f2-0310-859d-f6bbb57e9c96
because there is another FreeBSD driver used for 88w8335 chipsets. So the old
name would be misleading.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34470 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Instead, added a new function is_local_link_address() which returns the
interface with the matching link level address, and can additionally test
for unconfigured interfaces.
* Merged the two versions of fill_sockaddr_in() together in ipv4.cpp.
* ipv4 now uses the new is_local_link_address() function to figure out whether
the received packet should be processed or not. This should fix a few DHCP
issues with multiple and configured interfaces as recently explained on the
mailing list.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34466 a95241bf-73f2-0310-859d-f6bbb57e9c96
* playback, tested with 16bit format, with sample rate range from 8 to 48kHz
* recording, fixed at 48kHz 16 bit (read below)
* controlling some mixers, input selector, etc.
I placed the driver in the ac97 directory as it fits better.
Also a few coding style fixes by me.
This driver collides at least with one pci id of the sis7018 driver.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34452 a95241bf-73f2-0310-859d-f6bbb57e9c96
loading the GMARBLES.PCX test file just fine.
* Automatic whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34440 a95241bf-73f2-0310-859d-f6bbb57e9c96
required hardware (many current Macbooks).
This driver needs a firmware. The retrieval of this firmware requires
following steps:
a) Download the linux firmware from http://downloads.openwrt.org/sources/wl_apsta-3.130.20.0.o
b) Download and compile b43-fwcutter from http://bu3sch.de/b43/fwcutter/b43-fwcutter-011.tar.bz2
c) Use b43-fwcutter to cut the linux firmware in pieces.
d) Copy those pieces into /system/data/firmware/broadcom43xx/
e) Prepend them with bwi_v3_ and remove the .fw ending.
f) You also need to create an empty file called bwi_v3_ucode in this directory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34435 a95241bf-73f2-0310-859d-f6bbb57e9c96
a drive (which had its MBR created on Linux) report a smaller size than the
size of its first partition.
* Since other operating systems seem to ignore this, we now relax our validity
checks and always adjust the size of a child partition to fit into its parent.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34381 a95241bf-73f2-0310-859d-f6bbb57e9c96
* untested unsolicited response support
* added quirk support for vref and gpio
* vref are now enabled for all inputs, and gpio for some Apple Macs
* replaced dprintf with TRACE and ERROR macros
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34352 a95241bf-73f2-0310-859d-f6bbb57e9c96
The source is based on the FreeBSD RELEASE_8_0_0 code, found in Haiku's
freebsd vendor branch.
This driver enables the network card in my EeePC 1005HA-M, for example.
To compile it issue "jam atheros813x".
* Introducing the new build target.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34348 a95241bf-73f2-0310-859d-f6bbb57e9c96
The driver sources are based upon the FreeBSD RELEASE_8_0_0 source as found in
Haiku's freebsd vendor branch.
* Currently only the atheros driver is working and can be compiled with
jam atheros.
* Every driver contains a Jamfile already, so that the compilation process
can be started with jam <driver_name>. Also note, that linking of every
driver besides atheros and iprowifi2200 will fail at the moment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34345 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Add more debug info for the KDL debug command
- Request channel pointer also for non l2cap signal frames
- Add locks for packet queues
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34333 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Start to move some common code from the driver layer (not yet used)
- Style
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34332 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Don't allow scrolling when a pad button is pressed because we are likely in a drag action.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34326 a95241bf-73f2-0310-859d-f6bbb57e9c96
notifications if an inode in a query result was moved/renamed - this time all
the information is correct, though.
* While I did not introduce B_ENTRY_MOVED for queries yet, this should make
adding it very simple (left as an excercise for the reader ;-))
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34317 a95241bf-73f2-0310-859d-f6bbb57e9c96
DoublyLinkedListLink. That actually seems to get the bfs_shell working
properly.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34257 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added FSSH_[S]SIZE_MAX to headers/private/fs_shell/fssh_types.h.
* Fixed various 64 bit compiler warnings. Nothing too serious, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34241 a95241bf-73f2-0310-859d-f6bbb57e9c96
couldn't bring myself to replace the types everywhere they are used, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34215 a95241bf-73f2-0310-859d-f6bbb57e9c96
checking the physical frame buffer location.
* This allows us to map the whole frame buffer at once, which means there is no
need anymore to remap the memory on mode change.
* Also, this will ease the burden of the MTRRs, as the memory size will be
properly aligned.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34206 a95241bf-73f2-0310-859d-f6bbb57e9c96
- fix warning
- add get_irq_routing_table to the acpi busmanager (don't forget to link the kernel after an update)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34201 a95241bf-73f2-0310-859d-f6bbb57e9c96
all MTRRs at once.
* Added a respective x86_set_mtrrs() kernel function.
* x86 CPU module:
- Implemented the new hook.
- Prefixed most debug output with the CPU index. Otherwise it gets quite
confusing with multiple CPUs.
- generic_init_mtrrs(): No longer clear all MTRRs, if they are already
enabled. This lets us benefit from the BIOS's setup until we install our
own -- otherwise with caching disabled things are *really* slow.
* arch_vm.cpp: Completely rewrote the MTRR handling as the old one was not
only slow (O(2^n)), but also broken (resulting in incorrect setups (e.g.
with cachable ranges larger than requested)), and not working by design for
certain cases (subtractive setups intersecting ranges added later).
Now we maintain an array with the successfully set ranges. When a new range
is added, we recompute the complete MTRR setup as we need to. The new
algorithm analyzing the ranges has linear complexity and also handles range
base addresses with an alignment not matching the range size (e.g. a range
at address 0x1000 with size 0x2000) and joining of adjacent/overlapping
ranges of the same type.
This fixes the slow graphics on my 4 GB machine (though unfortunately the
8 MTRRs aren't enough to fully cover the complete frame buffer (about 35
pixel lines remain uncachable), but that can't be helped without rounding up
the frame buffer size, for which we don't have enough information). It might
also fix#1823.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34197 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added support for Radeon X1050, which is essentially an RV370.
I cannot confirm this works, but I assume the creator of the patch can. :-)
Thanks a lot, fixes#3435.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34182 a95241bf-73f2-0310-859d-f6bbb57e9c96
* LeafNode/Directory: We make sure that the added PackageNode with the newest
modified time is always at the head of the list. This is the package node
whose stat, attribute data and, in case of non-directory nodes, also content
data will be returned. This results in a well-defined algorithm what happens
when multiple directories contain the same file -- the newest file wins.
* Resolved most TODOs regarding error handling when adding a package domain,
package, or package node.
* Volume::_AddPackageContentRootNode(): Fixed the back tracking loop. It would
just continue with siblings of the given root node, causing them to be added
more than once, leading to data structure corruption.
* We now listen to the packages directory. When packages are added or removed
their contents is automatically added/removed to the file system. We don't
listen to the package files themselves yet. I.e. modifying an "installed"
package in place respectively copying/downloading it there will probably not
work correctly.
Due to a limitation in the userlandfs the mechanism works correctly only when
using the kernel module. When running the userland version, one better leaves
the packages directory alone while packagefs is mounted.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34172 a95241bf-73f2-0310-859d-f6bbb57e9c96
data to a DataOutput.
* Implemented packagefs' io() hook and changed the read() hook implementation
to use the file cache. It's now possible to mmap() files and thus execute
programs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34138 a95241bf-73f2-0310-859d-f6bbb57e9c96
PackageNodeAttribute to the PackageNodes.
* Implemented the attribute FS interface hooks.
* Made Package and PackageNode BReferenceable.
* Fixed the reference management for Node.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34119 a95241bf-73f2-0310-859d-f6bbb57e9c96
option to cache a freed buffer -- and implementations
BlockBufferCache{NoLock,Kernel}.
* ZlibPackageDataReader does now dynamically get its read and uncompress
buffers from a provided BufferCache when needed.
* Allocating the buffers once and keeping them over the whole life time was a
bit too memory heavy, since we create a reader for every file for which a
vnode is created. A FS module global factory provides a buffer cache.
* Added a mutex to PackageFile::DataAccessor which guards the access to the
data reader which isn't thread safe.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34115 a95241bf-73f2-0310-859d-f6bbb57e9c96
event.
* This allows applications to listen to keys independent to their dead key
status.
* The app_server keyboard filter now also check for B_UNMAPPED_KEY_DOWN.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34112 a95241bf-73f2-0310-859d-f6bbb57e9c96
file once, tracking an open count.
* Added VFSInit()/VFSUninit() methods to the Node and PackageNode class
hierarchies, called by the {get,put}_vnode() PackageFile implements them to
set up/tear down access to the file data. Also added a Read() reading the
data.
* Implemented the open(), free_cookie(), and read() FS hooks for real. Reading
files works now. Executing doesn't yet -- it requires working with
IORequests in a way not supported by the userlandfs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34102 a95241bf-73f2-0310-859d-f6bbb57e9c96
* We now report more correct stat data. The information are retrieved from the
Package* objects.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34098 a95241bf-73f2-0310-859d-f6bbb57e9c96
PackageSymlink with a "fat" interface.
* Replaced File and Symlink by fat class LeafNode.
* Added Package* object management to Directory and LeafNode.
* Implemented packagefs_read_symlink(), so symlinks work now.
* Added some missing locking the kernel interface.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34096 a95241bf-73f2-0310-859d-f6bbb57e9c96
* The FS parses package files from "/boot/common/packages" and builds an
node tree representation of the contained entries. Merging directories should
work. Lots of other stuff is missing yet, though.
* Implemented the hooks for directory entry lookup and iteration. So it's
possible to see the contents of the FS at least.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34088 a95241bf-73f2-0310-859d-f6bbb57e9c96
afterwards; ie. the alt key is no longer stuck after visiting KDL.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34087 a95241bf-73f2-0310-859d-f6bbb57e9c96
among all defined status.
* Note, until bug #4851 is solved, the list Mail shows might differ from the
one "Mark Asâ¦" shows.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33960 a95241bf-73f2-0310-859d-f6bbb57e9c96
file systems, so those checks don't have to be duplicated there, anymore.
* Minor cleanup, mostly automatic whitespace.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33895 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added new ENABLE_DEBUGGER_COMMANDS that enables the new "net_buffer" KDL
command to dump a net buffer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33893 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Corrected AcpiOsReadable and AcpiOsWritable to always return true in kernel and to better check bit flags otherwise.
* Removed comment about implementing acpi object cache with slab (object_cache). ACPI's own is simple, light and nice enough.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33887 a95241bf-73f2-0310-859d-f6bbb57e9c96
transaction mechanism. Now we keep track of the parent transactions, and
restore fOwner on Journal::Unlock().
* This closes bug #4155 again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33883 a95241bf-73f2-0310-859d-f6bbb57e9c96
- add generic device descriptions for the various incarnations of the PC UART,
- just use pc_serial as devfs basename regardless.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33858 a95241bf-73f2-0310-859d-f6bbb57e9c96
- add url about a linux driver for a new webcam (topro, 06a2:0003) I found today.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33857 a95241bf-73f2-0310-859d-f6bbb57e9c96
I hope I have fixed all parts that don't follow our guidelines. (that python script was good start)
This is the filter..
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33847 a95241bf-73f2-0310-859d-f6bbb57e9c96
Happens for example when you create a BMediaFile and close it without
committing the header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33845 a95241bf-73f2-0310-859d-f6bbb57e9c96
before, st_ctim was never updated; since you cannot change st_ctim via an API,
'0' cannot ever be set, either.
* Inode::WriteAttribute(), and Attribute::Write() now return whether they
created an attribute or not, and thus B_ATTR_CREATED is now correctly set.
* Moved status_change update from bfs_write_attr() into Inode::WriteAttribute()
where it can be handled more efficiently.
* Likewise, Inode::RemoveAttribute() now updates the status_change time as well,
I simply forgot this before.
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33832 a95241bf-73f2-0310-859d-f6bbb57e9c96
* While Ingo already convinced me to use the modified time for this instead
(see People files, for example), I did not do so for two reasons:
1) The file modification date is important to the user; more or less hidden
attribute changes shouldn't have an effect on this.
2) Efficiency: the last_modified field is indexed whereas status_change is
not. Speed would suffer noticeably else.
* We might want to think about a new "stat::st_attrtim" field, though, instead.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33825 a95241bf-73f2-0310-859d-f6bbb57e9c96
The previous code used kill_thread() and then destroyed the common RingBuffer.
This wasn't working, and as Axel notes it's not really working on kernel side.
* Added RingBuffer::DestroyLock
* Changed the thread to exit gracefully on RingBuffer semaphore destruction.
* Changed close function to destroy RingBuffer sem, wait_for_thread and then destroy resources.
* Minor code style fixes.
(And also my first commit.)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33795 a95241bf-73f2-0310-859d-f6bbb57e9c96
Closing usb_midi now wake up midi_server port reader, as expected.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33782 a95241bf-73f2-0310-859d-f6bbb57e9c96
Global lock/unlock assembly code was broken, reworked based on
what FreeBSD does.
Thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33781 a95241bf-73f2-0310-859d-f6bbb57e9c96
I thought there was a ticket about this bug, but couldn't find it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33750 a95241bf-73f2-0310-859d-f6bbb57e9c96
* added header for dealing with binary numbers and bitmasks (C++ templates)
these "macro's" might not work well for long words, though
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33749 a95241bf-73f2-0310-859d-f6bbb57e9c96
the network drivers needed to be adjusted to the header reordering, too
sorry
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33740 a95241bf-73f2-0310-859d-f6bbb57e9c96
break the display for others. If that doesn't work out, there is probably a
bit more to it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33731 a95241bf-73f2-0310-859d-f6bbb57e9c96
must have been my very own stupid idea. It's removed now.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33685 a95241bf-73f2-0310-859d-f6bbb57e9c96
one or two remove messages were generated, as the query code produces
remove/create notifications on renames. Will check next if that also happens
on BeOS, as it doesn't really make much sense.
* This should fix the wrong mail count of the Deskbar replicant when you delete
mail.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33683 a95241bf-73f2-0310-859d-f6bbb57e9c96
them more BeOS compatible while still keeping them somewhat flexible.
* _GrowStream() did actually not check if the double indirect region was already
filled up - this caused it to overwrite innocent memory. This fixes the bug
Rudolf showed me on this laptop that happened while copying a large file.
* Loosened file size restriction on a heavy fragmented disk: the indirect block
does not require a minimum array size anymore; before, you just couldn't let
a stream grow into the indirect range if it couldn't allocate NUM_ARRAY_BLOCKS
(4) blocks in a row. This considerably reduced the maximum file size in this
case.
* Removed no longer valid TODO.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33675 a95241bf-73f2-0310-859d-f6bbb57e9c96
to avoid recurring problems during migration of subversion checkouts
(restored binary files that were garbled by subversions during checkout)
* added appropriate svn:mime-type property for problematic (binary) files
* removed a single (mistyped) svn:mimetype property
* dropped svn:eol-style property for cleanup (they all contained 'native')
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33670 a95241bf-73f2-0310-859d-f6bbb57e9c96
Restore ignoring the BIOS provided width and height in case the timings
suggest a bigger dimension. Also re-add the corresponding comment. Should
fix#4810 and might affect #4807 as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33652 a95241bf-73f2-0310-859d-f6bbb57e9c96
that. But I didn't think of any better solution either... Hopefully these are
all, but I will find out once I built a complete image.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33641 a95241bf-73f2-0310-859d-f6bbb57e9c96
I've now removed that code, and factored out a retrieve_current_mode()
function that can work on head A and B.
* This fixes Adrien's flickering problem on his laptop - I can't find the
bug ticket, though. Hopefully it does not break other laptop chips. Testing
would be welcome, as I don't have any other machine here.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33633 a95241bf-73f2-0310-859d-f6bbb57e9c96
This solves the "1200-seconds paradox" sorced by ignoring the
"arp who-has" requests send as broadcasts.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33603 a95241bf-73f2-0310-859d-f6bbb57e9c96
and stops processing if it finds something wrong.
* The default indirect/double array size differs from BeOS' BFS. I've changed
the size for double indirect arrays only, since the other size should work
either way (not tested yet, this change has a negative effect on the maximum
file size, but improves BeOS compatibility).
* The read/write path of BFS is now double indirect block size agnostic, and
should work with what it finds.
* Merged all double indirect size computation into some utility inline
functions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33551 a95241bf-73f2-0310-859d-f6bbb57e9c96
contiguous. Was used to optimized CD boot before the alpha release.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33521 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Fixed issues sending data over USB bus (actually write data when
requested to; increased timeout when writing data).
- Added usb_printer to build and Haiku image.
- Sending data to printer over USB bus works now in Haiku (cat ... >
/dev/priner/usb/0). Not sure if it works when printing from an
application as I don't have a driver that supports my printer yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33501 a95241bf-73f2-0310-859d-f6bbb57e9c96
failed to evaluate, the whole term was ignored. Also, if the left term got
the higher score (and was thus evaluated first), the second term was never
evaluated anymore. This should fix, for example, MDR sometimes not sending
out pending mails.
* Minor cleanup, improved comments.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33496 a95241bf-73f2-0310-859d-f6bbb57e9c96
and some code duplication.
* Fixed the missing click count in the former "movement" label (now in the
move_to_movement() function); the click count was always 0 in that case,
this was most obvious with Firefox where you couldn't click anything as long
as you had a finger on the touchpad.
* Made the functions static that aren't exported to the outside.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33469 a95241bf-73f2-0310-859d-f6bbb57e9c96
the same as the two finger scrolling option (could be disabled, too, opinions
welcome).
* Added a new settings to disable horizontal two finger scrolling, since it's
not that easy to only scroll in one direction with this. Maybe a higher
starting boundary would also be an option for this instead, Clemens what do
you think?
* Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33468 a95241bf-73f2-0310-859d-f6bbb57e9c96
reading the message as an actual string will run into problems.
Should fix#4697.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33442 a95241bf-73f2-0310-859d-f6bbb57e9c96
- The text was not centered because it was not taking into account the left
offset of the text rendering, which can be gotten from the left value of the
rect returned by GetBoundingBoxesForStrings. I'm pretty sure this was 0 on
BeOS, so there might be problems with our GetBoundingBoxesForStrings. It
doesn't make sense for flat edged glyphs like D and N to be offset. But
nonetheless taking into account that left offset centers the text in this
screensaver. This fixes#4261.
- The text rendering also could look weird because the low color was not set to
blue. Again I'm pretty sure this was not a problem on BeOS, but could be
related to the new subpixel AA rendering. Setting the low color fixes this
and therefore fixes#4252.
- To avoid any weird repaint issues in the ScreenSaver preferences preview
view, the whole background is painted every frame now.
- I also added an escapement_delta member which is used for both the
GetBoundingBoxesForStrings call and the eventual text rendering. This may be
pointless, but it is probably more consistent.
Other changes:
- This now makes use of the new settings view private function.
- I made the coding style compliant with our latest guidelines (I think I got
most of the big ones at least.)
- Removed the references to the old BeOS screen saver kit stuff from the
Jamfile.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33404 a95241bf-73f2-0310-859d-f6bbb57e9c96
monolithic vmware images as produced by the build system (by registering such
an image via the "diskimage" tool).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33388 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added new header headers/private/system/disk_device_types.h, which defines
the <DiskDeviceTypes.h> constants as macros and which can be used where the
constants cannot be used. The constants are defined using the macros, so now
there's only one place where the string literals should be specified.
* Use the macros in the partitioning systems. I was too lazy to also adjust the
file systems -- most of them seem to hard-code the string literal yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33386 a95241bf-73f2-0310-859d-f6bbb57e9c96
The audio decoding in AVDecoder needs this to work at all.
* Set the infoBuffer and infoSize correctly in GetStreamInfo(). At least this
is what I extract from what the AVDecoder expects.
* Use a slightly more precise timeStamp calculation in the Seek() method.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33358 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Added TODO about a probable mix-up to use the media_format meta data
because the FFmpeg Reader plug-in forgot to set the info-buffer correctly
from GetStreamInfo().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33355 a95241bf-73f2-0310-859d-f6bbb57e9c96
hw rev B1, as some early versions use D-Link System vendor ID (0x07d1),
others use D-Link Corp. vendor ID (0x2001)...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33342 a95241bf-73f2-0310-859d-f6bbb57e9c96
-As the fingerprint is now fully working, all catkeys fingerprints are now checked, and if they don't match, the build will fail.
-This helped find an error in the Locale Preflet french catalog. It now works again.
-Usual set of cleanups and small style fixes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33340 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Some key-sequences cause \0 chars in the "bytes" data which is supposed to
be passed to BView::KeyDown() and BView::KeyUp(). Therefor, one cannot use
string methods for adding/extracting the data to/from the events. For
example, Control-Space now works in the Terminal.
Thanks a lot for the original patch, Joshua!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33338 a95241bf-73f2-0310-859d-f6bbb57e9c96
rebooting via pressing Ctr-Alt-Del twice did not work. (But I didn't test)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33335 a95241bf-73f2-0310-859d-f6bbb57e9c96
_SB_ (System Busses) and _SI_ (System Info) root nodes wasn't published
as device manager nodes, only their subnodes, if any.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33307 a95241bf-73f2-0310-859d-f6bbb57e9c96
* Use the correct interface index for the control transfer that sets a Wacom
tablet into tablet mode.
* Check if the mode is indeed setup correctly.
* Retry switching the mode up to five times, as done in the Linux driver.
Thanks a bunch! As Michael has proposed in ticket #3744, the whole Wacom
driver should be merged into the existing HID driver framework (eventually).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33301 a95241bf-73f2-0310-859d-f6bbb57e9c96
based protocol as the X vmmouse driver does. It yields proper absolute pointer
positions under both the normal VMWare console and using the builtin VNC server.
Therefore "fixes" the issue seen in #4630.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33298 a95241bf-73f2-0310-859d-f6bbb57e9c96