Age | Commit message (Collapse) | Author |
|
Previously it was possible for fragmentation to occur and as a result
certain allocations would have a linear virtual address space but not a
linear physical address space. This is bad since a lot of calls to
kmalloc_align rely upon both being linear, it has now been changed such
that all allocations done by kmalloc_align now guarantee this mapping
holds for both virtual and physical addresses.
It was due to oversight and sheer luck that this had been working for so
long.
|
|
Any blocks with the value zero appear to indicate a region completly
filled to zeros.
I don't see this anywhere in the spec but it does make sense and the
behavior matches files that I have on my FreeBSD machine so I guess it
must be valid.
|
|
|
|
I appear to have assumed that len would always be the number requested
not the number left to be read. Therefore to get the number of bytes
left ot read I did `len - rc` but the `- rc` was already accounted for
by line 298.
|
|
|
|
This makes use of TSC and now provides a file system interface for
userland programs to change the system time.
|
|
|
|
|
|
This significantly reduces I/O operations on the bitmap when large
writes occur.
|
|
|
|
Don't invalidate the cache of a block if written to. Instead the cache
can be changed and then be written to disk. This is optimal for ext2
since it gets to keep the cache and the hard drive since it may not have
to do extra reads when doing writes.
|
|
|
|
Off by one error in block/inode lookup that caused roughly two days of debugging
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Instead of using the "append only" list it now uses "relist" which
allows for indexes to be removed.
|
|
Instead of having to store state in variables functions are called to
check the object directly.
|
|
|
|
|
|
|
|
|
|
|
|
sized array
|
|
|
|
|
|
|
|
|
|
Previously a parsing of /usr/../ would fail as it would be searching '/'
for a empty file even though the desired outcome if for it to stop
parsing after reaching '/'. The solution is to give the current
directory inode if the file searched for in the directory is empty.
|
|
|
|
|
|
This also changes the ext2 filesystem so it will now write to the file
it mounted. Currently the file mounted is /dev/sda which points to a
SATA drive.
|
|
It will now also create a corresponding /dev/sd* device for each
detected SATA drive. The filesystem still writes using the ATA driver.
This should be fixed soon.
|
|
string
|
|
|
|
This should make it easier to spot uninitalized memory being used.
|
|
This commit also changes "unsigned char" to "char". A slight step in the
direction of making my coding style less bipolar.
|
|
This also solves a bug where the data_p pointer could get out of range
due to incorrect assumptions being made about the ext2 directory layout.
To be fair even a faulty ext2 directory layout should not be able to
cause memory bugs.
|
|
This is to allow both the kernel and the userland to share certain
header files and to make the folder structure a bit more clear.
|