Changes by: antona
Update of /cvsroot/linux-ntfs/linux-ntfs/include
In directory usw-pr-cvs1:/tmp/cvs-serv11984/include
Modified Files:
logfile.h
Log Message:
Integrate logfile.c into mkntfs
Index: logfile.h
===================================================================
RCS file: /cvsroot/linux-ntfs/linux-ntfs/include/logfile.h,v
retrieving revision 1.8
retrieving revision 1.9
diff -U2 -r1.8 -r1.9
--- logfile.h 2001/06/01 02:07:24 1.8
+++ logfile.h 2001/06/15 16:47:46 1.9
@@ -132,30 +132,40 @@
(record_length + 7) & ~7 == record_length.
= 0x30 */
- __u16 log_page_data_offset;/* ??? = 0x40 */
+ __u16 log_page_data_offset;/* ??? = 0x40 */
+ /*
+ * There are eight bytes here at offset 0x58, which contain a value,
+ * which we don't know what it means. It looks like it could be a
+ * 64-bit number or a 32-bit plus something else (the second 32-bits
+ * are zero so can't tell). Have to try to zero it and see if Windows
+ * copes with this.
+ */
} __attribute__ ((__packed__)) RESTART_AREA;
/*
- * Log file client record. Starts at 0x58 even though AFAIU the above it should
- * start at 0x60. Something fishy is going on. /-:
+ * Log file restart client. The offset of this record is found by adding
+ * the offset of the RESTART_AREA to the client_array_offset value found in it.
*/
typedef struct {
__u64 oldest_lsn; /* Oldest log file sequence number for this
- client record. = 0xbd16951d */
- __u64 client_restart_lsn;/* ??? = 0x700000, 0x700827, 0x700d07 */
- __u16 prev_client; /* ??? = 0x808, 0xd07, 0xd5d */
- __u16 next_client; /* ??? = 0x70 */
- __u16 seq_number; /* ??? = 0, 4 size uncertain, Regis calls this
+ client record. */
+ __u64 client_restart_lsn;/* Log file sequence number at which to
+ restart the volume, i.e. the current
+ position within the logfile. */
+ __u16 prev_client; /* ??? = 0xffff */
+ __u16 next_client; /* ??? = 0xffff */
+ __u64 seq_number; /* ??? = 1, size uncertain, Regis calls this
"volume clear flag" and gives a size of one
byte. */
- __u16 client_name; /* ??? = empty string??? size uncertain */
+ __u32 client_name_length; /* ??? length of client name in bytes. = 8,
+ size uncertain, offset uncertain */
+ uchar_t client_name[0]; /* ??? Name of the client in unicode. = NTFS */
+ /*
+ * Or it could be the client name is fixed size like in attr def struct
+ * and the 8 means something else. Favouring this is that the
+ * RESTART_CLIENT struct is assumed to be fixed size of 0xa0 bytes,
+ * just like the attr def struct! There might be parallels to be drawn
+ * between the two.
+ */
} __attribute__ ((__packed__)) RESTART_CLIENT;
-
-/*
- * NOTE: Above client record is followed by 0xffffffff probably to indicate
- * the end of the restart area.
- * Then there are 8 bytes = 0, then one __u32 = 8, followed by the Unicode
- * string "NTFS" and then zeroes till the end of the page.
- * Is this important at all?
- */
/*
|