Commit Graph
100 Commits
Author SHA1 Message Date
Axel Dörfler 7e1d70ff27 Some minor cleanups.
Eliminated a macro by introducing an inline function.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1351 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-03 04:45:07 +00:00
Axel Dörfler d0286a7395 Added a warning for drivers which don't export the api_version.
Now returns ENXIO if dev_publish_devices() returns an error (instead of
B_OK).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1317 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-30 21:59:09 +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
Axel Dörfler 79f4cb3e2c remove_fd() is now static.
Added some comments.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-30 03:31:42 +00:00
Axel Dörfler 03874b549f Removed the remove_fd() prototype, it's now a static function.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1306 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-30 03:29:19 +00:00
Axel Dörfler 74708d31ce Cleaned up the code, merged _keyboard_read() and keyboard_read(), and
merged setup_keyboard() and init_driver().
Added TRACE_KEYBOARD define to easily enable debug output from the keyboard driver.
Also made the escape key dropping into KDL - all special keys (like the
F-keys, etc.) aren't working in BeBochs, so that's a simple work-around
for that problem.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1302 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-30 01:43:28 +00:00
Axel Dörfler 36cfa7d4f8 The USE_WALL setting currently doesn't work, because
vm_translation_map_create() checks if the kmalloc()'d page is aligned - maybe
we should just disable the USE_WALL setting if size is PAGE_SIZE for now...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1264 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-29 04:05:18 +00:00
Axel Dörfler 3904aa6bf1 Shouldn't do anything so late; just fixed another bug in the wall code.
Commit early, commit often, they say...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1263 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-29 02:24:42 +00:00
Axel Dörfler a3da50e5ed Fixed a bug in the wall code that actually produced the bug I mentioned
in the last commit... :/


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1262 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-29 02:21:22 +00:00
Axel Dörfler ebe92efe60 Added a front and back wall to each kmalloc() allocation, if USE_WALL is
set to 1 (which it currently is).
I've only used it with bochs yet, and it lets it crash reliably in some
VFS code.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1261 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-29 01:58:22 +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 f4b41f88a2 The private data field in the file_descriptor is now a union to hold different
types of objects (currently fs_mounts, and vnodes).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1190 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-26 03:52:10 +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 83efd20846 The private data field in struct file_descriptor is now a union (that can
currently hold a pointer to a fs_mount, or a vnode).
Updated the index_dir part of the fs API.
Added FDTYPE_INDEX_DIR in fd.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1188 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-26 03:36:04 +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 a16194144d Removed bootfs.h and rootfs.h from the private/kernel/ header directory.
They are now located in src/kernel/core/fs, because they are private to
the VFS, not private to the kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1183 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-26 01:09:27 +00:00
Axel Dörfler 71c882e5f5 Included NewOS change 1642 (argument checking)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1182 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-26 01:01:54 +00:00
Axel Dörfler 5f20abf004 Changes due to name changes in the fs API.
Fixed some warnings in fb_console.c


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1181 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-25 16:39:42 +00:00
Axel Dörfler 2217cc8e6a Changed some names (of structures and definitions).
Added exports for the variables a file system add-on has to export.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1180 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-25 16:38:10 +00:00
Axel Dörfler 3c6bf0c8c1 Renamed "calls" to "ops".
Removed unused prototype.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1179 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-25 16:36:38 +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 62781e5bc4 Renamed fs_id to mount_id.
Some clean-ups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1174 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-25 14:05:44 +00:00
Axel Dörfler 4dc5ecd3cb Renamed fs_id to mount_id.
Moved typedefs for mount_id and vnode_id to fs_interface.h.
Removed some unused stuff in ktypes.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1173 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-25 13:57:06 +00:00
Axel Dörfler ba8080175e Changed the rename_attr() call to allow moving attributes to other files.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-25 12:14:57 +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 bae1b21a60 Reworked the fs API a bit, it's quite complete now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1167 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-25 02:15:00 +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 ec152b4fff Some more changes to the attributes fs API:
Since BFS can't resolve a vnode_id to an attribute, fs_create_attr() now
doesn't return a new vnode_id anymore. Changed all fs_vnode variables to
"file" instead of "attr" to avoid any confusion.
That means for BFS that the cookie which fs_open_attr() returns will have
to include a pointer to the real inode, if the attribute is not part of the
file's inode.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1159 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-24 16:09:02 +00:00
Axel Dörfler 10567eeb6e Changed an unused field of struct stat (st_rdev) to st_type, so that we
can use this structure to call fstat() on attributes and indices.
Added more functions to the file system interface (attributes, and indices).
Added header fs_attr.h, and fs_index.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1158 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-24 16:02:53 +00:00
Axel Dörfler 366a7cf67c Fixed a prototype.
Updated several structures because of the int/int32/status_t change.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-24 00:09:38 +00:00
Axel Dörfler d98c7edc06 Fixed more warnings due to the int/int32/status_t change.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1138 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-24 00:08:50 +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 88e54ccc26 Added the fs_ops calls for attribute/index/query handling - not yet finished
or completed, though.
Renamed fs_cookie to fs_volume, and file_cookie to fs_cookie.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1136 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-23 23:22:18 +00:00
Axel Dörfler fcbbd36ed5 Fixed warnings in smp.c.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1125 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-23 03:06:24 +00:00
Axel Dörfler f200ef51c2 Fixed status_t/int/int32 issues.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1124 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-23 02:58:03 +00:00
Axel Dörfler 822cb704e9 fixed sys_wait_on_thread() prototype.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1123 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-23 02:57:19 +00:00
Axel Dörfler 633275adee Fixed some int/int32/status_t issues.
Also kernel/module.h was hidden by os/drivers/module.h - fixed; kernel/module.h
is now called kmodule.h and only contains the module_init() function for the
kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1122 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-23 02:41:52 +00:00
Axel Dörfler beb8d9fd79 Removed bzero.c and bzero.c from the build for now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1121 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-23 02:39:41 +00:00
Axel Dörfler 4e3c12c0af Moved <types.h> to <sys/types.h>.
Removed dependencies on arch/x86/types.h - this file is not really used
anymore, now. Might prevent compiling on Windows, though.
Replaced "int" with "int32" for the id types.
Removed some stuff from ktypes.h because it didn't belong there.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1120 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-23 02:36:51 +00:00
Axel Dörfler 8edc4bb4c8 Added a very preliminary time.h
Removed the bzero()/bcopy() prototypes, and replaced them with macros - we
should decide what to do with them.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1119 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-23 02:33:02 +00:00
Axel Dörfler 085320eab2 Fixed some header issues (mostly int, status_t).
Replaced <types.h> with <sys/types.h> because that's what those headers
were looking for.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1118 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-23 02:31:05 +00:00
Axel Dörfler b005dbe305 Now adds the headers/os directory to all UsePublicHeader rules. It's mostly
done to fix some build issues (BeBuild.h).
If you have a better idea on how to solve this - or a different idea how things
should work, please go on :-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1117 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-22 23:54:06 +00:00
Axel Dörfler 3f6f3d2921 Added Errors.h, since SupportDefs.h can't be included for now.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1115 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-22 15:58:49 +00:00
Axel Dörfler 483f789643 Implemented the driver_settings API. Tested code, works fine.
Only implements access from within the kernel, not from the BIOS. Since
it requires malloc(), realloc(), open(), etc. in the kernel, you can't
currently link it, but it's added to the build anyway (it's just not
linked against the kernel).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1114 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-22 15:31:50 +00:00
Axel Dörfler 32c655168b Added the new string files to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1072 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-17 15:02:37 +00:00
Axel Dörfler 3cf8edf4dd Removed the old string.h (new one in posix/)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1071 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-17 14:52:42 +00:00
Axel Dörfler 0c9ee87018 Added our string.h headers (the one in private/kernel will be removed now)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1070 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-17 14:51:59 +00:00
Axel Dörfler 2b5451f164 Added private non-implemented copy constructor and assignment operators
for many classes for the sake of completeness.
Added a Transaction::IsStarted() method to not let it look like as if the
transaction is started more than once.
Changes made after suggestions from Mike Nordell, again :-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1067 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-17 01:26:18 +00:00
Axel Dörfler 6829a19b3f Now bfs_write() also don't trigger any notifications during write access
on uncached files (might be needed for the VM file).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1062 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-16 16:09:36 +00:00
Axel Dörfler a00ac4bc29 bfs_write() called Volume::WriteCachedBlocksIfNecessary() also on uncached
files which might cause troubles with the VM file.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1061 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-16 16:06:22 +00:00
Axel Dörfler d801dfdd1c Added CachedBlock::BlockSize(), and CachedBlock::BlockShift() methods as
suggested by Mike Nordell.
Some code cleanups, added a comment in Inode::SetFileSize() to point out
that Stream<Cache>::WriteAt() denies growing the file size its own.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1060 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-16 16:03:05 +00:00
Axel Dörfler 850b731e4d Some small cleanups.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-16 15:13:54 +00:00
Axel Dörfler fb34ad79d7 Added a missing check of the return value of a cached write in
Inode::FillGapWithZeros(), pointed out by Mike Nordell.
Note, that function is currently not used.
Some smaller cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1058 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-16 15:13:23 +00:00
Axel Dörfler 502d10e3ff Mike Nordell pointed me to the fact that BufferPool::ReleaseBuffers() didn't
free anything if it couldn't acquire the semaphore.
That allowed me to get aware of a possible bug in the destructor :-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1057 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-16 15:07:36 +00:00
Axel Dörfler b8cb2cade8 B_CUR_FS_API_VERSION must be 2 on R5; so you need to build it on Dano if
you want to use it for booting Dano.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1030 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-14 01:10:33 +00:00
Axel Dörfler ccc09203a5 Added power management functions to support Dano (needed to boot Dano using
our file system):
- added bfs_wake_vnode(), and bfs_suspend_vnode()
- bumped B_CUR_FS_API_VERSION to 3 as needed for Dano

It should now be able to boot Dano with our BFS, although I haven't tested
it. The information was gained using some degree of reverse engineering...
It won't be part of the BFS implementation for OpenBeOS (that won't run on R5
anymore) :-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1010 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-11 01:03:35 +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
Axel Dörfler f1e38490eb If debugging is disabled and the "release build" of BFS is done, optimization
is no only "-O1", since gcc obviously produces bad code if compiled with more.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@996 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-08 17:08:45 +00:00
Axel Dörfler a130fd5520 Inode::SetFileSize() now doesn't allow changing the file size of uncached
files anymore (only Inode::WriteAt() denied it before).
Introduced a BFS_NAME define to be able to switch easier between "obfs",
and "bfs".
bfs_write_stat() didn't return the error code if Inode::SetFileSize() failed;
instead, it always reported success.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@995 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-08 15:25:23 +00:00
Axel Dörfler b98d9a335a Fixed two bugs in the block allocator:
- the maximum number of blocks a block_run can cover is 65535 not 65536
- allocations over a block boundary in the block bitmap always failed due
  to a incorrectly handled status

Both bugs could prevent BFS to create the VM swap file which led BeOS to
stop booting under certain circumstances.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@989 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-07 02:44:42 +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
Axel Dörfler 35931182a2 Finally implemented growing in the double indirect range.
Tested, and works - we are now feature complete (and now for the bugs... :-)).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@974 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-03 02:10:34 +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
Axel Dörfler 3f8b94d3cd Incorporated the change 1619 into our tree. Cleaned up the source.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@958 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-02 14:49:20 +00:00
Axel Dörfler 2d38e3f603 The beginning of letting a stream grow into the double indirect range.
Not yet finished, nor tested, but almost complete :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@849 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-21 15:52:21 +00:00
Axel Dörfler bc62229fce Volume::Free(), and BlockAllocator::Free() now pass the block_run by value
rather than by reference.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@848 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-21 15:51:03 +00:00
Axel Dörfler eb11b67370 Added a preliminary sys/types.h that just includes ktypes.h for now.
Changed other headers to include sys/types.h rather than ktypes.h.
Added a license reference at the beginning of those files.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@840 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-20 11:10:51 +00:00
Axel Dörfler 12696848a1 Now includes StorageDefs.h to get B_FILE_NAME_LENGTH, and defines MAX_SYM_LINKS
as SYMLINKS_MAX (limits.h).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@839 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-20 11:00:54 +00:00
Axel Dörfler cedc441e4a Added the realpath() prototype.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@838 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-20 10:42:16 +00:00
Axel Dörfler 544cb7d33a Added realpath.c to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@837 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-20 10:41:26 +00:00
Axel Dörfler 83a74a6b48 Added param.h to the repository.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@836 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-20 10:35:02 +00:00
Axel Dörfler c071c40a72 Added the new files in libc/sys/ to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@831 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-20 02:41:43 +00:00
Axel Dörfler ba04be1db0 Fixed the dirent.d_reclen calculation - define KEEP_WRONG_DIRENT_RECLEN to
enable the old and compatible behaviour (on BeOS R5, all available file
systems seem to do that wrong).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@826 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-19 13:31:04 +00:00
Axel Dörfler 9b458ca3e7 Fixed some crashing bugs in the pci code - the kernel now boots again.
Added trace methods.
Cleaned up some code.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@759 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-14 02:09:45 +00:00
Axel Dörfler 6057f25bc6 Fixed a typo; dbg_init2() called dbg_init() instead of arch_dbg_init(), causing
many kernel debugger commands to be removed accidently...
Added a message if you entered an unknown command.
Some cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@758 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-14 00:04:59 +00:00
Axel Dörfler c65ac9cbe8 Disabled debug output.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@757 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-14 00:02:37 +00:00
Axel Dörfler ba5530fdc9 Now only "jam install" triggers the installation of bfs (in this directory only).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@756 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-13 22:50:45 +00:00
Axel Dörfler 8a1faae799 Fixed the build process of bfs; -g and -O2 don't mix well together...
To enable debug output, type:
$ DEBUG=1 jam
Also, it's now automatically installed in /boot/home/config/add-ons/kernel/file_systems


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@751 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-13 22:10:06 +00:00
Axel Dörfler 5ca8da7a4b Backported the new stack crawl command ("sc", not "bt" like in NewOS) from
NewOS. Untested yet, though.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@750 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-13 21:42:53 +00:00
Axel Dörfler ef8d7092e8 Turns out that the old and unused redir_vnode was also still included here.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@749 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-13 21:41:33 +00:00
Axel Dörfler 4c405cbdd4 The fs interface functions should now return a "status_t" rather than an "int".
Added syscalls for, and implemented sys_create_link(), sys_remove_dir().
Implemented link(), unlink(), rmdir().
Fixed the inconsistent path buffer handling in the user|sys vfs functions; the
path buffer is now exactly SYS_MAX_PATH_LEN from userland (incl. terminating
null byte).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@748 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-13 20:39:25 +00:00
Axel Dörfler 854fc92a7c Implemented some more calls in unistd.h.
Replaced the unused syscall for getdtablesize() with one for access().
Implemented sys_access() and added it to the file system interface.
Removed the fs function interface from vfs.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@738 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-13 13:51:36 +00:00
Axel Dörfler 9c3e90a54e Removed the FS interface functions from vfs.h to a new file fs_interface.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@737 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-13 13:48:18 +00:00
Axel Dörfler ae38c6e93d Fixed a bug that could lead to the wrong last_modified time in an inode;
bfs_close() updated the last_modified time & index, but it didn't write
the inode back to disk.
Furthermore, bfs_write() should have already updated the last_modified
time, not bfs_close.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@725 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-12 21:49:03 +00:00
Axel Dörfler e238bce6f5 BufferPool::ReleaseBuffers() didn't set fFirstFree correctly.
Setting uncached access to a file no longer returns an error (if it succeeds).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-12 16:55:12 +00:00
Axel Dörfler ee77e6d68f Implemented uncached access for files (untested though).
Uses a template class to provide generic access to the file.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@715 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-12 16:29:46 +00:00
Axel Dörfler 6a2e071075 Fixed compilation (stupid me :-).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@709 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-11 21:41:12 +00:00
Axel Dörfler 47b30e4a6a Fixed compilation of some BFS tests, caused by the move from befs/ to bfs/.
I will eventually move the tests to the bfs directory as well later.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@708 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-11 20:45:59 +00:00
Axel Dörfler e867ec51af Added mount.c, implementation of mount() and unmount().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@670 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-09 20:48:30 +00:00
Axel Dörfler beddff0f56 Replaced opendir.c with directory.c, implemented chdir(), fchdir(), and
getcwd().
Introduced new xyz(int fd, char *path, ...) style of functions for
sys_setcwd(), and sys_write_stat().
Added missing sys_fstat(). Removed duplicated prototypes in syscalls.h
Fixed some minor bugs.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@669 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-09 20:20:28 +00:00
Axel Dörfler 63f16f88e2 Removed the getdtablesize() syscall hack.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@668 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-09 17:53:02 +00:00
Axel Dörfler 14e18e556e getdtablesize() no longer needs a syscall.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@667 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-09 17:51:02 +00:00
Axel Dörfler 2f5118ccdc Changed the argument order of sys_read/write() to be more intuitive.
Fixed a bug in module.c that I caused due to changes in the VFS.
Added the sys_write_link() call.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@666 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-09 17:03:03 +00:00
Axel Dörfler 75cf4c1ea5 New BeOS-like unistd.h file.
All unimplemented functions are commented out for now - but that has to
change, of course.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@665 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-09 16:58:39 +00:00
Axel Dörfler d7dd1c2ac2 Changed argument order for sys_read/write() to be more intuitive.
Removed unistd.h (new BeOS-like unistd.h will be in posix/ shortly)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@664 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-09 16:57:25 +00:00
Axel Dörfler 533bfa8744 Updated Jamfile to compile "bfs" rather than "befs"
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@644 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-08 01:34:27 +00:00
Axel Dörfler 40f7fd6cf3 Implemented the basics to allow uncached file access under BeOS.
This is needed for the VM swap file and if you want to mount disk images
located on the BFS volume.
There is now a BufferPool class that manages a pool of buffers, so that
Inode::ReadAt()/Inode::WriteAt() can access a file without having to use
the cache or malloc()/free().
The real uncached file access is not yet implemented, though.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@643 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-08 01:23:04 +00:00