Commit Graph
100 Commits
Author SHA1 Message Date
Axel Dörfler 523a30f313 Implemented I2C support to get the DDC EDID info from the monitor - it's working as is, but
nothing is done with the data yet (besides dumping them to the serial output).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22272 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-21 18:06:56 +00:00
Axel Dörfler 96eb4ebe33 Made i2c.h and ddc.h C++ safe.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22271 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-21 17:33:35 +00:00
Axel Dörfler fd7e4cc333 Made providing a place for vdif and vdifLength optional in ddc2_read_edid1().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22270 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-21 16:59:43 +00:00
Axel Dörfler 93a1ccabb9 * Separated I2C from DDC a bit more.
* i2c_bus now contains a i2c_timing structure, so that you don't need
  both to talk to the I2C bus.
* Therefore, there is now a void ddc2_init_timing() function to get the
  the timing DDC needs.
* Cleanup in radeon's monitor_detection.c, and updated it to work with
  the DDC/I2C changes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-19 22:36:55 +00:00
Axel Dörfler 0c85ed21ae Forgot to commit the header...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22255 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-19 18:52:55 +00:00
Axel Dörfler 61dad86a02 * No longer switch between divisor register set 0 and 1; it doesn't really
make any sense.
* "pll" might have been set incorrectly on i8xx chips.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22253 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-19 15:07:58 +00:00
Axel Dörfler 5e1d6fb269 * Added _ALIGN() and _ALIGNBYTES macros.
* Added cmsg macros.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-04 21:36:59 +00:00
Axel Dörfler ef27f7d0e0 Ported over atftpd from Linux - should work on BSD as well, now.
Not yet tested, and it will probably not work correctly until we support
IP_RECVDSTADDR correctly (we don't support that CMSG stuff yet).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22171 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-04 21:35:58 +00:00
Axel Dörfler 079c69cbfd Added daemon() function to libbsd.so.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22164 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-04 12:32:20 +00:00
Axel Dörfler 87689e25ea * sMappingLock is now a mutex instead of a spinlock.
* The vm_translation_map is now correctly held in all of the vm_ mapping
  functions.
* Removed the old vm_daemons.c file - there is now a new vm_daemons.cpp
  which contains the beginnings of our new page daemon.
  So far, it's pretty static and not much tested. What it currently does
  is to rescan all pages in the system with a two-handed clock algorithm
  and push pages into the modified and inactive lists.
* These inactive pages aren't really stolen yet, even though their mappings
  are removed (ie. their next access will cause a page fault). This should
  slow down Haiku a bit more, great, huh? :-)
* The page daemon currently only runs on low memory situations, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22156 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-03 15:41:14 +00:00
Axel Dörfler d8badf6791 * Renamed page queues according to our style guide.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22155 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-03 15:35:09 +00:00
Axel Dörfler b50494aaac * file_cache_set_size() now calls file_cache_invalidate_file_map() with the
correct values (resolving a TODO); however, the latter doesn't do anything
  with those yet.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22154 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-03 12:42:53 +00:00
Axel Dörfler 8a3cfa2cf3 * Made menu windows behave differently than others: before, they were just
always put between window screens and modal all windows (before floating
  all ones), so a BWindowScreen couldn't have menus at all.
  Now, they behave more like floating app windows, just that they float above
  all other application windows, such that all window feels (also BWindowScreen)
  can now have menus.
* Reenabled keyboard redirection to the top most window in case it's a menu;
  bug #1152 no longer applies due to the above change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22149 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-02 12:16:28 +00:00
Axel Dörfler 4c751e51c8 Added a test application to investigate how BeOS deals with keyboard input
in menus - the application will crash as soon as you open the "Crash" sub
menu.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22148 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-09-02 12:02:57 +00:00
Axel Dörfler 22e95c5911 * creating (or dividing) reserved areas did not acquire a ref to an address
space - but they were released upon deletion. It's probably not really
  needed, but now all reserved areas also grab a reference to their address
  space.
* Rearranged team tear down to be a bit more sane: the I/O context is removed
  first (where semaphores/areas/ports/whatever might still be used), and the
  address space is deleted last.
* delete_area() can now remove its address space reference again (due to the
  two changes above), and therefore fixes bug #1374.
* cleaned up vm_address_space.c a bit (no functional change there, though).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22130 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-31 14:20:28 +00:00
Axel Dörfler 7bc5a06be6 * BShelf::_AddReplicant() did not recognize zombies if their object was not
inherited from BView.
* BShelf::_AddReplicant() did not honour the fAllowZombies flag correctly; if
  it wasn't allowed, no error message was given.
* Both of these changes fixes the crashing of the Deskbar as described in
  bug #555.
* instantiate_object() now also fires a message to the syslog if the object's
  image could not been loaded. Some cleanup, no longer resets errno.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22117 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-30 01:03:33 +00:00
Axel Dörfler a632458d8e The wonders of signals:
* Since the app_server launched the input_server, it would also get notified
  when the latter died via a signal - but LinkReceiver could return B_INTERRUPTED
  in that case (it didn't check the return value of port_buffer_size()) which
  the app_server misinterpreted and quit itself... this fixes the hanging part
  of bug #1298.
* But the input_server still wasn't restarted, because the Registrar had it
  still listed as being running. Now, the Registrar checks not just periodically
  for died teams, it will also check for it when a new application registers
  itself. This fixes the rest of bug #1298.
* Removed the old (disabled) R5 style input_server launch mechanism from the
  app_server.
* MessageLooper now prints a bit more information when a port is supposed to
  have been deleted.
* The default implementation of MessageLooper::_GetLooperName() is now
  returning the name of the semaphore of its BLocker instead of "unnamed
  looper".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-30 00:09:43 +00:00
Axel Dörfler def5fadafc Added Mail's spell checker files to the image, thus closing bug #1221.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22111 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-29 19:31:32 +00:00
Axel Dörfler 451cbc4a94 * SudokuSolver::ComputeSolutions() can now be called more than once without
doubling the solution list.
* ComputeSolutions() will now check if solving the Sudoku is affordable for
  this algorithm (at least 1/6th of the fields must be known). This fixes
  one part of bug #1435.
* SudokuView now checks if the Sudoku is already solved before trying to
  fill in a value from the solution (and then it did not find a free spot,
  surprisingly). This fixes the other part of bug #1435.
* SudokuView now beeps if there was no solution.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22110 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-29 13:24:31 +00:00
Axel Dörfler c4a589b09a There is no reason the printers directory shouldn't have the folder icon.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22104 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-29 10:22:54 +00:00
Axel Dörfler 22ca66b9f8 Fixed bug #1028 from both sides:
* FindPanel::SetUpAddRemoveButtons() called Window()->FindView() but did not
  check if Window() was NULL.
* BWindow now always checks the result of a BAutolock - this is why Tracker
  got away with this bug on BeOS; NULL windows cannot be locked...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22102 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-29 00:40:40 +00:00
Axel Dörfler 4f6fa362cf * Fixed driver initialization - you are supposed to call init_driver()
and uninit_driver() yourself. We're also using this to let the controller
  access the pci_device object.
* Fixed some style violations for your pleasure ;-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-27 09:36:35 +00:00
Axel Dörfler 7bd1d755c4 Applied patch by Fredrik Ekdahl to fix the compilation with GCC 4 - thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22062 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 15:31:52 +00:00
Axel Dörfler d578543aa6 * Added a first game to the image: Sudoku. It comes with a solver and generator
for three different levels (from "Very Easy" to "Hard"). Have fun!
* Feel free to do a nicer icon!
* Stack.h is actually verbatim copy of a kernel header which we might want
  to move to a more public place (like shared).
* ProgressWindow is taken from ShowImage, but adapted to suit different
  needs.
* It seems to trigger a bug in the interface kit or app_server: when moving
  the mouse around, the right border of a field is sometimes lost. This
  does not happen in BeOS, and there is actually no code that looks responsible
  for this - it might be an off by one error in the region code, though?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22056 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-25 17:39:46 +00:00
Axel Dörfler 8be13cd585 * SCSI SIM module driver shell for the AHCI driver for Marcus.
It is loaded on boot, and the SCSI bus manager tries to scan its bus which
  of course fails at the moment. Hope that helps :-)
* Moved the driver to its new location; it's a SCSI bus controller, so it
  should be placed in busses/scsi.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22048 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-23 23:29:08 +00:00
Axel Dörfler 3460c2c4eb * Fixes to let the device manager try to use the driver:
- module name didn't have the "/device_v1" suffix (which is used to
    differentiate device modules, as they can be everywhere in the path).
  - ahci_get_supported_paths() now tells the device manager that it
    exports a PCI disk device.
* Moved ahci out of the "scsi" sub-directory.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22041 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-22 18:44:38 +00:00
Axel Dörfler f7deaad7ee If Moved() has been called, Clicked() can't be called anymore; this actually
fixes a crashing bug when dropping a column too fast.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22032 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-21 19:10:50 +00:00
Axel Dörfler 9b60051929 Added the Network preferences application in its early state to the image; it's
already a helpful addition.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22028 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-21 17:47:53 +00:00
Axel Dörfler a6230f90a3 * Added B_ASYNCHRONOUS_CONTROLS to the window flags (smooth slider).
* Put local headers at the top, and fixed self-containment.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22027 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-21 10:32:45 +00:00
Axel Dörfler 8ac552e4d1 Fixed dumping the stack trace for the current thread by ID - that should have
been a warning (at least in C++ it is).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22026 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-21 10:26:54 +00:00
Axel Dörfler 27eab79b56 * BTitleView now resizes its columns asynchronously. As a side-effect, this
also solves the slow resizing part of bug #160 under Haiku (where GetMouse()
  obviously gets a lot more messages).
* Rearranged the interaction between BTitleView and ColumnTrackState a bit,
  removed some unused cruft.
* PoseView::ResizeColumn() had obviously required code to redraw the resizing
  lines on enlarging the column excluded for whatever reason.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22025 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-21 01:43:17 +00:00
Axel Dörfler 95741c2a49 Added a test case for SetMouseEventMask() as well.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22024 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-21 00:18:32 +00:00
Axel Dörfler ed432e8ec6 Data tracks are now filtered out. This should fix bug #1345 - but I did not yet test it.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22023 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-20 23:34:34 +00:00
Axel Dörfler b78583734c The client-side implementation of B_NO_POINTER_HISTORY did only work for SetEventMask(),
but not for SetMouseEventMask(). We now track the value of that mask in a dedicated
member variable.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22022 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-20 23:24:26 +00:00
Axel Dörfler e46b225479 The server is too fast sending the messages; we now filter out old mouse events
client side in case B_NO_POINTER_HISTORY is set.
This fixes bug #1415.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22021 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-20 22:51:46 +00:00
Axel Dörfler ffdeb47b94 Imported B_NO_POINTER_HISTORY test app from bug #1415, applied our coding
style, cleaned it up, and made it a bit more evident.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22020 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-20 22:46:34 +00:00
Axel Dörfler 9d22ffbe84 Fixed bug #1413:
* vm_soft_fault() no longer touches the page source cache in case fault_get_page() failed.
* fault_find_page() now unlocks and releases the cache if reading in a page failed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22016 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-20 14:27:11 +00:00
Axel Dörfler d0c290bf09 BAppFileInfo would crash if the resources failed to initialize, but SetInfoLocation()
forced it to use them. Now, it will filter out B_USE_RESOURCES when the resources
are invalid.
Also, _WriteData() and _RemoveData() will now fail if neither source is specified
with B_NO_INIT.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22015 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-20 14:08:51 +00:00
Axel Dörfler 871d97a9f5 * Fixed the kernel bug that prevented SIGCONT from working properly: the problem
occured if SIGSTOP was already delivered but not yet handled when SIGCONT was
  sent. Now, SIGCONT will clear all stop signals from the pending signals.
* SIGTSTP, SIGTTIN, and SIGTTOU are supposed to suspend the thread as well, adapted
  the default behaviour to respect that.
* Removed the work-around from r21997 TermParse.cpp for this exact problem.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22004 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-17 13:08:24 +00:00
Axel Dörfler 3e5ede51ed * Fixed build under Dano
* Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22001 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-17 12:12:46 +00:00
Axel Dörfler a728651f04 Some more work on the signal code:
* get_signal_stack() checked the wrong sig_action field (index is signal-1), also,
  it had an off-by-one error in the stack range check.
* factored out a restart_syscall() function to avoid code duplication
* arch_setup_signal_frame() relied on the fact that vregs and the signal stack code
  is a multiple of 4 bytes in size.
* Fixed sigaction(): it did return the error code directly instead of setting errno.
* signal() actually had a work-around for the broken sigaction()...
* Replaced the sig_func_t typedef with a sighandler_t typedef - this is non-standard
  anyway, but now we're at least compatible with the GNU world instead of introducing
  our own solution (BSD seems to use sig_t here, BTW).
* Removed now unused sigval structure from the header; it should be added again as
  soon as we start supporting it.
* SA_RESETHAND and SA_ONESHOT are the same thing; the former did not work before.
* Made the non-standard SA_* flags refer to the standard ones instead of the other
  way around.
* Added a test application for various signal features - works fine under Haiku,
  tested also under Linux and BeOS (the latter fails as it does not support SA_RESTART).
  More tests should be added, though.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21999 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-17 11:01:09 +00:00
Axel Dörfler 9d6482b1fd The vlance driver is apparently broken, and call acquire_sem() from an interrupt routine.
Therefore, I've removed it from the image for now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21991 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-16 21:37:33 +00:00
Axel Dörfler 0b70ea5992 * Implemented sigaltstack() and set_signal_stack(), thus closing bug #1401.
* On exec() the new function thread_reset_for_exec() is called which clears the signals
  and cancels an eventually set alarm. Both things weren't done before...
* Some minor cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21989 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-16 18:01:47 +00:00
Axel Dörfler f2286d02b9 Reverted back to an older random version that did not yet use thread_yield().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21988 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-16 18:01:21 +00:00
Axel Dörfler f1cea0512b Cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21986 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-16 17:05:14 +00:00
Axel Dörfler a2e2784cf3 * arch_restore_signal_frame() accessed user memory unsafely; it now also copies the (pretty
large) vregs structure to the stack.
* Introduced a get_signal_stack() function that arch_setup_signal_frame() now uses to setup
  the signal frame - it currently only returns the default user thread stack. Also made
  sure arch_setup_signal_frame() is independent from the user stack.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21983 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-16 15:11:58 +00:00
Axel Dörfler 491e46858b Shouldn't code before breakfast:
* check against sizeof(void*)-1 instead of hardcoded 3.
* return B_NO_MEMORY instead of NULL if the allocation failed...
Thanks to Marcus and Ingo for proofreading :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21976 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-16 10:49:19 +00:00
Axel Dörfler dfd5242e7f Even though Korli beat me, I've updated the posix_memalign() function to be more standards
compliant:
* it now checks the alignment is a multiple of 4 (needs to be changed for 64 bit architectures)
* it no longer sets errno.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21975 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-16 10:04:44 +00:00
Axel Dörfler 066a557444 * vm_soft_fault() no longer sets all pages it touches to "active"; instead, it now honours
if the page was already in the "modified" list before. Also, the source page (which is
  either mapped directly or copied to the target page) is no longer marked busy before its
  final destiny is decided (it didn't have any effect, anyway, since we had its cache
  locked for the whole time, but it now preserves the modified state). This fixes bug #1369.
* vm_cache_write_modified() now filters out temporary caches (it's currently called on area
  deletion).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21971 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-15 23:11:15 +00:00
Axel Dörfler cc116483ef The bug worked around in r21960 also affected Haiku. Now, a menu is only quit if the click
into its "controlling" window targeted the preferred handler - ie. is a standard click that
is not sent because of an event mask.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21961 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-15 02:12:05 +00:00
Axel Dörfler f8ab4e92ed Fixed the auto-raise "menus don't work anymore" bug.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21960 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-15 02:02:45 +00:00
Axel Dörfler b73648647d * Fixed the TODO added by Ingo in r21957: locking the application didn't even make any
sense. Instead, we now lock its app_server connection only. The deadlock as exposed
  by starting Icon-O-Matic twice is now gone, at last.
* Fixed the TODO added by Ingo in r21953: moved the thread/handler renaming code in a
  dedicated method _SetName() which is now called from _InitData() and SetTitle(); the
  "w>" is no longer lost.
* Unlike the BeBook states, BMessageQueue::RemoveMessage() is indeed not supposed to
  delete the message it removes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21959 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-15 01:06:20 +00:00
Axel Dörfler 0a201be444 * Found out what the overridden DispatchMessage() is supposed to do.
* Disabled activating the window on mouse click when auto-raise is active, as that
  doesn't work well in combination.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21958 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-15 00:18:13 +00:00
Axel Dörfler df79164d1b Disabled somewhat annoying debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21956 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-15 00:06:42 +00:00
Axel Dörfler 1af35a240d Added an auto-raise feature - works only, if the workspaces window is at a screen edge.
You can turn this feature on via the command line (--autoraise).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21955 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-14 23:56:52 +00:00
Axel Dörfler dc69d5e233 Added an auto-raise feature.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21954 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-14 23:55:24 +00:00
Axel Dörfler 36c5ff54b6 Patch by Ioan Molnar: update unrar from version 3.67 to 3.76 - thanks!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21952 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-14 22:45:34 +00:00
Axel Dörfler f9a5b215cd Committed patch by Euan Kirkhope to improve routing problems with Radeon cards;
this should fix bug #1293.
I've tested it here on two machines, one works better now, the other stayed the
same (Radeon 9250, and a laptop FireGL (id 4c66) version). This apparently also
fixed bug #1394.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21930 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-13 17:22:32 +00:00
Axel Dörfler a2057fac93 Since get_memory_map() can run with interrupts turned off, it can't put up
it's reference to the vm_address_space - luckily, it doesn't even need a
reference, since it always runs in the current address space, which cannot
go away for obvious reasons.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21865 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-08 23:51:20 +00:00
Axel Dörfler 1260fa6595 fCachedStack needs to be initialized and reset when the looper is unlocked.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21864 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-08 23:11:13 +00:00
Axel Dörfler eaad52e8d7 Now uses the cache stack trick for a cheaper check_lock() version as suggested by stippi.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21863 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-08 22:43:52 +00:00
Axel Dörfler 69bee56c3b * get_memory_map() leaked vm_address_space references
* fixes a dead lock in vm_soft_fault() - the locking scheme enforces you to
  lock the address space before a vm_cache, not the other way, around. Since
  we need to lock the cache that has our page in fault_get_page(), we violated
  that scheme by relocking the address space in order to get access to the
  vm_area. Now, we read lock the address space during the whole page fault;
  added a TODO that explains why this might not really be desirable, if
  we can avoid it (the only way would be to reverse that locking scheme
  which would potentially cause the more busy vm_cache locks to be held
  longer).
* vm_copy_area() uses the MultiAddressSpaceLocker, but actually forget to
  call Lock() on it...
* delete_area() leaks vm_address_space references - but fixing this currently
  causes other problems to be investigated; I'll open a bug for that.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21862 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-08 22:38:46 +00:00
Axel Dörfler 5af1dda793 bonefish+axeld:
* Removed the ref_count from vm_areas. You now always need to have the address
  space locked (read or write, depending on what you do) when dealing with
  areas.
* Added helper classes for locking the address space: AddressSpace{Read|Write}Locker,
  and MultiAddressSpaceLocker which can lock several spaces at once and makes
  sure no dead locks can happen.
* resize_area() is now using the MultiAddressSpaceLocker instead of no locking
  at all; ie. it should now be safely to use.
* Disabled transfer_area() for now; it will be changed to work like an atomic
  clone_area()/delete_area(), that is, it will hand out a new ID for the
  transfered area.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21848 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-07 21:46:58 +00:00
Axel Dörfler 7e188a5b4b Now prints a more detailed message in case the kernel stack couldn't be created.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21847 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-07 01:54:08 +00:00
Axel Dörfler 277bea40a3 rectArray can only be NULL in case fAsString is true, not the other way around; this fixes
ServerFont::GetBoundingBoxesForStrings() (ScreenSaver no longer crashes as reported by Brian
Verre on the mailing list).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21846 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-07 01:24:09 +00:00
Axel Dörfler 2aacca4469 Brought the document up to date; triggered by an update to this document by
Kamikazow which can be seen as an attachment to bug #1356.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21831 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-06 00:03:49 +00:00
Axel Dörfler f58cf973ad mmlr+bonefish(+axeld - I put the bug in there ;-)):
* Inode::MayReleaseWriter() would release the semaphore too often; therefore,
  Inode::WriteDataToBuffer() now loops in case it still couldn't write anything
  instead of failing - this fixes a race condition (ie. a device is full message).
* In case the read request got filled two times (while adding the request, and
  after waiting for it to become filled), ReadRequest::PutBuffer() overwrote the
  output data. This fixes bug #1331.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21830 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-05 23:38:31 +00:00
Axel Dörfler e9012605b8 vfs_get_vnode_cache() was changed (read: fixed) since r18716; it was wrong
to acquire the extra vnode reference, and actually prevented unmounting from
working - which it now does again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21806 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-03 01:26:35 +00:00
Axel Dörfler 25c969f5a8 * Fixed filling the log in ReceiveLine() - ie. it's not done anymore there.
* Fixed error message in Open() when the server didn't return anything.
* Made the pop3.h header self contained.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21804 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-02 23:05:53 +00:00
Axel Dörfler 171d3a85cb * Made the module code more robust against putting more module reference
than you own - instead of crashing some time later, it will now panic as
  soon as it can.
* No longer put the module image for B_KEEP_LOADED modules - essentially,
  that feature was broken.
* Now use the RecursiveLocker in favour of manual locking where appropriate.
  This actually fixed two locking bugs in error code paths.
* Applied a patch by François Revol: open_module_list() did not work
  when the prefix was already inside a module (as opposed to a directory
  on disk). The current solution is not as efficient, but that can be
  fixed by improving the iterator code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21803 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-02 21:44:54 +00:00
Axel Dörfler bfa87a9ab4 IPv4 now uses module_dependencies, it mustn't put the stack module manually anymore.
This fixes unloading of the stack (some fixes to the module code that let you
determine this kind of bugs earlier will be committed next).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21798 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-02 19:12:28 +00:00
Axel Dörfler 69f6c88d58 * The PtyReader thread now just exits when there is no more left to be read.
* setpgid() when spawning the shell was superfluous, as we're already the
  session leader.
* Added a comment to TermView::NotifyQuit() about why sending B_QUIT_REQUESTED
  to the window isn't such a good idea when you have more than one use for it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21794 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-02 17:21:12 +00:00
Axel Dörfler f328fdc455 Fixed the build under BeOS/Dano:
* setenv() actually exists in Dano.
* On R5, it now uses sprintf() - the previous version would not compile.
* Cleaned some weird code in TermBuffer.cpp to set the "buf" variable to the
  end of the string - it also no longer uses the index() BSD extension
  (same as strchr()).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21793 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-02 16:55:44 +00:00
Axel Dörfler 463be7ab63 Extended the "last acquirer" debug stuff to also contain the thread that
released it last, and the counts involved.
Furthermore, release_sem_etc() will now only negate the acquirer thread
ID instead of setting it to -1.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21781 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-01 16:46:24 +00:00
Axel Dörfler edb15b5565 bonefish+axeld:
* Simplified the notification framework: removed the updater stuff completely;
  it was only there to account for some peculiarities of the node monitor which
  we now solved differently.
* NotificationListener no longer includes a doubly linked list link for convenience;
  it might want to listen to more than just one service.
* NotificationService cannot have an abstract destructor.
* Changed the _user_stop_watching() syscall to mirror the Be API; ie. it's no
  longer possible to just remove some flags separately, just to stop listening
  completely.
* Adapted the node monitor implementation to live in the NodeMonitorService class
  that uses the new notification framework.
* Removed the public kernel node monitor API - it wasn't useful that way since you
  couldn't do a lot with the KMessage in the kernel without using a private API.
  Now you will have to use the (private) notification manager to use the node monitor
  from inside the kernel. At a later point, we might introduce a public API for that,
  too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21780 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-01 14:48:44 +00:00
Axel Dörfler 5102d49461 * Added the default constructor to the Iterator class.
* Added a Current() method to the same class that returns the current element again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21779 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-01 14:28:50 +00:00
Axel Dörfler 7fe764cce5 bonefish: Fixed bug #1346. The relative output directory for the root directory was
computed as '.' which resulted in output path ending with '/.', causing mkdir to choke.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21778 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-31 22:37:21 +00:00
Axel Dörfler c7f1e4bda3 Sorry, the previous patch for WindowAt() by Váradi Zsolt Gyula was broken as well.
This change now actually fixes its logic; thanks for the hint, though :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21777 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-31 21:50:28 +00:00
Axel Dörfler 7b48d975f5 Patch by Vasilis Kaoutsis - thanks!:
* Fixed some warnings.
* Style cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21774 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-31 17:20:34 +00:00
Axel Dörfler a898ee19d6 Ahem... build fix. Forgot that there were some last minute changes that shouldn't have been part of the commit...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21773 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-31 17:17:51 +00:00
Axel Dörfler 5d12f64c57 I have no idea why it would be a good idea to call ReceiveLine() 200000 times if it didn't
deliver a line back, but I've changed it such that it only does this for R5.
I've enlarged the timeout back to 60 seconds, as I guess that could have been the culprit.
Tested here, and it at least still works.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21772 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-31 16:41:06 +00:00
Axel Dörfler bec0386d82 bonefish+axeld: Implemented a robust notification framework for the kernel.
Will be used for node monitoring and other stuff, too (like the Registrar or the
VM low memory handler).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21768 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-31 16:23:40 +00:00
Axel Dörfler 2851dbad53 * Moved Referenceable.cpp to src/kits/support (private libbe API), and its header to
private/shared.
* Made AddReference() and CountReferences() inlines.
* The registrar is now using the private Referenceable version in libbe.so.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21767 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-31 16:20:37 +00:00
Axel Dörfler 8405223037 axeld+bonefish: Got rid of the ParentType in the HashTableDefinition; it doesn't really
belong there.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21766 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-31 16:14:58 +00:00
Axel Dörfler b1c07d8165 * Fixed dumb uses of select() with a hardcoded number of file descriptors.
* Decreased the timeout from 60 to 30 seconds; somehow it seems it waits more
  than just once this time in case something fails over here.
* Cleaned up the messy SSL patch.
* Made the whole thing a bit more compliant to our coding style.
* Got rid of the useless pop3_error() macro.
* Fixed error reporting in ReceiveLine().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21765 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-31 16:00:26 +00:00
Axel Dörfler 2ae1709efb Fixed the date string to comply to RFC 2822 - apparently, the timezone must not be given
as a string anymore (it's deprecated). That at least allows mmlr's internet provider to
recognize mails as valid mails rather than spam.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21764 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-31 15:12:50 +00:00
Axel Dörfler 8d9b9d333a Renovated the about window a bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21763 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-31 15:04:26 +00:00
Axel Dörfler 6e09c5679e area_for() in the kernel can now also find user areas in case you are coming from a user team.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21746 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-30 11:54:11 +00:00
Axel Dörfler 4bef3723a1 * Followed Ingo's suggestion and send the message manually in the runtime loader;
therefore, we could remove the ugly defines from KMessage again, and compile it
  with KMESSAGE_CONTAINER_ONLY.
* Added KMessage::SetDeliveryInfo() to be able to send messages with a correct
  header.
* Fixed a bug in KMessage::SendTo() that would not send the senderTeam when passing
  a negative value for the parameter, but override it when passing in a valid
  value.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21740 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-29 21:36:49 +00:00
Axel Dörfler 3dab566b3a Patch by Vasilis Kaoutsis:
* Fixed several missing incorrect initializations from fYear.
* Style cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21739 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-29 21:12:21 +00:00
Axel Dörfler 7548b9ae20 Forgot to include strace in the huge commit that changed the _kern_load_image() signature, sorry!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21718 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-27 09:40:26 +00:00
Axel Dörfler 74f09960d2 Forgot to remove some debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-27 02:47:22 +00:00
Axel Dörfler 74c0424a43 * Added a mechanism to retrieve a BMessage with eventual error descriptions
for _kern_load_image().
* Added KMessage to the runtime_loader (a bit hacky, though) - it will use
  it to deliver the above mentioned functionality.
* load_dependencies() did return the wrong status code in case a library
  was missing; now it returns B_MISSING_LIBRARY.
* load_dependencies() will now try to load all dependencies when a report
  message is requested; therefore, all missing libraries are listed.
* Renamed uspace_program_args to user_space_program_args.
* The kernel filled in various members of the user_space_program_args structure
  unsafely, ie. was not using user_memcpy().
* Renamed some local variables in team.c to better fit our style guide (ie.
  uargs to userArgs).
* Changed Tracker to use the new _kern_load_image() variant on Haiku to retrieve
  and report all missing libraries. This fixes bug #1324.
* Adapted kernel_cpp.cpp to the runtime loader as well; the latter will now
  compile with _LOADER_MODE defined.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21715 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-27 02:32:19 +00:00
Axel Dörfler d6dfbc4de5 Minor cleanup in comments.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21714 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-27 02:15:39 +00:00
Axel Dörfler 67aa3b3eb0 The "Delete" item in the Trash is not really needed - but was pretty close to "Restore"; I've removed it for safety.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21713 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-27 02:12:23 +00:00
Axel Dörfler 266528b633 read_port[_etc]() now allows the msgCode pointer parameter to be NULL - as on BeOS.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21712 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-27 01:34:14 +00:00
Axel Dörfler de52a13af7 Unconditionally enable all ASSERTs in the kernel for now; should obviously
be turned off for non-development releases later :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21691 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-23 00:59:30 +00:00
Axel Dörfler b69e38d84c * Added a small intro to what this file is about.
* Added a socklen_t typedef.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-23 00:57:45 +00:00
Axel Dörfler 528e58c58e Fixed debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-23 00:52:07 +00:00
Axel Dörfler 965b10ccaa * Fixed build under BeOS/Dano (only tried the latter, though).
* Does anybody know why HaikuBuildCompatibility.h is not included for tools when
  compiled on BeOS/Dano?


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-07-23 00:15:45 +00:00