//! Archive definitions. //! //! These definitions are independent of read/write support, although we do implement //! some traits useful for those.
usecrate::pod::Pod;
/// File identification bytes stored at the beginning of the file. pubconst MAGIC: [u8; 8] = *b"!<arch>\n";
/// File identification bytes at the beginning of AIX big archive. pubconst AIX_BIG_MAGIC: [u8; 8] = *b"<bigaf>\n";
/// File identification bytes stored at the beginning of a thin archive. /// /// A thin archive only contains a symbol table and file names. pubconst THIN_MAGIC: [u8; 8] = *b"!<thin>\n";
/// The terminator for each archive member header. pubconst TERMINATOR: [u8; 2] = *b"`\n";
/// The header at the start of an archive member. #[derive(Debug, Clone, Copy)] #[repr(C)] pubstruct Header { /// The file name. pub name: [u8; 16], /// File modification timestamp in decimal. pub date: [u8; 12], /// User ID in decimal. pub uid: [u8; 6], /// Group ID in decimal. pub gid: [u8; 6], /// File mode in octal. pub mode: [u8; 8], /// File size in decimal. pub size: [u8; 10], /// Must be equal to `TERMINATOR`. pub terminator: [u8; 2],
}
/// The header at the start of an AIX big archive member, without name. #[derive(Debug, Clone, Copy)] #[repr(C)] pubstruct AixHeader { /// File member size in decimal. pub size: [u8; 20], /// Next member offset in decimal. pub nxtmem: [u8; 20], /// Previous member offset in decimal. pub prvmem: [u8; 20], /// File member date in decimal. pub date: [u8; 12], /// File member user id in decimal. pub uid: [u8; 12], /// File member group id in decimal. pub gid: [u8; 12], /// File member mode in octal. pub mode: [u8; 12], /// File member name length in decimal. pub namlen: [u8; 4],
}
/// The AIX big archive's fixed length header at file beginning. #[derive(Debug, Clone, Copy)] #[repr(C)] pubstruct AixFileHeader { /// Archive magic string. pub magic: [u8; 8], /// Offset of member table. pub memoff: [u8; 20], /// Offset of global symbol table. pub gstoff: [u8; 20], /// Offset of global symbol table for 64-bit objects. pub gst64off: [u8; 20], /// Offset of first member. pub fstmoff: [u8; 20], /// Offset of last member. pub lstmoff: [u8; 20], /// Offset of first member on free list. pub freeoff: [u8; 20],
}
/// Offset of a member in an AIX big archive. /// /// This is used in the member index. #[derive(Debug, Clone, Copy)] #[repr(C)] pubstruct AixMemberOffset(pub [u8; 20]);
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.