Commit Graph

32884 Commits

Author SHA1 Message Date
Ingo Weinhold
3533b6597d * Reintroduced the SMP_MSG_RESCHEDULE_IF_IDLE ICI message. This time
implemented by means of an additional member in cpu_ent.
* Removed thread::keep_scheduled and the related functions. The feature
  wasn't used yet and wouldn't have worked as implemented anyway.
* Resurrected an older, SMP aware version of our simple scheduler and made it
  the default instead of the affine scheduler. The latter is in no state to
  be used yet. It causes enormous latencies (I've seen up to 0.1s) even when
  six or seven CPUs were idle at the same time, totally killing parallelism.
  That's also the reason why a -j8 build was slower than a -j2. This is no
  longer the case. On my machine the -j2 build takes about 10% less time now
  and the -j8 build saves another 20%. The latter is not particularly
  impressive (compared with Linux), but that seems to be due to lock
  contention.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34615 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 11:54:38 +00:00
Ingo Weinhold
10b4833178 When any of the executed timer hooks return B_INVOKE_SCHEDULER, let
timer_interrupt() return B_INVOKE_SCHEDULER. The scheduler itself uses a
timer hook and relies on scheduler_reschedule() to be called. Will make this
even more reliable in the next commit.
This might fix #3535.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34614 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 11:29:38 +00:00
Axel Dörfler
2388f50c53 * The io_handler::handled_count was increased unconditionally, but in some cases
not at all.
* Tried to improve the readability of the "ints" command output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34613 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 11:14:46 +00:00
Colin Günther
ccc02f719a * Moved socket ioctls from FreeBSD compat layer into the corresponding Haiku
header. This shall ensure uniqueness of the ioctls.
* Added a special SIOCEND define to Haiku's sockio.h, so that drivers can define
  private ioctls as can be seen in src/add-ons/kernel/drivers/network/wlan/atheros/dev/ath/if_athioctl.h.
* Modified ioccom.h of the FreeBSD compat layer, to make use of the special
  SIOCEND define.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34612 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 11:11:03 +00:00
Axel Dörfler
33c82a30c0 * While reading in a block, the block is now marked busy, and the cache
unlocked, allowing for more parallel access.
* Writing is still done synchronously, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34611 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 10:29:37 +00:00
Axel Dörfler
d470839990 * The dormant_flavor_info copy constructor was broken, causing bug #5101.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34610 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 09:54:59 +00:00
Jérôme Duval
0a8f3c969e update to tzdata2009l
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34609 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 23:17:00 +00:00
Siarzhuk Zharski
cafbf72df7 VIA VT6122 Gigabit Ethernet driver. Based on FreeBSD vge driver.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34608 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 20:10:39 +00:00
Siarzhuk Zharski
2fa85815f6 Bringing FreeBSD driver to trunk as vt612x.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34607 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 20:00:05 +00:00
Siarzhuk Zharski
d34d043199 VIA VT6122 NIC driver ported from FreeBSD vge driver.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34606 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 19:58:44 +00:00
Axel Dörfler
61c915d1f2 * Fixed GCC2 build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34604 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 19:21:05 +00:00
Axel Dörfler
4e1e966ad7 * Forgot to check in Beep.cpp. Sorry!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34602 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 19:06:24 +00:00
Ingo Weinhold
183a514eb3 Build fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34601 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 17:57:07 +00:00
Ingo Weinhold
1cab99bc10 Apparently someone forgot to commit something. Build fix hack.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34600 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 17:56:51 +00:00
Ingo Weinhold
e973f15a44 Missing includes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34599 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 17:56:24 +00:00
Clemens Zeidler
5237897801 Check if we have 64 or 32 bit.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34598 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 17:49:20 +00:00
Axel Dörfler
6cafce94b5 * Moved the port pool into the new request_data.cpp file; it's no longer
accessible from the outside.
* Instead, request_data now retrieves/releases a reply port on its own.
* There were some more places that still used write_port()/read_port() instead
  of QueryServer().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34597 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 17:40:45 +00:00
Axel Dörfler
e4c87231a3 * Renamed the xfer_* structures to fit the rest, and let them inherit from the
usual structures.
* Also, they now use the QueryServer()/SendToServer() functions instead of
  duplicating them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34596 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 17:17:01 +00:00
Clemens Zeidler
3875331b37 As suggested by Ingo use the normal mutex_lock function in case of ACPI_WAIT_FOREVER.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34595 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 17:14:14 +00:00
Axel Dörfler
5f207b83ae * Moved all server interface definitions from DataExchange.h to
ServerInterface.h.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34594 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 16:57:22 +00:00
Axel Dörfler
1fcbc5470b * More cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34593 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 16:48:49 +00:00
Axel Dörfler
9c3b4706dd * Cleaned up the node manager, got rid of its use of Map, and List.
* Fixed at least two reference counting problems, but nodes from killed teams
  still remain alive (will look into this at a later point).
* GetLiveNodes() is now using transfer_area() as well.
* Made all sizes in the SendTo*() and Query*() functions size_t.
* Replaced reinterpret_casts with static_casts when casting void pointers.
* Ordered the request/reply structures by target.
* Tried to consolidate the use of add_on vs. addon.
* More cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34591 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 16:22:24 +00:00
Ingo Weinhold
951be023f9 Added tool tips to the SchedulingView. A tool tip shows the time and the
thread at the mouse cursor position as well as the thread's state, how long
the thread has been in this state, and what threads are running on all CPUs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34590 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 15:31:39 +00:00
Ingo Weinhold
b1627c9e23 Use the new wait_object_type_name() to avoid code duplication.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34589 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 15:27:14 +00:00
Ingo Weinhold
6d5e661da4 * Although it takes a bit of memory, the Model also stores an array with
pointers to all events now. This allows for backward iteration.
* Model::ThreadWaitObjectGroup: Added a few convenience getters.
* Added functions thread_state_name() and wait_object_type_name() to translate
  a ThreadState respectively a wait object type into a readable string.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34588 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 15:26:42 +00:00
Ingo Weinhold
f3156fffd0 Added format_{big,nano}time() versions returning a BString.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34587 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 15:22:20 +00:00
Colin Günther
ac3566cd6a Adding dependency on kernel_c++_structs.h on the driver, which are using
sys/condvar.h and as such the kernel_c++_structs.h file in their souces.
As Ingo pointed out when introducing the "C++ structs in C only code" feature,
this dependency needs to be put on every target that includes 
kernel_c++_structs.h directly and indirectly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34586 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 12:38:49 +00:00
Ingo Weinhold
bea40bcd49 * Also compute the number of CPUs and the idle time of each CPU.
* Show the CPU count and the total idle time in the "General" page.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34585 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-09 12:02:44 +00:00
François Revol
94a6d7ada8 Work-in-progress BeOS hack allow loading with either the R5 or BONE tty manager, due to using the same version and incompatible module hooks we must detect it at runtime to avoid crashing.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34576 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 23:51:23 +00:00
Ingo Weinhold
815678a637 Added support for filtering the thread list (context menu).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34575 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 23:26:38 +00:00
Ingo Weinhold
63481b10d3 Added copy constructor and assignment operator.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34574 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 23:25:24 +00:00
Ingo Weinhold
2df254bea3 Removed debug output.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34573 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 23:24:58 +00:00
François Revol
50015543bb Change dprintfs to TRACE(), and make always on tracing less verbose.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34571 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 23:00:32 +00:00
Jérôme Duval
a9bff40a89 It seems the codec GPIO count isn't usable for quirks, ie the GPIO count is zero on the Macbook
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34570 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 22:31:30 +00:00
Ingo Weinhold
32c1e7b685 Added support for selecting thread rows.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34568 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 21:47:40 +00:00
Ingo Weinhold
446ac6d727 Added class ListSelectionModel, representing a selection of list (i.e. indexed)
elements.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34567 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 21:46:49 +00:00
Ingo Weinhold
1031a2b4ca * Made the semantics of _Resize() more consequent. Even, if the capacity
doesn't change, it makes room for/removes items at the given index. This
  simplifies the calling methods.
* Added InsertUninitialized() method, a generalized version of
  AddUninitialized().
* Remove():
  - Added optional "count" parameter.
  - Added missing debugger() call.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 21:44:01 +00:00
Axel Dörfler
c28dd9fdc3 * Implemented getting/setting the audio gain of media files.
* Renamed "remove_ref_for" command structures and constants to
  "invalidate_item".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34565 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 19:56:04 +00:00
Axel Dörfler
e3745f7643 * Implemented support for setting/getting the audio gain in the
MediaFilesManager; the client protocol implementation is still missing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34564 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 18:49:54 +00:00
Clemens Zeidler
f0ab4adfc9 We now also use a mutex in acpi. Thanks Ingo for the mutex timeout function.
This fix some warnings mentioned in #4722.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34563 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 18:25:11 +00:00
Axel Dörfler
9dc3c57ac7 * Now uses a flattened BMessage as settings file format instead of a proprietary
one.
* Also renamed the settings file to "MediaFiles" which I had previously already
  renamed accidently.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34562 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 18:08:35 +00:00
Joachim Seemer
9abc1e0049 deskbar.html was missing in the preference section.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34561 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 17:06:54 +00:00
Ingo Weinhold
0760c824df Support for resizing the "Threads" column.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34560 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 17:05:05 +00:00
Ingo Weinhold
c5c5949618 Added support for resizing headers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34559 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 17:04:19 +00:00
Axel Dörfler
8f70123737 * Obviously not one of my best days today: the SERVER_GET_MEDIA_FILE_{ITEMS|TYPES}
commands used a mix of old and new transfer_area() semantics, which didn't work
  out too well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34558 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 15:31:08 +00:00
Axel Dörfler
300b908999 * Also clear the lists after all items/types were iterated over.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34557 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 15:29:30 +00:00
Axel Dörfler
1339ccf411 * Enforce that the caller of transfer_area() owns the area - this fixes some
mean crashes with the media_server version I just checked in.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34556 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 15:28:44 +00:00
Axel Dörfler
1fb5b54d2e * Should have been part of r34554.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34555 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 14:55:14 +00:00
Axel Dörfler
7e5d04c543 Beware! The following commit will crash your system when open "Sounds"; I'll
look into this now.
* Renamed the MMediaFilesManager to MediaFilesManager.
* Got rid of its Map usage, we're using std::map now instead.
* The media_server is using an unsafe method to transfer areas from the server
  to the client. I've changed this for the BMediaFiles API to use Haiku's new
  transfer_area() function. However, this seems to cause the above mentioned
  problems.
* Improved naming and data exchange structures used for the BMediaFiles API.
* Fixed BMediaFiles leaking its lists.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34554 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 14:22:56 +00:00
Axel Dörfler
c6b85a0a7a * The transfer_area() test was not updated to its newer semantics, works again
now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34553 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-08 14:15:58 +00:00