Commit Graph

22603 Commits

Author SHA1 Message Date
Ingo Weinhold
4c4b14c3bb The "traced" command can now be passed a filter expression consisting of
boolean operators ("not", "and", "or") and filters matching thread IDs
or contained strings.
I'm still not fully happy with the command. It should be possible to
define a filter and then comfortably scroll through the matching
entries. Currently having to specify an index range of the unfiltered
entries is rather unhandy in combination with filtering.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23658 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-20 00:34:37 +00:00
Ingo Weinhold
c59c68c5e0 Build with RTTI. Needed for soon to come tracing feature (well, we could
also move the thread ID from AbstractTraceEntry to TraceEntry).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23657 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-20 00:19:08 +00:00
Axel Dörfler
1204649234 * When shrinking the stream size after a node had been removed, its
parent node could temporarily get invalid (ie. CheckNode() would 
  fail).
* Since shrinking the stream was done in edge cases only, anyway, we 
  will no longer do that which works around the problem. This fixes
  bug #1716.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23656 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 23:12:11 +00:00
Ingo Weinhold
f7a5d9c583 Changed TraceEntry::Dump() to take a TraceOutput& and removed
AbstractTraceEntry::AddDump(char*, size_t).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23655 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 22:23:32 +00:00
François Revol
ff5d41e762 Add newline at end of file.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23654 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 21:14:03 +00:00
Axel Dörfler
5d43cf2a84 * Added new debugger commands bfs_btree_header and bfs_btree_node that
dump a B+tree header resp. node.
* Use dprintf() when a transaction is too large instead of a panic; even
  though the file system has to revert the transaction, it's not lethal,
  and it does not corrupt your disk.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23653 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 20:58:47 +00:00
Axel Dörfler
d62f743549 * Inode::_FreeStreamArray() kept one block it should have freed when the
new size fell on a block boundary.
* Removed newline from Inode::Remove() tracing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23652 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 20:55:27 +00:00
François Revol
d8fe1829e2 Add *rint*() from glibc 2.3.5.
This make app_server link \o/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23651 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 20:06:08 +00:00
Jérôme Duval
6b46058e04 needed for long double support
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23650 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 19:34:03 +00:00
Jérôme Duval
9ce320179c __m68k_get_time_base instead of __m68k_time_base
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 19:27:35 +00:00
Jérôme Duval
850456ed43 added missing m68k bits for math functions
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23648 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 19:26:58 +00:00
Ingo Weinhold
da788f64d4 When we're already late for scheduling a message for a message runner
with an unlimited count, we just drop it and schedule the next message
in the future. This way applications won't get swamped with pulse
messages after a longer KDL session.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23647 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 19:24:23 +00:00
Jérôme Duval
ec1315c2ea added arch_commpage.h for the m68k arch (copied on x86)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 18:16:45 +00:00
Ingo Weinhold
ab23dfa7f7 Moved tracing macro definitions into separate tracing_config.h header.
So now there's a central place to enable tracing in general and for
individual components.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23645 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 17:24:34 +00:00
Axel Dörfler
5f7a62cfdd * Added debugger command "transaction" and added a new "-t" option to
"block_cache" to dump info about transactions.
* Improved tracing.
* Now uses the new add_debugger_command_etc().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23644 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 17:01:26 +00:00
Axel Dörfler
5d8d6d9a0a Improved tracing output a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23643 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 16:36:53 +00:00
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
Jérôme Duval
22d7fdd958 fix typo
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23641 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 16:34:29 +00:00
Ingo Weinhold
2477bce504 Added support for userland symbol lookup in "sc" and "call". Having
used it for an hour or so, I really wonder how we could live without it.
:-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23640 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 16:33:03 +00:00
Jérôme Duval
741e605cee updated copyright header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23639 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 15:51:17 +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
Jérôme Duval
907f26dbb5 added a arch_commpage.h header for ppc, dunno if it needs to be changed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 15:43:45 +00:00
Jérôme Duval
82bea1a47b fixed ppc build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 15:42:19 +00:00
Jérôme Duval
14334b29f1 added scripting support for tab selection in BTabView
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23635 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 15:38:28 +00:00
Michael Lotz
7aa661d403 Rework of the usb_serial driver:
* Refactored everything to C++ with the different devices as subclasses
* Added proper ACM detection with parsing of the ACM descriptors
* Added device transfer error handling and fixed some concurency issues
* Big cleanup to conform to our style guide

This should make at least ACM stable to use. Commiting this over my K850i with
ACM compliant USB modem and UMTS data connection. Note that support for all
other device classes (Prolific, FTDI and KLSI) is untested but should work the
same as before. Note also that since we currently lack a TTY module this will
only build/work for R5 or Dano with the proper TTY headers.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23634 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 15:24:23 +00:00
Stephan Aßmus
a39fca4de3 * rewrote the DiskView display, it is now based on BViews and the layout
management
* added labels for partitions in the DiskView
* added selection via clicking a partition in the DiskView
* indicated menu items for unimplemented features
* added help message for freshly opened DriveSetup
* added TODO file with some of my ideas for the next steps
* refactored adoption of current disk/partition, the disk is not
  unnecessarily deleted and recreated anymore
* gone is the colorfulness, the partitions are colored in greys according
  to their level in the hierarchy


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23633 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 15:18:08 +00:00
Jérôme Duval
8164606d77 fix a warning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23632 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 14:26:59 +00:00
Jérôme Duval
e615cc513a minor cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23631 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 13:56:42 +00:00
Stephan Aßmus
d4000a765f * fix the new layout version of the BView constructor to call the BHandler
constructor with the supplied name


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23630 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 11:59:26 +00:00
Stephan Aßmus
5300362be6 * fix the build of haiku_registrar (the registrar for the test environment)
since the changes to where the mime database write support lives


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23629 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 11:42:43 +00:00
Ingo Weinhold
1111ffc50b An outermost stack frame (having a NULL previous frame) was
incorrectly recognized as iframe. Fixes the read fault when doing "sc"
for a kernel thread.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23628 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 10:56:40 +00:00
Ingo Weinhold
42a5ea091a Oops, "f" is a hex digit, too. Hex numbers with "f" in them work again
in the kernel debugger.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23627 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 10:35:55 +00:00
François Revol
d296c4e1f9 Fixed swapping functions.
BFS now validates the superblock and the boot menu now lists the image if I force checking for kernel_x86. \o/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23626 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 02:11:46 +00:00
Ingo Weinhold
46cb5cfdd3 When a main thread (i.e. a team) dies, we have to send the SIGCHLD to
its parent while still holding the team spinlock. We were racing with
wait_for_child(), since after the child invoked
team_set_job_control_state(), the parent thread could continue as soon
as the team spinlock was released. The SIGCHLD could thus arrive way
later and interrupt another syscall. This could be reproduced with the
compile_bench.sh script from time to time: When interrupted while
waiting for the next subprocess, the gcc frontend would delete a still
needed temporary file.

The whole thing is actually only a problem, because we don't support
automatic syscall restarts yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23625 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 23:39:13 +00:00
Ingo Weinhold
c964a2f228 Use TraceOutput.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23624 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 22:18:42 +00:00
Ingo Weinhold
adf78fdae2 TraceBuffer simplifies things a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23623 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 22:17:15 +00:00
Ingo Weinhold
f1047a1c3e Introduced helper class TraceOutput that represents an output buffer
and added AbstractTraceEntry::AddDump(TraceOutput&) method.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23622 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 22:15:30 +00:00
Ingo Weinhold
2f1836da5c Kernel tracing for signals.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23621 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 21:32:38 +00:00
Ingo Weinhold
8d3d1be1ca Kernel tracing of syscalls uses more information about the syscall
parameters, now. We print 64 bit values correctly, and also fetch
strings from userland and print them. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23620 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 19:33:09 +00:00
Ingo Weinhold
8bd6d45df3 * If passed a userland pointer alloc_tracing_buffer_{memcpy,strcpy}()
checks it now. 
* Check for NULL pointer in alloc_tracing_buffer_strcpy(), and also
  determine the length of userland strings before allocating the buffer
  (using user_strlcpy()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23619 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 19:29:43 +00:00
Ingo Weinhold
19101ba0f4 Generate a kernel array kSyscallParametersInfos containing information
about syscall parameters. Particularly interesting is a type_code field
for each parameter. The mechanism isn't very accurate, but we can
classify everything in string, pointer, and integer types.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23618 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 19:25:28 +00:00
Ingo Weinhold
aba70a8ca2 Adjusted the fake goto, so that passing a NULL target buffer together
with a 0 size to user_strlcpy() is OK. This way one can use it as a safe
strnlen().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23617 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 19:20:54 +00:00
François Revol
c4c5cd4d4a use xhdierror() to map xhdi errors.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23616 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 19:10:32 +00:00
François Revol
3bf72d1955 Fixed XHDI, call to XHReadWrite() was commented out... now it can read :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23615 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 19:08:28 +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
Jérôme Duval
c944deeb6b fixed warnings
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23612 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 18:02:54 +00:00
Jérôme Duval
bbaaf4b7c3 gcc4 requires a cast, so we prepend (void *) to cast every syscall function
fixed syscall.cpp inclusions due to renaming


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23611 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 17:39:43 +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
Ingo Weinhold
c3b7f3b979 We weren't correctly clearing the THREAD_FLAGS_64_BIT_SYSCALL_RETURN
flag -- in fact we were setting it -- so after the first syscall with 64
bit return value we were always taking the slow kernel exit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23609 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 15:49:21 +00:00