Rev |
Age |
Author |
Path |
Log message |
Diff |
Changes |
3947 |
5700 d 0 h |
jermar |
/trunk/ |
This is the evil commit. In particular, it does:
- introduces more powerful pseudo code for userspace IRQ top-half handlers
- changes the internals of IRQ dispatching
- simplifies the kernel's i8042 driver
- adapts the uspace i8042 driver to make use of the new pseudocode
- breaks all other architectures except ia32
- breaks almost all existing drivers
- breaks switching between uspace and kernel drivers |
|
/trunk/kernel/arch/ia32/src/ia32.c /trunk/kernel/genarch/src/kbd/i8042.c /trunk/kernel/generic/include/ddi/irq.h /trunk/kernel/generic/include/ipc/irq.h /trunk/kernel/generic/src/ddi/irq.c /trunk/kernel/generic/src/ipc/irq.c /trunk/uspace/srv/kbd/port/i8042.c
|
3930 |
5701 d 19 h |
jermar |
/trunk/kernel/ |
Adapt most of the kernel to ioport8_t, ioport16_t and ioport32_t types. |
|
/trunk/kernel/arch/ia32/include/drivers/ega.h /trunk/kernel/arch/ia32/include/drivers/i8259.h /trunk/kernel/arch/ia32/src/drivers/i8254.c /trunk/kernel/arch/ia32/src/drivers/i8259.c /trunk/kernel/arch/ia32/src/smp/smp.c /trunk/kernel/arch/ia64/include/drivers/ega.h /trunk/kernel/genarch/include/drivers/ega/ega.h /trunk/kernel/genarch/src/drivers/ega/ega.c /trunk/kernel/generic/src/ipc/irq.c
|
3902 |
5706 d 2 h |
jermar |
/trunk/kernel/ |
Introduce a more platform-neutral name for programmed I/O.
The new API looks like pio_read_n() or pio_write_n(), where n is 8, 16 or 32.
The old API (i.e. inb(), inw(), inl(), outb() outw(), outl()) may have made
some people think that the interface is only to be used with the separate I/O
space. That's not the case. This API is to be implemented on all platforms
so that we can finally have really generic kernel device drivers. |
|
/trunk/kernel/arch/amd64/include/asm.h /trunk/kernel/arch/arm32/include/asm.h /trunk/kernel/arch/ia32/include/asm.h /trunk/kernel/arch/ia32/include/drivers/i8042.h /trunk/kernel/arch/ia32/src/drivers/i8254.c /trunk/kernel/arch/ia32/src/drivers/i8259.c /trunk/kernel/arch/ia32/src/smp/smp.c /trunk/kernel/arch/ia64/include/asm.h /trunk/kernel/arch/ia64/include/drivers/i8042.h /trunk/kernel/arch/ia64/src/ia64.c /trunk/kernel/arch/mips32/include/asm.h /trunk/kernel/arch/ppc32/include/asm.h /trunk/kernel/arch/sparc64/include/asm.h /trunk/kernel/genarch/include/kbd/ns16550.h /trunk/kernel/genarch/src/drivers/ega/ega.c /trunk/kernel/generic/src/ipc/irq.c
|
3875 |
5708 d 21 h |
decky |
/trunk/kernel/generic/ |
remove platform dependent constructs from generic code |
|
/trunk/kernel/generic/include/arch.h /trunk/kernel/generic/include/ddi/irq.h /trunk/kernel/generic/include/fpu_context.h /trunk/kernel/generic/src/console/cmd.c /trunk/kernel/generic/src/ipc/irq.c /trunk/kernel/generic/src/main/version.c /trunk/kernel/generic/src/proc/thread.c
|
3870 |
5710 d 5 h |
decky |
/trunk/kernel/generic/src/ |
add includes necessary for LOG macro |
|
/trunk/kernel/generic/src/ipc/kbox.c /trunk/kernel/generic/src/udebug/udebug.c /trunk/kernel/generic/src/udebug/udebug_ops.c
|
3867 |
5711 d 4 h |
svoboda |
/trunk/kernel/generic/src/ipc/ |
Bugfix: Check kbox, not regular box. In case where the debugger disconnected first and then the application terminated, the application task would not be cleaned up. |
|
/trunk/kernel/generic/src/ipc/kbox.c
|
3819 |
5726 d 21 h |
jermar |
/trunk/ |
Introduce a new syscall: SYS_IPC_FORWARD_SLOW. |
|
/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/trace/syscalls.c /trunk/uspace/lib/libc/generic/ipc.c /trunk/uspace/lib/libc/include/ipc/ipc.h
|
3657 |
5783 d 5 h |
vana |
/trunk/ |
Legacy IRQ support, uspace NS16550 support, some minor changes |
|
/trunk/boot/arch/ia64/loader/gefi/HelenOS/mkimage.c /trunk/kernel/arch/ia64/include/drivers/kbd.h /trunk/uspace/lib/libc/arch/ia64/include/ddi.h /trunk/uspace/lib/libc/arch/ia64/src/ddi.c
/trunk/kernel/Makefile /trunk/kernel/arch/ia64/include/interrupt.h /trunk/kernel/arch/ia64/src/drivers/ega.c /trunk/kernel/arch/ia64/src/ia64.c /trunk/kernel/arch/ia64/src/interrupt.c /trunk/kernel/arch/ia64/src/ski/ski.c /trunk/kernel/genarch/src/kbd/ns16550.c /trunk/kernel/generic/src/ipc/irq.c /trunk/kernel/kernel.config /trunk/uspace/srv/fb/ega.c /trunk/uspace/srv/kbd/arch/ia64/src/kbd.c
|
3620 |
5790 d 6 h |
svoboda |
/trunk/kernel/generic/ |
Move stuff related to kbox to a separate struct. |
|
/trunk/kernel/generic/include/ipc/kbox.h /trunk/kernel/generic/include/proc/task.h /trunk/kernel/generic/src/ipc/kbox.c /trunk/kernel/generic/src/proc/task.c /trunk/kernel/generic/src/udebug/udebug_ipc.c
|
3603 |
5791 d 19 h |
svoboda |
/trunk/ |
Stoppability sections must be much smaller (design error). Also fix deadlock in udebug_stop(). Fix pause functionality in tracer. |
|
/trunk/kernel/generic/src/ipc/sysipc.c /trunk/kernel/generic/src/synch/futex.c /trunk/kernel/generic/src/syscall/syscall.c /trunk/kernel/generic/src/udebug/udebug_ops.c /trunk/uspace/app/trace/trace.c
|
3496 |
5821 d 21 h |
svoboda |
/trunk/kernel/generic/src/ipc/ |
Split and streamline kbox_thread_proc(). |
|
/trunk/kernel/generic/src/ipc/kbox.c
|
3495 |
5821 d 21 h |
svoboda |
/trunk/kernel/generic/src/ipc/ |
Synchronize properly when detaching kbox from within. |
|
/trunk/kernel/generic/src/ipc/kbox.c
|
3494 |
5823 d 21 h |
svoboda |
/trunk/kernel/generic/src/ipc/ |
Fix panic when debugged task quits. Also fix memory leak when debugger disconnects first. |
|
/trunk/kernel/generic/src/ipc/kbox.c
|
3476 |
5848 d 23 h |
jermar |
/trunk/kernel/generic/src/ipc/ |
Add comments documenting our treatment of the task's active call counter. |
|
/trunk/kernel/generic/src/ipc/ipc.c /trunk/kernel/generic/src/ipc/sysipc.c
|
3449 |
5855 d 21 h |
jermar |
/trunk/kernel/generic/src/ipc/ |
Fix task active call accounting for IPC_M_HUNGUP calls. |
|
/trunk/kernel/generic/src/ipc/ipc.c /trunk/kernel/generic/src/ipc/sysipc.c
|
3445 |
5856 d 21 h |
jermar |
/trunk/kernel/ |
Rename ipc/ipc_kbox.c to ipc/kbox.c. |
|
/trunk/kernel/generic/src/ipc/kbox.c
/trunk/kernel/generic/src/ipc/ipc_kbox.c
/trunk/kernel/Makefile /trunk/kernel/generic/src/ipc/ipc.c /trunk/kernel/generic/src/ipc/sysipc.c
|
3441 |
5857 d 4 h |
svoboda |
/trunk/kernel/generic/src/ |
Use LOG() instead of printf() for debug messages. |
|
/trunk/kernel/generic/src/ipc/ipc_kbox.c /trunk/kernel/generic/src/ipc/sysipc.c /trunk/kernel/generic/src/udebug/udebug.c /trunk/kernel/generic/src/udebug/udebug_ipc.c /trunk/kernel/generic/src/udebug/udebug_ops.c
|
3438 |
5857 d 5 h |
svoboda |
/trunk/ |
Merge syscall tracer (trace) and relevant part of udebug interface from tracing to trunk. |
|
/trunk/kernel/generic/include/ipc/ipc_kbox.h /trunk/kernel/generic/include/udebug /trunk/kernel/generic/include/udebug/udebug.h /trunk/kernel/generic/include/udebug/udebug_ipc.h /trunk/kernel/generic/include/udebug/udebug_ops.h /trunk/kernel/generic/src/ipc/ipc_kbox.c /trunk/kernel/generic/src/udebug /trunk/kernel/generic/src/udebug/udebug.c /trunk/kernel/generic/src/udebug/udebug_ipc.c /trunk/kernel/generic/src/udebug/udebug_ops.c /trunk/uspace/app/trace /trunk/uspace/app/trace/Makefile /trunk/uspace/app/trace/errors.c /trunk/uspace/app/trace/errors.h /trunk/uspace/app/trace/ipc_desc.c /trunk/uspace/app/trace/ipc_desc.h /trunk/uspace/app/trace/ipcp.c /trunk/uspace/app/trace/ipcp.h /trunk/uspace/app/trace/proto.c /trunk/uspace/app/trace/proto.h /trunk/uspace/app/trace/syscalls.c /trunk/uspace/app/trace/syscalls.h /trunk/uspace/app/trace/trace.c /trunk/uspace/lib/libc/generic/udebug.c /trunk/uspace/lib/libc/include/udebug.h
/trunk/boot/arch/amd64/Makefile.inc /trunk/boot/arch/arm32/loader/Makefile /trunk/boot/arch/ia32/Makefile.inc /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/kernel/Makefile /trunk/kernel/generic/include/ipc/ipc.h /trunk/kernel/generic/include/ipc/sysipc.h /trunk/kernel/generic/include/proc/task.h /trunk/kernel/generic/include/proc/thread.h /trunk/kernel/generic/include/syscall/syscall.h /trunk/kernel/generic/src/ipc/ipc.c /trunk/kernel/generic/src/ipc/sysipc.c /trunk/kernel/generic/src/main/uinit.c /trunk/kernel/generic/src/proc/task.c /trunk/kernel/generic/src/proc/thread.c /trunk/kernel/generic/src/syscall/syscall.c /trunk/kernel/kernel.config /trunk/uspace/Makefile /trunk/uspace/lib/libc/Makefile /trunk/uspace/lib/libc/generic/ipc.c /trunk/uspace/lib/libc/include/ipc/ipc.h
|
3395 |
5864 d 22 h |
jermar |
/trunk/kernel/generic/ |
Kernel's ipc_data_t and uspace's ipc_call_t must be in sync.
This commit fixes a problem introduced in revision 3362, when
ipc_data_t was enlarged by the caller_phone member. This resulted
in sys_ipc_wait_for_call() passing larger structure to uspace
than requested, leading to a random damage of userspace memory. |
|
/trunk/kernel/generic/include/ipc/ipc.h /trunk/kernel/generic/src/ipc/ipc.c
|
3394 |
5865 d 20 h |
jermar |
/trunk/kernel/generic/src/ipc/ |
cstyle for ipc.c |
|
/trunk/kernel/generic/src/ipc/ipc.c
|