Commit Graph
66 Commits
Author SHA1 Message Date
Axel Dörfler 24462625e1 Removed header files we'll most likely never use.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@596 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-05 17:23:23 +00:00
Axel Dörfler dc74f4ac15 Added a comment in memheap.h
Added sys|user_write_link() to vfs.h


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@595 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-05 17:22:19 +00:00
Axel Dörfler f7bfd5f065 The '|' character didn't work (fixed by geist).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@594 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-05 07:09:37 +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 dfa8e8ef78 Added a sys_write_link() function.
Added a "mode" parameter to the sys_create_symlink() function.
Added an open_mode to the file_descriptor struct.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@591 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-05 05:31:32 +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
Axel Dörfler c931f4823d Added a missing return value.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@585 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-05 05:20:40 +00:00
Axel Dörfler 151edf0672 Removed the know unnecessary BSD-like fcntl.h (a BeOS one is now in posix/)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@582 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-05 01:35:03 +00:00
Axel Dörfler 2204c4d3d9 Added some possible extensions to the flag set.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@581 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-05 01:31:23 +00:00
Axel Dörfler 2311f9f79f Added a BeOS like fcntl.h, with some additions (which might be implemented
some day).
Cleaned up sys/stat.h a bit, and added new definitions for different types
of symlinks I plan to add - though I am still not sure if it's a good idea ;-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@580 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-05 01:26:14 +00:00
Axel Dörfler 28cdc245d3 Added a "symlink" command that can create symlinks from the shell (like "ln -s").
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@561 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-03 02:04:50 +00:00
Axel Dörfler ae372703ce Big commit: Added symlink support to the kernel.
- added needed syscalls to access symlink support from userland
- implemented lstat(), symlink(), and readlink()
- added dev_t to ktypes.h (for now - should be in a public header anyway)
- added symlink support to the "ls" command (now calls lstat() and shows the
  link target with the -l option)
- changed the sys_read_stat() call to support symlinks, and updated files
  using that function (it gets an extra argument: bool traverseLink)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@560 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-03 02:03:27 +00:00
Axel Dörfler 409a1aeacd Added some comments
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@559 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-03 01:58:14 +00:00
Axel Dörfler 7d141659a6 Fixed some crucial bugs in the elf_load_uspace() function:
- if the path name exceeded about 56 bytes, the function would have seg-faulted
- the calculation to decide if there is an extra region for the bss needed was wrong -
  that caused the kernel to be not able to load certain executables

Also, fixed a warning, and cleaned up the above mentioned function a bit, added
some more comments.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@558 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-08-03 01:10:06 +00:00
Axel Dörfler 7220bfdf74 Added missing newlines
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@543 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-31 14:32:50 +00:00
Axel Dörfler 847248db20 path_to_vnode() should now be able to resolve symbolic links (not tested
yet) - up to 16 symlinks are allowed in one path (following BeOS' restriction).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@518 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-28 19:39:49 +00:00
Axel Dörfler b98a89a763 Forgot to set the stream type for the root directory...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@516 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-28 19:36:43 +00:00
Axel Dörfler 7be577a363 Beginnings of symbolic link support.
Cleanup of the code in many places.
Fixed bad bugs in dir_vnode_to_path(), and entry_ref_to_vnode().
Fixed some other bugs.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@509 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-28 18:41:07 +00:00
Axel Dörfler 3aaee8e5b0 Beginnings of the symbolic link support, though it's not yet working.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@507 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-28 18:36:23 +00:00
Axel Dörfler cd157d41a9 Implemented the "mount" command.
Added a missing newline at the end of alert.cpp.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@432 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-25 02:56:47 +00:00
Axel Dörfler b9f8590233 Added sys/user calls for the open/create entry_ref/node_ref functions.
Added functions to retrieve set the fs_info structure (i.e. used to get the
partition's name); not implemented yet in the internal file systems.
Implemented the dir_create_entry_ref() function.
Re-ordered some parameters for the fs calls to be more consistent.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@396 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-23 14:10:12 +00:00
Axel Dörfler c9d3e51155 Added syscalls for sys_open_entry_ref(), sys_create_entry_ref(),
sys_open_dir_(entry|node)_ref(), sys_create_dir_entry_ref().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-23 14:07:18 +00:00
Axel Dörfler 973b9ee6b7 Added the syscalls for sys_open_entry_ref(), sys_create_entry_ref(),
sys_open_dir_entry_ref(), sys_open_dir_node_ref(), sys_create_dir_entry_ref().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-23 14:05:18 +00:00
Axel Dörfler c3db7c3b9e Added the B_BAD_DATA error.
Removed all the whitespaces at the end of every line.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-23 14:03:46 +00:00
Axel Dörfler aa7d137cdd Added the fs_info.h header needed for some stuff in the VFS.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@392 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-23 14:03:03 +00:00
Axel Dörfler 071f62bc36 Major code cleanup and reorganisation.
Fixed many bugs.
Now, the vfs_ prefix is for functions that are called by other parts of the
kernel. file_ is for file related stuff, dir_ for directory related, and
common_ for both, fs_ for general file system stuff.
Put all prefixed functions together in the source.
Implemented (currently without a user/sys call) opening/creating of entry_refs,
and node_refs (the latter for opening directories only).
Moved vfs_dup(), and vfs_dup2() to fd.c, fd_dup(), and fd_dup2().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@351 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-20 00:16:12 +00:00
Axel Dörfler 8480ee0c2c We now have a completely working "pwd" command; dir_vnode_to_path() is
fully implemented.
I removed all those insane INSANE() debug output and found what made
the difference between a working and a crashing kernel - will have
to investigate this later, because those two lines a) really belong
there, and b) even if they are there, the kernel shouldn't crash just
because of that.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@330 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-19 04:20:07 +00:00
Axel Dörfler 16326dafb6 Added a missing newline.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@328 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-19 02:48:27 +00:00
Axel Dörfler 7378dd7f78 Added padding to the floppy disk (for use with VMware) - could be moved
as default padding into the makeflop executable.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@327 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-19 02:38:35 +00:00
Axel Dörfler 63c5cc0aa1 Removed the big hack called vnode_to_path(), and replaced it with the real
thing dir_vnode_to_path().
But beware, it's not yet working correctly - will fix it later, I have no
time anymore.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@315 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-18 21:06:02 +00:00
Axel Dörfler ba94874630 Added a fs_get_vnode_name() call for the file systems.
Fixed a header dependency in sem.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@314 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-18 20:51:27 +00:00
Axel Dörfler 5213b70b42 Fixed a warning I introduced earlier.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@313 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-18 20:42:52 +00:00
Axel Dörfler bc934681ba Implemented geist's recent change to mutexes - they are now no longer
benaphores; benaphores aren't that beneficial in kernel land, the benaphores
are a way to reduce the number of kernel calls.
They can now only be released by the same thread who originally acquired it.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@312 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-18 19:22:17 +00:00
Axel Dörfler 4bb2d8915b Implemented geist's recent change to mutexes - they are now no longer
benaphores; benaphores aren't that beneficial in kernel land, the benaphores
are a way to reduce the number of kernel calls.
They can now only be released by the same thread who originally acquired it.

Included other changes geist (change 1499) did to a) fix some bugs, and
b) reflect the changes made to the mutexes.
Cleaned the files a bit up, all the commented dprintf()s in elf.c are now
deactivated through a macro.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-18 19:21:40 +00:00
Axel Dörfler 2b5d1dc418 Added the preliminary ASSERT() macro from NewOS.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@310 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-18 18:45:07 +00:00
Axel Dörfler de8acfc621 Fixed the messed up indentation (8 spaces instead of tabs)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@309 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-18 15:03:13 +00:00
Axel Dörfler eb0471173e The kernel will now call arch_cpu_idle() in its main loop.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@308 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-18 14:19:53 +00:00
Axel Dörfler 3d4008e5e4 Added the arch_cpu_idle() call to all platforms, though only x86 really
implements it yet (from freston).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@307 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-18 14:19:14 +00:00
Axel Dörfler 4635c565e4 Added the arch_cpu_idle() call.
Updated stage2_priv.h to reflect geist's, and freston's changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@306 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-18 14:15:47 +00:00
Axel Dörfler a4f9f99fb0 Incorporated freston's changes to the stage 2 boot process which mainly
"fixes" (at least changes :-)) the calculation of the processor speed.

Also included some of geist's earlier changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@303 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-18 13:53:46 +00:00
Axel Dörfler 8bcee3b317 Added another subtle change from geist.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@302 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-18 13:31:55 +00:00
Axel Dörfler 16ba498087 Applied change 1505 of the NewOS repository: added the -p option to makeflop
to be able to pad to the floppy block size.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@285 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-17 19:42:44 +00:00
Axel Dörfler cbe085bc5a Forgot some debug stuff...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-17 08:12:41 +00:00
Axel Dörfler b79d207dc2 user|sys_seek() now returns an off_t.
Changed the fd_close() call.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@267 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-17 08:01:40 +00:00
Axel Dörfler 243d156e21 sys_seek() now returns the stream position as an off_t.
Minor bug fixes.
fd_close() now doesn't have to call remove_fd() anymore - it's now called
in user|sys_close(), fd_close() is now only called in the last put_fd().
Cleanup, improved debug output (without any warnings).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@266 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-17 07:55:51 +00:00
Axel Dörfler b46f99148e sys_rstat() -> sys_read_stat()
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-17 07:52:08 +00:00
Axel Dörfler 296e9ce964 Fixed building of the btreeTest in the new tree.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@243 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-15 15:57:02 +00:00
Axel Dörfler 16237a1692 The kernel will now be build again in the Jamfile (or was there a pressing
reason to disable it?)
Updated much code to reflect the changes in the VFS, including libc's open()
(you can now also create files using this function), and opendir().
Added the syscalls for sys_open_dir(), and sys_create_dir().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@210 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-14 05:18:21 +00:00
Axel Dörfler 3b120ea240 Updated the code to reflect the changes in the VFS.
Fixed some bugs in fd.c (how many more bugs can be in a small file like this? :-).
Added the syscalls for sys_open_dir(), and sys_create_dir().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@209 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-14 05:15:34 +00:00
Axel Dörfler ea536d2ba4 Updated VFS, more POSIX like open/create, has now extra open_dir/create_dir
functions. sys_create() now returns an fd of the open file (some code in the
kernel shell already depend on this).
Moved the seek functions to fd.c.
Updated all internal file systems to a new and updated API.
vfs.c is not cleaned up well, but also has some bug fixes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@208 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-14 05:13:20 +00:00
Axel Dörfler eba8b6cfb9 Next update of the VFS: more posix like open/create; divided create in
sys_create(), and sys_create_dir(), open in sys_open(), and sys_open_dir().
Small cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@207 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-14 05:08:26 +00:00
Axel Dörfler 07fefdf493 Implemented the read_dir(), and rewind_dir() functions for all internal
file systems.
Removed the read() functionality for directories.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@63 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-10 21:55:33 +00:00
Axel Dörfler b18756ad83 Updated dev.c to use sys_read_dir() instead of sys_read().
Is this file even needed anymore? If so, we may move its functionality elsewhere.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@62 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-10 21:54:34 +00:00
Axel Dörfler be28e9bd97 Added the syscalls for sys_read_dir(), and sys_rewind_dir(), and moved the
use of the IOCPARM_LEN() macro to the ioctl() function in libc.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@61 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-10 21:49:37 +00:00
Axel Dörfler 65dc706027 Converted module.c to use sys_read_dir() instead of sys_read(). But it really
should use opendir(), and readdir().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@60 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-10 21:48:27 +00:00
Axel Dörfler c1f7f96bbf Added a parameter for the maximum number of dirents for sys_read_dir().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@59 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-10 21:47:38 +00:00
Axel Dörfler f8d7610714 Added the syscalls for sys_read_dir(), and sys_rewind_dir().
sys_read_dir() now has a parameter for the maximum number of dirents that
are handled by the upper layer - which is currently 1.
Added a comment in fd.h to ease the location of the sys|user prototypes
of the corresponding functions in fd.c.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@58 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-10 21:46:34 +00:00
Axel Dörfler acea35dd63 That was too fast: "os" is added in the sub-Jamfiles (although I don't think
that's a good solution). Fixed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@41 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-10 15:57:36 +00:00
Axel Dörfler e9625b4b51 The "os" directory was missing from the UsePublicHeaders rule.
BTW the last change of this file requires updating your OBOS_TOP variable
to the current tree.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@40 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-10 15:55:05 +00:00
Axel Dörfler f2e60e56e0 Added missing a newline.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@39 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-10 15:48:19 +00:00
Axel Dörfler 74f88d9ebf The syscalls.h wasn't up to date (unlike the one in the old tree).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@36 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-10 13:47:46 +00:00
Axel Dörfler 5a2b57c361 Updated to the current version of dirent.h (that somehow didn't make it to
here).
Notably changes are: C++ safe, struct dirent is now BeOS compatible.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@12 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-07-09 13:57:50 +00:00