00001 #ifndef CLASSLIB_CPIO_CONSTANTS_H
00002 # define CLASSLIB_CPIO_CONSTANTS_H
00003
00004
00005
00006 # include "classlib/zip/ZipUtils.h"
00007
00008 namespace lat {
00009
00010
00011
00012
00013
00014
00015
00017 struct CPIOConstants : ZipUtils
00018 {
00019
00020
00021
00022
00023
00024
00025 static const char *TRAILER;
00026 enum {
00027 ODC_MAGIC = 070707,
00028 SVR4_MAGIC = 070701,
00029 SVR4C_MAGIC = 070702
00030 };
00031
00032
00033 enum Mode {
00034 SUID = 04000,
00035 SGID = 02000,
00036 SVTX = 01000,
00037 UREAD = 00400,
00038 UWRITE = 00200,
00039 UEXEC = 00100,
00040 GREAD = 00040,
00041 GWRITE = 00020,
00042 GEXEC = 00010,
00043 OREAD = 00004,
00044 OWRITE = 00002,
00045 OEXEC = 00001
00046 };
00047
00048
00049 enum {
00050 MAGIC_LEN = 6,
00051 TRAILER_LEN = 11,
00052
00053 ODC_MAGIC_OFFSET = 0, ODC_MAGIC_LENGTH = 6,
00054 ODC_DEV_OFFSET = 6, ODC_DEV_LENGTH = 6,
00055 ODC_INO_OFFSET = 12, ODC_INO_LENGTH = 6,
00056 ODC_MODE_OFFSET = 18, ODC_MODE_LENGTH = 6,
00057 ODC_UID_OFFSET = 24, ODC_UID_LENGTH = 6,
00058 ODC_GID_OFFSET = 30, ODC_GID_LENGTH = 6,
00059 ODC_NLINK_OFFSET = 36, ODC_NLINK_LENGTH = 6,
00060 ODC_RDEV_OFFSET = 42, ODC_RDEV_LENGTH = 6,
00061 ODC_MTIME_OFFSET = 48, ODC_MTIME_LENGTH = 11,
00062 ODC_NAMELEN_OFFSET = 59, ODC_NAMELEN_LENGTH = 6,
00063 ODC_SIZE_OFFSET = 65, ODC_SIZE_LENGTH = 11,
00064 ODC_HEADER_LEN = 76,
00065
00066 SVR_MAGIC_OFFSET = 0, SVR_MAGIC_LENGTH = 6,
00067 SVR_INO_OFFSET = 6, SVR_INO_LENGTH = 8,
00068 SVR_MODE_OFFSET = 14, SVR_MODE_LENGTH = 8,
00069 SVR_UID_OFFSET = 22, SVR_UID_LENGTH = 8,
00070 SVR_GID_OFFSET = 30, SVR_GID_LENGTH = 8,
00071 SVR_NLINK_OFFSET = 38, SVR_NLINK_LENGTH = 8,
00072 SVR_MTIME_OFFSET = 46, SVR_MTIME_LENGTH = 8,
00073 SVR_SIZE_OFFSET = 54, SVR_SIZE_LENGTH = 8,
00074 SVR_DEVMAJOR_OFFSET = 62, SVR_DEVMAJOR_LENGTH = 8,
00075 SVR_DEVMINOR_OFFSET = 70, SVR_DEVMINOR_LENGTH = 8,
00076 SVR_RDEVMAJOR_OFFSET = 78, SVR_RDEVMAJOR_LENGTH = 8,
00077 SVR_RDEVMINOR_OFFSET = 86, SVR_RDEVMINOR_LENGTH = 8,
00078 SVR_NAMELEN_OFFSET = 94, SVR_NAMELEN_LENGTH = 8,
00079 SVR_CHECKSUM_OFFSET = 102, SVR_CHECKSUM_LENGTH = 8,
00080 SVR_HEADER_LEN = 110,
00081 SVR_TRAILER_PAD = 3,
00082
00083 BIN_MAGIC_OFFSET = 0, BIN_MAGIC_LENGTH = 2,
00084 BIN_DEV_OFFSET = 2, BIN_DEV_LENGTH = 2,
00085 BIN_INO_OFFSET = 4, BIN_INO_LENGTH = 2,
00086 BIN_MODE_OFFSET = 6, BIN_MODE_LENGTH = 2,
00087 BIN_UID_OFFSET = 8, BIN_UID_LENGTH = 2,
00088 BIN_GID_OFFSET = 10, BIN_GID_LENGTH = 2,
00089 BIN_NLINK_OFFSET = 12, BIN_NLINK_LENGTH = 2,
00090 BIN_RDEV_OFFSET = 14, BIN_RDEV_LENGTH = 2,
00091 BIN_MTIME_OFFSET = 16, BIN_MTIME_LENGTH = 4,
00092 BIN_NAMELEN_OFFSET = 20, BIN_NAMELEN_LENGTH = 2,
00093 BIN_FILELEN_OFFSET = 22, BIN_FILELEN_LENGTH = 4,
00094
00095 BIN_HEADER_LEN = 26,
00096
00097
00098 SMALL_MAX = 0777777,
00099 LARGE_MAX = 07777777777,
00100 SVR_NAMELEN_MAX = 1024
00101 };
00102 };
00103
00104
00105
00106
00107 }
00108 #endif // CLASSLIB_CPIO_CONSTANTS_H