From: Alan Cox Date: Fri, 22 May 2015 14:38:19 +0000 (+0100) Subject: filesys: turn i_ref into a #define X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=7ccaad3de07a2b7c7f66d52801fde4ffcf45c804;p=FUZIX.git filesys: turn i_ref into a #define This saves us 67 bytes! --- diff --git a/Kernel/filesys.c b/Kernel/filesys.c index 4ed7b6b7..09879f5c 100644 --- a/Kernel/filesys.c +++ b/Kernel/filesys.c @@ -50,7 +50,7 @@ inoptr kn_open(char *namep, inoptr *parent) else wd = udata.u_cwd; - i_ref(ninode = wd); + ninode = i_ref(wd); i_ref(ninode); for(;;) @@ -728,16 +728,6 @@ int8_t uf_alloc(void) } - -/* I_ref increases the reference count of the given inode table entry. -*/ - -void i_ref(inoptr ino) -{ - ino->c_refs++; -} - - /* I_deref decreases the reference count of an inode, and frees it from * the table if there are no more references to it. If it also has no * links, the inode itself and its blocks(if not a device) is freed. diff --git a/Kernel/include/kernel.h b/Kernel/include/kernel.h index 133cf159..ab32dc08 100644 --- a/Kernel/include/kernel.h +++ b/Kernel/include/kernel.h @@ -681,7 +681,8 @@ extern void oft_deref(int8_t of); extern int8_t uf_alloc(void); /* returns index of slot, or -1 on failure */ extern int8_t uf_alloc_n(int n); -extern void i_ref(inoptr ino); +#define i_ref(ino) ((ino)->c_refs++, (ino)) +//extern void i_ref(inoptr ino); extern void i_deref(inoptr ino); extern void wr_inode(inoptr ino); extern bool isdevice(inoptr ino); diff --git a/Kernel/start.c b/Kernel/start.c index ee8f6eec..5085917b 100644 --- a/Kernel/start.c +++ b/Kernel/start.c @@ -302,8 +302,8 @@ void fuzix_main(void) kputs("OK\n"); - i_ref(udata.u_cwd = root); - i_ref(udata.u_root = root); + udata.u_cwd = i_ref(root); + udata.u_root = i_ref(root); rdtime32(&udata.u_time); exec_or_die(); }