Mauro Carvalho Chehab | 3487390 | 2020-02-17 17:11:48 +0100 | [diff] [blame] | 1 | .. SPDX-License-Identifier: GPL-2.0 |
| 2 | |
| 3 | =============================== |
| 4 | Acorn Disc Filing System - ADFS |
| 5 | =============================== |
| 6 | |
Russell King | 76ed99d | 2019-12-09 11:11:43 +0000 | [diff] [blame] | 7 | Filesystems supported by ADFS |
| 8 | ----------------------------- |
| 9 | |
| 10 | The ADFS module supports the following Filecore formats which have: |
| 11 | |
| 12 | - new maps |
| 13 | - new directories or big directories |
| 14 | |
| 15 | In terms of the named formats, this means we support: |
| 16 | |
| 17 | - E and E+, with or without boot block |
| 18 | - F and F+ |
| 19 | |
| 20 | We fully support reading files from these filesystems, and writing to |
| 21 | existing files within their existing allocation. Essentially, we do |
| 22 | not support changing any of the filesystem metadata. |
| 23 | |
| 24 | This is intended to support loopback mounted Linux native filesystems |
| 25 | on a RISC OS Filecore filesystem, but will allow the data within files |
| 26 | to be changed. |
| 27 | |
| 28 | If write support (ADFS_FS_RW) is configured, we allow rudimentary |
| 29 | directory updates, specifically updating the access mode and timestamp. |
| 30 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 31 | Mount options for ADFS |
| 32 | ---------------------- |
| 33 | |
Mauro Carvalho Chehab | 3487390 | 2020-02-17 17:11:48 +0100 | [diff] [blame] | 34 | ============ ====================================================== |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 35 | uid=nnn All files in the partition will be owned by |
| 36 | user id nnn. Default 0 (root). |
Matt LaPlante | 4ae0edc | 2006-11-30 04:58:40 +0100 | [diff] [blame] | 37 | gid=nnn All files in the partition will be in group |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 38 | nnn. Default 0 (root). |
| 39 | ownmask=nnn The permission mask for ADFS 'owner' permissions |
| 40 | will be nnn. Default 0700. |
| 41 | othmask=nnn The permission mask for ADFS 'other' permissions |
| 42 | will be nnn. Default 0077. |
Stuart Swales | da23ef0 | 2011-03-22 16:35:06 -0700 | [diff] [blame] | 43 | ftsuffix=n When ftsuffix=0, no file type suffix will be applied. |
| 44 | When ftsuffix=1, a hexadecimal suffix corresponding to |
| 45 | the RISC OS file type will be added. Default 0. |
Mauro Carvalho Chehab | 3487390 | 2020-02-17 17:11:48 +0100 | [diff] [blame] | 46 | ============ ====================================================== |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 47 | |
| 48 | Mapping of ADFS permissions to Linux permissions |
| 49 | ------------------------------------------------ |
| 50 | |
| 51 | ADFS permissions consist of the following: |
| 52 | |
Mauro Carvalho Chehab | 3487390 | 2020-02-17 17:11:48 +0100 | [diff] [blame] | 53 | - Owner read |
| 54 | - Owner write |
| 55 | - Other read |
| 56 | - Other write |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 57 | |
| 58 | (In older versions, an 'execute' permission did exist, but this |
Mauro Carvalho Chehab | 3487390 | 2020-02-17 17:11:48 +0100 | [diff] [blame] | 59 | does not hold the same meaning as the Linux 'execute' permission |
| 60 | and is now obsolete). |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 61 | |
Mauro Carvalho Chehab | 3487390 | 2020-02-17 17:11:48 +0100 | [diff] [blame] | 62 | The mapping is performed as follows:: |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 63 | |
| 64 | Owner read -> -r--r--r-- |
| 65 | Owner write -> --w--w---w |
| 66 | Owner read and filetype UnixExec -> ---x--x--x |
| 67 | These are then masked by ownmask, eg 700 -> -rwx------ |
| 68 | Possible owner mode permissions -> -rwx------ |
| 69 | |
| 70 | Other read -> -r--r--r-- |
| 71 | Other write -> --w--w--w- |
| 72 | Other read and filetype UnixExec -> ---x--x--x |
| 73 | These are then masked by othmask, eg 077 -> ----rwxrwx |
| 74 | Possible other mode permissions -> ----rwxrwx |
| 75 | |
| 76 | Hence, with the default masks, if a file is owner read/write, and |
Mauro Carvalho Chehab | 3487390 | 2020-02-17 17:11:48 +0100 | [diff] [blame] | 77 | not a UnixExec filetype, then the permissions will be:: |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 78 | |
| 79 | -rw------- |
| 80 | |
| 81 | However, if the masks were ownmask=0770,othmask=0007, then this would |
Mauro Carvalho Chehab | 3487390 | 2020-02-17 17:11:48 +0100 | [diff] [blame] | 82 | be modified to:: |
| 83 | |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 84 | -rw-rw---- |
| 85 | |
| 86 | There is no restriction on what you can do with these masks. You may |
| 87 | wish that either read bits give read access to the file for all, but |
Mauro Carvalho Chehab | 3487390 | 2020-02-17 17:11:48 +0100 | [diff] [blame] | 88 | keep the default write protection (ownmask=0755,othmask=0577):: |
Linus Torvalds | 1da177e | 2005-04-16 15:20:36 -0700 | [diff] [blame] | 89 | |
| 90 | -rw-r--r-- |
| 91 | |
| 92 | You can therefore tailor the permission translation to whatever you |
| 93 | desire the permissions should be under Linux. |
Stuart Swales | da23ef0 | 2011-03-22 16:35:06 -0700 | [diff] [blame] | 94 | |
| 95 | RISC OS file type suffix |
| 96 | ------------------------ |
| 97 | |
| 98 | RISC OS file types are stored in bits 19..8 of the file load address. |
| 99 | |
| 100 | To enable non-RISC OS systems to be used to store files without losing |
| 101 | file type information, a file naming convention was devised (initially |
| 102 | for use with NFS) such that a hexadecimal suffix of the form ,xyz |
| 103 | denoted the file type: e.g. BasicFile,ffb is a BASIC (0xffb) file. This |
| 104 | naming convention is now also used by RISC OS emulators such as RPCEmu. |
| 105 | |
| 106 | Mounting an ADFS disc with option ftsuffix=1 will cause appropriate file |
| 107 | type suffixes to be appended to file names read from a directory. If the |
| 108 | ftsuffix option is zero or omitted, no file type suffixes will be added. |