aboutsummaryrefslogtreecommitdiff
path: root/include/base/fs.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/base/fs.h')
-rw-r--r--include/base/fs.h25
1 files changed, 16 insertions, 9 deletions
diff --git a/include/base/fs.h b/include/base/fs.h
index 0c77f3a..bc639f8 100644
--- a/include/base/fs.h
+++ b/include/base/fs.h
@@ -1,5 +1,20 @@
#pragma once
+/* directories */
+typedef sys·DirEntry fs·DirEntry;
+typedef sys·Directory fs·Directory;
+
+int fs·open(char *path, fs·Directory *dir);
+int fs·openfd(int fd, fs·Directory *dir);
+int fs·close(fs·Directory *dir);
+
+int fs·read(fs·Directory *, fs·DirEntry **);
+
+/* small utilities */
+int fs·access(byte *path, int flag);
+byte *fs·dirname(byte *path);
+byte *fs·basename(byte *path);
+
#define iota(x) 1 << (x)
enum
{
@@ -12,9 +27,6 @@ enum
typedef struct fs·Walker fs·Walker;
typedef struct fs·History fs·History;
-typedef sys·DirEntry fs·DirEntry;
-typedef sys·Directory fs·Directory;
-
/* node in filesystem */
// XXX: simplify with our newer code
@@ -26,7 +38,7 @@ struct fs·Walker
fs·History *hist;
struct {
void *data;
- int (*func)(void *data, char *relp, char *absp, struct stat *info);
+ int (*func)(void *data, char *relp, char *absp, sys·Info *info);
};
char *base, *end, path[4096];
};
@@ -34,8 +46,3 @@ struct fs·Walker
int fs·init(fs·Walker *, char *path);
void fs·fini(fs·Walker *);
void fs·walk(fs·Walker *);
-
-/* small utilities */
-int fs·access(byte *path, int flag);
-byte *fs·dirname(byte *path);
-byte *fs·basename(byte *path);