Commit Graph

66 Commits

Author SHA1 Message Date
Ingo Weinhold
c729b01278 The <arch_config.h> header is needed in <syscalls.h>, since we're using
the atomic functions related macros.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@15404 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-12-07 23:11:02 +00:00
Ingo Weinhold
ca9e5772c3 * Reintroduced third LinkAgainst parameter <mapLibs>, defaulting to true.
Library names are now mapped for all targets but "host" (not only for
  "haiku") -- added one more level of indirection to achieve that.
  (TARGET_LIBRARY_NAME_MAP -> *_LIBRARY_NAME_MAP_*).
* Renamed build/HaikuBuildCompatibility.h to BeOSBuildCompatibility.h
  (auto-included when compiling something that uses the Be API for platform
  "host" on anon-BeOS platform), and introduced build/HaikuBuildCompatibility.h,
  which can be included when compiling something that can be built for both,
  Haiku and BeOS compatible platforms.
* Introduced libhaikucompat.a, a library that adds a few functions existing
  under Haiku, but not under BeOS.
* New rule AddSubDirSupportedPlatforms.
* Renamed libopenbeos.so to libbe_haiku.so.
* Introduced new target platform "libbe_test", which is basically equivalent
  to a BeOS compatible host platform target, with the exception, that instead
  of the host platform's libbe.so a special build of Haiku's libbe.so
  (libbe_haiku.so (formerly known as libopenbeos.so)) is used. Furthermore
  Haiku's public app, interface, storage, and support kit headers are used
  when compiling. This replaces the less nice way in which the test app server
  and applications for this test environment were built.
  When building for platform "libbe_test", the library name "be" is
  autotranslated to "libbe_haiku.so". Thus most applications don't need
  special fiddling when them building them for the app server test environment;
  usually an "AddSubDirSupportedPlatforms libbe_test ;" will suffice.
* Reduced the dependencies of <syscalls.h> and fixed problems caused by this
  (e.g. source files not including the needed headers directly).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14749 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-11-07 16:07:25 +00:00
Axel Dörfler
2db3fced5f Moved vfs_bootstrap_file_systems() and vfs_mount_boot_file_system() out of vfs.cpp
and into its own file vfs_boot.cpp.

Added basic support for booting from CD - it doesn't give CDs a higher priority,
so you could end up booting from HD when you didn't explicetly select "CD-ROM"
in the boot loader. Eventually, it should only boot from HD in this case, if
booting from CD failed (because of a missing boot partition or whatever).

fs_mount(), _kern_mount(), and _user_mount() will now return the dev_t of the
mounted device, and not just B_OK. Maybe we should have fs_unmount() work on
a dev_t instead of a path as well...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14403 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-10-17 14:01:04 +00:00
Jérôme Duval
ab38c90461 added a libroot sigpending, kernel support isn't implemented
(fixed partly bug #49)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14181 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-09-13 16:12:20 +00:00
Jérôme Duval
96e6579454 added a libroot sigsuspend, kernel support isn't implemented
(fixed partly bug #48)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14129 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-09-08 12:26:16 +00:00
Axel Dörfler
31a5ff5d8e We now have a (private) writev_port_etc() call. This could be used to avoid
allocating a buffer and copying your data into it, when you have data to
send in several chunks (for example, this could be used by BMessage, as
suggested by Ingo Weinhold).
Code is untested, but should work.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13667 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-07-13 23:55:15 +00:00
Axel Dörfler
183dee22cb Unlike R5, receive_data() could return an error code under Haiku - this
can now only happen if the thread is killed.
_user_receive_data() will now longer pass B_CAN_INTERRUPT to receive_data(),
but B_KILL_CAN_INTERRUPT - this should fix the problem Stefano experienced
with this function, even if I couldn't reproduce it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13075 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-06-12 11:14:37 +00:00
Axel Dörfler
c88974d026 The app_server now updates the kernel's blue screen frame buffer on mode changes
(only the accelerant HW interface does this for now).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12897 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-29 20:23:00 +00:00
Axel Dörfler
4393552b4d The heap is now located at 384 MB, and creates a reserved range that spans over the
following 1152 MB - that area only guarantees that the heap can grow this much before
the application need the memory for something else. And even then, the heap range
is reused from top-to-bottom, allowing for maximum heap usage. Of course, if the
memory after the heap range is not claimed yet, it can still be claimed by the heap,
too. Added new syscall to create the reserved range.
Fixed a bug in vm_delete_areas(): when it removed reserved areas, the area list
could get messed up.
Fixed a bug in resize_area(): resized areas could never be deleted (missing vm_put_area())!
resize_area() now supports reserved regions (but not perfectly yet, see ToDo items).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12692 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-05-16 22:15:13 +00:00
Axel Dörfler
219dacab3c Changed our read link syscall and FS interface call to make it easily possible to be POSIX compliant.
Also changed readlink() to be POSIX compliant with those changes.
"ls -l" does now resolve links properly again (the new coreutils version outlined the problems).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@12263 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-04-06 16:07:10 +00:00
Axel Dörfler
34e92cad76 Added and implemented new system calls switch_sem() and switch_sem_etc(); even if
they are public now, they might become private later on.
It's almost the same as acquire_sem() but allows you to release another semaphore
atomically. This makes condvar implementations and the like very simple to do.
Added B_CHECK_PERMISSION flags to the user calls, although it's not honored yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11887 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 22:35:00 +00:00
Axel Dörfler
a36a94da37 Added the missing clear_caches() function and syscall. Does not yet do anything (which
is perfectly okay on x86 anyway, but should be moved into the arch stuff).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@11869 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-17 17:06:56 +00:00
Ingo Weinhold
7884e8986b * _kern_load_image() has a `flags' parameter now.
* Added _kern_image_relocated() and  _kern_loading_app_failed(), which
  are invoked by the loader to provide the kernel with more info.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11689 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-12 14:58:39 +00:00
Axel Dörfler
8e6c95bcce Removed setenv()/getenv() syscalls - env is now changed on the heap.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11671 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-10 23:04:48 +00:00
Ingo Weinhold
6bbfd2627b New syscall _kern_wait_for_debugger().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11635 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-03-09 22:46:31 +00:00
Ingo Weinhold
44ed1270a3 Added debugging related syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-10 02:55:02 +00:00
Axel Dörfler
d12de9209a Added some more convenience VFS calls (vfs_stat_vnode(), and vfs_get_vnode_name()).
Removed *_create() and *_create_entry_ref() syscalls - they are now handled by
*_open() and *_open_entry_ref() calls which get another parameter for the permissions.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11204 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-02-02 06:20:00 +00:00
Axel Dörfler
14771b1547 Added _kern_transfer_area() syscall.
Added team_id parameter to vm_create_aspace().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@11083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-27 07:06:49 +00:00
Ingo Weinhold
fbca78bb8b Added messaging service syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10993 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-01-24 01:22:51 +00:00
Axel Dörfler
dbef8d930c As suggested by Ingo, the "subsystem" parameter is now a string. That allows
modules to use their module name directly.
Also introduced a whole range of reserved syscall functions in case we want
to add some more.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10458 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 17:09:06 +00:00
Axel Dörfler
b793d2a2bc Cleaned up the disk device manager syscalls to look like the rest.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 17:05:56 +00:00
Axel Dörfler
2fe71062b7 Renamed the semaphore syscalls to the new scheme (_kern_ instead of sys_).
Small cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10453 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 16:06:34 +00:00
Axel Dörfler
c3c3d22f64 Implemented a generic syscall mechanism.
Minor cleanup in syscalls.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10451 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-14 15:46:53 +00:00
Axel Dörfler
dfb71e0444 Added a query length parameter to _kern_open_query() - it's much easier to
do these things in userland.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-12 20:33:58 +00:00
Axel Dörfler
a32c8f261f Renamed _kern_exit() to _kern_exit_team(), just to avoid any confusion.
Added real _user_exit_team() syscall (it was previously incorrectly mapped
to _user_exit_thread()).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10325 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-01 04:14:55 +00:00
Axel Dörfler
b385f97e3e Added our first x86-only syscall for get_cpuid().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10323 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-12-01 03:54:23 +00:00
Axel Dörfler
4c8e8f2f19 Added "flags" parameter to unmount.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10288 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-29 22:42:01 +00:00
Axel Dörfler
0d96fb1167 Moved _user_system_time() to real_time_clock.c.
Renamed _user_set_tzspecs() to _user_set_timezone().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10252 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-26 15:00:27 +00:00
Axel Dörfler
08f58535d9 Added syscalls for get_team_usage_info().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10243 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-25 21:18:54 +00:00
Axel Dörfler
fa2c0f885f Added _kern_get_safemode_option() syscall.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10235 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-25 18:32:51 +00:00
Axel Dörfler
d3d7ec98b6 Moved some time syscalls to the other time related syscalls.
Added _kern_shutdown() syscall.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10232 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-25 17:57:37 +00:00
Jérôme Duval
6f8c05c381 added _kern_get_tzfilename
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-23 00:06:49 +00:00
Jérôme Duval
fbf47a381c added _kern_set_tzfilename, used to set global timezone filename and whether clock is GMT
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10174 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 16:59:10 +00:00
Jérôme Duval
35bec416bb added timezone_offset and dst_observed fields to real_time_data
added prototypes for set_tzspecs, used for setting these fields


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-22 00:28:12 +00:00
Axel Dörfler
4ce0cb439a The set_read_time_clock() syscall now returns a status_t to be able to
indicate failure.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9803 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-05 16:06:28 +00:00
Axel Dörfler
424f90aff9 Added prototypes for readv/writev() syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9766 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-03 14:55:44 +00:00
Axel Dörfler
eef5d24c90 Changed the last argument of _kern_mount() to be a string rather than a void pointer.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9691 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-11-01 00:25:25 +00:00
Ingo Weinhold
2956802960 Added the DDM syscalls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9631 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-29 01:27:44 +00:00
Ingo Weinhold
ad6059d89f Added missing flags parameter to _kern_mount().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9542 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-27 21:42:13 +00:00
Axel Dörfler
e56c30d87d Replaced the old _kern_create_team() syscall with a BeOS style _kern_load_image().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-14 17:46:48 +00:00
Axel Dörfler
b821b7715a Added syscalls for various process/group/session related functions.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9345 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-14 14:31:31 +00:00
Axel Dörfler
6acb672431 New syscall for fcntl().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-10-05 13:28:48 +00:00
Ingo Weinhold
5f169e23f4 Added missing syscall _kern_restore_signal_frame().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9131 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-09-30 23:24:02 +00:00
Axel Dörfler
367fa74ad9 Added needed syscalls for fork(), exec(), and waitpid().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8971 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-09-15 15:42:02 +00:00
Axel Dörfler
655c4f0c99 Resolved the argument type change of _user- vs. _kern_spawn_thread() - introduced
a new thread_entry_func typedef in the kernel only. Unlike thread_func, it accepts
two arguments - that functionality is not exported to the user, though.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8777 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-09-01 15:47:47 +00:00
Axel Dörfler
46365ccea6 Added new syscall _kern_sigprocmask(), renamed other signal syscalls to the
new naming scheme.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8768 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-09-01 12:02:26 +00:00
Ingo Weinhold
d7206d7e3b Changes to allow gensyscallinfos to parse it easier (adding markers where the prototypes begin and end, and named all parameters).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8698 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-08-28 20:29:35 +00:00
Axel Dörfler
c28c059292 Added all syscalls needed for the next_dev() call.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8346 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-07-07 16:07:25 +00:00
Axel Dörfler
63e846d50d Added a syscall to get a path for a directory node_ref.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8278 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-07-02 18:46:36 +00:00
Axel Dörfler
645e138890 Moved vfs/fd _kern_*() calls to syscalls.h.
Removed some includes from syscalls.h where possible, minor style changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@8256 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-07-02 01:51:56 +00:00