Commit Graph
145 Commits
Author SHA1 Message Date
beveloper 5cd2d50a61 Allow using the kernel debugger from inside BeBochs using your local keyboard.
You need to enable BOCHS_INPUT_HACK and type inside the BeBochs window,
NOT inside the Terminal where the output is printed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1219 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-28 00:51:38 +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 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 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 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 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 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 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 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 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
beveloper 8271683e44 backport a bugfix from newos:
another terrible bug that managed to exist this long and not clobber everything.
  The io vector table was being created with an incorrect size, so all sorts of garbage was getting written to whomever was allocated after it.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-22 01:00:26 +00:00
beveloper 2be429a65d add extended pointer check to kfree
also initialize newly allocated memory with non zero (0xCC)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1014 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-11 12:44:48 +00:00
beveloper e6d02b3a8b fixed a few bugs
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1013 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-11 12:25:47 +00:00
beveloper ea736e689e moved strlen out of min macro to avoid calling it twice
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1012 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-11 12:23:56 +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
beveloper 75c97114f7 Change int into status_t, and other changes for better BeOS type compatiblitly.
This change also introduces a lot of new warnings concerning printf format
anomalies. Please do NOT fix them. Currently, int32 (and also status_t)
is of type int, but it will be of type long (BeOS compatible) soon, and
these warnings will disasappear.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@973 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-09-03 02:09:48 +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 d703ffc09c This fixes a bad memory corrupting bug that overwrote one byte in
memomry with 0 each time a semaphore was created


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@929 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-29 00:03:45 +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
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
lillo ec603fd345 forgot this
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@823 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-19 09:10:09 +00:00
lillo 615a79cc3c Implemented send_data/receive_data/has_data thread syscalls
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@815 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-19 08:28:39 +00:00
lillo e196b7bbc5 added single-queue scheduler; the old scheduler is compiled by default - to enable the new one uncomment the #define at the beginning of thread.h
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@776 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-16 13:14:29 +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 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 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 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 2de6c0e035 Initial driver settings - don't worry there is nothing implemented at all,
it just exports the API.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@637 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-07 22:25:03 +00:00
Axel Dörfler c2f9230c91 For some strange reason, elf_relocate_rel() crashed and reported a high
rel type (111) when it tried to load the PCI bus manager - I've only removed
the crash, but I didn't dig any deeper yet.
Note, this only happens using bochs - on a real computer, the kernel runs
obviously without any problems.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@593 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-05 06:41:57 +00:00
Axel Dörfler 1e3eaf3b95 Added the write_link() call (currently only local to the VFS).
Added a mode parameter to sys_create_symlink().
Added an open_mode field to struct file_descriptor.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@592 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-05 05:37:17 +00:00
Axel Dörfler fbc9a56c28 Added a missing return value.
Some code cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@590 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-05 05:26:52 +00:00
Axel Dörfler 267cf83fb3 Added a missing return value in port_init().
Cleaned up the code a bit.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@588 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-05 05:25:26 +00:00
Axel Dörfler 7f88f899f4 Added a missing return value.
Cleaned up the code a bit.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@587 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-05 05:23:23 +00:00
Axel Dörfler 75faf9fda3 Added a missing return value in vm_resize_region().
Cleaned the code a bit.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@586 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-05 05:22:27 +00:00