9os

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README | LICENSE

commit 645c3b5c8672a102a1e58ad1fe6c285351d4ff7c
parent 44da3fe0e987be3f32ff86ece4b4e0c0add8b114
Author: Dimitris Papastamos <dimitris.papastamos@arm.com>
Date:   Mon, 18 Feb 2019 14:30:23 +0000

Break dependency between libk and lib9p

Change-Id: Iaa98dc6b3bcf44b2f95ac8b9b3c35f7213fb6ac6
Signed-off-by: Dimitris Papastamos <dimitris.papastamos@arm.com>

Diffstat:
Minclude/libk.h | 14--------------
Minclude/rcode/9p.h | 14++++++++++++++
Mscripts/rules.mk | 2+-
Msrc/lib9p/Makefile | 4+++-
Msrc/libk/Makefile | 3---
Dsrc/libk/kclosedir.c | 8--------
Dsrc/libk/kopendir.c | 20--------------------
Dsrc/libk/kreaddir.c | 21---------------------
Msrc/romfw/dlang.c | 6+++---
9 files changed, 21 insertions(+), 71 deletions(-)

diff --git a/include/libk.h b/include/libk.h @@ -5,16 +5,6 @@ #include "features.h" -struct dirent { - char d_name[NAMELEN]; -}; - -typedef struct { - int fd; - unsigned char buf[DIRLEN]; - struct dirent ent; -} DIR; - extern int kprint(const char *fmt, ...) KPRINTFMT; extern int ksnprint(char *str, size_t len, const char *fmt, ...) KSNPRINTFMT; extern char *kgets(char *s, int n); @@ -24,7 +14,3 @@ extern int kputs(const char *s); extern int kvprint(const char *fmt, va_list va); extern void kerror(const char *s); extern int putenv(char *name); - -extern DIR *kopendir(DIR *dir, const char *name); -extern struct dirent *kreaddir(DIR *dir); -extern int kclosedir(DIR *dir); diff --git a/include/rcode/9p.h b/include/rcode/9p.h @@ -19,7 +19,21 @@ struct dir { Qid qid; }; +struct dirent { + char d_name[NAMELEN]; +}; + +typedef struct { + int fd; + unsigned char buf[DIRLEN]; + struct dirent ent; +} DIR; + extern int dirtop9(Dir *dp, unsigned char *buf, int n); extern int p9todir(Dir *dp, unsigned char *buf, int n); +extern DIR *p9opendir(DIR *dir, const char *name); +extern struct dirent *p9readdir(DIR *dir); +extern int p9closedir(DIR *dir); + #endif diff --git a/scripts/rules.mk b/scripts/rules.mk @@ -12,7 +12,7 @@ SRCDIR = $(PROJECTDIR)/src SCRIPTDIR = $(PROJECTDIR)/scripts CONFDIR = $(PROJECTDIR)/config INCLUDES = -I$(INCDIR) -I$(INCDIR)/bits/$(ARCH)/ -I$(INCDIR)/bits/$(SYS) -LIBS = -lhdl -lrmu -lk -l9p -lc +LIBS = -lhdl -lrmu -l9p -lk -lc DRIVERS = $(PROJECTDIR)/drivers/builtin.o ENVIRON = $(SCRIPTDIR)/env.sh diff --git a/src/lib9p/Makefile b/src/lib9p/Makefile @@ -8,7 +8,9 @@ OBJS = tobytes.o \ frombytes.o \ fromstring.o \ p9todir.o \ - + p9opendir.o \ + p9readdir.o \ + p9closedir.o \ TARGET = $(LIBDIR)/lib9p.a diff --git a/src/libk/Makefile b/src/libk/Makefile @@ -12,9 +12,6 @@ OBJS = doprnt.o \ kgets.o \ kerror.o \ putenv-$(MODE).o \ - kopendir.o \ - kreaddir.o \ - kclosedir.o \ __assert.o \ TARGET = $(LIBDIR)/libk.a diff --git a/src/libk/kclosedir.c b/src/libk/kclosedir.c @@ -1,8 +0,0 @@ -#include <libk.h> -#include <rcode/rcode.h> - -int -kclosedir(DIR *dir) -{ - return close(dir->fd); -} diff --git a/src/libk/kopendir.c b/src/libk/kopendir.c @@ -1,20 +0,0 @@ -#include <errno.h> - -#include <libk.h> -#include <rcode/rcode.h> - -DIR * -kopendir(DIR *dir, const char *name) -{ - int fd; - - if ((fd = open(name, O_READ)) < 0) { - errno = ENOENT; - return NULL; - } - dir->fd = fd; - - /* TODO: check that it is actually a directory */ - - return dir; -} diff --git a/src/libk/kreaddir.c b/src/libk/kreaddir.c @@ -1,21 +0,0 @@ -#include <string.h> - -#include <libk.h> -#include <rcode/rcode.h> - -struct dirent * -kreaddir(DIR *dir) -{ - int n; - Dir dentry; - - if ((n = read(dir->fd, dir->buf, sizeof(dir->buf))) < 0) - return NULL; - - if (p9todir(&dentry, dir->buf, n) < 0) - return NULL; - - strcpy(dir->ent.d_name, dentry.name); - - return &dir->ent; -} diff --git a/src/romfw/dlang.c b/src/romfw/dlang.c @@ -243,13 +243,13 @@ do_ls(const struct cmd *cmd, struct args *args) DIR dir; struct dirent *d; - if (!kopendir(&dir, args->argv[1])) + if (!p9opendir(&dir, args->argv[1])) return -1; - while ((d = kreaddir(&dir)) != NULL) + while ((d = p9readdir(&dir)) != NULL) kprint(PREFIX "%s\n", d->d_name); - if (kclosedir(&dir)) + if (p9closedir(&dir)) return -1; return 0;