2007-12-22 Kohsuke Ohtani * sys/include/version.h: Update version to 0.7.0. 2007-12-15 Kohsuke Ohtani * Code clean up for ANSI-C. 2007-12-08 Kohsuke Ohtani * sys/kern/exception.c (exception_deliver): Fixed a page fault after the task is terminated by exception. * sys/mem/vm.c (__vm_allocate): Modified to prevent an assertion check when no page is available. * sys/include/timer.h: Changed SCHED_INFO -> SCHED_TIMER. * usr/server/fs/vfs/main.c: Setup thread priority for all threads. * sys/kern/thread.c (thread_schedparam): Added check to prevent the priority boost by the thread which does not have CAP_NICE capability. * sys/kern/debug.c: Removed a kernel function trace feature which is depend on gcc's extension. 2007-11-22 Kohsuke Ohtani * sys/kern/timer.c (timer_cleanup): Fixed memory leak when a periodic thread is terminated. * sys/sync/cond.c (cond_wait): Mutex was locked even if cond_wait() was failed due to exception. 2007-11-21 Kohsuke Ohtani * sys/kern/sched.c (sched_switch): Added clearing rescheduling flag before context switch. This flag was kept pending in some rare case. * sys/kern/sched.c (sched_unlock): Handle interrupts fired during thread switching to minimize scheduling latency. * sys/kern/timer.c: Removed timer_unhook(). This can be done by calling timer_hook() with NULL pointer. * Fixed build error with gcc 2.95. * sys/lib/vsprintf.c (divide): Removed a divide optimization for ARM. we link libgcc.a now. 2007-11-03 Kohsuke Ohtani * usr/server/fs/ramfs/ramfs_vnops.c (ramfs_truncate): Added file truncate routine for O_TRUNC. * usr/server/fs/vfs/syscalls.c (sys_mkdir): Fixed page fault during mkdir() when "foo/bar" style path is specified. The problem is caused by illegal vput() for lookup error. 2007-10-26 Kohsuke Ohtani * usr/server/fs/ramfs/ramfs_vnops.c (ramfs_write): Page fault while writing ramfs. * mk/Makefile.inc: Enable -ansi -pedantic option for portability. 2007-10-25 Kohsuke Ohtani * usr/server/fs/vfs/bio.c (bio_init): A mutex for buffer cache was no initialized. * sys/sync/mutex.c (mutex_lock): Fixed bug in recursive mutex lock. The lock count was incorrect. 2007-10-23 Kohsuke Ohtani * sys/kern/thread.c (kernel_thread): Changed the scheduling policy of a timer thread to SCHED_FIFO from SCHED_RR. 2007-10-20 Kohsuke Ohtani * sys/mem/kmem.c (kmem_alloc): Fixed the hang when kernel memory allocation was failed. 2007-10-19 Kohsuke Ohtani * sys/kern/except.c (exception_raise): The schduler was kept disabled when an exception was raised with invalid parameter. 2007-10-10 Kohsuke Ohtani * user/lib/*/Makefile.inc: Changed libsa to remove dependency with libc. * user/mk/Makefile.inc: Added checking unresolved symbols in a driver module. * sys/kern/timer.c (tmer_callout): Rename timer_callout() from timer_timeout(). * Changed the name of the following interface to keep the consistency. - object_delete() -> object_destroy() - device_delete() -> device_destroy() * include/*: Added common include directory. 2007-10-06 Kohsuke Ohtani * user/mk/Makefile.inc: Changed the compile option to -Os from -O2 to reduce entire code size. 2007-09-30 Kohsuke Ohtani * user/server/fs/ramfs/ramfs_vnops.c: Fixed unbalanced lock/unlock of mutex in RAMFS. This patch was posted by YoctoGram. 2007-09-27 Kohsuke Ohtani * user/server/fs/devfs/devfs_vnops.c: Fixed a file lookup routine in devfs. * user/include/prex/prex.h: Likewise. * sys/include/device.h: Likewise. 2007-09-23 Kohsuke Ohtani * sys/kern/device.c: Added "flags" parameter in device_create() to indicate the device type. This is required for a file system to know whether the device is a block device. * sys/kern/include/system.h: Likewise. * sys/kern/include/device.h: Likewise. * user/include/prex/prex.h: Likewise. 2007-08-23 Kohsuke Ohtani * user/lib/prex/malloc/malloc.c: Implement realloc(). 2007-08-19 Kohsuke Ohtani * sys/kern/except.c: Fixed to support processing an exception at interrupt level. 2007-08-12 Kohsuke Ohtani * sys/kern/except.c: Added exception_mask() to mark exception of curren task. This is used by tty driver. * dev/gen/tty.c: Support TTY driver. * dev/arch/arm/gba/console.c: Likewise. * dev/arch/arm/gba/swkbd.c: Likewise. * dev/arch/i386/pc/console.c: Likewise. * dev/arch/i386/pc/kbd.c: Likewise. 2007-07-12 Kohsuke Ohtani * user/server/fs/vfs/main.c (fs_dup): Correct dup() function in fs. The reference count was not incremented after dup(). * sys/sync/mutex.c (mutex_cleanup): Fixed the kernel hang when a thread terminates while it holds a mutex. * boot/common/elf.c (load_executable): Fixed the boot failure when a boot task does not have any data or bss sections. 2007-07-03 Kohsuke Ohtani * sys/kern/sched.c (sched_setprio): Fixed the scheduler to switch a thread properly for priority change. * user/lib/prex/posix/file/*: Added POSIX emulation library for file related system calls. * user/test/fileio/fileio.c: Likewise. 2007-06-20 Kohsuke Ohtani * sys/include/param.h: Update version to 0.5.0. * user/test/fileio/main.c: Added test program for file system. * user/test/fileio/fslib.c: Likewise. * user/test/fileio/fslib.h: Likewise. * user/test/fileio/Makefile: Likewise. * user/server/fs/*: Adde file system server. This includes VFS framework, buffer cache, ramfs, devfs, and arfs (archive fs). 2007-06-17 Kohsuke Ohtani * mk/Makefile.inc: Optimized build speed for cygwin. * configure: Removed dependency to 'sed' and added confiure script for build process. * mk/Makefile.inc: Likewise. * mk/own.mk: Likewise. * boot/arch/i386/pc/head.s: Changed file name to head.S. 2007-06-16 Kohsuke Ohtani Applied following patches posted by Andrew Dennison. * dev/power/cpufreq.c: Fixed typos. * sys/include/system.h: Likewise. * user/bin/kmon/cmd.c: Likewise. * mk/Makefile.inc: Added more dependencies and intermediate elf file. for binary output * boot/include/types.h: Added C99 types for boot too. * sys/kern/irq.c (irq_detach): Fixed crash in irq_detach() when not using an ist. * dev/include/driver.h: Const correctness, fix timer_delay() prototype for drivers. * kern/sys/device.c: Likewise. * sys/kern/timer.c: Fixed spelling in comment. * sys/lib/vsprintf.c (vsprintf): support field width for %s. * convert config to makefile variables and autogenerate config.h. * convert driver selection to makefile based CONFIG variable. 2007-06-02 Kohsuke Ohtani * mk/prog.mk: Support BSD style makefile for POSIX applications. PROG and SRCS macro is supported now. 2007-05-02 Kohsuke Ohtani * sys/arch/i386/i386/cpu.h: Removed pad data from desc_p. This was an obsolete hack for msvc compiler. * boot/common/elf.c (elf_load): Corrected the macro to get the kernel load address. phys_to_virt => virt_to_phys. 2007-04-13 Kohsuke Ohtani * sys/include/param.h: Update version to 0.4.3. * user/test/dvs/dvs.c: Added test case for 50% cpu load for DVS test tool. 2007-04-12 Kohsuke Ohtani The following 5 changes were applied by Andrew Dennison. * boot/common/debug.c: (1) Fixed order of header files. * boot/common/elf.c: Likewise. * boot/common/main.c: Likewise. * sys/arch/i386/include/arch.h: (2) Fixed typo. * sys/arch/i386/include/platform.h: Likewise. * user/test/Makefile: (3) Modified for i386 specific test tool. * user/lib/libc/stdlib/getsubopt.c: (4) Fixed build warning. * user/lib/libc/stdlib/strtol.c: Likewise. * user/lib/libc/stdlib/strtoul.c: Likewise. * boot/common/elf.c: (5) Added validation of module symbol while relocating module. * boot/include/elf.h: Likewise. 2007-04-09 Kohsuke Ohtani * sys/kern/debug.c: Added "dmesg" framework. The kernel message log can be checked after system boot with this change. User can get this message by F9 key on PC platform. * sys/include/debug.h: Likewise. * sys/include/param.h: Likewise. * dev/include/driver.h: Likewise. * user/include/prex/prex.h: Likewise. * user/bin/kmon/cmd.c: Likewise. * conf/config-arm-gba.h: Likewise. * conf/config-i386-pc.h: Likewise. * conf/config-i386-nommu.h: Likewise. 2007-04-08 Kohsuke Ohtani * sys/kern/sched.c (thread_dpc): Support DPC (Deferred Procedure Call). The driver can handle an asynchronous callback event at safer interrupt level. * sys/kern/device.c: Likewise. * sys/include/sched.h: Likewise. * dev/include/driver.h: Likewise. * dev/power/dvs.c: Optimized voltage scaling algorithm. * dev/power/cpufreq.c: Likewise. * dev/power/pm.c: Likewise. 2007-04-07 Kohsuke Ohtani * sys/sync/sem.c (sem_post): Fixed a bug in sem_post(). The thread could not get a semaphore when multiple value is set. * sys/kern/timer.c: Added timer_hook()/timer_unhook() service for drivers. The power management or profiling driver can get a tick event with these services without using timer call-back. This can reduce the system power consumption. * sys/kern/device.c: Likewise. * sys/include/sched.h: Likewise. * dev/include/driver.h: Likewise. 2007-04-03 Kohsuke Ohtani * sys/kern/timer.c (timer_tick): Optimized whole timer related code to minimize timer jitters of periodic timer. The periodic threads can be runnable by one thread switch now. * sys/include/timer.h: Likewise. 2007-03-31 Kohsuke Ohtani * sys/kern/timer.c (timer_delay): Changed the return type of timer_delay() routine to u_long from int. * user/lib/prex/malloc/malloc.c (free): Fixed a page fault when malloc/free is called repeatedly. The data was corrupted for some specific size for allocation. * sys/kern/thread.c (thread_resume): Modified to return EINVAL if thread_resume() is called when suspend count was already 0. 2007-03-27 Kohsuke Ohtani * */: Replaced all u_int32_t to uint32_t to meet C99 manner. * sys/kern/system.c (sys_debug): Added checking CAP_DEBUG capability. 2007-03-24 Kohsuke Ohtani * sys/*: Kernel code clean up. * sys/kern/task.c (__task_capable): Modified to define task_capable() as macro to reduce code size. 2007-03-23 Kohsuke Ohtani * sys/sync/mutex.c (mutex_unlock): Fixed mutex_unlock() to return EPERM error when the lock count was already 0. * sys/kern/thread.c (thread_schedparam): Removed functions to set a different time slice to each thread. Because, I will never use it... * sys/kern/sched.c: Likewise. * sys/include/thread.h: Likewise. 2007-03-22 Kohsuke Ohtani * user/lib/prex/malloc/malloc.c (free): Fixed free() in libc to do nothing for free(0). * user/lib/prex/malloc/malloc.c (malloc): Refined malloc() for multi-thread applications. * usre/lib/gen/__isthreaded.c: Likewise. 2007-03-20 Kohsuke Ohtani * user/lib/libc/random.c: Added random() in libc. * user/test/malloc/malloc.c: Added test code for malloc(). * user/test/ipc_mt/ipc_mt.c: Added IPC test tool for multi-threaded server. 2007-03-18 Kohsuke Ohtani * mk/Makefile.inc: Added -fno-stack-protector option for gcc 4.1. The build error occurred with some distributions which enable SSP feature of gcc by default. 2007-03-16 Kohsuke Ohtani * test/ipc_mt/*: Added IPC test program for multi-threaded server. 2007-03-07 Kohsuke Ohtani * user/arch/arm/systrap.h: Fixed syscall trap macro for ARM processor. * sys/arch/arm/arm/locore.S: Correct getting SWI number in system call handler. These two bug was pointed out by Ying Yin. 2007-02-14 Kohsuke Ohtani * sys/kern/main.c: Code clean up. * sys/include/kernel.h: Likewise. * sys/kern/system.c: Changed the data format of sys_info(). The kernel information is now compatible with POSIX's utsname. * sys/kern/sched.c: Likewise. * sys/include/system.h: Likewise. * dev/include/driver.h: Likewise. * user/include/prex/prex.h: Likewise. 2007-02-09 Kohsuke Ohtani * sys/kern/device.c: Added reference count for the device object to avoid the device removal while I/O operations. device_delete() request will be hold until the target reference count becomes 0. * sys/include/device.h: Likewise. * sys/kern/device.c: Added "force" option to device_broadcast driver service. If this option is specified, we will continue the event notification even if some driver returns an error. Otherwise, device_broadcast will quit and return for first driver error. * sys/include/device.h: Likewise. 2007-02-08 Kohsuke Ohtani * dev/arch/i386/i386/delay.c: Removed a delay driver. This was changed to generic driver service. * dev/include/delay.h: Likewise. * dev/core/main.c: Likewise. * dev/arch/i386/pc/platform.c: Likewise. * dev/arch/arm/gba/platform.c: Likewise. 2007-02-06 Kohsuke Ohtani * sys/kern/timer.c: Fixed system hang when periodic timer is stopped with invalid timer object. * sys/sync/mutex.c (prio_inherit): Added checking max mutex count to inherit thread priorities. This was added to prevent the risk of the unexpected heavy loop with preemption disabled. The maximum count to inherit priority is currently set to 10. 2007-02-03 Kohsuke Ohtani * sys/kern/syscall.c: Changed sys_stat() system call to sys_info(). The interface was extended to get thread/device information from kernel. * sys/kern/system.c: Likewise. * sys/include/system.h: Likewise. 2007-01-30 Kohsuke Ohtani * sys/kern/timer.c: Fixed the kernel timer code. There was a small time window that can not handle timer callback. In this case, the callback request was not processed until next tick event. * sys/include/timer.h: Likewise. 2007-01-24 Kohsuke Ohtani * sys/include/param.h: Update version to 0.4.2. * sys/kern/main.c: Code clean up. * sys/kern/syscall.c: Likewise. * sys/kern/device.c: Likewise. * sys/include/system.h: Likewise. * boot/arch/*: Likewise. * dev/arch/*: Likewise. * sys/arch/*: Likewise. 2006-12-01 Kohsuke Ohtani * sys/arch/arm/arm/umem.c (umem_strnlen): Added 3rd argument to store string length. The return value was changed to indicate error code. * sys/arch/arm/include/arch.h: Likewise. * sys/arch/i386/i386/locore.S: Likewise. * sys/arch/i386/include/arch.h: Likewise. 2006-11-29 Kohsuke Ohtani * dev/arch/i386/pc/dma.c (dma_alloc): An interrupt was kept disabled when DMA buffer allocation was failed. 2006-11-17 Kohsuke Ohtani * dev/arch/arm/gba/swkbd.c: Changed bitmap format for keyboard and cursor images in order to shrink its data size. 2006-11-02 Kohsuke Ohtani * sys/ipc/object.c (object_create): Fixed the handling of EFAULT in object_create(). 2006-11-02 Kohsuke Ohtani * sys/kern/thread.c (thread_terminate): The error code was not correct in thread_terminate(). 2006-10-29 Kohsuke Ohtani * sys/mem/vm.c (vm_attribute): Renamed from vm_attrib(). * sys/mem/vm_nommu.c: Likewise. * sys/kern/task.c: Likewise. * sys/kern/syscall.c: Likewise. * sys/include/vm.h: Likewise. * user/include/prex/prex.h: Likewise. 2006-10-29 Kohsuke Ohtani * sys/kern/task.c (task_create): Expanded vm_inherit option of task_create(). We can use VM_NONE/VM_COPY/VM_SHARE to select the VM mapping of child task. * sys/include/task.h: Likewise. * user/include/prex/prex.h: Likewise. * user/test/task/task.c: Likewise. 2006-10-29 Kohsuke Ohtani * sys/mem/vm_nommu.c (vm_terminate): Fixed the invalid kmem_free() to deallocate VM regions. 2006-10-20 Kohsuke Ohtani * sys/kern/thread.c (thread_load): Fixed a error check of thread_load(). NULL pointer can be set as stack. * dev/arch/arm/gba/swkbd.c (kbd_input): Added calling thread dump by 'select' button on GBA. 2006-10-19 Kohsuke Ohtani * sys/mem/vm.c (vm_dump_one): Correct the copy length of strlcpy(). 2006-10-05 Kohsuke Ohtani * user/lib/prex/malloc/malloc.c (malloc): Refined malloc() library in user mode. Added data to store the previously used node. 2006-10-04 Kohsuke Ohtani * sys/arch/i386/i386/mmu.c (mmu_extract): The end address for page extraction was not correct. 2006-09-29 Kohsuke Ohtani * sys/kern/system.c (sys_debug): Added sys_debug() kernel API. * sys/kern/syscall.c: Likewise. * sys/include/debug.h: Likewise. * user/include/prex/prex.h: Likewise. * user/lib/prex/syscalls/syscall.h: Likewise. * user/lib/prex/syscalls/sys_debug.s: Likewise. (new) * user/bin/kmon/cmd.c: Added some commands to dump kernel objects. 2006-09-22 Kohsuke Ohtani * sys/mem/vm_nommu.c (__vm_map): Fixed memory leak when vm_map() was called two or more times on NOMMU system. 2006-09-21 Kohsuke Ohtani * boot/arch/i386/pc/head.s: Updated GDT and selector value as same with kernel. 2006-09-15 Kohsuke Ohtani * sys/kern/thread.c (thread_dump): Fixed the wrong string pointer for thread dump function. 2006-08-10 Kohsuke Ohtani * sys/include/stat.h: Added a kernel release name into the kernel statistics data. This is used by the uname command. 2006-07-24 Kohsuke Ohtani * sys/mem/page.c (page_reserve): Fixed a bug in the page reserve routine. The reserved size could be incorrect because of wrong alignment adjustment. 2006-07-9 Kohsuke Ohtani * sys/arch/arm/arm/locore.S: Fixed system hang on an actual GBA machine. Added NOP instruction after LDM^ instruction within an interrupt handler as written in ARM reference manual. * sys/arch/arm/arm/context.c: Likewise. * sys/arch/arm/include/arch.h: Likewise. 2006-05-19 Kohsuke Ohtani * dev/gen/ramdisk.c: Support RAM disk driver. * boot/include/bootinfo.h: Likewise. * boot/common/elf.c: Likewise. * boot/common/main.c: Likewise. * sys/mem/page.c (page_init): Likewise. * sys/include/bootinfo.h: Likewise. * dev/include/bootinfo.h: Likewise. * conf/config-arm-gba.h: Likewise. * conf/config-i386-pc.h: Likewise. * conf/config-i386-nommu.h: Likewise. 2006-05-7 Kohsuke Ohtani * sys/ipc/msg.c: Changed the data type of the message length of msg_send()/msg_receive()/msg_reply(). (int => size_t) * user/include/prex/prex.h: Likewise. 2006-04-30 Kohsuke Ohtani * sys/mem/vm_nommu.c (region_free): Fixed to remove a free node correctly. * user/include/prex/prex.h: Likewise. 2006-04-24 Kohsuke Ohtani * sys/kern/device.c: Changed the argument types of device_read()/device_write(). (size/offset => nbyte/blkno) 2006-04-21 Kohsuke Ohtani * sys/mem/vm.c: Fixed page fault during kernel memory dump. * sys/mem/vm_nommu.c: Likewise. 2006-02-23 Kohsuke Ohtani * sys/include/param.h: Update version to 0.4.1. * sys/kern/irq.c (irq_detach): Fixed to terminate an interrupt thread in irq_detach() properly. * sys/kern/thread.c (__thread_terminate): Likewise. * sys/kern/task.c (task_terminate): Likewise. 2006-02-16 Kohsuke Ohtani * sys/lib/string.c (strlcpy): Changed all strncpy() routine to strlcpy() for security reason. * sys/include/kernel.h: Likewise. * sys/arch/i386/i386/gdb_stub.c: Likewise. * sys/kern/task.c (task_name): Likewise. * sys/ipc/object.c (object_create): Likewise. * sys/kern/device.c (device_create): Likewise. * sys/mem/vm.c (vm_dump_one): Likewise. * sys/mem/vm_nommu.c (vm_dump_one): Likewise. 2006-02-02 Kohsuke Ohtani * dev/arch/i386/i386/delay.c (delay_loop): Fixed the timer calibration code to prevent gcc's optimization. This caused system hang during boot. * sys/kern/task.c (task_create): Dropped vm_inherit option of task_create on NOMMU system. * sys/mem/vm_nommu.c (vm_fork): Likewise. 2006-02-01 Kohsuke Ohtani * sys/arch/arm/arm/context.c (context_save): Aded an ARM exception support. * sys/arch/arm/arm/locore.S (interrupt_entry): Likewise. * boot/common/elf.c: Added ELF object relocation. All boot tasks on NOMMU system are relocated at boot time. In addition, a driver module is also relocated on MMU/NOMMU system. * boot/arch/i386/i386/elf_reloc.c (relocate_rel): Likewise. * boot/arch/arm/arm/elf_reloc.c (relocate_rel): Likewise. * boot/include/elf.h: Likewise. * sys/kern/task.c (task_load): Likewise. * sys/mem/vm.c (__vm_allocate): Likewise. * sys/mem/vm_nommu.c (__vm_allocate): Likewise. 2006-01-31 Kohsuke Ohtani * sys/kern/except.c (exception_raise): Fixed the argument check of exception_raise() to be used with the alarm timer. 2006-01-19 Kohsuke Ohtani * sys/kern/sched.c (sched_wakeone): Fixed the priority check in the scheduler. The highest priority thread was not selected to run due to some bug. * sys/kern/sched.c (sched_setprio): Likewise. * sys/ipc/msg.c (dequeue_topprio): Likewise. 2006-01-12 Kohsuke Ohtani * dev/arch/i386/pc/fdd.c (fdd_write): Fixed the unexpected data write to floppy drive. It was writing 512 sectors instead of 512 bytes. 2006-01-11 Kohsuke Ohtani * sys/kern/timer.c (timer_periodic): Updated the periodic timer routine to more simple. 2006-01-10 Kohsuke Ohtani * dev/arch/i386/pc/fdd.c (fdd_rw): Fixed the hang while continuous data write to FDD. The deadlock occurred because of the bad sequence of I/O request and scheduling lock. 2006-01-05 Kohsuke Ohtani * sys/sync/mutex.c (mutex_cleanup): Added Giang Hu's fix for mutex. The kernel hang occurred in some conditions. 2005-12-27 Kohsuke Ohtani * sys/include/param.h: Update version to 0.4.0. * sys/*: Added 'task capability' to improve security. The task capability can be used to manage the permissions of the various task operations. 2005-12-16 Kohsuke Ohtani * sys/mem/vm.c (vm_create): Fixed a memory leak when vm_create() was failed. * sys/arch/i386/i386/context.c (context_set): Changed the data type of register value to u_long from void *. 2005-12-13 Kohsuke Ohtani * sys/kern/task.c (task_create): Added vm_inherit argument to task_create() interface instead of using NULL as task id. It is changed to return ESRCH if specified task id is NULL. 2005-12-13 Kohsuke Ohtani * dev/arch/i386/pc/fdd.c (fdd_read): Fixed the i/o read size. It was using byte count for sector count. 2005-12-12 Kohsuke Ohtani * sys/ipc/msg.c (msg_send): Changed to fill the task ID in all messages for security. 2005-12-09 Kohsuke Ohtani * /conf/Makefile: Moved from /img directory. /img is removed now. * user/sample/*: Added some sample programs. * user/test/*: Updated whole test programs. * user/include/prex/prex.h: Added definitions for exceptions. * user/lib/prex/syscalls/Makefile (OBJS): Fixed the lack of sem_trywait() stub routine in the library. * sys/kern/device.c (device_write): Changed the error code for EBADF as an invalid device object. * dev/arch/i386/pc/console.c (console_write): Added locking scheduler while writing line to console. 2005-12-06 Kohsuke Ohtani * make/*.mk: Updated makefiles. * user/test/malloc: Added malloc() test program. * user/test/errno: Added strerror() test program. 2005-12-02 Kohsuke Ohtani * user/lib/libsa/*.c: Created new libc for standalone tasks. * user/lib/libc/string/*.c: Updated string library with BSD code. 2005-12-01 Kohsuke Ohtani * conf/config.h: Merged all configuration files. 2005-11-29 Kohsuke Ohtani * make/Makefile.inc: Support 'make lint'. 2005-11-25 Kohsuke Ohtani * dev/gen/null.c: Added null driver. * dev/ge/zero.c: Added zero driver. 2005-11-24 Kohsuke Ohtani * sys/sync/mutex.c : Support a static mutex initializer. * sys/sync/cond.c : Support a static CV initializer. * sys/sync/mutex.c : Changed the argument type of the kernel synch API for POSIX compatibility. * sys/sync/cond.c : Likewise. * sys/sync/sem.c : Likewise. 2005-11-18 Kohsuke Ohtani * dev/include/errno.h : Changed the value of EAGAIN. * sys/include/errno.h : Likewise. * user/include/sys/errno.h : Likewise. 2005-11-15 Kohsuke Ohtani * sys/ipc/object.c (object_lookup): Fixed object_lookup(). It could not find the correct object. 2005-11-10 Kohsuke Ohtani * sys/include/param.h: Update version to 0.3.0. * sys/mem/vm.c (vm_allocate_unlocked): The allocated memory was not initialized with 0 in vm_allocate(). * sys/mem/vm_nommu.c (vm_allocate_unlocked): Likewise. 2005-11-09 Kohsuke Ohtani * boot/include/bootinfo.h: Fixed the compile error with gcc4. * sys/sync/mutex.c (mutex_lock): Fix mutex_lock() to return EDEADLK rather than panic() when it detects the deadlock condition. 2005-11-08 Kohsuke Ohtani * user/test/mutex/main.c: Added the test program for the mutex. * user/test/deadlock/main.c: Added the test program for the deadlock condition of mutex. 2005-11-04 Kohsuke Ohtani * sys/sync/sem.c (sem_post): Fixed the bug in sem_post(). The waiting thread is not unblocked even if the semaphore value becomes positive. * user/test/sem/main.c: Added the test program for the semaphore. 2005-11-02 Kohsuke Ohtani * user/lib/prex/sa/stdio.c: Added standalone I/O interface in the user mode library. * user/bin/cpuvolt/io.c: Likewise. (removed) * user/bin/kmon/io.c: Likewise. (removed) * user/test/bench/io.c: Likewise. (removed) * sys/include/stat.h: Added data for timer tick rate in the kernel statistics data. * user/include/prex.h: Likewise. * user/test/bench/main.c: Likewise. * sys/kern/device.c (device_init): Fixed to boot a kernel even if the driver module is not loaded. 2005-11-01 Kohsuke Ohtani * make/*.mk: Clean up all Makefiles. * dev/include/ioctl.h: Changed the driver ioctl code to BSD style. * dev/include/cpu.h: Likewise. * dev/include/pm.h: Likewise. * user/include/prex/ioctl.h: Likewise. * user/bin/cpuvolt/main.c: Likewise. * user/bin/kmon/cmd.c: Likewise. 2005-10-28 Kohsuke Ohtani * sys/sync/sem.c (sem_init): Changed to allow re-initialize of the initialized semaphore. Fixed the error code of sem_init() to ENOSPC from ENOMEM for POSIX compatibility. * sys/kern/syscall.c: Changed the name of the following system calls for POSIX compatibility. - mutex_create() -> mutex_init() - cond_create() -> cond_init() - sem_create() -> sem_init() - sem_count() -> sem_getvalue() * sys/sync/mutex.c: Likewise. * sys/sync/cond.c: Likewise. * sys/sync/sem.c: Likewise. * sys/include/sync.h: Likewise. * user/lib/prex/syscalls/syscall.h: Likewise. * user/lib/prex/syscalls/Makefile: Likewise. * user/include/prex/prex.h: Likewise. 2005-10-26 Kohsuke Ohtani * user/test/thread/main.c (main): Modified for the long run test. * sys/arch/arm/arm/umem.c (umem_strnlen): Changed the return type of umem_strnlen() to identify the page fault and NULL string. * sys/arch/arm/include/arch.h: Likewise. * sys/arch/i386/i386/locore.S (umem_strnlen): Likewise. * sys/arch/i386/include/arch.h: Likewise. * sys/arch/arm/arm/umem.c (umem_strnlen): Fixed the incorrect handling of the string length returned by umem_strnlen(). * sys/kern/device.c (device_open): Likewise. * sys/kern/task.c (task_name): Likewise. * sys/kern/system.c (sys_log): Likewise. 2005-10-19 Kohsuke Ohtani * sys/arch/arm/arm/context.c: Clean up kernel configuration files. * sys/arch/arm/arm/trap.c: Likewise. * sys/arch/arm/arm/locore.S: Likewise. * sys/arch/arm/arm/locore.h: Likewise. (removed) * sys/arch/arm/include/config.h: Likewise.(new) * sys/arch/arm/include/param.h: Likewise.(removed) * sys/arch/arm/gba/config.h: Likewise. (new) * sys/arch/arm/gba/param.h: Likewise. (removed) * sys/arch/i386/i386/context.c: Likewise. * sys/arch/i386/i386/cpu.c: Likewise. * sys/arch/i386/i386/trap.c: Likewise. * sys/arch/i386/i386/cpu.h: Likewise. * sys/arch/i386/i386/locore.S: Likewise. * sys/arch/i386/i386/locore.h: Likewise. (removed) * sys/arch/i386/include/param.h: Likewise. (removed) * sys/arch/i386/include/config.h: Likewise. (new) * sys/arch/i386/nommu/config.h: Likewise. (new) * sys/arch/i386/pc/config.h: Likewise. (new) * sys/arch/i386/pc/intr.c: Likewise. * sys/include/kernel.h: Likewise. * sys/include/param.h: Likewise. * sys/include/sched.h: Likewise. * sys/include/device.h: Likewise. * sys/include/ipc.h: Likewise. * sys/include/page.h: Likewise. * sys/include/task.h: Likewise. 2005-10-13 Kohsuke Ohtani * bsp/boot/*: Restruct the whole directory structure. * bsp/dev/*: Likewise. 2005-10-07 Kohsuke Ohtani * sys/include/version.h: Update version to 0.2.2 2005-10-03 Kohsuke Ohtani * bsp/dev/power/pm.c (pm_ioctl): Removed sys_reboot() system call. The reboot request is processed by power management driver, instead. * bsp/include/pm.h: Likewise. * sys/kern/system.c: Likewise. * sys/kern/syscall.c: Likewise. * sys/include/device.h: Likewise. * user/lib/prex/syscalls/syscall.h: Likewise. * user/lib/prex/syscalls/Makefile: Likewise. * user/lib/prex/syscalls/sys_rebt.S: Likewise. (removed) * user/include/prex/prex.h: Likewise. * user/bin/kmon/cmd.c: Likewise. * user/include/prex/pm.h: Likewise. (new) 2005-09-30 Kohsuke Ohtani * sys/kern/sched.c (sched_schedule): Changed the function name sched_schedule() to sched_switch(). * sys/kern/sched.c: Fixed the bug in IST dispatcher. There was a small time-window that lost the IST trigger from ISR. * sys/arch/arm/arm/locore.h: Likewise. * sys/arch/arm/arm/locore.S: Likewise. * sys/arch/i386/i386/locore.h: Likewise. * sys/arch/i386/i386/locore.S: Likewise. * sys/kern/timer.c: Likewise. * sys/kern/irq.c: Likewise. 2005-09-15 Kohsuke Ohtani * bsp/arch/i386/boot/head.s (get_memsize): Added the routine to detect above 64M of RAM. 2005-09-08 Kohsuke Ohtani * sys/kern/system.c (sys_panic): Changed not to restart the system by the user mode panic when the kernel is non-debugging version. 2005-09-06 Kohsuke Ohtani * bsp/include/driver.h: Removed timer_udelay() definition which was an obsolete routine. 2005-09-01 Kohsuke Ohtani * make/sys.mk: Support a kernel function tracer. It can dump the run-time call tree for all function's entry and exit. * sys/kern/debug.c: Likewise. * make/common.mk: Likewise. 2005-08-26 Kohsuke Ohtani * sys/arch/i386/i386/cpu.h: Replaced all "extern inline" to "static inline" to use the gcc "-finstrument-functions" option. * sys/arch/arm/include/arch.h: Likewise. * sys/arch/i386/include/arch.h: Likewise. 2005-08-23 Kohsuke Ohtani * user/test/bench: Added a benchmark tool to create/terminate 100000 threads at once. 2005-08-22 Kohsuke Ohtani * bsp/arch/i386/boot/head.S (boot_entry): Fixed the kernel page fault in accessing the last physical page. i386-BSP was modified to adjust the total memory size to 4K bytes boundary. 2005-08-19 Kohsuke Ohtani * sys/kern/sched.c: Clean up comment. * sys/kern/sched.c (sched_unlock): Removed needless irq_lock(). * sys/kern/irq.c (irq_thread): Rewrite the IST dispatch code. 2005-06-27 Kohsuke Ohtani * sys/include/version.h: Update version to 0.2.1 2005-06-15 Kohsuke Ohtani * sys/kern/thread.c (kernel_thread): Fixed the irq lock count is not 0 after switching to new thread. * sys/kern/device.c (device_open): Fixed the bug in the device name length. The string size did not include the terminater. 2005-06-10 Kohsuke Ohtani * sys/kern/timer.c (timer_timeout): Fixed timer_timeout() not to set the timeout value to zero when the requested value is smaller than 1 tick. 2005-06-09 Kohsuke Ohtani * sys/kern/thread.c (thread_schedparam): Removed the error check of maximum scheduling quantum, which is not useless. So, thread can specify any scheduling quantum now. * sys/arch/i386/i386/context.c: Changed to allow I/O privilege for user mode applications. 2005-06-08 Kohsuke Ohtani * arm/*: Support ARM processor on Game Boy Advance. 2005-06-04 Kohsuke Ohtani * bsp/dev/i386/pc/fdd.c: Added fdc existing check. 2005-06-04 Kohsuke Ohtani * sys/include/version.h: Update version to 0.2.0 2005-05-21 Kohsuke Ohtani * sys/sync/cond.c (cond_destroy): Fixed to prevent panic() even if active cv was destroyed. It will return EBUSY in that case. * sys/sync/sem.c (sem_post): Fixed the bug about the unconditional wakeup of the blocked threads. 2005-05-15 Kohsuke Ohtani * sys/include/version.h: Added version file. 2005-05-14 Kohsuke Ohtani * Integrated the directory structure for cross platform support. * Almost makefiles were updated. 2005-05-01 Kohsuke Ohtani * sys/mem/vm_nommu.c: Support "No MMU" configuration. 2005-04-26 Kohsuke Ohtani * sys/arch/i386/arch/locore.S (cs_reset): Added a breakpoint for GDB in the kernel initialization. * sys/kern/device.c (device_open): * bsp/dev/i386/pc/console.c: * bsp/dev/i386/pc/rtc.c: * bsp/dev/i386/pc/cpu.c: Changed to allow the device drivers to have I/O table without open/close routines. * sys/arch/i386/arch/gdb_stub.c: Fixed the compile error when CONFIG_GDB is enabled. 2005-04-25 Kohsuke Ohtani * sys/arch/i386/arch/trap.c (trap_dump): Changed to display the task name for the system fault. 2005-04-17 Kohsuke Ohtani * sys/include/prex/config.h: Update version to 0.1.2 * sys/kern/debug.c: * sys/kern/device.c: * bsp/dev/i386/pc/console.c: * bsp/dev/include/driver.h: Added debug_attach() interface for drivers. This interface enables the external print handler within bsp. 2005-04-16 Kohsuke Ohtani * bsp/dev/lib/string.c (strncpy): Fixed bug in strncpy(). 2005-04-10 Kohsuke Ohtani * bsp/dev/i386/pc/console.c: Added additional escape codes for console driver. The cursor can move to the specific position now. * user/bin/cpuvolt/main.c: Added CPU voltage monitoring tool. * user/test/dvs/main.c: Added DVS test tool. 2005-04-06 Kohsuke Ohtani * bsp/dev/pc/cpu.c (cpu_init): * bsp/dev/common/pm.c (pm_init): Port Pentium-M frequency control routine from OpenBSD. 2005-04-05 Kohsuke Ohtani * sys/include/prex/config.h: Update version to 0.1.1 * bsp/dev/pc/rtc.c (rtc_read): Added getting time routine. * sys/kern/device.c: * sys/mem/vm.c (vm_access): Added checking memory access for user memory. 2005-04-04 Kohsuke Ohtani * sys/kern/system.c (sys_time): Added sys_time() interface. 2005-03-29 Kohsuke Ohtani * make/*.mk: Changed common makefiles. * user/bin/kmon/*.*: Support kernel monitor. * sys/mem/kmem.c (page_stat): * sys/mem/kmem.c (kmem_stat): Implement sys_stat() system call. * sys/arch/i386/i386/locore.S (umem_strnlen): Fixed sys_log() can not display message from the buffer in user stack area. 2005-03-25 Kohsuke Ohtani * user/lib/prex/crt/libcmain.c (__libc_main): Fixed start up code in C library. * bsp/loader/include/bootinfo.h: Changed max name length of boot tasks. 2005-03-24 Kohsuke Ohtani * user/test/fault/main.c: Added test program for NULL pointer access. * user/test/except/main.c: Added test program to send exception. * user/test/timer/main.c: Added test program for timer. * user/test/thread/main.c: Added test program for thread. 2005-03-22 Kohsuke Ohtani * sys/kern/except.c: Uninstall of the exception handler was not working. * sys/arch/i386/context.c: Fixed the page fault with exception_raise(). The stack layout of exception frame was incorrect. * user/lib/prex/crt/libcmain.c: Fixed library code to avoid the page fault when the main() routine returns. * sys/kern/timer.c: Fix the timer overrun problem after 49 days. 2005-03-16 Kohsuke Ohtani * config.h: Ver 0.1 - Initial kernel release.