Changes by: antona
Update of /cvsroot/linux-ntfs/linux-ntfs/include
In directory usw-pr-cvs1:/tmp/cvs-serv32085/include
Modified Files:
	logfile.h 
Log Message:
dumplog now decodes the first 0x5000 bytes of the logfile given on the command
line as fully as possible with the current knowledge of the logfile structures.
Index: logfile.h
===================================================================
RCS file: /cvsroot/linux-ntfs/linux-ntfs/include/logfile.h,v
retrieving revision 1.9
retrieving revision 1.10
diff -U2 -r1.9 -r1.10
--- logfile.h	2001/06/15 16:47:46	1.9
+++ logfile.h	2001/06/16 00:06:17	1.10
@@ -88,8 +88,8 @@
 	__u16 log_clients;	/* Number of log client records following
 				   the restart_area. = 1 */
-	__u16 client_free_list;	/* How many clients are free(?). If != 0xffff,
+	__s16 client_free_list;	/* How many clients are free(?). If != 0xffff,
 				   check that log_clients > client_free_list.
 				   = 0xffff */
-	__u16 client_in_use_list;/* How many clients are in use(?). If != 0xffff
+	__s16 client_in_use_list;/* How many clients are in use(?). If != 0xffff
 				   check that log_clients > client_in_use_list.
 				   = 0 */
@@ -152,6 +152,6 @@
 				    restart the volume, i.e. the current
 				    position within the logfile. */
-	__u16 prev_client;	/* ??? = 0xffff */
-	__u16 next_client;	/* ??? = 0xffff */
+	__s16 prev_client;	/* ??? = 0xffff */
+	__s16 next_client;	/* ??? = 0xffff */
 	__u64 seq_number;	/* ??? = 1, size uncertain, Regis calls this
 				   "volume clear flag" and gives a size of one
@@ -171,5 +171,7 @@
 /*
  * Log page record page header. Each log page begins with this header and is
- * followed by several LOG_RECORD structures.
+ * followed by several LOG_RECORD structures, starting at offset 0x40 (the
+ * size of this structure and the following update sequence array and then
+ * aligned to 8 byte boundary, but is this specified anywhere?).
  */
 typedef struct {
@@ -194,5 +196,5 @@
  */
 typedef enum {
-	LOG_RECORD_MULTI_PAGE = 1,	/* ??? */
+	LOG_RECORD_MULTI_PAGE = cpu_to_le16(0x0001),	/* ??? */
 	LOG_RECORD_SIZE_PLACE_HOLDER = 0xffff,
 		/* This has nothing to do with the log record. It is only so
@@ -201,5 +203,6 @@
 
 /*
- * Log record header.
+ * Log record header. Each log record seems to have a constant size of 0x70
+ * bytes.
  */
 typedef struct {
@@ -226,13 +229,13 @@
 	__u16 lcns_to_follow;		   /* Number of lcn_list entries 
 					      following this entry. */
+/* Now at ofs 0x40. */
 	__u16 record_offset;
 	__u16 attribute_offset;
 	__u32 alignment_or_reserved;
-	__u32 target_vcn;
-	__u32 alignment_or_reserved1;
+	__s64 target_vcn;
+/* Now at ofs 0x50. */
 	struct {			   /* Only present if lcns_to_follow
 					      is not 0. */
-		__u32 lcn;
-		__u32 alignment_or_reserved;
+		__s64 lcn;
 	} __attribute__((__packed__)) lcn_list[0];
 } __attribute__ ((__packed__)) LOG_RECORD;
 |