Commit Graph
100 Commits
Author SHA1 Message Date
Axel Dörfler 4a553d3696 Forgot to update logStart after every written array - this
caused old entries (that were part of the same transaction) to be 
overwritten.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23642 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 16:35:19 +00:00
Axel Dörfler ae16ab9d0f * When I ported over BFS to the new FS API, I pretty much toasted the logging
code:
  - The vec array to contain the block list and the index block was one entry
    to small.
  - But that didn't really matter, as RunArrays/run_array was broken and never
    put anything into the log; we only ever wrote index headers. BFS would
    totally screw up the disk when trying to replay the log (even though the
    replay code itself was and is working fine).
  - If a log entry ended at the end of the log area, BFS could overwrite the
    first block after the log with the next entry.
* run_array now adopt the sorting stuff from the sorted_array. Blocks in the
  log are now always sorted.
* Added TODO item to sorted_array as it's not endian safe (will only work
  correctly when BFS is used in the native endian).
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23638 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 15:46:41 +00:00
Axel Dörfler 960f8f2430 * Renamed sBufferStart to sFirstEntry, and sBufferEnd to
sAfterLastEntry.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23614 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 18:35:45 +00:00
Axel Dörfler f70280a733 * alloc_tracing_buffer() now refuses to allocate more than 65532 bytes;
we use a uint16 size internally (and that has to include the length of
  the trace_entry structure, too.
* We now track how many entries have been written to the log during the
  runtime.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23613 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 18:18:35 +00:00
Axel Dörfler 5d0afa4e4e * cache_detach_sub_transaction() didn't really work: it did not put all needed
blocks into the new transaction, but it would set that transaction on all
  blocks of the old transaction, too. Also, it did not correctly update the
  num_blocks/sub_num_blocks fields of the old transaction. Even worse, it did
  return B_OK instead of the ID of the new transaction...
* get_writable_cached_block() did not correctly maintain the number of blocks
  in the sub transaction.
* write_cached_block() did not free the original_data of a block when it wrote
  it back as part of a previous transaction.
* Changed "cookie" for cache_next_block_in_transaction() to "long", so it will
  be 64 bits when needed.
* Improved the API for detaching sub transactions: you can now get the blocks
  of only the main (parent) transaction as well, added new
  cache_block_in_main_transaction() function.
* BFS now flushes the log when there is no space left for the current
  transaction.
* _WriteTransactionToLog() allocated a "vecs" array, but never freed it.
* _WriteTransactionToLog() now also supports detaching the current sub
  transaction if the whole thing is getting too large (it will now also panic
  if that doesn't work out).
* Removed a useless optimization: making the blocks available in the cache
  isn't really needed, as all blocks in a transaction are locked into the
  cache, anyway.
* Implemented Transaction::WriteBlocks().
* Minor cleanup, removed some dead code, fixed warnings in the fs_shell's
  block_cache when compiled with debug output on.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23610 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 17:07:18 +00:00
Axel Dörfler 53f7979709 * Fixed a deadlock (and resolved TODO): we need to make all pages unbusy again
before releasing our cache reference. Otherwise removing a vnode (triggered
  by releasing the cache in our thread) could need pages we still own.
* Put the caches and pages into a union to save stack space; they are not
  needed at the same time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23580 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 08:21:48 +00:00
Axel Dörfler 9e7511601a * Deactivated the IDs for the 8xxx chips - they are not supported.
* Removed ID 0x0141 for the FX 6600 as well until it's fixed, see ticket #1530
  for details.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23579 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 08:15:50 +00:00
Axel Dörfler 06958f901c We generally handle NULL pointers in free() and friends gracefully.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23578 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 08:06:54 +00:00
Axel Dörfler 33965e022a Enabled paging for the boot debug output as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23570 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 22:09:02 +00:00
Axel Dörfler a96e7cce98 * Replaced my block allocator code in favour of Hugo's slab allocator
(so we can't allocate more physical pages than virtual address space
  anymore, but so what?).
* Used the new CACHE_LARGE_SLAB flag as a temporary work-around; else
  the slab would easily create several thousands of areas, which our
  area code (and kernel heap) can't really handle that well (gets 
  awfully slow).
* Block caches with the same size could share the same slab, but we
  don't do that yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23567 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 20:43:12 +00:00
Axel Dörfler 855ab2b312 * Based on ahwayakchih's blue screen paging code (see bug #1444), I added
paging support to KDL (but not the on-screen debug output for now).
* Defaults to "on", use the new "paging" KDL command to turn it off (or on
  again).
* When pressing 'q' while it is waiting for a key, it will now eat the rest
  of the commands output (helpful for slow screen output of a large data set).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 20:39:00 +00:00
Axel Dörfler b9074efcb7 * Fixed the "vnodes" KDL command when called without any arguments.
* Fixed the usage text of the "help" KDL command.
* Made the "ambiguous command" warning shorter, so that it will still fit in
  the exception buffer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23565 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 20:36:27 +00:00
Axel Dörfler c6ee79ce38 * vm_create_anonymous_area() now accepts B_ANY_KERNEL_BLOCK_ADDRESS.
* As a temporary work-around for the current slab allocator's area usage,
  I added the CACHE_LARGE_SLAB flag, which will force the allocator to 
  use larger areas.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23564 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 20:30:16 +00:00
Axel Dörfler abf34addc5 * B_ANY_KERNEL_BLOCK_ADDRESS now aligns the memory on the next power of two
value greater or equal its size (actually untested, but at least Haiku
  still boots with these changes :-)).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23563 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 19:09:01 +00:00
Axel Dörfler dd80f32ac3 * Added support for the "--help" argument for all VFS debugger commands.
* Added some temporary variables to the commands.
* Use parse_expression() where appropriate.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23556 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 09:21:54 +00:00
Axel Dörfler fd81fd526a * Fixed the "unset" command and added useful error output (faulted before).
* Fixed removing temporary variables (they would always be removed except one
  after the first command).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23555 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 08:59:58 +00:00
Axel Dörfler 8264ebf6b7 * Improved block allocation.
* Made the block_cache KDL command dump a bit more useful info (number of
  referenced and dirty blocks).
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23540 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 18:03:33 +00:00
Axel Dörfler c87ef6db88 Made Haiku behave better when you have more memory:
* with 1 GB or more, the semaphore limit is now 131072 instead of 65536.
* double the heap when there is 1 GB or more (64 MB).
* the low memory handler now also watches semaphore usage; in the end,
  we need a low resource handler, not a low memory handler.
* create_sem_etc() no longer calls vfs_free_unused_vnodes() directly as
  this could actually deadlock (at least because the address space is a
  R/W lock, not a recursive lock).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23538 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 16:47:26 +00:00
Axel Dörfler 09c46ea8bd * Fixed bug in the BlockAllocator::Allocate() function which did not
compute the bit offsets correctly if the last block of the whole
  bitmap was only a partial block.
* Added new bfs_allocator KDL command.
* Renamed the KDL command bfsinode to bfs_inode.
* Added "--help" argument to bfs_inode and bfs KDL commands.
* Added more tracing in the block allocator.
* Turned on the ASSERT() macro in non-debug builds.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23534 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 15:18:02 +00:00
Axel Dörfler 36a3ef573d * "traced" now always prints the index numbers (before, it only did that
when a pattern was involved).
* alloc_tracing_buffer() no longer allocates anything when you ask for
  a zero byte buffer.
* Fixed warning.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23533 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 15:06:15 +00:00
Axel Dörfler 502c464081 * Added tracing support for transactions.
* improved the "block_cache" KDL command: it can now also dump blocks,
  added support for the "--help" argument.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23532 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 15:04:31 +00:00
Axel Dörfler 2d81f04529 * If the "traced" KDL command is used with only one argument, it's the index
now, not the number of entries shown (much more usable this way).
* Added missing license.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23520 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-14 14:04:35 +00:00
Axel Dörfler 42ef796e50 Added a bit more tracing output to the block allocations.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23496 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 20:08:43 +00:00
Axel Dörfler 4fc4f2c8ae * Added a transaction listener mechanism to be notified when a
transaction ends or has been aborted.
* BFS now listens for transactions when it created an inode to see if 
  the transaction will be aborted without freeing the inode (in which 
  case it will panic for now).
* Started implementing tracing support, but it's not working yet.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23492 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 17:18:29 +00:00
Axel Dörfler 5276dad057 * Fixed a bug in make_space() that would endlessly skip entries, even
though there was nothing to do (if 'diff' was larger than 'needed').
* Improved KDL command output.
* Added debug output to the allocation functions.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23491 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 17:09:01 +00:00
Axel Dörfler 8e43ece8b8 Some more work on the tracing API:
* Added function to allocate space in the buffer.
* Dump() now fills a buffer instead of printing its data directly.
* This allows the new "#pattern" argument of the "traced" command to 
  work. When you're using that, the index of the trace entry is printed
  out, too, so that you can then get a full dump around the hits.
* Added an AddDump() method to the AbstractTraceEntry class so that 
  there is no need to call the inherited function anymore.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23479 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 02:50:32 +00:00
Axel Dörfler 2eceeabaea Fix comment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23466 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 00:27:05 +00:00
Axel Dörfler d7477802b8 * Made the additions of the KDL debugger commands independant from the
DEBUG macro; they are now added only if BFS_DEBUGGER_COMMANDS is 
  defined (which is now done by default in the Jamfile).
* Added "bfs" KDL command which dumps volume information and the super
  block.
* Made use of the new tracing API to trace block and inode actions
  (and the new AbstractTraceEntry class I forgot to mention in the last
  commit). Is compiled in only when BFS_TRACING is enabled (defaults to
  off in the standard builds).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23464 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 00:03:53 +00:00
Axel Dörfler d1ba9c8adc Fixed warnings when building the bfs_shell.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23462 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 23:58:56 +00:00
Axel Dörfler 416458e9c4 * Added nothrow to the new operator because otherwise the C++ compiler
will not accept if the allocator returns NULL and crashes instead
  (ie. not compiling in tracing would have crashed if some module tried
  to use it).
* Added total entries count to the KDL command output.
* Fixed computing the start index of the KDL command.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23460 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 23:55:53 +00:00
Axel Dörfler 7f2453fa9c Added a progress monitor when copying large files (ie. over 1 MB).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 23:53:09 +00:00
Axel Dörfler f3ecf93d37 Added the cookie/private_node fields to the mounts/vnodes list in KDL.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23455 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 23:45:11 +00:00
Axel Dörfler a825cef64b Added TODO comment about a possible deadlock Marcus just found :-)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23450 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 22:49:03 +00:00
Axel Dörfler aa5d2a2df2 bonefish+axeld:
* Implemented an optional tracing layer that can be used in the kernel.
  Nice to use if you don't have serial output or need something that doesn't
  slow down the system as much.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23447 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 18:41:35 +00:00
Axel Dörfler a52c1759ac Fixed two bugs in the vnode disconnecting code found by bonefish+mmlr:
* vfs_disconnect_vnode() did not put away its vnode reference.
* disconnect_mount_or_vnode_fds() did always throw the current working
  directory of all apps on the same mount away, even if only a specific
  vnode should have been disconnected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23445 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 17:36:10 +00:00
Axel Dörfler 748988ae1f mkdir() is supposed to respect the umask when creating the directory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23438 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 13:17:59 +00:00
Axel Dörfler f81851cbe3 * Made the colors of our Terminal a bit easier to look at, especially in
the ls output.
* Made the array the size it actually is.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23437 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 12:41:55 +00:00
Axel Dörfler 5e3a8a4a57 * Applied patch by absabs to enable signal tracing. This closes ticket
#1436. Thanks!
* Changed syscall color to blue (signals are red).
* Added thread number to the signal output.
* -g turns off signal tracing now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23436 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 11:29:57 +00:00
Axel Dörfler 1214ef1b21 A test app that does constant workspace switching.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23415 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 19:10:01 +00:00
Axel Dörfler 45d0ea5605 Fixed two dirty region problems of the workspace switching code:
* If two intersecting windows didn't change their position but their 
  order, the dirty region wouldn't contain the region that would need
  to be updated because of that order change. This fixes bug #827.
* When a hidden window was on the new workspace (but not on the old one),
  its region would be included in the dirty region, but shouldn't have
  been. This caused the app_server to update a larger region than 
  necessary.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 14:04:53 +00:00
Axel Dörfler 46c6a221a8 Files that were created in the future (time zone issues, or whatever)
shouldn't be regarded recent either.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23384 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 10:46:37 +00:00
Axel Dörfler 978e434d72 * Finally nailed down and fixed #355: apparently, if the pose info attribute
couldn't be read from a file, Tracker would try 10 times with a 10 ms
  timeout - but only if the creation time equals the modification time!
  That was obviously supposed to be a check if the file was recent...
  Now that computers are faster (even when running Haiku), it may 
  actually take less than one second to copy a file, so most files on
  the Haiku image satisfied this thoughtful and future-proof check.
  (And no, even the original BFS does not automatically increase the 
  modified time on close.)
* Now, mmlr came up with a better check: we just check the file's 
  creation time against the current time to see if it's a recent file.
  That should work a bit more reliable :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23376 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 01:32:47 +00:00
Axel Dörfler 737ce1c03c * The keyboard target was always the first menu in the window list - no matter if that was hidden or not.
This fixes the bug described by Stefano in r23343.
* Therefore, I enabled cached menu windows again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-10 21:26:55 +00:00
Axel Dörfler 58e5eff96f * Some refactoring and cleanups.
* Started a "View As" feature which will allow you to use the type 
  editor for the file itself - not yet enabled (or working).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23352 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-10 21:05:00 +00:00
Axel Dörfler 3e5b9076f9 * Fixed (or rather, worked around) a deadlock in the VM: when a file was
resized but still had dirty pages to be written back, 
  vm_cache_resize() (which is called with the inode lock being held)
  deadlocked with the page writer.
* Now, I reintroduced busy_writing: it'll be set by everything that
  writes back pages (vm_page_write_modified(), and the page writer),
  and will be checked for in vm_cache_resize() - other functions are not
  affected for now, AFAICT.
* vm_cache_resize() will clear that flag, and the writer will check it
  again after it wrote back the page (which will fail when it's outside
  the file bounds), and if it's cleared, it will get rid of the page
  (if the file has been resized again in the mean time, writing it will
  succeed then, and we'll keep the page around).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23334 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-09 22:25:21 +00:00
Axel Dörfler 34dafb6352 Minor refactoring.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-09 18:39:42 +00:00
Axel Dörfler bcb71f00e8 * My last change to vm_page.cpp made an existing bug much more likely to
appear: when freeing a modified page, it wouldn't have a cache
  anymore, but set_page_state_nolock() depended on it.
* To work around this, I added a vm_page_free() function, which the
  caches that free modified pages have to call (but others may, too).
  It will correctly maintain the sModifiedTemporaryPages counter in case
  the cache has already been removed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23318 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-09 18:15:28 +00:00
Axel Dörfler f4748003ed * Added a KDL function "call" that can show the arguments together with
a function in the stack trace (only works reliably when a stack frame
  is exists, and you'll have to know the number of arguments).
* Refactored the functions a bit and extracted setup_for_thread() out
  of stack_trace() to be used by show_call() as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23316 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-09 18:08:15 +00:00
Axel Dörfler 3d2595d16a The modified temporary page counter could go out of sync pretty easily.
This could cause the page writer to run endlessly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23309 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-09 14:56:50 +00:00
Axel Dörfler 527b14e9d5 Renamed AttributeEditors.{cpp|h} to TypeEditors.{cpp|h}.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23308 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-09 14:29:14 +00:00
Axel Dörfler 7815f565dc Added a very simplistic BMessage viewer to the attribute editors - it
should later be replaced by something more useful (when we have a 
usable column list/tree view class).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23306 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-09 13:42:05 +00:00
Axel Dörfler d2df03947e * init_first_data_node() did not always set tail_space correctly, leading to
potential data corruption. This fixes bug #1388.
* get_node_at_offset() would return a node too early in the list if the offset
  fell on a node boundary - didn't cause any actual harm, though. 
* append_size(): renamed variable tailSpace to previousTailSpace to make
  it clearer.
* Improved debug output for duplicate_buffer() and clone_buffer().
* Debug output is now prepended by the thread ID.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-06 16:58:50 +00:00
Axel Dörfler 4063db92d0 * elf_resolve_symbol() no longer copies the symbol name if symbolPrepend is
NULL (it's not used anywhere yet, anyway).
* Fixed warning when compiling with tracing turned on.
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-06 14:54:57 +00:00
Axel Dörfler 4accd841c7 * Fixed a big bug in common_file_io_vec_pages(): vecOffset was not correctly
set when the first chunk of the file could be read in directly, causing it
  to read data to a wrong place in the buffer.
* Reading in the first chunk directly would have also only worked if vecIndex
  and vecOffset was 0 when calling the function.
* Applied the fs_shell changes in file_map to the kernel version as well (the
  constructor already worked correctly, though).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-06 14:04:15 +00:00
Axel Dörfler 87aa1668c9 * The file_map constructor would not set the size of the file_map object,
causing all reads with an offset unequal to 0 to fail.
* Also fixed file_map_translate() which was hiding this problem.
* Fixed build and warnings when compiled with debugging output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23264 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-06 13:21:00 +00:00
Axel Dörfler bcdcff768b * Applied patch by James Woodcock: added '-n' option to disable resolving names.
Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-05 13:49:57 +00:00
Axel Dörfler 4547914087 * TCP must not lock the endpoint's lock in _TimeWaitTimer() - it will deadlock
with its destructor when the socket is deleted. This effectively stopped all
  network timers from working. This will not only fix bug #1693, but also many
  other networking problems I've seen so far.
* Minor cleanup (mostly line breaks, strange indenting and superfluous
  parentheses).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23251 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-05 13:45:31 +00:00
Axel Dörfler 0b847ab539 Applied patch by Fredrik Ekdahl, this fixes bug #1695.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23242 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-04 17:12:11 +00:00
Axel Dörfler a0b6b9b9e6 Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23241 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-04 16:59:30 +00:00
Axel Dörfler 37d8f330f4 * ResolveSpecifier() used the window's handler name instead of its title for the "Window"
B_NAME_SPECIFIER. This should fix bug #1681.
* Improved ResolveSpecifier() code.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-04 13:03:37 +00:00
Axel Dörfler aa740bac9e The ProgressWindow also need to adopt the workspaces from the reference window.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-04 11:40:56 +00:00
Axel Dörfler 6d88bae7de Added nforce driver to the image.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-03 21:15:25 +00:00
Axel Dörfler 5c3cf26310 Got rid of DeleteSocket().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23236 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-03 19:55:19 +00:00
Axel Dörfler 7d61af89af h_name must be set, or else libnetwork.so will crash when trying to resolve a name...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23235 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-03 19:39:35 +00:00
Axel Dörfler c37090b4f1 It seems the RTL 8167 chip works with our 8169 driver unchanged, even though I might just got
lucky.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23234 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-03 17:54:29 +00:00
Axel Dörfler aad0d344f0 The slab areas shouldn't be user readable...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23231 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-03 10:33:03 +00:00
Axel Dörfler 9a2d0cf6ff Applied patch by Anthony Lee: the user was attached to the font manager too
late, therefore, the DesktopSettings couldn't access user fonts. This fixes
bug #1691, thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23230 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-03 10:13:21 +00:00
Axel Dörfler 2671053585 gethostbyaddr() was used incorrectly, found by James Woodcock, thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23223 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-02 22:29:30 +00:00
Axel Dörfler c88e5e410c * Added support for the G33 line of chips: mode setting and acceleration is working fine AFAICT.
* Implemented mapping the GTT area for i9xx chips other than the i965. This should also fix the
  driver working with these chips at all.
* The memory used by the driver now take the GTT area into account - before the GTT could be
  overwritten theoretically...
* Added fix for some i965 quirks from the X driver.
* Added some overlay definitions for the i965.
* Started support for G33 overlay (not complete yet).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23220 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-02 18:44:39 +00:00
Axel Dörfler 68af0a3fff If there is no /etc/hosts file, we now add a "localhost 127.0.0.1" definition
internally. This fixes #1688.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23218 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-02 16:16:28 +00:00
Axel Dörfler 4d85dcbce8 Removed the experimental BColumnListView class from libbe.so, and moved it
into its own archive (libcolumnlistview.a). Only DriveSetup is using it at the
moment, anyway.
IMO we should reimplement and completely redesign a class with this
functionality before considering making it public.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23198 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-30 13:31:45 +00:00
Axel Dörfler 33d3580bdc Fixed copy&paste bug, thanks Stefano!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23197 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-30 13:02:13 +00:00
Axel Dörfler deb58f165b * DispatchMessage()'s B_WINDOW_ACTIVATED now checks if there are any pending
activation messages, and always retrieves the information from the latest.
* Reverted r23062, as the above should fix bug #613 as well.
* This should also fix bug #1674.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-30 12:46:30 +00:00
Axel Dörfler 73ad280ad3 Fixed build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23176 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-27 22:56:44 +00:00
Axel Dörfler 2157e06c63 * Moved code to remove the parent to the Partition destructor - this should fix
the problem that the parent partition was still referenced in some cases.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-27 18:20:33 +00:00
Axel Dörfler 96689a5cb8 * If DEBUG_ALLOCATIONS is defined, freed memory is now filled with 0xcc,
and it's checked if a chunk is already in the free list, and if any chunk
  has an invalid size. It's defined for now.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23171 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-27 16:56:28 +00:00
Axel Dörfler 120453cdd0 Forgot to add the SWI taskqueues - this should fix #1668.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23135 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-16 19:42:26 +00:00
Axel Dörfler 1607b8e503 * Added Broadcom BCM570x driver from FreeBSD (bge). Does not compile yet, needs
a bit more work on the compatibility layer.
* Added nVidia nForce MCP driver (nfe) from FreeBSD. Compiles and might even
  work - please test. It would also be nice to know if your PHY is detected
  correctly (see syslog output).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-16 10:56:30 +00:00
Axel Dörfler 81abd45c3e There was no space when the buffer was completely empty...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23122 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-13 19:27:05 +00:00
Axel Dörfler b879372352 Added the timeout to QueueCommand::MakeSpace() as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23121 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-13 15:44:41 +00:00
Axel Dörfler 8818c50507 * Made QueueCommands::Write() and MakeSpace() public.
* Implemented MakeSpace() (not yet tested).
* Changed intel_wait_engine_idle() to spin() between reads and to timeout
  after 1 second of waiting (could probably be done way earlier).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23120 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-13 14:56:28 +00:00
Axel Dörfler 9b13056ba2 * Print the resolution the boot loader has chosen.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23114 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-11 21:14:26 +00:00
Axel Dörfler 7825641a7b Now clears the frame buffer before setting the mode; at least when testing,
one sometimes could still see previous contents of the screen during boot up
for some time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23104 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-10 18:42:14 +00:00
Axel Dörfler 5f23ba4ac9 If either the path or the resolved path is NULL, realpath() now returns
EINVAL. This also fixes bug #1659.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23087 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-08 21:45:40 +00:00
Axel Dörfler 9abdc42489 If there are more than 4 MB dirty cache pages, the page writer won't stop anymore
writing back pages when there is enough free memory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-08 20:32:04 +00:00
Axel Dörfler 2c0729ea2d * Turns out the 3com driver wasn't picked up after my changes, but the marvell_yukon driver
worked flawlessly this one time... (I got almost 10 MB/s with that one, now 7.5 MB/s with
  the 3com driver)
* We need to acknowledge the interrupt in the handler, because else, the interrupt continues
  to fire after the PIC interrupt is acknowledged by the kernel.
* It also helps a lot to turn off the interrupts on the device while xl_intr() is handling
  the interrupt.
* When the slow handler is running, we now set the new "handling" field in the internal
  interrupt handler which will not invoke the scheduler then (but only signals a handled
  interrupt).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23085 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-08 19:38:51 +00:00
Axel Dörfler f79121dacb * Only acknowledge the interrupt in the service thread, so that no new one will be triggered.
* Also, loop as long as new interrupts are coming in.
* This fixes the high CPU usage and low throughput of the 3com driver; it now works just fine;
  dunno why it worked for me that well last time.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23084 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-08 14:52:14 +00:00
Axel Dörfler 21885de266 * BFS now always writes back the whole block when it writes the super block.
* Therefore, I've added an I/O control that let's it update the boot block
  part of this block, so that makebootable can use it on a mounted volume
  (this will probably be moved into a disk system API later).
* Added user_memcpy() to the fs_shell.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-08 14:23:35 +00:00
Axel Dörfler a83a20f685 * Made cal.c compile, and fixed warnings.
* Added it to the build, and the image.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23068 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-06 20:40:24 +00:00
Axel Dörfler d3a580d2e0 The fs_shell now also works with devices that don't return a correct
hd_geometry, but do support the BLKGETSIZE64 ioctl (it just crashed 
before).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23064 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-05 18:33:58 +00:00
Axel Dörfler 4afaeabbd8 * bfs_free_cookie() accidently reverted a transaction after having updated
the inode's internal last modified and size copies, causing in inconsistent
  data. This fixes #1643.
* The block being replayed are now dumped to the debug output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23050 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-02 16:38:38 +00:00
Axel Dörfler 653eea311d Added "mail" directory - this fixes Beam not starting up on a plain
Haiku installation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23049 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-02 14:30:52 +00:00
Axel Dörfler fc8ffb64ec Applied a slightly changed patch by cl21: changed how the BListItem layouts
its text contents. This fixes bug #619. Thanks!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23046 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-01 19:51:56 +00:00
Axel Dörfler 4a241f2ac3 Some more extensions to the FreeBSD compatibility layer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23043 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-01 17:34:59 +00:00
Axel Dörfler 5536ea1018 The Marvell Yukon driver needs the SWI task queues as well. The driver is now working, but it
does not yet work reliably here - it encounters a "PCI Express protocol violation", at least
that's what it says. Will look into that later.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23039 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-01 13:18:09 +00:00
Axel Dörfler 589e5418f1 * We need to call if_init() before trying to set the media.
* Accidently excluded the MII bus from being probed in r23019 - in fact, now all
  devices have to be probed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23038 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-01 13:16:34 +00:00
Axel Dörfler 4dc1122b30 The "ints" KDL command now also dumps the handlers associated to a vector.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23037 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-01 12:01:11 +00:00
Axel Dörfler 1f89a3766a * device_delete_child() now works differently from FreeBSD: in FreeBSD you can't just
call this function if you don't know if a device has a direct reference to one of
  its children. Since we want to be able to delete the root without having any knowledge
  about its children, we now detach everything first, and then delete the entries.
  This fixes a possible crashing bug when a preloaded driver (used for network boot)
  tried to acquire its resources again at a later point.
* device_detach() and device_attach() now check if the device has an attach or detach
  method at all.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23036 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-01 11:09:58 +00:00
Axel Dörfler 82edabb115 Implemented device_detach(), and bus_generic_detach() - both are needed by
the updated mii code on destruction.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23032 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-30 18:50:40 +00:00
Axel Dörfler debb1200cc Accidently removed our changes when updating to the FreeBSD 7 version of the driver.
Ingo, this is your chance to remind me of the vendor branch :


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23031 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-30 18:39:56 +00:00