[Kos-cvs] kos ChangeLog, 1.48, 1.49 Makefile, 1.38, 1.39 MkVars,
1.111, 1.112
thomas at kos.enix.org
thomas at kos.enix.org
Wed Dec 29 20:28:52 CET 2004
Update of /home/kos/cvs/kos
In directory the-doors:/tmp/cvs-serv1745
Modified Files:
ChangeLog Makefile MkVars
Log Message:
2004-12-29 Thomas Petazzoni <thomas at crazy.kos.nx>
* modules/x86/task/_thread_cpu_context.c
(init_user_thread_context): VMM functions now work with address
spaces.
* modules/x86/mm/_vmap.c (arch_do_unmap_virtual_page): Unmapping a
page that hasn't any corresponding PT is not an error. So, the
ASSERT_FATAL() was removed, and replaced by a test that returns
SUCCESS if there's not PT associated to the page.
* modules/vmm/vmm.h: VMM functions now operate on address space
not on teams.
* modules/vmm/vmm.c: Try to limit the exports only to the modules
that really need them.
* modules/vmm/_vmm_map.c: VMM functions now operate on address space,
not on teams.
* modules/vmm/_vmm_as.c: VMM functions now operate on address space,
not on teams. Check the return of kmutex_lock and kmutex_unlock
for safety.
* modules/vmm/_vmm.h: VMM functions now operate on address space,
not on teams.
* modules/test/vmm_test.c: A couple of updates, whitespaces
cleanup. In the hope of the stress test to pass, one day, maybe
;-)
* modules/test/test.c: Add the new mutex test.
* modules/test/sem_test.c: Semaphore test update. Less kernel
threads are created, less time is spent in usleep() and
create_kernel_thread() return is checked to make sure all kernel
threads are correctly created.
* modules/test/mutex_test.c: New mutex test.
* modules/test/_test.h: New mutex_test() function.
* modules/test/Makefile (OBJS): New mutex_test.c file.
* modules/task/_task_kstack.c (unallocate_cpl0_stack): Update
calls to unmap_virtual_range() according to new prototype.
* modules/pci/_pci.c (_pci_scan_bus): Not initializing pca
(pci_config_address) to 0 is not good ! Now, PCI devices are
correctly detected under Bochs and Qemu. Even a network adapter,
along with its I/O space and IRQ configuration can be detected !
* modules/lib/std/stdlib.h (printk): printk is re-defined as
ktty_printk, and not bochs_printk. By the way, I find this #define
quite ugly.
* modules/kos/wolfgang.c (primary_thread): Testing, testing,
debugging, debugging, testing...
* modules/kitc/_kmutex.c: Changed k_ui32_t to
spinlock_flags_t. Added some debugging messages and assertions.
* MkVars (KOSSYSPATH): The path to the kos-sys CVS module, in
which the hard disk image is stored. The default value is
../kos-sys/, but it can be overriden using the .mkvars file.
* Makefile (qemu): Instead of an hard-coded path to the hard disk
image, we use a KOSSYSPATH variable that can be overriden in the
.mkvars file.
Index: MkVars
===================================================================
RCS file: /home/kos/cvs/kos/MkVars,v
retrieving revision 1.111
retrieving revision 1.112
diff -u -d -r1.111 -r1.112
--- MkVars 28 Dec 2004 19:34:57 -0000 1.111
+++ MkVars 29 Dec 2004 19:28:49 -0000 1.112
@@ -40,6 +40,10 @@
LN_S = ln -s
EMULATOR = bochs
+# The patch to the kos-sys CVS module, in which the hard disk image
+# is stored.
+KOSSYSPATH = ../kos-sys/
+
#
# Compilation flags
#
Index: Makefile
===================================================================
RCS file: /home/kos/cvs/kos/Makefile,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -d -r1.38 -r1.39
--- Makefile 27 Dec 2004 22:01:04 -0000 1.38
+++ Makefile 29 Dec 2004 19:28:49 -0000 1.39
@@ -30,7 +30,7 @@
./loader/mod_check -m$@ $(LOAD_MODULE_FILES)
qemu: grub
- $(QEMU) -fda grub/fd.img -boot a -dummy-net -hda ../kos-sys/hd10M.img
+ $(QEMU) -fda grub/fd.img -boot a -dummy-net -hda $(KOSSYSPATH)/hd10M.img $(QEMU_OPTIONS)
run:
$(MAKE) $(EMULATOR)
Index: ChangeLog
===================================================================
RCS file: /home/kos/cvs/kos/ChangeLog,v
retrieving revision 1.48
retrieving revision 1.49
diff -u -d -r1.48 -r1.49
--- ChangeLog 29 Dec 2004 19:03:39 -0000 1.48
+++ ChangeLog 29 Dec 2004 19:28:49 -0000 1.49
@@ -1,5 +1,73 @@
2004-12-29 Thomas Petazzoni <thomas at crazy.kos.nx>
+ * modules/x86/task/_thread_cpu_context.c
+ (init_user_thread_context): VMM functions now work with address
+ spaces.
+
+ * modules/x86/mm/_vmap.c (arch_do_unmap_virtual_page): Unmapping a
+ page that hasn't any corresponding PT is not an error. So, the
+ ASSERT_FATAL() was removed, and replaced by a test that returns
+ SUCCESS if there's not PT associated to the page.
+
+ * modules/vmm/vmm.h: VMM functions now operate on address space
+ not on teams.
+
+ * modules/vmm/vmm.c: Try to limit the exports only to the modules
+ that really need them.
+
+ * modules/vmm/_vmm_map.c: VMM functions now operate on address space,
+ not on teams.
+
+ * modules/vmm/_vmm_as.c: VMM functions now operate on address space,
+ not on teams. Check the return of kmutex_lock and kmutex_unlock
+ for safety.
+
+ * modules/vmm/_vmm.h: VMM functions now operate on address space,
+ not on teams.
+
+ * modules/test/vmm_test.c: A couple of updates, whitespaces
+ cleanup. In the hope of the stress test to pass, one day, maybe
+ ;-)
+
+ * modules/test/test.c: Add the new mutex test.
+
+ * modules/test/sem_test.c: Semaphore test update. Less kernel
+ threads are created, less time is spent in usleep() and
+ create_kernel_thread() return is checked to make sure all kernel
+ threads are correctly created.
+
+ * modules/test/mutex_test.c: New mutex test.
+
+ * modules/test/_test.h: New mutex_test() function.
+
+ * modules/test/Makefile (OBJS): New mutex_test.c file.
+
+ * modules/task/_task_kstack.c (unallocate_cpl0_stack): Update
+ calls to unmap_virtual_range() according to new prototype.
+
+ * modules/pci/_pci.c (_pci_scan_bus): Not initializing pca
+ (pci_config_address) to 0 is not good ! Now, PCI devices are
+ correctly detected under Bochs and Qemu. Even a network adapter,
+ along with its I/O space and IRQ configuration can be detected !
+
+ * modules/lib/std/stdlib.h (printk): printk is re-defined as
+ ktty_printk, and not bochs_printk. By the way, I find this #define
+ quite ugly.
+
+ * modules/kos/wolfgang.c (primary_thread): Testing, testing,
+ debugging, debugging, testing...
+
+ * modules/kitc/_kmutex.c: Changed k_ui32_t to
+ spinlock_flags_t. Added some debugging messages and assertions.
+
+ * MkVars (KOSSYSPATH): The path to the kos-sys CVS module, in
+ which the hard disk image is stored. The default value is
+ ../kos-sys/, but it can be overriden using the .mkvars file.
+
+ * Makefile (qemu): Instead of an hard-coded path to the hard disk
+ image, we use a KOSSYSPATH variable that can be overriden in the
+ .mkvars file.
+
* doc/Makefile: Make sure the doxygen-generated documentation is
cleaned during 'make clean'.
@@ -44,16 +112,16 @@
* modules/x86/mm/_mm.h, modules/x86/mm/mm.c, modules/x86/mm/_rmap.c,
modules/x86/mm/_vmap.c: The new VMAP/RMAP system. We also make
sure access to all exported function is restricted to the VMM
- module.
+ module.
* modules/x86/mm/Makefile (all): arch_mm.ro instead of
- arch-mm.ro.
+ arch-mm.ro.
* modules/x86/lib/Makefile (all): Rename to arch_lib.ro instead of
- arch-lib.ro.
+ arch-lib.ro.
* modules/x86/internals.h: More definitions on the address space
- configuration.
+ configuration.
* modules/vmm/vmm.h (struct address_space): Add a mutex and a
spinlock to protect address space.
@@ -88,10 +156,10 @@
* modules/pmm/_pmm.h: struct gpfme is now private.
* modules/pmm/pmm.h: struct gpfme is now private (migrated to
- _pmm.h).
+ _pmm.h).
* modules/pmm/Makefile (OBJS): New PMM system, with fewer
- functionnalities.
+ functionnalities.
* modules/kos/spinlock.h: New type spinlock_flags_t, that should
be used instead of k_ui32_t for spinlock flags.
@@ -134,7 +202,7 @@
instead.
* modules/Makefile (doc): Add a target that generates the doxygen
- documentation.
+ documentation.
* loader/mod.h (EXPORT_FUNCTION_RESTRICTED): Change the symbol
names generated by the macros, so that they include the name of
@@ -189,13 +257,13 @@
* loader/libcrt/string.h: Add required prototypes (strcat and
strrchr).
- * loader/libcrt/strcpy.c (strcat): New function.
+ * loader/libcrt/strcpy.c (strcat): New function.
* loader/libcrt/strrchr.c (strrchr): Added new standard strrchr
function needed by the EXPORT_FUNCTION_RESTRICTED system.
* loader/libcrt/Makefile (OBJS): Added the new strrchr.o object
- file.
+ file.
* loader/elf32/link.c (relocate_section): Added the necessary code
to lookup for symbol that are either exported using
@@ -224,7 +292,7 @@
* modules/klavier/_klavier.c (_klavier): Suppression de l'ancien
code de décodage des scancodes, rendu obsolète par le bazar
utilisant les tables de caractères similaires à celles du noyau
- Linux.
+ Linux.
2003-12-30 Thomas Petazzoni <thomas at enix.org>
@@ -233,14 +301,14 @@
to check for many errors in the syntax of interfaces.
* modules/karm/interface/*.xml: Add an encoding.
-
+
* utils/kosidl.c: Add option -c that takes a DTD as argument, and
that validates the given XML considering the given DTD.
-
+
* modules/karm/gen_interface_stub_h.sh,
- modules/karm/gen_interface_stub_c.sh,
+ modules/karm/gen_interface_stub_c.sh,
modules/karm/gen_interface_desc.sh,
- modules/karm/Makefile: Add DTD validation.
+ modules/karm/Makefile: Add DTD validation.
2003-12-29 <d2 at baloo.jungle.net>
@@ -313,16 +381,16 @@
* modules/task/_task_uthread.c (copy_user_thread): User stack
size/addr/id are now copied to new thread (no need to create the
stack nor to allocate it : the regions are copied, and so are the
- user stack slots).
+ user stack slots).
* modules/task/_task_ustack.c (copy_stack_slots): New function
that copies the user stack slot to a new team.
- * modules/task/_task.h (copy_stack_slots): New function.
+ * modules/task/_task.h (copy_stack_slots): New function.
* modules/task/_task_team.c (task_exec): Remap the user stack of
- the thread being exec'ed
- (task_fork) Also copy the user stack slots.
+ the thread being exec'ed
+ (task_fork) Also copy the user stack slots.
* modules/kos/wolfgang.c (cmd_ps): Function show_all_thread_info
now takes a team as argument. If NULL, it will show all threads.
@@ -331,7 +399,7 @@
the first user thread.
(init_first_user_process): This function now only creates a team,
and runs init_first_user_process_aux as a kernel thread inside
- it.
+ it.
2003-12-21 Julien Munier <julien.munier at enix.org>
@@ -342,9 +410,9 @@
userspace, shall work.
* modules/task/task.c (init_module_level2): Cleanup init messages
-
- * modules/vmm/_dev_zero.c (_init_dev_zero):
- * modules/task/_task_kres.c (init_process_kres):
+
+ * modules/vmm/_dev_zero.c (_init_dev_zero):
+ * modules/task/_task_kres.c (init_process_kres):
* modules/task/_task_init.c (init_team_subsystem): we should
memset allocated structure to prevent crashes ! (crash happened
when testing on thomas' PC)
@@ -355,15 +423,15 @@
information. Show the whole data gathered on startup. Builds a
list of each discovered units, but no further development made. We
need to gather information about PCI to continue.
-
+
2003-12-21 Thomas Petazzoni <thomas at enix.org>
* modules/vmm/_vmm_as.c (as_map_ures): Implement MAP_FIXED
correctly. as_map_ures() and as_unmap_ures() should now be
- complete.
+ complete.
* modules/task/task.h: New type thread_id_t to identify thread in
- user space.
+ user space.
* modules/task/_task_kres.c (process_thread_create):
Implementation of the new syscall.
@@ -383,18 +451,18 @@
* modules/task/task.h (struct user_stack_slot): New type to handle
user stack slots, (struct team) Added the user stack slots array,
(struct thread) Added the ID, the address and the size of the
- user-level stack.
+ user-level stack.
* modules/task/_task_uthread.c (create_user_thread): Allocate a
user stack, and map it.
* modules/task/_task_ustack.c: New file, with
init_user_stack_slots, alloc_user_stack_slots,
- free_user_stack_slots, dump_user_stack_slots functions.
+ free_user_stack_slots, dump_user_stack_slots functions.
* modules/task/_task_team.c (create_team): Initialize user stack slots.
(task_exec): Do not map anymore the stack, it is done in
- create_user_thread.
+ create_user_thread.
* modules/task/_task_init.c (init_team_subsystem): Initialize user
stack slots for the kernel team.
@@ -423,8 +491,8 @@
* modules/kbs/elf/elf.c, modules/kbs/elf/_elf.c,
modules/kbs/elf/_elf.h: New module to load ELF binaries. Supports
- binaries with BSS sections.
-
+ binaries with BSS sections.
+
* modules/kbs/binfmt.c, modules/kbs/binfmt.c,
modules/kbs/Makefile: New module kbs.
@@ -446,19 +514,19 @@
* modules/vmm/vmm.c: Some new exported functions (as_unmap_ures
and as_dump).
- * modules/vmm/_vmm_vr.c: File deleted.
-
+ * modules/vmm/_vmm_vr.c: File deleted.
+
* modules/vmm/_vmm_as.c: Function as_unmap_ures() is available and
seems to be working properly. Some new auxiliary functions
_as_unmap_shrink_vr(), _as_unmap_split_vr(), _as_unmap_del_vr()
were also created. The as_map_ures() still does not support
MAP_FIXED mappings on already occupied memory areas. All functions
- have also been documented.
+ have also been documented.
* modules/vmm/Makefile (OBJS): No more vmm_vr.c file.
* modules/test/vmm_test.c: New test for the VMM system. It only
- tests the creation of region and their deletion.
+ tests the creation of region and their deletion.
* modules/test/test.c (test_run_all_tests): New test vmm_test().
@@ -470,13 +538,13 @@
kosidl to generate the header containing all interface and method
ID's for the user space. For the moment, this script is never
called, and is not used by the user space part in the kos-sys
- module.
+ module.
* utils/kosidl.c (generate_id_list): New function that generates
all ID's required by the user space (interface + method ID's).
* modules/vmm/_vmm_as.c (as_unmap_ures): Beginning of work on
- region unmapping (not tested, only the beginning).
+ region unmapping (not tested, only the beginning).
(as_dump): New version, with more informations on each page.
* modules/kos/wolfgang.c, modules/lib/charfile/libcharfile.c,
@@ -502,9 +570,9 @@
* modules/arch/task/_thread_cpu_context.c
(init_user_thread_context): User threads works (and memory map
- changed).
+ changed).
(copy_user_thread_context): Copy user thread context (during
- fork).
+ fork).
* modules/karm/syscall.c (syscall): Connection between the low
level syscall entry point and the karm interfaces/methods.
@@ -534,9 +602,9 @@
(as_copy): Copy an address space (during fork).
(as_empty): Remove all regions from an address space (during exec).
(as_page_fault): Handles dynamic stack expansion, COW and anonymous
- mappings.
+ mappings.
(as_map_ures): Handles MAP_FIXED regions (when the space is
- available).
+ available).
(as_change_heap): Implementation of the brk() system call.
(as_update_heap_start): Update the heap start address.
@@ -548,7 +616,7 @@
* modules/task/_task_kres.c: The process 'kres' that allows to
call fork, exec, getpid, getppid, open, brk ... from the user
- space.
+ space.
* modules/task/task.h: Added parent, pid and thread_count fields
to the team structure.
@@ -576,7 +644,7 @@
: most of its job is now factorized in the vmm module. Its only
really job is to page_in the data.
- * modules/lib/bst/_splay.c (_splay_visit_in_order)
+ * modules/lib/bst/_splay.c (_splay_visit_in_order)
(_splay_visit_reverse_order): Return NULL instead of current node.
* modules/lib/blockfile/libblockfile.c (lbf_copy_ures): New
@@ -597,7 +665,7 @@
* modules/karm/interface/mapping.xml: Map function doesn't require
the pos_in_ures parameter anymore (it's included in the struct
- virtual_region).
+ virtual_region).
* modules/karm/interface/char.xml: Replaced size_t* len with
size_t len to match the current char interface inside the
@@ -625,7 +693,7 @@
* modules/ide/_ide_karm.c (_ide_register_disk): Added necessary
calls to devfs_unregister.
- * modules/fs/fat/_fat_karm.c (fat_dir_copy_ures)
+ * modules/fs/fat/_fat_karm.c (fat_dir_copy_ures)
(fat_file_copy_ures): New functions to copy an ures (needed to
duplicate ures during fork).
@@ -643,7 +711,7 @@
* MkRules: Added NO_DEP=1 to disable dependencies generation : the
generation occurs multiple times, sometimes 2, sometimes 20,
- sometimes more => it's impossible to compile.
+ sometimes more => it's impossible to compile.
2003-10-05 Melanie Bats <mel at boubou>
@@ -657,18 +725,18 @@
* modules/karm/interface/*.xml: New way to define interfaces,
using XML.
-
+
* modules/karm/interface/*.h: Removed
-
+
* modules/karm/interface.h: Added struct interface type.
* modules/karm/interface.c: The array of interfaces is now in a
- separate file, interface/interface-desc.c.
+ separate file, interface/interface-desc.c.
* modules/karm/Makefile: Added the interface/interface-desc.o file
that contains the description of each interface. Defined a
TO_CLEAN variable to clean up everything in the interface
- subdirectory.
+ subdirectory.
* modules/fs/devfs/devfs.c, modules/fs/fakefs/fakefs.c,
modules/fs/fat/_fat_karm.c, modules/ide/_ide_karm.c,
@@ -691,7 +759,7 @@
* modules/lib/bst/test.c (main): Some checks for the in order and
in reverse order visits of the tree.
- * modules/lib/bst/_splay.c (_splay_visit_reverse_order)
+ * modules/lib/bst/_splay.c (_splay_visit_reverse_order)
(_splay_visit_in_order): Functions that allow to visit a tree in
order or in reverse order. They do not use any stack or mark and
aren't recursive. Thanks to Christophe Bliard for the
@@ -724,7 +792,7 @@
Same modification as for fat concerning seek and read
semantics. The only difference will be that writes beyond the end
of the device won't enlarge the device.
-
+
* modules/kos/wolfgang.c: Added a list of commands to be executed
at startup (init_commands array). Gathered command names, helps
and associated functions in a single array, commands. New help
@@ -733,14 +801,14 @@
* modules/fs/fat/_fat_karm.c (fat_file_read, fat_file_seek): Seek
beyond the end of the file is a valid operation. Upcoming reads
will also succeded, with a read size equal to 0.
-
+
* MkVars (MODULES): Added module libfilemap.
* modules/karm/README: What is Karm ?
* modules/*: Revert to the philosophy Simple is beautiful
+ changes to type names, function names, etc...
-
+
* modules/arch/mm/_team_mm_context.c
(arch_team_mm_context_construct): Merged the special case of
initializing the mm_context of the primary kernel team into this
@@ -752,7 +820,7 @@
* modules/vmm/*: removed everything that was useless. No more
access_range, no more virtual region above KERNEL space, no more
useless functions (files _vmm_kmem.c and _vmm_kres.c were removed).
-
+
* modules/task/task.h (struct team): No more mm_context, moved to
address_space, which is completely handled by vmm module.
@@ -923,13 +991,13 @@
* modules/kos/wolfgang.c: there's now two commands to test IDE :
idetest0 that tests on the primary master drive, and idetest1 that
tests on the secondary master drive.
-
+
* modules/debug/debug.c: simplification of debug output
management. There's now a clear separation between prepare output
and enable output. Serial output works.
* modules/config.h: report modification of output management
-
+
* MkVars (MODULES): Added module ide
* modules/debug/debug.c (__dbg_dumpmem): Much nicer output.
@@ -959,7 +1027,7 @@
* all: Improvment to the kres/ures model : kres/view/ures.
Removal of dangerous string functions.
-
+
* modules/lib/*: Removed strcpy, strncpy, strcat, strncat, sprintf
and vsprintf. We can use only strzcpy, strzcat and snprintf (they
all make sure that everything fits in the buffer and that the
@@ -968,9 +1036,9 @@
* modules/liblist/liblist.h: list_init now renamed list_singleton
(initialize a list to a given single element). list_init simply
initializes a empty list.
-
+
* modules/karm/fs_support.c: All functions return result_t.
-
+
* modules/vmm/_vmm_kmem.c: Updated to the new model.
* modules/tty/_tty_kres.c: Updated to the new model.
@@ -980,7 +1048,7 @@
* modules/karm/interface.c: Global repository of interfaces (name,
number of operations, number of args for each operation)
-
+
* modules/karm/ures.h: User ressource now only contains a back
pointer to the view.
@@ -989,11 +1057,9 @@
data that concerns the kres for the current interface. User
ressource are now being listed by views (and not by kernel
ressource anymore).
-
+
* modules/karm/kres.h: A kernel ressource is now simply a list of
views.
* modules/karm/kres.c : New set of functions : kres_lookup_view,
kres_add_view, kres_remove_view. We can now add views dynamically.
-
-
\ No newline at end of file
More information about the Kos-cvs
mailing list