summaryrefslogtreecommitdiff
path: root/file.h
diff options
context:
space:
mode:
Diffstat (limited to 'file.h')
-rw-r--r--file.h83
1 files changed, 83 insertions, 0 deletions
diff --git a/file.h b/file.h
new file mode 100644
index 00000000..f5dae8ea
--- /dev/null
+++ b/file.h
@@ -0,0 +1,83 @@
+/**
+ * Navit, a modular navigation system.
+ * Copyright (C) 2005-2008 Navit Team
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Library General Public License
+ * version 2 as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU Library General Public License for more details.
+ *
+ * You should have received a copy of the GNU Library General Public
+ * License along with this program; if not, write to the
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+ * Boston, MA 02110-1301, USA.
+ */
+
+#ifndef NAVIT_FILE_H
+#define NAVIT_FILE_H
+
+#ifndef PATH_MAX
+#define PATH_MAX 4096
+#endif
+#ifndef __CEGCC__
+#include <time.h>
+#endif
+#include "param.h"
+
+struct file {
+ struct file *next;
+ unsigned char *begin;
+ unsigned char *end;
+ long long size;
+ int name_id;
+ int fd;
+#ifndef __CEGCC__
+ time_t mtime;
+ time_t ctime;
+ int version;
+#endif
+#if defined(_WIN32) || defined(__CEGCC__)
+ long map_handle;
+ long map_file;
+#endif
+ char *name;
+};
+
+/* prototypes */
+struct file;
+struct file_wordexp;
+struct param_list;
+struct file *file_create(char *name);
+int file_is_dir(char *name);
+int file_size(struct file *file);
+int file_mkdir(char *name, int pflag);
+int file_mmap(struct file *file);
+unsigned char *file_data_read(struct file *file, long long offset, int size);
+unsigned char *file_data_read_all(struct file *file);
+int file_get_contents(char *name, unsigned char **buffer, int *size);
+unsigned char *file_data_read_compressed(struct file *file, long long offset, int size, int size_uncomp);
+void file_data_free(struct file *file, unsigned char *data);
+int file_exists(char *name);
+void file_remap_readonly(struct file *f);
+void file_unmap(struct file *f);
+void *file_opendir(char *dir);
+char *file_readdir(void *hnd);
+void file_closedir(void *hnd);
+struct file *file_create_caseinsensitive(char *name);
+void file_destroy(struct file *f);
+struct file_wordexp *file_wordexp_new(const char *pattern);
+int file_wordexp_get_count(struct file_wordexp *wexp);
+char **file_wordexp_get_array(struct file_wordexp *wexp);
+void file_wordexp_destroy(struct file_wordexp *wexp);
+int file_get_param(struct file *file, struct param_list *param, int count);
+int file_version(struct file *file, int byname);
+void *file_get_os_handle(struct file *file);
+void file_init(void);
+/* end of prototypes */
+
+#endif
+