~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

TOMOYO Linux Cross Reference
Linux/Documentation/filesystems/omfs.rst

Version: ~ [ linux-6.11.5 ] ~ [ linux-6.10.14 ] ~ [ linux-6.9.12 ] ~ [ linux-6.8.12 ] ~ [ linux-6.7.12 ] ~ [ linux-6.6.58 ] ~ [ linux-6.5.13 ] ~ [ linux-6.4.16 ] ~ [ linux-6.3.13 ] ~ [ linux-6.2.16 ] ~ [ linux-6.1.114 ] ~ [ linux-6.0.19 ] ~ [ linux-5.19.17 ] ~ [ linux-5.18.19 ] ~ [ linux-5.17.15 ] ~ [ linux-5.16.20 ] ~ [ linux-5.15.169 ] ~ [ linux-5.14.21 ] ~ [ linux-5.13.19 ] ~ [ linux-5.12.19 ] ~ [ linux-5.11.22 ] ~ [ linux-5.10.228 ] ~ [ linux-5.9.16 ] ~ [ linux-5.8.18 ] ~ [ linux-5.7.19 ] ~ [ linux-5.6.19 ] ~ [ linux-5.5.19 ] ~ [ linux-5.4.284 ] ~ [ linux-5.3.18 ] ~ [ linux-5.2.21 ] ~ [ linux-5.1.21 ] ~ [ linux-5.0.21 ] ~ [ linux-4.20.17 ] ~ [ linux-4.19.322 ] ~ [ linux-4.18.20 ] ~ [ linux-4.17.19 ] ~ [ linux-4.16.18 ] ~ [ linux-4.15.18 ] ~ [ linux-4.14.336 ] ~ [ linux-4.13.16 ] ~ [ linux-4.12.14 ] ~ [ linux-4.11.12 ] ~ [ linux-4.10.17 ] ~ [ linux-4.9.337 ] ~ [ linux-4.4.302 ] ~ [ linux-3.10.108 ] ~ [ linux-2.6.32.71 ] ~ [ linux-2.6.0 ] ~ [ linux-2.4.37.11 ] ~ [ unix-v6-master ] ~ [ ccs-tools-1.8.9 ] ~ [ policy-sample ] ~
Architecture: ~ [ i386 ] ~ [ alpha ] ~ [ m68k ] ~ [ mips ] ~ [ ppc ] ~ [ sparc ] ~ [ sparc64 ] ~

Diff markup

Differences between /Documentation/filesystems/omfs.rst (Version linux-6.11.5) and /Documentation/filesystems/omfs.rst (Version linux-4.17.19)


  1 .. SPDX-License-Identifier: GPL-2.0               
  2                                                   
  3 ================================                  
  4 Optimized MPEG Filesystem (OMFS)                  
  5 ================================                  
  6                                                   
  7 Overview                                          
  8 ========                                          
  9                                                   
 10 OMFS is a filesystem created by SonicBlue for     
 11 and Rio Karma MP3 player.  The filesystem is e    
 12 block sizes from 2k to 8k, with hash-based dir    
 13 filesystem driver may be used to read and writ    
 14 devices.                                          
 15                                                   
 16 Note, it is not recommended that this FS be us    
 17 filesystem for your own streaming media device    
 18 will likely perform better.                       
 19                                                   
 20 More information is available at:                 
 21                                                   
 22     http://linux-karma.sf.net/                    
 23                                                   
 24 Various utilities, including mkomfs and omfsck    
 25 omfsprogs, available at:                          
 26                                                   
 27     https://bobcopeland.com/karma/                
 28                                                   
 29 Instructions are included in its README.          
 30                                                   
 31 Options                                           
 32 =======                                           
 33                                                   
 34 OMFS supports the following mount-time options    
 35                                                   
 36     ============   ===========================    
 37     uid=n          make all files owned by spe    
 38     gid=n          make all files owned by spe    
 39     umask=xxx      set permission umask to xxx    
 40     fmask=xxx      set umask to xxx for files     
 41     dmask=xxx      set umask to xxx for direct    
 42     ============   ===========================    
 43                                                   
 44 Disk format                                       
 45 ===========                                       
 46                                                   
 47 OMFS discriminates between "sysblocks" and nor    
 48 group consists of super block information, fil    
 49 and extents.  Each sysblock has a header conta    
 50 sysblock, and may be mirrored in successive bl    
 51 have a smaller size than a data block, but sin    
 52 same 64-bit block number, any remaining space     
 53 unused.                                           
 54                                                   
 55 Sysblock header information::                     
 56                                                   
 57     struct omfs_header {                          
 58             __be64 h_self;                  /*    
 59             __be32 h_body_size;             /*    
 60             __be16 h_crc;                   /*    
 61             char h_fill1[2];                      
 62             u8 h_version;                   /*    
 63             char h_type;                    /*    
 64             u8 h_magic;                     /*    
 65             u8 h_check_xor;                 /*    
 66             __be32 h_fill2;                       
 67     };                                            
 68                                                   
 69 Files and directories are both represented by     
 70                                                   
 71     struct omfs_inode {                           
 72             struct omfs_header i_head;      /*    
 73             __be64 i_parent;                /*    
 74             __be64 i_sibling;               /*    
 75             __be64 i_ctime;                 /*    
 76             char i_fill1[35];                     
 77             char i_type;                    /*    
 78             __be32 i_fill2;                       
 79             char i_fill3[64];                     
 80             char i_name[OMFS_NAMELEN];      /*    
 81             __be64 i_size;                  /*    
 82     };                                            
 83                                                   
 84 Directories in OMFS are implemented as a large    
 85 hashed then prepended into the bucket list beg    
 86 Lookup requires hashing the filename, then see    
 87 until a match is found on i_name.  Empty bucke    
 88 pointers with all-1s (~0).                        
 89                                                   
 90 A file is an omfs_inode structure followed by     
 91 OMFS_EXTENT_START::                               
 92                                                   
 93     struct omfs_extent_entry {                    
 94             __be64 e_cluster;               /*    
 95             __be64 e_blocks;                /*    
 96     };                                            
 97                                                   
 98     struct omfs_extent {                          
 99             __be64 e_next;                  /*    
100             __be32 e_extent_count;          /*    
101             __be32 e_fill;                        
102             struct omfs_extent_entry e_entry;     
103     };                                            
104                                                   
105 Each extent holds the block offset followed by    
106 the extent.  The final extent in each table is    
107 being ~0 and e_blocks being ones'-complement o    
108 in the table.                                     
109                                                   
110 If this table overflows, a continuation inode     
111 e_next.  These have a header but lack the rest    
112                                                   
                                                      

~ [ source navigation ] ~ [ diff markup ] ~ [ identifier search ] ~

kernel.org | git.kernel.org | LWN.net | Project Home | SVN repository | Mail admin

Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.

sflogo.php