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
2541 6093 d 6 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 6093 d 20 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 6094 d 3 h jermar /trunk/uspace/srv/console/ Cstyle and other minor fixes in the console code.  
/trunk/uspace/srv/console/console.c
2536 6097 d 22 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 6100 d 1 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 6100 d 2 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 6100 d 22 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 6101 d 0 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 6101 d 22 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 6102 d 13 h jermar /trunk/uspace/lib/libc/generic/ Pseudo thread -> fibril change in several comments.  
/trunk/uspace/lib/libc/generic/ipc.c
2529 6103 d 1 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 6103 d 1 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 6104 d 7 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 6105 d 4 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 6105 d 5 h jermar /trunk/uspace/lib/libc/include/ Implementation of isalnum().  
/trunk/uspace/lib/libc/include/ctype.h
2524 6105 d 5 h jermar /trunk/uspace/lib/libc/include/ Implementation of isalpha().  
/trunk/uspace/lib/libc/include/ctype.h
2523 6105 d 10 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 6105 d 11 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 6106 d 22 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 6106 d 23 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 6107 d 22 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
2495 6170 d 2 h jermar /trunk/uspace/lib/libc/generic/io/ Formatting changes.  
/trunk/uspace/lib/libc/generic/io/stream.c
2492 6176 d 1 h jermar /trunk/uspace/lib/libc/generic/ Add comment clarifying how a fibril waiting for a message gets rescheduled.  
/trunk/uspace/lib/libc/generic/async.c
/trunk/uspace/lib/libc/generic/fibril.c
2491 6176 d 2 h jermar /trunk/uspace/ Fix two minor bugs in uspace's make clean.  
/trunk/uspace/Makefile
2490 6178 d 1 h jermar /trunk/uspace/lib/libc/generic/ Improve comments in async.c  
/trunk/uspace/lib/libc/generic/async.c
/trunk/uspace/lib/libc/generic/ipc.c
2489 6178 d 4 h jermar /trunk/ Allow HelenOS to be built by a native gcc on Solaris.  
/trunk/kernel/Makefile
/trunk/uspace/lib/libc/Makefile.toolchain
2488 6179 d 20 h jermar /trunk/uspace/lib/libc/generic/ Improve comments in async.c  
/trunk/uspace/lib/libc/generic/async.c
2486 6180 d 0 h jermar /trunk/uspace/lib/libc/ Remove duplicit and empty time.h from libc.
Move timeval functions from async.c to time.c.
 
/trunk/uspace/lib/libc/include/time.h
/trunk/uspace/lib/libc/generic/async.c
/trunk/uspace/lib/libc/generic/time.c
/trunk/uspace/lib/libc/include/sys/time.h
2485 6183 d 22 h jermar /trunk/uspace/lib/libc/generic/ More fibril/psthread cleanup.  
/trunk/uspace/lib/libc/generic/async.c
2484 6183 d 23 h jermar /trunk/uspace/lib/libc/generic/ More psthread/fibril cleanup.  
/trunk/uspace/lib/libc/generic/async.c
2483 6184 d 3 h jermar /trunk/uspace/lib/libc/ Remove fibril_join().
We cannot guarantee our assumptions that easily.
This broken feature is removed instead of fixing because there are now users of it.
 
/trunk/uspace/lib/libc/generic/async.c
/trunk/uspace/lib/libc/generic/fibril.c
/trunk/uspace/lib/libc/include/fibril.h
2482 6184 d 18 h jermar /trunk/ Goodbye pseudo threads, welcome fibrils.
The renaming might still be incomplete.
 
/trunk/uspace/lib/libc/arch/amd64/include/fibril.h
/trunk/uspace/lib/libc/arch/amd64/src/fibril.S
/trunk/uspace/lib/libc/arch/arm32/include/fibril.h
/trunk/uspace/lib/libc/arch/arm32/src/fibril.S
/trunk/uspace/lib/libc/arch/ia32/include/fibril.h
/trunk/uspace/lib/libc/arch/ia32/src/fibril.S
/trunk/uspace/lib/libc/arch/ia64/include/fibril.h
/trunk/uspace/lib/libc/arch/ia64/src/fibril.S
/trunk/uspace/lib/libc/arch/mips32/include/fibril.h
/trunk/uspace/lib/libc/arch/mips32/src/fibril.S
/trunk/uspace/lib/libc/arch/mips32eb/include/fibril.h
/trunk/uspace/lib/libc/arch/ppc32/include/fibril.h
/trunk/uspace/lib/libc/arch/ppc32/src/fibril.S
/trunk/uspace/lib/libc/arch/ppc64/include/fibril.h
/trunk/uspace/lib/libc/arch/ppc64/src/fibril.S
/trunk/uspace/lib/libc/arch/sparc64/include/fibril.h
/trunk/uspace/lib/libc/arch/sparc64/src/fibril.S
/trunk/uspace/lib/libc/generic/fibril.c
/trunk/uspace/lib/libc/include/fibril.h
/trunk/uspace/lib/libc/arch/amd64/include/psthread.h
/trunk/uspace/lib/libc/arch/amd64/src/psthread.S
/trunk/uspace/lib/libc/arch/arm32/include/psthread.h
/trunk/uspace/lib/libc/arch/arm32/src/psthread.S
/trunk/uspace/lib/libc/arch/ia32/include/psthread.h
/trunk/uspace/lib/libc/arch/ia32/src/psthread.S
/trunk/uspace/lib/libc/arch/ia64/include/psthread.h
/trunk/uspace/lib/libc/arch/ia64/src/psthread.S
/trunk/uspace/lib/libc/arch/mips32/include/psthread.h
/trunk/uspace/lib/libc/arch/mips32/src/psthread.S
/trunk/uspace/lib/libc/arch/mips32eb/include/psthread.h
/trunk/uspace/lib/libc/arch/ppc32/include/psthread.h
/trunk/uspace/lib/libc/arch/ppc32/src/psthread.S
/trunk/uspace/lib/libc/arch/ppc64/include/psthread.h
/trunk/uspace/lib/libc/arch/ppc64/src/psthread.S
/trunk/uspace/lib/libc/arch/sparc64/include/psthread.h
/trunk/uspace/lib/libc/arch/sparc64/src/psthread.S
/trunk/uspace/lib/libc/generic/psthread.c
/trunk/uspace/lib/libc/include/psthread.h
/trunk/kernel/arch/ia32/src/context.s
/trunk/uspace/lib/libc/Makefile
/trunk/uspace/lib/libc/arch/amd64/Makefile.inc
/trunk/uspace/lib/libc/arch/amd64/include/thread.h
/trunk/uspace/lib/libc/arch/arm32/Makefile.inc
/trunk/uspace/lib/libc/arch/arm32/include/thread.h
/trunk/uspace/lib/libc/arch/ia32/Makefile.inc
/trunk/uspace/lib/libc/arch/ia32/include/thread.h
/trunk/uspace/lib/libc/arch/ia64/Makefile.inc
/trunk/uspace/lib/libc/arch/ia64/include/thread.h
/trunk/uspace/lib/libc/arch/mips32/Makefile.inc
/trunk/uspace/lib/libc/arch/mips32/include/thread.h
/trunk/uspace/lib/libc/arch/mips32eb/Makefile.inc
/trunk/uspace/lib/libc/arch/ppc32/Makefile.inc
/trunk/uspace/lib/libc/arch/ppc32/include/thread.h
/trunk/uspace/lib/libc/arch/ppc64/Makefile.inc
/trunk/uspace/lib/libc/arch/ppc64/include/thread.h
/trunk/uspace/lib/libc/arch/sparc64/Makefile.inc
/trunk/uspace/lib/libc/arch/sparc64/include/thread.h
/trunk/uspace/lib/libc/generic/async.c
/trunk/uspace/lib/libc/generic/ipc.c
/trunk/uspace/lib/libc/generic/libc.c
/trunk/uspace/lib/libc/generic/thread.c
/trunk/uspace/lib/libc/include/async.h
2481 6184 d 19 h jermar /trunk/uspace/lib/libc/ 1. Implement simple joining of pseudo threads. Only one pseudo thread is allowed to join another pseudo
thread. The restriction is that both pseudo threads must be from the same thread (this is to simplify
synchronization). The joiner doesn't free anything from the joinee. It only gets its return value. Not
tested thoroughly yet.

2. Cleanup of a dead pseudo thread is done by the next scheduled pseudo thread. Not tested thoroughly yet.
 
/trunk/uspace/lib/libc/generic/psthread.c
/trunk/uspace/lib/libc/include/psthread.h
2480 6189 d 5 h jermar /trunk/uspace/ Remove dummy presenter.  
/trunk/uspace/presenter
2479 6189 d 5 h jermar /trunk/ New, better-structured, directory layout for uspace.  
/trunk/uspace/app
/trunk/uspace/app/init
/trunk/uspace/app/klog
/trunk/uspace/app/tester
/trunk/uspace/app/tetris
/trunk/uspace/lib
/trunk/uspace/lib/libc
/trunk/uspace/lib/softfloat
/trunk/uspace/lib/softint
/trunk/uspace/srv
/trunk/uspace/srv/console
/trunk/uspace/srv/fb
/trunk/uspace/srv/fs
/trunk/uspace/srv/kbd
/trunk/uspace/srv/ns
/trunk/uspace/srv/pci
/trunk/uspace/srv/rd
/trunk/uspace/console
/trunk/uspace/fb
/trunk/uspace/fs
/trunk/uspace/init
/trunk/uspace/kbd
/trunk/uspace/klog
/trunk/uspace/libc
/trunk/uspace/ns
/trunk/uspace/pci
/trunk/uspace/rd
/trunk/uspace/softfloat
/trunk/uspace/softint
/trunk/uspace/tester
/trunk/uspace/tetris
/trunk/boot/arch/amd64/Makefile.inc
/trunk/boot/arch/arm32/loader/Makefile
/trunk/boot/arch/ia32/Makefile.inc
/trunk/boot/arch/ia32xen/Makefile.inc
/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
/trunk/uspace/Makefile
/trunk/uspace/app/init/Makefile
/trunk/uspace/app/klog/Makefile
/trunk/uspace/app/tester/Makefile
/trunk/uspace/app/tetris/Makefile
/trunk/uspace/app/tetris/input.c
/trunk/uspace/app/tetris/screen.c
/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/Makefile.inc
/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
/trunk/uspace/srv/console/Makefile
/trunk/uspace/srv/fb/Makefile
/trunk/uspace/srv/fs/Makefile
/trunk/uspace/srv/kbd/Makefile
/trunk/uspace/srv/ns/Makefile
/trunk/uspace/srv/pci/Makefile
/trunk/uspace/srv/pci/libpci/Makefile
/trunk/uspace/srv/rd/Makefile
2478 6191 d 1 h jermar /trunk/uspace/rd/ Add sanity checks for reads and writes that occur past the end of the
ramdisk image.
 
/trunk/uspace/rd/rd.c
2476 6191 d 22 h jermar /trunk/ Cleanup.  
/trunk/kernel/generic/include/errno.h
/trunk/uspace/fb/ega.h
/trunk/uspace/fb/fb.h
/trunk/uspace/fb/font-8x16.h
/trunk/uspace/fb/main.h
/trunk/uspace/fb/ppm.h
/trunk/uspace/fb/sysio.h
/trunk/uspace/ns/ns.c
2475 6191 d 22 h jermar /trunk/uspace/rd/ Improve the rd task (not tested):
- allow more connections
- support write operation
- support concurrent requests
- sanity checks
- add comments

Please review.
 
/trunk/uspace/rd/rd.c
/trunk/uspace/rd/rd.h
2471 6194 d 23 h jermar /trunk/ Greatly improve comments in the IPC layer.
Now I think I finally start to understand our IPC internals :-)
 
/trunk/kernel/generic/include/ipc/ipc.h
/trunk/kernel/generic/include/ipc/ipcrsc.h
/trunk/kernel/generic/include/ipc/irq.h
/trunk/kernel/generic/src/ipc/ipc.c
/trunk/kernel/generic/src/ipc/ipcrsc.c
/trunk/kernel/generic/src/ipc/irq.c
/trunk/kernel/generic/src/ipc/sysipc.c
/trunk/uspace/libc/generic/ipc.c
/trunk/uspace/libc/include/ipc/ipc.h
/trunk/uspace/ns/ns.c
/trunk/uspace/pci/pci.c
/trunk/uspace/rd/rd.c
2470 6198 d 21 h jermar /trunk/ Fix a double-free recently introduced in revision r2436.
Add a comment clarifying the life-cycle of the kernel_uarg structure.

Comment out the freeing of userspace thread stack while still running on it.
This should be fixed by implementing userspace version of thread_join().
 
/trunk/kernel/generic/src/proc/thread.c
/trunk/uspace/libc/generic/thread.c