libsquashfs: include/sqfs/inode.h File Reference

libsquashfs 1.3.2 A new set of tools and libraries for working with SquashFS images

Loading...
Searching...
No Matches
inode.h File Reference

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...

## Detailed Description

Contains on-disk data structures used for inodes.

Definition in file inode.h.

## Enumeration Type Documentation

## ◆ SQFS_INODE_MODE

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:

- of the user that owns the file
- of the group that the file belongs to
- everybody else

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:

- sticky
- set group id
- set user id

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:

- named pipe, aka fifo
- character device
- directory
- block device
- regular file
- symlink
- socket

Definition at line 95 of file inode.h.

## ◆ SQFS_INODE_TYPE

enum SQFS_INODE_TYPE

Used by sqfs_inode_t to identify the inode type.

Definition at line 36 of file inode.h.