Rev |
Age |
Author |
Path |
Log message |
Diff |
Changes |
2597 |
6207 d 12 h |
jermar |
/trunk/uspace/srv/vfs/ |
VFS work.
Increment reference counters for the VFS nodes representing the mount point and
the root of the mounted filesystem, respectively, during VFS_MOUNT. Take the
unlink_futex when transforming the triplet into a VFS node. |
|
/trunk/uspace/srv/vfs/vfs_mount.c /trunk/uspace/srv/vfs/vfs_unlink.c
|
2596 |
6208 d 14 h |
jermar |
/trunk/uspace/srv/vfs/ |
VFS work.
Implement VFS node hash table management. |
|
/trunk/uspace/srv/vfs/vfs.c /trunk/uspace/srv/vfs/vfs.h /trunk/uspace/srv/vfs/vfs_node.c
|
2593 |
6210 d 11 h |
jermar |
/trunk/uspace/srv/vfs/ |
A lot of more VFS prototyping.
VFS_OPEN gets reasonably complete, fix a limitation that prevented file
structures from being shared by multiple file descriptors, add functions for
file descriptor management, introduce unlink_futex and two new VFS operations
VFS_UNLINK and VFS_RENAME. |
|
/trunk/uspace/srv/vfs/vfs_file.c /trunk/uspace/srv/vfs/vfs_unlink.c
/trunk/uspace/srv/vfs/Makefile /trunk/uspace/srv/vfs/vfs.c /trunk/uspace/srv/vfs/vfs.h /trunk/uspace/srv/vfs/vfs_node.c /trunk/uspace/srv/vfs/vfs_open.c
|
2590 |
6211 d 14 h |
jermar |
/trunk/uspace/srv/vfs/ |
VFS work.
Start implementing VFS side of VFS_OPEN.
Add vfs_node.c to contain VFS node related internal functions. |
|
/trunk/uspace/srv/vfs/vfs_node.c
/trunk/uspace/srv/vfs/Makefile /trunk/uspace/srv/vfs/vfs.h /trunk/uspace/srv/vfs/vfs_lookup.c /trunk/uspace/srv/vfs/vfs_mount.c /trunk/uspace/srv/vfs/vfs_open.c /trunk/uspace/srv/vfs/vfs_register.c
|
2589 |
6211 d 16 h |
jermar |
/trunk/uspace/srv/vfs/ |
VFS work.
Allocate the open filess array dynamically and protect access to it via a
per-connection futex. Defer its allocation until the client makes a first
VFS_OPEN request.
Actually call vfs_mount() and vfs_open(), respectively, when the VFS_MOUNT and
VFS_OPEN requests, respectively, are received from the client. |
|
/trunk/uspace/srv/vfs/vfs.c /trunk/uspace/srv/vfs/vfs.h /trunk/uspace/srv/vfs/vfs_open.c
|
2588 |
6211 d 16 h |
jermar |
/trunk/uspace/ |
Add ipc_answer_fast_[01] macros so that ipc_answer_fast() users don't have to
write zero arguments all the time. |
|
/trunk/uspace/lib/libc/include/ipc/ipc.h /trunk/uspace/srv/fs/fat/fat.c /trunk/uspace/srv/ns/ns.c /trunk/uspace/srv/vfs/vfs.c /trunk/uspace/srv/vfs/vfs_mount.c /trunk/uspace/srv/vfs/vfs_register.c
|
2587 |
6211 d 17 h |
jermar |
/trunk/uspace/srv/vfs/ |
VFS work.
Introduce the notion of VFS_PAIR which corresponds to a file system instance,
and VFS_TRIPLET, which corresponds to a file system node. Separate vfs_triplet_t
and vfs_node_t as the former one is the stateless counterpart of the latter. |
|
/trunk/uspace/srv/vfs/vfs.h /trunk/uspace/srv/vfs/vfs_lookup.c /trunk/uspace/srv/vfs/vfs_mount.c
|
2576 |
6219 d 11 h |
jermar |
/trunk/uspace/srv/vfs/ |
Specify the width of the printed text in an argument to printf(). |
|
/trunk/uspace/srv/vfs/vfs_register.c
|
2569 |
6241 d 18 h |
jermar |
/trunk/uspace/ |
Tiny refinement of if-else_if-else statement in vfs_register.c. |
|
/trunk/uspace/lib/libc/generic/async.c /trunk/uspace/srv/vfs/vfs.c /trunk/uspace/srv/vfs/vfs_mount.c
|
2567 |
6243 d 0 h |
jermar |
/trunk/uspace/srv/vfs/ |
Don't explicitly answer the IPC_M_DATA_SEND call in VFS_REGISTER.
It is done automatically in ipc_data_deliver(). |
|
/trunk/uspace/srv/vfs/vfs_register.c
|
2560 |
6246 d 13 h |
jermar |
/trunk/uspace/srv/vfs/ |
VFS work.
Start VFS_OPEN. |
|
/trunk/uspace/srv/vfs/vfs_open.c
/trunk/uspace/srv/vfs/Makefile /trunk/uspace/srv/vfs/vfs.c /trunk/uspace/srv/vfs/vfs.h
|
2554 |
6247 d 9 h |
jermar |
/trunk/uspace/srv/vfs/ |
VFS work.
Add the missing bits of VFS-side VFS_MOUNT. |
|
/trunk/uspace/srv/vfs/vfs_mount.c
|
2553 |
6247 d 10 h |
jermar |
/trunk/uspace/srv/vfs/ |
VFS work.
Prevent race conditions when checking rootfs by taking a newly introduced
rootfs_futex. |
|
/trunk/uspace/srv/vfs/vfs_mount.c
|
2552 |
6247 d 11 h |
jermar |
/trunk/uspace/srv/vfs/ |
VFS work.
This is a checkpoint commit.
It introduces initial, still incomplete, code for VFS-side VFS_MOUNT request. |
|
/trunk/uspace/srv/vfs/vfs.c /trunk/uspace/srv/vfs/vfs.h /trunk/uspace/srv/vfs/vfs_lookup.c /trunk/uspace/srv/vfs/vfs_mount.c
|
2550 |
6247 d 14 h |
cejka |
/trunk/ |
Fixed naming convention in IPC. |
|
/trunk/kernel/generic/include/ipc/ipc.h /trunk/uspace/lib/libc/include/ipc/fb.h /trunk/uspace/srv/devmap/devmap.c /trunk/uspace/srv/devmap/devmap.h /trunk/uspace/srv/vfs/vfs.h
|
2549 |
6247 d 16 h |
jermar |
/trunk/uspace/srv/vfs/ |
VFS work.
Modify vfs_lookup_internal() to be able to work with an alternate root. This
will be useful for VFS_MOUNT support.
Improve observability and debuggability by explicitly zeroing out PLB after the
path has been looked up. |
|
/trunk/uspace/srv/vfs/vfs.h /trunk/uspace/srv/vfs/vfs_lookup.c /trunk/uspace/srv/vfs/vfs_register.c
|
2548 |
6247 d 17 h |
jermar |
/trunk/uspace/srv/vfs/ |
VFS work.
Add fs_name_to_handle() function to abstract away the details of walking the
list of registered file systems, and in order to avoid code duplication. |
|
/trunk/uspace/srv/vfs/vfs.h /trunk/uspace/srv/vfs/vfs_register.c
|
2546 |
6247 d 20 h |
jermar |
/trunk/uspace/srv/ |
VFS work.
Upon FS registration via VFS_REGISTER, the client is assigned a unique file
system handle. When generating the VFS_LOOKUP request in VFS, we also need to
pass the device handle. Add function to transform file system handle to phone.
Implement basic multi-call VFS request serialization on VFS side. |
|
/trunk/uspace/srv/fs/fat/fat.c /trunk/uspace/srv/vfs/vfs.h /trunk/uspace/srv/vfs/vfs_lookup.c /trunk/uspace/srv/vfs/vfs_register.c
|
2544 |
6248 d 13 h |
jermar |
/trunk/uspace/srv/vfs/ |
VFS work.
Proto implementation of VFS-side vfs_lookup_internal(). |
|
/trunk/uspace/srv/vfs/vfs.h /trunk/uspace/srv/vfs/vfs_lookup.c
|
2543 |
6248 d 16 h |
jermar |
/trunk/uspace/srv/ |
VFS work.
Modify the protocol so that VFS and FAT (or any other FS) have to share the Path
Lookup Buffer in read-only mode. |
|
/trunk/uspace/srv/fs/fat/fat.c /trunk/uspace/srv/vfs/vfs.c /trunk/uspace/srv/vfs/vfs_register.c
|
2542 |
6248 d 18 h |
jermar |
/trunk/uspace/srv/vfs/ |
VFS work.
Start support for the Patch Lookup Buffer.
Also add rootfs pointer. |
|
/trunk/uspace/srv/vfs/vfs_lookup.c /trunk/uspace/srv/vfs/vfs_mount.c
/trunk/uspace/srv/vfs/Makefile /trunk/uspace/srv/vfs/vfs.c /trunk/uspace/srv/vfs/vfs.h
|
2540 |
6249 d 9 h |
jermar |
/trunk/uspace/srv/vfs/ |
VFS work.
Introduce basic types representing a file system node and an open file. |
|
/trunk/uspace/srv/vfs/vfs.h
|
2536 |
6253 d 11 h |
jermar |
/trunk/uspace/srv/ |
VFS work.
Describe the bottleneck of one VFS-FS connection in fat.c. Add a comment
outlining possible approaches.
Also in fat.c, the async_create_manager() _must_ be called as well as
async_set_client_connection(). The latter alows VFS to duplicate the connection.
Modify fat_connection() to ACK all IPC_M_CONNECT_ME_TO calls. |
|
/trunk/uspace/srv/fs/fat/fat.c /trunk/uspace/srv/vfs/vfs_register.c
|
2535 |
6255 d 14 h |
jermar |
/trunk/uspace/srv/vfs/ |
Move VFS_REGISTER functionality into a separate file. |
|
/trunk/uspace/srv/vfs/vfs_register.c
/trunk/uspace/srv/vfs/Makefile /trunk/uspace/srv/vfs/vfs.c /trunk/uspace/srv/vfs/vfs.h
|
2532 |
6256 d 12 h |
jermar |
/trunk/ |
VFS work.
The VFS_REGISTER is now fully implemented by both vfs and fat servers. Thanks to
the debugging dprintf()'s, I was able to fix little errors here and there to
make them actually work.
Modified vfs and fat service makefiles so that the two are not built as drivers
and can therefore print to standard output. Added many debugging dprintf()'s.
Change the amd64 boot configuration to load vfs and fat. |
|
/trunk/boot/arch/amd64/Makefile.inc /trunk/boot/arch/amd64/grub/menu.lst /trunk/uspace/srv/fs/fat/Makefile /trunk/uspace/srv/fs/fat/fat.c /trunk/uspace/srv/vfs/Makefile /trunk/uspace/srv/vfs/vfs.c
|
2531 |
6257 d 11 h |
jermar |
/trunk/uspace/ |
VFS work.
Implement VFS_REGISTER part of the protocol in the FAT file system.
IPC work.
Rename ipc_data_send_accept() to ipc_data_receive() and ipc_data_send_answer()
to ipc_data_deliver(). Introduce ipc_data_send(). |
|
/trunk/uspace/lib/libc/generic/ipc.c /trunk/uspace/lib/libc/include/async.h /trunk/uspace/lib/libc/include/ipc/ipc.h /trunk/uspace/srv/fs/fat/fat.c /trunk/uspace/srv/vfs/vfs.c
|
2529 |
6258 d 13 h |
jermar |
/trunk/uspace/ |
Turn the empty fs service into the beginning of FAT support.
Start implementing the VFS protocol for fat.c. |
|
/trunk/uspace/srv/fs/fat /trunk/uspace/srv/fs/fat/Makefile /trunk/uspace/srv/fs/fat/fat.c
/trunk/uspace/srv/fs/Makefile /trunk/uspace/srv/fs/fs.c
/trunk/uspace/Makefile /trunk/uspace/lib/libc/include/ipc/services.h /trunk/uspace/srv/vfs/vfs.h
|
2527 |
6259 d 20 h |
jermar |
/trunk/ |
VFS work.
Added mandatory VFS_LOOKUP
Handling of VFS_REGISTER request should be now more or less complete.
Added code that inserts the new fs_info structure into the list of registered
filesystems and creates a callback connection to the client FS. |
|
/trunk/kernel/generic/include/ipc/ipc.h /trunk/uspace/srv/vfs/vfs.c /trunk/uspace/srv/vfs/vfs.h
|
2526 |
6260 d 16 h |
jermar |
/trunk/uspace/ |
VFS work.
Delve deeper into VFS_REGISTER. |
|
/trunk/uspace/lib/libc/include/ctype.h /trunk/uspace/lib/libc/include/libadt/hash_table.h /trunk/uspace/srv/vfs/vfs.c /trunk/uspace/srv/vfs/vfs.h
|
2523 |
6260 d 22 h |
jermar |
/trunk/ |
VFS work.
Now, each VFS connection fibril will accept requests in a loop. The idea is that
each connection will be potentially reused for multiple requests before it is
closed by the server.
More VFS_REGISTER bits. Make use of the IPC_M_DATA_SEND wrappers introduced in
the previous commit.
Add enum members for more VFS operations. |
|
/trunk/kernel/generic/include/ipc/ipc.h /trunk/uspace/srv/vfs/vfs.c /trunk/uspace/srv/vfs/vfs.h
|
2521 |
6262 d 11 h |
jermar |
/trunk/uspace/srv/vfs/ |
VFS work.
Start implementing the VFS_REGISTER request. |
|
/trunk/uspace/srv/vfs/vfs.c /trunk/uspace/srv/vfs/vfs.h
|
2520 |
6262 d 12 h |
jermar |
/trunk/uspace/ |
VFS work.
Turn the dummy skeleton into a dummy skeleton that can handle connections.
There are already traces of the VFS protocol. |
|
/trunk/uspace/srv/vfs/vfs.h
/trunk/uspace/lib/libc/include/ipc/services.h /trunk/uspace/srv/vfs/vfs.c
|
2518 |
6263 d 11 h |
jermar |
/trunk/uspace/ |
One occurrence of the left-over term 'pseudo thread' replaced with 'fibril' in
the rd task.
Start the vfs task. Now it is dummy, but integrated into the sources. |
|
/trunk/uspace/srv/vfs /trunk/uspace/srv/vfs/Makefile /trunk/uspace/srv/vfs/vfs.c
/trunk/uspace/Makefile /trunk/uspace/srv/rd/rd.c
|