libsparse: make API sane

Replaces the libsparse API with a sane one based on an opaque
pointer.

Change-Id: I93bc9cf9a6b912a993ef554dbe6ffe2f0f723383
diff --git a/ext4_utils/allocate.c b/ext4_utils/allocate.c
index dfc3f16..adf91ba 100644
--- a/ext4_utils/allocate.c
+++ b/ext4_utils/allocate.c
@@ -155,8 +155,8 @@
 	if (bg->inode_table == NULL)
 		critical_error_errno("calloc");
 
-	queue_data_block(bg->inode_table, aux_info.inode_table_blocks
-			* info.block_size, block);
+	sparse_file_add_data(info.sparse_file, bg->inode_table,
+			aux_info.inode_table_blocks	* info.block_size, block);
 }
 
 void init_unused_inode_tables(void)
@@ -171,9 +171,10 @@
 			block = bg->first_block + 2;
 			if (bg->has_superblock)
 				block += aux_info.bg_desc_blocks + info.bg_desc_reserve_blocks + 1;
-			queue_fill_block(0, aux_info.inode_table_blocks * info.block_size, block);
-                }
-       }
+			sparse_file_add_fill(info.sparse_file, 0,
+					aux_info.inode_table_blocks * info.block_size, block);
+		}
+	}
 }
 
 static int bitmap_set_bit(u8 *bitmap, u32 bit)
@@ -288,7 +289,8 @@
 	u32 block = bg->first_block;
 	if (bg->has_superblock)
 		block += 1 + aux_info.bg_desc_blocks +  info.bg_desc_reserve_blocks;
-	queue_data_block(bg->bitmaps, 2 * info.block_size, block);
+	sparse_file_add_data(info.sparse_file, bg->bitmaps, 2 * info.block_size,
+			block);
 
 	bg->data_blocks_used = 0;
 	bg->free_blocks = info.blocks_per_group;