Commit Graph

607 Commits

Author SHA1 Message Date
Axel Dörfler
7b83e8b24c Made find_port() less heavy; it no longer disables interrupts for the whole
run. Also create_port() now changes the port ID only when the port lock is
grabbed, so that we don't need to acquire the port list lock in find_port().
Removed setting lock to "0" in create_port() because if it's not 0 in the
first place, there is something seriously wrong (should add an assert there).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6897 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-04 20:43:13 +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
0efc0b5804 Forgot to remove some parts of the previous read lock.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6892 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-03 18:58:54 +00:00
Axel Dörfler
76946b95da Fixed the pipefs. It now should work without any problems.
I don't know which part of me has written the previous version, but
it seems not have been supervised by a brain while doing it.
The read requests are now maintained per inode (as it has to be),
and there is one read lock per request.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-03 18:57:52 +00:00
Axel Dörfler
acfdb017dd team_kill_team() is now called kill_team().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6871 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-03 01:02:08 +00:00
Axel Dörfler
0ff38616f4 Renamed syscalls to new scheme.
Changed thread_kill_thread() to the BeOS compatible kill_thread() function.
Added missing _user_kill_thread().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6870 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-03 01:00:16 +00:00
Axel Dörfler
564ffd3da7 Renamed thread/team syscalls to new scheme.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6869 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-03 00:58:19 +00:00
Axel Dörfler
98d68e7085 Renamed syscalls to new scheme.
Moved wait_for_team() into the exported kernel API region.
Added missing call for _user_get_current_team().
Made the team_kill_team() call to the BeOS compatible kill_team().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6868 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-03 00:57:00 +00:00
Axel Dörfler
1748ad5db7 Added find_thread() (does not yet work with name != NULL).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6860 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-02 17:40:14 +00:00
Stefano Ceccherini
7667c061fe Simplified an expression (which was even wrong before)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6859 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-02 16:29:04 +00:00
Stefano Ceccherini
b2fece1ec0 renamed some global variables to have the "g" prefix
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6858 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-03-02 16:16:11 +00:00
Axel Dörfler
f9e9fb76f0 On second thought, it would be strange if the pattern used everywhere
else is not found here. The BeOS kernel also exports these two *_etc()
functions, and we might want to do that, too.
{receive|send}_data() are now interruptible from userland, but not when
called from the kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6700 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 06:29:59 +00:00
Axel Dörfler
510a1ab1e9 Removed arch_cpu_user_strncpy()/strcpy().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6698 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 05:18:51 +00:00
Axel Dörfler
775470756b On second thought, also removed user_strcpy().
Copied over the function description of user_strlcpy() from x86/arch_cpu.h
to this file.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6697 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 05:13:31 +00:00
Axel Dörfler
f4d747d77b No longer uses user_strcpy(), and it's even slightly faster.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6696 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 05:08:17 +00:00
Axel Dörfler
26b91cb6ec No longer use user_strcpy() but user_strlcpy().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 05:03:04 +00:00
Axel Dörfler
083d73d739 No longer uses strncpy(). Removed the user_strncpy() call - we don't want
to have it in the kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6694 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 04:40:02 +00:00
Axel Dörfler
0d6f9a67e5 Banned strncpy(), switched return type from "int" to "status_t" for vfs_get_vnode_from_path().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6693 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 04:31:51 +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
faeac94982 Removed <kerrors.h> and the last occurences of ERR_* codes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6690 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 04:12:34 +00:00
Axel Dörfler
48f31b9581 Replaced team_get_team_struct() with its safer friend team_is_valid().
Replaced SYS_MAX_OS_NAME_LEN with B_OS_NAME_LENGTH.
Banned strncpy().
Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 04:08:09 +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
70f0602f2d Cleaned up the _get_port_info() and _get_next_port_info() calls, factored
out the port_info setup to fill_port_info(), implemented the B_CURRENT_TEAM
behaviour as described in the BeBook (well, almost, since B_CURRENT_TEAM
is not defined in R5, it's just "0"), improved error checking.
Cleaned up user syscalls.
Replaced SYS_MAX_OS_NAME_LEN with B_OS_NAME_LENGTH.
Banned strncpy().
Added our license.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6687 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 04:02:24 +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
592a6437f2 receive_data() is now interruptible (as reported by Starr Kline) - not tested!
Cleaned up _get_thread_info() & _get_next_thread_info() - factored out
the thread_info setup into fill_thread_info().
Is now using team_is_alive() instead of team_get_team_struct().
Replaced SYS_MAX_OS_NAME_LEN with B_OS_NAME_LENGTH.
Banned strncpy() in favor for strlcpy().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 03:46:42 +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
07f317bf6a Replaced SYS_MAX_OS_NAME_LEN with B_OS_NAME_LENGTH.
Removed old error codes.
Replaced the DEVFS_IOCTL_* with their Be equivalents. Note, the related
functions are not user space safe yet. But since the devfs will be
almost rewritten, there is no point in changing it now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6679 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 03:21:59 +00:00
Axel Dörfler
677e35664d Replaced SYS_MAX_OS_NAME_LEN with B_OS_NAME_LENGTH.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6678 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-23 03:19:02 +00:00
Axel Dörfler
38afe35e66 Renamed CHECK_USER_ADDRESS() to IS_USER_ADDRESS() to make its function more clear.
Added our license to the updated source files.
Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6672 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-22 14:52:59 +00:00
Axel Dörfler
b8c2776bb7 Moved some more functionality into create_new_vnode() to reduce code duplication.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6469 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-02 15:09:21 +00:00
Axel Dörfler
daf0126bb2 alarm_event() has sent the signal to the currently running thread instead
of the one that issues the alarm - it now does an ugly cast to get the
real thread structure. It would be nice if we had an additional user
parameter to a timer event.
Thanks to Travis for reporting this one!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6310 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 02:01:46 +00:00
Axel Dörfler
016f7b6f32 Fixed compilation when you can't add private/kernel to your include headers.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6301 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 18:31:04 +00:00
Axel Dörfler
86228d9f03 Applied NewOS change 1914: fixes small bug (one page off), calls
{get|put}_physical_page_tmap() directly.
Also replaced all occurrences of "addr" with "addr_t".


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5938 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-06 16:12:52 +00:00
Tyler Dauwalder
581cfaf2c0 - Added declaration and definition of std::nothrow
- Wrapped everything but #includes in #if _KERNEL_MODE to keep from
  redeclaring/definining operator new and nothrow in userland.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-06 00:27:34 +00:00
Axel Dörfler
11e38cc1d9 Applied the unmount() fix from NewOS change 1906.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5906 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-05 01:03:14 +00:00
Axel Dörfler
462e4bb4fa That restriction was superfluous.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5789 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-12-29 02:29:27 +00:00
Axel Dörfler
caeef6fada Fixed the broken use of read_request::PutBuffer() - the team's address space
is now honoured: the shortcut is now only made if it's okay to do it. Added
a comment what we could do to further improve performance.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5788 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-12-29 02:27:22 +00:00
Axel Dörfler
6994475d83 Added a comment about a stupidity I did with pipefs - I seem to have completely
forgotten about different address spaces with direct (unbuffered) pipe transfer,
shame on me.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5786 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-12-28 15:27:24 +00:00
Axel Dörfler
4a4fcca956 Forgot to check the fix... it now compiles again, and there is a new
accessor method Inode::BytesInChain().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-15 15:15:54 +00:00
Axel Dörfler
5eb712b2dd Now correctly returns the available bytes in the pipe in st_size.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-14 13:21:37 +00:00
Axel Dörfler
57b3bc3b9c Added _kern_debug_output() syscall.
Fixed warning about missing user_strlcpy() prototype.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-13 22:08:30 +00:00
Axel Dörfler
f2eb00db1e Fixed and simplified the user_*() team syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5331 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-12 15:37:44 +00:00
Axel Dörfler
e81f0e1f79 Added "where" as alias of "sc" as in BeOS.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5310 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-11 04:49:15 +00:00
Axel Dörfler
1e065e6132 dbg_register_file[][] now reserves space for SMP_MAX_CPUS CPUs, not only 2.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5309 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-11 04:02:54 +00:00
Axel Dörfler
b196064201 dbg_init() no longer sets sCommands to NULL - variables in the BSS are
always zeroed anyway.
cmd_help() is now able to print out help about the specified command
only - it will also print out all aliases of that command. Reduced
the distance between the command name and its description; NULL
descriptions are now also allowed.
There is now a find_command() function that's used throughout the
module. Like in the Be debugger, it will now also accept partial
matches, i.e. "co" will most probably match "continue" (as long as
there is no new "co*" command added by another component). It will
first try to find an exact match, and only if that failed it will
search for a partial match.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-11 03:47:14 +00:00
Axel Dörfler
91d35b5f62 Removed dbg_set_serial_debug() - there is now only set_dprintf_enabled().
Disabled dbg_get_serial_debug(); it's only used temporarily in the keyboard
device (and I removed its usage there, too).
Added "continue", "exit", and "es" commands as in the Be kernel debugger
(they will all exit the debugger and try to continue normal kernel execution).
Reordered the sources so that public kernel API is together.
Added a _user_debug_output() syscall (not yet activated) which dumps to the
kernel's serial output.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5305 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-11 03:07:53 +00:00
Axel Dörfler
36c3931c38 Added quick implementation of real_time_clock() and real_time_clock_usecs() -
it might even be correct, but we also might want to have this stuff somewhere
else (libroot).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5279 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-11-08 02:13:19 +00:00
Axel Dörfler
5f1ee2313e vm_translation_map_quick_map() has been slightly changed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5207 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 22:01:18 +00:00
Axel Dörfler
d70e4e5163 vm_translation_map_quick_map() was slightly changed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5202 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 21:17:19 +00:00
Axel Dörfler
9e54ef1458 system_time() is implemented in libroot/os/arch.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@5201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-10-28 21:16:36 +00:00