cache warnings.
Now prints out actual useful information with the -v option.
Removed DEBUG from the build, so that it's now silent and can be used as
a replacement of the original.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6482 a95241bf-73f2-0310-859d-f6bbb57e9c96
to be able to remove the cache correctly (without issuing any warnings).
The Volume::Initialize() method is now only defined in USER mode (of course, this
will change in OpenBeOS).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6481 a95241bf-73f2-0310-859d-f6bbb57e9c96
functions that can be used by the "mkbfs" command (and similary ones).
Also added a kill_device_vnodes() function which should be called before removing
the cache in the file system's "initialize volume" function - again, its use is
intended for the "mkbfs" utility only.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6480 a95241bf-73f2-0310-859d-f6bbb57e9c96
- locking policy is now: 1) the volume lock, 2) the inode lock, 3) start
the transaction (the journal lock) - you don't need all locks, but you
have to follow this order when you need more than one of them.
- in many cases, this makes our inode read/write lock useless. I am really
looking forward to the OpenBeOS VFS layer where we can remove many of
these locks again.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6464 a95241bf-73f2-0310-859d-f6bbb57e9c96
Probably doesn't work, but it can be used as a template :)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6453 a95241bf-73f2-0310-859d-f6bbb57e9c96
Note: if anything in this Jamfile builds properly, it should get
part of the build, right?
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6452 a95241bf-73f2-0310-859d-f6bbb57e9c96
Now acquires the volume lock always before get_vnode() is called as long
as UNSAFE_GET_VNODE is defined (which now is by default).
May cause some unwanted side-effects; it still has to be thorougly tested.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6424 a95241bf-73f2-0310-859d-f6bbb57e9c96
crash: bfs_inode::InitCheck() didn't check INODE_DELETED, and Inode::Remove()
didn't clear the INODE_IN_USE flag (as the original BFS, IIRC).
Some more debug output and checks.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6416 a95241bf-73f2-0310-859d-f6bbb57e9c96
fsh command (which is part of BeOS for some unknown reason).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6415 a95241bf-73f2-0310-859d-f6bbb57e9c96
the Inode will now be deleted, and it will only be tried to be instantiated
if the indices block_run is not zeroed out.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6406 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added a ToDo comment so that I don't forget to add the standard indices :)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6381 a95241bf-73f2-0310-859d-f6bbb57e9c96
Just for consistency with "installfloppy" and Marcus :).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6361 a95241bf-73f2-0310-859d-f6bbb57e9c96
just uses a RecursiveLock instead.
Changed Journal::CurrentTransaction() so that it returns the current
transaction only if it's valid for the thread asking for it.
That doesn't fix the bug, but changed its timing a bit.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6356 a95241bf-73f2-0310-859d-f6bbb57e9c96
any pending bfs_read_vnode() calls when it is destructed and the inode
goes away.
Fixed some endian related issues.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6350 a95241bf-73f2-0310-859d-f6bbb57e9c96
for newly initialized disks. Should work for all sizes :-)
Documented a bit what good values actually mean.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6339 a95241bf-73f2-0310-859d-f6bbb57e9c96
being created and removed without a break.
That test is finally able to reproduce the bugs we are seeing in the
kernel but that never occured in userland - thanks *very* much to
mmu_man who found the shortest way to trigger it.
Just run it for a few minutes and it should happen (press "return" to stop it).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6338 a95241bf-73f2-0310-859d-f6bbb57e9c96
called since last change (could mount volumes, but cannot write to them
anymore without errors).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6328 a95241bf-73f2-0310-859d-f6bbb57e9c96
Renamed DPRINT() to the more common (in our codebase) TRACE().
print_sr0() is only compiled in and called if DEBUG is defined.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6324 a95241bf-73f2-0310-859d-f6bbb57e9c96
Set the volume ID to 1 now - that's a hack to get it working until
we have better support from fs_shell's kernel.c.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6321 a95241bf-73f2-0310-859d-f6bbb57e9c96
If the parent is NULL, Inode::Create() will now set node::parent to
the node itself, like BFS is doing it (for root and indices nodes only).
Added a temporary hack in Volume::Initialize() to get the inodes freed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6320 a95241bf-73f2-0310-859d-f6bbb57e9c96
Hardcoded device file to "/boot/home/test-device" - more to come :)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6318 a95241bf-73f2-0310-859d-f6bbb57e9c96
disk_super_block::IsValid() method.
There is now a disk_super_block::Initialize() method that sets up
a super block for creating a new file system on it - it's currently
hard coded to produce correct results for 10 MB images, though;
the allocation group stuff has to be done a bit more flexible :)
Added a DeviceOpener class that simplifies Volume::Mount() a bit and
fixes some problems of it (forgot to call close() once or twice).
Implemented the new Volume::Initialize() method that completely
covers the mkbfs functionality.
Fixed the broken Volume::ToBlockRun() method - AFAICT it has only
be used by Volume::CreateIndicesRoot() and in dump_bplustree_node
so far (should not have been critical, as the former was probably
never called yet [only if you had tried to create an index on a
BFS volume that didn't have indices yet]).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6313 a95241bf-73f2-0310-859d-f6bbb57e9c96
arguments (such for creating a root directory, for example).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6312 a95241bf-73f2-0310-859d-f6bbb57e9c96
BlockAllocator::InitializeAndClearBitmap().
Added BlockAllocator::BitmapSize() which returns the size of the block
bitmap in bytes - used it where appropriate.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6311 a95241bf-73f2-0310-859d-f6bbb57e9c96
of the one that issues the alarm - it now does an ugly cast to get the
real thread structure. It would be nice if we had an additional user
parameter to a timer event.
Thanks to Travis for reporting this one!
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6310 a95241bf-73f2-0310-859d-f6bbb57e9c96
to give its existance a bit more sense.
update_media_formats() no longer ASSERTS if the lock is held, but fails
if it's not locked.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6300 a95241bf-73f2-0310-859d-f6bbb57e9c96
Fixed a bug where the debug commands would be added in bfs_mount(), but
not removed (since bfs_unmount() is only called if bfs_mount() doesn't
fail).
Switched to kernel_cpp.h/cpp.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6290 a95241bf-73f2-0310-859d-f6bbb57e9c96
Implemented BMediaDecoder::GetDecoderInfo().
Changed the documentation style to something doxygen can read.
Added some ToDo comments.
Some minor style changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6249 a95241bf-73f2-0310-859d-f6bbb57e9c96
It now implements the new format registration needed for the BMediaFormats
class.
Does not yet implement a settings file, and does not yet support removing
of existing decoders/encoders.
Also, it currently replies in FormatManager::GetFormats() in the tread of
the media server with a timeout of 5 seconds...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6246 a95241bf-73f2-0310-859d-f6bbb57e9c96
media decoder detection code and the FormatManager.
It now stores all registered formats from a decoder, and uses this
information to implement GetDecoderForFormat().
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6245 a95241bf-73f2-0310-859d-f6bbb57e9c96
stuff.
Simplified ServerApp::MessageReceived() and added MEDIA_SERVER_GET_FORMATS
to it.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6244 a95241bf-73f2-0310-859d-f6bbb57e9c96
of the class. Renamed fIndex to fIteratorIndex.
Some minor style changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6242 a95241bf-73f2-0310-859d-f6bbb57e9c96
the FormatManager in the server.
Update the plugin API.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6241 a95241bf-73f2-0310-859d-f6bbb57e9c96
DestroyReader/Decoder() functions - they erroneously don't put the
plugin back.
Added license.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6240 a95241bf-73f2-0310-859d-f6bbb57e9c96
implementation and the now unused old meta_description stuff.
Also fixed the == and < operator for media_format_description.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6237 a95241bf-73f2-0310-859d-f6bbb57e9c96
Added MEDIA_SERVER_GET_FORMATS for the new BMediaFormats implementation.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6233 a95241bf-73f2-0310-859d-f6bbb57e9c96
the compiler doesn't break anything by aligning them differently.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6215 a95241bf-73f2-0310-859d-f6bbb57e9c96
uses - it does crash anyway, when we export them (and return NULL).
Asked Marco about it, we'll see what comes back :-)
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6205 a95241bf-73f2-0310-859d-f6bbb57e9c96
and some other tiny things.
Will print out a meaningful error in case there is one - tests locking behaviour
of BMediaFormats::GetNextFormat() and if GetCodeFor() works correctly.
Added to the build. Removed "root" library from the rules - that one doesn't
have to be included manually.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6200 a95241bf-73f2-0310-859d-f6bbb57e9c96
settings, the window is now set to the intended position.
Also enlarged the default window height a big, since it was a bit too
unglossed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6199 a95241bf-73f2-0310-859d-f6bbb57e9c96
Removed extra "root" reference in the Jamfile - libroot.so is linked
against automatically by ld.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6196 a95241bf-73f2-0310-859d-f6bbb57e9c96
Also fixed a crashing bug if the decoder was not setup with data from
the MusePackReader.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6172 a95241bf-73f2-0310-859d-f6bbb57e9c96
It's even working a bit (you hear something that's at least similar to
what you should hear :).
Since the underlying engine doesn't differentiate between container and
contents, this looks like a hack, too.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6165 a95241bf-73f2-0310-859d-f6bbb57e9c96
SetStreamInfo() (because MusePackDecoder can use this data).
Removed some other unused lines.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6163 a95241bf-73f2-0310-859d-f6bbb57e9c96