cachepc-linux

Fork of AMDESE/linux with modifications for CachePC side-channel attack
git clone https://git.sinitax.com/sinitax/cachepc-linux
Log | Files | Refs | README | LICENSE | sfeed.txt

minix_fs.h (2122B)


      1/* SPDX-License-Identifier: GPL-2.0 WITH Linux-syscall-note */
      2#ifndef _LINUX_MINIX_FS_H
      3#define _LINUX_MINIX_FS_H
      4
      5#include <linux/types.h>
      6#include <linux/magic.h>
      7
      8/*
      9 * The minix filesystem constants/structures
     10 */
     11
     12/*
     13 * Thanks to Kees J Bot for sending me the definitions of the new
     14 * minix filesystem (aka V2) with bigger inodes and 32-bit block
     15 * pointers.
     16 */
     17
     18#define MINIX_ROOT_INO 1
     19
     20/* Not the same as the bogus LINK_MAX in <linux/limits.h>. Oh well. */
     21#define MINIX_LINK_MAX	250
     22#define MINIX2_LINK_MAX	65530
     23
     24#define MINIX_I_MAP_SLOTS	8
     25#define MINIX_Z_MAP_SLOTS	64
     26#define MINIX_VALID_FS		0x0001		/* Clean fs. */
     27#define MINIX_ERROR_FS		0x0002		/* fs has errors. */
     28
     29#define MINIX_INODES_PER_BLOCK ((BLOCK_SIZE)/(sizeof (struct minix_inode)))
     30
     31/*
     32 * This is the original minix inode layout on disk.
     33 * Note the 8-bit gid and atime and ctime.
     34 */
     35struct minix_inode {
     36	__u16 i_mode;
     37	__u16 i_uid;
     38	__u32 i_size;
     39	__u32 i_time;
     40	__u8  i_gid;
     41	__u8  i_nlinks;
     42	__u16 i_zone[9];
     43};
     44
     45/*
     46 * The new minix inode has all the time entries, as well as
     47 * long block numbers and a third indirect block (7+1+1+1
     48 * instead of 7+1+1). Also, some previously 8-bit values are
     49 * now 16-bit. The inode is now 64 bytes instead of 32.
     50 */
     51struct minix2_inode {
     52	__u16 i_mode;
     53	__u16 i_nlinks;
     54	__u16 i_uid;
     55	__u16 i_gid;
     56	__u32 i_size;
     57	__u32 i_atime;
     58	__u32 i_mtime;
     59	__u32 i_ctime;
     60	__u32 i_zone[10];
     61};
     62
     63/*
     64 * minix super-block data on disk
     65 */
     66struct minix_super_block {
     67	__u16 s_ninodes;
     68	__u16 s_nzones;
     69	__u16 s_imap_blocks;
     70	__u16 s_zmap_blocks;
     71	__u16 s_firstdatazone;
     72	__u16 s_log_zone_size;
     73	__u32 s_max_size;
     74	__u16 s_magic;
     75	__u16 s_state;
     76	__u32 s_zones;
     77};
     78
     79/*
     80 * V3 minix super-block data on disk
     81 */
     82struct minix3_super_block {
     83	__u32 s_ninodes;
     84	__u16 s_pad0;
     85	__u16 s_imap_blocks;
     86	__u16 s_zmap_blocks;
     87	__u16 s_firstdatazone;
     88	__u16 s_log_zone_size;
     89	__u16 s_pad1;
     90	__u32 s_max_size;
     91	__u32 s_zones;
     92	__u16 s_magic;
     93	__u16 s_pad2;
     94	__u16 s_blocksize;
     95	__u8  s_disk_version;
     96};
     97
     98struct minix_dir_entry {
     99	__u16 inode;
    100	char name[0];
    101};
    102
    103struct minix3_dir_entry {
    104	__u32 inode;
    105	char name[0];
    106};
    107#endif