Commit Graph

22681 Commits

Author SHA1 Message Date
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 #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
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
Ingo Weinhold
c21af3b299 Print the missing object.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23574 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 00:11:26 +00:00
Ingo Weinhold
8a90d12e26 * Added add_debugger_command_etc() which is similar to
add_debugger_command(), but additionally takes parameters "usage"
  and "flags".
* Added add_debugger_command_alias() which creates another name for an
  existing command.
* Added print_debugger_command_usage() to print a command's usage.
* invoke_debugger_command() intercepts invocations with "--help" and
  prints the command's usage text, if it is known. If unknown, the
  command will be called normally.
* Made use of the new functions in debug.cpp.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23573 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 23:41:20 +00:00
Jérôme Duval
a75118d464 some cleanup
better error handling in setup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23572 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 23:31:34 +00:00
Ingo Weinhold
1839792524 Change parse_expression() return value from uint32 to uint64.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23571 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 22:55:39 +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
François Revol
1af247a60d Fix gcc4 errors and warnings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23569 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 22:08:33 +00:00
Ingo Weinhold
06f78e9fb7 * Changed the way temporary variables work. They won't be unset before
a command is executed anymore. Instead the least recently used
  temporary variable is overwritten, if there's no free slot for a new
  temporary variable.
* Removed the special handling for the command result variable ("_"). It
  just works like any other temporary variable, now.
* Individual temporary variables can be removed (e.g. using the "unset"
  command).
* Added unset_all_debug_variables() and "unset_all" command to unset
  all persistent and temporary variables.
* Removed remove_all_temporary_debug_variables and renamed
  remove_debug_variable() to unset_debug_variable().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23568 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 21:50:59 +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
Stephan Aßmus
13b76705a0 * forgot to update the blocked window's redrawing
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23562 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 18:41:40 +00:00
Stephan Aßmus
2e3a7b96c0 * finished the initialization paremeter panel and used it in
MainWindow::_Initialize()... setting the name and block size should work,
  though I have not tested this yet due to lack of available partitions.

TODO: Use driver settings API from libroot to build the parameter string
and move the GUI of the InitParamsPanel into the BFS add-on, implement
BPartition::GetInitializationParameterEditor() accordingly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23561 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 18:35:58 +00:00
Stephan Aßmus
b91634cbea * extended the jpeg_error_mgr structure to hold the jmp_buf that we need
in the critical error handler. In the high level function, the jmp_buf is
  now allocated on the stack and placed in the "cinfo->err" structure. This
  should make the mechanism thread-safe. Unfortunately, we don't use the
  original libjpeg anymore as is, but this seems to be frozen code since a
  few years anyways. If you have any better suggestions, please don't
  hesitate to mention them! :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23560 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 15:52:36 +00:00
Stephan Aßmus
dbc936ac13 * it was a really bad idea to invoke exit() on critical errors from an add-on
that only loads bitmaps and is supposed to return a status_t error from
  the Translate() function, especially for people using this in mission
  critical applications.
  The requirements on the error handler that is
  to be installed for the jpeg library are not to return to the calling
  function for critical errors. C++ exceptions seem like the
  natural solution to the problem, but unfortunately, they simply don't
  seem to work, possibly because we are inside an add-on. Ingo had the idea
  to use setjmp() and longjmp() to go directly from the error handler back
  to the top level code and this works. I have implemented this from what
  I understand from reading the opengroup spec, but the compiler currently
  issues a warning. Feel free to fix. The desired effects are achieved though, 
  the translator recovers correctly from broken jpg files now.
  Also, I don't know if the translator should somehow "uninstall" the
  breakpoint. Again, feel free to fix or tell me.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23559 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 13:28:28 +00:00
Stefano Ceccherini
5dda419aeb If spawning a shell in a tab failed, the tab wouldn't be removed by the
cleanup thread, since, not being attached to the window, Window() 
returned NULL. Now CustomTermView::NotifyQuit() accounts for this, and 
sends the message to the first window in the BApplication. Moreover, 
RemoveTab() would always remove the currently selected tab, and not the 
requested one.
Changed a printf() to fprintf(). 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23558 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 11:33:47 +00:00
Stefano Ceccherini
523f71ee2b Creating a new tab in terminal would show an error message (but still
worked). Fixed. Also moved handling of default shell command from 
TermView to Shell, where it belongs. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23557 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 09:35:29 +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
Stefano Ceccherini
ebdedf9bbf disallow importing/exporting big pictures, since the Link* api doesn't allow sending more than 64 kb through it. At least printing via ShowImage doesn't hang the app anymore
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23554 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 08:27:11 +00:00
François Revol
084b710863 relax fpu detection, and wow, it goes up to the boot menu !
(but there are lots of remaining stubs, like mmu)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23553 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 04:28:06 +00:00
François Revol
7ef900d3ef It's working \o/
Now starts doing stuff in the loader when bootstrapping the .prg from ARAnyM.
For now it just dumps the cookies.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23552 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 04:12:06 +00:00
Ingo Weinhold
5c62817c6f Added unary "*" operator for dereferencing addresses to the
debugger expression language. By default it reads a uint32 value.
Another target size (1, 2, 4, or 8 bytes) can be specified in braces
after the "*" (e.g. "*{2}address" for uint16).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23551 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 03:55:19 +00:00
François Revol
267428a36a * \r\n on Bconputs()
* natfeat support code


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23550 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 03:32:40 +00:00
Ingo Weinhold
15f1e19781 * Added support for the "--help" argument to some debugger commands.
* The kernel debugger does now define some temporary variables when
  entered (current thread and team, etc.).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23549 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 01:14:40 +00:00
Karsten Heimrich
13ab80745a small cleanup
password window is now font sensitiv, fixes Ticket #705



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23548 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 00:09:49 +00:00
Karsten Heimrich
c0a4294edd small cleanups
password window is now font sensitiv, can be seen as part of ticket #705



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23547 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 00:07:11 +00:00
Ingo Weinhold
3b4fa1664e * Implemented parse_expression(). The back-end is an expression parser
that is a little more powerful than BeOS'. It features:
  - Persistent and temporary uint64 variables. The former kind is set
    only by the user. The latter (those prefixed "_") can be set
    automatically by commands, thus e.g. making it easier to access
    members of a dumped structure. They are unset when the next command
    is invoked. The special temporary variable "_" is defined as a
    command's return value.
  - Expressions can contain nested command invocations using brackets
    ("[ ... ]").
  - Command lines are parsed by the expression parser, too. They can
    contain command invocations (in brackets) and expressions (in
    parentheses).
* Added debugger commands:
  - expr: Evaluates the given expression and prints the result.
  - unset: Undefines a variable.
  - vars: Prints the values of all defined variables.
* Moved debugger command code into its own source file.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23546 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-16 00:01:20 +00:00
Stephan Aßmus
5d24ef2e15 * disable sorting in the partitions list
* sort the partitions by id (TODO: should be disk offset, but works as 
  intended now)
* expand the partition tree entries by default
* renamed DriveVisitor to ListPopulatorVisitor, moved implementation into
  class definition
* added MountAllVisitor and used it to implement according menu item
* added menu item members to MainWindow, so it keeps the pointers
* added MainWindow::_EnabledDisableMenuItems() which looks for the
  current disk and partition and their properties to en-/disable the items
* moved BDiskDevice member from DiskView to MainWindow, renamed to
  fCurrentDisk
* implemented mounting and unmounting the currently selected partition,
  mounting works, unmounting does not work as in Tracker, but the error
  description is not as helpful, or just as helpful, since Force Unmount
  does not work in Tracker at the moment
* implemented initializing the selected partition, not tested to the end,
  but likely works, so beware! (TODO: finish the parameter window and use it,
  partitions are hardcoded to "BFS Init Test" and 2048 blocksize). The
  process displays a warning at the beginning and another one at the end
  before writing anything to disk, but please do take it seriously... :-)
* store and restore the listview column settings (width of columns mostly)
* more appropriate usage of the BDiskDeviceRoster API
* improved DiskView display a little with frames and more contrast in the
  colors
* implemented FrameResized() to adapt the box layout
* no longer pass disk pointer to BDiskDeviceRoster::VisitEachPartition(),
  since it will overwrite it!
* no longer use BDiskDeviceRoster at all, BPartition::VisitEachDescendant()
  is what we need
* added a WIP InitParamsPanel, does not compile, but is not added to the
  Jamfile yet, it will be a blocking panel like a BAlert and will later
  be refactored into the parameter editor add-on for BFS


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23545 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 23:09:20 +00:00
Ingo Weinhold
498c6565c6 Copying source directories to the image was broken, when building from
the root of the source tree. Added a work-around that should fix the
problem.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23544 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 21:21:02 +00:00
Stefano Ceccherini
21210ba894 The check was right, I just got it wrong. Sending a big message is
supposed to fail. Sorry. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23543 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 21:14:13 +00:00
Stefano Ceccherini
7c1ca8d91b Fixed PortLinkTest build, and also corrected a check.
Looks like attaching 100000 bytes fails. Any idea ?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23542 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 21:06:54 +00:00
Ingo Weinhold
a820102c34 When installing Haiku into a directory, unzipping optional packages
overwrites existing files without prompt, now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23541 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 20:04:40 +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
Stephan Aßmus
86914dfa8e * fix typo in the documentation for GetVolume()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23539 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 18:01:27 +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
François Revol
dba557e4e7 Move trapn and calln as last args, as though they are named they are counted with other args numbers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23537 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 16:31:04 +00:00