Mercurial > hg > Members > menikon > CbC_xv6
changeset 232:a7fc5edea925
tweak
author | menikon |
---|---|
date | Sat, 25 Jan 2020 22:40:03 +0900 |
parents | 08cd784ddbc0 |
children | 08a367c3124a |
files | src/impl/file_impl_inode.cbc src/impl/inode_impl.h src/interface/file.dg |
diffstat | 3 files changed, 13 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/src/impl/file_impl_inode.cbc Sat Jan 25 20:37:53 2020 +0900 +++ b/src/impl/file_impl_inode.cbc Sat Jan 25 22:40:03 2020 +0900 @@ -1,6 +1,6 @@ #include "../../context.h" -#interface "file.h" -#interface "inode_impl.h" +#interface "file.dg" + // ---- // typedef struct inode_impl<Impl, Isa> impl file { @@ -14,11 +14,11 @@ file->file = (union Data*)inode_impl; inode_impl->st = NULL; inode_impl->ip = NULL; - file->statinode = C_statinode_impl; + file->stat = C_statinode; inode_impl->cbc_statinode = C_cbc_statinode_impl; - file->read = C_readinode_impl; - file->write = C_writeinode_impl; - file->close = C_closeinode_impl; + file->read = C_readinode; + file->write = C_writeinode; + file->close = C_closeinode; return file; } __code statinode(struct inode* ip, struct stat* st, __code next(int ret, ...)) { //:skip @@ -26,7 +26,7 @@ goto cbc_statinode(ip, st, next(ret, ...)); } -__code cbc_statinode((struct inode* ip, struct stat* st, __code next(int ret, ...)){ +__code cbc_statinode_impl(struct inode* ip, struct stat* st, __code next(int ret, ...)){ goto next(...); }
--- a/src/impl/inode_impl.h Sat Jan 25 20:37:53 2020 +0900 +++ b/src/impl/inode_impl.h Sat Jan 25 22:40:03 2020 +0900 @@ -2,9 +2,10 @@ struct inode* ip; struct stat* st; +int ret; -__code cbc_statinode((struct inode* ip, struct stat* st, __code next(int ret, ...)); +__code cbc_statinode(struct inode* ip, struct stat* st, __code next(int ret, ...)); -__code next(...); +//__code next(...); } inode_impl;
--- a/src/interface/file.dg Sat Jan 25 20:37:53 2020 +0900 +++ b/src/interface/file.dg Sat Jan 25 22:40:03 2020 +0900 @@ -1,5 +1,6 @@ typedef struct file <Impl> { union Data* file; + union Data* inode_impl; enum { FD_NONE, FD_PIPE, FD_INODE } type; int ref; // reference count char readable; @@ -11,7 +12,9 @@ char* addr; int n; int fd; + __code stat(struct inode* ip, struct stat* st, __code next(...)); __code read(Impl* file, char* addr, __code next(...)); __code write(Impl* file, char* addr, int n, __code next(...)); __code close(Impl* file,int fd, __code next(...)); + __code next(...); } file;