Commit Graph

48 Commits

Author SHA1 Message Date
Axel Dörfler
07bdb9c6ea Got rid of gSemRegion as it is never really used.
Renamed all static global variables to have the 's' prefix.
acquire_sem_etc() now fails if B_RELATIVE_TIMEOUT and B_ABSOLUTE_TIMEOUT
are both set.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9854 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-08 13:57:40 +00:00
Axel Dörfler
2786541fbe Fixed a crashing bug in fill_sem_info() - if it was called for a semaphore
with an empty queue, it crashed. sem_info::latest_holder is obviously not
set correctly, and should be fixed.
Some cosmetics.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9771 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 15:33:01 +00:00
Axel Dörfler
b767f41204 BeGeistert checkin: if B_RELEASE_ALL is used, the "count" argument should be
ignored completely (so that zero and below become valid).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-18 15:14:03 +00:00
Axel Dörfler
f197107a3d B_RELEASE_ALL is now a bit faster if it has nothing to do.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9349 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-14 14:37:39 +00:00
Axel Dörfler
48e64cd7c8 Added two experimental release_sem_etc() flags (both should stay, but they
may be renamed):
- B_RELEASE_ALL: the semaphore count is set to 0, all waiting threads are released
  (the "count" argument of release_etc_sem() is ignored then)
- B_RELEASE_IF_WAITING_ONLY: the semaphore count is only decreased if there
  are any waiting threads; ie. the semaphore is signaled
Together, they will make the pthread_cond_*() functions easy to implement, and
they come in handy at other places, too.
Removed release_threads variable in release_sem_etc(), as it was useless.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9330 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-13 15:55:30 +00:00
Axel Dörfler
1956e69d13 Moved the thread::sem fields into their own sub-structure for clarity.
Some minor cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9328 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-13 15:19:08 +00:00
Axel Dörfler
386977d795 Removed delete_sem_etc(), there is no thread::sem_deleted_retcode anymore.
Also removed syscall for that function (shouldn't have been there in the
first place, anyway).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9325 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-13 14:56:44 +00:00
Ingo Weinhold
f57dcf3200 Several follow-up changes required by the changes either to the VFS
syscalls or to the syscall mechanism (which exposed naming and parameter
inconsistencies).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-28 20:51:47 +00:00
Axel Dörfler
0b8a2c94ce Introduced sUsedPorts/sUsedSems variables that can make it more efficient
to deny further port/sem allocation (and also simplifies port/sem stats).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7570 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-05-13 19:35:49 +00:00
Axel Dörfler
9fac193453 Partially implemented get_system_info(), courtesy of Jack Burton.
Added system_info.c to the build.
Added stats support functions to sems & ports.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@7290 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-04-21 22:57:39 +00:00
Axel Dörfler
a9e1ba1d5b Fixes due to the team/thread.h separation and minor header cleanup.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6998 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-16 02:53:41 +00:00
Axel Dörfler
b752b6bb02 Fixed port & sem debugger commands, fixed sem.c compilation with tracing
enabled, courtesy of Jack Burton.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6896 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-04 12:14:48 +00:00
Axel Dörfler
c0601b3a79 Cleaned up _get_sem_info() and _get_next_sem_info().
Implemented the B_CURRENT_TEAM mechanism for _get_next_sem_info().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6691 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 04:26:44 +00:00
Axel Dörfler
3402b15625 No longer needed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 04:05:47 +00:00
Axel Dörfler
492e5970b0 Cleaned up the user syscalls: no longer uses strncpy(), replaced SYS_MAX_OS_NAME_LEN
with B_OS_NAME_LENGTH, make use of the IS_USER_ADDRESS() macro, etc.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6685 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 03:54:00 +00:00
Axel Dörfler
2a3ec096a4 Replaced usage of team_get_team_struct() with team_is_valid().
Replaced some old error codes.
Explained a bit more how to solve a race condition.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6681 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 03:31:08 +00:00
Axel Dörfler
c8ec205b7b Include kernel_args.h instead of stage2.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4969 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-07 23:12:37 +00:00
Axel Dörfler
7b25ddd21a Replaced calls to vm_create_anonymous_region() with the BeOS compatible
create_area() where possible.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4318 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-19 14:28:11 +00:00
Ingo Weinhold
00e2926fda Uses a free list of semaphore slots for faster creation now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4225 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-04 00:06:54 +00:00
Ingo Weinhold
d40ced0e2e Fixed a few smaller issues.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4224 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-03 22:21:00 +00:00
Axel Dörfler
b2704e693c boot headers have been moved, some cleanups, dbg_save_registers() renamed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3162 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:20:38 +00:00
Axel Dörfler
2e7d51f89b Updated due to the changes in scheduler.c (resched() -> scheduler_reschedule(),
thread_enqueue_run_q() -> scheduler_enqueue_in_run_queue()).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2574 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-27 03:05:09 +00:00
beveloper
7991b1a031 added a lot of debugging functions that should help fixing bugs
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-28 02:25:04 +00:00
lillo
2b1e7eaca7 some more small fixes
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1805 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-31 14:32:56 +00:00
lillo
5e7d6a17a0 Enabled the single ordered queue scheduler and made some little fixes
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1804 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-31 13:20:00 +00:00
Axel Dörfler
41691b996a Replaced kmalloc(), kfree(), and kstrdup() with the POSIX equivalents.
Implemented realloc().
Adapted all other sources, some minor cleanups in some files as well.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1773 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 23:07:06 +00:00
lillo
5cdacbaabb *LOTS* of small changes to make the kernel compatible with Be's KernelExport.h
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-26 16:13:36 +00:00
lillo
8fe70e8212 beos compatibility fixes: exit_thread now issues a signal; wait_for_thread returns B_INTERRUPTED if target thread gets killed
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1674 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-26 01:11:15 +00:00
Daniel Reinhold
bd2251961c bug fix: pointer indirection error while checking cookie value
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1644 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-25 11:04:11 +00:00
lillo
f510e6ce60 posix signals support, 1st pass
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1623 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-23 17:31:10 +00:00
Axel Dörfler
634a41725a The main reason I commit this: the last change also made set_sem_owner() to check
for a valid team id.
Added a comment about a race condition in set_sem_owner().
Some minor style changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1309 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-30 03:48:59 +00:00
Axel Dörfler
3fa1fa66f1 Cleaned up the source, made it compatible with our style guide (i.e. global
variables now have the 'g' prefix).
Fixed a very unlikely race condition in create_sem_etc() (can only happen if
that call isn't used properly).
Fixed some wrong return values (i.e. B_BAD_TEAM_ID wasn't returned anywhere).
Optimized _get_next_sem_info(): it now only grabs the semaphore lock
if it has good reason to do so.
Added some comments.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1308 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-30 03:43:32 +00:00
beveloper
ea736e689e moved strlen out of min macro to avoid calling it twice
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1012 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-11 12:23:56 +00:00
beveloper
75c97114f7 Change int into status_t, and other changes for better BeOS type compatiblitly.
This change also introduces a lot of new warnings concerning printf format
anomalies. Please do NOT fix them. Currently, int32 (and also status_t)
is of type int, but it will be of type long (BeOS compatible) soon, and
these warnings will disasappear.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@973 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-03 02:09:48 +00:00
beveloper
d703ffc09c This fixes a bad memory corrupting bug that overwrote one byte in
memomry with 0 each time a semaphore was created


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@929 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-29 00:03:45 +00:00
Axel Dörfler
7f88f899f4 Added a missing return value.
Cleaned up the code a bit.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@587 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-05 05:23:23 +00:00
lillo
91363a4278 Converted thread states to BeOS equivalents (excluding THREAD_STATE_FREE_ON_RESCHED, which will probably go away once the slab allocator is in). Converted priorities to BeOS equivalents; we now have 60 priority queues to map the 120 BeOS priority levels (which have a granularity of 2, thanks Axel) plus the idle queue. Fixed PS.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@573 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-04 20:10:06 +00:00
lillo
aded06e0aa Second round of changes. Splitted thread.c into thread.c, team.c and scheduler.c. First kernel-only get_team_info and get_next_team_info implementation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@569 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-03 23:39:50 +00:00
lillo
3cfbecf1a6 First round of big changes: the term team has replaced proc all over the kernel, the few kern_* syscalls have been renamed to sys_* for consistency, and other small changes. The ps app is temporarily disabled until get_next_team_info is implemented.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@557 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-03 00:41:27 +00:00
lillo
8f4dae6773 applied small patch to boost priority on sem block
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@547 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-31 20:05:24 +00:00
David Reid
d10f93e702 Remove the int_ from the interrupt enable/disable functions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@425 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-25 01:05:51 +00:00
lillo
01fb96c4c3 beos compatible timer routines and style cleanups in timer and sem code
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@353 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-20 22:52:04 +00:00
David Reid
48377a24b0 Few changes...
- catch up with the changes to the interrupt functions
- change the way we handle the list of handlers to use a standard
  function rather than a home spun one :)
- don't add every function on a pci device as a seperate device
- add more info to the pci_info structure
- when FULL_MONTY turned on show more information


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@340 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-19 16:07:36 +00:00
Philippe Houdoin
2c24125957 dbg_add_command() changed into BeOS compatible add_debugger_command().
remove_debugger_command() added.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@289 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-17 22:07:37 +00:00
David Reid
faf1362d13 Continue removing ERR_INVALID_ARGS in favour of EINVAL
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@212 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-14 10:14:29 +00:00
David Reid
dfc6d0bbbd Tidy up some error values we're passing. Essentially remove the ERR_SEM
errors, though these will need to be checked.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@211 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-14 10:10:22 +00:00
David Reid
d2de8b3867 Include kerrors.h where it's required.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@105 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-11 22:21:56 +00:00
ejakowatz
52a3801208 It is accomplished ...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-09 12:24:59 +00:00