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
3365 5811 d 19 h rimsky /branches/sparc/ Integrated US-III port into the build process; added script for downloading and patching SILO; added patched SILO binaries; modified sources of the Sparc64 port up to the beginning of the main_bsp_separated_stack function: phys. address size not hardwired but configurable (41 bits on US-II, 43 bits on US-III), WSTATE register implicitly written 0 on startup.  
/branches/sparc/boot/arch/sparc64/silo/silo.patched.tar.gz
/branches/sparc/contrib/util
/branches/sparc/contrib/util/DownloadAndPatchSILO.sh
/branches/sparc/boot/arch/sparc64/Makefile.inc
/branches/sparc/boot/arch/sparc64/loader/asm.S
/branches/sparc/boot/boot.config
/branches/sparc/boot/genarch/balloc.h
/branches/sparc/kernel/arch/sparc64/Makefile.inc
/branches/sparc/kernel/arch/sparc64/src/start.S
/branches/sparc/kernel/generic/src/main/main.c
/branches/sparc/kernel/kernel.config
3343 5818 d 1 h decky /branches/sparc/ add sparc branch  
/branches/sparc
3222 5860 d 2 h svoboda /trunk/ Merge program-loader related stuff from dynload branch to trunk. (huge)  
/trunk/kernel/generic/include/proc/program.h
/trunk/kernel/generic/include/synch/smc.h
/trunk/kernel/generic/src/proc/program.c
/trunk/kernel/generic/src/synch/smc.c
/trunk/uspace/app/cli
/trunk/uspace/app/cli/Makefile
/trunk/uspace/app/cli/cli.c
/trunk/uspace/lib/libc/generic/pcb.c
/trunk/uspace/lib/libc/generic/smc.c
/trunk/uspace/lib/libc/include/ipc/loader.h
/trunk/uspace/lib/libc/include/loader
/trunk/uspace/lib/libc/include/loader/pcb.h
/trunk/uspace/lib/libc/include/smc.h
/trunk/uspace/srv/loader
/trunk/uspace/srv/loader/Makefile
/trunk/uspace/srv/loader/arch
/trunk/uspace/srv/loader/arch/amd64
/trunk/uspace/srv/loader/arch/amd64/Makefile.inc
/trunk/uspace/srv/loader/arch/amd64/_link.ld.in
/trunk/uspace/srv/loader/arch/amd64/amd64.s
/trunk/uspace/srv/loader/arch/arm32
/trunk/uspace/srv/loader/arch/arm32/Makefile.inc
/trunk/uspace/srv/loader/arch/arm32/_link.ld.in
/trunk/uspace/srv/loader/arch/arm32/arm32.s
/trunk/uspace/srv/loader/arch/ia32
/trunk/uspace/srv/loader/arch/ia32/Makefile.inc
/trunk/uspace/srv/loader/arch/ia32/_link.ld.in
/trunk/uspace/srv/loader/arch/ia32/ia32.s
/trunk/uspace/srv/loader/arch/ia64
/trunk/uspace/srv/loader/arch/ia64/Makefile.inc
/trunk/uspace/srv/loader/arch/ia64/_link.ld.in
/trunk/uspace/srv/loader/arch/ia64/ia64.s
/trunk/uspace/srv/loader/arch/mips32
/trunk/uspace/srv/loader/arch/mips32/Makefile.inc
/trunk/uspace/srv/loader/arch/mips32/_link.ld.in
/trunk/uspace/srv/loader/arch/mips32/mips32.s
/trunk/uspace/srv/loader/arch/ppc32
/trunk/uspace/srv/loader/arch/ppc32/Makefile.inc
/trunk/uspace/srv/loader/arch/ppc32/_link.ld.in
/trunk/uspace/srv/loader/arch/ppc32/ppc32.s
/trunk/uspace/srv/loader/arch/sparc64
/trunk/uspace/srv/loader/arch/sparc64/Makefile.inc
/trunk/uspace/srv/loader/arch/sparc64/_link.ld.in
/trunk/uspace/srv/loader/arch/sparc64/sparc64.s
/trunk/uspace/srv/loader/elf_load.c
/trunk/uspace/srv/loader/include
/trunk/uspace/srv/loader/include/arch.h
/trunk/uspace/srv/loader/include/elf.h
/trunk/uspace/srv/loader/include/elf_load.h
/trunk/uspace/srv/loader/interp.s
/trunk/uspace/srv/loader/main.c
/trunk/boot/arch/amd64/Makefile.inc
/trunk/boot/arch/amd64/grub/menu.lst
/trunk/boot/arch/arm32/loader/Makefile
/trunk/boot/arch/ia32/Makefile.inc
/trunk/boot/arch/ia32/grub/menu.lst
/trunk/boot/arch/ia64/loader/Makefile
/trunk/boot/arch/mips32/loader/Makefile
/trunk/boot/arch/ppc32/loader/Makefile
/trunk/boot/arch/sparc64/loader/Makefile
/trunk/kernel/Makefile
/trunk/kernel/arch/amd64/src/userspace.c
/trunk/kernel/arch/arm32/src/userspace.c
/trunk/kernel/arch/ia32/src/userspace.c
/trunk/kernel/arch/ia32xen/src/userspace.c
/trunk/kernel/arch/ia64/src/asm.S
/trunk/kernel/arch/mips32/src/start.S
/trunk/kernel/arch/ppc32/src/asm.S
/trunk/kernel/arch/ppc64/src/asm.S
/trunk/kernel/arch/sparc64/src/asm.S
/trunk/kernel/generic/include/lib/elf.h
/trunk/kernel/generic/include/mm/as.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/lib/elf.c
/trunk/kernel/generic/src/main/kinit.c
/trunk/kernel/generic/src/mm/as.c
/trunk/kernel/generic/src/proc/task.c
/trunk/kernel/generic/src/proc/thread.c
/trunk/kernel/generic/src/syscall/syscall.c
/trunk/uspace/Makefile
/trunk/uspace/app/init/init.c
/trunk/uspace/app/tester/tester.c
/trunk/uspace/lib/libc/Makefile
/trunk/uspace/lib/libc/arch/amd64/src/entry.s
/trunk/uspace/lib/libc/arch/arm32/src/entry.s
/trunk/uspace/lib/libc/arch/ia32/src/entry.s
/trunk/uspace/lib/libc/arch/ia64/src/entry.s
/trunk/uspace/lib/libc/arch/mips32/src/entry.s
/trunk/uspace/lib/libc/arch/ppc32/src/entry.s
/trunk/uspace/lib/libc/arch/ppc64/src/entry.s
/trunk/uspace/lib/libc/arch/sparc64/src/entry.s
/trunk/uspace/lib/libc/generic/as.c
/trunk/uspace/lib/libc/generic/io/stream.c
/trunk/uspace/lib/libc/generic/libc.c
/trunk/uspace/lib/libc/generic/task.c
/trunk/uspace/lib/libc/include/as.h
/trunk/uspace/lib/libc/include/io/stream.h
/trunk/uspace/lib/libc/include/libc.h
/trunk/uspace/lib/libc/include/task.h
3193 5867 d 21 h jermar /trunk/kernel/ cstyle fixes  
/trunk/kernel/arch/ppc32/src/mm/page.c
/trunk/kernel/arch/ppc32/src/mm/tlb.c
/trunk/kernel/generic/src/console/kconsole.c
/trunk/kernel/generic/src/main/main.c
3181 5877 d 7 h jermar /trunk/kernel/generic/src/ cstyle for kinit.c and scheduler.c  
/trunk/kernel/generic/src/main/kinit.c
/trunk/kernel/generic/src/proc/scheduler.c
3175 5879 d 5 h jermar /trunk/kernel/generic/src/main/ Don't print anything before the kernel initializes the first THE
structure. This fixes a regression introduced in r3061. If anything
worked from r3061 until now, it was only due to luck. arm32 was not
that lucky when built with gcc 4.3.1.
 
/trunk/kernel/generic/src/main/main.c
3097 5893 d 22 h decky /trunk/kernel/ resurrect klog  
/trunk/kernel/arch/ia32/src/smp/ap.S
/trunk/kernel/generic/include/console/console.h
/trunk/kernel/generic/src/console/console.c
/trunk/kernel/generic/src/main/main.c
/trunk/kernel/generic/src/syscall/syscall.c
3061 5895 d 3 h decky /trunk/kernel/generic/src/main/ debugging output of kernel initialization  
/trunk/kernel/generic/src/main/main.c
3060 5895 d 3 h decky /trunk/kernel/generic/src/main/ run init tasks after they are all loaded  
/trunk/kernel/generic/src/main/kinit.c
3029 5899 d 3 h decky /trunk/kernel/generic/ fix kernel ramdisk support  
/trunk/kernel/generic/include/lib/rd.h
/trunk/kernel/generic/src/lib/rd.c
/trunk/kernel/generic/src/main/kinit.c
2746 5992 d 1 h decky /trunk/kernel/ start merging tasklets (more or less a rewrite)  
/trunk/kernel/generic/include/proc/tasklet.h
/trunk/kernel/generic/src/proc/tasklet.c
/trunk/kernel/Makefile
/trunk/kernel/generic/src/main/main.c
2745 5992 d 6 h decky /trunk/ code cleanup (mostly signed/unsigned)
allow extra compiler warnings
 
/trunk/kernel/Makefile
/trunk/kernel/arch/amd64/src/mm/page.c
/trunk/kernel/arch/arm32/src/arm32.c
/trunk/kernel/arch/arm32/src/cpu/cpu.c
/trunk/kernel/arch/arm32/src/debug/print.c
/trunk/kernel/arch/ia32xen/src/mm/tlb.c
/trunk/kernel/arch/ia32xen/src/smp/mps.c
/trunk/kernel/arch/ia32xen/src/smp/smp.c
/trunk/kernel/arch/ia64/src/ia64.c
/trunk/kernel/arch/ia64/src/mm/tlb.c
/trunk/kernel/arch/mips32/src/cpu/cpu.c
/trunk/kernel/arch/mips32/src/debugger.c
/trunk/kernel/arch/mips32/src/drivers/arc.c
/trunk/kernel/arch/mips32/src/mm/tlb.c
/trunk/kernel/arch/sparc64/src/mm/frame.c
/trunk/kernel/arch/sparc64/src/mm/page.c
/trunk/kernel/arch/sparc64/src/mm/tlb.c
/trunk/kernel/arch/sparc64/src/smp/ipi.c
/trunk/kernel/genarch/src/ofw/ebus.c
/trunk/kernel/genarch/src/ofw/fhc.c
/trunk/kernel/genarch/src/ofw/ofw_tree.c
/trunk/kernel/genarch/src/ofw/pci.c
/trunk/kernel/genarch/src/ofw/sbus.c
/trunk/kernel/generic/include/lib/elf.h
/trunk/kernel/generic/include/mm/as.h
/trunk/kernel/generic/include/mm/slab.h
/trunk/kernel/generic/src/debug/symtab.c
/trunk/kernel/generic/src/interrupt/interrupt.c
/trunk/kernel/generic/src/ipc/irq.c
/trunk/kernel/generic/src/ipc/sysipc.c
/trunk/kernel/generic/src/lib/elf.c
/trunk/kernel/generic/src/lib/func.c
/trunk/kernel/generic/src/lib/memstr.c
/trunk/kernel/generic/src/lib/sort.c
/trunk/kernel/generic/src/main/main.c
/trunk/kernel/generic/src/mm/as.c
/trunk/kernel/generic/src/mm/backend_anon.c
/trunk/kernel/generic/src/mm/backend_elf.c
/trunk/kernel/generic/src/mm/frame.c
/trunk/kernel/generic/src/mm/slab.c
/trunk/kernel/generic/src/mm/tlb.c
/trunk/kernel/generic/src/printf/printf_core.c
/trunk/kernel/generic/src/proc/task.c
/trunk/kernel/generic/src/synch/futex.c
/trunk/kernel/generic/src/time/clock.c
/trunk/kernel/test/avltree/avltree1.c
/trunk/kernel/test/fpu/fpu1.c
/trunk/kernel/test/fpu/mips2.c
/trunk/kernel/test/fpu/sse1.c
/trunk/kernel/test/mm/falloc2.c
/trunk/kernel/test/synch/rwlock5.c
/trunk/kernel/test/test.c
/trunk/kernel/test/thread/thread1.c
/trunk/uspace/lib/libc/arch/ppc64/src/syscall.c
2725 6013 d 3 h decky /trunk/kernel/ remove config.memory_size, get_memory_size() and memory_init.{c|d}
the amount of available memory can be calculated from the sizes of the zones
add FRAMES2SIZE, SIZE2KB and SIZE2MB functions/macros (code readability)
 
/trunk/kernel/arch/amd64/src/boot/memmap.c
/trunk/kernel/arch/ia32/src/boot/memmap.c
/trunk/kernel/arch/amd64/include/mm/memory_init.h
/trunk/kernel/arch/amd64/src/mm/memory_init.c
/trunk/kernel/arch/arm32/include/mm/memory_init.h
/trunk/kernel/arch/arm32/src/mm/memory_init.c
/trunk/kernel/arch/ia32/include/mm/memory_init.h
/trunk/kernel/arch/ia32/src/mm/memory_init.c
/trunk/kernel/arch/ia32xen/include/mm/memory_init.h
/trunk/kernel/arch/ia32xen/src/mm/memory_init.c
/trunk/kernel/arch/ia64/include/mm/memory_init.h
/trunk/kernel/arch/mips32/include/mm/memory_init.h
/trunk/kernel/arch/ppc32/include/mm/memory_init.h
/trunk/kernel/arch/ppc32/src/mm/memory_init.c
/trunk/kernel/arch/ppc64/include/mm/memory_init.h
/trunk/kernel/arch/ppc64/src/mm/memory_init.c
/trunk/kernel/arch/sparc64/include/mm/memory_init.h
/trunk/kernel/arch/sparc64/src/mm/memory_init.c
/trunk/kernel/arch/amd64/Makefile.inc
/trunk/kernel/arch/amd64/src/amd64.c
/trunk/kernel/arch/amd64/src/boot/boot.S
/trunk/kernel/arch/arm32/Makefile.inc
/trunk/kernel/arch/arm32/src/mm/frame.c
/trunk/kernel/arch/ia32/Makefile.inc
/trunk/kernel/arch/ia32/include/boot/memmap.h
/trunk/kernel/arch/ia32/src/boot/boot.S
/trunk/kernel/arch/ia32/src/ia32.c
/trunk/kernel/arch/ia32xen/Makefile.inc
/trunk/kernel/arch/ia32xen/src/ia32xen.c
/trunk/kernel/arch/ia64/src/mm/frame.c
/trunk/kernel/arch/mips32/src/drivers/arc.c
/trunk/kernel/arch/mips32/src/mm/frame.c
/trunk/kernel/arch/ppc32/Makefile.inc
/trunk/kernel/arch/ppc32/src/mm/frame.c
/trunk/kernel/arch/ppc32/src/ppc32.c
/trunk/kernel/arch/ppc64/Makefile.inc
/trunk/kernel/arch/ppc64/src/mm/frame.c
/trunk/kernel/arch/ppc64/src/ppc64.c
/trunk/kernel/arch/sparc64/Makefile.inc
/trunk/kernel/generic/include/config.h
/trunk/kernel/generic/include/macros.h
/trunk/kernel/generic/include/mm/frame.h
/trunk/kernel/generic/src/main/main.c
/trunk/kernel/generic/src/mm/frame.c
2701 6025 d 6 h jermar /trunk/kernel/ Fix cstyle and (c) to 2008.  
/trunk/kernel/arch/amd64/src/pm.c
/trunk/kernel/arch/ia32/src/mm/frame.c
/trunk/kernel/arch/ia32/src/smp/mps.c
/trunk/kernel/arch/ia32/src/smp/smp.c
/trunk/kernel/generic/src/main/version.c
2447 6263 d 2 h jermar /trunk/kernel/generic/src/main/ Split accidently joined lines.  
/trunk/kernel/generic/src/main/uinit.c
2446 6263 d 2 h jermar /trunk/kernel/generic/ More efficient and simpler task termination.

Based on the assumption, that after its creation, only the task itself can create more threads for itself,
the last thread with userspace context to execute thread_exit() will perform futex and IPC cleanup. When
the task has no threads, it is destroyed. Both the cleanup and destruction is controlled by reference
counting.

As for userspace threads, even though there could be a global garbage collector for joining threads, it is
much simpler if the uinit thread detaches itself before switching to userspace.

task_kill() is now an idempotent operation. It just instructs the threads within a task to exit.

Change in the name of a thread state: Undead -> JoinMe.
 
/trunk/kernel/generic/include/adt/list.h
/trunk/kernel/generic/include/proc/task.h
/trunk/kernel/generic/include/proc/thread.h
/trunk/kernel/generic/src/main/uinit.c
/trunk/kernel/generic/src/proc/scheduler.c
/trunk/kernel/generic/src/proc/task.c
/trunk/kernel/generic/src/proc/thread.c
2445 6263 d 3 h decky /trunk/ initial merge of branches/fs
(not finished, huge cleanup is needed)
 
/trunk/uspace/libc/generic/io/file.c
/trunk/uspace/libc/include/io/file.h
/trunk/uspace/rd/rd.h
/trunk/kernel/doc/AUTHORS
/trunk/kernel/generic/include/errno.h
/trunk/kernel/generic/include/lib/rd.h
/trunk/kernel/generic/src/lib/rd.c
/trunk/kernel/generic/src/main/kinit.c
/trunk/uspace/libc/include/ipc/services.h
/trunk/uspace/rd/rd.c
2227 6316 d 11 h decky /trunk/kernel/ start shutdown infrastructure  
/trunk/kernel/generic/src/main/shutdown.c
/trunk/kernel/Makefile
/trunk/kernel/arch/amd64/src/pm.c
/trunk/kernel/arch/arm32/src/arm32.c
/trunk/kernel/arch/ia32/src/pm.c
/trunk/kernel/arch/ia32xen/src/ia32xen.c
/trunk/kernel/arch/ia64/src/ia64.c
/trunk/kernel/arch/mips32/src/mips32.c
/trunk/kernel/arch/ppc32/src/drivers/cuda.c
/trunk/kernel/arch/ppc64/src/ppc64.c
/trunk/kernel/arch/sparc64/src/sparc64.c
/trunk/kernel/generic/include/arch.h
/trunk/kernel/generic/include/proc/task.h
/trunk/kernel/generic/src/console/cmd.c
/trunk/kernel/generic/src/proc/task.c
/trunk/kernel/kernel.config
2223 6316 d 18 h decky /trunk/kernel/generic/src/ add mcall0 command (calling a function on each CPU)  
/trunk/kernel/generic/src/console/cmd.c
/trunk/kernel/generic/src/main/kinit.c
2118 6379 d 3 h decky /trunk/kernel/generic/src/ explicit typecast, fix signed/unsigned comparison  
/trunk/kernel/generic/src/main/kinit.c
/trunk/kernel/generic/src/proc/scheduler.c
/trunk/kernel/generic/src/proc/task.c
/trunk/kernel/generic/src/proc/thread.c

Show All