Commit Graph

21018 Commits

Author SHA1 Message Date
Ingo Weinhold
74c17141dc arch_debug_get_caller() was returning the return address of the wrong
stack frame (i.e. its own). Not sure what the comment is supposed to
mean. Tested with gcc 2 and 4.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22121 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-30 02:27:06 +00:00
Ingo Weinhold
e7555d345c Also interrupt condition variables in _user_debug_thread().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22120 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-30 02:22:52 +00:00
Ingo Weinhold
65a7804abe Set default team debug flags to 0. Threads of a team were
unnecessarily stopped, when another thread crashed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-30 01:10:46 +00:00
Ingo Weinhold
c0d613f845 Obsolete variable was still checked, which led to source directories
being copied onto the image even when updating only and alwaysUpdate
unspecified.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-30 01:03:36 +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
Ingo Weinhold
9774b66a7d Fixed incorrect check.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22116 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-30 00:57:12 +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
Ingo Weinhold
25938e2538 Thou shalt not use spaces in file names.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22114 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-29 23:49:02 +00:00
Ingo Weinhold
e44a5286c4 The Compare() methods were broken. Worst of all Compare(x, x) would
return 1, which caused STL sort() to access elements out of bounds.
Fixes bug #1422.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22113 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-29 23:06:00 +00:00
Jérôme Duval
0ec9f6f4a0 added dpc to the image
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-29 19:36: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
François Revol
60e8637484 Should help building in zeta.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22109 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-29 12:37:12 +00:00
François Revol
8cfb4e2c76 Add opensound media node to the build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-29 12:33:41 +00:00
François Revol
fb8d275d43 Move this to media/, seems audio/ is only for old stuff.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22107 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-29 12:31:55 +00:00
François Revol
de6be214a0 OpenSound System media node, current version.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22106 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-29 12:28:49 +00:00
François Revol
6505ab3d1b OpenSound's driver API header, for use by OSS media node.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22105 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-29 12:24:29 +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
Ingo Weinhold
c9f8015628 Fixed DEBUB build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-29 01:04:25 +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
Ingo Weinhold
1273dcaaae Respect SA_NOCLDSTOP.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22101 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-28 21:34:05 +00:00
Ingo Weinhold
dbc03773ef Added a SIGCHLD handler, so that the terminal will notice when one of
its shells has been terminated. Usually the thread reading from the tty
master would notice when all slaves have been closed, but they won't be
closed when the shell started a background job that's still living.

Unfortunately there are race conditions in the terminal that can lead to
deadlock when a session is closed. The service threads usually happily
lock the window, while the (locked) window would wait for the service
threads to quit.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22100 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-28 21:19:15 +00:00
Marcus Overhagen
036a8857a6 added a workaround to prevent loading the driver multiple times for the same device
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-28 21:10:39 +00:00
François Revol
11902c74d8 Fix warnings
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22096 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-28 17:37:15 +00:00
Stefano Ceccherini
6a9c969bcc If line breaks have changed, don't take the startOffset into account. Fixes bug #1430
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22095 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-28 15:13:55 +00:00
Ingo Weinhold
f8ae4fe2c2 Added TODO.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22094 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-28 14:28:22 +00:00
Ingo Weinhold
e8b3ee8155 SIGCHLD also needs to be sent when a child is stopped. The shell now
properly realized when a job has been stopped.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-28 14:24:34 +00:00
Ingo Weinhold
d348ab947f mksignames is not at all cross-compilation-friendly, since it includes
the host platform's <signal.h> to build the signal name array from. We
use a hand-edited signames.h when cross-compiling for Haiku, now.
The shell does now show the correct signal names when having been
compiled under Linux. Moreover we avoid bug #1428 (mksignames being
broken under FreeBSD).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-28 12:07:49 +00:00
Ingo Weinhold
10206d89d5 We need to use kprintf() in the kernel debugger.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22091 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-28 03:34:44 +00:00
Ingo Weinhold
63fa790e9b fVariable was not correctly unset when the condition variable entry was
removed from the variable, which could lead to crashes under certain
cicrumstances.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22090 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-28 03:34:06 +00:00
Ingo Weinhold
a7ba350ff2 Missed this one: Completed waitpid().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22089 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-28 03:31:30 +00:00
Ingo Weinhold
24bcf55926 * Introduced new job_control_entry structure which, among other things,
is used instead of death_entry for team::dead_children.
* Added team::{stopped,continued}_children, which, analoguously to
  dead_children, are used to track the state of stopped/continued
  children.
* A team does have a job_control_entry, which is allocated at team
  creation time. It will be inserted into the parent's
  {stopped,continued}_children lists as the team's main thread is
  stopped/continued and removed when waitpid() retrieves the child
  state. When the team dies the entry is detached from the team and goes
  into the parent's dead_children list.
* Removed the wait_for_any field from team_dead_children. It was solely
  used to avoid deletion of the contained entries in certain situations.
  wait_for_child() (the waitpid() backend) always deletes an entry now,
  regardless of whether other threads are waiting; that's in
  accordance with the waidpid() specification. wait_for_thread() removes
  the entry only, if the caller is the parent of the respective team.
* Introduced team_set_job_control_state() which performes the job
  control entry transitions between the respective lists and wakes up
  threads waiting in wait_for_child(). It is invoked on team death and
  when the team's main thread receives job control signals.
* Reorganized wait_for_child(). It handles WCONTINUED and WUNTRACED now,
  too. Removed a block that interpreted the supplied ID as thread ID.
* Added missing parts in waitpid().

Job control starts to work, though it seems to have some glitches.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22088 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-28 03:29:14 +00:00
Ingo Weinhold
c9e5503e5e Notify*() and Unpublish() acquire the threads lock. So they need to know
whether the lock is already being held.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22087 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-28 02:25:14 +00:00
Ingo Weinhold
be8990115c * Base class of InterruptsLocker was accidentially private.
* Added class InterruptsSpinLocker, which disables interrupts and
  acquires a spinlock all in one.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-28 02:23:11 +00:00
Marcus Overhagen
5461952df6 improved debug output
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22085 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-27 22:02:28 +00:00
Ingo Weinhold
ff895459b7 * Replaced the team::dead_children::sem semaphore by a condition
variable. Due to C code including the header I had to turn it from and
  aggregated member to a pointer. I'm very close to starting to convert
  all remaining .c to .cpp files. :-/
* Got rid of the "waiters" field. It was only written, never read.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22084 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-27 20:30:34 +00:00
Ingo Weinhold
4ed7917682 Wait() returns a status_t now, which can be B_OK (condition variable
exists and thread was notified), B_ENTRY_NOT_FOUND (condition variable
not found or Unpublish()ed while waiting), or B_INTERRUPTED
(interrupted by a signal).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-27 20:17:31 +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
Ingo Weinhold
ff308b0b49 Condition variables changes:
* Removed left-over commented C implementation.
* It is now possible for a thread to wait for more than one condition
  variable at a time.
* Made waiting for condition variables optionally interruptable.
* Renamed Notify() method to NotifyAll() and added a NotifyOne(), so
  that it is now possible to wake up only one of the waiting threads.
Pretty much untested at the moment.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22081 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 23:53:12 +00:00
Jérôme Duval
61b50eed27 fix gcc4 build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22080 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 21:34:43 +00:00
Marcus Overhagen
fc002ebb35 print PCI vendor and device ID
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22079 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 21:26:16 +00:00
Marcus Overhagen
e63ca93e6a compile fix for gcc 2.95
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22078 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 21:19:52 +00:00
Jérôme Duval
183bd9f434 black on black isn't easy to read : it's better to switch to the default color
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22077 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 20:54:48 +00:00
Marcus Overhagen
83a2d4db1a make sure the request failes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 20:53:35 +00:00
Marcus Overhagen
48a55608e6 added a completely broken way to get the pci_device
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 20:45:59 +00:00
Ingo Weinhold
ebe6d10684 Turned the files I intend to devastate to C++.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22074 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 20:37:54 +00:00
Marcus Overhagen
9f8f7442f3 pci_device can't be made static, it identifies the individual controller PCI device
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22073 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 20:28:30 +00:00
Marcus Overhagen
a53e060c17 set scsi target id maximum to 33 (32 devices + controller) for ahci controller
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22072 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 19:59:12 +00:00
Marcus Overhagen
402a4a4e7b Set scsi target id limit to 16, was previously hardcoded to 2. Add a node attribute to allow overriding this value.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22071 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 19:57:51 +00:00
Marcus Overhagen
ddf188703a Moved PCI access code, but the compiler refuses to convert 'device_node_info*' to 'pci_device_info*' in argument passing...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22070 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-08-26 19:19:57 +00:00