[Kos-cvs] kos/modules/lib/blockfile libblockfile.c,1.6,1.7

thomas at kos.enix.org thomas at kos.enix.org
Sun Jan 30 17:11:23 CET 2005


Update of /home/kos/cvs/kos/modules/lib/blockfile
In directory the-doors:/tmp/cvs-serv3480/modules/lib/blockfile

Modified Files:
	libblockfile.c 
Log Message:
2005-01-30  Thomas Petazzoni  <thomas at crazy.kos.nx>

	* modules/x86/mm/Makefile (DEBUG_LEVEL): 1 -> 0

	* modules/vmm/_vmm_as.c: Moved as_dump and vr_dump, create
	as_dump_unsafe.

	* modules/vmm/Makefile (DEBUG_LEVEL): 3 -> 0

	* modules/tty/_tty.c, modules/tty/_tty_kres.c: DEBUG_PRINTx
	conformance + memset().

	* modules/lib/blockfile/libblockfile.c,
	modules/lib/charfile/libcharfile.c,
	modules/lib/filemap/libfilemap.c: Added memset() needed when
	allocated buffer is poisoned. Whitespaces.

	* modules/kmem/_kvmem_free.c: DEBUG_PRINTx conformance +
	whitespaces.

	* modules/kmem/_kvmem_alloc.c (kvalloc): Poison the allocated
	memory + DEBUG_PRINTx conformance.

	* modules/kmem/_kslab_cache_free.c (__kslab_cache_free_by_slab):
	Poison the freed buffer.

	* modules/kmem/_kslab_cache_alloc.c (kslab_cache_alloc): Poison
	the allocated buffer.

	* modules/kmem/_kmem_free.c (kfree): DEBUG_PRINTx conformance.

	* modules/kmem/_kmem_alloc.c (kmalloc): Whitespaces + DEBUG_PRINTx
	conformance.

	* modules/kitc/_kmutex.c: Remove [function] as they are generated
	by DEBUG_PRINTx now.

	* modules/karm/open.c: Whitespaces.

	* modules/karm/mount.c (mount): Cleaned the way of calling
	fs->attach().

	* modules/ide/_ide_karm.c: More debugging messages.

	* modules/ide/_ide.h (ide_device_info): Correct position of packed
	attribute to make gcc happy.

	* modules/part/Makefile (DEBUG_LEVEL), modules/karm/Makefile
	(DEBUG_LEVEL), modules/ide/Makefile
	(DEBUG_LEVEL), modules/fs/devfs/Makefile
	(DEBUG_LEVEL), modules/fs/fat/Makefile
	(DEBUG_LEVEL) : New variable.

	* modules/fs/devfs/devfs.c, modules/fs/fat/_fat.c,
	modules/fs/fat/_fat_karm.c: Added memset() found using the
	poisoning stuff in kmem. More debugging messages using
	DEBUG_PRINTx.

	* modules/debug/debug.h: DEBUG_PRINTx macros now call
	DEBUG_PRINT_VERBOSE instead of __dbg_printk, so that the line
	number, function and file names are printed before the debug
	message.

	* TODO: More things to do.



Index: libblockfile.c
===================================================================
RCS file: /home/kos/cvs/kos/modules/lib/blockfile/libblockfile.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- libblockfile.c	29 Dec 2003 13:42:51 -0000	1.6
+++ libblockfile.c	30 Jan 2005 16:11:21 -0000	1.7
@@ -154,7 +154,7 @@
       {
 	/* Prepare the disk block to write to disk */
 	memcpy(block_buffer + pos_in_block, buffer, bytes_to_copy);
-	
+
 	/* Write the block */
 	block_count = 1;
 	result = BLOCK_OPS(block_ures->view->ops)
@@ -291,19 +291,19 @@
 	  CONCEPTION_ASSERT(FALSE);
 	  break;
 	}
-      
+
       if (result < 0)
 	{
 	  if (block_buffer != NULL)
 	    kfree(block_buffer);
 	  return result;
 	}
-      
+
       cur        += ull_shift_left(block_count,
 				   view_data->block_size_shift);
       read_bytes += ull_shift_left(block_count,
 				   view_data->block_size_shift);
-      
+
       /* Read less than expected ? */
       if (block_start + block_count < block_end)
 	{
@@ -384,7 +384,7 @@
     {
       return -EINVAL;
     }
-  
+
   switch(seek_type)
     {
     case SEEK_CUR:
@@ -458,6 +458,8 @@
       return -ENOMEM;
     }
 
+  memset(view, 0x0, sizeof(struct view));
+
   view->iid    = INTERFACE_FILE_ID;
   view->nb_ops = INTERFACE_FILE_NB_OPS;
   view->ops    = INTERFACE_OPS(& block_file_ops);
@@ -472,7 +474,11 @@
       kfree(view);
       return -ENOMEM;
     }
+
+  memset(view_data, 0x0, sizeof(struct lbf_view_data));
+
   view_data->block_ures = block_ures;
+
   result = BLOCK_OPS(block_ures->view->ops)
                 ->get_device_size(block_ures,
 				  & block_size,



More information about the Kos-cvs mailing list