Subversion Repositories HelenOS

Rev

Go to most recent revision | Hide changed files | Directory listing | RSS feed

Filtering Options

Rev Age Author Path Log message Diff Changes
2557 6144 d 2 h jermar /trunk/kernel/generic/src/ipc/ Enable forwarding of IPC_M_AS_AREA_SEND, IPC_M_AS_AREA_RECV, IPC_M_DATA_SEND
calls. In order to prevent the forwarder from cloberring the call data (i.e.
source and destination address, and size) by treating these three methods as
immutable on forward. This feature is experimental, but has huge benefits in
that it can significantly reduce the amount of data sharing (the middle man need
not modify its address space mappings) or the amount of data copying (the middle
man need not receive the data from the sender and then resend them to the next
recipient). As a result, it can reduce N such calls for a communication channel
with N tasks along the way to 1 such call.
 
/trunk/kernel/generic/src/ipc/sysipc.c
2556 6144 d 4 h jermar /trunk/kernel/generic/ Rename as_get_size() to as_area_get_size() and add a doxygen comment.  
/trunk/kernel/generic/include/mm/as.h
/trunk/kernel/generic/src/ipc/sysipc.c
/trunk/kernel/generic/src/mm/as.c
2555 6144 d 16 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 6144 d 16 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 6144 d 18 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 6144 d 19 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
2551 6144 d 21 h cejka /trunk/ DevMap, VFS and FAT added to boot images for all architectures.  
/trunk/boot/arch/arm32/loader/Makefile
/trunk/boot/arch/ia32/Makefile.inc
/trunk/boot/arch/ia32/grub/menu.lst
/trunk/boot/arch/ia32xen/Makefile.inc
/trunk/boot/arch/ia32xen/grub/menu.lst
/trunk/boot/arch/ia64/loader/Makefile
/trunk/boot/arch/mips32/loader/Makefile
/trunk/boot/arch/ppc32/loader/Makefile
/trunk/boot/arch/ppc64/loader/Makefile
/trunk/boot/arch/sparc64/loader/Makefile
/trunk/contrib/conf/ski.conf
2550 6144 d 22 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 6145 d 0 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 6145 d 1 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 6145 d 1 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 6145 d 4 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
2545 6145 d 5 h cejka /trunk/contrib/conf/ Added processor type into gxemul run script.  
/trunk/contrib/conf/gxemul.sh
2544 6145 d 20 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 6145 d 23 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 6146 d 2 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 6146 d 2 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 6146 d 17 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 6146 d 23 h jermar /trunk/uspace/srv/console/ Cstyle and other minor fixes in the console code.  
/trunk/uspace/srv/console/console.c
2538 6149 d 4 h vana /trunk/kernel/arch/ia64/include/drivers/ Macro naming correction  
/trunk/kernel/arch/ia64/include/drivers/i8042.h
2537 6149 d 5 h vana /trunk/kernel/arch/ia64/include/drivers/ IA64 keyboard lost headerfile  
/trunk/kernel/arch/ia64/include/drivers/i8042.h
2536 6150 d 19 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 6152 d 22 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
2534 6152 d 22 h jermar /trunk/uspace/ In async_new_connection(), be more robust in the case that the function
is called by the server directly after its client accepts the
IPC_M_CONNECT_TO_ME call.

In fat.c main(), kill the "main" fibril and switch to the connection
fibril.
 
/trunk/uspace/lib/libc/generic/async.c
/trunk/uspace/srv/fs/fat/fat.c
2533 6153 d 18 h jermar /trunk/uspace/srv/fs/fat/ No need to call async_manager() at the end of fat.c's main().  
/trunk/uspace/srv/fs/fat/fat.c
2532 6153 d 20 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 6154 d 19 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
2530 6155 d 10 h jermar /trunk/uspace/lib/libc/generic/ Pseudo thread -> fibril change in several comments.  
/trunk/uspace/lib/libc/generic/ipc.c
2529 6155 d 21 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
2528 6155 d 21 h jermar /trunk/uspace/lib/libc/ Modify parts of the build system and libc to support building applications on
paths with differing distances from lib/libc (e.g. uspace/srv/ns and
uspace/srv/fs/fat).
 
/trunk/uspace/lib/libc/Makefile
/trunk/uspace/lib/libc/arch/amd64/_link.ld.in
/trunk/uspace/lib/libc/arch/arm32/Makefile.inc
/trunk/uspace/lib/libc/arch/arm32/_link.ld.in
/trunk/uspace/lib/libc/arch/ia32/_link.ld.in
/trunk/uspace/lib/libc/arch/ia64/Makefile.inc
/trunk/uspace/lib/libc/arch/ia64/_link.ld.in
/trunk/uspace/lib/libc/arch/mips32/_link.ld.in
/trunk/uspace/lib/libc/arch/ppc32/_link.ld.in
/trunk/uspace/lib/libc/arch/ppc64/_link.ld.in
/trunk/uspace/lib/libc/arch/sparc64/_link.ld.in
2527 6157 d 4 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 6158 d 0 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
2525 6158 d 1 h jermar /trunk/uspace/lib/libc/include/ Implementation of isalnum().  
/trunk/uspace/lib/libc/include/ctype.h
2524 6158 d 1 h jermar /trunk/uspace/lib/libc/include/ Implementation of isalpha().  
/trunk/uspace/lib/libc/include/ctype.h
2523 6158 d 6 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
2522 6158 d 8 h jermar /trunk/uspace/lib/libc/ Add wrappers facilitating easy use of IPC_M_DATA_SEND calls and answers.  
/trunk/uspace/lib/libc/generic/ipc.c
/trunk/uspace/lib/libc/include/ipc/ipc.h
2521 6159 d 18 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 6159 d 19 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
2519 6160 d 2 h vana /trunk/ Pack ski version of HelenOS to image.boot loader  
/trunk/boot/arch/ia64/Makefile.inc
/trunk/boot/arch/ia64/loader/Makefile
/trunk/boot/arch/ia64/loader/asm.S
/trunk/boot/arch/ia64/loader/boot.S
/trunk/kernel/arch/ia64/Makefile.inc
/trunk/kernel/arch/ia64/src/ia64.c
/trunk/kernel/arch/ia64/src/start.S
2518 6160 d 19 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