From 95450710a8b8290a110686d78c2357d3920bcda5 Mon Sep 17 00:00:00 2001 From: Michal Idziorek Date: Wed, 22 Oct 2014 14:06:04 +0200 Subject: working on filesys and readdir syscall --- fs/fs.c | 40 +++++++++++++++++----------------------- 1 file changed, 17 insertions(+), 23 deletions(-) (limited to 'fs/fs.c') diff --git a/fs/fs.c b/fs/fs.c index a213861..85e04ca 100644 --- a/fs/fs.c +++ b/fs/fs.c @@ -1,32 +1,26 @@ // abstraction layer for filesystems #include - -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; } -- cgit v1.2.3