109 строки
3.7 KiB
ReStructuredText
109 строки
3.7 KiB
ReStructuredText
.. 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.
|