diff options
| author | Michal Idziorek <m.i@gmx.at> | 2014-10-22 14:06:04 +0200 |
|---|---|---|
| committer | Michal Idziorek <m.i@gmx.at> | 2014-10-22 14:06:04 +0200 |
| commit | 95450710a8b8290a110686d78c2357d3920bcda5 (patch) | |
| tree | 4e3ef7556289bb1c18bce0c6e73235d497364a4d /fs/fs.c | |
| parent | 17d28200533f6a02d08cee2bf5352036bea92762 (diff) | |
working on filesys and readdir syscall
Diffstat (limited to 'fs/fs.c')
| -rw-r--r-- | fs/fs.c | 40 |
1 files changed, 17 insertions, 23 deletions
@@ -1,32 +1,26 @@ // abstraction layer for filesystems #include <lib/int/stdint.h> - -enum FS_FILE_TYPE{ - - FS_FILE_TYPE_DIR = 1, - FS_FILE_TYPE_FILE = 2 -}; - -typedef struct fs_file_struct -{ - int type; - char name[256]; - -}fs_file; - -int fs_list(char *path, fs_file *list); -{ - -} - -int fs_read(char *path, uint8_t *buf) +#include "fs.h" +// +// returns number of entries in the directory specified by name. +// fills 0-max into *dirs +int fs_readdir(const char *name,fs_dirent *dirs,int max) { + int testdata=5; -} + int inodes[]={13,14,15,16,17}; + char names[][256]={"dupa","test","drei","vier","funf"}; + char type[]={2,2,1,2,1}; -int fs_mount(char *dev, char *dir) -{ + for(int i=0;i<5;i++) + { + dirs[i].inode=inodes[i]; + for(int j=0;j<256;j++) + dirs[i].name[j]=names[i][j]; + dirs[i].type=type[i]; + } + return 5; } |
