Commit Graph
100 Commits
Author SHA1 Message Date
Ingo Weinhold 03e8d9bdf3 * Fixed attribute name mapping in both directions. One direction was appending
a '\n', the other cutting off the last char.
* *getxattr() is supposed to return the attribute size when a 0 sized buffer
  is supplied. Otherwise, if the buffer is too short, it needs to fail with
  ERANGE.
* *listxattr(): The buffer pointer wasn't adjusted after each iteration.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32682 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 01:07:46 +00:00
Ingo Weinhold 2fb48fb46b Added missing ENOATTR text.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32681 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-26 01:01:43 +00:00
Ingo Weinhold b02c147c05 Implemented seekdir() and telldir(). They were declared in <dirent.h> already.
So either +alphabranch or remove the declarations from <dirent.h>.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32679 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-25 22:16:40 +00:00
Ingo Weinhold fb7c02c215 Under Linux use BLKGETSIZE64 to get the device size, now, and only when that
fails fall back to HDIO_GETGEO. This hopefully fixes #3122, as I suspect
HDIO_GETGEO returned an incorrect size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32674 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-25 20:31:21 +00:00
Ingo Weinhold f1f6eacd46 On Linux, FreeBSD, and friends print the partition map, if we could parse it,
but failed to get the specified partition.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32662 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-24 21:38:44 +00:00
Ingo Weinhold 8bc24c13ab * Moved termcap.h to headers/libs/termcap/, where it belongs.
* Removed the headers/gnu from the default headers (the Jamfiles needing it
  use it explicitly, now) and moved it under headers/compatibility/.
* Added libgnu.so to the image. Still untested, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32481 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-17 21:13:51 +00:00
Ingo Weinhold 9996b69b8b * Added new library libgnu.so, which will contain GNU compatibility interfaces
(analoguously to libbsd.so).
* Added an implementation of the GNU/Linux xattr interface. xattrs are mapped
  to Haiku attributes with type B_XATTR_TYPE. Haiku attributes are mapped to
  xattrs by moving them into the "user.haiku." namespace and appending the
  type to their name. Complete, but utterly untested yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-15 21:29:02 +00:00
Ingo Weinhold c527fef824 Added type constant B_XATTR_TYPE. This is not a data type, but rather a marker
that can be used for node attributes, when those originate from Linux xattrs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32426 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-15 21:22:25 +00:00
Ingo Weinhold 7c44760049 Added ENOATTR.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32425 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-15 21:20:05 +00:00
Ingo Weinhold e8cbd8db5d Use the handy B_CLOSE_ON_ESCAPE flag instead of fishing for the escape key in
DispatchMessage().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32419 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-15 17:02:21 +00:00
Ingo Weinhold 4e4ff20294 common_poll():
* Always select POLLNVAL. We wouldn't get notified, if the FD was closed while
  waiting.
* Skip negative FDs (as per POSIX standard).
* When encountering an invalid FD, we must not wait. Previously we did that as
  long as any FD was valid.
* The return count must consider all FDs with non-null revents, including
  invalid ones (revents is POLLNVAL then).

common_poll()/common_wait_for_objects():
* Don't bail out early, when no FDs/objects have been selected. We always want
  to wait.

_user_poll()/_user_wait_for_objects():
* Copy the array back to userland even if common_*() returned an error. The
  functions do now always fill in the resulting events.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32418 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-15 16:42:18 +00:00
Ingo Weinhold 57dc0e2a53 Changed the FD selection/deselection handling a bit:
* B_EVENT_INVALID is no longer passed to the FD's select()/deselect() hooks.
* Now we always attach the select info to the I/O context, even if no event has
  been selected. The reasoning is that B_EVENT_INVALID is always automatically
  selected and handled by the VFS, so we need the handle to notify on close().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32417 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-15 16:28:15 +00:00
Ingo Weinhold 80abc2712f Changed the Ctrl-L behavior: The current screen is now scrolled up completely
instead of actually clearing it, so that it is still in the history.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-14 21:13:13 +00:00
Ingo Weinhold 48bbdc1c17 Fixed broken indentation (greetings to Stefano :-)).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32396 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-14 20:57:14 +00:00
Ingo Weinhold 7cd672ff50 Fixed some gcc 4 warnings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-14 20:50:59 +00:00
Ingo Weinhold f2b1ae9a76 Added escape key support in the find window (pirated from StyledEdit :-)).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-14 20:50:03 +00:00
Ingo Weinhold 6fc8f3cdc9 Made the "Not Found." alerts closable via escape key. Not sure, whether we need
those alerts at all, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32389 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-14 19:31:31 +00:00
Ingo Weinhold 4aa87c0410 Adjusted variable names for the "Find {Previous,Next}" menu items.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32387 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-14 19:22:01 +00:00
Ingo Weinhold d76009fdce * Renamed the "Find {Forward,Backward}" menu entries to "Find {Previous/Next}"
and assigned the usual shortcut keys (Cmd-[Shift-]G).
* Changed the behavior so that "Find Next" continues looking in the search
  direction. I'm somewhat undecided whether this is confusing, since the default
  (and usually desired) search direction is backward.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32386 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-14 19:17:20 +00:00
Ingo Weinhold ffdaa11d3c cdda_read_dir(): Removed user buffer handling. We're only getting kernel
buffers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32385 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-14 18:38:05 +00:00
Ingo Weinhold 7435db9ff0 * _user_read_dir(): Allocate a temporary heap buffer passed into the kernel
instead of using the user buffer. This frees the VFS and FS implementations
  from handling user buffers.
* Adjusted fix_dirent() accordingly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32384 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-14 18:31:35 +00:00
Ingo Weinhold 0d4487f933 The dir has been renamed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-14 15:45:27 +00:00
Ingo Weinhold 996aa11b17 Spotted by "Blub": After unmounting we didn't delete the Volume object.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32287 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-12 17:52:44 +00:00
Ingo Weinhold 6905c8a6ee Removed superfluous check.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32143 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-05 18:41:21 +00:00
Ingo Weinhold 102e196b93 Reenabled Firefox gcc 4 package.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-05 14:28:58 +00:00
Ingo Weinhold a826679822 * Only build the gcc 2 compatibility symbols with gcc 2.
* Added gcc 4 _ReservedView11() compatibility symbol.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-05 14:26:47 +00:00
Ingo Weinhold af31cb589c Added comment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-05 02:31:00 +00:00
Ingo Weinhold 6a0a77e2fa Patch by Bryce Groff with small change by myself:
* Don't leak the driver settings handle.
* No need to get the "active" parameter in ValidateCreateChild() -- either
  way is fine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32098 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 19:11:14 +00:00
Ingo Weinhold 5c5d43953c Patch by Bryce Groff: don't leak the driver settings handle.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32097 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 19:06:21 +00:00
Ingo Weinhold fe05e6c359 Patch by Bryce Groff: Allow the disk system add-ons to return a NULL parameter
editor, when they don't have any additional parameters to edit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 19:05:38 +00:00
Ingo Weinhold 4199b36807 Patch by Bryce Groff: Correctly notify the user when committing the
modifications for deleting a partition failed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32095 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 19:02:51 +00:00
Ingo Weinhold 1d099cad03 Patch by Bryce Groff: Allow passing an ID of any partition contained in the
disk device to the locking functions, not only the ID of the disk device
itself.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32094 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 19:01:20 +00:00
Ingo Weinhold 5e243bb30e Patch by Bryce Groff: Style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 18:58:21 +00:00
Ingo Weinhold ea2abd110b * Renamed the ROUNDOWN macro to ROUNDDOWN. Also changed the implementation of
ROUNDUP to use '*' and '/' -- the compiler will optimize that for powers of
  two anyway and this implementation works for other numbers as well.
* The thread::fault_handler use in C[++] code was broken with gcc 4. At least
  when other functions were invoked. Trying to trick the compiler wasn't a
  particularly good idea anyway, since the next compiler version could break
  the trick again. So the general policy is to use the fault handlers only in
  assembly code where we have full control. Changed that for x86 (save for the
  vm86 mode, which has a similar mechanism), but not for the other
  architectures.
* Introduced fault_handler, fault_handler_stack_pointer, and fault_jump_buffer
  fields in the cpu_ent structure, which must be used instead of
  thread::fault_handler in the kernel debugger. Consequently user_memcpy() must
  not be used in the kernel debugger either. Introduced a debug_memcpy()
  instead.
* Introduced debug_call_with_fault_handler() function which calls a function
  in a setjmp() and fault handler context. The architecture specific backend
  arch_debug_call_with_fault_handler() has only been implemented for x86 yet.
* Introduced debug_is_kernel_memory_accessible() for use in the kernel
  debugger. It determines whether a range of memory can be accessed in the
  way specified. The architecture specific back end
  arch_vm_translation_map_is_kernel_page_accessible() has only been implemented
  for x86 yet.
* Added arch_debug_unset_current_thread() (only implemented for x86) to unset
  the current thread pointer in the kernel debugger. When entering the kernel
  debugger we do some basic sanity checks of the currently set thread structure
  and unset it, if they fail. This allows certain commands (most importantly
  the stack trace command) to avoid accessing the thread structure.
* x86: When handling a double fault, we do now install a special handler for
  page faults. This allows us to gracefully catch faulting commands, even if
  e.g. the thread structure is toast.

We are now in much better shape to deal with double faults. Hopefully avoiding
the triple faults that some people have been experiencing on their hardware
and ideally even allowing to use the kernel debugger normally.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32073 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 12:39:56 +00:00
Ingo Weinhold 16357dea6b Don't lock when the debugger is running.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32072 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 11:54:25 +00:00
Ingo Weinhold 885b7b4a85 Removed unsupported architectures.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32071 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-03 11:32:08 +00:00
Ingo Weinhold 671a2442d9 More work towards making our double fault handler less triple fault prone:
* SMP:
  - Added smp_send_broadcast_ici_interrupts_disabled(), which is basically
    equivalent to smp_send_broadcast_ici(), but is only called with interrupts
    disabled and gets the CPU index, so it doesn't have to use
    smp_get_current_cpu() (which dereferences the current thread).
  - Added cpu index parameter to smp_intercpu_int_handler().
* x86:
  - arch_int.c -> arch_int.cpp
  - Set up an IDT per CPU. We were using a single IDT for all CPUs, but that
    can't work, since we need different tasks for the double fault interrupt
    vector.
  - Set the per CPU double fault task gates correctly.
  - Renamed set_intr_gate() to set_interrupt_gate and set_system_gate() to
    set_trap_gate() and documented them a bit.
  - Renamed double_fault_exception() x86_double_fault_exception() and fixed
    it not to use smp_get_current_cpu(). Instead we have the new
    x86_double_fault_get_cpu() that deducts the CPU index from the used stack.
  - Fixed the double_fault interrupt handler: It no longer calls int_bottom to
    avoid accessing the current thread.
* debug.cpp:
  - Introduced explicit debug_double_fault() to enter the kernel debugger from
    a double fault handler.
  - Avoid using smp_get_current_cpu().
  - Don't use kprintf() before sDebuggerOnCPU is set. Otherwise
    acquire_spinlock() is invoked by arch_debug_serial_puts().

Things look a bit better when the current thread pointer is broken -- we run
into kernel_debugger_loop() and successfully print the "Welcome to KDL"
message -- but we still dereference the thread pointer afterwards, so that we
don't get a usable kernel debugger yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32050 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-01 01:53:54 +00:00
Ingo Weinhold 1af695be01 Automatic whitespace cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32044 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-08-01 01:18:39 +00:00
Ingo Weinhold cc77aba101 * Allocate a separate double fault stack for each CPU.
* Added x86_double_fault_get_cpu(), a save way to get the CPU index when in
  the double fault handler. smp_get_current_cpu() requires at least a somewhat
  intact thread structure, so we rather want to avoid it when handling a double
  fault. There are a lot more of those dependencies in the KDL entry code.
  Working on it...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32028 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 16:14:18 +00:00
Ingo Weinhold 7f1bf82c6e We need full update on resize.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32007 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-31 01:21:49 +00:00
Ingo Weinhold ce50cdc3ed When recovering a tracing buffer from a previous session we do now check the
tracing buffer entry list at least. Eventually we should check the entries
themselves, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31999 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 22:00:16 +00:00
Ingo Weinhold 3fccf0679f C++ified the code. Introduced new trace entry flags, which will eventually be
used to mark entries after recovering a tracing log from a previous session.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31991 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 19:50:50 +00:00
Ingo Weinhold 57a25014b0 Statically initialize sTracingMetaData to sDummyTracingMetaData. This causes
tracing use before real initialization to be ignored gracefully again. Fixes
#4158.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31973 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 15:12:21 +00:00
Ingo Weinhold 07745f2a0b Added support for new notify_io_request() function.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31970 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 14:12:47 +00:00
Ingo Weinhold 567c7b1055 Added kernel_debugger command for entering the kernel debugger.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31966 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 12:36:34 +00:00
Ingo Weinhold 213d2d8f9d Added syscall _kern_kernel_debugger() to enter the kernel debugger.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31965 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 12:35:42 +00:00
Ingo Weinhold e9ff085cfe Added rendering of the time line in the header view. Still has some glitches.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31961 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 02:54:40 +00:00
Ingo Weinhold d4dd240b99 Moved DrawHeaderBackground() implementation from DefaultHeaderRenderer to
base class HeaderRenderer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31960 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 02:50:13 +00:00
Ingo Weinhold cdcacd7f9f * Added missing ToReferenceable().
* _SetTo(const BVariant&): Acquire a reference for the wrong object.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31959 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-30 02:34:41 +00:00
Ingo Weinhold d829579dc0 mmlr + bonefish:
Moved the static variables for managing the tracing buffer into a separate
area. The area is mapped at one of a few possible physical addresses and can
be found again when rebooting. This allows us to resurrect the tracing buffer
from the previous session, which could help tremendously when tracking certain
bugs (like triple faults). There's very little checking done yet, so it is
probably not as robust as we would wish it to be.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31942 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 21:34:51 +00:00
Ingo Weinhold d3b44ccb14 Added explicit physical address parameter to vm_create_anonymous_area() and
create_area_etc(). 0 for the default behavior.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31941 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 21:30:35 +00:00
Ingo Weinhold 069b477dd7 * Introduced CREATE_AREA_DONT_CLEAR create_area_etc() flag, which allows the
call to fetch non-clear pages.
* B_PHYSICAL_BASE_ADDRESS does now imply B_CONTIGUOUS.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31932 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 18:57:21 +00:00
Ingo Weinhold 00e22bae44 Use B_SYSTEM_TEAM instead of the hard-coded 1.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 18:53:38 +00:00
Ingo Weinhold 2ea893b2a0 Patch by Bryce Groff: Style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31907 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 13:15:12 +00:00
Ingo Weinhold 53ef70a0df Patch by Bryce Groff: Fixed return values of the identify() hook.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31906 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 13:12:48 +00:00
Ingo Weinhold 265aebfa26 Fixed build after BOpenHashTable change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31905 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 13:10:04 +00:00
Ingo Weinhold e558530ebb HeaderListener: Replaced the generic hook by more detailed ones.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31884 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 01:01:20 +00:00
Ingo Weinhold c654cca5b4 Use the new header view. Not quite fitting yet.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31879 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 00:13:48 +00:00
Ingo Weinhold c97796c267 Added beginnings of a generic header view.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31878 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 00:12:42 +00:00
Ingo Weinhold aaa7c62f4d Added -Werror.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31877 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-29 00:11:16 +00:00
Ingo Weinhold d4d63490af * Moved ThreadInfo from ModelLoader to Model. And renamed it to
ThreadSchedulingState. Also moved the management of the thread scheduling
  states into a new model class SchedulingState, which is now used by
  ModelLoader.
* Added scheduling state snapshots to Model. The ModelLoader adds a complete
  snapshot every 1024 events, so that seeking to scheduling state at a time
  can be done quickly.
* [Featuring stippi] Added actual functionality to the scheduling page. It
  shows the scheduling activity of all threads and one can zoom in and out.
  Looks somewhat ugly and is work in progress.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31856 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-28 18:57:57 +00:00
Ingo Weinhold 86e89f1207 Added BDebugEventInputStream::Seek() to seek in the stream. Works for data
buffer based stream only ATM.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31855 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-28 18:51:38 +00:00
Ingo Weinhold 64ccb6b58a Synced the different definitions of BUFSIZ with the internal one. What a mess...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31776 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-26 15:28:33 +00:00
Ingo Weinhold c31af1b060 Turned the view into a tree view. Still only the top level is shown, though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31746 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-25 00:22:41 +00:00
Ingo Weinhold 20e4297b61 Added TreeTablePath::RemoveLastComponent().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31745 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-25 00:21:14 +00:00
Ingo Weinhold d8c41ef38f Added support for containing BReferenceables of arbitrary actual type.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31744 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-25 00:20:53 +00:00
Ingo Weinhold 6feb776265 Alias Referenceable as BReferenceable.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31743 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-25 00:20:06 +00:00
Ingo Weinhold 2bf55b39a5 * Made FunctionID abstract. There are now two implementing subclasses,
SourceFunctionID (where we know the souce location of the function) and
  ImageFunctionID (where we don't know the source location). Made the
  classes archivable.
* Added support to find functions by ID.
* Improved user breakpoint handling. We can now "install" a breakpoint before we
  even know the function instances in which to install it. Whenever image debug
  information become available, breakpoints are installed in the concerned
  function instances of the respective image.
* Always trigger loading image debug info as soon as we become aware of an
  image.
* Implemented a settings management mechanism. ATM only the breakpoint
  locations for debugged teams are persisted. This seriously improves the
  debugging fun, though. :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31728 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-24 02:35:30 +00:00
Ingo Weinhold 2d350c1010 Utility functionality for archiving/unarchiving.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31726 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-24 02:21:06 +00:00
Ingo Weinhold a5e1e7ceba Refactoring: Moved TeamDebugModel functionality into Team and got rid of the
former.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31705 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-22 19:20:06 +00:00
Ingo Weinhold a8d54837a8 Patch by Bryce Groff: Use the same name for BFS as <DiskDeviceTypes.h> does.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-22 14:59:27 +00:00
Ingo Weinhold c1dd2f540d Patch by Jens Arm: Fixed swapped arguments in _kern_create_[sym]link()
invocations.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-22 13:50:28 +00:00
Ingo Weinhold 0e8b72b130 * Fixed spurious IP and breakpoint markers in disassembled code.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31686 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-22 01:59:52 +00:00
Ingo Weinhold 25598171b1 GetStatementAtAddress(): Terminate, if we couldn't get the statement from the
disassembled code of the function.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31685 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-22 01:53:59 +00:00
Ingo Weinhold ae8f22407a GetStatement(): 0 is a valid source location line, so rather init to -1.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31684 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-22 01:52:21 +00:00
Ingo Weinhold e78744554e Domain::_LocateDirectory(): We first want to check whether the directory exists
before trying to map its parent. This is what _LocateEntry() already does, so
things can be simplified. Should fix problems with finding local source files
for good. Or so I hope. :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-22 01:10:45 +00:00
Ingo Weinhold 0b11ecb18c * Always include the public arch_debugger.h headers. The structures defined
there are prefixed with the respective architecture name. Useful for remote
  debugging a different architecture.
* <x86/arch_debugger.h>: Introduced a structure for the FPU state, so that it
  isn't left to the debugger.
* Removed the _kern_get_thread_cpu_state() syscall. Was originally intended for
  bdb compatiblity, but isn't really needed.
* Kernel x86 arch_get_debug_cpu_state(): The use of fnsave was broken, since
  it reinits the FPU after saving the state. This resulted in weird results
  when debugging functions using the FPU. We now use fxsave, if available.
  Otherwise fnsave + frstor should be used -- not fully implemented yet.
  Same for arch_set_debug_cpu_state().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31682 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-21 22:18:39 +00:00
Ingo Weinhold 8536312038 * ExpressionEvaluationContext::GetFrameBaseAddress(): Fixed incorrect error
return values (bool vs. status_t).
* _FindLocationExpression(): The base address was completely ignored, thus
  if one was needed, the correct location expression wouldn't be found.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31675 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-21 16:15:39 +00:00
Ingo Weinhold c90f9b9ef3 Correctly recognize the "call r/m32" opcode. There are three opcode bits in the
second byte, which we didn't check, thus incorrectly identifying some other
instructions as calls.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31674 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-21 15:10:58 +00:00
Ingo Weinhold b1ce728479 * Added some debug output for stepping.
* Fixed incorrect "step over" handling after hitting the temporary breakpoint.
  Could cause stepping into functions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31673 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-21 15:08:55 +00:00
Ingo Weinhold 67d0b0790a Added TODO regarding issues with recursive functions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31665 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-21 01:50:01 +00:00
Ingo Weinhold b1a835d13b Domain::_LocateDirectory(): Fixed incorrect check. If the directory's name
doesn't match, we don't locate it implicitly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31664 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-21 01:49:17 +00:00
Ingo Weinhold 6b56c0d739 _CreateCompoundType(): Insert the type into the hash table before resolving data
members. Otherwise we could run into infinite recursion.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31663 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-21 00:43:42 +00:00
Ingo Weinhold 1746066cde * Made _Allocate() static.
* Moved the private inline methods up in the source file, so they can actually
  be inlined.
* UnlockBuffer(): Removed superfluous "if". Maybe the one who wrote it can have
  a look and check whether something else was intended originally.
* _MakeWritable() (both versions): Removed the superfluous ref count increment
  and the matching decrements.
* _Resize(): Fixed ref count ASSERT. It would always be triggered when called
  from UnlockBuffer(), since the ref count is -1 in that case.
* Clarified some comments.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31662 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-21 00:04:46 +00:00
Ingo Weinhold 520cf2669f HaikuInstall rule: Allow optional list of target names.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31661 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-20 23:03:28 +00:00
Ingo Weinhold 7f96148cac Patch by Bryce Groff with changes by myself:
* Added missing name parameter to the partitioning system module child creation
  and child creation validation hooks. Pass the name to them.
* Added BPartitionParameterEditor interface, which is/will be used for editing
  disk system specific parameters.
* Implemented partition parameter editors for BFS initialization and Intel
  partition map child creation.
* Fixed the incorrect supported child partition type iteration in the Intel
  partition map add-on. It does now return actual types.
* Handle the "active" flag parameter in the Intel partitioning system module.
* DriveSetup:
  - Replaced the "Create" submenu by a simple menu item. The type can now by
    chosen in the dialog.
  - Make use of initialization and child creation parameter editors. Some
    non-generic code has been moved to the respective editor implementations
    (BFS, intel partitioning system).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31658 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-20 20:29:16 +00:00
Ingo Weinhold 8fad39df43 Also get the local variables for a stack frame. Apparently gcc doesn't add a
DW_AT_start_scope attribute to any variable entries, so the variables already
appear at the beginning of the block. I suppose we'll have to guess from the
source location when the variables become active.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-20 01:12:52 +00:00
Ingo Weinhold 905860f5b4 The DWARF specs were a bit fuzzy on this one. Apparently only the low pc
attribute serves as base address for address range and location lists.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31648 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-20 01:07:00 +00:00
Ingo Weinhold fad43e5283 Removed some debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31647 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-20 01:05:34 +00:00
Ingo Weinhold 8d716cdba3 Added support for several variable and lexical block entry attributes and
child handling for lexical blocks (at least for nesting and variables).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31646 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-20 01:05:10 +00:00
Ingo Weinhold 502fcbcc5b Added Contains() method.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31645 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-20 01:03:02 +00:00
Ingo Weinhold da4d62db94 * Worker:
- Made Job Referenceable.
  - Turned JobKey into an abstract base class to add flexibility. The new
    SimpleJobKey is a subclass with the former functionality.
* TeamWindow: Removed the TeamWindow* parameter from the listener hooks. The
  TeamDebugger knows anyway.
* Added IDs to Variable, Function, and FunctionInstance. The latter two generate
  the ID on the fly, Variable stores it.
* SpecificImageDebugInfo::CreateFrame(): Changed FunctionDebugInfo* debug
  parameter to FunctionInstance* to provide more info (the function ID).
* DwarfInterfaceFactory/DwarfImageDebugInfo:
  - Added class DwarfFunctionParameterID, an ID class implementation for
    function parameters and set the IDs on the parameter objects.
  - Retrieve the size of a type (i.e. the size of its objects) and store it in
    DwarfType.
  - If a parameter's ValueLocation doesn't have a size, set that of the
    respective type.
  - Map the register indicies in the parameters' ValueLocations from DWARF to
    our indices.
* Added class TypeComponentPath for identifying subcomponents in types.
* Added class StackFrameValues, a container associating variables and their
  subcomponents with values.
* StackFrame does now have a StackFrameValues object for parameters and local
  variables and a mechanism to notify listeners when values have been retrieved.
* Added GetStackFrameValueJob to retrieve variable values. Lots of functionality
  is missing yet. Most notably it doesn't retrieves values for subcomponents.
* Wired everything to trigger loading of variable values and getting notified
  when done.
* VariablesView: Added a value column. This is all very basic and has to be
  done differently, but at least values for the parameters can be seen already.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31636 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:52:16 +00:00
Ingo Weinhold bcbd46eba3 Added SetPieceAt() and Dump() methods.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31635 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:19:08 +00:00
Ingo Weinhold f3516af2ca Added AddressSize(), IsBigEndian, IsHostEndian().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31634 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:18:06 +00:00
Ingo Weinhold e3eda50984 Made ByteSize() a virtual method in DIEType and implemented in all subclasses
that potentially have that attribute.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31633 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:16:51 +00:00
Ingo Weinhold b312b9ff83 Moved the implementation of ExpressionEvaluationContext. No functional changed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31632 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:15:22 +00:00
Ingo Weinhold 81ad27df05 * More debug output.
* Fixed _PushRegister(). It was ignoring the offset.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31631 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:13:06 +00:00
Ingo Weinhold d26889cca5 Base classes for IDs for various objects. The idea is to use them to uniquely
identify the respective objects without actually holding a pointer to them.
They will eventually also become persistable which will allow e.g. to associate
(and store) settings with the objects.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31630 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:11:20 +00:00
Ingo Weinhold 72e9c66b4d Class helping with assembling data from chunks of byte unaligned bit arrays.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31629 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:06:33 +00:00
Ingo Weinhold 6de84d6d8d Added AddUninitialized(), appending the given number of uninitialized elements.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31628 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-07-18 23:03:01 +00:00