auto import from //depot/cupcake/@135843
diff --git a/tools/atree/files.h b/tools/atree/files.h
new file mode 100644
index 0000000..6480c98
--- /dev/null
+++ b/tools/atree/files.h
@@ -0,0 +1,39 @@
+#ifndef FILES_H
+#define FILES_H
+
+#include <map>
+#include <string>
+#include <vector>
+#include <sys/types.h>
+
+using namespace std;
+
+struct FileRecord
+{
+    string listFile;
+    int listLine;
+
+    string sourceBase;
+    string sourceName;
+    string sourcePath;
+    bool sourceIsDir;
+    time_t sourceMod;
+
+    string outName;
+    string outPath;
+    time_t outMod;
+    bool outIsDir;
+    unsigned int mode;
+};
+
+int read_list_file(const string& filename,
+                   const map<string, string>& variables,
+                   vector<FileRecord>* files,
+                   vector<string>* excludes);
+int locate(FileRecord* rec, const vector<string>& search);
+void stat_out(const string& base, FileRecord* rec);
+string dir_part(const string& filename);
+int list_dir(const FileRecord& rec, const vector<string>& excludes,
+                    vector<FileRecord>* files);
+
+#endif // FILES_H