prex: force resched when current thread lowers priority (numerically higher)
[prex.git] / ChangeLog
blob77e5ccd19f488a792a16e434ddb01a16e5f9ddae
1 2007-06-20  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
3         * sys/include/param.h: Update version to 0.5.0.
5         * user/test/fileio/main.c: Added test program for file system.
6         * user/test/fileio/fslib.c: Likewise.
7         * user/test/fileio/fslib.h: Likewise.
8         * user/test/fileio/Makefile: Likewise.
10         * user/server/fs/*: Adde file system server. This includes VFS
11         framework, buffer cache, ramfs, devfs, and arfs (archive fs).
12         
13 2007-06-17  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
15         * mk/Makefile.inc: Optimized build speed for cygwin.
17         * configure: Removed dependency to 'sed' and added confiure script
18         for build process.
19         * mk/Makefile.inc: Likewise.
20         * mk/own.mk: Likewise.
22         * boot/arch/i386/pc/head.s: Changed file name to head.S.
24 2007-06-16  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
26         Applied following patches posted by Andrew Dennison.
28         * dev/power/cpufreq.c: Fixed typos.
29         * sys/include/system.h: Likewise.
30         * user/bin/kmon/cmd.c: Likewise.
32         * mk/Makefile.inc: Added more dependencies and intermediate elf file.
33         for binary output
35         * boot/include/types.h: Added C99 types for boot too.
37         * sys/kern/irq.c (irq_detach): Fixed crash in irq_detach() when not
38         using an ist.
40         * dev/include/driver.h: Const correctness, fix timer_delay() prototype
41         for drivers.
42         * kern/sys/device.c: Likewise.
44         * sys/kern/timer.c: Fixed spelling in comment.
46         * sys/lib/vsprintf.c (vsprintf): support field width for %s.
48         * convert config to makefile variables and autogenerate config.h.
50         * convert driver selection to makefile based CONFIG variable.
52 2007-06-02  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
54         * mk/prog.mk: Support BSD style makefile for POSIX applications.
55         PROG and SRCS macro is supported now.
57 2007-05-02  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
59         * sys/arch/i386/i386/cpu.h: Removed pad data from desc_p. This
60         was an obsolete hack for msvc compiler.
62         * boot/common/elf.c (elf_load): Corrected the macro to get
63         the kernel load address. phys_to_virt => virt_to_phys.
65 2007-04-13  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
67         * sys/include/param.h: Update version to 0.4.3.
69         * user/test/dvs/dvs.c: Added test case for 50% cpu load for DVS
70         test tool.
72 2007-04-12  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
74         The following 5 changes were applied by Andrew Dennison.
75                 
76         * boot/common/debug.c: (1) Fixed order of header files.
77         * boot/common/elf.c: Likewise.
78         * boot/common/main.c: Likewise.
80         * sys/arch/i386/include/arch.h: (2) Fixed typo.
81         * sys/arch/i386/include/platform.h: Likewise.
83         * user/test/Makefile: (3) Modified for i386 specific test tool.
85         * user/lib/libc/stdlib/getsubopt.c: (4) Fixed build warning.
86         * user/lib/libc/stdlib/strtol.c: Likewise.
87         * user/lib/libc/stdlib/strtoul.c: Likewise.
89         * boot/common/elf.c: (5) Added validation of module symbol while
90         relocating module.
91         * boot/include/elf.h: Likewise.
93 2007-04-09  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
95         * sys/kern/debug.c: Added "dmesg" framework. The kernel message log
96         can be checked after system boot with this change. User can get this
97         message by F9 key on PC platform.
98         * sys/include/debug.h: Likewise.
99         * sys/include/param.h: Likewise.
100         * dev/include/driver.h: Likewise.
101         * user/include/prex/prex.h: Likewise.
102         * user/bin/kmon/cmd.c: Likewise.
103         * conf/config-arm-gba.h: Likewise.
104         * conf/config-i386-pc.h: Likewise.
105         * conf/config-i386-nommu.h: Likewise.
107 2007-04-08  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
109         * sys/kern/sched.c (thread_dpc): Support DPC (Deferred Procedure
110         Call). The driver can handle an asynchronous callback event at
111         safer interrupt level.
112         * sys/kern/device.c: Likewise.
113         * sys/include/sched.h: Likewise.
114         * dev/include/driver.h: Likewise.
116         * dev/power/dvs.c: Optimized voltage scaling algorithm.
117         * dev/power/cpufreq.c: Likewise.
118         * dev/power/pm.c: Likewise.
119         
120 2007-04-07  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
122         * sys/sync/sem.c (sem_post): Fixed a bug in sem_post(). The
123         thread could not get a semaphore when multiple value is set.
125         * sys/kern/timer.c: Added timer_hook()/timer_unhook() service
126         for drivers. The power management or profiling driver can get
127         a tick event with these services without using timer call-back.
128         This can reduce the system power consumption.
129         * sys/kern/device.c: Likewise.
130         * sys/include/sched.h: Likewise.
131         * dev/include/driver.h: Likewise.
133 2007-04-03  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
135         * sys/kern/timer.c (timer_tick): Optimized whole timer related
136         code to minimize timer jitters of periodic timer. The periodic
137         threads can be runnable by one thread switch now.
138         * sys/include/timer.h: Likewise.
140 2007-03-31  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
141         
142         * sys/kern/timer.c (timer_delay): Changed the return type of
143         timer_delay() routine to u_long from int.
145         * user/lib/prex/malloc/malloc.c (free): Fixed a page fault
146         when malloc/free is called repeatedly. The data was corrupted
147         for some specific size for allocation.
149         * sys/kern/thread.c (thread_resume): Modified to return EINVAL
150         if thread_resume() is called when suspend count was already 0.
152 2007-03-27  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
154         * */: Replaced all u_int32_t to uint32_t to meet C99 manner.
156         * sys/kern/system.c (sys_debug): Added checking CAP_DEBUG capability.
158 2007-03-24  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
160         * sys/*: Kernel code clean up.
161         
162         * sys/kern/task.c (__task_capable): Modified to define task_capable()
163         as macro to reduce code size.
165 2007-03-23  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
167         * sys/sync/mutex.c (mutex_unlock): Fixed mutex_unlock() to
168         return EPERM error when the lock count was already 0.
170         * sys/kern/thread.c (thread_schedparam): Removed functions to
171         set a different time slice to each thread. Because, I will never
172         use it...
173         * sys/kern/sched.c: Likewise.
174         * sys/include/thread.h: Likewise.
176 2007-03-22  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
178         * user/lib/prex/malloc/malloc.c (free): Fixed free() in libc
179         to do nothing for free(0).
181         * user/lib/prex/malloc/malloc.c (malloc): Refined malloc() for
182         multi-thread applications.
183         * usre/lib/gen/__isthreaded.c: Likewise.
185 2007-03-20  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
187         * user/lib/libc/random.c: Added random() in libc.
189         * user/test/malloc/malloc.c: Added test code for malloc().
191         * user/test/ipc_mt/ipc_mt.c: Added IPC test tool for multi-threaded
192         server.
194 2007-03-18  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
196         * mk/Makefile.inc: Added -fno-stack-protector option for gcc 4.1.
197         The build error occurred with some distributions which enable
198         SSP feature of gcc by default.
200 2007-03-16  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
202         * test/ipc_mt/*: Added IPC test program for multi-threaded server.
204 2007-03-07  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
206         * user/arch/arm/systrap.h: Fixed syscall trap macro for ARM
207         processor.
208         * sys/arch/arm/arm/locore.S: Correct getting SWI number in
209         system call handler. These two bug was pointed out by Ying Yin.
211 2007-02-14  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
213         * sys/kern/main.c: Code clean up.
214         * sys/include/kernel.h: Likewise.
216         * sys/kern/system.c: Changed the data format of sys_info(). The
217         kernel information is now compatible with POSIX's utsname.
218         * sys/kern/sched.c: Likewise.
219         * sys/include/system.h: Likewise.
220         * dev/include/driver.h: Likewise.
221         * user/include/prex/prex.h: Likewise.
223 2007-02-09  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
225         * sys/kern/device.c: Added reference count for the device object
226         to avoid the device removal while I/O operations. device_delete()
227         request will be hold until the target reference count becomes 0.
228         * sys/include/device.h: Likewise.
230         * sys/kern/device.c: Added "force" option to device_broadcast
231         driver service. If this option is specified, we will continue
232         the event notification even if some driver returns an error.
233         Otherwise, device_broadcast will quit and return for first
234         driver error.
235         * sys/include/device.h: Likewise.
237 2007-02-08  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
239         * dev/arch/i386/i386/delay.c: Removed a delay driver. This was
240         changed to generic driver service.
241         * dev/include/delay.h: Likewise.
242         * dev/core/main.c: Likewise.
243         * dev/arch/i386/pc/platform.c: Likewise.
244         * dev/arch/arm/gba/platform.c: Likewise.
246 2007-02-06  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
248         * sys/kern/timer.c: Fixed system hang when periodic timer is stopped
249         with invalid timer object.
251         * sys/sync/mutex.c (prio_inherit): Added checking max mutex count
252         to inherit thread priorities. This was added to prevent the risk
253         of the unexpected heavy loop with preemption disabled. The maximum
254         count to inherit priority is currently set to 10.
256 2007-02-03  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
258         * sys/kern/syscall.c: Changed sys_stat() system call to sys_info().
259         The interface was extended to get thread/device information from
260         kernel.
261         * sys/kern/system.c: Likewise.
262         * sys/include/system.h: Likewise.
264 2007-01-30  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
266         * sys/kern/timer.c: Fixed the kernel timer code. There was a small
267         time window that can not handle timer callback. In this case,
268         the callback request was not processed until next tick event.
269         * sys/include/timer.h: Likewise.
271 2007-01-24  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
273         * sys/include/param.h: Update version to 0.4.2.
275         * sys/kern/main.c: Code clean up.
276         * sys/kern/syscall.c: Likewise.
277         * sys/kern/device.c: Likewise.
278         * sys/include/system.h: Likewise.
279         * boot/arch/*: Likewise.
280         * dev/arch/*: Likewise.
281         * sys/arch/*: Likewise.
283 2006-12-01  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
285         * sys/arch/arm/arm/umem.c (umem_strnlen): Added 3rd argument
286         to store string length. The return value was changed to indicate
287         error code.
288         * sys/arch/arm/include/arch.h: Likewise.
289         * sys/arch/i386/i386/locore.S: Likewise.
290         * sys/arch/i386/include/arch.h: Likewise.
292 2006-11-29  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
294         * dev/arch/i386/pc/dma.c (dma_alloc): An interrupt was kept
295         disabled when DMA buffer allocation was failed.
297 2006-11-17  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
299         * dev/arch/arm/gba/swkbd.c: Changed bitmap format for keyboard
300         and cursor images in order to shrink its data size.
302 2006-11-02  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
304         * sys/ipc/object.c (object_create): Fixed the handling of EFAULT
305         in object_create().
306         
307 2006-11-02  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
309         * sys/kern/thread.c (thread_terminate): The error code was not
310         correct in thread_terminate().
312 2006-10-29  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
314         * sys/mem/vm.c (vm_attribute): Renamed from vm_attrib().
315         * sys/mem/vm_nommu.c: Likewise.
316         * sys/kern/task.c: Likewise.
317         * sys/kern/syscall.c: Likewise.
318         * sys/include/vm.h: Likewise.
319         * user/include/prex/prex.h: Likewise.
321 2006-10-29  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
323         * sys/kern/task.c (task_create): Expanded vm_inherit option of
324         task_create(). We can use VM_NONE/VM_COPY/VM_SHARE to select the
325         VM mapping of child task.
326         * sys/include/task.h: Likewise.
327         * user/include/prex/prex.h: Likewise.
328         * user/test/task/task.c: Likewise.
330 2006-10-29  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
332         * sys/mem/vm_nommu.c (vm_terminate): Fixed the invalid kmem_free()
333         to deallocate VM regions.
334         
335 2006-10-20  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
337         * sys/kern/thread.c (thread_load): Fixed a error check of
338         thread_load(). NULL pointer can be set as stack.
340         * dev/arch/arm/gba/swkbd.c (kbd_input): Added calling thread dump
341         by 'select' button on GBA.
343 2006-10-19  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
345         * sys/mem/vm.c (vm_dump_one): Correct the copy length of strlcpy().
347 2006-10-05  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
349         * user/lib/prex/malloc/malloc.c (malloc): Refined malloc() library
350         in user mode. Added data to store the previously used node.
352 2006-10-04  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
354         * sys/arch/i386/i386/mmu.c (mmu_extract): The end address for
355         page extraction was not correct.
357 2006-09-29  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
359         * sys/kern/system.c (sys_debug): Added sys_debug() kernel API.
360         * sys/kern/syscall.c: Likewise.
361         * sys/include/debug.h: Likewise.
362         * user/include/prex/prex.h: Likewise.
363         * user/lib/prex/syscalls/syscall.h: Likewise.
364         * user/lib/prex/syscalls/sys_debug.s: Likewise. (new)
366         * user/bin/kmon/cmd.c: Added some commands to dump kernel objects.
368 2006-09-22  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
370         * sys/mem/vm_nommu.c (__vm_map): Fixed memory leak when vm_map()
371         was called two or more times on NOMMU system.
373 2006-09-21  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
375         * boot/arch/i386/pc/head.s: Updated GDT and selector value
376         as same with kernel.
378 2006-09-15  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
380         * sys/kern/thread.c (thread_dump): Fixed the wrong string
381         pointer for thread dump function.
383 2006-08-10  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
385         * sys/include/stat.h: Added a kernel release name into the
386         kernel statistics data. This is used by the uname command.
388 2006-07-24  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
390         * sys/mem/page.c (page_reserve): Fixed a bug in the page reserve
391         routine. The reserved size could be incorrect because of
392         wrong alignment adjustment.
394 2006-07-9  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
396         * sys/arch/arm/arm/locore.S: Fixed system hang on an actual GBA
397         machine. Added NOP instruction after LDM^ instruction within an
398         interrupt handler as written in ARM reference manual.
399         * sys/arch/arm/arm/context.c: Likewise.
400         * sys/arch/arm/include/arch.h: Likewise.
402 2006-05-19  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
404         * dev/gen/ramdisk.c: Support RAM disk driver.
405         * boot/include/bootinfo.h: Likewise.
406         * boot/common/elf.c: Likewise.
407         * boot/common/main.c: Likewise.
408         * sys/mem/page.c (page_init): Likewise.
409         * sys/include/bootinfo.h: Likewise.
410         * dev/include/bootinfo.h: Likewise.
411         * conf/config-arm-gba.h: Likewise.
412         * conf/config-i386-pc.h: Likewise.
413         * conf/config-i386-nommu.h: Likewise.
415 2006-05-7  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
417         * sys/ipc/msg.c: Changed the data type of the message length
418         of msg_send()/msg_receive()/msg_reply(). (int => size_t)
419         * user/include/prex/prex.h: Likewise.
421 2006-04-30  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
423         * sys/mem/vm_nommu.c (region_free): Fixed to remove a free node
424         correctly.
425         * user/include/prex/prex.h: Likewise.
427 2006-04-24  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
429         * sys/kern/device.c: Changed the argument types of
430         device_read()/device_write(). (size/offset => nbyte/blkno)
432 2006-04-21  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
434         * sys/mem/vm.c: Fixed page fault during kernel memory dump.
435         * sys/mem/vm_nommu.c: Likewise.
437 2006-02-23  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
439         * sys/include/param.h: Update version to 0.4.1.
441         * sys/kern/irq.c (irq_detach): Fixed to terminate an interrupt
442         thread in irq_detach() properly.
443         * sys/kern/thread.c (__thread_terminate): Likewise.
444         * sys/kern/task.c (task_terminate): Likewise.
446 2006-02-16  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
448         * sys/lib/string.c (strlcpy): Changed all strncpy() routine
449         to strlcpy() for security reason.
450         * sys/include/kernel.h: Likewise.
451         * sys/arch/i386/i386/gdb_stub.c: Likewise.
452         * sys/kern/task.c (task_name): Likewise.
453         * sys/ipc/object.c (object_create): Likewise.
454         * sys/kern/device.c (device_create): Likewise.
455         * sys/mem/vm.c (vm_dump_one): Likewise.
456         * sys/mem/vm_nommu.c (vm_dump_one): Likewise.
458 2006-02-02  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
460         * dev/arch/i386/i386/delay.c (delay_loop): Fixed the timer
461         calibration code to prevent gcc's optimization. This caused
462         system hang during boot.
464         * sys/kern/task.c (task_create): Dropped vm_inherit option
465         of task_create on NOMMU system.
466         * sys/mem/vm_nommu.c (vm_fork): Likewise.
468 2006-02-01  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
470         * sys/arch/arm/arm/context.c (context_save): Aded an ARM exception
471         support.
472         * sys/arch/arm/arm/locore.S (interrupt_entry): Likewise.
474         * boot/common/elf.c: Added ELF object relocation. All boot tasks
475         on NOMMU system are relocated at boot time. In addition, a driver
476         module is also relocated on MMU/NOMMU system.
477         * boot/arch/i386/i386/elf_reloc.c (relocate_rel): Likewise.
478         * boot/arch/arm/arm/elf_reloc.c (relocate_rel): Likewise.
479         * boot/include/elf.h: Likewise.
480         * sys/kern/task.c (task_load): Likewise.
481         * sys/mem/vm.c (__vm_allocate): Likewise.
482         * sys/mem/vm_nommu.c (__vm_allocate): Likewise.
484 2006-01-31  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
486         * sys/kern/except.c (exception_raise): Fixed the argument check
487         of exception_raise() to be used with the alarm timer.
489 2006-01-19  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
491         * sys/kern/sched.c (sched_wakeone): Fixed the priority check in
492         the scheduler. The highest priority thread was not selected to
493         run due to some bug.
494         * sys/kern/sched.c (sched_setprio): Likewise.
495         * sys/ipc/msg.c (dequeue_topprio): Likewise.
497 2006-01-12  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
499         * dev/arch/i386/pc/fdd.c (fdd_write): Fixed the unexpected data
500         write to floppy drive. It was writing 512 sectors instead of 512
501         bytes.
503 2006-01-11  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
505         * sys/kern/timer.c (timer_periodic): Updated the periodic timer
506         routine to more simple.
508 2006-01-10  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
510         * dev/arch/i386/pc/fdd.c (fdd_rw): Fixed the hang while continuous
511         data write to FDD. The deadlock occurred because of the bad sequence
512         of I/O request and scheduling lock.
514 2006-01-05  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
516         * sys/sync/mutex.c (mutex_cleanup): Added Giang Hu's fix for mutex.
517         The kernel hang occurred in some conditions.
519 2005-12-27  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
521         * sys/include/param.h: Update version to 0.4.0.
523         * sys/*: Added 'task capability' to improve security. The task
524         capability can be used to manage the permissions of the various
525         task operations.
527 2005-12-16  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
529         * sys/mem/vm.c (vm_create): Fixed a memory leak when vm_create()
530         was failed.
532         * sys/arch/i386/i386/context.c (context_set): Changed the data type
533         of register value to u_long from void *.
535 2005-12-13  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
537         * sys/kern/task.c (task_create): Added vm_inherit argument to
538         task_create() interface instead of using NULL as task id. It is
539         changed to return ESRCH if specified task id is NULL.
541 2005-12-13  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
543         * dev/arch/i386/pc/fdd.c (fdd_read): Fixed the i/o read size.
544         It was using byte count for sector count.
546 2005-12-12  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
548         * sys/ipc/msg.c (msg_send): Changed to fill the task ID in all 
549         messages for security.
551 2005-12-09  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
553         * /conf/Makefile: Moved from /img directory. /img is removed now.
555         * user/sample/*: Added some sample programs.
557         * user/test/*: Updated whole test programs.
559         * user/include/prex/prex.h: Added definitions for exceptions.
561         * user/lib/prex/syscalls/Makefile (OBJS): Fixed the lack of
562         sem_trywait() stub routine in the library.
564         * sys/kern/device.c (device_write): Changed the error code for
565         EBADF as an invalid device object.
567         * dev/arch/i386/pc/console.c (console_write): Added locking scheduler
568         while writing line to console.
570 2005-12-06 Kohsuke Ohtani  <kohtani@users.sourceforge.net>
572         * make/*.mk: Updated makefiles.
574         * user/test/malloc: Added malloc() test program.
576         * user/test/errno: Added strerror() test program.
578 2005-12-02 Kohsuke Ohtani  <kohtani@users.sourceforge.net>
580         * user/lib/libsa/*.c: Created new libc for standalone tasks.
582         * user/lib/libc/string/*.c: Updated string library with BSD code.
584 2005-12-01 Kohsuke Ohtani  <kohtani@users.sourceforge.net>
586         * conf/config.h: Merged all configuration files.
588 2005-11-29  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
590         * make/Makefile.inc: Support 'make lint'.
592 2005-11-25  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
594         * dev/gen/null.c: Added null driver.
596         * dev/ge/zero.c: Added zero driver.
598 2005-11-24  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
600         * sys/sync/mutex.c : Support a static mutex initializer.
602         * sys/sync/cond.c : Support a static CV initializer.
604         * sys/sync/mutex.c : Changed the argument type of the kernel synch
605         API for POSIX compatibility.
606         * sys/sync/cond.c : Likewise.
607         * sys/sync/sem.c : Likewise.
609 2005-11-18  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
611         * dev/include/errno.h : Changed the value of EAGAIN.
612         * sys/include/errno.h : Likewise.
613         * user/include/sys/errno.h : Likewise.
615 2005-11-15  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
617         * sys/ipc/object.c (object_lookup): Fixed object_lookup(). It could
618         not find the correct object.
620 2005-11-10  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
622         * sys/include/param.h: Update version to 0.3.0.
624         * sys/mem/vm.c (vm_allocate_unlocked): The allocated memory was
625         not initialized with 0 in vm_allocate().
626         * sys/mem/vm_nommu.c (vm_allocate_unlocked): Likewise.
628 2005-11-09  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
630         * boot/include/bootinfo.h: Fixed the compile error with gcc4.
632         * sys/sync/mutex.c (mutex_lock): Fix mutex_lock() to return EDEADLK
633         rather than panic() when it detects the deadlock condition.
635 2005-11-08  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
637         * user/test/mutex/main.c: Added the test program for the mutex.
638         * user/test/deadlock/main.c: Added the test program for the deadlock
639         condition of mutex.
641 2005-11-04  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
643         * sys/sync/sem.c (sem_post): Fixed the bug in sem_post(). The waiting
644         thread is not unblocked even if the semaphore value becomes positive.
646         * user/test/sem/main.c: Added the test program for the semaphore.
647         
648 2005-11-02  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
650         * user/lib/prex/sa/stdio.c: Added standalone I/O interface in the
651         user mode library.
652         * user/bin/cpuvolt/io.c: Likewise. (removed)
653         * user/bin/kmon/io.c: Likewise. (removed)
654         * user/test/bench/io.c: Likewise. (removed)
656         * sys/include/stat.h: Added data for timer tick rate in the
657         kernel statistics data.
658         * user/include/prex.h: Likewise.
659         * user/test/bench/main.c: Likewise.
661         * sys/kern/device.c (device_init): Fixed to boot a kernel even if
662         the driver module is not loaded.
664 2005-11-01  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
666         * make/*.mk: Clean up all Makefiles.
668         * dev/include/ioctl.h: Changed the driver ioctl code to BSD style.
669         * dev/include/cpu.h: Likewise.
670         * dev/include/pm.h: Likewise.
671         * user/include/prex/ioctl.h: Likewise.
672         * user/bin/cpuvolt/main.c: Likewise.
673         * user/bin/kmon/cmd.c: Likewise.
675 2005-10-28  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
677         * sys/sync/sem.c (sem_init): Changed to allow re-initialize of 
678         the initialized semaphore. Fixed the error code of sem_init() to
679         ENOSPC from ENOMEM for POSIX compatibility.
681         * sys/kern/syscall.c: Changed the name of the following system calls
682         for POSIX compatibility.
683          - mutex_create() -> mutex_init()
684          - cond_create() -> cond_init()
685          - sem_create() -> sem_init()
686          - sem_count() -> sem_getvalue()
687         * sys/sync/mutex.c: Likewise.
688         * sys/sync/cond.c: Likewise.
689         * sys/sync/sem.c: Likewise.
690         * sys/include/sync.h: Likewise.
691         * user/lib/prex/syscalls/syscall.h: Likewise.
692         * user/lib/prex/syscalls/Makefile: Likewise.
693         * user/include/prex/prex.h: Likewise.
695 2005-10-26  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
697         * user/test/thread/main.c (main): Modified for the long run test.
699         * sys/arch/arm/arm/umem.c (umem_strnlen): Changed the return type
700         of umem_strnlen() to identify the page fault and NULL string.
701         * sys/arch/arm/include/arch.h: Likewise.
702         * sys/arch/i386/i386/locore.S (umem_strnlen): Likewise.
703         * sys/arch/i386/include/arch.h: Likewise.
705         * sys/arch/arm/arm/umem.c (umem_strnlen): Fixed the incorrect
706         handling of the string length returned by umem_strnlen().
707         * sys/kern/device.c (device_open): Likewise.
708         * sys/kern/task.c (task_name): Likewise.
709         * sys/kern/system.c (sys_log): Likewise.
711 2005-10-19  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
713         * sys/arch/arm/arm/context.c: Clean up kernel configuration files.
714         * sys/arch/arm/arm/trap.c: Likewise.
715         * sys/arch/arm/arm/locore.S: Likewise.
716         * sys/arch/arm/arm/locore.h: Likewise. (removed)
717         * sys/arch/arm/include/config.h: Likewise.(new)
718         * sys/arch/arm/include/param.h: Likewise.(removed)
719         * sys/arch/arm/gba/config.h: Likewise. (new)
720         * sys/arch/arm/gba/param.h: Likewise. (removed)
721         * sys/arch/i386/i386/context.c: Likewise.
722         * sys/arch/i386/i386/cpu.c: Likewise.
723         * sys/arch/i386/i386/trap.c: Likewise.
724         * sys/arch/i386/i386/cpu.h: Likewise.
725         * sys/arch/i386/i386/locore.S: Likewise.
726         * sys/arch/i386/i386/locore.h: Likewise. (removed)
727         * sys/arch/i386/include/param.h: Likewise. (removed)
728         * sys/arch/i386/include/config.h: Likewise. (new)
729         * sys/arch/i386/nommu/config.h: Likewise. (new)
730         * sys/arch/i386/pc/config.h: Likewise. (new)
731         * sys/arch/i386/pc/intr.c: Likewise.
732         * sys/include/kernel.h: Likewise.
733         * sys/include/param.h: Likewise.
734         * sys/include/sched.h: Likewise.
735         * sys/include/device.h: Likewise.
736         * sys/include/ipc.h: Likewise.
737         * sys/include/page.h: Likewise.
738         * sys/include/task.h: Likewise.
740 2005-10-13  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
742         * bsp/boot/*: Restruct the whole directory structure.
743         * bsp/dev/*: Likewise.
745 2005-10-07  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
747         * sys/include/version.h: Update version to 0.2.2
749 2005-10-03  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
751         * bsp/dev/power/pm.c (pm_ioctl): Removed sys_reboot() system call.
752         The reboot request is processed by power management driver, instead.
753         * bsp/include/pm.h: Likewise.
754         * sys/kern/system.c: Likewise.
755         * sys/kern/syscall.c: Likewise.
756         * sys/include/device.h: Likewise.
757         * user/lib/prex/syscalls/syscall.h: Likewise.
758         * user/lib/prex/syscalls/Makefile: Likewise.
759         * user/lib/prex/syscalls/sys_rebt.S: Likewise. (removed)
760         * user/include/prex/prex.h: Likewise.
761         * user/bin/kmon/cmd.c: Likewise.
762         * user/include/prex/pm.h: Likewise. (new)
764 2005-09-30  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
766         * sys/kern/sched.c (sched_schedule): Changed the function name
767         sched_schedule() to sched_switch().
769         * sys/kern/sched.c: Fixed the bug in IST dispatcher. There was
770         a small time-window that lost the IST trigger from ISR.
771         * sys/arch/arm/arm/locore.h: Likewise.
772         * sys/arch/arm/arm/locore.S: Likewise.
773         * sys/arch/i386/i386/locore.h: Likewise.
774         * sys/arch/i386/i386/locore.S: Likewise.
775         * sys/kern/timer.c: Likewise.
776         * sys/kern/irq.c: Likewise.
778 2005-09-15  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
780         * bsp/arch/i386/boot/head.s (get_memsize): Added the routine to
781         detect above 64M of RAM.
783 2005-09-08  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
785         * sys/kern/system.c (sys_panic): Changed not to restart the system
786         by the user mode panic when the kernel is non-debugging version.
788 2005-09-06  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
790         * bsp/include/driver.h: Removed timer_udelay() definition which
791         was an obsolete routine.
793 2005-09-01  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
795         * make/sys.mk:
796         Support a kernel function tracer. It can dump the run-time
797         call tree for all function's entry and exit.
798         * sys/kern/debug.c: Likewise.
799         * make/common.mk: Likewise.
801 2005-08-26  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
803         * sys/arch/i386/i386/cpu.h:
804         Replaced all "extern inline" to "static inline" to use the gcc
805         "-finstrument-functions" option.
806         * sys/arch/arm/include/arch.h: Likewise.
807         * sys/arch/i386/include/arch.h: Likewise.
809 2005-08-23  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
811         * user/test/bench: Added a benchmark tool to create/terminate
812         100000 threads at once.
813         
814 2005-08-22  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
816         * bsp/arch/i386/boot/head.S (boot_entry): Fixed the kernel
817         page fault in accessing the last physical page. i386-BSP was
818         modified to adjust the total memory size to 4K bytes boundary.
820 2005-08-19  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
822         * sys/kern/sched.c: Clean up comment.
823         * sys/kern/sched.c (sched_unlock): Removed needless irq_lock().
824         * sys/kern/irq.c (irq_thread): Rewrite the IST dispatch code.
826 2005-06-27  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
828         * sys/include/version.h: Update version to 0.2.1
830 2005-06-15  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
832         * sys/kern/thread.c (kernel_thread): Fixed the irq lock count is
833         not 0 after switching to new thread.
835         * sys/kern/device.c (device_open): Fixed the bug in the device name 
836         length. The string size did not include the terminater.
838 2005-06-10  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
840         * sys/kern/timer.c (timer_timeout): Fixed timer_timeout() not to
841         set the timeout value to zero when the requested value is smaller
842         than 1 tick.
843         
844 2005-06-09  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
846         * sys/kern/thread.c (thread_schedparam): Removed the error check
847         of maximum scheduling quantum, which is not useless. So, thread can
848         specify any scheduling quantum now.
850         * sys/arch/i386/i386/context.c: Changed to allow I/O privilege
851         for user mode applications.
853 2005-06-08  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
855         * arm/*: Support ARM processor on Game Boy Advance.
856         
857 2005-06-04  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
858         * bsp/dev/i386/pc/fdd.c: Added fdc existing check.
860 2005-06-04  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
862         * sys/include/version.h: Update version to 0.2.0
864 2005-05-21  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
866         * sys/sync/cond.c (cond_destroy): Fixed to prevent panic() even if
867         active cv was destroyed. It will return EBUSY in that case.
869         * sys/sync/sem.c (sem_post): Fixed the bug about the unconditional
870         wakeup of the blocked threads.
872 2005-05-15  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
874         * sys/include/version.h: Added version file.
875         
876 2005-05-14  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
878         * Integrated the directory structure for cross platform support.
879         * Almost makefiles were updated.
880         
881 2005-05-01  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
883         * sys/mem/vm_nommu.c: Support "No MMU" configuration.
885 2005-04-26  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
887         * sys/arch/i386/arch/locore.S (cs_reset): Added a breakpoint
888         for GDB in the kernel initialization.
890         * sys/kern/device.c (device_open): 
891         * bsp/dev/i386/pc/console.c:
892         * bsp/dev/i386/pc/rtc.c:
893         * bsp/dev/i386/pc/cpu.c:
894         Changed to allow the device drivers to have I/O table without
895         open/close routines.
897         * sys/arch/i386/arch/gdb_stub.c: Fixed the compile error when
898         CONFIG_GDB is enabled.
900 2005-04-25  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
902         * sys/arch/i386/arch/trap.c (trap_dump): Changed to display the 
903         task name for the system fault.
904         
905 2005-04-17  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
907         * sys/include/prex/config.h: Update version to 0.1.2
908         * sys/kern/debug.c:
909         * sys/kern/device.c:
910         * bsp/dev/i386/pc/console.c:
911         * bsp/dev/include/driver.h:
912         Added debug_attach() interface for drivers. This interface
913         enables the external print handler within bsp.
915 2005-04-16  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
917         * bsp/dev/lib/string.c (strncpy):
918         Fixed bug in strncpy().
919         
920 2005-04-10  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
922         * bsp/dev/i386/pc/console.c: Added additional escape codes for
923         console driver. The cursor can move to the specific position now.
925         * user/bin/cpuvolt/main.c: Added CPU voltage monitoring tool.
927         * user/test/dvs/main.c: Added DVS test tool.
928         
929 2005-04-06  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
931         * bsp/dev/pc/cpu.c (cpu_init): 
932         * bsp/dev/common/pm.c (pm_init): 
933         Port Pentium-M frequency control routine from OpenBSD.
935 2005-04-05  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
937         * sys/include/prex/config.h: Update version to 0.1.1
939         * bsp/dev/pc/rtc.c (rtc_read): Added getting time routine.
941         * sys/kern/device.c:
942         * sys/mem/vm.c (vm_access):
943         Added checking memory access for user memory.
945 2005-04-04  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
947         * sys/kern/system.c (sys_time): Added sys_time() interface.
949 2005-03-29  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
951         * make/*.mk: Changed common makefiles.
953         * user/bin/kmon/*.*: Support kernel monitor.
955         * sys/mem/kmem.c (page_stat): 
956         * sys/mem/kmem.c (kmem_stat): 
957         Implement sys_stat() system call.
959         * sys/arch/i386/i386/locore.S (umem_strnlen): Fixed sys_log() can
960         not display message from the buffer in user stack area.
962 2005-03-25  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
964         * user/lib/prex/crt/libcmain.c (__libc_main): Fixed start up code
965         in C library.
967         * bsp/loader/include/bootinfo.h: Changed max name length of boot tasks.
969 2005-03-24  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
971         * user/test/fault/main.c: Added test program for NULL pointer access.
973         * user/test/except/main.c: Added test program to send exception.
975         * user/test/timer/main.c: Added test program for timer.
977         * user/test/thread/main.c: Added test program for thread.
979 2005-03-22  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
981         * sys/kern/except.c: Uninstall of the exception handler was
982         not working.
984         * sys/arch/i386/context.c: Fixed the page fault with
985         exception_raise(). The stack layout of exception frame was incorrect.
987         * user/lib/prex/crt/libcmain.c: Fixed library code to avoid the
988         page fault when the main() routine returns.
990         * sys/kern/timer.c: Fix the timer overrun problem after 49 days.
992 2005-03-16  Kohsuke Ohtani  <kohtani@users.sourceforge.net>
994         * config.h: Ver 0.1 - Initial kernel release.