265 Commits

Author SHA1 Message Date
Axel Dörfler
a32a4683ff * Implemented flock() semantics to the advisory locking backend. Not tested
(must also compare to BSD; I've looked at their sources, but I might have
  missed something).
* Added sys/file.h and the flock() system call.
* common_fcntl() could forget to put back the file descriptor on some error
  conditions (I guess we should introduce and use a DescriptorGetter class).
* Cleaned up fcntl.h, moved the BSD extensions S_IREAD and S_IWRITE to
  sys/stat.h where they belong, and added the missing S_IEXEC to them.
* Added some more comments.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23836 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-03 15:37:31 +00:00
Axel Dörfler
e5bc2a9e7a Added BSD extension vsyslog() - is also found on Linux.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23835 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-03 15:31:16 +00:00
Ingo Weinhold
a54c125e37 Added experimental ktrace_[v]printf() functions to libroot. Their output
is recorded in a kernel trace entry (if tracing is enabled).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23686 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-21 15:10:05 +00:00
François Revol
d8fe1829e2 Add *rint*() from glibc 2.3.5.
This make app_server link \o/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23651 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 20:06:08 +00:00
Jérôme Duval
6b46058e04 needed for long double support
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23650 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 19:34:03 +00:00
Jérôme Duval
9ce320179c __m68k_get_time_base instead of __m68k_time_base
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23649 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 19:27:35 +00:00
Jérôme Duval
850456ed43 added missing m68k bits for math functions
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23648 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 19:26:58 +00:00
François Revol
d296c4e1f9 Fixed swapping functions.
BFS now validates the superblock and the boot menu now lists the image if I force checking for kernel_x86. \o/


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23626 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-19 02:11:46 +00:00
François Revol
82062f804c Works much better when actually allocating the TLS entry...
Now the backend works, Login can list users.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-14 02:03:34 +00:00
Michael Lotz
3be509a228 Fix the static cleanup mechanism introduced to the runtime_loader/libroot:
* Fixed wrong start and size used in the runtime_loader
* Fixed off by one error in the matching loop of the cleanup hook
* Make sure we successfully acquire the locking sem of the exit stack

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23493 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 18:49:27 +00:00
Michael Lotz
8c2a9d7433 bonefish+mmlr:
As (our) gcc unfortunately uses atexit() to clean up lazily initialized static
variables inside functions we have to ensure that we do the right thing with
unloadable shared objects. In case a shared object was unloaded that installed
an atexit() hook the application would crash on exit. We now implement a
callback into libroot that is used to call all the atexit() hooks of a
component that is to be unloaded. Most prominently this fixes the media_server
crash at shutdown.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23486 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-13 12:08:34 +00:00
Jérôme Duval
15ee8ca67b system() should continue to wait when wait_for_thread returns B_INTERRUPTED
fixes bug #1707


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23439 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 15:51:02 +00:00
Axel Dörfler
748988ae1f mkdir() is supposed to respect the umask when creating the directory.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23438 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-12 13:17:59 +00:00
François Revol
c6b3f26049 cuserid also goes there...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23396 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 13:52:48 +00:00
François Revol
38196dea30 Move getlogin*() to its own file and fix the build.
This way it doesn't get linked to the kernel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 13:47:45 +00:00
François Revol
cf9e598dd0 Fix the build for you mortal monousers.
Actually getlogin didn't belong to usergroup.c in the first place anyway.
And definitely not to the kernel.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23391 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 13:05:06 +00:00
François Revol
ffb64301bf Old code I wrote that implements multiuser the same way R5 did as a hidden feature...
Worked quite well in latest zeta, so it's already tested :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23385 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 11:14:02 +00:00
Ingo Weinhold
34b3b26b3b Merged branch haiku/branches/developer/bonefish/optimization revision
23139 into trunk, with roughly the following changes (for details svn
log the branch):
* The int 99 syscall handler is now fully in assembly.
* Added a sysenter/sysexit handler and use it on Pentiums that support
  it (via commpage).
* Got rid of i386_handle_trap(). A bit of functionality was moved into
  the assembly handler which now uses a jump table to call C functions
  handling the respective interrupt.
* Some optimizations to get user debugger support code out of the
  interrupt handling path.
* Introduced a thread::flags fields which allows to skip handling of
  rare events (signals, user debug enabling/disabling) on the
  common interrupt handling path.
* Got rid of the explicit iframe stack. The iframes can still be
  retrieved by iterating through the stack frames.
* Made the commpage an architecture independent feature. It's used for
  the real time data stuff (instead of creating a separate area).
* The x86 CPU modules can now provide processor optimized versions for
  common functions (currently memcpy() only). They are used in the
  kernel and are provided to the userland via commpage entries.
* Introduced build system feature allowing easy use of C structure
  member offsets in assembly code.

Changes after merging:
* Fixed merge conflict in src/system/kernel/arch/x86/arch_debug.cpp
  (caused by refactoring and introduction of "call" debugger command).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23370 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-11 00:36:44 +00:00
Axel Dörfler
5f23ba4ac9 If either the path or the resolved path is NULL, realpath() now returns
EINVAL. This also fixes bug #1659.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23087 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-08 21:45:40 +00:00
Jérôme Duval
d2d6724788 added pthread_once() implementation and tests
there is still a TODO on an init race condition 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23076 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-07 21:02:59 +00:00
Ingo Weinhold
c63bdde05e Correctly return errors.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23004 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-27 15:27:52 +00:00
Stefano Ceccherini
5945644720 Implemented _debuggerAssert().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22966 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-20 16:15:27 +00:00
Ingo Weinhold
f969977bc1 Patch by Vasilis Kaoutsis (modified by myself): Implemented sigset().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22947 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-18 16:39:18 +00:00
François Revol
05c6416eba Add macros for syscalls with 11 to 13 args.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22933 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-15 22:59:35 +00:00
Ryan Leavengood
0e230349da I needed nextafterf support in WebKit, so I added it here. It was already
defined in the headers. If this is not the correct way to do this, let me
know, but it seems to work (well it compiled at least.)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22890 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-11 03:23:17 +00:00
Ingo Weinhold
99ed286c94 Patch by Vasilis Kaoutsis: Implemented sigrelse().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22865 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-09 23:23:46 +00:00
Ingo Weinhold
0a1968cf8f Patch by Vasilis Kaoutsis: Implemented sighold().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22846 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-06 22:11:43 +00:00
Ingo Weinhold
a56a0c276a Patch by Vasilis Kaoutsis: Removed redundant parameter check (sigaction()
does it anyway).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22830 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-04 17:48:49 +00:00
Jérôme Duval
f87a6142a4 SYSCALL20 is needed on x64-64
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22808 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-02 19:18:01 +00:00
Jérôme Duval
7d2666b85a added a few more syscalls arguments for _kern_create_child_partition()
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22793 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-01 19:36:34 +00:00
Ingo Weinhold
c727d6fd76 Patch by Vasilis Kaoutsis: Style cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22790 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-01 18:05:22 +00:00
Ingo Weinhold
74fa73bac6 Patch by Vasilis Kaoutsis: Implemented sigignore(). Small changes by myself.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22789 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-01 18:03:36 +00:00
François Revol
1b6ddd3492 Optimized 64bit atomics:
- use movem
- fix return value: the convention is to return in d0:d1 (MSB:LSB)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22783 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-01 03:43:08 +00:00
François Revol
b82ae48b36 Note on use of TAS,CAS and CAS2 on Amiga.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22743 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-26 22:27:31 +00:00
François Revol
fac9743e5c s/ppc/m68k/
Lure the preprocessor to not replace #n by "123" for syscalls...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22739 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-26 17:09:08 +00:00
François Revol
dd68e9e8b4 More of the libc...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22738 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-26 17:07:23 +00:00
Ingo Weinhold
77c02b906b Patch by Vasilis Kaoutsis: Check for a valid signal number before
doing something. If the signal is not valid, set errno and return -1.
Mini style changes by myself.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22728 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-25 22:01:16 +00:00
François Revol
2bbf13b7a5 Add syscalls.
Fix CAS2 usage, only supports (An) addressing mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22727 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-25 18:45:34 +00:00
Axel Dörfler
fcfbb8aa6c libprefs.so uses the private _klock_node_() syscall, and even loops until it
returns success - since this stub always returned failure, this prevented all
apps using that library (like Gobe Productive) from running.
It now calls the Haiku equivalent _kern_lock_node(), and Gobe now runs fine!
This closes bug #562.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22724 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-25 17:04:10 +00:00
François Revol
00c8f3104c Add a warning about CAS2: 060 doesn't have it, we'll loose 64bit atomics :^)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-25 00:39:27 +00:00
François Revol
cc9ad8e824 Start of math support from glibc.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22701 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-24 22:54:33 +00:00
Ingo Weinhold
6bd2f399e8 Patch by Vasilis Kaoutsis: Implemented killpg().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22697 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-24 13:49:42 +00:00
François Revol
51238e6bd3 Missing Jamfile.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22693 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-23 23:38:34 +00:00
Ingo Weinhold
56a63c3b2a Patch by Vasilis Kaoutsis: Style and copyright header cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22671 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-22 23:51:46 +00:00
François Revol
cb44673606 Naive swap_float/double. Not sure sizeof(double) is 8 on m68k...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22664 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-22 15:50:27 +00:00
François Revol
1609107a45 - some swap asm.
- 64bit atomic ops.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22657 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-22 00:48:01 +00:00
François Revol
188b43270e m68k arch files for libroot.
Mostly ppc from r22648. Some atomic_* done.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22654 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-22 00:10:36 +00:00
Ingo Weinhold
cb93a65449 Patch by Vasilis Kaoutsis: Added and implemented lockf() using fcntl() locking.
Small change and notes on standard compliance by myself.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22628 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-20 19:51:49 +00:00
Axel Dörfler
c3d49e1317 * Fixed warning.
* Use strlcpy() to copy the confstr instead of strncpy().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22565 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-15 11:57:28 +00:00
Ingo Weinhold
e701d86af5 Patch by Vasilis Kaoutsis: Style cleanup, "OpenBeOS license" -> "MIT license".
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22537 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-13 17:18:34 +00:00