Updated CFS API to include directory functions, moved functions into macros defined in header file
diff --git a/contiki/lib/cfs.c b/contiki/lib/cfs.c
index f486896..422004b 100644
--- a/contiki/lib/cfs.c
+++ b/contiki/lib/cfs.c
@@ -4,12 +4,13 @@
#include "cfs-service.h"
-static int null_open(char *n, int f) {return -1;}
-static void null_close(int f) {return;}
-static int null_read(int f, char *b, int l) {return -1;}
-static int null_write(int f, char *b, int l) {return -1;}
-static int null_dio_read(char *b, int t, int s) {return -1;}
-static int null_dio_write(char *b, int t, int s) {return -1;}
+static int null_open(const char *n, int f) {return -1;}
+static void null_close(int f) {return;}
+static int null_read(int f, char *b, unsigned int l) {return -1;}
+static int null_write(int f, char *b, unsigned int l) {return -1;}
+static int null_opendir(struct cfs_dir *p, const char *n) {return -1;}
+static int null_readdir(struct cfs_dir *p, struct cfs_dirent *e) {return -1;}
+static int null_closedir(struct cfs_dir *p) {return -1;}
static const struct cfs_service_interface nullinterface =
{
@@ -18,15 +19,16 @@
null_close,
null_read,
null_write,
- null_dio_read,
- null_dio_write
+ null_opendir,
+ null_readdir,
+ null_closedir
};
EK_SERVICE(service, CFS_SERVICE_NAME);
/*---------------------------------------------------------------------------*/
-static struct cfs_service_interface *
-find_service(void)
+struct cfs_service_interface *
+cfs_find_service(void)
{
struct cfs_service_interface *interface;
interface = (struct cfs_service_interface *)ek_service_state(&service);
@@ -38,39 +40,3 @@
}
}
/*---------------------------------------------------------------------------*/
-int
-cfs_open(char *name, int flags)
-{
- find_service()->open(name, flags);
-}
-/*---------------------------------------------------------------------------*/
-void
-cfs_close(int fd)
-{
- find_service()->close(fd);
-}
-/*---------------------------------------------------------------------------*/
-int
-cfs_read(int fd, char *buf, int len)
-{
- find_service()->read(fd, buf, len);
-}
-/*---------------------------------------------------------------------------*/
-int
-cfs_write(int fd, char *buf, int len)
-{
- find_service()->write(fd, buf, len);
-}
-/*---------------------------------------------------------------------------*/
-int
-cfs_dio_read(char *buf, int track, int sector)
-{
- find_service()->dio_read(buf, track, sector);
-}
-/*---------------------------------------------------------------------------*/
-int
-cfs_dio_write(char *buf, int track, int sector)
-{
- find_service()->dio_write(buf, track, sector);
-}
-/*---------------------------------------------------------------------------*/
diff --git a/contiki/lib/cfs.h b/contiki/lib/cfs.h
index 3458353..ec1cb1b 100644
--- a/contiki/lib/cfs.h
+++ b/contiki/lib/cfs.h
@@ -3,12 +3,27 @@
#include "cfs-service.h"
-int cfs_open(char *name, int flags);
+#define CFS_READ 0
+#define CFS_WRITE 1
+int cfs_open(const char *name, int flags);
void cfs_close(int fd);
-int cfs_read(int fd, char *buf, int len);
-int cfs_write(int fd, char *buf, int len);
+int cfs_read(int fd, char *buf, unsigned int len);
+int cfs_write(int fd, char *buf, unsigned int len);
-int cfs_dio_read(char *buf, int track, int sector);
-int cfs_dio_write(char *buf, int track, int sector);
+int cfs_opendir(struct cfs_dir *dirp, const char *name);
+int cfs_readdir(struct cfs_dir *dirp, struct cfs_dirent *dirent);
+int cfs_closedir(struct cfs_dir *dirp);
+
+struct cfs_service_interface *cfs_find_service(void);
+
+#define cfs_open(name, flags) (cfs_find_service()->open(name, flags))
+#define cfs_close(fd) (cfs_find_service()->close(fd))
+#define cfs_read(fd, buf, len) (cfs_find_service()->read(fd, buf, len))
+#define cfs_write(fd, buf, len) (cfs_find_service()->write(fd, buf, len))
+
+#define cfs_opendir(dirp, name) (cfs_find_service()->opendir(dirp, name))
+#define cfs_readdir(dirp, ent) (cfs_find_service()->readdir(dirp, ent))
+#define cfs_closedir(dirp) (cfs_find_service()->closedir(dirp))
+
#endif /* __CFS_H__ */