# # ChangeLog for src/main/main.c in mainline # # Generated by Trac 1.6 # 2025-08-18T09:23:24Z Wed, 31 Aug 2005 21:56:52 GMT Jakub Vana [d2bb9f8a] * arch/ia64/Makefile.inc (modified) * arch/ia64/src/cpu/cpu.c (added) * arch/ia64/src/dummy.s (modified) * arch/ia64/src/interrupt_handler.c (added) * arch/ia64/src/ivt.S (added) * arch/mips/src/putchar.c (modified) * src/Makefile.config (modified) * src/main/main.c (modified) * src/proc/scheduler.c (modified) Basic exception support added for ia64 arch ...... Wed, 31 Aug 2005 21:51:04 GMT Martin Decky [393f631] * arch/amd64/include/arch.h (added) * arch/ia32/include/arch.h (added) * arch/ia64/include/arch.h (added) * arch/mips/include/arch.h (added) * arch/ppc/Makefile.inc (modified) * arch/ppc/_link.ld (modified) * arch/ppc/boot/Makefile (modified) * arch/ppc/boot/_link.ld (added) * arch/ppc/boot/boot.S (moved) * arch/ppc/boot/main.c (added) * arch/ppc/boot/main.h (added) * arch/ppc/include/arch.h (added) * arch/ppc/include/asm.h (modified) * arch/ppc/include/context.h (modified) * arch/ppc/src/asm.S (moved) * arch/ppc/src/cpu/cpu.c (added) * arch/ppc/src/debug/panic.s (modified) * arch/ppc/src/drivers/ofw.c (modified) * arch/ppc/src/dummy.s (modified) * arch/ppc/src/ppc.c (added) * include/arch.h (modified) * include/context.h (modified) * src/main/main.c (modified) * src/proc/thread.c (modified) many PPC stuff, platform dependent arch.h header files Wed, 31 Aug 2005 11:43:38 GMT Martin Decky [8f91729] * arch/ppc/Makefile.inc (modified) * arch/ppc/include/context.h (modified) * arch/ppc/include/drivers/ofw.h (modified) * arch/ppc/include/ppc.h (deleted) * arch/ppc/src/drivers/ofw.c (modified) * arch/ppc/src/ppc.c (deleted) * arch/ppc/src/start.S (modified) * include/context.h (modified) * src/main/main.c (modified) separated stack mapping Tue, 30 Aug 2005 17:41:19 GMT Jakub Jermar [7ce9284] * arch/amd64/include/cpu.h (modified) * arch/ia32/include/asm.h (modified) * arch/ia32/include/cpu.h (modified) * arch/ia32/src/ia32.c (modified) * arch/ia64/include/cpu.h (modified) * arch/mips/include/cpu.h (modified) * arch/ppc/include/cpu.h (modified) * include/arch.h (modified) * include/cpu.h (modified) * src/Makefile.config (modified) * src/cpu/cpu.c (modified) * src/main/main.c (modified) * src/proc/scheduler.c (modified) Dump implementation of THREAD, TASK and CPU. Implement ... Tue, 30 Aug 2005 09:44:07 GMT Jakub Jermar [bcdd9aa] * arch/ia32/src/proc/scheduler.c (modified) * include/arch.h (modified) * src/Makefile (modified) * src/lib/the.c (added) * src/main/main.c (modified) * src/proc/scheduler.c (modified) * src/proc/thread.c (modified) Add lib/the.c. Add and deploy the_initialize() and the_copy(). ... Mon, 29 Aug 2005 20:31:23 GMT Jakub Jermar [1fbbcd6] * arch/ia32/include/asm.h (modified) * arch/ia32/include/context.h (modified) * arch/ia32/include/cpu.h (modified) * arch/ia64/include/asm.h (modified) * arch/ia64/include/context.h (modified) * arch/mips/include/asm.h (modified) * arch/mips/include/context.h (modified) * src/main/main.c (modified) Globalize 'size' and 'delta' and rename them to 'kernel_size' and ... Mon, 29 Aug 2005 11:57:26 GMT Jakub Jermar [b52da8d7] * arch/amd64/include/barrier.h (modified) * arch/ia32/include/asm.h (modified) * arch/ia32/include/barrier.h (modified) * arch/ia32/src/boot/boot.S (modified) * arch/ia32/src/mm/frame.c (modified) * arch/ia32/src/smp/ap.S (modified) * arch/ia64/include/barrier.h (modified) * arch/mips/include/barrier.h (modified) * arch/mips/include/cpu.h (modified) * arch/mips/include/mm/page.h (modified) * arch/ppc/include/barrier.h (modified) * include/arch.h (modified) * include/cpu.h (modified) * include/proc/task.h (modified) * include/proc/thread.h (modified) * src/main/main.c (modified) * src/preempt/preemption.c (modified) Add some comments to IA-32 src/boot/boot.S and src/smp.S. Make the ... Thu, 25 Aug 2005 21:09:19 GMT Jakub Jermar [fde6429] * arch/ia32/src/boot/boot.S (modified) * src/main/main.c (modified) Small changes. Coding style fix in main.c. Make 'cli' be the first ... Fri, 19 Aug 2005 13:12:32 GMT Jakub Jermar [b07769b6] * arch/amd64/src/dummy.s (modified) * arch/ia32/src/drivers/ega.c (modified) * arch/ia32/src/mm/page.c (modified) * arch/ia32/src/pm.c (modified) * arch/ia32/src/proc/scheduler.c (modified) * arch/ppc/src/dummy.s (modified) * include/mm/page.h (modified) * include/mm/vm.h (modified) * src/main/kinit.c (modified) * src/main/main.c (modified) * src/mm/vm.c (modified) * src/proc/scheduler.c (modified) Switch over to per vm_t page tables. (breaks ia32 userspace) Define ... Tue, 26 Jul 2005 19:58:32 GMT Jakub Jermar [11485dec] * arch/ia32/src/boot/memmap.S (modified) * arch/ia32/src/mm/memory_init.c (modified) * src/main/main.c (modified) Fix IA-32's get_memory_size() to return size of memory in bytes ... Thu, 21 Jul 2005 14:27:13 GMT Josef Cejka [a55f97f] * arch/ia32/Makefile.inc (modified) * arch/ia32/include/mm/memory_init.h (added) * arch/ia32/src/mm/frame.c (modified) * arch/ia32/src/mm/memory_init.c (added) * src/main/main.c (modified) Memory size detection for ia32 completed. Fri, 03 Jun 2005 15:10:05 GMT Martin Decky [673104e] * include/userspace.h (modified) * src/Makefile.config (modified) * src/cpu/cpu.c (modified) * src/main/main.c (modified) doxygen-style comments NDEBUG in Makefile.config Fri, 03 Jun 2005 13:17:05 GMT Jakub Jermar [ac5d02b] * arch/ia32/_link.ld (modified) * arch/ia32/include/mm/vm.h (modified) * arch/ia32/src/asm.s (modified) * arch/ia32/src/drivers/ega.c (modified) * arch/ia32/src/mm/page.c (modified) * arch/ia32/src/userspace.c (modified) * arch/ia64/_link.ld (modified) * arch/ia64/src/start.S (modified) * arch/mips/_link.ld (modified) * src/main/main.c (modified) IA-32 fixes. Use kernel addresses instead of physical addresses in ... Thu, 02 Jun 2005 23:56:26 GMT Jakub Jermar [dcbc8be] * arch/ia32/Makefile.inc (modified) * arch/ia32/_link.ld (modified) * arch/ia32/include/mm/page.h (modified) * arch/ia32/include/mm/vm.h (modified) * arch/ia32/include/pm.h (modified) * arch/ia32/src/boot/boot.S (modified) * arch/ia32/src/boot/memmap.S (modified) * arch/ia32/src/mm/frame.c (modified) * arch/ia32/src/mm/page.c (modified) * arch/ia32/src/pm.c (modified) * arch/ia64/include/mm/vm.h (modified) * arch/mips/include/mm/vm.h (modified) * arch/mips/src/asm.s (modified) * doc/AUTHORS (modified) * include/config.h (modified) * src/main/main.c (modified) Big changes in IA-32 address space map. Now the kernel is mapped ... Wed, 25 May 2005 12:29:18 GMT Jakub Jermar [d5d2a3f] * arch/ia64/include/context.h (modified) * include/context.h (modified) * src/main/main.c (modified) * src/proc/scheduler.c (modified) * src/proc/thread.c (modified) Add context_set() macro to support extended behaviour for ... Tue, 17 May 2005 20:46:19 GMT Jakub Jermar [7f1bfce] * arch/ia32/include/context.h (modified) * arch/ia32/include/smp/apic.h (modified) * arch/ia32/src/smp/apic.c (modified) * arch/ia64/include/context.h (modified) * arch/ia64/src/asm.S (modified) * arch/ia64/src/start.S (modified) * arch/mips/include/context.h (modified) * src/main/main.c (modified) * src/proc/scheduler.c (modified) * src/proc/thread.c (modified) * test/synch/rwlock4/test.c (modified) Add SP_DELTA macro for each architecture. On IA-32, this macro ... Fri, 13 May 2005 21:45:35 GMT Jakub Jermar [244f284] * arch/ia64/Makefile.inc (modified) * arch/ia64/include/ski/ski.h (modified) * arch/ia64/src/fake.s (modified) * arch/ia64/src/ia64.c (modified) * arch/ia64/src/putchar.c (modified) * arch/ia64/src/ski/ski.c (added) * arch/ia64/src/start.S (modified) * src/main/main.c (modified) IA-64 cosmetics. Add ski_init_console() and ski_putchar() to ski.c ... Fri, 13 May 2005 20:51:40 GMT Jakub Jermar [da79d0fd] * include/print.h (modified) * src/debug/print.c (modified) * src/main/main.c (modified) Add %P and %p formatters to printf for printing pointers in maximum ... Thu, 12 May 2005 20:37:03 GMT Jakub Jermar [f2ffad4] * arch/ia32/include/faddr.h (added) * arch/ia64/Makefile.inc (modified) * arch/ia64/include/faddr.h (added) * arch/mips/include/faddr.h (added) * src/Makefile (modified) * src/main/main.c (modified) * src/proc/scheduler.c (modified) * src/proc/thread.c (modified) For each architecture, add function/macro FADDR that calculates ... Wed, 11 May 2005 20:21:26 GMT Jakub Jermar [7eb01623] * src/main/main.c (modified) Declare 'HelenOS project' as the copyright holder from 2005. Wed, 11 May 2005 19:51:55 GMT Martin Decky [02a99d2] * arch/ia32/src/debug/panic.s (modified) * arch/ia32/src/interrupt.c (modified) * arch/ia32/src/pm.c (modified) * arch/ia32/src/smp/mps.c (modified) * arch/ia64/src/fake.s (modified) * arch/mips/src/cache.c (modified) * arch/mips/src/exception.c (modified) * arch/mips/src/interrupt.c (modified) * arch/mips/src/mm/tlb.c (modified) * arch/mips/src/panic.s (modified) * include/list.h (modified) * include/panic.h (modified) * include/print.h (modified) * include/typedefs.h (modified) * src/debug/print.c (modified) * src/main/kinit.c (modified) * src/main/main.c (modified) * src/mm/frame.c (modified) * src/mm/heap.c (modified) * src/mm/vm.c (modified) * src/proc/scheduler.c (modified) * src/synch/rwlock.c (modified) * src/time/timeout.c (modified) NDEBUG debug symbol, ASSERT debug macro, fancier panic() in debug ... Sun, 08 May 2005 14:17:52 GMT Jakub Jermar [be50915] * src/main/main.c (modified) Remove redundant comments. Sun, 08 May 2005 13:59:59 GMT Jakub Vana [aa4e8d7] * arch/ia32/include/context.h (modified) * arch/ia32/src/context.s (modified) * include/proc/thread.h (modified) * src/Makefile.config (modified) * src/main/main.c (modified) Remove fpu_context pointer from context_t. Add fpu_context ... Tue, 03 May 2005 11:30:21 GMT Jakub Jermar [2217ac3] * arch/ia64/_link.ld (modified) * arch/ia64/src/putchar.c (modified) * arch/ia64/src/start.S (modified) * src/Makefile.config (modified) * src/main/main.c (modified) More IA-64 work. IA-64 putchar() for Ski simulator. Linker script ... Sat, 30 Apr 2005 16:47:17 GMT Jakub Jermar [ed0dd65] * arch/ia32/Makefile.inc (modified) * arch/ia32/include/acpi/madt.h (modified) * arch/ia32/include/smp/mps.h (moved) * arch/ia32/src/acpi/acpi.c (modified) * arch/ia32/src/acpi/madt.c (modified) * arch/ia32/src/ia32.c (modified) * arch/ia32/src/mm/page.c (modified) * arch/ia32/src/smp/apic.c (modified) * arch/ia32/src/smp/mps.c (moved) * arch/ia32/src/smp/smp.c (added) * include/smp/smp.h (added) * src/Makefile (modified) * src/Makefile.config (modified) * src/main/kinit.c (modified) * src/main/main.c (modified) More ACPI work. Initial MADT table parsing. SMP renaming and ... Wed, 27 Apr 2005 21:19:42 GMT Jakub Jermar [babcb148] * arch/ia32/include/acpi/acpi.h (modified) * arch/ia32/src/acpi/acpi.c (modified) * arch/ia32/src/ia32.c (modified) * arch/ia32/src/smp/mp.c (modified) * arch/mips/src/mips.c (modified) * include/arch.h (modified) * include/func.h (modified) * src/lib/func.c (modified) * src/main/kinit.c (modified) * src/main/main.c (modified) * src/mm/tlb.c (modified) ACPI detection code. MP detection code rewrite. Minor changes. Sun, 24 Apr 2005 21:59:33 GMT Jakub Jermar [c9b8c5c] * arch/ia32/include/asm.h (modified) * arch/ia32/include/cpu.h (modified) * arch/ia32/include/smp/apic.h (modified) * arch/ia32/src/asm.s (modified) * arch/ia32/src/ia32.c (modified) * arch/ia32/src/interrupt.c (modified) * arch/ia32/src/smp/apic.c (modified) * arch/ia32/src/smp/mp.c (modified) * src/Makefile.config (modified) * src/main/main.c (modified) APIC changes and fixes. Be more robust during MP configuration. Do ... Fri, 22 Apr 2005 14:11:38 GMT Jakub Jermar [f07bba5] * arch/ia32/src/asm.s (modified) * arch/ia32/src/ia32.c (modified) * arch/mips/src/mips.c (modified) * include/arch.h (modified) * src/Makefile.config (modified) * src/main/main.c (modified) Code cleanup after arch_init() splitting. Restore %ds and %es ... Tue, 19 Apr 2005 16:19:48 GMT Jakub Jermar [7eade45] * arch/ia32/src/ia32.c (modified) * arch/mips/src/mips.c (modified) * include/arch.h (modified) * src/main/main.c (modified) * src/mm/page.c (modified) Fix wrong order of *_init() function calls. Sun, 10 Apr 2005 16:36:45 GMT Jakub Jermar [8262010] * arch/ia32/Makefile.inc (modified) * arch/ia32/_link.ld (modified) * arch/ia32/boot/boot.ld (modified) * arch/ia32/include/cpu.h (modified) * arch/ia32/include/smp/apic.h (modified) * arch/ia32/src/cpu/cpu.c (modified) * arch/ia32/src/pm.c (modified) * arch/ia32/src/smp/apic.c (modified) * arch/mips/include/cpu.h (modified) * include/arch.h (modified) * include/cpu.h (modified) * include/typedefs.h (modified) * src/Makefile.config (modified) * src/cpu/cpu.c (modified) * src/main/main.c (modified) * src/proc/thread.c (modified) Switch from mm-based 'the' mechanism to macro-based ... Sat, 09 Apr 2005 18:22:53 GMT Jakub Jermar [43114c5] * arch/ia32/src/cpu/cpu.c (modified) * arch/ia32/src/drivers/i8042.c (modified) * arch/ia32/src/drivers/i8254.c (modified) * arch/ia32/src/drivers/i8259.c (modified) * arch/ia32/src/smp/apic.c (modified) * arch/ia32/src/userspace.c (modified) * arch/mips/src/cpu/cpu.c (modified) * arch/mips/src/exception.c (modified) * arch/mips/src/mm/tlb.c (modified) * include/arch.h (modified) * src/cpu/cpu.c (modified) * src/lib/func.c (modified) * src/main/kinit.c (modified) * src/main/main.c (modified) * src/proc/scheduler.c (modified) * src/proc/task.c (modified) * src/proc/thread.c (modified) * src/synch/rwlock.c (modified) * src/synch/spinlock.c (modified) * src/synch/waitq.c (modified) * src/time/clock.c (modified) * src/time/delay.c (modified) * src/time/timeout.c (modified) * test/synch/rwlock2/test.c (modified) * test/synch/rwlock3/test.c (modified) * test/synch/rwlock4/test.c (modified) * test/synch/rwlock5/test.c (modified) * test/synch/semaphore1/test.c (modified) * test/synch/semaphore2/test.c (modified) Introduce macros CPU, THREAD, TASK and use them to replace the->cpu, ... Fri, 25 Feb 2005 23:38:05 GMT Jakub Jermar [397c77f] * arch/ia32/_link.ld (modified) * arch/ia32/include/asm.h (modified) * arch/ia32/include/context.h (modified) * arch/ia32/include/cpu.h (modified) * arch/ia32/include/i8254.h (modified) * arch/ia32/include/mm/frame.h (modified) * arch/ia32/include/mm/page.h (modified) * arch/ia32/include/mm/vm.h (modified) * arch/ia32/include/smp/ap.h (moved) * arch/ia32/include/smp/apic.h (moved) * arch/ia32/include/smp/atomic.h (moved) * arch/ia32/include/smp/mp.h (moved) * arch/ia32/include/thread.h (modified) * arch/ia32/src/mm/page.c (modified) * arch/ia32/src/pm.c (modified) * arch/ia32/src/smp/apic.c (modified) * arch/ia32/src/smp/ipi.c (modified) * arch/ia32/src/smp/mp.c (modified) * arch/mips/include/smp/atomic.h (moved) * src/main/kinit.c (modified) * src/main/main.c (modified) * src/mm/tlb.c (modified) * src/proc/scheduler.c (modified) * src/synch/spinlock.c (modified) * src/time/clock.c (modified) Clean up (ia32 vs. i386). Header files reorganization. Mon, 21 Feb 2005 21:47:22 GMT Jakub Jermar [169587a] * arch/ia32/include/apic.h (modified) * arch/ia32/include/interrupt.h (modified) * arch/ia32/src/ia32.c (modified) * arch/ia32/src/interrupt.c (modified) * arch/ia32/src/mm/page.c (modified) * arch/ia32/src/mm/tlb.c (modified) * arch/ia32/src/smp/apic.c (modified) * include/mm/tlb.h (modified) * src/main/main.c (modified) * src/mm/tlb.c (modified) * src/mm/vm.c (modified) TLB shootdown. Fri, 18 Feb 2005 17:30:54 GMT Jakub Jermar [f761f1eb] * arch/ia32/Makefile.inc (added) * arch/ia32/_link.ld (added) * arch/ia32/boot/Makefile (added) * arch/ia32/boot/boot.S (added) * arch/ia32/boot/boot.ld (added) * arch/ia32/include/ap.h (added) * arch/ia32/include/apic.h (added) * arch/ia32/include/asm.h (added) * arch/ia32/include/atomic.h (added) * arch/ia32/include/context.h (added) * arch/ia32/include/cpu.h (added) * arch/ia32/include/cpuid.h (added) * arch/ia32/include/ega.h (added) * arch/ia32/include/i8042.h (added) * arch/ia32/include/i8254.h (added) * arch/ia32/include/i8259.h (added) * arch/ia32/include/interrupt.h (added) * arch/ia32/include/mm/frame.h (added) * arch/ia32/include/mm/page.h (added) * arch/ia32/include/mm/vm.h (added) * arch/ia32/include/mp.h (added) * arch/ia32/include/pm.h (added) * arch/ia32/include/thread.h (added) * arch/ia32/include/types.h (added) * arch/ia32/src/asm.s (added) * arch/ia32/src/boot/boot.S (added) * arch/ia32/src/context.s (added) * arch/ia32/src/cpu/cpu.c (added) * arch/ia32/src/cpuid.s (added) * arch/ia32/src/debug/panic.s (added) * arch/ia32/src/delay.s (added) * arch/ia32/src/drivers/ega.c (added) * arch/ia32/src/drivers/i8042.c (added) * arch/ia32/src/drivers/i8254.c (added) * arch/ia32/src/drivers/i8259.c (added) * arch/ia32/src/ia32.c (added) * arch/ia32/src/interrupt.c (added) * arch/ia32/src/mm/frame.c (added) * arch/ia32/src/mm/page.c (added) * arch/ia32/src/mm/tlb.c (added) * arch/ia32/src/pm.c (added) * arch/ia32/src/smp/ap.S (added) * arch/ia32/src/smp/apic.c (added) * arch/ia32/src/smp/atomic.S (added) * arch/ia32/src/smp/mp.c (added) * arch/ia32/src/userspace.c (added) * arch/mips/Makefile.inc (added) * arch/mips/_link.ld (added) * arch/mips/boot/Makefile (added) * arch/mips/boot/boot.s (added) * arch/mips/include/asm.h (added) * arch/mips/include/asm/macro.h (added) * arch/mips/include/atomic.h (added) * arch/mips/include/cache.h (added) * arch/mips/include/context.h (added) * arch/mips/include/cp0.h (added) * arch/mips/include/cpu.h (added) * arch/mips/include/exception.h (added) * arch/mips/include/interrupt.h (added) * arch/mips/include/mm/frame.h (added) * arch/mips/include/mm/page.h (added) * arch/mips/include/mm/tlb.h (added) * arch/mips/include/mm/vm.h (added) * arch/mips/include/thread.h (added) * arch/mips/include/types.h (added) * arch/mips/src/asm.s (added) * arch/mips/src/cache.c (added) * arch/mips/src/context.S (added) * arch/mips/src/cpu/cpu.c (added) * arch/mips/src/exception.c (added) * arch/mips/src/fake.s (added) * arch/mips/src/interrupt.c (added) * arch/mips/src/lib/memstr.c (added) * arch/mips/src/mips.c (added) * arch/mips/src/mm/frame.c (added) * arch/mips/src/mm/page.c (added) * arch/mips/src/mm/tlb.c (added) * arch/mips/src/panic.s (added) * arch/mips/src/putchar.c (added) * arch/mips/src/start.S (added) * arch/powerpc/Makefile.inc (added) * arch/powerpc/_link.ld (added) * arch/powerpc/boot/Makefile (added) * arch/powerpc/boot/boot.s (added) * arch/powerpc/src/powerpc.c (added) * doc/TODO (added) * doc/mips (added) * doc/preemption (added) * doc/requirements (added) * doc/synchronization (added) * include/arch.h (added) * include/config.h (added) * include/context.h (added) * include/cpu.h (added) * include/func.h (added) * include/list.h (added) * include/main/kinit.h (added) * include/main/uinit.h (added) * include/memstr.h (added) * include/mm/frame.h (added) * include/mm/heap.h (added) * include/mm/page.h (added) * include/mm/tlb.h (added) * include/mm/vm.h (added) * include/panic.h (added) * include/print.h (added) * include/proc/scheduler.h (added) * include/proc/task.h (added) * include/proc/thread.h (added) * include/putchar.h (added) * include/synch/condvar.h (added) * include/synch/mutex.h (added) * include/synch/rwlock.h (added) * include/synch/semaphore.h (added) * include/synch/spinlock.h (added) * include/synch/synch.h (added) * include/synch/waitq.h (added) * include/test.h (added) * include/time/clock.h (added) * include/time/delay.h (added) * include/time/timeout.h (added) * include/typedefs.h (added) * include/userspace.h (added) * src/Makefile (added) * src/Makefile.config (added) * src/cpu/cpu.c (added) * src/debug/print.c (added) * src/lib/func.c (added) * src/lib/list.c (added) * src/main/kinit.c (added) * src/main/main.c (added) * src/main/uinit.c (added) * src/mm/frame.c (added) * src/mm/heap.c (added) * src/mm/page.c (added) * src/mm/tlb.c (added) * src/mm/vm.c (added) * src/proc/scheduler.c (added) * src/proc/task.c (added) * src/proc/thread.c (added) * src/synch/condvar.c (added) * src/synch/mutex.c (added) * src/synch/rwlock.c (added) * src/synch/semaphore.c (added) * src/synch/spinlock.c (added) * src/synch/waitq.c (added) * src/time/clock.c (added) * src/time/delay.c (added) * src/time/timeout.c (added) * test/synch/rwlock1/test.c (added) * test/synch/rwlock2/test.c (added) * test/synch/rwlock3/test.c (added) * test/synch/rwlock4/test.c (added) * test/synch/rwlock5/test.c (added) * test/synch/semaphore1/test.c (added) * test/synch/semaphore2/test.c (added) Initial import