[prev in list] [next in list] [prev in thread] [next in thread] 

List:       linux-ntfs-cvs
Subject:    [Linux-NTFS-cvs] CVS: ntfsprogs/ntfsprogs ntfsinfo.c,1.123,1.124
From:       Szabolcs Szakacsits <szaka () users ! sourceforge ! net>
Date:       2006-04-23 10:06:43
Message-ID: E1FXbUJ-0004MJ-7F () sc8-pr-cvs1 ! sourceforge ! net
[Download RAW message or body]


Changes by: szaka

Update of /cvsroot/linux-ntfs/ntfsprogs/ntfsprogs
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16516/ntfsprogs

Modified Files:
	ntfsinfo.c 
Log Message:
Dump USA, USN and LSN for index records


Index: ntfsinfo.c
===================================================================
RCS file: /cvsroot/linux-ntfs/ntfsprogs/ntfsprogs/ntfsinfo.c,v
retrieving revision 1.123
retrieving revision 1.124
diff -u -p -r1.123 -r1.124
--- ntfsinfo.c	19 Apr 2006 22:03:59 -0000	1.123
+++ ntfsinfo.c	23 Apr 2006 10:06:40 -0000	1.124
@@ -1366,7 +1366,6 @@ static int ntfs_dump_index_entries(INDEX
 			numb_entries++;
 			continue;
 		}
-		ntfs_log_verbose("\n");
 		ntfs_log_verbose("\t\tEntry length:\t\t %u\n",
 				le16_to_cpu(entry->length));
 		ntfs_log_verbose("\t\tKey length:\t\t %u\n",
@@ -1400,6 +1399,7 @@ static int ntfs_dump_index_entries(INDEX
 		entry = (INDEX_ENTRY *)((u8 *)entry +
 						le16_to_cpu(entry->length));
 		numb_entries++;
+		ntfs_log_verbose("\n");
 	}
 	ntfs_log_verbose("\tEnd of index block reached\n");
 	return numb_entries;
@@ -1515,11 +1515,23 @@ static void ntfs_dump_attr_index_root(AT
 
 	entry = (INDEX_ENTRY *)((u8 *)index_root +
 			le32_to_cpu(index_root->index.entries_offset) + 0x10);
-	ntfs_log_verbose("\tDumping index block:");
+	ntfs_log_verbose("\tDumping index block:\n");
 	printf("\tIndex entries total:\t %d\n",
 			ntfs_dump_index_entries(entry, type));
 }
 
+static void ntfs_dump_usa_lsn(const char *indent, MFT_RECORD *mrec)
+{
+	printf("%sUpd. Seq. Array Offset:\t %hu\n", indent, 
+	       le16_to_cpu(mrec->usa_ofs));
+	printf("%sUpd. Seq. Array Count: \t %hu\n", indent,
+	       le16_to_cpu(mrec->usa_count));
+	printf("%sUpd. Seq. Number:\t %hu\n", indent,
+	       *(u16 *)((u8 *)mrec + le16_to_cpu(mrec->usa_ofs)));
+	printf("%sLogFile Seq. Number:\t 0x%llx\n", indent,
+	       (long long int)sle64_to_cpu(mrec->lsn));
+}
+
 /**
  * ntfs_dump_attr_index_allocation()
  *
@@ -1565,7 +1577,7 @@ static void ntfs_dump_attr_index_allocat
 
 	bit = 0;
 	while ((u8 *)tmp_alloc < (u8 *)allocation + data_size) {
-		if (*byte & (1 << bit)) {					   
+		if (*byte & (1 << bit)) {
 			if (ntfs_mst_post_read_fixup((NTFS_RECORD *) tmp_alloc,
 						index_root->index_block_size)) {
 				ntfs_log_perror("Damaged INDX record");
@@ -1573,13 +1585,18 @@ static void ntfs_dump_attr_index_allocat
 			}
 			entry = (INDEX_ENTRY *)((u8 *)tmp_alloc + le32_to_cpu(
 				tmp_alloc->index.entries_offset) + 0x18);
-			ntfs_log_verbose("\tDumping index block "
-					"(VCN %lld, used %u/%u):", le64_to_cpu(
+			ntfs_log_verbose("\tDumping index block (VCN %lld, "
+					"used %u/%u):\n", le64_to_cpu(
 					tmp_alloc->index_block_vcn),
 					(unsigned int)le32_to_cpu(tmp_alloc->
 					index.index_length), (unsigned int)
 					le32_to_cpu(tmp_alloc->index.
 					allocated_size));
+			if (opts.verbose) {
+				ntfs_dump_usa_lsn("\t\t", 
+						  (MFT_RECORD *)tmp_alloc);
+				printf("\n");
+			}
 			total_entries += ntfs_dump_index_entries(entry, type);
 			total_indx_blocks++;
 		}
@@ -1803,22 +1820,15 @@ static void ntfs_dump_inode_general_info
 
 	printf("Dumping Inode #%llu\n",(long long)inode->mft_no);
 
-	printf("Update Sequence Offset:\t\t %hu\n",
-		le16_to_cpu(inode->mrec->usa_ofs));
-	printf("Update Sequence Array Count:\t %hu\n",
-		le16_to_cpu(inode->mrec->usa_count));
-	printf("Update Sequence Number:\t\t %hu\n",
-		*(u16*)((u8*)inode->mrec + le16_to_cpu(inode->mrec->usa_ofs)));
-	printf("$LogFile Sequence Number:\t 0x%llx\n",
-		(signed long long int)sle64_to_cpu(inode->mrec->lsn));
-	printf("MFT Record Sequence Number:\t %hu\n",
+	ntfs_dump_usa_lsn("", inode->mrec);
+	printf("MFT Record Seq. Number:\t %hu\n",
 		(short unsigned int)le16_to_cpu(inode->mrec->sequence_number));
-	printf("Number of hard links:\t\t %hu\n",
+	printf("Number of Hard Links:\t %hu\n",
 		le16_to_cpu(inode->mrec->link_count));
-	printf("First attribute offset:\t\t %hu\n",
+	printf("Attribute Offset:\t %hu\n",
 		le16_to_cpu(inode->mrec->attrs_offset));
 
-	printf("MFT record Flags:\t\t ");
+	printf("MFT Record Flags:\t ");
 	if (inode_flags) {
 		if (MFT_RECORD_IN_USE & inode_flags) {
 			printf("IN_USE ");
@@ -1844,16 +1854,16 @@ static void ntfs_dump_inode_general_info
 	}
 	printf("\n");
 
-	printf("Size - Used:\t\t\t %u bytes\n",
+	printf("Bytes Used:\t\t %u bytes\n",
 		(unsigned int)le32_to_cpu(inode->mrec->bytes_in_use));
-	printf("Size - Allocated:\t\t %u bytes\n",
+	printf("Bytes Allocated:\t %u bytes\n",
 		(unsigned int)le32_to_cpu(inode->mrec->bytes_allocated));
 
 	if (inode->mrec->base_mft_record) {
-		printf("base MFT record:\t\t %llu\n",
+		printf("Base MFT Record:\t %llu\n",
 			MREF_LE(inode->mrec->base_mft_record));
 	}
-	printf("Next Attribute Instance:\t %hu\n",
+	printf("Next Attribute Instance: %hu\n",
 		le16_to_cpu(inode->mrec->next_attr_instance));
 }
 



-------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642
_______________________________________________
Linux-NTFS-cvs mailing list
Linux-NTFS-cvs@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-ntfs-cvs
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic