aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/filesystems/qnx6.txt
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/filesystems/qnx6.txt')
-rw-r--r--Documentation/filesystems/qnx6.txt28
1 files changed, 14 insertions, 14 deletions
diff --git a/Documentation/filesystems/qnx6.txt b/Documentation/filesystems/qnx6.txt
index 050223ea03c7..e59f2f09f56e 100644
--- a/Documentation/filesystems/qnx6.txt
+++ b/Documentation/filesystems/qnx6.txt
@@ -17,7 +17,7 @@ concepts of blocks, inodes and directories.
17On QNX it is possible to create little endian and big endian qnx6 filesystems. 17On QNX it is possible to create little endian and big endian qnx6 filesystems.
18This feature makes it possible to create and use a different endianness fs 18This feature makes it possible to create and use a different endianness fs
19for the target (QNX is used on quite a range of embedded systems) plattform 19for the target (QNX is used on quite a range of embedded systems) plattform
20running on a different endianess. 20running on a different endianness.
21The Linux driver handles endianness transparently. (LE and BE) 21The Linux driver handles endianness transparently. (LE and BE)
22 22
23Blocks 23Blocks
@@ -26,7 +26,7 @@ Blocks
26The space in the device or file is split up into blocks. These are a fixed 26The space in the device or file is split up into blocks. These are a fixed
27size of 512, 1024, 2048 or 4096, which is decided when the filesystem is 27size of 512, 1024, 2048 or 4096, which is decided when the filesystem is
28created. 28created.
29Blockpointers are 32bit, so the maximum space that can be adressed is 29Blockpointers are 32bit, so the maximum space that can be addressed is
302^32 * 4096 bytes or 16TB 302^32 * 4096 bytes or 16TB
31 31
32The superblocks 32The superblocks
@@ -47,16 +47,16 @@ inactive superblock.
47Each superblock holds a set of root inodes for the different filesystem 47Each superblock holds a set of root inodes for the different filesystem
48parts. (Inode, Bitmap and Longfilenames) 48parts. (Inode, Bitmap and Longfilenames)
49Each of these root nodes holds information like total size of the stored 49Each of these root nodes holds information like total size of the stored
50data and the adressing levels in that specific tree. 50data and the addressing levels in that specific tree.
51If the level value is 0, up to 16 direct blocks can be adressed by each 51If the level value is 0, up to 16 direct blocks can be addressed by each
52node. 52node.
53Level 1 adds an additional indirect adressing level where each indirect 53Level 1 adds an additional indirect addressing level where each indirect
54adressing block holds up to blocksize / 4 bytes pointers to data blocks. 54addressing block holds up to blocksize / 4 bytes pointers to data blocks.
55Level 2 adds an additional indirect adressig block level (so, already up 55Level 2 adds an additional indirect addressing block level (so, already up
56to 16 * 256 * 256 = 1048576 blocks that can be adressed by such a tree)a 56to 16 * 256 * 256 = 1048576 blocks that can be addressed by such a tree).
57 57
58Unused block pointers are always set to ~0 - regardless of root node, 58Unused block pointers are always set to ~0 - regardless of root node,
59indirect adressing blocks or inodes. 59indirect addressing blocks or inodes.
60Data leaves are always on the lowest level. So no data is stored on upper 60Data leaves are always on the lowest level. So no data is stored on upper
61tree levels. 61tree levels.
62 62
@@ -64,7 +64,7 @@ The first Superblock is located at 0x2000. (0x2000 is the bootblock size)
64The Audi MMI 3G first superblock directly starts at byte 0. 64The Audi MMI 3G first superblock directly starts at byte 0.
65Second superblock position can either be calculated from the superblock 65Second superblock position can either be calculated from the superblock
66information (total number of filesystem blocks) or by taking the highest 66information (total number of filesystem blocks) or by taking the highest
67device address, zeroing the last 3 bytes and then substracting 0x1000 from 67device address, zeroing the last 3 bytes and then subtracting 0x1000 from
68that address. 68that address.
69 69
700x1000 is the size reserved for each superblock - regardless of the 700x1000 is the size reserved for each superblock - regardless of the
@@ -83,8 +83,8 @@ size, number of blocks used, access time, change time and modification time.
83Object mode field is POSIX format. (which makes things easier) 83Object mode field is POSIX format. (which makes things easier)
84 84
85There are also pointers to the first 16 blocks, if the object data can be 85There are also pointers to the first 16 blocks, if the object data can be
86adressed with 16 direct blocks. 86addressed with 16 direct blocks.
87For more than 16 blocks an indirect adressing in form of another tree is 87For more than 16 blocks an indirect addressing in form of another tree is
88used. (scheme is the same as the one used for the superblock root nodes) 88used. (scheme is the same as the one used for the superblock root nodes)
89 89
90The filesize is stored 64bit. Inode counting starts with 1. (whilst long 90The filesize is stored 64bit. Inode counting starts with 1. (whilst long
@@ -118,13 +118,13 @@ no block pointers and the directory file record pointing to the target file
118inode. 118inode.
119 119
120Character and block special devices do not exist in QNX as those files 120Character and block special devices do not exist in QNX as those files
121are handled by the QNX kernel/drivers and created in /dev independant of the 121are handled by the QNX kernel/drivers and created in /dev independent of the
122underlaying filesystem. 122underlaying filesystem.
123 123
124Long filenames 124Long filenames
125-------------- 125--------------
126 126
127Long filenames are stored in a seperate adressing tree. The staring point 127Long filenames are stored in a separate addressing tree. The staring point
128is the longfilename root node in the active superblock. 128is the longfilename root node in the active superblock.
129Each data block (tree leaves) holds one long filename. That filename is 129Each data block (tree leaves) holds one long filename. That filename is
130limited to 510 bytes. The first two starting bytes are used as length field 130limited to 510 bytes. The first two starting bytes are used as length field