/* * Forward-declare this
*/ struct adfs_discmap; struct adfs_dir_ops;
/* * ADFS file system superblock data in memory
*/ struct adfs_sb_info { union { struct { struct adfs_discmap *s_map; /* bh list containing map */ conststruct adfs_dir_ops *s_dir; /* directory operations */
}; struct rcu_head rcu; /* used only at shutdown time */
};
kuid_t s_uid; /* owner uid */
kgid_t s_gid; /* owner gid */
umode_t s_owner_mask; /* ADFS owner perm -> unix perm */
umode_t s_other_mask; /* ADFS other perm -> unix perm */ int s_ftsuffix; /* ,xyz hex filetype suffix option */
__u32 s_ids_per_zone; /* max. no ids in one zone */
__u32 s_idlen; /* length of ID in map */
__u32 s_map_size; /* sector size of a map */ signedint s_map2blk; /* shift left by this for map->sector*/ unsignedint s_log2sharesize;/* log2 share size */ unsignedint s_namelen; /* maximum number of characters in name */
};
staticinline __u32 signed_asl(__u32 val, signedint shift)
{ if (shift >= 0)
val <<= shift; else
val >>= -shift; return val;
}
/* * Calculate the address of a block in an object given the block offset * and the object identity. * * The root directory ID should always be looked up in the map [3.4]
*/ staticinlineint __adfs_block_map(struct super_block *sb, u32 indaddr, unsignedint block)
{ if (indaddr & 255) { unsignedint off;
off = (indaddr & 255) - 1;
block += off << ADFS_SB(sb)->s_log2sharesize;
}
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.