mirror of https://github.com/Qortal/Brooklyn
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
108 lines
3.7 KiB
108 lines
3.7 KiB
.. SPDX-License-Identifier: GPL-2.0 |
|
|
|
=============================== |
|
Acorn Disc Filing System - ADFS |
|
=============================== |
|
|
|
Filesystems supported by ADFS |
|
----------------------------- |
|
|
|
The ADFS module supports the following Filecore formats which have: |
|
|
|
- new maps |
|
- new directories or big directories |
|
|
|
In terms of the named formats, this means we support: |
|
|
|
- E and E+, with or without boot block |
|
- F and F+ |
|
|
|
We fully support reading files from these filesystems, and writing to |
|
existing files within their existing allocation. Essentially, we do |
|
not support changing any of the filesystem metadata. |
|
|
|
This is intended to support loopback mounted Linux native filesystems |
|
on a RISC OS Filecore filesystem, but will allow the data within files |
|
to be changed. |
|
|
|
If write support (ADFS_FS_RW) is configured, we allow rudimentary |
|
directory updates, specifically updating the access mode and timestamp. |
|
|
|
Mount options for ADFS |
|
---------------------- |
|
|
|
============ ====================================================== |
|
uid=nnn All files in the partition will be owned by |
|
user id nnn. Default 0 (root). |
|
gid=nnn All files in the partition will be in group |
|
nnn. Default 0 (root). |
|
ownmask=nnn The permission mask for ADFS 'owner' permissions |
|
will be nnn. Default 0700. |
|
othmask=nnn The permission mask for ADFS 'other' permissions |
|
will be nnn. Default 0077. |
|
ftsuffix=n When ftsuffix=0, no file type suffix will be applied. |
|
When ftsuffix=1, a hexadecimal suffix corresponding to |
|
the RISC OS file type will be added. Default 0. |
|
============ ====================================================== |
|
|
|
Mapping of ADFS permissions to Linux permissions |
|
------------------------------------------------ |
|
|
|
ADFS permissions consist of the following: |
|
|
|
- Owner read |
|
- Owner write |
|
- Other read |
|
- Other write |
|
|
|
(In older versions, an 'execute' permission did exist, but this |
|
does not hold the same meaning as the Linux 'execute' permission |
|
and is now obsolete). |
|
|
|
The mapping is performed as follows:: |
|
|
|
Owner read -> -r--r--r-- |
|
Owner write -> --w--w---w |
|
Owner read and filetype UnixExec -> ---x--x--x |
|
These are then masked by ownmask, eg 700 -> -rwx------ |
|
Possible owner mode permissions -> -rwx------ |
|
|
|
Other read -> -r--r--r-- |
|
Other write -> --w--w--w- |
|
Other read and filetype UnixExec -> ---x--x--x |
|
These are then masked by othmask, eg 077 -> ----rwxrwx |
|
Possible other mode permissions -> ----rwxrwx |
|
|
|
Hence, with the default masks, if a file is owner read/write, and |
|
not a UnixExec filetype, then the permissions will be:: |
|
|
|
-rw------- |
|
|
|
However, if the masks were ownmask=0770,othmask=0007, then this would |
|
be modified to:: |
|
|
|
-rw-rw---- |
|
|
|
There is no restriction on what you can do with these masks. You may |
|
wish that either read bits give read access to the file for all, but |
|
keep the default write protection (ownmask=0755,othmask=0577):: |
|
|
|
-rw-r--r-- |
|
|
|
You can therefore tailor the permission translation to whatever you |
|
desire the permissions should be under Linux. |
|
|
|
RISC OS file type suffix |
|
------------------------ |
|
|
|
RISC OS file types are stored in bits 19..8 of the file load address. |
|
|
|
To enable non-RISC OS systems to be used to store files without losing |
|
file type information, a file naming convention was devised (initially |
|
for use with NFS) such that a hexadecimal suffix of the form ,xyz |
|
denoted the file type: e.g. BasicFile,ffb is a BASIC (0xffb) file. This |
|
naming convention is now also used by RISC OS emulators such as RPCEmu. |
|
|
|
Mounting an ADFS disc with option ftsuffix=1 will cause appropriate file |
|
type suffixes to be appended to file names read from a directory. If the |
|
ftsuffix option is zero or omitted, no file type suffixes will be added.
|
|
|