[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