Fix all occurences of printf with %ll length modifiers but 64 bit

arguments to typecast the arguments to (unsigned) long long to avoid
the warnings when compiling on 64 bit architectures.

(Logical change 1.306)
edge.strict_endians
cantab.net!aia21 2004-03-09 14:47:34 +00:00
parent 6dea839252
commit ddeee65b8d
8 changed files with 142 additions and 97 deletions

View File

@ -36,7 +36,9 @@ xx/xx/2004 - 1.8.6-WIP
- Make the device fd in unix_io.c be stored in malloc()ed space pointed
to by the d_private pointer instead of inside the d_private pointer
itself. Makes the warnings on 64 bit architectures go away.
- Fix all occurences of printf with %ll length modifiers but 64 bit
arguments to typecast the arguments to (unsigned) long long to avoid
the warnings when compiling on 64 bit architectures.
27/02/2004 - 1.8.5 - Springclean of the build process, cleanups, bug fixes
- Fixup ntfsinfo a little bit and give its manpage a small update to

View File

@ -159,12 +159,14 @@ pass_loc:
le16_to_cpu(rph->minor_ver));
printf("\n%s restart area:\n", pass == 1? "1st": "2nd");
printf("magic = RSTR\n");
printf("ChkDskLsn = 0x%llx\n", sle64_to_cpu(rph->chkdsk_lsn));
printf("ChkDskLsn = 0x%llx\n",
(unsigned long long)sle64_to_cpu(rph->chkdsk_lsn));
printf("SystemPageSize = %u\n", le32_to_cpu(rph->system_page_size));
printf("LogPageSize = %u\n", le32_to_cpu(rph->log_page_size));
printf("RestartOffset = 0x%x\n", le16_to_cpu(rph->restart_offset));
printf("\n(1st) restart record:\n");
printf("CurrentLsn = %llx\n", sle64_to_cpu(rr->current_lsn));
printf("CurrentLsn = %llx\n",
(unsigned long long)sle64_to_cpu(rr->current_lsn));
printf("LogClients = %u\n", le16_to_cpu(rr->log_clients));
printf("ClientFreeList = %i\n", sle16_to_cpu(rr->client_free_list));
printf("ClientInUseList = %i\n", sle16_to_cpu(rr->client_in_use_list));
@ -175,8 +177,9 @@ pass_loc:
le16_to_cpu(rr->restart_area_length));
printf("ClientArrayOffset = 0x%x\n",
le16_to_cpu(rr->client_array_offset));
printf("FileSize = %llu (0x%llx)\n", sle64_to_cpu(rr->file_size),
sle64_to_cpu(rr->file_size));
printf("FileSize = %lld (0x%llx)\n",
(long long)sle64_to_cpu(rr->file_size),
(unsigned long long)sle64_to_cpu(rr->file_size));
printf("LastLsnDataLength = 0x%x\n",
le32_to_cpu(rr->last_lsn_data_length));
printf("RecordLength = 0x%x\n", le16_to_cpu(rr->record_length));
@ -184,12 +187,14 @@ pass_loc:
le16_to_cpu(rr->log_page_data_offset));
for (client = 0; client < le16_to_cpu(rr->log_clients); client++) {
printf("\nRestart client record number %i:\n", client);
printf("OldestLsn = 0x%llx\n", sle64_to_cpu(cr->oldest_lsn));
printf("ClientRestartLsn = 0x%llx\n",
printf("OldestLsn = 0x%llx\n", (unsigned long long)
sle64_to_cpu(cr->oldest_lsn));
printf("ClientRestartLsn = 0x%llx\n", (unsigned long long)
sle64_to_cpu(cr->client_restart_lsn));
printf("PrevClient = %i\n", sle16_to_cpu(cr->prev_client));
printf("NextClient = %i\n", sle16_to_cpu(cr->next_client));
printf("SeqNumber = 0x%llx\n", le64_to_cpu(cr->seq_number));
printf("SeqNumber = 0x%llx\n", (unsigned long long)
le64_to_cpu(cr->seq_number));
printf("ClientNameLength = 0x%x\n",
le32_to_cpu(cr->client_name_length));
if (le32_to_cpu(cr->client_name_length)) {
@ -228,14 +233,14 @@ rcrd_pass_loc:
printf(":");
/* Dump log record page */
printf("\nmagic = RCRD\n");
printf("copy.last_lsn/file_offset = 0x%llx\n",
printf("copy.last_lsn/file_offset = 0x%llx\n", (unsigned long long)
le64_to_cpu(rcrd_ph->copy.last_lsn));
printf("flags = 0x%x\n", le32_to_cpu(rcrd_ph->flags));
printf("page count = %i\n", le16_to_cpu(rcrd_ph->page_count));
printf("page position = %i\n", le16_to_cpu(rcrd_ph->page_position));
printf("header.next_record_offset = 0x%llx\n",
printf("header.next_record_offset = 0x%llx\n", (unsigned long long)
le64_to_cpu(rcrd_ph->header.packed.next_record_offset));
printf("header.last_end_lsn = 0x%llx\n",
printf("header.last_end_lsn = 0x%llx\n", (unsigned long long)
le64_to_cpu(rcrd_ph->header.packed.last_end_lsn));
/*
* Where does the 0x40 come from? Is it just usa_offset +
@ -245,10 +250,11 @@ rcrd_pass_loc:
client = 0;
log_record_pass:
printf("\nLog record %i:\n", client);
printf("this lsn = 0x%llx\n", le64_to_cpu(lr->this_lsn));
printf("client previous lsn = 0x%llx\n",
printf("this lsn = 0x%llx\n",
(unsigned long long)le64_to_cpu(lr->this_lsn));
printf("client previous lsn = 0x%llx\n", (unsigned long long)
le64_to_cpu(lr->client_previous_lsn));
printf("client undo next lsn = 0x%llx\n",
printf("client undo next lsn = 0x%llx\n", (unsigned long long)
le64_to_cpu(lr->client_undo_next_lsn));
printf("client data length = 0x%x\n",
le32_to_cpu(lr->client_data_length));
@ -285,11 +291,12 @@ log_record_pass:
printf("lcns_to_follow = 0x%x\n", le16_to_cpu(lr->lcns_to_follow));
printf("record_offset = 0x%x\n", le16_to_cpu(lr->record_offset));
printf("attribute_offset = 0x%x\n", le16_to_cpu(lr->attribute_offset));
printf("target_vcn = 0x%llx\n", sle64_to_cpu(lr->target_vcn));
printf("target_vcn = 0x%llx\n",
(unsigned long long)sle64_to_cpu(lr->target_vcn));
if (le16_to_cpu(lr->lcns_to_follow) > 0)
printf("Array of lcns:\n");
for (i = 0; i < le16_to_cpu(lr->lcns_to_follow); i++)
printf("lcn_list[%i].lcn = 0x%llx\n", i,
printf("lcn_list[%i].lcn = 0x%llx\n", i, (unsigned long long)
sle64_to_cpu(lr->lcn_list[i].lcn));
client++;
lr = (LOG_RECORD*)((char*)lr + 0x70);

View File

@ -776,7 +776,8 @@ static void dump_non_resident_attr(ATTR_RECORD *a)
int i;
l = sle64_to_cpu(a->lowest_vcn);
printf("Lowest VCN = %lli (0x%llx)\n", l, l);
printf("Lowest VCN = %lli (0x%llx)\n", (long long)l,
(unsigned long long)l);
l = sle64_to_cpu(a->highest_vcn);
printf("Highest VCN = %lli (0x%llx)\n", l, l);
printf("Mapping pairs array offset = 0x%x\n",
@ -787,14 +788,18 @@ static void dump_non_resident_attr(ATTR_RECORD *a)
printf("Attribute is not the first extent. The following "
"sizes are meaningless:\n");
l = sle64_to_cpu(a->allocated_size);
printf("Allocated size = %lli (0x%llx)\n", l, l);
printf("Allocated size = %lli (0x%llx)\n", (long long)l,
(unsigned long long)l);
l = sle64_to_cpu(a->data_size);
printf("Data size = %lli (0x%llx)\n", l, l);
printf("Data size = %lli (0x%llx)\n", (long long)l,
(unsigned long long)l);
l = sle64_to_cpu(a->initialized_size);
printf("Initialized size = %lli (0x%llx)\n", l, l);
printf("Initialized size = %lli (0x%llx)\n",
(long long)l, (unsigned long long)l);
if (a->flags & ATTR_COMPRESSION_MASK) {
l = sle64_to_cpu(a->compressed_size);
printf("Compressed size = %lli (0x%llx)\n", l, l);
printf("Compressed size = %lli (0x%llx)\n",
(long long)l, (unsigned long long)l);
}
i = le16_to_cpu(a->mapping_pairs_offset);
dump_mapping_pairs_array((char*)a + i, le32_to_cpu(a->length) - i);
@ -912,7 +917,8 @@ static void dump_mft_record(MFT_RECORD *m)
u = le16_to_cpu(m->usa_ofs);
printf("Update sequence array offset = %u (0x%x)\n", u, u);
printf("Update sequence array size = %u\n", le16_to_cpu(m->usa_count));
printf("$LogFile sequence number (lsn) = %llu\n", le64_to_cpu(m->lsn));
printf("$LogFile sequence number (lsn) = %llu\n",
(unsigned long long)le64_to_cpu(m->lsn));
printf("Sequence number = %u\n", le16_to_cpu(m->sequence_number));
printf("Reference (hard link) count = %u\n",
le16_to_cpu(m->link_count));
@ -932,7 +938,8 @@ static void dump_mft_record(MFT_RECORD *m)
printf("Bytes allocated = %u (0x%x)\n", u, u);
r = le64_to_cpu(m->base_mft_record);
printf("Base mft record reference:\n\tMft record number = %llu\n\t"
"Sequence number = %u\n", MREF(r), MSEQNO(r));
"Sequence number = %u\n", (unsigned long long)MREF(r),
MSEQNO(r));
printf("Next attribute instance = %u\n",
le16_to_cpu(m->next_attr_instance));
a = (ATTR_RECORD*)((char*)m + le16_to_cpu(m->attrs_offset));

View File

@ -209,12 +209,14 @@ pass_loc:
le16_to_cpu(rph->minor_ver));
printf("\n%s restart area:\n", pass == 1? "1st": "2nd");
printf("magic = RSTR\n");
printf("ChkDskLsn = 0x%llx\n", sle64_to_cpu(rph->chkdsk_lsn));
printf("ChkDskLsn = 0x%llx\n",
(unsigned long long)sle64_to_cpu(rph->chkdsk_lsn));
printf("SystemPageSize = %u\n", le32_to_cpu(rph->system_page_size));
printf("LogPageSize = %u\n", le32_to_cpu(rph->log_page_size));
printf("RestartOffset = 0x%x\n", le16_to_cpu(rph->restart_offset));
printf("\n(1st) restart record:\n");
printf("CurrentLsn = %llx\n", sle64_to_cpu(rr->current_lsn));
printf("CurrentLsn = %llx\n",
(unsigned long long)sle64_to_cpu(rr->current_lsn));
printf("LogClients = %u\n", le16_to_cpu(rr->log_clients));
printf("ClientFreeList = %i\n", sle16_to_cpu(rr->client_free_list));
printf("ClientInUseList = %i\n", sle16_to_cpu(rr->client_in_use_list));
@ -225,8 +227,9 @@ pass_loc:
le16_to_cpu(rr->restart_area_length));
printf("ClientArrayOffset = 0x%x\n",
le16_to_cpu(rr->client_array_offset));
printf("FileSize = %llu (0x%llx)\n", sle64_to_cpu(rr->file_size),
sle64_to_cpu(rr->file_size));
printf("FileSize = %lld (0x%llx)\n",
(long long)sle64_to_cpu(rr->file_size),
(unsigned long long)sle64_to_cpu(rr->file_size));
if (sle64_to_cpu(rr->file_size) != l)
puts("$LogFile restart area indicates a log file size"
"different from the actual size!");
@ -237,12 +240,14 @@ pass_loc:
le16_to_cpu(rr->log_page_data_offset));
for (client = 0; client < le16_to_cpu(rr->log_clients); client++) {
printf("\nRestart client record number %i:\n", client);
printf("OldestLsn = 0x%llx\n", sle64_to_cpu(cr->oldest_lsn));
printf("ClientRestartLsn = 0x%llx\n",
printf("OldestLsn = 0x%llx\n", (unsigned long long)
sle64_to_cpu(cr->oldest_lsn));
printf("ClientRestartLsn = 0x%llx\n", (unsigned long long)
sle64_to_cpu(cr->client_restart_lsn));
printf("PrevClient = %i\n", sle16_to_cpu(cr->prev_client));
printf("NextClient = %i\n", sle16_to_cpu(cr->next_client));
printf("SeqNumber = 0x%llx\n", le64_to_cpu(cr->seq_number));
printf("SeqNumber = 0x%llx\n", (unsigned long long)
le64_to_cpu(cr->seq_number));
printf("ClientNameLength = 0x%x\n",
le32_to_cpu(cr->client_name_length));
if (le32_to_cpu(cr->client_name_length)) {
@ -281,14 +286,14 @@ rcrd_pass_loc:
printf(":");
/* Dump log record page */
printf("\nmagic = RCRD\n");
printf("copy.last_lsn/file_offset = 0x%llx\n",
printf("copy.last_lsn/file_offset = 0x%llx\n", (unsigned long long)
le64_to_cpu(rcrd_ph->copy.last_lsn));
printf("flags = 0x%x\n", le32_to_cpu(rcrd_ph->flags));
printf("page count = %i\n", le16_to_cpu(rcrd_ph->page_count));
printf("page position = %i\n", le16_to_cpu(rcrd_ph->page_position));
printf("header.next_record_offset = 0x%llx\n",
printf("header.next_record_offset = 0x%llx\n", (unsigned long long)
le64_to_cpu(rcrd_ph->header.packed.next_record_offset));
printf("header.last_end_lsn = 0x%llx\n",
printf("header.last_end_lsn = 0x%llx\n", (unsigned long long)
le64_to_cpu(rcrd_ph->header.packed.last_end_lsn));
/*
* Where does the 0x40 come from? Is it just usa_offset +
@ -298,10 +303,11 @@ rcrd_pass_loc:
client = 0;
log_record_pass:
printf("\nLog record %i:\n", client);
printf("this lsn = 0x%llx\n", le64_to_cpu(lr->this_lsn));
printf("client previous lsn = 0x%llx\n",
printf("this lsn = 0x%llx\n",
(unsigned long long)le64_to_cpu(lr->this_lsn));
printf("client previous lsn = 0x%llx\n", (unsigned long long)
le64_to_cpu(lr->client_previous_lsn));
printf("client undo next lsn = 0x%llx\n",
printf("client undo next lsn = 0x%llx\n", (unsigned long long)
le64_to_cpu(lr->client_undo_next_lsn));
printf("client data length = 0x%x\n",
le32_to_cpu(lr->client_data_length));
@ -338,11 +344,12 @@ log_record_pass:
printf("lcns_to_follow = 0x%x\n", le16_to_cpu(lr->lcns_to_follow));
printf("record_offset = 0x%x\n", le16_to_cpu(lr->record_offset));
printf("attribute_offset = 0x%x\n", le16_to_cpu(lr->attribute_offset));
printf("target_vcn = 0x%llx\n", sle64_to_cpu(lr->target_vcn));
printf("target_vcn = 0x%llx\n",
(unsigned long long)sle64_to_cpu(lr->target_vcn));
if (le16_to_cpu(lr->lcns_to_follow) > 0)
printf("Array of lcns:\n");
for (i = 0; i < le16_to_cpu(lr->lcns_to_follow); i++)
printf("lcn_list[%i].lcn = 0x%llx\n", i,
printf("lcn_list[%i].lcn = 0x%llx\n", i, (unsigned long long)
sle64_to_cpu(lr->lcn_list[i].lcn));
client++;
lr = (LOG_RECORD*)((char*)lr + 0x70);

View File

@ -254,27 +254,31 @@ void ntfs_dump_volume(ntfs_volume *vol)
printf("\tVolume Version: %u.%u\n", vol->major_ver, vol->minor_ver);
printf("\tSector Size: %hu\n", vol->sector_size);
printf("\tCluster Size: %u\n", vol->cluster_size);
printf("\tVolume Size in Clusters: %lld\n", vol->nr_clusters);
printf("\tVolume Size in Clusters: %lld\n", (long long)vol->nr_clusters);
printf("MFT Information \n");
printf("\tMFT Record Size: %u\n", vol->mft_record_size);
printf("\tMFT Zone Multiplier: %u\n", vol->mft_zone_multiplier);
printf("\tMFT Data Position: %lld\n", vol->mft_data_pos);
printf("\tMFT Zone Start: %lld\n", vol->mft_zone_start);
printf("\tMFT Zone End: %lld\n", vol->mft_zone_end);
printf("\tMFT Zone Position: %lld\n", vol->mft_zone_pos);
printf("\tCurrent Position in First Data Zone: %lld\n", vol->data1_zone_pos);
printf("\tCurrent Position in Second Data Zone: %lld\n", vol->data2_zone_pos);
printf("\tNumber of Records in MFT: %lld\n", vol->nr_mft_records);
printf("\tLCN of Data Attribute for FILE_MFT: %lld\n", vol->mft_lcn);
printf("\tMFT Data Position: %lld\n", (long long)vol->mft_data_pos);
printf("\tMFT Zone Start: %lld\n", (long long)vol->mft_zone_start);
printf("\tMFT Zone End: %lld\n", (long long)vol->mft_zone_end);
printf("\tMFT Zone Position: %lld\n", (long long)vol->mft_zone_pos);
printf("\tCurrent Position in First Data Zone: %lld\n",
(long long)vol->data1_zone_pos);
printf("\tCurrent Position in Second Data Zone: %lld\n",
(long long)vol->data2_zone_pos);
printf("\tNumber of Records in MFT: %lld\n",
(long long)vol->nr_mft_records);
printf("\tLCN of Data Attribute for FILE_MFT: %lld\n",
(long long)vol->mft_lcn);
printf("\tFILE_MFTMirr Size: %d\n", vol->mftmirr_size);
printf("\tLCN of Data Attribute for File_MFTMirr: %lld\n", vol->mftmirr_lcn);
printf("\tLCN of Data Attribute for File_MFTMirr: %lld\n",
(long long)vol->mftmirr_lcn);
printf("\tSize of Attribute Definition Table: %d\n", vol->attrdef_len);
printf("FILE_Bitmap Information \n");
printf("\tFILE_Bitmap MFT Record Number: %lld\n", vol->lcnbmp_ni->mft_no);
printf("\tFILE_Bitmap MFT Record Number: %llu\n",
(unsigned long long)vol->lcnbmp_ni->mft_no);
printf("\tState of FILE_Bitmap Inode: %lu\n", vol->lcnbmp_ni->state);
printf("\tLength of Attribute List: %u\n", vol->lcnbmp_ni->attr_list_size);
printf("\tAttribute List: %s\n", vol->lcnbmp_ni->attr_list);
@ -284,26 +288,30 @@ void ntfs_dump_volume(ntfs_volume *vol)
printf("FILE_Bitmap Data Attribute Information\n");
printf("\tDecompressed Runlist: not done yet\n");
printf("\tBase Inode: %lld\n", vol->lcnbmp_na->ni->mft_no);
printf("\tBase Inode: %llu\n",
(unsigned long long)vol->lcnbmp_na->ni->mft_no);
printf("\tAttribute Types: not done yet\n");
//printf("\tAttribute Name: %s\n", vol->lcnbmp_na->name);
printf("\tAttribute Name Length: %u\n", vol->lcnbmp_na->name_len);
printf("\tAttribute State: %lu\n", vol->lcnbmp_na->state);
printf("\tAttribute Allocated Size: %lld\n", vol->lcnbmp_na->allocated_size);
printf("\tAttribute Data Size: %lld\n", vol->lcnbmp_na->data_size);
printf("\tAttribute Initialized Size: %lld\n", vol->lcnbmp_na->initialized_size);
printf("\tAttribute Compressed Size: %lld\n", vol->lcnbmp_na->compressed_size);
printf("\tCompression Block Size: %u\n", vol->lcnbmp_na->compression_block_size);
printf("\tCompression Block Size Bits: %u\n", vol->lcnbmp_na->compression_block_size_bits);
printf("\tCompression Block Clusters: %u\n", vol->lcnbmp_na->compression_block_clusters);
printf("\tAttribute Allocated Size: %lld\n",
(long long)vol->lcnbmp_na->allocated_size);
printf("\tAttribute Data Size: %lld\n",
(long long)vol->lcnbmp_na->data_size);
printf("\tAttribute Initialized Size: %lld\n",
(long long)vol->lcnbmp_na->initialized_size);
printf("\tAttribute Compressed Size: %lld\n",
(long long)vol->lcnbmp_na->compressed_size);
printf("\tCompression Block Size: %u\n",
vol->lcnbmp_na->compression_block_size);
printf("\tCompression Block Size Bits: %u\n",
vol->lcnbmp_na->compression_block_size_bits);
printf("\tCompression Block Clusters: %u\n",
vol->lcnbmp_na->compression_block_clusters);
//TODO: Still need to add a few more attributes
}
/**
* ntfs_dump_standard_information
*/
@ -336,25 +344,25 @@ void ntfs_dump_standard_information_attr(ntfs_inode *inode)
not been upgraded\n");
}
if (sizeof(STANDARD_INFORMATION) == 72) {
printf("\tMaximum Number of Versions: \t %d \n", le32_to_cpu (standard_attr->maximum_versions));
printf("\tVersion Number: \t\t %d \n", le32_to_cpu (standard_attr->version_number));
printf("\tClass ID: \t\t\t %d \n", le32_to_cpu (standard_attr->class_id));
printf("\tUser ID: \t\t\t %d \n", le32_to_cpu (standard_attr->owner_id));
printf("\tSecurity ID: \t\t\t %d \n", le32_to_cpu (standard_attr->security_id));
printf("\tMaximum Number of Versions: \t %u \n",
le32_to_cpu(standard_attr->maximum_versions));
printf("\tVersion Number: \t\t %u \n",
le32_to_cpu(standard_attr->version_number));
printf("\tClass ID: \t\t\t %u \n",
le32_to_cpu(standard_attr->class_id));
printf("\tUser ID: \t\t\t %u \n",
le32_to_cpu (standard_attr->owner_id));
printf("\tSecurity ID: \t\t\t %u \n",
le32_to_cpu(standard_attr->security_id));
} else {
printf("\tSize of STANDARD_INFORMATION is %u. It should be either 72 or 48, \
something is wrong...\n", sizeof(STANDARD_INFORMATION));
}
else {
printf("\tSize of STANDARD_INFORMATION is %d. It should be either 72 or 48, \
something is wrong...\n",sizeof(STANDARD_INFORMATION));
}
ntfs_attr_put_search_ctx(ctx); //free ctx
}
/**
* ntfs_dump_file_name_attribute
*/
@ -385,10 +393,12 @@ do_next:
printf("Dumping $FILE_NAME (0x30)\n");
//basic stuff about the file
printf("\tFile Name: \t\t %s\n",file_name);
printf("\tFile Name Length: \t %d\n",file_name_attr->file_name_length);
printf("\tAllocated File Size: \t %lld\n", sle64_to_cpu(file_name_attr->allocated_size));
printf("\tReal File Size: \t %lld\n", sle64_to_cpu(file_name_attr->data_size));
printf("\tFile Name: \t\t %s\n", file_name);
printf("\tFile Name Length: \t %d\n", file_name_attr->file_name_length);
printf("\tAllocated File Size: \t %lld\n",
(long long)sle64_to_cpu(file_name_attr->allocated_size));
printf("\tReal File Size: \t %lld\n",
(long long)sle64_to_cpu(file_name_attr->data_size));
//time conversion stuff
if (!opts.notime) {

View File

@ -260,7 +260,8 @@ int list_entry(ntfsls_dirent *dirent, const uchar_t *name,
if (!opts.inode)
printf("%s\n", filename);
else
printf("%7lld %s\n", MREF(mref), filename);
printf("%7llu %s\n", (unsigned long long)MREF(mref),
filename);
result = 0;
} else {
s64 filesize = 0;
@ -304,10 +305,13 @@ int list_entry(ntfsls_dirent *dirent, const uchar_t *name,
}
if (opts.inode)
printf("%7lld %8lld %s %s\n", MREF(mref), filesize,
t_buf + 4, filename);
printf("%7llu %8lld %s %s\n",
(unsigned long long)MREF(mref),
(long long)filesize, t_buf + 4,
filename);
else
printf("%8lld %s %s\n", filesize, t_buf + 4, filename);
printf("%8lld %s %s\n", (long long)filesize, t_buf + 4,
filename);
result = 0;
release:

View File

@ -511,9 +511,11 @@ void dump_non_resident_attr(ATTR_RECORD *a)
int i;
l = sle64_to_cpu(a->lowest_vcn);
printf("Lowest VCN = %lli (0x%llx)\n", l, l);
printf("Lowest VCN = %lli (0x%llx)\n", (long long)l,
(unsigned long long)l);
l = sle64_to_cpu(a->highest_vcn);
printf("Highest VCN = %lli (0x%llx)\n", l, l);
printf("Highest VCN = %lli (0x%llx)\n", (long long)l,
(unsigned long long)l);
printf("Mapping pairs array offset = 0x%x\n",
le16_to_cpu(a->mapping_pairs_offset));
printf("Compression unit = 0x%x: %sCOMPRESSED\n", a->compression_unit,
@ -522,14 +524,18 @@ void dump_non_resident_attr(ATTR_RECORD *a)
printf("Attribute is not the first extent. The following "
"sizes are meaningless:\n");
l = sle64_to_cpu(a->allocated_size);
printf("Allocated size = %lli (0x%llx)\n", l, l);
printf("Allocated size = %lli (0x%llx)\n", (long long)l,
(unsigned long long)l);
l = sle64_to_cpu(a->data_size);
printf("Data size = %lli (0x%llx)\n", l, l);
printf("Data size = %lli (0x%llx)\n", (long long)l,
(unsigned long long)l);
l = sle64_to_cpu(a->initialized_size);
printf("Initialized size = %lli (0x%llx)\n", l, l);
printf("Initialized size = %lli (0x%llx)\n", (long long)l,
(unsigned long long)l);
if (a->flags & ATTR_COMPRESSION_MASK) {
l = sle64_to_cpu(a->compressed_size);
printf("Compressed size = %lli (0x%llx)\n", l, l);
printf("Compressed size = %lli (0x%llx)\n", (long long)l,
(unsigned long long)l);
}
i = le16_to_cpu(a->mapping_pairs_offset);
dump_mapping_pairs_array((char*)a + i, le32_to_cpu(a->length) - i);
@ -545,7 +551,7 @@ void dump_attr_record(MFT_RECORD *m, ATTR_RECORD *a)
int i;
printf("-- Beginning dump of attribute record at offset 0x%x. --\n",
(u8*)a - (u8*)m);
(unsigned)((u8*)a - (u8*)m));
if (a->type == AT_END) {
printf("Attribute type = 0x%x ($END)\n", le32_to_cpu(AT_END));
u = le32_to_cpu(a->length);
@ -648,7 +654,8 @@ void dump_mft_record(MFT_RECORD *m)
u = le16_to_cpu(m->usa_ofs);
printf("Update sequence array offset = %u (0x%x)\n", u, u);
printf("Update sequence array size = %u\n", le16_to_cpu(m->usa_count));
printf("$LogFile sequence number (lsn) = %llu\n", le64_to_cpu(m->lsn));
printf("$LogFile sequence number (lsn) = %llu\n",
(unsigned long long)le64_to_cpu(m->lsn));
printf("Sequence number = %u\n", le16_to_cpu(m->sequence_number));
printf("Reference (hard link) count = %u\n",
le16_to_cpu(m->link_count));
@ -668,7 +675,8 @@ void dump_mft_record(MFT_RECORD *m)
printf("Bytes allocated = %u (0x%x)\n", u, u);
r = le64_to_cpu(m->base_mft_record);
printf("Base mft record reference:\n\tMft record number = %llu\n\t"
"Sequence number = %u\n", MREF(r), MSEQNO(r));
"Sequence number = %u\n",
(unsigned long long)MREF(r), MSEQNO(r));
printf("Next attribute instance = %u\n",
le16_to_cpu(m->next_attr_instance));
a = (ATTR_RECORD*)((char*)m + le16_to_cpu(m->attrs_offset));

View File

@ -50,10 +50,10 @@ struct options {
int verbose; /* Extra output */
int force; /* Override common sense */
time_t since; /* Since this time */
long long size_begin; /* Range for file size */
long long size_end;
long long mft_begin; /* Range for mft copy */
long long mft_end;
s64 size_begin; /* Range for file size */
s64 size_end;
s64 mft_begin; /* Range for mft copy */
s64 mft_end;
};
struct filename {