- fix for "out of extents" panic;
- return ENOENT when a file name does not exist;
- inode count sanity check upon unmount.
Change-Id: Icb97dbaf7c8aec463438f06b341defca357094b2
iso9660fs has been cleaned up and debugged. It now supports:
* ISO 9660 Level 3,
* System Use Sharing Protocol (SUSP),
* Rock Ridge Interchange Protocol (RRIP).
The following Rock Ridge features are supported:
* POSIX file attributes (PX),
* POSIX device number (PN),
* Symbolic links (SL),
* Alternate file name (NM),
* Timestamps in 7-byte format (TF).
Change-Id: Ib227411bdda5bc10a957b27ad05fafdc95eca35f
- remove the buffer pool, inode bitmap, and inode hash table, and
simplify the code accordingly;
- use theoretically slightly more optimal buffer management;
- put the entire source in one file, instead of having many files
with one or two functions each;
- convert the code to KNF style.
Change-Id: Ib8f6f0bd99fbc6eb9098fba718e71b8e560783d9
In order to avoid creating libfsdriver exceptions, two changes to VFS
are necessary:
- the returned position field for reads/writes is no longer abused to
return the new pipe size; VFS is perfectly capable of updating the
size itself;
- during system startup, PFS is now sent a mount request, just like all
other file systems.
In proper "two steps forward, one step back" fashion, the latter point
has the consequence that PFS can no longer drop its privileges at
startup. This is probably best resolved with a more general solution
for all boot image system services. The upside is that PFS no longer
needs to be linked with libc.
Change-Id: I92e2410cdb0d93d0e6107bae10bc08efc2dbb8b3
UDS expects the device number of the actual socket, not the device on
which the socket happens to reside. The code worked only because PFS
returned the same value in the st_dev stat field, which it will have
to continue doing for a while now.
Change-Id: I426d38a86a96307ff6e6ed8099d37dae02d6bf2b
The new functionality aims to save each file system server from having
to implement its own block I/O routines just so that it can serve as a
root file system. The new source file (bio.c) lists the requirements
that file system servers have to fulfill in order to use the routines.
Change-Id: Ia0190fd5c30e8c2097ed8f4b0e3ccde1827e0b92
The file system may not be expecting these upcalls at arbitrary
moments, while they serve only as a performance optimization anyway.
Change-Id: I0748fd1f6c2645ddbb64466093ee36025aac45e0
The minixfs library only ever submits vector elements (and reads) of
the system page size. The test implementation was expecting vector
elements (and reads) of the file system block size. The resulting
mismatch caused I/O to fail in various ways, even though this did not
have an effect on the actual test.
Change-Id: I02f4a3efcd4a32916435d82c7d5798e6b78f0a27
Updating the current block size before flushing the cache, which still
contained blocks with the old block size, resulted in triggering an
assert on position alignment.
Change-Id: I7a83f3d3bc57bafc08aa6c8df64fbf978273bbfd
This library provides new abstractions for the upper (VFS) side of
file system services, and should be used for all file system service
implementations from now on. It provides the following functionality:
- a function call table abstraction, hiding the details of the
VFS-FS protocol with simple parameters;
- a (currently limited) number of per-function steps required for
all file system implementations, such as copying in and out path
names and result buffers;
- a default implementation for multicomponent path lookups, such
that the file system merely has to implement resolution of single
components at a time;
- an abstraction for copying data from and to the file system, which
allows transparent intraprocess copying as required for the lookup
implementation;
- a set of functions to simplify getdents implementations.
The message loop provided by the library is currently for use by
single-threaded file system implementations only. Multithreaded file
system services may use the more low-level message processing
functionality.
Protocol-level optimizations such as including names in protocol
messages may be hidden entirely in this library. In addition, in the
future, the lookup implementation may be replaced by a single-
component lookup VFS/FS protocol request as part of a VFS name cache
implementation; this, too, can be hidden entirely in this library.
Change-Id: Ib34f0d0e021dfa3426ce8826efcf3eaa94d3ef3e
. the minix init started rc with the 'bootargs' variable.
this can now be cleanly passed to rc by executing sysenv
from the ramdisk rc script.
Change-Id: I68d0d2ab0be326b2ae30438a62dd7649b600c2d2
. let you specify IMG as a block device directly. this minimizes
i/o (only write used parts of the filesystem) and so turnaround
time - while still allowing the big default FS size.
Change-Id: Ib738499464e0d350a474a706f688d3f10806207d
It is currently too broken to be of any use anyway. Fixes are pending,
which is why this patch is intended to be reverted before those are
merged.
For the time being, the following tools can be used to access cdroms:
- isodir
- isoinfo
- isoread
- writeisofs
Change-Id: I681e8f1224bb464ba978f893dc18d46fa06a8208
They can be deactivated with -DNDEBUG, which is why they can't contain
code which should always be run.
It seems the local implementation of USB_ASSERT doesn't honor the
CPP flags NDEBUG, this will be corrected in a later patch.
Change-Id: Iac56b09fd563f1b8c4c7be15a468a05b9cc86a18
Known limitations:
- comment for now testisofs, as iso9660fs is known to be broken.
Benefits:
- near 3x speed improvement on C++ code compilation, bringing down
make build to from 44min down to 21min.
- Allows for X applications to work properly, which should be available
in near-term future through pkgsrc for 3.3.0.
Change-Id: I8f4179a7ea925ed381642add32cfd8c5822217e4
- adapt an arithmetic expression for the new sh
- update the fsck call to use the main fsck wrapper instead of a
specific fsck version.
Change-Id: I7e25bf6e54b5c9f564082459e78b9ce5c39254cf
. if a up/down script isn't specified, devmand
would try to execute a command line with (null)
in it, causing messy messages on startup
. skip script at a higher level when missing,
and add asserts for expected strings at the lower level
Change-Id: Ia0d772076f3781caa5879ea4e64b53fa6c6e8478
The memory used to be in its own memory region, but is now a part of
a larger memory region which is already being freed anyway.
Change-Id: Ice3174cec76e07112a1997b969dc3f47f573514c
- replace a stray assert(0) with abort()
- remove unrequired copy-pasted #undef NDEBUG
- replace some #if NDEBUG by #if DEBUG as they protect debug printf()s.
Change-Id: Iff4c0331b06e860d32d91ce6b1d6c765ed065c8b
- assert() is macro which is defined as empty, while panic is always
present. I added an explicit abort() after the macro to make sure the
function never returns in case of wrong flags.
- Fixed gcc build with -NDEBUG, -Os for ARM.
* A few 'may be used uninitialized' messages
* A few new missing support library functions where added in libminc.
Change-Id: I69fcda2cd3888390b7ddeff4c0cd849105ce86ff