Commit Graph

74 Commits

Author SHA1 Message Date
Axel Dörfler
782a460588 subtle cleanup, debug output corrections.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@4298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-08-18 03:21:26 +00:00
Axel Dörfler
33aae10b67 The pipe now buffers incoming packets when there is no reader waiting in
a chained buffer provided by cbuf.
Only select support is missing now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3736 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-29 18:29:36 +00:00
Axel Dörfler
2469f26dfc Implemented the basic hand-shaking mechanism; direct data exchange is
now working, but everything that would have to be temporarily buffered
is discarded right now (will use cbufs for this).
Pipes can now actually be created and removed - this didn't work before.
Changed some lock types to better suit their needs.
Small fixes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3708 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-28 04:38:04 +00:00
Axel Dörfler
9a7bfe0ec1 Added minor debug output.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3707 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-28 04:23:24 +00:00
Axel Dörfler
f0df28e20e Now makes use of C++ features, still no reading or writing, though.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 23:04:36 +00:00
Axel Dörfler
ebb226d544 Removed now unused headers (prototypes are now in builtin_fs.h).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3688 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:50:26 +00:00
Axel Dörfler
87357f1456 Added the pipefs to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3687 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:49:31 +00:00
Axel Dörfler
ba6ecd2852 Removed unused headers.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3686 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:49:13 +00:00
Axel Dörfler
e189e20f7e Simplified the vnode creation procedure.
Removed unused headers. Some cleanup.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3685 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:48:32 +00:00
Axel Dörfler
ecb21fa760 Now bootstraps the pipe file system.
Updated due to recursive_lock_init() change.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3684 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:46:27 +00:00
Axel Dörfler
5843ebfbda Added very basic pipefs implementation - only handles files right now
(creation, deletion), no reading/writing allowed (or even started),
no select support.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-27 03:44:28 +00:00
Ingo Weinhold
6ab18748f3 Removed invocations of UsePublicHeaders, which was a no-op anyway.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3628 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-06-23 16:53:22 +00:00
Axel Dörfler
53a2f3f583 boot headers have been moved.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3157 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-05-03 16:09:41 +00:00
Axel Dörfler
43604406d8 Added a new call vfs_new_vnode() which can be used when a new vnode is created
but doesn't have to be read from disk for efficiency reasons.
Fixed a bug in get_vnode() in case of fs->get_vnode() returns an error of some
kind.
fs_mount() no longer hides the return code from the fs->mount() function anymore (for now).
Added some comments and ToDo items.
Changed some return error values to the B_xxx style (will probably need to define
some new error codes for OpenBeOS).
Changed some return types to status_t/void where appropriate.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2786 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-02-21 13:49:26 +00:00
Axel Dörfler
9e63d45563 Moved the fd.c source file into the fs directory.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2601 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-30 19:37:44 +00:00
Axel Dörfler
5afbd29256 Added new files to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2483 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 14:14:07 +00:00
Axel Dörfler
457f7be6f9 Now uses the new list primitive instead of its own implementation (for linking
the vnodes of a mount structure).
Removed stubs for send_notification() and notify_listener() (they are now located
in message.c and node_monitor.c).
Added support for the node monitoring service.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2482 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 14:13:44 +00:00
Axel Dörfler
a7d654ad0a Added almost complete node monitor implementation - support for watching mounts/
unmounts is not yet implemented.
Added an empty implementation for send_notification() - the function that is
(or will be) able to send out BMessages from within the kernel; currently
just prints out what should be done.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2481 a95241bf-73f2-0310-859d-f6bbb57e9c96
2003-01-18 14:11:02 +00:00
Axel Dörfler
ac5b2b4ece bootfs_read_dir() and devfs_read_dir() both returned B_ENTRY_NOT_FOUND
instead of B_OK for the last directory entry.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2148 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-12-03 17:49:28 +00:00
Axel Dörfler
8a531eeb0a Fixes for the changes in khash.
Now the d_reclen field of struct dirent is correctly calculated in all
file systems (read_dir() function).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2114 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-29 08:36:05 +00:00
Axel Dörfler
cd3ea5f216 vnode_path_to_vnode() now correctly asks for access permissions when traversing
the directory tree.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1904 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-11 12:14:19 +00:00
Axel Dörfler
64d41f033f (Almost) completely rearranged the kernel build; main issues aren't fixed
yet, but the jam problem is gone and some bugs fixed.
We are now using merged objects to bind different functionality together,
which simplified the kernel Jamfile a lot.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1841 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-04 19:06:44 +00:00
Axel Dörfler
ed622838f5 Moved the select/poll implementation into its own file (vfs_select.c).
Fixed some minor a larger issues (one memory corruption due to the use of FD_ZERO()).
notify_select_event() is no longer binary compatible (hasn't been used on R5).
Added syscalls for select/poll in the syscall dispatcher.
Fixed some debug output in fd.c, adapted for the new notify_select_event()
call.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1831 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-03 03:19:34 +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
Axel Dörfler
4a2e58074d select_info had the wrong size (uint8 instead of uint16).
Corrected POLLNVAL handling.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1750 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 05:41:10 +00:00
Axel Dörfler
c4943b79fe Forget to free the data allocated in common_select(), and common_poll()...
Changed the header guard in vfs_select.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1748 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 04:21:22 +00:00
Axel Dörfler
58ec046735 Added support for select(), and poll().
Not yet tested.
Moved the CHECK_USER_ADDRESS() macro from vfs.c to kernel.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1746 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 03:54:07 +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
Axel Dörfler
28c9a687e6 Added forgotten os/time.o, stdio/fseek.o, and stdio/rewind.o to the build.
Implemented index syscall functions in VFS.
Added fs_index.c to the build.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1566 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-17 19:34:09 +00:00
Axel Dörfler
f4e51a2dfb Added a new write_stat() call to the file descriptor operations (plus syscall).
Renamed sys_read_stat() to sys_read_path_stat() - sys_read_stat() is now
the fd operation (same for the corresponding write call).
Removed the sys_write_attr_stat() call because it is no longer needed.
Added stat(), fstat(), and other POSIX calls to the kernel - many are still
missing (mainly from stdio).
Added symbols (but no implementation) for unistd.h's process id functions.
Adapted libroot calls that used sys_read_stat() before to the new architecture.
module.c and bus_man.c now use stat() directly instead of the sys_read_path_stat()
call.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1555 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-17 03:09:25 +00:00
Axel Dörfler
ef77a305f8 vm.c: Added user_strlcpy() (and the implementation in arch_cpu_user_strlcpy())
which is now used thorough the VFS code instead of user_strncpy().
fd.c: Replaced some return codes.
vfs.c: joined attr_dir_open(), and attr_dir_open_fd(), added sys_/user_
calls to access attributes, and attribute directory.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1455 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-08 03:24:51 +00:00
Axel Dörfler
f7d5ad8c90 Moved seek functionality from the fs to the vfs.
Renamed read_page/write_page to read_pages()/write_pages()


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1451 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-08 00:42:17 +00:00
Axel Dörfler
c01214de27 Removed the debug output that was accidently added by the last commit.
Included NewOS change 1656 (O_CLOEXEC support, and a bug fix in get_vnode()).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1431 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-07 15:31:40 +00:00
Axel Dörfler
94fc97f703 Return type of thread_set_priority() was wrong.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-05 19:45:31 +00:00
Axel Dörfler
f7a056e53c Some minor changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1383 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-05 17:00:44 +00:00
Axel Dörfler
75c2064c1a Fixed the crashing bug in the VFS - we can't make any assumptions about
the "device" parameter of fs_mount.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1225 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-28 02:19:26 +00:00
Axel Dörfler
0a2bd16f7d find_mount() must not lock the gMountMutex - the caller must do this; that
also fixed a bug, because fs_read_info()/fs_write_info() already locked the
mutex before calling find_mount().
Implemented the file system API for attribute directories, and index
directories.
Introduced a new macro FS_MOUNT_CALL() to call fs ops directly from the
mount structure.
get_new_fd() now panics if it is called with an unknown fd type.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1189 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-26 03:50:14 +00:00
Axel Dörfler
d8f40dbc54 Moved bootfs.h and rootfs.h to src/kernel/core/fs because they are private
to the VFS, not to the whole kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1184 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-26 01:13:42 +00:00
Axel Dörfler
dd36c5aa04 Renamed "calls" to "ops" (yeah, I know, that doesn't make really much sense :).
Completed load_file_system().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1178 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-25 16:34:33 +00:00
Axel Dörfler
e04fced505 The available file systems aren't load anymore on startup.
Reimplemented file system handling, it's now loading file systems on an
on-demand basis - code is not tested yet, but should work!
That also fixed a bug that was in that code before (the image was not
unloaded in case of an error in vfs_load_fs_module()).
Renamed fs_id to mount_id.
Renamed all global variables to have the 'g' prefix in vfs.c.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1175 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-25 14:10:50 +00:00
Axel Dörfler
99e81006d0 Added some tests against wrong values in simple names, like attribute names,
or entry_ref names (paths are safe).
Implemented attr_remove(), and attr_rename().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1171 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-25 12:13:09 +00:00
Axel Dörfler
0ee7f6972b Rearranged some functions to better fit in their context.
new_file_fd() is now called get_new_fd(), and can also create fds for other
types as well. Furthermore, it lost some memory if it couldn't allocate a
new fd.
Implemented most of the VFS attribute API (kernel internal only), only
remove_attr(), and rename_attr() is missing for now.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1168 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-25 02:18:20 +00:00
Axel Dörfler
570b6eaeeb Removed the fs_ prefix from the fs_calls.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1160 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-24 16:17:22 +00:00
Axel Dörfler
e58fbc960b Adapted the VFS and internal file systems with respect to changes made
in fs_interface.h.
Fixed many warnings due to the int/int32/status_t changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1137 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-23 23:24:12 +00:00
Axel Dörfler
6cf8d733aa just changed a comment in rootfs_open().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-09 09:51:51 +00:00
Philippe Houdoin
60d8f409a2 Fix a possible crash in rootfs_free_cookie(). Thanks to Thierry Delhaise (befree)
for pointing this one.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1002 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-09 07:07:44 +00:00
Axel Dörfler
911a288d35 Fixed a missing pointer initialization (found by Thierry).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@986 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-05 11:18:38 +00:00
beveloper
90abd04b34 Change int into status_t, and other changes for better BeOS type compatiblitly.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@975 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-03 02:19:22 +00:00
Axel Dörfler
e1481ffc45 Two fixes from NewOS (change 1606 & part of 1612) that made it into the
VFS.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@959 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-02 14:57:33 +00:00
beveloper
c541e4ebc2 Applying the changes from BeFree.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-26 23:34:43 +00:00