[OpenBIOS] r402 - ofw/fs/jffs2

svn at openbios.org svn at openbios.org
Sat May 19 04:01:40 CEST 2007


Author: wmb
Date: 2007-05-19 04:01:40 +0200 (Sat, 19 May 2007)
New Revision: 402

Modified:
   ofw/fs/jffs2/jffs2.fth
Log:
JFFS2 - Reduced the size of the memory dirents somewhat







Modified: ofw/fs/jffs2/jffs2.fth
===================================================================
--- ofw/fs/jffs2/jffs2.fth	2007-05-19 00:46:30 UTC (rev 401)
+++ ofw/fs/jffs2/jffs2.fth	2007-05-19 02:01:40 UTC (rev 402)
@@ -80,18 +80,16 @@
 \ 5 /l* constant /mem-inode
 
 \ Fields within in-memory directory entry data structure.
-\ Based on struct jffs2_sum_dirent_flash, with the
-\ "nodetype" and "totlen" fields replaced by the eblock #.
+\ Based on struct jffs2_sum_dirent_flash, without the
+\ "nodetype", "totlen", and "offset" fields.
 
-: eblock@  ( adr -- eblock# )  0 j@  ;
-: offset@  ( adr -- offset )   1 j@  ;
-: pino@    ( adr -- parent )   2 j@  ;
-: version@ ( adr -- version )  3 j@  ;
-: dirino@  ( adr -- inode )    4 j@  ;
-: ftype@   ( adr -- type )     d# 21 + c@  ;
+: pino@    ( adr -- parent )   0 j@  ;
+: version@ ( adr -- version )  1 j@  ; \ $find-name and insert-dirent
+: dirino@  ( adr -- inode )    2 j@  ;
+: ftype@   ( adr -- type )     d# 13 + c@  ;
 : fname$   ( node-adr -- adr len )
-   dup d# 22 +           ( node-adr name-adr )
-   swap  d# 20 + c@      ( name-adr name-len )
+   dup d# 14 +           ( node-adr name-adr )
+   swap  d# 12 + c@      ( name-adr name-len )
 ;
 
 \ Access fields in per-file raw inode structure - based on
@@ -454,18 +452,16 @@
 \ Summary dirent:  w.nodetype l.totlen l.offset l.pino l.version
 \ l.ino c.nsize c.type name
 : scan-sum-dirent  ( adr -- len )
-   the-eblock#  next-dirent  l!       ( adr )
-
-   6 +                                ( offset-adr )
-   next-dirent la1+                   ( offset-adr dst-adr )
-   over  d# 16 + c@  d# 18 +          ( src dst len )
+   d# 10 +                            ( offset-adr )
+   next-dirent                        ( offset-adr dst-adr )
+   over  d# 12 + c@  d# 14 +          ( src dst len )
    dup >r                             ( src dst len r: len )
    move                               ( )
 
-   r@ la1+  'next-dirent +!           ( offset-adr )
+   r@  'next-dirent +!                ( offset-adr )
 
-   \ 6 is the length of the fields that were skipped, not copied
-   r> 6 +                             ( len )
+   \ 10 is the length of the fields that were skipped, not copied
+   r> d# 10 +                         ( len )
 ;
 
 [ifdef] notdef
@@ -560,8 +556,6 @@
 \ XXX        2dup next-dirent swap move     ( adr len )
    \ 
    next-dirent
-   the-eblock#        l+!
-   over block-buf -   l+!
    over rdpino@       l+!
    over rdversion@    l+!
    over rdinode@      l+!   ( adr iadr' )
@@ -569,7 +563,7 @@
    over rdtype@       c+!   ( adr iadr' )
    over >rdname swap        ( adr str-adr iadr )
    2 pick rdnsize@  move    ( adr )
-   dup rdnsize@  d# 22 +    ( adr dirent-len )
+   dup rdnsize@  d# 14 +    ( adr dirent-len )
 
    'next-dirent +!          ( adr )
 ;
@@ -930,7 +924,7 @@
    dup fname$   space space type  space .ftype
 ;
 
-: +dirent  ( adr -- adr' )     5 la+ dup c@ +  2+  ;
+: +dirent  ( adr -- adr' )     3 la+ dup c@ +  2+  ;
 
 : #dirents  ( -- n )
    0
@@ -942,8 +936,6 @@
 char \ instance value delimiter
 
 create root-dirent
-   0 ,  \ block#
-   0 ,  \ offset
    0 ,  \ pino
    0 ,  \ version
    1 ,  \ ino




More information about the OpenBIOS mailing list