Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Related Pages

cpio.h File Reference

Structures used to handle cpio payloads within rpm packages. More...

Go to the source code of this file.

Data Structures

struct  cpioCrcPhysicalHeader
 Cpio archive header information. More...

Defines

#define CPIOERR_CHECK_ERRNO   0x00008000
#define CPIO_NEWC_MAGIC   "070701"
#define CPIO_CRC_MAGIC   "070702"
#define CPIO_TRAILER   "TRAILER!!!"
#define PHYS_HDR_SIZE   110

Typedefs

typedef enum cpioMapFlags_e cpioMapFlags

Enumerations

enum  cpioErrorReturns {
  CPIOERR_BAD_MAGIC = (2 ), CPIOERR_BAD_HEADER = (3 ), CPIOERR_OPEN_FAILED = (4 | 0x00008000 ), CPIOERR_CHMOD_FAILED = (5 | 0x00008000 ),
  CPIOERR_CHOWN_FAILED = (6 | 0x00008000 ), CPIOERR_WRITE_FAILED = (7 | 0x00008000 ), CPIOERR_UTIME_FAILED = (8 | 0x00008000 ), CPIOERR_UNLINK_FAILED = (9 | 0x00008000 ),
  CPIOERR_RENAME_FAILED = (10 | 0x00008000 ), CPIOERR_SYMLINK_FAILED = (11 | 0x00008000 ), CPIOERR_STAT_FAILED = (12 | 0x00008000 ), CPIOERR_LSTAT_FAILED = (13 | 0x00008000 ),
  CPIOERR_MKDIR_FAILED = (14 | 0x00008000 ), CPIOERR_RMDIR_FAILED = (15 | 0x00008000 ), CPIOERR_MKNOD_FAILED = (16 | 0x00008000 ), CPIOERR_MKFIFO_FAILED = (17 | 0x00008000 ),
  CPIOERR_LINK_FAILED = (18 | 0x00008000 ), CPIOERR_READLINK_FAILED = (19 | 0x00008000 ), CPIOERR_READ_FAILED = (20 | 0x00008000 ), CPIOERR_COPY_FAILED = (21 | 0x00008000 ),
  CPIOERR_LSETFCON_FAILED = (22 | 0x00008000 ), CPIOERR_HDR_SIZE = (23 ), CPIOERR_HDR_TRAILER = (24 ), CPIOERR_UNKNOWN_FILETYPE = (25 ),
  CPIOERR_MISSING_HARDLINK = (26 ), CPIOERR_MD5SUM_MISMATCH = (27 ), CPIOERR_INTERNAL = (28 ), CPIOERR_UNMAPPED_FILE = (29 ),
  CPIOERR_ENOENT = (30 ), CPIOERR_ENOTEMPTY = (31 )
}
enum  cpioMapFlags_e {
  CPIO_MAP_PATH = (1 << 0), CPIO_MAP_MODE = (1 << 1), CPIO_MAP_UID = (1 << 2), CPIO_MAP_GID = (1 << 3),
  CPIO_FOLLOW_SYMLINKS = (1 << 4), CPIO_MAP_ABSOLUTE = (1 << 5), CPIO_MAP_ADDDOT = (1 << 6), CPIO_ALL_HARDLINKS = (1 << 7),
  CPIO_MAP_TYPE = (1 << 8)
}

Functions

int cpioTrailerWrite (FSM_t fsm)
 Write cpio trailer.
int cpioHeaderWrite (FSM_t fsm, struct stat *st)
 Write cpio header.
int cpioHeaderRead (FSM_t fsm, struct stat *st)
 Read cpio header.
const char *const cpioStrerror (int rc)
 Return formatted error message on payload handling failure.


Detailed Description

Structures used to handle cpio payloads within rpm packages.

Warning:
Rpm's cpio implementation may be different than standard cpio. The implementation is pretty close, but it has some behaviors which are more to RPM's liking. I tried to document the differing behavior in cpio.c, but I may have missed some (ewt).

Definition in file cpio.h.


Define Documentation

#define CPIO_CRC_MAGIC   "070702"
 

Definition at line 71 of file cpio.h.

Referenced by cpioHeaderRead().

#define CPIO_NEWC_MAGIC   "070701"
 

Definition at line 70 of file cpio.h.

Referenced by cpioHeaderRead(), cpioHeaderWrite(), and cpioTrailerWrite().

#define CPIO_TRAILER   "TRAILER!!!"
 

Definition at line 72 of file cpio.h.

Referenced by cpioTrailerWrite(), and fsmStage().

#define PHYS_HDR_SIZE   110
 

Definition at line 94 of file cpio.h.

Referenced by cpioHeaderRead(), cpioHeaderWrite(), and cpioTrailerWrite().


Function Documentation

int cpioHeaderRead FSM_t  fsm,
struct stat *  st
 

Read cpio header.

Return values:
fsm file path and stat info
st 
Returns:
0 on success

Definition at line 130 of file cpio.c.

References _free(), CPIO_CRC_MAGIC, CPIO_NEWC_MAGIC, CPIOERR_BAD_HEADER, CPIOERR_BAD_MAGIC, CPIOERR_READ_FAILED, cpioCrcPhysicalHeader::devMajor, cpioCrcPhysicalHeader::devMinor, cpioCrcPhysicalHeader::filesize, FSM_DREAD, fsmNext(), GET_NUM_FIELD, cpioCrcPhysicalHeader::gid, cpioCrcPhysicalHeader::inode, cpioCrcPhysicalHeader::magic, major, makedev, minor, cpioCrcPhysicalHeader::mode, cpioCrcPhysicalHeader::mtime, cpioCrcPhysicalHeader::namesize, cpioCrcPhysicalHeader::nlink, fsm_s::path, PHYS_HDR_SIZE, cpioCrcPhysicalHeader::rdevMajor, cpioCrcPhysicalHeader::rdevMinor, fsm_s::rdnb, cpioCrcPhysicalHeader::uid, fsm_s::wrbuf, fsm_s::wrlen, fsm_s::wrsize, and xmalloc().

Referenced by fsmStage().

int cpioHeaderWrite FSM_t  fsm,
struct stat *  st
 

Write cpio header.

Return values:
fsm file path and stat info
Parameters:
st 
Returns:
0 on success

Definition at line 92 of file cpio.c.

References cpioCrcPhysicalHeader::checksum, CPIO_NEWC_MAGIC, CPIOERR_WRITE_FAILED, cpioCrcPhysicalHeader::devMajor, cpioCrcPhysicalHeader::devMinor, cpioCrcPhysicalHeader::filesize, FSM_DWRITE, FSM_PAD, fsmNext(), cpioCrcPhysicalHeader::gid, cpioCrcPhysicalHeader::inode, cpioCrcPhysicalHeader::magic, major, minor, cpioCrcPhysicalHeader::mode, cpioCrcPhysicalHeader::mtime, cpioCrcPhysicalHeader::namesize, cpioCrcPhysicalHeader::nlink, fsm_s::path, PHYS_HDR_SIZE, fsm_s::rdbuf, cpioCrcPhysicalHeader::rdevMajor, cpioCrcPhysicalHeader::rdevMinor, fsm_s::rdnb, SET_NUM_FIELD, cpioCrcPhysicalHeader::uid, and fsm_s::wrnb.

Referenced by fsmStage().

int cpioTrailerWrite FSM_t  fsm  ) 
 

Write cpio trailer.

Return values:
fsm file path and stat info
Returns:
0 on success

Definition at line 64 of file cpio.c.

References CPIO_NEWC_MAGIC, CPIO_TRAILER, FSM_DWRITE, FSM_PAD, fsmNext(), cpioCrcPhysicalHeader::magic, cpioCrcPhysicalHeader::namesize, cpioCrcPhysicalHeader::nlink, PHYS_HDR_SIZE, fsm_s::rdbuf, and fsm_s::rdnb.

Referenced by fsmStage().


Generated on Mon Mar 5 13:30:24 2007 for rpm by  doxygen 1.4.4