Commit Graph

22413 Commits

Author SHA1 Message Date
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
François Revol
e79fe38f8e Added needed toscallWLWWWL().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23536 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 16:18:27 +00:00
François Revol
632082eb7b Use asm macros to call TOS. Missing ones, but existing ones compile.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23535 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 16:12:39 +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
François Revol
c4bcf3f92c * Fixes
* More test code
* it actually runs now, till _start. 
However, calling TOS from C is broken: we use 32 bit param alignment on funcs, but TOS expects 16 bit... need to use asm macros instead of funcs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23531 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 15:02:26 +00:00
François Revol
ea788fff0c Our ld script is actually closer to the x86 one... this should work.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23530 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 15:00:00 +00:00
Stefano Ceccherini
cc5d5e7a14 Reduced the time used for the vmware workaround
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23529 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 13:41:08 +00:00
Stefano Ceccherini
d01f3af185 Menu tracking now ignores mouse movements if they are too fast
(suggested by stippi). The movement threshold will be subject to 
changes, as I only tested on vmware and it's probably too high.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23528 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 13:40:13 +00:00
Stefano Ceccherini
48044dcc41 The custom MenuBar in the menu preflet was mixing resize mode with
flags.. thanks to r23424 I could notice.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23527 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-15 13:39:04 +00:00
François Revol
aa84dea3fd * Comments on how mmu will be set up in the bootloader
* Add aranym native feature helper funcs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23526 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-14 23:14:26 +00:00
François Revol
005ff05292 * checksum should be ok now...
* also added fake FAT descriptors to avoid crashing TOS, but it doesn't boot yet as floppy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23525 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-14 21:59:44 +00:00
François Revol
9b6eca61e0 The correct platform is "atari_m68k".
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23524 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-14 21:55:29 +00:00
François Revol
d93062a0ad * Style cleanup
* warning
* implement --help


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23523 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-14 21:43:09 +00:00
François Revol
20448b543b Put it back as it works again, I can't live without it.
You know, moving stuff out of your way just because they don't work won't fix them...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23522 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-14 21:26:42 +00:00
Ingo Weinhold
07b8a5de22 * Sort the registered commands by name when entering KDL.
* Don't execute a command anymore, if the given prefix is ambiguous.
* Added tab completion for commands.
* Added on-the-fly help while typing a command line. It is triggered
  by pressing tab at a position after the space following the command.
  It is implemented by calling the command with argument "--help", which
  doesn't work yet with most commands, but some already print their
  usage in this case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23521 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-14 15:39:44 +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
Stefano Ceccherini
4653aacfb7 Removed unused files
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23519 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-14 13:56:52 +00:00