summaryrefslogtreecommitdiffstats
path: root/src/dir.h
diff options
context:
space:
mode:
authorChristophe Grenier <grenier@cgsecurity.org>2008-02-25 13:47:40 +0100
committerChristophe Grenier <grenier@cgsecurity.org>2008-02-25 13:47:40 +0100
commite390547a3f698560ec5bc03deca5956ed03b0e69 (patch)
tree8f096b652ccd898ce89ee96665e5600dfce1d522 /src/dir.h
parent4d4743073f32df4c4c0cc94bc463db1c971a9f14 (diff)
file undelete for FAT filesystem
Diffstat (limited to 'src/dir.h')
-rw-r--r--src/dir.h10
1 files changed, 9 insertions, 1 deletions
diff --git a/src/dir.h b/src/dir.h
index ef3584d..0f13b3f 100644
--- a/src/dir.h
+++ b/src/dir.h
@@ -2,7 +2,7 @@
File: dir.h
- Copyright (C) 2004-2006 Christophe GRENIER <grenier@cgsecurity.org>
+ Copyright (C) 2004-2008 Christophe GRENIER <grenier@cgsecurity.org>
This software is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -26,6 +26,10 @@
#endif
#define INTER_DIR 16
#define DIR_NAME_LEN 255
+#define FLAG_LIST_DELETED 1
+#define FLAG_LIST_MASK12 2
+#define FLAG_LIST_MASK16 4
+
typedef struct dir_data dir_data_t;
typedef struct file_data file_data_t;
struct dir_data
@@ -34,6 +38,7 @@ struct dir_data
char current_directory[DIR_NAME_LEN];
unsigned long int current_inode;
int verbose;
+ unsigned int param;
file_data_t *(*get_dir)(disk_t *disk_car, const partition_t *partition, dir_data_t *dir_data, const unsigned long int first_inode);
int (*copy_file)(disk_t *disk_car, const partition_t *partition, dir_data_t *dir_data, const file_data_t *file);
void (*close)(dir_data_t *dir_data);
@@ -41,12 +46,15 @@ struct dir_data
void *private_dir_data;
};
+#define FILE_STATUS_DELETED 1
+
struct file_data
{
file_data_t *prev;
file_data_t *next;
char name[DIR_NAME_LEN];
struct stat filestat;
+ unsigned int status;
};
int dir_aff_log(const disk_t *disk_car, const partition_t *partition, const dir_data_t *dir_data, const file_data_t*dir_list);