Commit Graph

22469 Commits

Author SHA1 Message Date
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
Ingo Weinhold
a7e979cabb Print the correct usage when too many parameters were given.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23608 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 15:37:51 +00:00
Ingo Weinhold
74652349dd * sEntries only counts the "normal" (i.e. non-buffer) entries, now.
* "traced" command:
  - Was printing one more entry than asked to.
  - Fixed broken index handling. They were starting at 0, but the last
    one was sEntries nevertheless. We consistently let them start at 1,
    now. 0 can be passed as special index, causing the last entries to
    be printed.
  - Added options "backward"/"forward" which will print the entries
    preceding respectively succeeding the ones printed on the previous
    invocation. The command is continuable in this case, i.e. simply
    pressing RET afterwards will reinvoke the command, allowing for
    comfortable scrolling through a long list of entries.
  - Added detailed usage message.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23607 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 15:32:02 +00:00
Stefano Ceccherini
8afaa47365 Fixed warning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23606 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 12:09:23 +00:00
Stefano Ceccherini
75ee0a2911 Respect the maximum bytes set by SetMaxBytes() in Insert() and on
keydown. Fixed SetMaxBytes() so that it respect multibyte characters
(it removes the whole character in case it doesn't fit).
This can be seen in BColorControls, where you can't write numbers with 
more than 3 characters anymore.  


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23605 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 12:01:31 +00:00
Stefano Ceccherini
2fa152e4f0 Renamed more methods, fixed a warning
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23604 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 10:52:20 +00:00
Stefano Ceccherini
e97cd7f18b Renamed some methods so that it's clearer what they do.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23603 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 10:34:21 +00:00
Stefano Ceccherini
1490792706 Cleaned up a bit the code. Use GetPreferredSize() instead of
SetTermSize() to get the size of the view.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23602 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 10:11:03 +00:00
Stefano Ceccherini
0ccf70c877 Changing the font incremented the window size of 1 every time. Fixed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23601 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 08:20:32 +00:00
Ingo Weinhold
548dcc600e * syscalls.c -> syscalls.cpp
* With post syscall debugging enabled, the x86 syscall handling didn't
  remove all parameters from the stack after calling the respective user
  debugger hook. Should have been harmless though, since the following
  code didn't rely on the stack being in order.
* Added syscall pre/post (kernel) tracing functions
  trace_{pre,post}_syscall(). They are generic, but need to be invoked
  by the architecture specific syscall code. Currently only done for
  x86.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23600 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 02:13:27 +00:00
Ingo Weinhold
21c92a08d4 * Don't invoke the TraceEntry destructor for simple buffer entries,
since that's seriously unhealthy.
* Added TODO that uninitialized entries must not be discarded.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23599 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 02:04:04 +00:00
François Revol
b516effeaa Enumerating drives through XHDI seems to work, at least it seems coherent.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23598 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 01:50:36 +00:00
Ingo Weinhold
21e73322d8 Also trace set_job_control_entry() and wait_for_child().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23597 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-18 00:01:32 +00:00
Ingo Weinhold
bd0689e668 Added usage message to "cvar" and "cvars" debugger commands and define
temporary variables.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23596 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 23:22:29 +00:00
Ingo Weinhold
5aee691ed8 The "sem" and "port" debugger commands set some temporary variables,
now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23595 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 23:07:59 +00:00
Salvatore Benedetto
acf9124f1b * Added definition for the hash related methods (not implemented)
* Continue working in the _FinishTransfer thread
* added next_done_descriptor in ohci_[general|isochronous]_td structure in order to handle
collisions.
* added next_logical_descriptor to ohci_isochronous_td structure



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23594 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 22:25:47 +00:00
François Revol
588b2cd4bf * Fix natfeat debugprintf, it actually works now.
* XHDI fixes, unfinished.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23593 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 22:22:29 +00:00
François Revol
d4d032389d * Add natfeat debugprintf support (dumps to the emu's stdout).
* Add XHDI disk support, unfinished.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23592 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 21:37:02 +00:00
Stefano Ceccherini
7014c8a379 Removed support for "Full font", which wasn't used anyway. Since
our Terminal only works correctly with fixed width fonts, now the font 
menu filters out variable width ones. For some reason, though, Konatu 
Tohaba isn't recognized as fixed. Various other changes. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23591 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 21:36:06 +00:00
Jérôme Duval
816fc92124 fixed GetVolume()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23590 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 19:44:39 +00:00
Salvatore Benedetto
4cfc1fee3e * Added hash function and related data in order to find the virtual address
of the descriptor from its physical address returned by the controller.

NOTE: As stated in the commented code, when the controller has finished processing
some descriptors, it returns the first element physical address of an heterogeneous list
(general + isochronous) and there is not way to tell the descriptor type.
This solution, which implementes two hash tables (one for generic descriptors and
one for isochronous) is the one adopted from *BSD.
If somebody has better idea, please let me know. :)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23589 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 18:02:26 +00:00
Ingo Weinhold
19b468ea24 * Cursor up/down stop before empty (i.e. unused) history lines, now.
* Added support for page up/down (works like in bash).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23588 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 15:29:27 +00:00
Ingo Weinhold
20fb39b662 Translate PAGE UP and PAGE DOWN keys to respective escape sequences.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23587 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 15:27:40 +00:00
Ingo Weinhold
ce637fda24 Added usage (respectively more detailed usage) messages for "sem",
"sems", "port", and "ports" debugger commands.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23586 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 14:40:07 +00:00
Ingo Weinhold
224aee3ffc sem.c -> sem.cpp, port.c -> port.cpp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23585 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 14:04:06 +00:00
Ingo Weinhold
e6a8dfa805 The usage string directly printed by print_debugger_command() and
invoke_debugger_command() is now automatically preceded by
"usage: <command name>", so the string passed to
add_debugger_command_etc() shouldn't contain it anymore. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23584 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 13:58:17 +00:00
Stephan Aßmus
dccabf3cc9 * mark the 2048 block size menu item as default
* don't access invalid memory at the end of Go()


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23583 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 12:03:11 +00:00
François Revol
7d59553ec8 * As we use asm macros we don't need the asm stubs now.
* Put cookies and error stuff to toscalls.c.
* dump all cookies instead of fixed list.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23582 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 09:00:27 +00:00
François Revol
b70fb738a6 clip cursor position just in case.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23581 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 08:46:46 +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 
  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
Ingo Weinhold
72fa2c51eb Added tracing for fork() and exec().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23577 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 01:59:17 +00:00
Ingo Weinhold
0b60583fec Added convenience functions alloc_tracing_buffer_{memcpy,strcpy}().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23576 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 01:58:08 +00:00
Ingo Weinhold
e613499224 Gracefully ignore NULL pointers passed to block_cache::Free(). Fixes
panic when sync'ing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23575 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 00:14:09 +00:00