Commit Graph
100 Commits
Author SHA1 Message Date
Axel Dörfler c78d05895c Removed some debug output I accidently added to the repository.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2107 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-28 15:13:08 +00:00
Axel Dörfler 363999a1eb Thanks to Bruno, we fixed a bug in Inode::Create() that happened with newly
created files that already existed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2098 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-27 22:40:04 +00:00
Axel Dörfler 98138634aa Added the private ioctl calls to get the 64-bit create and modified time.
Most probably these are used by the kernel to identify changes in a shared
library or something like this.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2088 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-25 23:51:03 +00:00
Axel Dörfler cb0a9fe094 Fixed a stupid bug, used Inode::Name() without locking.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2087 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-25 23:30:54 +00:00
Axel Dörfler 2ad0108fbe Now uses Inode::GetName() and strlcpy().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2086 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-25 18:43:11 +00:00
Axel Dörfler c0f2928e7d Now uses Inode::GetName() where appropriate.
Fixed a bigger race condition when matching against the name index.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2085 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-25 18:42:40 +00:00
Axel Dörfler 97d569f0de Now uses strlcpy() rather than strcpy() where appropriate.
The inode is now locked in bfs_close() (when the indices are updated).
Moved the special cases for INODE_NO_CACHE and INODE_CHKBFS_RUNNING into
bfs_free_cookie() - should probably do that with the index update as well.
Updated some comments.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2084 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-25 18:07:35 +00:00
Axel Dörfler 0606e6e197 Added a new method Inode::GetName() which safely copies the inode's name
to the provided buffer.
Inode::Name() no longer locks the small_data region anymore.
Added ASSERTs that the small_data region is locked for the methods requiring
that.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-25 17:38:19 +00:00
Axel Dörfler d88937ace2 Added a SimpleLock.IsLocked() method.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2082 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-25 17:36:53 +00:00
Axel Dörfler 0f374ebc88 Added a strlcpy() call for usage in BeOS (OpenBeOS has it built-in already).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2081 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-25 17:35:21 +00:00
Axel Dörfler d369893781 Removed the usage of Inode::Name() in the debug output.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2080 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-25 17:33:43 +00:00
Axel Dörfler bb5a5c05ec Added a document describing/specifying the (future) boot process for
OpenBeOS on x86 systems.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2079 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-25 13:58:24 +00:00
Axel Dörfler 673ecc16e5 Added some more output (that should help users not that familiar with BFS).
Now supports fixing errors as well (and introduced a new option -e to fix
some additional errors).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2069 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-23 18:39:25 +00:00
Axel Dörfler 2b99433ef9 Added a basic "chkbfs" command to the repository, doesn't fix anything yet,
though (boy, I am so lazy...).
Cleaned up the Jamfile a bit.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2065 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-22 20:15:12 +00:00
Axel Dörfler fea5713c6d Added a comment about live-queries in Inode::Create().
Some style cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2060 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-22 03:45:01 +00:00
Axel Dörfler b5a0c65c19 Added support for aborted "chkbfs" runs (so that they won't do any harm).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-22 03:32:53 +00:00
Axel Dörfler f512ce4233 Added a new inode flag INODE_CHKBFS_RUNNING to detect aborted chkbfs processes.
bfs_read_vnode() will now wait for half a second at maximum until it returns
the B_BUSY error (so that live queries will like it better).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2058 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-22 03:31:34 +00:00
Axel Dörfler edd77cc706 Added a missing newline.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2057 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-21 21:27:55 +00:00
Axel Dörfler 5254026ba2 Removed the logic for freeing the inode's space from bfs_remove_vnode(); now
instead calls Inode::Free().
If INODE_DONT_FREE_SPACE was set, bfs_remove_vnode() forgot to delete the
inode before returning B_OK.
bfs_read_vnode() will now return the exact error Inode::InitCheck() returned.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2056 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-21 20:45:52 +00:00
Axel Dörfler 11a8dbc63a Completely worked over the inode creation mechanism. Now more work is delegated
to the InodeAllocator class (initialization of the inode, tree creation for
containers).
The InodeAllocator class now frees all the space the inode occupies, including
the B+tree if it's a container (by calling the new Inode::Free() method).
Inode::Free() implementation (logic removed from bfs_remove_vnode()).
Now secures the inode from being loaded by setting the INODE_NOT_READY flag
(completely handled by the InodeAllocator class).
The inode is now removed from its parent if something went wrong after it
had been added.
Utilizes the new BPlusTree::Remove() method where appropriate.
Inode::GetAttribute() now checks if the inode opened is really an attribute.
Inode::InitCheck() now fails with B_BUSY if the INODE_NOT_READY flag is set.
InodeAllocator::Keep() now writes back the inode.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2055 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-21 20:42:44 +00:00
Axel Dörfler 9fec50f9db Added new Inode::Free() method which frees all space associated with an
inode.
Some style cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2054 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-21 20:34:04 +00:00
Axel Dörfler 8a3e35d8c3 AllocationBlock::Allocate() still had the 0xffff thing implemented, now
also the numBlocks parameter is ASSERTed - when compiled with DEBUG turned
off, BFS will enter the kernel debugger in this case (through the use of
the DIE() macro).
Same for AllocationBlock::Free() (but the 0xffff mode was already removed
there).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2053 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-21 20:32:54 +00:00
Axel Dörfler 98887c634e Symbolic link data streams (for long symlinks) now are located in the same
allocation group as the inode, if possible.
Moved the group used blocks info maintaining code into AllocationGroup::Allocate()
and AllocationGroup::Free() (instead of letting the BlockAllocator class do
the work).
Removed the buggy and useless extra 0xffff mode for AllocationBlock::Allocate()
and AllocationBlock::Free(), both methods now ASSERT their parameter range.
Changed some comments, style cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2052 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-21 20:27:57 +00:00
Axel Dörfler def426bce2 Added a BPlusTree::Remove() inline method for strings.
Style cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2051 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-21 20:22:36 +00:00
Axel Dörfler 2edddca0dc Removed the unused INODE_EMPTY flag, and introduced a new INODE_NOT_READY
flag which is used during construction of an inode.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2050 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-21 20:21:28 +00:00
Axel Dörfler 696b26708c The Locker class now uses ASSERT() to be sure the semaphore could be locked.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2049 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-21 20:20:12 +00:00
Axel Dörfler 537e538aa6 Added two new macros, ASSERT(), and DIE().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2048 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-21 20:15:25 +00:00
Axel Dörfler af04ec0bfd Added the missing Inode::IsContainer() method, thanks to Marcus for pointing
this out!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2034 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 17:16:01 +00:00
Axel Dörfler fe8ba34097 Removed raise.o from the kernel posix lib, because find_thread() is currently
missing there.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2033 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 02:15:29 +00:00
Axel Dörfler 95f8931641 BlockAllocator::CheckInode() now has support for the double indirect region
of the stream (so the "chkbfs" functionality is complete now).
Fixed wrong block number report in BlockAllocator::CheckBlockRun(), blocks are
now printed out in absolute numbers (not allocation_group relative anymore).
Use Inode::IsContainer() where necessary instead of Inode::IsDirectory().
Fixed a big and nasty bug in AllocationBlock::SetTo(): the number of bits in
a block could be calculated wrong for a partial allocation group which need
more than one block in the bitmap - hopefully, that was the last remaining
big bug in the block allocator.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2032 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 01:59:14 +00:00
Axel Dörfler 68ca164dc3 Switched from Inode::IsDirectory() to Inode::IsContainer() where necessary.
Now makes use of the changed Inode::Create() logic.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2031 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 01:52:03 +00:00
Axel Dörfler 52fafe627e Changed the parameter logic from Inode::Create() - it now also keeps the
inode locked if the _inode parameter is passed.
Makes some more use of the new type identificators.
Symlinks are no longer added to the "size" index (compatibility with BFS, and it also
makes much more sense).
Now sets S_STR_INDEX for directories, if no index type was set (again, compatibility
issue with BFS).
Fixed a bug in the Inode::GrowStream() method in the double indirect region.
Some style updates.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2030 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 01:50:03 +00:00
Axel Dörfler 67fa10dcde Added some more type identification methods and constants.
Renamed Inode::IsDirectory() to Inode::IsContainer() (since it is also true
for index/attribute directories).
Introduced a new Inode::IsDirectory() that only checks for real and standard
directories. Let's hope I've fixed more bugs with that than introduced new
ones...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2029 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 01:44:17 +00:00
Axel Dörfler b24d7c8bf7 Many style changes.
The only functional change is that bfs_rename() now checks for '/' in the
target name (the VFS should do those things, but you never know as long
you haven't written it yourself :).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2028 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 01:42:01 +00:00
Axel Dörfler 3f870da9c3 Almost complete and working "chkbfs" functionality for BFS. It can be used
via the private ioctls defined in bfs_control.h.
Detects all kinds of errors, and can correct most of them. It doesn't fix
any errors in the b+trees (like the ones created by an earlier version
of the BPlusTree class ;-), and it also can't fix the "blocks are already set"
error, which occurs if more than one file claims a particular block (or
range of blocks) for itself.
The double indirect data range is not yet supported, so use with care, or
run the original chkbfs afterwards to fix any errors because of that.
Might not yet analyze 100% correct (shows way to many errors for my tastes...).
A "chkbfs" command will be made available shortly.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1994 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 01:28:47 +00:00
Axel Dörfler 27fe0a4b4b Adds support for INODE_DONT_FREE_SPACE, and all private BFS ioctls defined
in bfs_control.h.
Some minor cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1993 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 01:22:33 +00:00
Axel Dörfler c113e0ecfd Added another ToDo item...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1991 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 01:21:06 +00:00
Axel Dörfler adb9970c9e This file defines the private BFS ioctls to control the "chkbfs" mechanism
and other stuff.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1990 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 01:19:55 +00:00
Axel Dörfler 359c7618f0 Changed because of renaming IsValidBlockRun() to ValidateBlockRun().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1989 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 01:18:40 +00:00
Axel Dörfler dbba7407de Renamed Volume::IsValidBlockRun() to Volume::ValidateBlockRun() because it
returns a status_t, not a boolean value.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1988 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 01:17:41 +00:00
Axel Dörfler 0c9a17ce08 Added a simple (and completely non-reliable) C implementation for atomic_set(),
and atomic_test_and_set() for userland testing purposes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1987 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 01:16:27 +00:00
Axel Dörfler 7781a5df6b Now uses block_run::MergeableWith() in Inode::GrowStream() - that also fixes
the bug where a block_run could get a zero length after merging it...
Updated a comment in Inode::Remove().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1986 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 01:14:30 +00:00
Axel Dörfler 2afbd5e712 Added new method block_run::MergeableWith() which checks if two different
block_runs can be merged together.
Added a constant for the maximum length of a block_run.
Added a flag constant to the inode that prevents freeing up its space
after it has been removed - this is only useful for the "chkbfs" stuff.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1985 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 01:12:56 +00:00
Axel Dörfler 8ea2f57ddd Added some more type identifying methods and constants (i.e. Inode::IsAttribute()).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1984 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 01:10:31 +00:00
Axel Dörfler cc4445505e Fixed some issues in int.c.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1974 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-17 01:59:31 +00:00
Axel Dörfler d5bb31991f Checked one of Marcus' comments in int.c, and changed the list initialization
to use the newly provided function for this.
module.c now also uses the initque() function, some minor cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1973 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-17 01:38:35 +00:00
Axel Dörfler ab25550f8e Added a initque() inline function.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1972 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-17 01:35:01 +00:00
Axel Dörfler 0fe40cc315 Added the time module to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1960 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-16 17:47:34 +00:00
Axel Dörfler d3243d719b Added an empty time() implementation (just returns zero) to let the kernel
build again.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1959 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-16 17:43:28 +00:00
Axel Dörfler 6c45733119 The traps of copy & paste - this time it should really work...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1954 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-15 22:52:49 +00:00
Axel Dörfler 90b31eb333 Before starting to implement a function, you should know what to do ;-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1953 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-15 22:48:14 +00:00
Axel Dörfler 0dd93a6eb7 Implemented utime().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1952 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-15 22:44:08 +00:00
Axel Dörfler 2935bff656 Added utime.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1951 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-15 22:34:27 +00:00
Axel Dörfler 2a86e17450 Added a missing "lock" in atomic_set().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1931 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-14 01:05:28 +00:00
Axel Dörfler 6f6aedf0b3 Fixed the "famous" VM bug; read_pos() returns the number of bytes read, so
Cache::Read() != B_OK failed if the underlying class used that function.
We can now boot R5 with VM turned on without any problems (what a stupid bug).
As a side effect, you can now also mount volumes on your BFS disk, which was
also broken because of this bug.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1930 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-14 00:24:31 +00:00
Axel Dörfler e94373bfa0 Added some comments, made bfs_create() a bit nicer (no functional change, though).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1929 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-14 00:22:16 +00:00
Axel Dörfler 601f33e246 It's no longer possible to remove or recreate a file that is opened with
uncached access.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1928 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-14 00:21:04 +00:00
Axel Dörfler b334e2f00f Replaced the simple "return" with the RETURN_ERROR() macro for fatal errors
to make them visible in the log.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1927 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-14 00:19:49 +00:00
Axel Dörfler ae01c8b752 Now includes <string.h> which is needed for the strerror() function used
in the macros.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1926 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-14 00:18:50 +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 fb39a31ca7 Fixed a dead-lock that could happen if an attribute was changed and you
had some running live queries.
SimpleLock now allows nesting; added some missing atomic operations to
make its implementation as easy as possible.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1901 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-10 06:05:46 +00:00
Axel Dörfler b71ba910ba The non-benaphore of the Semaphore class just didn't work correctly...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1887 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-09 04:32:47 +00:00
Axel Dörfler 9616fa5dfd Added a test for the BufferPool class.
Began to move the tests directory to bfs/ instead of befs/.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1886 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-09 02:08:54 +00:00
Axel Dörfler dab62fa391 Fixed a big stupid bug that can cause lots of trouble: all locks created
weren't moved to the kernel (as owner), so they would be deleted after
the team which almost randomly created them died.
Benaphores are now only used if USE_BENAPHORES is defined - I have renamed
the Benaphore class to Semaphore to take the changed behaviour into account.
Added a Status() method to the Locker class.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1885 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-09 02:02:31 +00:00
Axel Dörfler e335b08a33 Fixed the wrong maintainance of the max_number_of_levels field in the
B+tree's header.
Some style cleanups.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1870 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-07 12:30:45 +00:00
Axel Dörfler a3d39a9e8a Equation::Match() unlocked the small data section too soon (the contents
could be changed before or during the comparison).
Some style changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1861 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-06 22:17:21 +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 807212446d Added new rules MergeObject, MergeObjectFromObjects, and KernelMergeObject.
Fixed the syntax comment in KernelLd.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1840 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-04 18:52:21 +00:00
Axel Dörfler e729eba84d Merged several object files together - there are now posix_xxx.o and
kernel_posix_xxx.o, where xxx stands for stdio/stdlib/unistd/...
sleep.c and usleep.c no longer reference sys_() calls directly, but
call the OS functions instead (snooze_until(), and system_time()).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1839 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-04 18:49:49 +00:00
Axel Dörfler 66ebd69087 Added select.c to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1835 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-03 17:39:33 +00:00
Axel Dörfler 02e25990ee Add poll.c to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1834 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-03 17:39:10 +00:00
Axel Dörfler c852811405 Added syscalls for select/poll.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1832 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-03 03:23:50 +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 5ef7716d48 Added a missing const to the (sys|user)_select() call.
Broke binary compatibility for the notify_select_event(), since it obviously
hasn't been used on R5 at all.
The new API/implementation is much nicer to use.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1830 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-03 03:14:05 +00:00
Axel Dörfler 339b7d7547 Our libroot.so starts to be too big for jam... (until that is fixed, we
need this patch in place to keep the thing building).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1829 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-03 02:16:39 +00:00
Axel Dörfler 90b544f75f Forgot to remove the const from the strerror implementation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1824 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-02 02:52:56 +00:00
Axel Dörfler b612edb0d7 Added a simple select() and poll() test application - it's not yet added
to the build because I still need to look into those build issues...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1812 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-01 03:03:12 +00:00
Axel Dörfler 350117ec51 Removed the "const" in the return value of strerror() to be POSIX compliant.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1810 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-01 02:58:34 +00:00
Axel Dörfler e7825532f5 Fixed a small possible bug in the R5 select() implementation for the net kit.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1782 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-30 03:44:52 +00:00
Axel Dörfler dbf1da160b Userland implementations for select(), pselect(), and poll().
Not yet added to the build because other stuff is missing, and there is
a problem with jam I have to sort out before I add the missing things.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1781 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-30 02:33:16 +00:00
Axel Dörfler 7ed765a7f9 Added syscalls for select(), and poll().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1780 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-30 02:29:05 +00:00
Axel Dörfler 2dc3fee59d Nicer parameter names in sys/select.h.
Added a comment in sys/time.h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1779 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-30 02:28:09 +00:00
Axel Dörfler 9844285a44 Changed the kmalloc()/kfree() calls to malloc()/free().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1774 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 23:08:35 +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 f2e04b5fa6 Removed the kmalloc(), kfree(), and kstrdup() prototypes.
You now need to include malloc.h (or stdlib.h) and use malloc(), free(),
and strdup().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1772 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 23:03:47 +00:00
Axel Dörfler 3275af4352 Uncomment fClean variable to get the header binary compatible with R5.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1760 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 18:50:06 +00:00
Axel Dörfler d3ed67d76c Removed BStringItem class from ListItem.h.
Fixed the StringItem.h header to be compatible with BeOS.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1758 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 18:41:51 +00:00
Axel Dörfler 1c1ff60b97 Copied over the ListItem.h header with the original one for now (the old
one wasn't compatible and written in a strange style).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1757 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 18:38:31 +00:00
Axel Dörfler b2d5d0de15 Completely replaced the ListView.h header - the old one wasn't compatible
with Be's and in a strange style.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1756 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 18:36:30 +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 b9db114e51 The pollfd fields events & revents had the wrong size (int instead of short).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1749 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 05:39:54 +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 1e7eb4c232 Some style cleanups in khash.c - I just realized that we have two different
hash implementations in that file... we should really remove one of them.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1747 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 04:03:13 +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
Axel Dörfler a2cbc788e0 Adds support for select(), and poll() in the kernel - both are realized
using the current BeOS device API.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1745 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 03:49:57 +00:00
Axel Dörfler 88fae79de6 Moved queue functionality out of module.c and into kqueue.h.
Changed module.c and int.c to use that one.
Some minor cleanups in module.c.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1744 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 03:42:40 +00:00
Axel Dörfler b026d723ba Made the POLLxxx constants compatible with the ones used internally in
the VFS - BeOS don't have poll() at all, so we can freely choose them.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1743 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 03:36:14 +00:00
Axel Dörfler 8f3a4e7dd4 Cleaned up kernel.h; the insque(), remque() functions are now in a separate
header kqueue.h - together with their implementation which was in module.c
Added a new CHECK_USER_ADDRESS() macro that can be used to check if a
user address points into the kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1742 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 03:31:57 +00:00
Axel Dörfler 03360f3bb7 Added our versions of BeOS compatible sys/timeb.h, and sys/times.h
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1741 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-29 00:46:31 +00:00
Axel Dörfler f93086c8b2 Completed the poll.h header file.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@1738 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-10-28 18:46:30 +00:00