linux-fsdevel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Linux Doc Mailing List <linux-doc@vger.kernel.org>
Cc: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>,
	Jonathan Corbet <corbet@lwn.net>,
	linux-fsdevel@vger.kernel.org, Bob Copeland <me@bobcopeland.com>,
	linux-karma-devel@lists.sourceforge.net
Subject: [PATCH 30/44] docs: filesystems: convert omfs.txt to ReST
Date: Mon, 17 Feb 2020 17:12:16 +0100	[thread overview]
Message-ID: <0c125c7c971d81a557ca954992b8d770a9d1e3e8.1581955849.git.mchehab+huawei@kernel.org> (raw)
In-Reply-To: <cover.1581955849.git.mchehab+huawei@kernel.org>

- Add a SPDX header;
- Adjust document title;
- Mark literal blocks as such;
- Add table markups;
- Add it to filesystems/index.rst.

Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
---
 Documentation/filesystems/index.rst |   1 +
 Documentation/filesystems/omfs.rst  | 112 ++++++++++++++++++++++++++++
 Documentation/filesystems/omfs.txt  | 106 --------------------------
 3 files changed, 113 insertions(+), 106 deletions(-)
 create mode 100644 Documentation/filesystems/omfs.rst
 delete mode 100644 Documentation/filesystems/omfs.txt

diff --git a/Documentation/filesystems/index.rst b/Documentation/filesystems/index.rst
index 3b2b07491c98..fbee77175840 100644
--- a/Documentation/filesystems/index.rst
+++ b/Documentation/filesystems/index.rst
@@ -78,6 +78,7 @@ Documentation for filesystem implementations.
    ntfs
    ocfs2
    ocfs2-online-filecheck
+   omfs
    overlayfs
    virtiofs
    vfat
diff --git a/Documentation/filesystems/omfs.rst b/Documentation/filesystems/omfs.rst
new file mode 100644
index 000000000000..4c8bb3074169
--- /dev/null
+++ b/Documentation/filesystems/omfs.rst
@@ -0,0 +1,112 @@
+.. SPDX-License-Identifier: GPL-2.0
+
+================================
+Optimized MPEG Filesystem (OMFS)
+================================
+
+Overview
+========
+
+OMFS is a filesystem created by SonicBlue for use in the ReplayTV DVR
+and Rio Karma MP3 player.  The filesystem is extent-based, utilizing
+block sizes from 2k to 8k, with hash-based directories.  This
+filesystem driver may be used to read and write disks from these
+devices.
+
+Note, it is not recommended that this FS be used in place of a general
+filesystem for your own streaming media device.  Native Linux filesystems
+will likely perform better.
+
+More information is available at:
+
+    http://linux-karma.sf.net/
+
+Various utilities, including mkomfs and omfsck, are included with
+omfsprogs, available at:
+
+    http://bobcopeland.com/karma/
+
+Instructions are included in its README.
+
+Options
+=======
+
+OMFS supports the following mount-time options:
+
+    ============   ========================================
+    uid=n          make all files owned by specified user
+    gid=n          make all files owned by specified group
+    umask=xxx      set permission umask to xxx
+    fmask=xxx      set umask to xxx for files
+    dmask=xxx      set umask to xxx for directories
+    ============   ========================================
+
+Disk format
+===========
+
+OMFS discriminates between "sysblocks" and normal data blocks.  The sysblock
+group consists of super block information, file metadata, directory structures,
+and extents.  Each sysblock has a header containing CRCs of the entire
+sysblock, and may be mirrored in successive blocks on the disk.  A sysblock may
+have a smaller size than a data block, but since they are both addressed by the
+same 64-bit block number, any remaining space in the smaller sysblock is
+unused.
+
+Sysblock header information::
+
+    struct omfs_header {
+	    __be64 h_self;                  /* FS block where this is located */
+	    __be32 h_body_size;             /* size of useful data after header */
+	    __be16 h_crc;                   /* crc-ccitt of body_size bytes */
+	    char h_fill1[2];
+	    u8 h_version;                   /* version, always 1 */
+	    char h_type;                    /* OMFS_INODE_X */
+	    u8 h_magic;                     /* OMFS_IMAGIC */
+	    u8 h_check_xor;                 /* XOR of header bytes before this */
+	    __be32 h_fill2;
+    };
+
+Files and directories are both represented by omfs_inode::
+
+    struct omfs_inode {
+	    struct omfs_header i_head;      /* header */
+	    __be64 i_parent;                /* parent containing this inode */
+	    __be64 i_sibling;               /* next inode in hash bucket */
+	    __be64 i_ctime;                 /* ctime, in milliseconds */
+	    char i_fill1[35];
+	    char i_type;                    /* OMFS_[DIR,FILE] */
+	    __be32 i_fill2;
+	    char i_fill3[64];
+	    char i_name[OMFS_NAMELEN];      /* filename */
+	    __be64 i_size;                  /* size of file, in bytes */
+    };
+
+Directories in OMFS are implemented as a large hash table.  Filenames are
+hashed then prepended into the bucket list beginning at OMFS_DIR_START.
+Lookup requires hashing the filename, then seeking across i_sibling pointers
+until a match is found on i_name.  Empty buckets are represented by block
+pointers with all-1s (~0).
+
+A file is an omfs_inode structure followed by an extent table beginning at
+OMFS_EXTENT_START::
+
+    struct omfs_extent_entry {
+	    __be64 e_cluster;               /* start location of a set of blocks */
+	    __be64 e_blocks;                /* number of blocks after e_cluster */
+    };
+
+    struct omfs_extent {
+	    __be64 e_next;                  /* next extent table location */
+	    __be32 e_extent_count;          /* total # extents in this table */
+	    __be32 e_fill;
+	    struct omfs_extent_entry e_entry;       /* start of extent entries */
+    };
+
+Each extent holds the block offset followed by number of blocks allocated to
+the extent.  The final extent in each table is a terminator with e_cluster
+being ~0 and e_blocks being ones'-complement of the total number of blocks
+in the table.
+
+If this table overflows, a continuation inode is written and pointed to by
+e_next.  These have a header but lack the rest of the inode structure.
+
diff --git a/Documentation/filesystems/omfs.txt b/Documentation/filesystems/omfs.txt
deleted file mode 100644
index 1d0d41ff5c65..000000000000
--- a/Documentation/filesystems/omfs.txt
+++ /dev/null
@@ -1,106 +0,0 @@
-Optimized MPEG Filesystem (OMFS)
-
-Overview
-========
-
-OMFS is a filesystem created by SonicBlue for use in the ReplayTV DVR
-and Rio Karma MP3 player.  The filesystem is extent-based, utilizing
-block sizes from 2k to 8k, with hash-based directories.  This
-filesystem driver may be used to read and write disks from these
-devices.
-
-Note, it is not recommended that this FS be used in place of a general
-filesystem for your own streaming media device.  Native Linux filesystems
-will likely perform better.
-
-More information is available at:
-
-    http://linux-karma.sf.net/
-
-Various utilities, including mkomfs and omfsck, are included with
-omfsprogs, available at:
-
-    http://bobcopeland.com/karma/
-
-Instructions are included in its README.
-
-Options
-=======
-
-OMFS supports the following mount-time options:
-
-    uid=n        - make all files owned by specified user
-    gid=n        - make all files owned by specified group
-    umask=xxx    - set permission umask to xxx
-    fmask=xxx    - set umask to xxx for files
-    dmask=xxx    - set umask to xxx for directories
-
-Disk format
-===========
-
-OMFS discriminates between "sysblocks" and normal data blocks.  The sysblock
-group consists of super block information, file metadata, directory structures,
-and extents.  Each sysblock has a header containing CRCs of the entire
-sysblock, and may be mirrored in successive blocks on the disk.  A sysblock may
-have a smaller size than a data block, but since they are both addressed by the
-same 64-bit block number, any remaining space in the smaller sysblock is
-unused.
-
-Sysblock header information:
-
-struct omfs_header {
-        __be64 h_self;                  /* FS block where this is located */
-        __be32 h_body_size;             /* size of useful data after header */
-        __be16 h_crc;                   /* crc-ccitt of body_size bytes */
-        char h_fill1[2];
-        u8 h_version;                   /* version, always 1 */
-        char h_type;                    /* OMFS_INODE_X */
-        u8 h_magic;                     /* OMFS_IMAGIC */
-        u8 h_check_xor;                 /* XOR of header bytes before this */
-        __be32 h_fill2;
-};
-
-Files and directories are both represented by omfs_inode:
-
-struct omfs_inode {
-        struct omfs_header i_head;      /* header */
-        __be64 i_parent;                /* parent containing this inode */
-        __be64 i_sibling;               /* next inode in hash bucket */
-        __be64 i_ctime;                 /* ctime, in milliseconds */
-        char i_fill1[35];
-        char i_type;                    /* OMFS_[DIR,FILE] */
-        __be32 i_fill2;
-        char i_fill3[64];
-        char i_name[OMFS_NAMELEN];      /* filename */
-        __be64 i_size;                  /* size of file, in bytes */
-};
-
-Directories in OMFS are implemented as a large hash table.  Filenames are
-hashed then prepended into the bucket list beginning at OMFS_DIR_START.
-Lookup requires hashing the filename, then seeking across i_sibling pointers
-until a match is found on i_name.  Empty buckets are represented by block
-pointers with all-1s (~0).
-
-A file is an omfs_inode structure followed by an extent table beginning at
-OMFS_EXTENT_START:
-
-struct omfs_extent_entry {
-        __be64 e_cluster;               /* start location of a set of blocks */
-        __be64 e_blocks;                /* number of blocks after e_cluster */
-};
-
-struct omfs_extent {
-        __be64 e_next;                  /* next extent table location */
-        __be32 e_extent_count;          /* total # extents in this table */
-        __be32 e_fill;
-        struct omfs_extent_entry e_entry;       /* start of extent entries */
-};
-
-Each extent holds the block offset followed by number of blocks allocated to
-the extent.  The final extent in each table is a terminator with e_cluster
-being ~0 and e_blocks being ones'-complement of the total number of blocks
-in the table.
-
-If this table overflows, a continuation inode is written and pointed to by
-e_next.  These have a header but lack the rest of the inode structure.
-
-- 
2.24.1


  parent reply	other threads:[~2020-02-17 16:12 UTC|newest]

Thread overview: 63+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <cover.1581955849.git.mchehab+huawei@kernel.org>
2020-02-17 16:11 ` [PATCH 01/44] docs: filesystems: convert 9p.txt to ReST Mauro Carvalho Chehab
2020-02-17 16:11 ` [PATCH 02/44] docs: filesystems: convert adfs.txt " Mauro Carvalho Chehab
2020-02-17 16:11 ` [PATCH 03/44] docs: filesystems: convert affs.txt " Mauro Carvalho Chehab
2020-02-18 13:04   ` David Sterba
2020-02-17 16:11 ` [PATCH 04/44] docs: filesystems: convert afs.txt " Mauro Carvalho Chehab
2020-02-17 16:11 ` [PATCH 05/44] docs: filesystems: convert autofs-mount-control.txt " Mauro Carvalho Chehab
2020-02-17 16:11 ` [PATCH 06/44] docs: filesystems: convert befs.txt " Mauro Carvalho Chehab
2020-02-17 16:11 ` [PATCH 07/44] docs: filesystems: convert bfs.txt " Mauro Carvalho Chehab
2020-02-17 16:11 ` [PATCH 08/44] docs: filesystems: convert btrfs.txt " Mauro Carvalho Chehab
2020-02-17 18:50   ` David Sterba
2020-02-17 19:34     ` Jonathan Corbet
2020-02-18 11:44   ` David Sterba
2020-02-17 16:11 ` [PATCH 09/44] docs: filesystems: convert ceph.txt " Mauro Carvalho Chehab
2020-02-18 11:57   ` Jeff Layton
2020-02-17 16:11 ` [PATCH 10/44] docs: filesystems: convert cramfs.txt " Mauro Carvalho Chehab
2020-02-17 18:11   ` Nicolas Pitre
2020-02-17 16:11 ` [PATCH 11/44] docs: filesystems: convert debugfs.txt " Mauro Carvalho Chehab
2020-02-17 16:11 ` [PATCH 12/44] docs: filesystems: convert dlmfs.txt " Mauro Carvalho Chehab
2020-02-18  1:21   ` Joseph Qi
2020-02-18 10:07     ` Mauro Carvalho Chehab
2020-02-18 10:55       ` Joseph Qi
2020-02-17 16:11 ` [PATCH 13/44] docs: filesystems: convert ecryptfs.txt " Mauro Carvalho Chehab
2020-02-17 20:07   ` Tyler Hicks
2020-02-17 16:12 ` [PATCH 14/44] docs: filesystems: convert efivarfs.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 15/44] docs: filesystems: convert erofs.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 16/44] docs: filesystems: convert ext2.txt " Mauro Carvalho Chehab
2020-02-18  7:11   ` Jan Kara
2020-02-17 16:12 ` [PATCH 17/44] docs: filesystems: convert ext3.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 18/44] docs: filesystems: convert f2fs.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 19/44] docs: filesystems: convert gfs2.txt " Mauro Carvalho Chehab
2020-02-18 13:13   ` Bob Peterson
2020-02-17 16:12 ` [PATCH 20/44] docs: filesystems: convert gfs2-uevents.txt " Mauro Carvalho Chehab
2020-02-18 13:13   ` Bob Peterson
2020-02-17 16:12 ` [PATCH 21/44] docs: filesystems: convert hfsplus.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 22/44] docs: filesystems: convert hfs.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 23/44] docs: filesystems: convert hpfs.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 24/44] docs: filesystems: convert inotify.txt " Mauro Carvalho Chehab
2020-02-18  7:10   ` Jan Kara
2020-02-17 16:12 ` [PATCH 25/44] docs: filesystems: convert isofs.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 26/44] docs: filesystems: convert nilfs2.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 27/44] docs: filesystems: convert ntfs.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 28/44] docs: filesystems: convert ocfs2-online-filecheck.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 29/44] docs: filesystems: convert ocfs2.txt " Mauro Carvalho Chehab
2020-02-18  1:23   ` Joseph Qi
2020-02-17 16:12 ` Mauro Carvalho Chehab [this message]
2020-02-18  0:57   ` [PATCH 30/44] docs: filesystems: convert omfs.txt " Bob Copeland
2020-02-17 16:12 ` [PATCH 31/44] docs: filesystems: convert orangefs.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 33/44] docs: filesystems: convert qnx6.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 34/44] docs: filesystems: convert ramfs-rootfs-initramfs.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 35/44] docs: filesystems: convert relay.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 36/44] docs: filesystems: convert romfs.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 37/44] docs: filesystems: convert squashfs.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 38/44] docs: filesystems: convert sysfs.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 39/44] docs: filesystems: convert sysv-fs.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 40/44] docs: filesystems: convert tmpfs.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 41/44] docs: filesystems: convert ubifs-authentication.rst.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 42/44] docs: filesystems: convert ubifs.txt " Mauro Carvalho Chehab
2020-02-17 16:12 ` [PATCH 43/44] docs: filesystems: convert udf.txt " Mauro Carvalho Chehab
2020-02-18  7:12   ` Jan Kara
2020-02-18 10:13     ` Mauro Carvalho Chehab
2020-02-18 10:57       ` Jan Kara
2020-02-17 16:12 ` [PATCH 44/44] docs: filesystems: convert zonefs.txt " Mauro Carvalho Chehab
2020-02-18  3:46   ` Damien Le Moal

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=0c125c7c971d81a557ca954992b8d770a9d1e3e8.1581955849.git.mchehab+huawei@kernel.org \
    --to=mchehab+huawei@kernel.org \
    --cc=corbet@lwn.net \
    --cc=linux-doc@vger.kernel.org \
    --cc=linux-fsdevel@vger.kernel.org \
    --cc=linux-karma-devel@lists.sourceforge.net \
    --cc=me@bobcopeland.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).