Commit Graph

1533 Commits

Author SHA1 Message Date
Adi Oanca
08bd2fdfa2 added AS_ROOTLAYER_WINBORDER_SET_WORKSPACES
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12285 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-10 18:48:48 +00:00
Michael Pfeiffer
68ca240b53 Added missing comment.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12277 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-09 17:09:08 +00:00
Axel Dörfler
a5ff23c727 Moved the vesa.h and vga.h headers to the private vesa driver header directory
for future use.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12274 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-08 15:14:32 +00:00
Axel Dörfler
93ee21046d Added very basic VESA driver. Will be improved in the future (right now
it doesn't really do anything, it just passes the initial frame buffer
on to the app_server).
While it seems to work on real hardware (if you set the video mode to
640x480x32, app_server restriction), under Bochs, the app_server crashes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12273 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-08 15:11:32 +00:00
Axel Dörfler
219dacab3c Changed our read link syscall and FS interface call to make it easily possible to be POSIX compliant.
Also changed readlink() to be POSIX compliant with those changes.
"ls -l" does now resolve links properly again (the new coreutils version outlined the problems).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12263 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-06 16:07:10 +00:00
Axel Dörfler
bc440dcb46 No longer used.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12253 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 14:09:08 +00:00
Axel Dörfler
f05e261fd7 The VM can now ask the platform dependent part if it supports a specified protection.
create_area() and friends should fail if it's not supported.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-05 13:50:37 +00:00
Ingo Weinhold
8e26b085e5 Fixed double fault handler. Personally I disclaim all responsiblity
for these changes. I was mostly just staring in amazement at the screen
while Axel and Thomas were discussing IA32 internals. A particularly
fascinating moment was when Thomas produced the cause of a bug we had
been trying to track down for hours off the top of his head (of course
iret behaves specially when the NT bit is set :-). His slowness must be
excused though, since he hadn't slept for more then 30 hours. ;-)

The code doesn't wholeheartedly deal with multi-processor machines yet.
Axel will certainly do some cleanup...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 21:43:47 +00:00
Axel Dörfler
e5b0e0b5e3 Changed the set_segment_descriptor()'s usage of the limit/granularity
flag. Now, it will choose how to set the granularity by evaluating the
limit.
This call was actually already used this way in the kernel, so that
the TLS and TSS segments were much too large (harmless but incorrect).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12231 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 14:34:18 +00:00
Axel Dörfler
9d06770cdc The iframe stack is now in a special structure iframe_stack.
Introduced a gBootFrameStack that is used until the first thread structure
is available - this allows stack crawls and useful register dumps during
early startup. Could also be solved differently by making sure there is
always a thread structure installed in %dr3 (ie. the boot thread would
get a static thread structure instead of a static iframe stack only).
This might be a better solution as i386_handle_trap() would no longer
need to check for an existing thread structure.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12230 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 14:13:25 +00:00
Axel Dörfler
edb5566393 Fixed struct tss; there is no ss3/sp3.
Moved ptentry/pdentry to arch_vm_translation_map.c and renamed them to
page_table_entry and page_directory_entry.
Fixed a race condition that happened when memory was remapped (which
can currently happen because lock_memory() does not work correctly, and
there might be other conditions as well, like certain vm_store fault
handlers). Now, page table and directory entries are updated atomically.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12229 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-04 14:07:24 +00:00
Axel Dörfler
d305ab35ac Added the get_boot_item() call similar to what BeOS exports (have a look at
the APM driver to see it at work).
The frame buffer console now creates such a boot item to give a potential
VESA driver access to the boot frame buffer configuration.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12221 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 15:09:09 +00:00
Axel Dörfler
e02e12de8a Updated radeon driver to the latest BeBits release 5.1.0.1.
Probably only works under Haiku due to the new area flags.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12219 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 14:16:38 +00:00
Michael Lotz
7d5778defa Added support for GetEscapements() too. Still unfinished. Maybe this should be moved elsewhere?
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12216 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 09:18:25 +00:00
Michael Lotz
c2da902f2e Implemented BPortLink::AttachShape and BPortLink::ReadShape and used them for passing the shapes in AS_GET_GLYPH_SHAPES.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12215 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 07:29:04 +00:00
Michael Lotz
ebf8af66c9 Added support for BFont::GetGlyphShapes. Not finished yet and untested, delivery method as to be changed.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-01 07:00:32 +00:00
Axel Dörfler
914c87ccea No longer defines ENABLE_INPUT_SERVER_EMULATION if DISPLAYDRIVER is set to HWDRIVER.
Added a ToDo comment about the forgotten find_directory().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 19:29:57 +00:00
Axel Dörfler
2d7ad656ec Added "Disable IDE DMA" safemode option.
MenuItem::SetData() now asks for a const parameter.
The safemode menu options now set their MenuItem::Data() to the safemode option string.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12191 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 15:16:09 +00:00
Ingo Weinhold
d832aa7efc We must just the same naming as in DiskDeviceTypes.cpp for the intel partition types, since the implementation relies on it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12186 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 11:22:02 +00:00
Stephan Aßmus
a356096dba massive performance improvements. On my ancient 2xPII 350, the DisplayDriverPainter with the ViewHWInteface is pretty much usable now. It could be even better if app_server culmulated update requests more.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12180 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 10:46:02 +00:00
Michael Lotz
bb72ccac74 The Painter now uses a special version of the agg_font_engine that uses the FontServer ftlib and the already loaded FT_Facees from ServerFont/FontStyle instead of doing it all again.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12177 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-31 06:08:37 +00:00
Stephan Aßmus
15b391f607 more correct implementation, forgot header again
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12173 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-30 22:24:40 +00:00
Axel Dörfler
9f90fa0e3a Introduced new B_KERNEL_AREA_FLAGS and B_USER_AREA_FLAGS that can be used
instead B_KERNEL_PROTECTION and B_USER_PROTECTION.
Unlike before, B_USER_CLONEABLE_AREA is now only in B_KERNEL_AREA_FLAGS,
but no longer in B_KERNEL_PROTECTION. This fixes a couple of problems
when B_USER_CLONEABLE_AREA was defined without specifing read/write
access.
PAGE_PRESENT|MODIFIED|ACCESSED are in the same "namespace" as the
protection flags, and therefore, shouldn't overlap.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12154 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-30 06:34:17 +00:00
Stephan Aßmus
d01b623805 some improvements to font handling, but Miniterminal still renders only black blocks
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12148 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 23:42:52 +00:00
Stephan Aßmus
0cabce17c3 fixed some font related problems, Painter should now rely on the app_server font manager. maybe I fixed some compile problems too. Sorry if that was the case.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12145 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 22:58:09 +00:00
Stephan Aßmus
127b4b0a4b moved more of the old stuff from DisplayDriver into DisplayDriverImpl
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12142 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 22:22:44 +00:00
Stephan Aßmus
e33b8950a0 removed const declaration to allow locking in DisplayDriverPainter, as I think access to this needs to be serialized
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 22:00:48 +00:00
Stephan Aßmus
a91f954cd8 this does not belong here
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12138 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 22:00:21 +00:00
Michael Lotz
bccfa80b9b Changed radeons memory manager to use areas instead of malloc. Now the radeon.driver should work without hacking the kernel heap bigger.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12134 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 21:09:05 +00:00
Michael Lotz
9775bf33cf TEST_MODE is now disabled on Haiku too. So app_server is not a BApplication anymore and doesn't depend on itself.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12131 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 19:49:55 +00:00
Axel Dörfler
74bc93bf37 DISPLAYDRIVER can now be overridden by a previous definition.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12126 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 16:57:50 +00:00
Stephan Aßmus
74516f2ac3 added some functions with optimized implementation
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-29 01:40:38 +00:00
Stephan Aßmus
31f3fbc45c moved original cursor stuff into DisplayDriverImpl, now DisplayDriver is pretty much all abstract
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 18:03:04 +00:00
Stephan Aßmus
197f82a8fe sorry, forgot to commit the move of the locking implementation
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-28 13:43:39 +00:00
Stephan Aßmus
f21a56fe4f added Painter version of DisplayDriver
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12048 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 22:04:29 +00:00
Stephan Aßmus
97dba15f78 more support functions
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12047 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 22:03:49 +00:00
Stephan Aßmus
7814396f35 moved two rather important functions up in the header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12046 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 22:03:19 +00:00
Stephan Aßmus
f1aa29756b declared some functions "inline"
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12045 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-26 22:02:19 +00:00
Michael Lotz
6d495dfc26 FT_New_Face is a quite heavy function and shouldn't be called for every StringWidth, StringHeight and DrawString call. We now keep it open in FontStyle and destroy it there too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12006 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 21:02:40 +00:00
Ingo Weinhold
85001a7cc6 * Fixed checking for DR6 bits after a debug exception (we were and'ing
with the bit number, not the respective mask).
* Added a small hack to allow single stepping to work in qemu.
  Apparently the BS bit in DR6 is not set when the debug exception
  is handled. So we always assume that a single step event occurred,
  when we couldn't recognize any other event, if the hack is enabled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11998 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 18:48:51 +00:00
Ingo Weinhold
3eae1fea40 * Added support for debugging through exec*().
* Added initialization function. Currently only need to init the
  single step hack for qemu.
* Fixed a deadlock when the nub thread destroyed the debug info. It was
  waiting for itself.
* Moved the filling in the origin info of the debug messages into
  thread_hit_debug_event_internal(). No need for code duplication.
* Writing to user memory can now be partial. We also change the area
  protection, if it wasn't writable. Necessary for setting software
  breakpoints.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11996 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 18:40:07 +00:00
Stephan Aßmus
1f154920f6 step 3, exracted code from DisplayDriver into DisplayDriverImpl, adjusted the existing implementations to derive from the new class, got rid of some "friend" stuff along the way, essentially I made room for the new Painter based DisplayDriver implementation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11987 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 17:29:45 +00:00
Stephan Aßmus
f0a0f2a462 second step, all unused stuff is actually removed from DisplayDriver.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11984 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 13:28:12 +00:00
Stephan Aßmus
f3b44aede9 as a first step, all appearently unused calls are commented outfrom DisplayDriver and derived classes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11981 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-25 13:15:33 +00:00
Stephan Aßmus
50ffaefd89 added missing string rendering functions, for testing purposes mainly
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11966 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-23 22:35:38 +00:00
Stephan Aßmus
f6e20515b3 refactored DrawBitmap to support a version BBitmaps and one for ServerBitmaps, implemented InvertRect, but that was a while ago, and I didn't test it
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11961 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-23 20:32:04 +00:00
Axel Dörfler
c4472a00b1 The heap is now initialized by libroot_init.c::initialize_before(), so
that we no longer need an initialize_after().
Put the architecture dependent hoard functions into the BPrivate namespace
as well. Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11956 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-23 01:47:21 +00:00
Adi Oanca
be94b51d74 Added AS_LAYER_SET_EVENT_MASK
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11944 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-21 20:23:30 +00:00
Ingo Weinhold
1cebd061c3 Added delete_select_sync_pool() to clean up.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11928 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 22:07:29 +00:00
Ingo Weinhold
0a064776ae Added the beginnings of a small private API for debug support.
Entirely implemented on top of the public <debugger.h> API, but more
convenient to use. Lives in a separate library libdebug.so.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11925 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 22:04:04 +00:00
Ingo Weinhold
8af41139d5 Added default constructor. Useful in combination with SetTo().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11924 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-20 21:59:51 +00:00
Axel Dörfler
1ff0923db6 Removed the old (and nowadays unused) addons directory and related headers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11915 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 02:35:40 +00:00
Axel Dörfler
52fe8bf7a8 Minor header cleanup: moved some headers to better matching directories,
removed unused headers. Adapted sources to still compile with the new
header locations.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11913 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-19 01:58:05 +00:00
Adi Oanca
e4365762e6 added AS_ROOTLAYER_REMOVE_FROM_SUBSET
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11905 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 18:01:33 +00:00
Axel Dörfler
74b043d98d Removed execute property that was set accidently (since CVS days).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11896 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 01:50:45 +00:00
Axel Dörfler
9391dd214d Fixed broken handling of the new file_descriptor::open_count across
team boundaries; if you didn't actually call close() from within the
application, the close-hook of the file system was never called.
Also, you could close files of other teams (ie. invoke close on a
shared file descriptor).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11892 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-18 01:24:11 +00:00
Axel Dörfler
34e92cad76 Added and implemented new system calls switch_sem() and switch_sem_etc(); even if
they are public now, they might become private later on.
It's almost the same as acquire_sem() but allows you to release another semaphore
atomically. This makes condvar implementations and the like very simple to do.
Added B_CHECK_PERMISSION flags to the user calls, although it's not honored yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11887 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 22:35:00 +00:00
Ingo Weinhold
63531836b9 * Added a small private API (<fs/select_sync_pool.h>) to support FSs
and drivers that need to provide special select() support with
  managing select notification information.
* Renamed vfs_select.c to *.cpp and fixed the resulting C++ compiler
  errors. Added tracing macros.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11886 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 21:27:01 +00:00
Ingo Weinhold
d49f1b87a0 We were handling closing of file descriptors incorrectly. The close_*()
and free_*_cookie() hooks of the underlying FS were always called
together when the reference count of the FD dropped to zero. When
blocking operations (reading/writing) on the FD were still in progress
this would never happen, though. Now we additionally maintain an open
count and call the close_*() hook when it drops to zero.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11882 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 20:25:07 +00:00
Axel Dörfler
a36a94da37 Added the missing clear_caches() function and syscall. Does not yet do anything (which
is perfectly okay on x86 anyway, but should be moved into the arch stuff).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11869 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 17:06:56 +00:00
François Revol
3f53434673 that ioctl is only to check for writev, not readv, doesn't make much sense anyway
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11748 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-14 23:24:26 +00:00
Adi Oanca
e6ed344d4d Oups. Forgot about this one. Added a new message id.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-14 19:27:29 +00:00
Axel Dörfler
37bcda3bba Added HFS/plus type strings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11729 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-14 15:39:17 +00:00
Jérôme Duval
f8f38c4c4b stripped out comments because their license is unknown
removed unused definitions


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11726 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-14 10:32:10 +00:00
Ingo Weinhold
823f4c5bf4 * Various modifications needed due to the changes in <debugger.h>.
* user_debug_break_or_watchpoint_hit() into separate functions for
  break- and watchpoints. The one for breakpoints gets another parameter
  which indicates whether the breakpoint was a soft- or hardware
  breakpoint. This info is also sent to the debugger.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11714 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-13 23:57:34 +00:00
Ingo Weinhold
20b656f066 * Check the thread debug signal ignore masks before notifying the debugger
of a signal.
* Added sigaction_etc(). It's just a sigaction() for which the thread
  in question can be specified.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 21:45:49 +00:00
Ingo Weinhold
293a59b0e9 * The debug_thread_info records now, which signals the debugger wishes
not to be notified.
* Added debugger commands for setting/getting of thread signal ignore
  masks and signal handlers.
* Renamed user_debug_fault_occurred() to a more correct
  user_debug_exception_occurred(). It no longer sends a `stopped' message,
  but the new one dedicated to exceptions. Additionally the number of the
  signal is supplied that will be sent, when the thread continues (without
  indicating to ignore the event).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 21:43:35 +00:00
Ingo Weinhold
0dd3a50bb3 _user_load_image() has a flags parameter now. Added a new structure team_loading_info, which is referenced by the team structure while the team is being loaded..
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 15:11:08 +00:00
Ingo Weinhold
3a96ba0bed Added _user_image_relocated() and _user_loading_app_failed().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11693 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 15:05:12 +00:00
Ingo Weinhold
7884e8986b * _kern_load_image() has a `flags' parameter now.
* Added _kern_image_relocated() and  _kern_loading_app_failed(), which
  are invoked by the loader to provide the kernel with more info.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 14:58:39 +00:00
Ingo Weinhold
f277fb639d * Prevent double deletion when setting to an object that is already set.
* Added Unset() and Delete() methods.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11680 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-11 17:44:55 +00:00
Axel Dörfler
3c75dcf982 Removed team::user_env_base; it's no longer needed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11673 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 23:08:16 +00:00
Axel Dörfler
8e6c95bcce Removed setenv()/getenv() syscalls - env is now changed on the heap.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11671 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 23:04:48 +00:00
Axel Dörfler
2bf23eaa75 Added __init_env() prototype.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11666 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 22:36:53 +00:00
Ingo Weinhold
2eece8633c * Added support for debugger handover.
* Implemented _user_wait_for_debugger().
* Reworked a few bits to ensure that after a remove_team_debugger() or
  after requesting a debugger handover the debugger doesn't get any more
  messages.
* When the debugger is removed or dies, the debugged threads should now
  cleanup their debug info and continue, instead of waiting at their
  debug port forever.
All the new features are not tested. Will happen, when gdb will be
debugged.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11664 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 22:04:27 +00:00
Ingo Weinhold
6bbfd2627b New syscall _kern_wait_for_debugger().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11635 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-09 22:46:31 +00:00
Ingo Weinhold
2562e5185c Command B_DEBUG_MESSAGE_GET_WHY_STOPPED supports a reply port now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11633 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-09 22:05:43 +00:00
Axel Dörfler
db75a08b98 Solved the big mystery in Ingo's life: in C, func(); and func(void); is not the same.
This fixes the "missing prototype" warnings.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11627 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-09 01:42:37 +00:00
Ingo Weinhold
5939c4d7a9 Added functions allocate_thread_id() and peek_next_thread_id() and a
threadID parameter to spawn_kernel_thread_etc(). It's now possible to
set the ID of a new thread. Used in team.c to make team ID and the ID of
the main thread equal.

Fascinatingly the two added functions prompt my compiler to issue
`missing prototype' warnings, although those are obviously there. It would
be nice if someone could solve that riddle.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11621 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-08 18:16:16 +00:00
Axel Dörfler
8be9e1dbae Added empty arch_user_debugger.h header.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11556 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-03 06:11:08 +00:00
Ingo Weinhold
935486a09f Added some more EFLAGS bits.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11533 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-02 14:51:48 +00:00
Ingo Weinhold
86cc722477 * DR3 is used for holding the pointer to the current struct thread*, so
we only have 3 debug registers available for break-/watchpoints.
* Added definitions for debug status register DR6. Reordered DR7 defs to
  ascending order. Added definitions for the EFLAGS flags we need.
* Added arch_thread_debug_info structure and related definitions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11525 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-02 00:05:02 +00:00
Ingo Weinhold
98b14f8a6a * Made i386_get_current_iframe() static again, since it wasn't what was
needed to get the topmost user iframe. Added i386_get_user_iframe() for
  exactly that purpose.
* Added reinitialization of user debugging for the new thread when
  switching the context.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11523 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-01 23:56:52 +00:00
Ingo Weinhold
c8d7534e5d * Made C++ save.
* Made the parameter for restoring the FPU state const.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11522 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-01 23:52:09 +00:00
Ingo Weinhold
00a2b607d8 Added functions for clearing/destroying the architecture specific thread
debug info.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11521 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-01 23:49:20 +00:00
Ingo Weinhold
ae7c619aae * Added architecture specific structure to thread_debug_info.
* Added event callbacks for break- and watchpoints and single stepping.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11520 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-01 23:47:59 +00:00
Ingo Weinhold
8ae64a82eb x86 specific user debugging support definitions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11508 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-28 00:44:41 +00:00
Ingo Weinhold
dd07f6001d * Added functions for clearing/destroying the architecture specific team
debug infos.
* Added function for setting the CPU state.
* Added functions for setting break-/watchpoints.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11507 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-28 00:43:43 +00:00
Ingo Weinhold
a7ad39fe09 * New locking strategy for the team debug info. It's no longer protected
by the team lock, but by a lock in the structure. This is necessary
  since we can't acquire the team lock while thread switching, for then the
  thread lock is already held.
* Added support for single stepping and break-/watchpoints.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11503 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-28 00:34:06 +00:00
Ingo Weinhold
782c98afd9 * Added KILL_SIGNALS, a signal mask for SIGKILL + SIGKILLTHR.
* Removed SIGKILLTHR from BLOCKABLE_SIGS.
* Made header C++ safe.
* Added function is_kill_signal_pending(), returning true, if a
  SIGKILL[THR] is pending for the current thread.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11487 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-25 14:16:07 +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
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
Michael Pfeiffer
acc60ee067 Added function pack_bits_size.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11436 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-21 17:30:21 +00:00
Rudolf Cornelissen
bffb1c3e50 added a comment about 'parallel processing' of rect functions (due for next speed optimize 'step 2').
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-19 17:46:32 +00:00
Rudolf Cornelissen
ba37dabf99 small cleanup, added one new registerdefine for NV40/NV45.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11418 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-19 09:56:57 +00:00
Matthew Wilber
9438f6cc1f Moved FuncTranslator.h from current/headers/os/translation to private headers. Moved translator_data struct from TranslationDefs.h to FuncTranslator.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11358 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-12 14:35:36 +00:00
Axel Dörfler
9b0f912d96 Added header for the frame buffer console module. It's here because it
will also get syscall that the app_server has to call in order to update
the frame buffer configuration.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11352 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-12 03:50:49 +00:00