Rev |
Age |
Author |
Path |
Log message |
Diff |
Changes |
2682 |
6068 d 16 h |
jermar |
/trunk/uspace/ |
Fix type in declaration of VFS node rwlock.
Introduce a dedicated type for futexes. Make the existing futex code use this
newly introduced type and fix formatting in futex.c. |
|
/trunk/uspace/lib/libc/generic/futex.c /trunk/uspace/lib/libc/include/futex.h /trunk/uspace/srv/vfs/vfs.h
|
2681 |
6068 d 17 h |
jermar |
/trunk/uspace/ |
Turn the namespace futex into rwlock. |
|
/trunk/uspace/lib/libc/include/rwlock.h /trunk/uspace/srv/vfs/vfs.h /trunk/uspace/srv/vfs/vfs_mount.c /trunk/uspace/srv/vfs/vfs_open.c /trunk/uspace/srv/vfs/vfs_unlink.c
|
2680 |
6068 d 18 h |
jermar |
/trunk/uspace/ |
Add basic rwlock API for uspace so that VFS can be designed/implemented using
this API. So far, the implementation of this API merely wraps futexes into
rwlocks. Real rwlocks are wanted by ticket #54.
Using the new rwlock API, replace the VFS node content futex with an rwlock.
Lock the contents rwlock as reader on reads and as writer on writes. |
|
/trunk/uspace/lib/libc/include/rwlock.h
/trunk/uspace/srv/vfs/vfs.h /trunk/uspace/srv/vfs/vfs_node.c /trunk/uspace/srv/vfs/vfs_rdwr.c
|
2678 |
6074 d 13 h |
jermar |
/trunk/uspace/ |
The IPC_M_SHARE_* and IPC_M_DATA_* calls pass through 3 stages. Rename the send,
receive and deliver wrappers to names ending with 'start', 'receive' and
'finalize', respectively. This should make it clearer for dummies. |
|
/trunk/uspace/app/klog/klog.c /trunk/uspace/app/tester/devmap/devmap1.c /trunk/uspace/lib/libc/generic/ipc.c /trunk/uspace/lib/libc/generic/time.c /trunk/uspace/lib/libc/generic/vfs.c /trunk/uspace/lib/libc/include/ipc/ipc.h /trunk/uspace/lib/libfs/libfs.c /trunk/uspace/srv/console/console.c /trunk/uspace/srv/console/gcons.c /trunk/uspace/srv/devmap/devmap.c /trunk/uspace/srv/fs/tmpfs/tmpfs_ops.c /trunk/uspace/srv/rd/rd.c /trunk/uspace/srv/vfs/vfs_mount.c /trunk/uspace/srv/vfs/vfs_open.c /trunk/uspace/srv/vfs/vfs_register.c
|
2677 |
6074 d 14 h |
jermar |
/trunk/ |
Rename IPC_M_AS_AREA_SEND to IPC_M_SHARE_OUT. Rename IPC_M_AS_AREA_RECV to
IPC_M_SHARE_IN. Provide user-friendly wrappers for these methods so that even
dummies can get it right. Some applications using simpler protocols still use
these methods directly. |
|
/trunk/kernel/generic/include/ipc/ipc.h /trunk/kernel/generic/src/ipc/sysipc.c /trunk/uspace/app/klog/klog.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/lib/libfs/libfs.c /trunk/uspace/srv/console/console.c /trunk/uspace/srv/console/gcons.c /trunk/uspace/srv/fb/ega.c /trunk/uspace/srv/fb/fb.c /trunk/uspace/srv/ns/ns.c /trunk/uspace/srv/rd/rd.c /trunk/uspace/srv/vfs/vfs_register.c
|
2676 |
6074 d 20 h |
jermar |
/trunk/ |
Simplify the IPC_M_DATA_WRITE protocol. Do not pass the source address space
virtual address to the recipient. This feature was not used anyway. Now
IPC_M_DATA_WRITE and IPC_M_DATA_READ are feature-aligned. |
|
/trunk/kernel/generic/include/ipc/ipc.h /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/fs/tmpfs/tmpfs_ops.c /trunk/uspace/srv/vfs/vfs_mount.c /trunk/uspace/srv/vfs/vfs_open.c /trunk/uspace/srv/vfs/vfs_rdwr.c /trunk/uspace/srv/vfs/vfs_register.c
|
2675 |
6075 d 9 h |
jermar |
/trunk/uspace/lib/libc/generic/ |
Actually use the nbyte argument in both read() and write().
Fix warnings in read() and write(). |
|
/trunk/uspace/lib/libc/generic/vfs.c
|
2674 |
6075 d 9 h |
jermar |
/trunk/uspace/ |
Add libc VFS wrapper for VFS_WRITE. Fix a small bug in read(). Place open(),
read() and write() declarations in their respective headers according to SUSv3. |
|
/trunk/uspace/lib/libc/include/fcntl.h
/trunk/uspace/app/tester/vfs/vfs1.c /trunk/uspace/lib/libc/generic/vfs.c /trunk/uspace/lib/libc/include/vfs.h
|
2671 |
6075 d 9 h |
jermar |
/trunk/uspace/lib/libc/ |
Add VFS wrappers for VFS_MOUNT, VFS_OPEN and VFS_READ to libc. |
|
/trunk/uspace/lib/libc/generic/vfs.c /trunk/uspace/lib/libc/include/vfs.h
/trunk/uspace/lib/libc/Makefile
|
2670 |
6079 d 8 h |
jermar |
/trunk/uspace/ |
Move the open(), read() and write() provided by streams.c away so that
these functions won't clash with the real open(), read() and write(), which are
soon to be provided by a libvfs library. Applications can now use open_stdin(),
open_stdout(), read_stdin() and write_stdout(). Later, there might be an option
of providing a custom console file system, which will work similarly to how
streams' open(), read() and write() worked. |
|
/trunk/uspace/app/tetris/screen.c /trunk/uspace/lib/libc/generic/io/io.c /trunk/uspace/lib/libc/generic/io/stream.c /trunk/uspace/lib/libc/generic/io/vprintf.c /trunk/uspace/lib/libc/generic/libc.c /trunk/uspace/lib/libc/include/io/stream.h
|
2669 |
6079 d 9 h |
jermar |
/trunk/uspace/lib/libc/generic/io/ |
Remove file.c. |
|
/trunk/uspace/lib/libc/generic/io/file.c
|
2668 |
6079 d 9 h |
jermar |
/trunk/uspace/lib/libc/include/io/ |
Remove file.h. |
|
/trunk/uspace/lib/libc/include/io/file.h
|
2663 |
6082 d 9 h |
jermar |
/trunk/uspace/ |
Reimplement VFS_READ using IPC_M_DATA_READ. |
|
/trunk/uspace/lib/libc/generic/ipc.c /trunk/uspace/srv/fs/tmpfs/tmpfs_ops.c /trunk/uspace/srv/vfs/vfs_read.c
|
2662 |
6082 d 9 h |
jermar |
/trunk/ |
Add support for IPC_M_DATA_READ calls. |
|
/trunk/kernel/generic/include/ipc/ipc.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
|
2660 |
6082 d 11 h |
jermar |
/trunk/ |
Rename IPC_M_DATA_SEND to IPC_M_DATA_WRITE. Now, when we also add
IPC_M_DATA_READ, it will not clash and cause confusion with userspace wrappers
such as ipc_data_receive(). Rename the forementioned wrappers to
ipc_data_write_send(), ipc_data_write_receive() and ipc_data_write_deliver(). |
|
/trunk/kernel/generic/include/ipc/ipc.h /trunk/kernel/generic/src/ipc/sysipc.c /trunk/uspace/app/tester/devmap/devmap1.c /trunk/uspace/app/tester/vfs/vfs1.c /trunk/uspace/lib/libc/generic/ipc.c /trunk/uspace/lib/libc/include/ipc/ipc.h /trunk/uspace/lib/libfs/libfs.c /trunk/uspace/srv/devmap/devmap.c /trunk/uspace/srv/vfs/vfs_mount.c /trunk/uspace/srv/vfs/vfs_open.c /trunk/uspace/srv/vfs/vfs_register.c
|
2644 |
6089 d 13 h |
jermar |
/trunk/uspace/ |
Move incomplete fs interface from fat.h to libfs. |
|
/trunk/uspace/lib/libfs/libfs.h /trunk/uspace/srv/fs/fat/fat.c /trunk/uspace/srv/fs/fat/fat.h
|
2643 |
6089 d 14 h |
jermar |
/trunk/uspace/ |
VFS work.
Move FS registration code to libfs. |
|
/trunk/uspace/lib/libfs/libfs.c /trunk/uspace/lib/libfs/libfs.h /trunk/uspace/srv/fs/fat/Makefile /trunk/uspace/srv/fs/fat/fat.c /trunk/uspace/srv/fs/fat/fat.h /trunk/uspace/srv/fs/fat/fat_ops.c
|
2642 |
6090 d 18 h |
jermar |
/trunk/uspace/ |
Start libfs.
libfs is to contain all common fs code. |
|
/trunk/uspace/lib/libfs /trunk/uspace/lib/libfs/Makefile /trunk/uspace/lib/libfs/libfs.c /trunk/uspace/lib/libfs/libfs.h
/trunk/uspace/Makefile
|
2640 |
6093 d 6 h |
cejka |
/trunk/uspace/lib/libc/ |
Function strncmp() added to libc. |
|
/trunk/uspace/lib/libc/generic/string.c /trunk/uspace/lib/libc/include/string.h
|
2637 |
6101 d 11 h |
cejka |
/trunk/ |
Extended IPC_M_CONNECT_TO_ME to use 3 user defined parameters.
Phone identifier is passed in ARG5. |
|
/trunk/kernel/generic/include/ipc/ipc.h /trunk/kernel/generic/src/ipc/ipc.c /trunk/kernel/generic/src/ipc/ipcrsc.c /trunk/kernel/generic/src/ipc/sysipc.c /trunk/uspace/app/tester/devmap/devmap1.c /trunk/uspace/app/tester/ipc/register.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/main.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_register.c
|
2636 |
6103 d 9 h |
jermar |
/trunk/ |
Update comments wrt the previous commit.
Minor formatting fixes. |
|
/trunk/kernel/generic/src/ipc/sysipc.c /trunk/uspace/lib/libc/generic/ipc.c
|
2635 |
6103 d 10 h |
cejka |
/trunk/ |
Function ipc_connect_me_to sends 3 user defined arguments now.
One argument added also to ipc_forward_fast.
Fixed devmap and improved its test. |
|
/trunk/kernel/generic/include/ipc/ipc.h /trunk/kernel/generic/include/ipc/sysipc.h /trunk/kernel/generic/src/ipc/sysipc.c /trunk/uspace/app/tester/devmap/devmap1.c /trunk/uspace/app/tester/ipc/connect.c /trunk/uspace/lib/libc/generic/async.c /trunk/uspace/lib/libc/generic/io/stream.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/devmap/devmap.h /trunk/uspace/srv/fs/fat/fat.c /trunk/uspace/srv/ns/ns.c /trunk/uspace/srv/vfs/vfs_read.c
|
2622 |
6111 d 16 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 |
6113 d 15 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
|
2620 |
6113 d 21 h |
jermar |
/trunk/ |
Be more deterministic when a user accidently uses fast version of IPC
call/answer instead of the full one and passes fewer arguments than required by
the recipient of the call/response.
and the recipient interprets arguments that
were actually not passed by the sender. |
|
/trunk/kernel/generic/src/ipc/sysipc.c /trunk/uspace/lib/libc/generic/ipc.c
|
2619 |
6115 d 9 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 |
6115 d 21 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
|
2616 |
6116 d 14 h |
jermar |
/trunk/uspace/lib/libc/ |
usleep() should return int. Non-void functions really should return a value, so
fix sleep() to always return 0. |
|
/trunk/uspace/lib/libc/generic/time.c /trunk/uspace/lib/libc/include/unistd.h
|
2615 |
6116 d 18 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
|
2613 |
6118 d 11 h |
jermar |
/trunk/ |
Support for six syscall arguments for ia32. |
|
/trunk/uspace/lib/libc/arch/ia32/src/syscall.S
/trunk/uspace/lib/libc/arch/ia32/src/syscall.c
/trunk/kernel/arch/ia32/src/asm.S /trunk/uspace/lib/libc/arch/ia32/Makefile.inc /trunk/uspace/lib/libc/arch/ia32/src/fibril.S
|
2611 |
6118 d 16 h |
jermar |
/trunk/ |
Support for six syscall arguments for arm32. |
|
/trunk/kernel/arch/arm32/src/exception.c /trunk/uspace/lib/libc/arch/arm32/src/syscall.c
|
2610 |
6119 d 14 h |
jermar |
/trunk/ |
Support for six syscall arguments for sparc64.
There is a minor stability issue which needs to be fixed (kernel panics upon entering kconsole from the
console task). |
|
/trunk/kernel/arch/sparc64/include/syscall.h /trunk/kernel/arch/sparc64/src/trap/syscall.c
/trunk/kernel/arch/sparc64/Makefile.inc /trunk/kernel/arch/sparc64/include/stack.h /trunk/kernel/arch/sparc64/include/trap/syscall.h /trunk/kernel/arch/sparc64/include/trap/trap_table.h /trunk/kernel/arch/sparc64/src/trap/trap_table.S /trunk/uspace/lib/libc/arch/sparc64/include/syscall.h
|
2609 |
6119 d 14 h |
jermar |
/trunk/uspace/lib/libc/arch/ppc32/src/ |
Support for six syscall arguments for ppc32. |
|
/trunk/uspace/lib/libc/arch/ppc32/src/syscall.c
|
2608 |
6119 d 14 h |
jermar |
/trunk/ |
Support for six syscall arguments on ia64.
--iSupis line, and those below, will be ignored--
M kernel/arch/ia64/include/interrupt.h
M kernel/arch/ia64/src/ivt.S
M kernel/arch/ia64/src/interrupt.c
M uspace/lib/libc/arch/ia64/src/syscall.S |
|
/trunk/kernel/arch/ia64/include/interrupt.h /trunk/kernel/arch/ia64/src/interrupt.c /trunk/kernel/arch/ia64/src/ivt.S /trunk/uspace/lib/libc/arch/ia64/src/syscall.S
|
2607 |
6119 d 14 h |
jermar |
/trunk/ |
Support for six syscall arguments on mips32. |
|
/trunk/kernel/arch/mips32/include/stack.h /trunk/kernel/arch/mips32/src/start.S /trunk/uspace/lib/libc/arch/mips32/src/syscall.c
|
2606 |
6119 d 14 h |
jermar |
/trunk/ |
Support for 6 syscalls arguments on amd64. |
|
/trunk/kernel/arch/amd64/include/proc/thread.h /trunk/kernel/arch/amd64/src/asm_utils.S /trunk/kernel/arch/amd64/src/proc/scheduler.c /trunk/kernel/arch/amd64/src/proc/thread.c /trunk/kernel/arch/amd64/src/syscall.c /trunk/uspace/lib/libc/arch/amd64/src/fibril.S /trunk/uspace/lib/libc/arch/amd64/src/syscall.S
|
2605 |
6119 d 14 h |
jermar |
/trunk/ |
Start support for six syscall arguments.
This breaks all architectures. |
|
/trunk/kernel/generic/include/syscall/syscall.h /trunk/kernel/generic/src/syscall/syscall.c /trunk/uspace/lib/libc/include/libc.h /trunk/uspace/lib/libc/include/syscall.h
|
2602 |
6123 d 17 h |
jermar |
/trunk/ |
Work around the way symtab.data section is constructed.
This fixes building of ia64. |
|
/trunk/kernel/Makefile /trunk/kernel/arch/arm32/Makefile.inc /trunk/kernel/arch/ia64/Makefile.inc /trunk/uspace/lib/libc/arch/ia64/Makefile.inc
|
2595 |
6129 d 13 h |
jermar |
/trunk/uspace/lib/libc/include/libadt/ |
Formatting of uspace hash_table.h. |
|
/trunk/uspace/lib/libc/include/libadt/hash_table.h
|
2592 |
6131 d 14 h |
jermar |
/trunk/uspace/lib/libc/include/ |
assert.h should include stdio.h |
|
/trunk/uspace/lib/libc/include/assert.h
|