Subversion Repositories HelenOS

Rev

Go to most recent revision | Hide changed files | Details | Compare with Previous | Blame | RSS feed

Filtering Options

Rev Age Author Path Log message Diff Changes
2625 6112 d 8 h jermar /trunk/uspace/srv/vfs/ VFS work.
Proto implementation of VFS_READ.
 
/trunk/uspace/srv/vfs/vfs_read.c
/trunk/uspace/srv/vfs/Makefile
/trunk/uspace/srv/vfs/vfs.c
/trunk/uspace/srv/vfs/vfs.h
2624 6112 d 8 h jermar /trunk/uspace/srv/vfs/ Add sanity checks to functions using file descriptors as indices into files.  
/trunk/uspace/srv/vfs/vfs_file.c
2622 6112 d 13 h jermar /trunk/ Add mode argument to IPC forward.
This argument can be used to modify the way forward behaves.
 
/trunk/kernel/generic/include/ipc/ipc.h
/trunk/kernel/generic/include/ipc/sysipc.h
/trunk/kernel/generic/src/ipc/ipc.c
/trunk/kernel/generic/src/ipc/sysipc.c
/trunk/uspace/lib/libc/generic/ipc.c
/trunk/uspace/lib/libc/include/ipc/ipc.h
/trunk/uspace/srv/devmap/devmap.c
/trunk/uspace/srv/ns/ns.c
2621 6114 d 11 h jermar /trunk/uspace/ Modify the async framework to make use of all six syscall arguments.
Supply user-friendly macros as in previous cases.
 
/trunk/uspace/app/tetris/screen.c
/trunk/uspace/lib/libc/generic/async.c
/trunk/uspace/lib/libc/generic/io/stream.c
/trunk/uspace/lib/libc/include/async.h
/trunk/uspace/srv/console/console.c
/trunk/uspace/srv/console/gcons.c
/trunk/uspace/srv/kbd/arch/ia32/src/mouse.c
/trunk/uspace/srv/kbd/generic/kbd.c
2619 6116 d 5 h jermar /trunk/ Modify ipc_answer_*() to make use of all six syscall arguments. The recommended
means of answering calls is via the ipc_answer_m() macros (where m denotes the
number of return arguments) that automatically decide between the fast register
version or the slow universal version of ipc_answer().
 
/trunk/kernel/generic/include/ipc/sysipc.h
/trunk/kernel/generic/include/syscall/syscall.h
/trunk/kernel/generic/src/ipc/sysipc.c
/trunk/kernel/generic/src/syscall/syscall.c
/trunk/uspace/app/tester/ipc/answer.c
/trunk/uspace/app/tester/ipc/register.c
/trunk/uspace/app/tester/ipc/send_async.c
/trunk/uspace/lib/libc/generic/async.c
/trunk/uspace/lib/libc/generic/ipc.c
/trunk/uspace/lib/libc/include/ipc/ipc.h
/trunk/uspace/srv/console/console.c
/trunk/uspace/srv/devmap/devmap.c
/trunk/uspace/srv/fb/ega.c
/trunk/uspace/srv/fb/fb.c
/trunk/uspace/srv/fb/main.c
/trunk/uspace/srv/fb/sysio.c
/trunk/uspace/srv/fs/fat/fat.c
/trunk/uspace/srv/kbd/generic/kbd.c
/trunk/uspace/srv/ns/ns.c
/trunk/uspace/srv/pci/pci.c
/trunk/uspace/srv/rd/rd.c
/trunk/uspace/srv/vfs/vfs.c
/trunk/uspace/srv/vfs/vfs_mount.c
/trunk/uspace/srv/vfs/vfs_open.c
/trunk/uspace/srv/vfs/vfs_register.c
2618 6116 d 18 h jermar /trunk/ Modify asynchronous IPC to make use of all six syscall arguments. The preferred
means of asynchronous communication is now via the set of ipc_call_async_m()
macros, where m is the number of payload arguments passed to the kernel. These
macros will automatically decide between the fast and the universal slow version
of ipc_call_async.
 
/trunk/kernel/generic/include/ipc/sysipc.h
/trunk/kernel/generic/include/syscall/syscall.h
/trunk/kernel/generic/src/ipc/sysipc.c
/trunk/kernel/generic/src/syscall/syscall.c
/trunk/uspace/app/tester/ipc/send_async.c
/trunk/uspace/lib/libc/generic/ipc.c
/trunk/uspace/lib/libc/include/ipc/ipc.h
/trunk/uspace/srv/console/console.c
2615 6117 d 14 h jermar /trunk/ Modify synchronous IPC to make use of all six syscall arguments. The preferred
means of synchronous communication is now via the set of ipc_call_sync_m_n()
macros, where m is the number of payload arguments passed to the kernel and n is
the number of return values. These macros will automatically decide between the
fast and the universal slow version of ipc_call_sync.
 
/trunk/kernel/generic/include/ipc/sysipc.h
/trunk/kernel/generic/include/syscall/syscall.h
/trunk/kernel/generic/src/ipc/sysipc.c
/trunk/kernel/generic/src/syscall/syscall.c
/trunk/uspace/app/klog/klog.c
/trunk/uspace/app/tester/ipc/send_sync.c
/trunk/uspace/lib/libc/generic/ipc.c
/trunk/uspace/lib/libc/generic/time.c
/trunk/uspace/lib/libc/include/ipc/ipc.h
/trunk/uspace/srv/fs/fat/fat.c
2600 6125 d 14 h jermar /trunk/uspace/srv/vfs/ VFS work.
vfs_grab_phone() must disable fibril preemption in order to avoid deadlock with
other fibrils of the same thread that might be trying to vfs_grab_phone() too.
 
/trunk/uspace/srv/vfs/vfs_register.c
2598 6127 d 18 h jermar /trunk/uspace/srv/devmap/ Cstyle fixes.  
/trunk/uspace/srv/devmap/devmap.c
2597 6129 d 8 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 6130 d 9 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
2594 6131 d 6 h cejka /trunk/uspace/ New version of device mapper.
Added devmap test to tester.
 
/trunk/uspace/app/tester/devmap
/trunk/uspace/app/tester/devmap/devmap1.c
/trunk/uspace/app/tester/devmap/devmap1.def
/trunk/uspace/app/tester/Makefile
/trunk/uspace/app/tester/tester.c
/trunk/uspace/app/tester/tester.h
/trunk/uspace/srv/devmap/devmap.c
/trunk/uspace/srv/devmap/devmap.h
/trunk/uspace/srv/ns/ns.c
2593 6132 d 7 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 6133 d 10 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 6133 d 11 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 6133 d 12 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 6133 d 12 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 6141 d 7 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 6163 d 14 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
2568 6164 d 20 h jermar /trunk/uspace/ Rename fibril_schedule_next_adv() to fibril_switch(). Rename
fibril_schedule_next() to fibril_yield(). Some fibril structures could be
uninitialized, set them to zero in fibril_setup(). For some fibrils, the stack
member can be NULL (e.g. every thread's first/main fibril); don't do free on
these stacks when cleaning up after a dead fibril.
 
/trunk/uspace/lib/libc/generic/async.c
/trunk/uspace/lib/libc/generic/fibril.c
/trunk/uspace/lib/libc/generic/ipc.c
/trunk/uspace/lib/libc/generic/thread.c
/trunk/uspace/lib/libc/include/async.h
/trunk/uspace/lib/libc/include/fibril.h
/trunk/uspace/srv/fs/fat/fat.c
2567 6164 d 20 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
2566 6164 d 20 h jermar /trunk/uspace/srv/console/ Fix cstyle in console.c.  
/trunk/uspace/srv/console/console.c
2560 6168 d 9 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
2555 6169 d 4 h cejka /trunk/uspace/srv/devmap/ Added message forwarding to device mapper.  
/trunk/uspace/srv/devmap/devmap.c
/trunk/uspace/srv/devmap/devmap.h
2554 6169 d 5 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 6169 d 6 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 6169 d 7 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 6169 d 10 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 6169 d 12 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 6169 d 13 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
2547 6169 d 13 h cejka /trunk/ Added basic support for device mapper.  
/trunk/uspace/srv/devmap
/trunk/uspace/srv/devmap/Makefile
/trunk/uspace/srv/devmap/devmap.c
/trunk/uspace/srv/devmap/devmap.h
/trunk/boot/arch/mips32/loader/Makefile
/trunk/uspace/Makefile
/trunk/uspace/lib/libc/include/ipc/services.h
2546 6169 d 16 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 6170 d 9 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 6170 d 11 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 6170 d 14 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
2541 6170 d 14 h jermar /trunk/uspace/ Header cleanup.
Move off_t, size_t and ssize_t into sys/types.h.
Get rid off the non-standard and dummy types.h.
 
/trunk/uspace/lib/libc/include/types.h
/trunk/uspace/app/tester/tester.h
/trunk/uspace/lib/libc/arch/amd64/include/fibril.h
/trunk/uspace/lib/libc/arch/amd64/include/types.h
/trunk/uspace/lib/libc/arch/arm32/include/fibril.h
/trunk/uspace/lib/libc/arch/arm32/include/types.h
/trunk/uspace/lib/libc/arch/ia32/include/fibril.h
/trunk/uspace/lib/libc/arch/ia32/include/stackarg.h
/trunk/uspace/lib/libc/arch/ia32/include/types.h
/trunk/uspace/lib/libc/arch/ia64/include/fibril.h
/trunk/uspace/lib/libc/arch/ia64/include/types.h
/trunk/uspace/lib/libc/arch/mips32/include/fibril.h
/trunk/uspace/lib/libc/arch/mips32/include/stackarg.h
/trunk/uspace/lib/libc/arch/mips32/include/types.h
/trunk/uspace/lib/libc/arch/ppc32/include/fibril.h
/trunk/uspace/lib/libc/arch/ppc32/include/types.h
/trunk/uspace/lib/libc/arch/ppc64/include/fibril.h
/trunk/uspace/lib/libc/arch/ppc64/include/types.h
/trunk/uspace/lib/libc/arch/sparc64/include/atomic.h
/trunk/uspace/lib/libc/arch/sparc64/include/fibril.h
/trunk/uspace/lib/libc/arch/sparc64/include/syscall.h
/trunk/uspace/lib/libc/arch/sparc64/include/types.h
/trunk/uspace/lib/libc/generic/as.c
/trunk/uspace/lib/libc/generic/futex.c
/trunk/uspace/lib/libc/generic/io/stream.c
/trunk/uspace/lib/libc/generic/mman.c
/trunk/uspace/lib/libc/generic/string.c
/trunk/uspace/lib/libc/include/as.h
/trunk/uspace/lib/libc/include/async.h
/trunk/uspace/lib/libc/include/bitops.h
/trunk/uspace/lib/libc/include/futex.h
/trunk/uspace/lib/libc/include/io/io.h
/trunk/uspace/lib/libc/include/io/printf_core.h
/trunk/uspace/lib/libc/include/ipc/ipc.h
/trunk/uspace/lib/libc/include/libc.h
/trunk/uspace/lib/libc/include/stdarg.h
/trunk/uspace/lib/libc/include/stddef.h
/trunk/uspace/lib/libc/include/stdint.h
/trunk/uspace/lib/libc/include/stdio.h
/trunk/uspace/lib/libc/include/string.h
/trunk/uspace/lib/libc/include/sys/mman.h
/trunk/uspace/lib/libc/include/sys/time.h
/trunk/uspace/lib/libc/include/sys/types.h
/trunk/uspace/lib/libc/include/syscall.h
/trunk/uspace/lib/libc/include/task.h
/trunk/uspace/lib/libc/include/thread.h
/trunk/uspace/lib/libc/include/unistd.h
/trunk/uspace/srv/fb/ppm.c
/trunk/uspace/srv/fb/ppm.h
/trunk/uspace/srv/kbd/arch/sparc64/src/kbd.c
/trunk/uspace/srv/kbd/include/key_buffer.h
/trunk/uspace/srv/pci/libpci/types.h
2540 6171 d 5 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
2539 6171 d 11 h jermar /trunk/uspace/srv/console/ Cstyle and other minor fixes in the console code.  
/trunk/uspace/srv/console/console.c
2536 6175 d 7 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 6177 d 10 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