Commit Graph
100 Commits
Author SHA1 Message Date
Ingo Weinhold 71a2d54820 In case of a page fault we now notify the debugger.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11479 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 16:30:17 +00:00
Ingo Weinhold 260ba6fdd3 * Dealt with two debugging related ToDos:
- If the thread's B_THREAD_DEBUG_STOP flag is set, it is now always
    stopped before handling the signals. Unless a SIGKILL[THR] signal is
    pending.
  - Also notify the debugger, when a signal is ignored.
* The signal's sigaction structure is additionally passed to the debugger
  now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11478 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 16:28:45 +00:00
Ingo Weinhold 9c448e2414 * Added debugger notifications for thread creation/deletion events.
* Now we deal correctly with thread debug flags (child threads inherit
  the parent ones, save for syscall tracing in which case it needs to
  be specified explicitly).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11477 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 16:14:18 +00:00
Ingo Weinhold 2ee487c82a Added debugger notifications for team creation/deletion events.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11476 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 16:11:25 +00:00
Ingo Weinhold 43ad09219b Added debugger notifications when images are registered/unregistered.
In the first case this is probably too early, since the image is not
really loaded at that time by the loader. We should probably introduce
a syscall the loader can invoke for that purpose.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11475 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 16:10:24 +00:00
Ingo Weinhold e988d66022 * Added B_TEAM_DEBUG_DEFAULT_FLAGS and B_THREAD_DEBUG_DEFAULT_FLAGS for
convenience.
* Added/implemented callbacks for almost all missing debug events (team,
  thread, image creation/deletion, exceptions/faults, signals).
* The debugger can now specify how to deal with the event that stopped an
  event (ignore or handle signals, exceptions/faults).
* Implemented B_DEBUGGED_THREAD_GET_WHY_STOPPED debugger message.
* The cpu_state is now passed to the debugger with
  B_DEBUGGER_MESSAGE_THREAD_STOPPED notifications.
* Completed _user_debugger() implementation.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11474 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 16:07:19 +00:00
Ingo Weinhold fc0eb1b266 Prevent cyclic inclusion.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11473 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 15:53:12 +00:00
Ingo Weinhold 05916979f9 Export i386_get_current_iframe() so it can be used in arch_user_debugger.cpp.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11472 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 15:49:41 +00:00
Ingo Weinhold 98dbeb36df Added note to keep struct iframe in sync with the struct cpu_state.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11471 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 15:47:54 +00:00
Ingo Weinhold 08fd6d69aa Beginning of the x86 debugging support.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11470 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 15:46:20 +00:00
Ingo Weinhold c7eab67fe1 Architecture specific debugger interface.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11469 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 15:44:48 +00:00
Ingo Weinhold c3610c8098 * Architecture specifics live in arch/<arch>/debugger.h now.
* team debug flags:
  - Added flags for team creation, thread events (creation,
    deletion), and image events (creation, deletion).
  - Got rid of B_TEAM_DEBUG_SYSCALL_FAST_TRACE. We always send the syscall
    arguments. The overhead should be neglectable.
  - Added B_TEAM_DEBUG_STOP_NEW_THREADS.
* Added debugger notification messages for signals, team, thread and
  image events.
* Added debug request B_DEBUG_MESSAGE_GET_WHY_STOPPED.
* When continuing a thread, the debugger can now specify how to deal with
  the occurred event (ignore or handle).
* More data in the signal received notification message.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11468 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 15:43:28 +00:00
Ingo Weinhold 1faf0c16fa x86 architecture specific debugger definitions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11467 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-24 15:33:12 +00:00
Ingo Weinhold 2a862ff06f Got rid of the temporary BMessage in BMessage::_send_().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11450 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-22 13:07:55 +00:00
Ingo Weinhold 75393a9870 Named the fReplyTo struct so that we can create other vars of this type.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11449 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-22 13:06:42 +00:00
Ingo Weinhold 592cc30168 * Implemented colorized output.
* Implemented finding programs in the PATH.
* Added human readable error codes for status_t and ssize_t return values.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11448 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-22 12:37:24 +00:00
Ingo Weinhold c9b3d41977 The Type class now knows the name of the type.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11447 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-22 12:34:38 +00:00
Ingo Weinhold 3f38375acc Write return and parameter type names into the generated strace file.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11446 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-22 12:33:49 +00:00
Ingo Weinhold 39c9d198ea * Moved strace source into separate subdirectory.
* Now syscall names and parameters are printed. const char* parameters
  and return values are retrieved from the client and printed as string.
* Missing are still color output (does consoled support that?) and
  searching for given commands in the PATH. Nothing besides the standard
  mode has been tested yet, so it's probably not working.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11345 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-11 05:09:36 +00:00
Ingo Weinhold 20be402385 Moved strace sources into subdirectory.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11344 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-11 05:02:22 +00:00
Ingo Weinhold 73df3c0847 * Turned off debug output.
* The syscall arguments are copied into the respective messages to the
  debugger now.
* Optimized the nub thread memory reading command. Now only as many bytes
  are sent to the debugger as were actually read.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11343 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-11 05:00:31 +00:00
Ingo Weinhold 6b2dcef3ec Explicitly declare the inclusion of the syscall table file generated by gensyscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11342 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-11 04:57:38 +00:00
Ingo Weinhold 6432752755 Include the syscall info array generated by gensyscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11341 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-11 04:56:11 +00:00
Ingo Weinhold 7d4d6d35c0 Export an array of static syscall infos generated by gensyscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11340 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-11 04:54:35 +00:00
Ingo Weinhold 747fcbd3e0 We generate two more files now: A simple array with the kernel function
pointers and overall parameters size for the kernel and some more
sophisticated code for strace.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11339 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-11 04:53:31 +00:00
Ingo Weinhold ee524c9864 We now also store the names of syscall parameters. This is used for strace. Well, not yet, but it would make a nice extension. :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11338 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-11 04:51:08 +00:00
Ingo Weinhold 16df67022a Fixed UseArchHeaders.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11337 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-11 04:46:14 +00:00
Ingo Weinhold 22bfa26c00 Added strace.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 03:08:46 +00:00
Ingo Weinhold bd432c793a Added strace to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11320 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 03:08:01 +00:00
Ingo Weinhold 33e89d7cf8 The beginnings of strace. At the moment prints only syscall number and
return value.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 03:07:33 +00:00
Ingo Weinhold e23a6f58af Added syscall tracing support.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11318 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 03:06:05 +00:00
Ingo Weinhold a102c86e08 Init and cleanup the thread related debugging structure.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11317 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 03:04:53 +00:00
Ingo Weinhold bea87e89d4 Init and cleanup the team related debugging structure. Send the debugger
a respective message, when the debugged team has been deleted.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11316 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 03:03:53 +00:00
Ingo Weinhold 032fea39cb Added userland debugging support structures to thread and team structures.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11315 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 03:00:52 +00:00
Ingo Weinhold f19279abda Danger! The size of empty structures differs between C and C++, so we have to put something in, if we want to use them from both.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11314 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 02:59:37 +00:00
Ingo Weinhold 734e07cedb Added user_debugger.cpp to the kernel.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11313 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 02:57:46 +00:00
Ingo Weinhold 4661ae6c69 Added/implemented debugging related API functions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11312 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 02:56:49 +00:00
Ingo Weinhold 44ed1270a3 Added debugging related syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 02:55:02 +00:00
Ingo Weinhold 6b13343035 Some additions for user debugger support. Several of ToDos. This is far from being final, but just something we can work with for the moment.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11310 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 02:53:48 +00:00
Ingo Weinhold 1ec1e1185b handle_signals() now takes a pointer to a cpu_state, so that after restoring and re-disabling interrupts the state can be propagated back to the caller.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11309 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 02:49:41 +00:00
Ingo Weinhold bc797a9ee5 The beginnings of userland debugger support. Currently basically only what is needed for strace is implemented.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11308 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 02:47:46 +00:00
Ingo Weinhold c53b50023a Trashed the old header and started a new one from the scratch.
Unless a good reason appears not to, we'll break binary compatibility here.
BDB could be considered one, but we need a replacement for it anyway. We
strive to port GDB and a couple of changes in the debugger API will make
that easier.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 02:45:18 +00:00
Ingo Weinhold eafe61c06b * Some formatting cleanup.
* Removed ARM support.
* Removed PEF references.
* Added structure and constants for pre syscall tracing.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11245 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-04 14:37:55 +00:00
Ingo Weinhold 9965d18a07 Implemented all notify_*() functions. As soon as no longer used anywhere,
notify_listener() and send_notification() can be dropped.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11219 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 15:19:35 +00:00
Ingo Weinhold 98f9f2bf07 Added parameters to notify_{stat,attribute}_change() that will give more information on what actually happened.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11218 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 15:17:54 +00:00
Ingo Weinhold 13bbbbf5dc The curse of aging... a trembling hand. ;-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11217 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 14:26:42 +00:00
Ingo Weinhold 95bac3fda5 Haiku will provide more information for B_ATTR_CHANGED and B_STAT_CHANGED events.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11216 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 14:19:26 +00:00
Ingo Weinhold c02a7b0dcb Fixed build of libbeadapter.so and libopenbeos.so.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 13:40:19 +00:00
Ingo Weinhold 102267997c Vertical() can be const and should be, when invoked on a const instance.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 13:33:34 +00:00
Ingo Weinhold 164d84bb10 Switched to new DoublyLinkedList class.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11193 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 02:35:16 +00:00
Ingo Weinhold f42f300bd5 Work around a gcc bug: A private typedef in a base class can class with an equal identifier in a derived class.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11192 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 02:31:06 +00:00
Ingo Weinhold b0f7c84522 Switched to new DoublyLinkedList class.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 02:19:23 +00:00
Ingo Weinhold 50d68edcf4 It's fun to rename functions in templatized code. You only realize, that you missed some, when that specific part is instantiated.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 02:12:35 +00:00
Ingo Weinhold be6294af4b Switched to new DoublyLinkedList class.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 01:53:00 +00:00
Ingo Weinhold 2cfdb0ed38 * Added DoublyLinkedListMemberGetLink class which directly accesses the
link member in the element class. Usually more comfortable for structs.
* Added Add() method as synonym for Insert().
* Made fGetLink member static to save memory in objects using it.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11188 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 01:48:43 +00:00
Ingo Weinhold ef13ad9efd Include dir "private/kernel/util" not longer needed, since we already have "private/kernel" and include <util/...>.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11187 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 01:20:35 +00:00
Ingo Weinhold bed68f2088 DoublyLinkedList lives in the <util/DoublyLinkedList.h>.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 01:16:26 +00:00
Ingo Weinhold 297ffaeb84 Appended the new DoublyLinkedList implementation to DoublyLinkedList.h. The old implementation will go, when all the places where it is used have been adjusted.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11185 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 01:14:47 +00:00
Ingo Weinhold eb5bc5f924 Added a bit of documentation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11166 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-31 00:26:30 +00:00
Ingo Weinhold 242ebd2030 The reduced area size was used for testing only.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11165 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 23:40:17 +00:00
Ingo Weinhold 576ca13ddb Added debug output. No functional change. Surprisingly things seem to work.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11164 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 23:28:49 +00:00
Ingo Weinhold ea9716dc6e Return B_NO_MEMORY, if the command handler could *not* be allocated. First tests indicate that the messaging service basically seems to be working. Didn't test yet, if that's still true, when an area is full.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11161 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 18:48:38 +00:00
Ingo Weinhold d06fe82117 Exemplarily implemented notify_entry_moved(). Untested.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11160 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 16:13:35 +00:00
Ingo Weinhold 244f03dc1c * Moved the autolocking code for recursive lockers to <util/AutoLock.h>.
* Added resolve_mount_point_to_volume_root() version for external use
  (by the node monitor).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11159 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 16:11:46 +00:00
Ingo Weinhold 831841e1c0 Moved generic autolocking code to <util/AutoLock.h>.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11158 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 16:09:57 +00:00
Ingo Weinhold b6933d8acc Moved generic auto locking code out of
<disk_device_manager/KDiskDeviceUtils.h> into <util/AutoLock.h>.
Added instantiations for recursive locks (moved from vfs.cpp) and
mutexes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11157 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 16:09:06 +00:00
Ingo Weinhold 4eb57a1d3d Added WARNING macro.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11156 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 16:06:31 +00:00
Ingo Weinhold 3424c4fea4 Renamed node_monitor.c to node_monitor.cpp and fixed implicit conversions from void*.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11155 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 14:09:01 +00:00
Ingo Weinhold 5207cc7a8c Proposal for a replacement of the notify_listener() and
send_notification() interface, which I personally find quite ugly.
Each notification type gets its own function, which makes very clear,
which parameters are to be supplied. Also note the addition of the
`name' parameter for the `entry removed' notification and `fromName'
for `entry moved'.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11145 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 01:53:37 +00:00
Ingo Weinhold d0e2e53903 * Added missing MessagingCommandHandler methods.
* Added a class for handling "send message" commands and install by
  default. At least in theory messages issued by the kernel should now
  be delivered to the target. Still untested.
* Added lock to protect the command handler map.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11144 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 01:17:09 +00:00
Ingo Weinhold 1fa9da350b Removed obsolete struct.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11143 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 01:11:33 +00:00
Ingo Weinhold c6dbc50e2b * Added per-port sanity limits. We limit the number and summed size of
messages.
* We now maintain a second message list per port, which is sorted by
  timeout time. Thus we can drop timed out messages as early as possible.
* Fixed a bug which caused messages to disappear in the port list.
* Now delete a port not only when an error occurred when delivering a
  message, but also when it is empty.
* More debug output.

Seems to be working well now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11142 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 00:54:59 +00:00
Ingo Weinhold 0353d33137 Added kernel util header for DoublyLinkedList.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11141 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 00:48:08 +00:00
Ingo Weinhold 1a2f24bbbb Made some debug output debug conditional.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11140 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 00:46:38 +00:00
Ingo Weinhold 9b99cdbb5a Added a program testing the registrar's MessageDeliverer. Particularly
with respect to whether the delivery still works when the port is full.
It seems to do (now).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 00:45:30 +00:00
Ingo Weinhold 4a24ce3652 An alternative doubly linked list implementation which is far more complete and usable.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11138 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-30 00:42:56 +00:00
Ingo Weinhold 634f747e29 Now we use the MessageDeliverer to send asynchronous messages to other apps. Seems to work when the target port is not full. The other case has not been tested yet.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-29 17:49:32 +00:00
Ingo Weinhold f64fc02f89 Added another DeliverMessage version for broadcasting.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-29 17:45:59 +00:00
Ingo Weinhold 156e4f302b Consequently use B_PREFERRED_TOKEN when the preferred target is addressed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11131 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-29 17:44:55 +00:00
Ingo Weinhold 09b770dd50 * Added Dump() to BMessage::Header for debugging purposes.
* In BMessage::Header::ReadFrom(DataIO &) the checksum was checked before
  the fBodySize field was initialized, which could make
  BMessage::Unflatten() fail.
* Calculate the header checksum now by writing the header to a buffer and
  checksumming that. This is simpler and avoids problems when something
  else is written than is actually stored in the header (e.g. when a
  preferred target token is replaced by B_PREFERRED_TOKEN).
While the BMessage unit tests always passed, now the other App Kit tests
pass as well.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11130 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-29 17:43:44 +00:00
Ingo Weinhold 94b98dff1a Consequently use B_{NULL,PREFERRED}_TOKEN to prevent problems with BMessage code checking against B_NULL_TOKEN.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11129 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-29 17:36:20 +00:00
Ingo Weinhold c6de9dc035 Missing initialization of members in the second constructor.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-29 17:34:00 +00:00
Ingo Weinhold 01225b393d Disabled debugging. Was accidentally committed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11127 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-29 17:33:20 +00:00
Ingo Weinhold 871756c256 Ignore libgccObjects and Timezones.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-29 17:32:07 +00:00
Ingo Weinhold efbea3a07a Moved the functionality to flatten and unflatten a BMessage header into
a separate class. This allowed to improve _SendFlattenedMessage() to
deal properly with flattened BMessages as well.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11116 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-29 00:19:50 +00:00
Ingo Weinhold f8953fc789 Allow that const data can be supplied to TChecksumHelper::Cache().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11114 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-29 00:17:24 +00:00
Ingo Weinhold 534ef684d9 Turned _init_message_(), _delete_message_(), and _clean_msg_cache_() into
proper private static BMessage members and made them accessible through
BMessage::Private. Got rid of unused _reconstruct_message_().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-28 15:05:44 +00:00
Ingo Weinhold 9d0a9900f0 * Updated copyright date and added myself to the authors. :-)
* Removed 1500 lines of unused non-template-madness code. We have version
  control to resurrect it, if we ever wish to.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11105 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-28 14:50:01 +00:00
Ingo Weinhold d306a4652c * Added a timeout to the delivery functions. This is the time after which
the message will be finally dropped. Makes sense for periodic message
  runners for instance.
* Set the target of a BMessage before flattening it. Thus there will be
  space in the flattened header for it.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11071 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 15:18:29 +00:00
Ingo Weinhold 7f1ee731a9 Using namespace std for nothrow.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11070 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 14:58:18 +00:00
Ingo Weinhold c277ab01e6 Make the compiler happy. Shadowing super class methods with different signature is a very annoying C++ feature.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11069 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 14:57:35 +00:00
Ingo Weinhold c452fa675f Argh! Forgot to commit. Added KMessage to libbe.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11068 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 14:11:02 +00:00
Ingo Weinhold 56833e831f Implemented the actual message sending. The implementation is complete now, but still untested.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11062 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 02:20:28 +00:00
Ingo Weinhold 874902b2c1 Made sending flattened message available.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11061 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 02:18:19 +00:00
Ingo Weinhold 377872556d * Added support for unflatting from flattened KMessages. At least when
a buffer is given.
* Added method for sending flattened messages. The KMessage support is
  complete, but for BMessages this is a bit tricky. We currently unflatten
  the BMessages and send those.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11060 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 02:16:44 +00:00
Ingo Weinhold ea69d9d35f Moved the kMessageHeaderMagic constant into the class. Made BMessage a friend of KMessage.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 02:10:42 +00:00
Ingo Weinhold b8ab94faaa An even nicer solution for the UnarchiveObjects actions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11058 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-26 02:07:39 +00:00
Ingo Weinhold 590e2873fd Introduced pseudo-target timezone_files, which can be used to build all timezone files.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11054 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 23:58:41 +00:00
Ingo Weinhold ea3df577a3 After resolving the flag clash things work. Use our nice B_KERNEL_{READ,WRITE}_AREA flags for clarity.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11052 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 23:30:53 +00:00
Ingo Weinhold 0859d5e9ae Added B_USER_CLONEABLE_AREA to the kernel area protection mask.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11049 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-25 22:56:31 +00:00