Changes by: antona
Update of /cvsroot/linux-ntfs/linux-ntfs/libntfs
In directory usw-pr-cvs1:/tmp/cvs-serv5121/libntfs
Modified Files:
disk_io.c mft.c volume.c
Log Message:
Almost fixed compilaton. Remember to declare a struct type with
struct NAME { declaration }; rather than the bogus struct { declaration NAME };
then can use typedef NAME othername; on a forward declaration of NAME
(struct NAME;) and all is fine...
Index: disk_io.c
===================================================================
RCS file: /cvsroot/linux-ntfs/linux-ntfs/libntfs/disk_io.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -U2 -r1.11 -r1.12
--- disk_io.c 2001/04/11 11:49:16 1.11
+++ disk_io.c 2001/04/11 14:29:12 1.12
@@ -278,5 +278,5 @@
* NOTE: @mrec has to be at least of size @count * vol->mft_record_size.
*/
-int get_mft_records(const ntfs_volume *vol, MFT_RECORD *mrec,
+int get_mft_records(const ntfs_volume *vol, const MFT_RECORD *mrec,
const MFT_REF *mref, const int count)
{
@@ -347,5 +347,5 @@
* NOTE: @mrec has to be at least of size vol->mft_record_size.
*/
-__inline__ int get_mft_record(const ntfs_volume *vol, MFT_RECORD *mrec,
+__inline__ int get_mft_record(const ntfs_volume *vol, const MFT_RECORD *mrec,
const MFT_REF *mref)
{
Index: mft.c
===================================================================
RCS file: /cvsroot/linux-ntfs/linux-ntfs/libntfs/mft.c,v
retrieving revision 1.8
retrieving revision 1.9
diff -U2 -r1.8 -r1.9
--- mft.c 2001/04/11 11:49:16 1.8
+++ mft.c 2001/04/11 14:29:12 1.9
@@ -22,6 +22,8 @@
*/
+#include <stdlib.h>
+#include <stdio.h>
+#include <errno.h>
#include <linux/types.h>
-#include <linux/errno.h>
#include <linux/bitops.h>
@@ -68,5 +70,5 @@
} else {
lcn = vcn_to_lcn(vol->mft_runlist,
- m * vol->clusters_per_mft_record);
+ mref * vol->clusters_per_mft_record);
/* FIXME: Change "*" above to "<<"! */
ofs = 0;
@@ -118,6 +120,6 @@
return NULL;
memset(me, 0, sizeof(mft_entry));
- INIT_LIST_HEAD(me->m_list);
- INIT_LIST_HEAD(me->m_dirty_list);
+ INIT_LIST_HEAD(&me->m_list);
+ INIT_LIST_HEAD(&me->m_dirty_list);
return me;
}
@@ -125,5 +127,5 @@
__inline__ int __free_mft_entry(mft_entry *me)
{
- if (me->count || MftEntryDirty(me) || MftEntryMapped(me))
+ if (me->m_count || MftEntryDirty(me) || MftEntryMapped(me))
return -EBUSY;
free(me);
@@ -138,9 +140,11 @@
MFT_RECORD *mrec;
int i;
+ ntfs_volume *vol;
if (MftEntryMapped(me))
return 0;
- mref = (VCN)MREF(*me->m_ref);
+ mref = (VCN)MREF(me->m_ref);
mrec = (MFT_RECORD*)malloc(vol->mft_record_size);
+ vol = me->m_vol;
if (!mrec)
goto err_ret_errno;
@@ -213,36 +217,35 @@
int insert_mft_entry(ntfs_volume *vol, mft_entry **me, const MFT_REF mref,
- const MFT_RECORD *mrec, const BOOL dirty,
- const ntfs_file *f)
+ MFT_RECORD *mrec, const BOOL dirty, ntfs_file *f)
{
struct list_head *tmp;
- mft_entry *m;
+ mft_entry *ment, *m;
int i;
if (!*me && !__allocate_mft_entry())
return -errno;
- *(__u64*)&me->m_ref = mref;
- me->m_vol = vol;
+ ment = *me;
+ ment->m_ref = mref;
+ ment->m_vol = vol;
if (mrec) {
- me->m_rec = mrec;
- SetMftEntryMapped(me);
+ ment->m_rec = mrec;
+ SetMftEntryMapped(ment);
if (dirty)
- SetMftEntryDirty(me);
+ SetMftEntryDirty(ment);
} else
- __map_mft_entry(me);
+ __map_mft_entry(ment);
list_for_each(tmp, &vol->mft_entries) {
m = list_entry(tmp, mft_entry, m_list);
- if (MREF(m->m_ref) < MREF(me->m_ref))
+ if (MREF(m->m_ref) < MREF(ment->m_ref))
continue;
- if (MREF(m->m_ref) > MREF(me->m_ref)) {
+ if (MREF(m->m_ref) > MREF(ment->m_ref)) {
/* Insert the mft entry in the correct position. */
- __list_add(&me->m_list, &tmp->m_list->prev,
- &tmp->m_list);
+ __list_add(&ment->m_list, tmp->prev, tmp);
break;
}
fprintf(stderr, "Linux-NTFS: BUG! insert_mft_entry(): mft "
"entry already present in volume.\n");
- if (MSEQNO(m->m_ref) != MSEQNO(me->m_ref) &&
- MSEQNO(m->m_ref) != 0 && MSEQNO(me->m_ref) != 0)
+ if (MSEQNO(m->m_ref) != MSEQNO(ment->m_ref) &&
+ MSEQNO(m->m_ref) != 0 && MSEQNO(ment->m_ref) != 0)
fprintf(stderr, "On top of this, the sequence numbers "
"are mismatched.\n");
@@ -250,14 +253,14 @@
}
vol->nr_mft_entries++;
- me->m_file = f;
+ ment->m_file = f;
if (f)
- me->m_file++;
- if (!MftEntryDirty(me))
+ ment->m_count++;
+ if (!MftEntryDirty(ment))
return 0;
- list_add_tail(&me->m_dirty_list, &vol->dirty_mft_entries);
+ list_add_tail(&ment->m_dirty_list, &vol->dirty_mft_entries);
vol->nr_dirty_mft_entries++;
return 0;
try_to_clean_ret:
- return flush_mft_entry(me);
+ return flush_mft_entry(ment);
}
@@ -273,5 +276,5 @@
if (me->m_file && (err = __remove_mft_entry_from_ntfs_file(me)))
return err < 0 ? err : -EBUSY;
- if (me->count)
+ if (me->m_count)
return -EBUSY;
free(me->m_rec);
@@ -289,5 +292,5 @@
return NULL;
memset(f, 0, sizeof(ntfs_file));
- INIT_LIST_HEAD(f->f_list);
+ INIT_LIST_HEAD(&f->f_list);
return f;
}
@@ -304,5 +307,5 @@
{
int i;
- char *t;
+ void *t;
mft_entry *m;
@@ -316,8 +319,8 @@
t = realloc(f->m_refs, f->nr_m_refs * sizeof(MFT_REF));
if (t)
- f->m_refs = (MFT_REF*)t;
+ f->m_refs = t;
t = realloc(f->m_entries, f->nr_m_refs * sizeof(mft_entry*));
if (t)
- f->m_entries = (mft_entry**)t;
+ f->m_entries = t;
}
return 0;
@@ -398,8 +401,8 @@
t = realloc(f->m_refs, f->nr_m_refs * sizeof(MFT_REF));
if (t)
- f->m_refs = (MFT_REF*)t;
+ f->m_refs = t;
t = realloc(f->m_entries, f->nr_m_refs * sizeof(mft_entry*));
if (t)
- f->m_entries = (mft_entry*)t;
+ f->m_entries = t;
goto finished;
}
@@ -413,5 +416,5 @@
list_del(&f->f_list);
f->f_vol->nr_closed_files--;
- free(f->m_refs)
+ free(f->m_refs);
free(f->m_entries);
free(f);
Index: volume.c
===================================================================
RCS file: /cvsroot/linux-ntfs/linux-ntfs/libntfs/volume.c,v
retrieving revision 1.14
retrieving revision 1.15
diff -U2 -r1.14 -r1.15
--- volume.c 2001/04/11 11:49:16 1.14
+++ volume.c 2001/04/11 14:29:12 1.15
@@ -206,9 +206,9 @@
#endif
/* Initialize files and mft records lists and associated variables. */
- INIT_LIST_HEAD(vol->open_files);
- INIT_LIST_HEAD(vol->closed_files);
+ INIT_LIST_HEAD(&vol->open_files);
+ INIT_LIST_HEAD(&vol->closed_files);
vol->max_files = 1000;
- INIT_LIST_HEAD(vol->mft_entries);
- INIT_LIST_HEAD(vol->dirty_mft_entries);
+ INIT_LIST_HEAD(&vol->mft_entries);
+ INIT_LIST_HEAD(&vol->dirty_mft_entries);
/* Start with $Mft. */
printf("Loading $Mft... ");
|