#[repr(C)]pub(crate) struct Inode {Show 25 fields
mode: u16,
uid: u16,
pub size: u32,
atime: u32,
ctime: u32,
mtime: u32,
_dtime: u32,
gid: u16,
pub links_count: u16,
pub blocks: InodeBlocksCount,
_flags: u32,
_osd1: u32,
pub block: InodeBlock,
_generation: u32,
_file_acl: u32,
_dir_acl: u32,
_faddr: u32,
_fragment_num: u8,
_fragment_size: u8,
_reserved1: u16,
uid_high: u16,
gid_high: u16,
_reserved2: u32,
pub extra_size: u16,
_paddings: u16,
}
Expand description
The ext2 inode.
The field names are based on the specification.
Fields§
§mode: u16
§uid: u16
§size: u32
§atime: u32
§ctime: u32
§mtime: u32
§_dtime: u32
§gid: u16
§links_count: u16
§blocks: InodeBlocksCount
§_flags: u32
§_osd1: u32
§block: InodeBlock
§_generation: u32
§_file_acl: u32
§_dir_acl: u32
§_faddr: u32
§_fragment_num: u8
§_fragment_size: u8
§_reserved1: u16
§uid_high: u16
§gid_high: u16
§_reserved2: u32
§extra_size: u16
§_paddings: u16
Implementations§
source§impl Inode
impl Inode
sourcepub const INODE_RECORD_SIZE: usize = 256usize
pub const INODE_RECORD_SIZE: usize = 256usize
Size of the inode record in bytes.
From ext2 revision 1, inode size larger than 128 bytes is supported. We use 256 byte here, which is the default value for ext4.
Note that inode “record” size can be larger that inode “structure” size. The gap between the end of the inode structure and the end of the inode record can be used to store extended attributes.
sourcepub const XATTR_AREA_SIZE: usize = 124usize
pub const XATTR_AREA_SIZE: usize = 124usize
Size of the region that inline extended attributes can be written.
pub fn new<'a>( arena: &'a Arena<'a>, group: &mut GroupMetaData<'_>, inode_num: InodeNum, typ: InodeType, size: u32, xattr: Option<InlineXattrs> ) -> Result<&'a mut Self>
pub fn from_metadata<'a>( arena: &'a Arena<'a>, group: &mut GroupMetaData<'_>, inode_num: InodeNum, m: &Metadata, size: u32, links_count: u16, blocks: InodeBlocksCount, block: InodeBlock, xattr: Option<InlineXattrs> ) -> Result<&'a mut Self>
fn add_xattr<'a>( arena: &'a Arena<'a>, group: &mut GroupMetaData<'_>, inode: &mut Inode, inode_offset: usize, xattr: InlineXattrs ) -> Result<()>
pub fn update_metadata(&mut self, m: &Metadata)
pub fn typ(&self) -> Option<InodeType>
Trait Implementations§
source§impl AsBytes for Inodewhere
u16: AsBytes,
u32: AsBytes,
InodeBlocksCount: AsBytes,
InodeBlock: AsBytes,
u8: AsBytes,
HasPadding<Inode, { _ }>: ShouldBe<false>,
impl AsBytes for Inodewhere
u16: AsBytes,
u32: AsBytes,
InodeBlocksCount: AsBytes,
InodeBlock: AsBytes,
u8: AsBytes,
HasPadding<Inode, { _ }>: ShouldBe<false>,
§fn as_bytes_mut(&mut self) -> &mut [u8] ⓘwhere
Self: FromBytes,
fn as_bytes_mut(&mut self) -> &mut [u8] ⓘwhere
Self: FromBytes,
Gets the bytes of this value mutably. Read more
§fn write_to_prefix(&self, bytes: &mut [u8]) -> Option<()>
fn write_to_prefix(&self, bytes: &mut [u8]) -> Option<()>
source§impl FromBytes for Inodewhere
u16: FromBytes,
u32: FromBytes,
InodeBlocksCount: FromBytes,
InodeBlock: FromBytes,
u8: FromBytes,
impl FromBytes for Inodewhere
u16: FromBytes,
u32: FromBytes,
InodeBlocksCount: FromBytes,
InodeBlock: FromBytes,
u8: FromBytes,
§fn slice_from_prefix(bytes: &[u8], count: usize) -> Option<(&[Self], &[u8])>where
Self: Sized,
fn slice_from_prefix(bytes: &[u8], count: usize) -> Option<(&[Self], &[u8])>where
Self: Sized,
Interprets the prefix of the given
bytes
as a &[Self]
with length
equal to count
without copying. Read more§fn slice_from_suffix(bytes: &[u8], count: usize) -> Option<(&[u8], &[Self])>where
Self: Sized,
fn slice_from_suffix(bytes: &[u8], count: usize) -> Option<(&[u8], &[Self])>where
Self: Sized,
Interprets the suffix of the given
bytes
as a &[Self]
with length
equal to count
without copying. Read more§fn mut_slice_from_prefix(
bytes: &mut [u8],
count: usize
) -> Option<(&mut [Self], &mut [u8])>where
Self: Sized + AsBytes,
fn mut_slice_from_prefix(
bytes: &mut [u8],
count: usize
) -> Option<(&mut [Self], &mut [u8])>where
Self: Sized + AsBytes,
Interprets the prefix of the given
bytes
as a &mut [Self]
with length
equal to count
without copying. Read more§fn mut_slice_from_suffix(
bytes: &mut [u8],
count: usize
) -> Option<(&mut [u8], &mut [Self])>where
Self: Sized + AsBytes,
fn mut_slice_from_suffix(
bytes: &mut [u8],
count: usize
) -> Option<(&mut [u8], &mut [Self])>where
Self: Sized + AsBytes,
Interprets the suffix of the given
bytes
as a &mut [Self]
with length
equal to count
without copying. Read more§fn read_from_prefix(bytes: &[u8]) -> Option<Self>where
Self: Sized,
fn read_from_prefix(bytes: &[u8]) -> Option<Self>where
Self: Sized,
source§impl FromZeroes for Inodewhere
u16: FromZeroes,
u32: FromZeroes,
InodeBlocksCount: FromZeroes,
InodeBlock: FromZeroes,
u8: FromZeroes,
impl FromZeroes for Inodewhere
u16: FromZeroes,
u32: FromZeroes,
InodeBlocksCount: FromZeroes,
InodeBlock: FromZeroes,
u8: FromZeroes,
impl Copy for Inode
Auto Trait Implementations§
impl RefUnwindSafe for Inode
impl Send for Inode
impl Sync for Inode
impl Unpin for Inode
impl UnwindSafe for Inode
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more