Commit Graph

2170 Commits

Author SHA1 Message Date
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
jerl1
eac71506d6 Some correction, and class BMidiStore.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2047 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-21 19:23:22 +00:00
Matthew Wilber
ef3a275d0f added some more testing, modified some existing testing, made style changes
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2046 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-21 05:06:40 +00:00
shatty
e81d8d7a95 character set and registry
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2045 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-21 01:37:18 +00:00
shatty
6cd1da58ba set the default save as directory appropriately
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2044 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 23:43:33 +00:00
shatty
e2344ee25b fix command line execution - thanks BGA
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2043 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 23:29:00 +00:00
shatty
b7b9d38498 open a new empty document on re-launch
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2042 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 22:40:28 +00:00
Ingo Weinhold
fbd28219aa Merged in FreeType 2.1.2 -> 2.1.3 differences. Resolved conflicts.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2041 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 21:40:01 +00:00
Ingo Weinhold
389d57611d This commit was generated by cvs2svn to compensate for changes in r2038,
which included commits to RCS files with non-trunk default branches.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2039 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 19:21:05 +00:00
Ingo Weinhold
e7f818ff7c Initial revision
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2036 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 19:16:49 +00:00
Ingo Weinhold
68880b2171 Initial revision
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2035 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 19:13:09 +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
beveloper
6396865dcd added automatic media_addon_server launching and termination.
added detection of and cleanup after application crashes.
if the media_addon_server crashes, it will be restarted.
removed preleminary volume control functions.
removed unneeded media_server functions.
changed application registration to use port based messaging.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2027 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 01:28:23 +00:00
Ingo Weinhold
4ff6d49f35 Added setting of the variables for header and jamfile cache files and moved BuildConfig into build/.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2026 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 00:46:04 +00:00
Ingo Weinhold
7209d830c8 Moved BuildConfig into build/.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2025 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 00:43:42 +00:00
Ingo Weinhold
e5eae71c6a Ignore the cache files and BuildConfig.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2024 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 00:42:25 +00:00
Ingo Weinhold
3a361cfe8d Added jamfile caching.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2023 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 00:35:19 +00:00
Ingo Weinhold
05c57717ee Changed MAXLINE back to its original value.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2022 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 00:34:10 +00:00
Ingo Weinhold
d78319516e Removed superfluous search() in compile_on().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2021 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 00:30:51 +00:00
Ingo Weinhold
9079f971cf Added items for the recent changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2020 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 00:29:37 +00:00
Ingo Weinhold
9c0149e2c8 Added jamfile caching to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2019 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 00:28:20 +00:00
DarkWyrm
fe517480c3 More testing and fixes. Removed an attachment bug.
Port capacity checking a compile-time option.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2018 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-20 00:17:22 +00:00
Daniel Reinhold
ca60e89ab7 replaced syscall with find_thread(NULL) to obtain current thread id
currently, find_thread(NULL) also uses a syscall, but in the future,
this will be implemented as an efficient inline lookup in calling
thread's local storage


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2017 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-19 20:57:55 +00:00
beveloper
d55c9bd082 moved queue initialization into int_init2()
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2016 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-19 11:53:41 +00:00
Stefano Ceccherini
9f83f86cbe some more tests which our implementation passes and r5 does not :)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2015 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-19 08:24:13 +00:00
Daniel Reinhold
89feafabe5 fixed call to thread_get_current_thread_id()
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2014 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-19 06:44:51 +00:00
Daniel Reinhold
690fa06644 restored SYSCALL_GET_CURRENT_THREAD_ID -- my mistake, it was fine as it was
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2013 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-19 05:51:13 +00:00
Michael Phipps
bc6600175c Mega changes. Using hash tables.
Many bug fixes
Some formatting changes.
Introduction of vnodeManager - to allow cached, opened and mmapped files to
work together in love, peace and harmony.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2012 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-19 04:05:16 +00:00
DarkWyrm
c773cf76b7 Added new FlushWithReply method. Mostly tested
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2011 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-19 00:31:58 +00:00
DarkWyrm
51c9c2f980 Added new FlushWithReply method and some error checking. Mostly tested.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2010 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-19 00:30:49 +00:00
jerl1
21731ccd09 Correct a bug that cause a deadlock when deleting BMidi class
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2009 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 15:47:31 +00:00
Stefano Ceccherini
769a895450 Corrected some inaccuracies imported from the BeOS headers:
CapitalizeEachWord() DOESN'T capitalize words separated by spaces, it
capitalizes words separated by non alphabethical  characters.
FindLast(char, int32) prototype was misleading.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2008 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 13:45:27 +00:00
Daniel Reinhold
d3aaf99b1e ok, the second time's a charm
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2007 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 07:47:53 +00:00
Daniel Reinhold
88a621e159 call to raise() un-commented now that raise() is implemented
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2006 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 07:45:26 +00:00
Daniel Reinhold
e8b75a376a sigset stuff added to the build
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 07:36:22 +00:00
Daniel Reinhold
f30083eaa8 initial checkin
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2004 a95241bf-73f2-0310-859d-f6bbb57e9c96
2002-11-18 07:35:55 +00:00