libsquashfs 1.3.0
A new set of tools and libraries for working with SquashFS images
|
Contains on-disk data structures used for inodes. More...
#include "sqfs/predef.h"
Go to the source code of this file.
Data Structures | |
struct | sqfs_inode_t |
Common inode structure. More... | |
struct | sqfs_inode_dev_t |
Follows a sqfs_inode_t if type is SQFS_INODE_BDEV or SQFS_INODE_CDEV. More... | |
struct | sqfs_inode_dev_ext_t |
Follows a sqfs_inode_t if type is SQFS_INODE_EXT_BDEV or SQFS_INODE_EXT_CDEV. More... | |
struct | sqfs_inode_ipc_t |
Follows a sqfs_inode_t if type is SQFS_INODE_FIFO or SQFS_INODE_SOCKET. More... | |
struct | sqfs_inode_ipc_ext_t |
Follows a sqfs_inode_t if type is SQFS_INODE_EXT_FIFO or SQFS_INODE_EXT_SOCKET. More... | |
struct | sqfs_inode_slink_t |
Follows a sqfs_inode_t if type is SQFS_INODE_SLINK. More... | |
struct | sqfs_inode_slink_ext_t |
Follows a sqfs_inode_t if type is SQFS_INODE_EXT_SLINK. More... | |
struct | sqfs_inode_file_t |
Follows a sqfs_inode_t if type is SQFS_INODE_FILE. More... | |
struct | sqfs_inode_file_ext_t |
Follows a sqfs_inode_t if type is SQFS_INODE_EXT_FILE. More... | |
struct | sqfs_inode_dir_t |
Follows a sqfs_inode_t if type is SQFS_INODE_DIR. More... | |
struct | sqfs_inode_dir_ext_t |
Follows a sqfs_inode_t if type is SQFS_INODE_EXT_DIR. More... | |
struct | sqfs_inode_generic_t |
A generic inode structure that combines all others and provides additional information. More... | |
Enumerations | |
enum | SQFS_INODE_TYPE { SQFS_INODE_DIR = 1 , SQFS_INODE_FILE = 2 , SQFS_INODE_SLINK = 3 , SQFS_INODE_BDEV = 4 , SQFS_INODE_CDEV = 5 , SQFS_INODE_FIFO = 6 , SQFS_INODE_SOCKET = 7 , SQFS_INODE_EXT_DIR = 8 , SQFS_INODE_EXT_FILE = 9 , SQFS_INODE_EXT_SLINK = 10 , SQFS_INODE_EXT_BDEV = 11 , SQFS_INODE_EXT_CDEV = 12 , SQFS_INODE_EXT_FIFO = 13 , SQFS_INODE_EXT_SOCKET = 14 } |
Used by sqfs_inode_t to identify the inode type. More... | |
enum | SQFS_INODE_MODE { SQFS_INODE_OTHERS_X = 00001 , SQFS_INODE_OTHERS_W = 00002 , SQFS_INODE_OTHERS_R = 00004 , SQFS_INODE_OTHERS_MASK = 00007 , SQFS_INODE_GROUP_X = 00010 , SQFS_INODE_GROUP_W = 00020 , SQFS_INODE_GROUP_R = 00040 , SQFS_INODE_GROUP_MASK = 00070 , SQFS_INODE_OWNER_X = 00100 , SQFS_INODE_OWNER_W = 00200 , SQFS_INODE_OWNER_R = 00400 , SQFS_INODE_OWNER_MASK = 00700 , SQFS_INODE_STICKY = 01000 , SQFS_INODE_SET_GID = 02000 , SQFS_INODE_SET_UID = 04000 , SQFS_INODE_MODE_FIFO = 0010000 , SQFS_INODE_MODE_CHR = 0020000 , SQFS_INODE_MODE_DIR = 0040000 , SQFS_INODE_MODE_BLK = 0060000 , SQFS_INODE_MODE_REG = 0100000 , SQFS_INODE_MODE_LNK = 0120000 , SQFS_INODE_MODE_SOCK = 0140000 , SQFS_INODE_MODE_MASK = 0170000 } |
Mode bits for the sqfs_inode_t mode field. More... | |
Contains on-disk data structures used for inodes.
Definition in file inode.h.
enum SQFS_INODE_MODE |
Mode bits for the sqfs_inode_t mode field.
This is basically the same that mode bits in struct stat store on Unix-like systems. It is duplicated here for portability with non-POSIX platforms. In case you are not familiar with Unix file permissions, a brief description follows.
There are 3 fields with permissions:
Each field holds 3 bits: X, W and R meaning execute, write and read access respectively. There are 2 special cases: On a directory, execute means entering the directory and accessing its contents. Read and write refere to reading or changing the list of entries. For symlinks, the permissions are meaningless and have all bits set.
Besides the permissions, there are 3 more bits:
Nowadays, the later two mean executing a program makes it run as the group or user (respectively) that owns it instead of the user that actually ran the program. On directories, the sticky bit means that its contents can only be deleted by the actual owner, even if others have write permissions. All other uses of those bits are obscure, historic and differ between flavours of Unix.
The remaining 4 bits (adding up to a total of 16) specify the type of file:
enum SQFS_INODE_TYPE |
Used by sqfs_inode_t to identify the inode type.