root/include/linux/affs_fs_sb.h

/* [previous][next][first][last][top][bottom][index][help] */

INCLUDED FROM


   1 #ifndef _AFFS_FS_SB
   2 #define _AFFS_FS_SB
   3 
   4 /*
   5  * super-block data in memory
   6  *
   7  * Block numbers are adjusted for their actual size
   8  *
   9  */
  10 
  11 #include <linux/amigaffs.h>
  12 
  13 #define MAX_ZONES               8
  14 #define AFFS_DATA_MIN_FREE      30      /* Percentage of free blocks needed for a data zone */
  15 #define AFFS_HDR_MIN_FREE       10      /* Same for header blocks */
  16 
  17 struct affs_bm_info {
  18         struct buffer_head *bm_bh;      /* Buffer for bitmap. */
  19         int bm_free;                    /* Free blocks. */
  20         int bm_size;                    /* Size in bits, rounded to multiple of 32. */
  21         int bm_firstblk;                /* Block number of first bit in this map */
  22 };
  23 
  24 struct affs_zone {
  25         unsigned long z_ino;            /* Associated inode number */
  26         struct affs_bm_info *z_bm;      /* Zone lies in this bitmap */
  27         int z_start;                    /* Index of first word in bitmap */
  28         int z_zone_no;                  /* Zone number */
  29         unsigned long z_lru_time;       /* Time of last usage */
  30 };
  31 
  32 struct affs_sb_info {
  33         int s_partition_size;           /* Partition size in blocks. */
  34         int s_root_block;               /* FFS root block number. */
  35         int s_hashsize;                 /* Size of hash table. */
  36         unsigned long s_flags;          /* See below. */
  37         short s_uid;                    /* uid to override */
  38         short s_gid;                    /* gid to override */
  39         umode_t s_mode;                 /* mode to override */
  40         int s_reserved;                 /* Number of reserved blocks. */
  41         struct buffer_head *s_root_bh;  /* Cached root block. */
  42         struct affs_bm_info *s_bitmap;  /* Bitmap infos. */
  43         int s_bm_count;                 /* Number of bitmap blocks. */
  44         int s_nextzone;                 /* Next zone to look for free blocks. */
  45         int s_num_zones;                /* Total number of zones. */
  46         struct affs_zone *s_zones;      /* The zones themselfes. */
  47         char *s_zonemap;                /* Bitmap for zones. */
  48         char *s_prefix;                 /* Prefix for volumes and assignes. */
  49         int s_prefix_len;               /* Length of prefix. */
  50         char s_volume[32];              /* Volume prefix for absolute symlinks. */
  51 };
  52 
  53 #define SF_INTL         0x0001          /* International filesystem. */
  54 #define SF_BM_VALID     0x0002          /* Bitmap is valid. */
  55 #define SF_IMMUTABLE    0x0004          /* Protection bits cannot be changed */
  56 #define SF_QUIET        0x0008          /* chmod errors will be not reported */
  57 #define SF_SETUID       0x0010          /* Ignore Amiga uid */
  58 #define SF_SETGID       0x0020          /* Ignore Amiga gid */
  59 #define SF_SETMODE      0x0040          /* Ignore Amiga protection bits */
  60 #define SF_USE_MP       0x0080          /* Use uid and gid from mount point */
  61 #define SF_MUFS         0x0100          /* Use MUFS uid/gid mapping */
  62 #define SF_OFS          0x0200          /* Old filesystem */
  63 #define SF_PREFIX       0x0400          /* Buffer for prefix is allocated */
  64 #define SF_VERBOSE      0x0800          /* Talk about fs when mounting */
  65 
  66 #endif

/* [previous][next][first][last][top][bottom][index][help] */