being constructed: bfs_read_node() created an Inode object independent from
the one set in new_vnode().
As a work-around (the new VFS layer will introduce some better methods here)
we are now using the bfs_inode.etc field as a pointer to our object - just
like BFS has thought to use this field. If bfs_read_vnode() has to wait for
the inode (because it is being constructed), it will use the "etc" pointer
and don't create it's own Inode object.
Almost all changes made change the API to take this case into account:
- new Inode constructor to be able to be created from a CachedBlock
- CachedBlock now has a Keep() method which suppresses the release_block()
call when the object is destructed.
- a CachedBlock can now be constructed from the contents of another one (by
calling the source's Keep() method).
- Inode::InitCheck() no longer checks the integrity of the bfs_inode - this
is now done by bfs_inode::InitCheck() which is optionally called by the
former (default).
- moved the inline CachedBlock methods out of the class definition (was
too crowded to be readable).
- new Inode::Initialize() which is called by all Inode constructors
- an Inode object now sets a better name for its read/write lock.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3364 a95241bf-73f2-0310-859d-f6bbb57e9c96
object after creation. This enables the Inode constructor to set a better
name for the lock.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3363 a95241bf-73f2-0310-859d-f6bbb57e9c96
log entry - this is only necessary if the buffer is not the one of the
CachedBlock object.
Journal::TransactionDone() now properly aborts transactions if possible,
instead of just writing them to disk (does only work if the log entry
was not used by other transactions already).
Added a comment about how to speed up writing the log entries a bit more
(though it's not so easy to do, and might not be much faster).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3362 a95241bf-73f2-0310-859d-f6bbb57e9c96
a bit sketchy here, but will work for now until I figure out the
proper way to do it.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3359 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Accounted for addition of "udf_" to beginning of on-disk structs.
- Accounted for Block<typename> to MemoryChunk change
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3356 a95241bf-73f2-0310-859d-f6bbb57e9c96
on-disk data structures.
- More endian-neutrality conversions
- More dump() functions
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3354 a95241bf-73f2-0310-859d-f6bbb57e9c96
until we get our kernel C++ utils library up and running.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3352 a95241bf-73f2-0310-859d-f6bbb57e9c96
Slightly more typesafe static array type than built-in arrays,
with array length information stored implicitly (i.e. consuming no
physical space in the actual struct) via the arrayLength template
parameter.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3351 a95241bf-73f2-0310-859d-f6bbb57e9c96
parameter in lieu of using reinterpret_cast, which turns out to
be cleaner all in all.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3350 a95241bf-73f2-0310-859d-f6bbb57e9c96
there is a slow drive. Note, if the system is heavily used and the thread
waiting for the inode to become unbusy is a real time thread, that time
might be not enough - don't have a better solution at hand though (other
than waiting even longer).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3346 a95241bf-73f2-0310-859d-f6bbb57e9c96
thanks to Bruno for pointing me in the right direction (that has probably cost
him several hours of his life ;-))!
Yes, it was that complicated to fix it...
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3345 a95241bf-73f2-0310-859d-f6bbb57e9c96
of the block bitmap could be computed wrong - this could cause all sorts
of errors like: overwriting data, creating the "new_vnode with different
cookie" problem, etc.
Should really be the last bug in that piece of code ;-P
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3331 a95241bf-73f2-0310-859d-f6bbb57e9c96
non-indexed attributes now finally work as they should.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3330 a95241bf-73f2-0310-859d-f6bbb57e9c96
whatever reason).
Index::Update() is now allowed to be called for those indices - in this case
it will just update all live queries.
Added some comments.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3329 a95241bf-73f2-0310-859d-f6bbb57e9c96
Fixed sound stutter after start.
Added generic macros to deal with SIS7012 and Intel differences.
Fixed SIS7012 init (PICB register was written, instead of SR).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3290 a95241bf-73f2-0310-859d-f6bbb57e9c96
dump() or init_check() or what have you function is printing out debug info.
- Added DUMP_INIT() for dump() functions
- Added tabCount option for class DebugHelper.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3279 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Started the mind numbing task of making all the disk structs endian-neutral
- Started the addition of dump() functions
- Updated descriptor_tag::init_check() to treat the location() field as a disk
block instead of an absolute address.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3278 a95241bf-73f2-0310-859d-f6bbb57e9c96
- Updated macro formatting to be more readable
- Changed semantics to be more to my liking
- Added neat-o automatic call-stack indenting
- Added more detailed macro docs
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3225 a95241bf-73f2-0310-859d-f6bbb57e9c96
with the rename from Debug.{h,cpp}. This is what the
first revision of UdfDebug.{h,cpp} should have looked
like. The new updated version shall follow in the next
revision.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3224 a95241bf-73f2-0310-859d-f6bbb57e9c96
More support for proplematic codecs, special inits (patches) still need to
be written after checking datasheets.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3185 a95241bf-73f2-0310-859d-f6bbb57e9c96
trying to detect real codec rate
support for 44100 Hz is now default
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3183 a95241bf-73f2-0310-859d-f6bbb57e9c96
udf_shell to mount, everything is just skeleton functions currently.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3116 a95241bf-73f2-0310-859d-f6bbb57e9c96
butt and move them to /headers/os/drivers and /src/kernel/core or
wherever we agreed to consolidate them.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@3115 a95241bf-73f2-0310-859d-f6bbb57e9c96
To be used under the terms of the Be Sample Code License.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2981 a95241bf-73f2-0310-859d-f6bbb57e9c96
Cleaned up the sources to match our coding style better. Partially removed
fs API documentation (since it really doesn't belong here).
Added to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2960 a95241bf-73f2-0310-859d-f6bbb57e9c96
+ Now supports Joliet volume names
+ Root directory record information is dumped out
along with each primary and supplementary volume
descriptor when TRACE is turned on.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@2868 a95241bf-73f2-0310-859d-f6bbb57e9c96