Amiga Unix — 68040 · 68060

Manual pages › File formats and configuration files (4)

archives(4)

device header file

From the original Amiga UNIX 2.1 manual. Some things it mentions may not be in this release.

NAME

archives - device header file

DESCRIPTION

/* Magic numbers */

#define CMN_ASC  0x070701/* Cpio Magic Number for -c header */
#define CMN_BIN  070707/* Cpio Magic Number for Binary header */
#define CMN_BBS  0143561/* Cpio Magic Number for Byte-Swap header */
#define CMN_CRC  0x070702/* Cpio Magic Number for CRC header */
#define CMS_ASC  "070701"/* Cpio Magic String for -c header */
#define CMS_CHR  "070707"/* Cpio Magic String for odc header */
#define CMS_CRC  "070702"/* Cpio Magic String for CRC header */
#define CMS_LEN  6/* Cpio Magic String length */
/* Various header and field lengths */

#define CHRSZ  76/* -H odc size minus filename field */
#define ASCSZ  110/* -c and CRC hdr size minus filename field */
#define TARSZ  512/* TAR hdr size */
#define HNAMLEN256/* maximum filename length for binary and odc headers */
#define EXPNLEN1024/* maximum filename length for -c and CRC headers */
#define HTIMLEN2/* length of modification time field */
#define HSIZLEN2/* length of file size field */

/* cpio binary header definition */
struct hdr_cpio {
  short               h_magic,/* magic number field */
       h_dev;         /* file system of file */
  ushort              h_ino,/* inode of file */
       h_mode,        /* modes of file */
       h_uid,         /* uid of file */
       h_gid;         /* gid of file */
  short               h_nlink,/* number of links to file */
       h_rdev,        /* maj/min numbers for special files */
       h_mtime[HTIMLEN],/* modification time of file */
       h_namesize,    /* length of filename */
       h_filesize[HSIZLEN];/* size of file */
  char h_name[HNAMLEN];/* filename */
} ;

/* cpio -H odc header format */
struct c_hdr {
  char c_magic[CMS_LEN],
       c_dev[6],
       c_ino[6],
       c_mode[6],
       c_uid[6],
       c_gid[6],
       c_nlink[6],
       c_rdev[6],
       c_mtime[11],
       c_namesz[6],

       c_filesz[11],
       c_name[HNAMLEN];
} ;

/* -c and CRC header format */

struct Exp_cpio_hdr {
  char E_magic[CMS_LEN],
       E_ino[8],
       E_mode[8],
       E_uid[8],
       E_gid[8],
       E_nlink[8],
       E_mtime[8],
       E_filesize[8],
       E_maj[8],
       E_min[8],
       E_rmaj[8],
       E_rmin[8],
       E_namesize[8],
       E_chksum[8],
       E_name[EXPNLEN];
} ;

/* Tar header structure and format */

#define TBLOCK 512/* length of tar header and data blocks */
#define TNAMLEN100/* maximum length for tar file names */
#define TMODLEN8/* length of mode field */
#define TUIDLEN8/* length of uid field */
#define TGIDLEN8/* length of gid field */
#define TSIZLEN12/* length of size field */
#define TTIMLEN12/* length of modification time field */
#define TCRCLEN8/* length of header checksum field */
/* tar header definition */

union tblock {
  char dummy[TBLOCK];
  struct header {
     char t_name[TNAMLEN];/* name of file */
     char t_mode[TMODLEN];/* mode of file */
     char t_uid[TUIDLEN];/* uid of file */
     char t_gid[TGIDLEN];/* gid of file */
     char t_size[TSIZLEN];/* size of file in bytes */
     char t_mtime[TTIMLEN];/* modification time of file */
     char t_chksum[TCRCLEN];/* checksum of header */
     char t_typeflag;    /* flag to indicate type of file */
     char t_linkname[TNAMLEN];/* file this file is linked with */
     char t_magic[6];    /* magic string always "ustar" */
     char t_version[2];  /* version strings always "00" */
     char t_uname[32];   /* owner of file in ASCII */
     char t_gname[32];   /* group of file in ASCII */
     char t_devmajor[8]; /* major number for special files */
     char t_devminor[8]; /* minor number for special files */
     char t_prefix[155]; /* pathname prefix */
  } tbuf;
};

/* volcopy tape label format and structure */

#define VMAGLEN 8
#define VVOLLEN 6
#define VFILLEN 464

struct volcopy_label {
  char v_magic[VMAGLEN],
       v_volume[VVOLLEN],
       v_reels,
       v_reel;
  long v_time,
                v_length,
       v_dens,
       v_reelblks,    /* u370 added field */
       v_blksize,     /* u370 added field */
       v_nblocks;     /* u370 added field */
  char v_fill[VFILLEN];
  long v_offset;      /* used with -e and -reel options */
  int  v_type;        /* does tape have nblocks field? */
} ;